	.file	"69443.c"
	.intel_syntax noprefix
	.text
	.globl	Labels
	.bss
	.align 32
	.type	Labels, @object
	.size	Labels, 65536
Labels:
	.zero	65536
	.globl	Pointers
	.align 32
	.type	Pointers, @object
	.size	Pointers, 4096
Pointers:
	.zero	4096
	.globl	np
	.align 4
	.type	np, @object
	.size	np, 4
np:
	.zero	4
	.globl	source
	.align 32
	.type	source, @object
	.size	source, 1024
source:
	.zero	1024
	.globl	target
	.align 32
	.type	target, @object
	.size	target, 524288
target:
	.zero	524288
	.globl	here
	.align 4
	.type	here, @object
	.size	here, 4
here:
	.zero	4
	.globl	code_start
	.align 32
	.type	code_start, @object
	.size	code_start, 33
code_start:
	.zero	33
	.globl	code_end
	.align 32
	.type	code_end, @object
	.size	code_end, 33
code_end:
	.zero	33
	.globl	test_start
	.align 32
	.type	test_start, @object
	.size	test_start, 33
test_start:
	.zero	33
	.globl	test_end
	.align 32
	.type	test_end, @object
	.size	test_end, 33
test_end:
	.zero	33
	.text
	.globl	read_line
	.type	read_line, @function
read_line:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	getc@PLT
	mov	DWORD PTR -8[rbp], eax
	mov	DWORD PTR -4[rbp], 0
	jmp	.L2
.L4:
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -8[rbp]
	mov	BYTE PTR [rax], dl
	add	DWORD PTR -4[rbp], 1
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	getc@PLT
	mov	DWORD PTR -8[rbp], eax
.L2:
	cmp	DWORD PTR -8[rbp], 10
	je	.L3
	cmp	DWORD PTR -8[rbp], -1
	jne	.L4
.L3:
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 0
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	read_line, .-read_line
	.globl	fence_boundary
	.type	fence_boundary, @function
fence_boundary:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	DWORD PTR -4[rbp], 1
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, code_start[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L6
	mov	DWORD PTR -4[rbp], -1
.L6:
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, code_end[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L7
	mov	DWORD PTR -4[rbp], -1
.L7:
	cmp	DWORD PTR -28[rbp], 0
	jne	.L8
	mov	eax, DWORD PTR -4[rbp]
	jmp	.L9
.L8:
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, test_start[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L10
	mov	DWORD PTR -4[rbp], -1
.L10:
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, test_end[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L11
	mov	DWORD PTR -4[rbp], -1
.L11:
	mov	eax, DWORD PTR -4[rbp]
.L9:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	fence_boundary, .-fence_boundary
	.section	.rodata
.LC0:
	.string	"r"
.LC1:
	.string	"Unable to load file"
	.text
	.globl	unu
	.type	unu, @function
unu:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 64
	mov	QWORD PTR -4136[rbp], rdi
	mov	DWORD PTR -4140[rbp], esi
	mov	QWORD PTR -4152[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -4124[rbp], 0
	mov	rax, QWORD PTR -4136[rbp]
	lea	rsi, .LC0[rip]
	mov	rdi, rax
	call	fopen@PLT
	mov	QWORD PTR -4120[rbp], rax
	cmp	QWORD PTR -4120[rbp], 0
	jne	.L14
	lea	rdi, .LC1[rip]
	call	puts@PLT
	mov	edi, 2
	call	exit@PLT
.L17:
	lea	rdx, -4112[rbp]
	mov	rax, QWORD PTR -4120[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	read_line
	mov	edx, DWORD PTR -4140[rbp]
	lea	rax, -4112[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	fence_boundary
	cmp	eax, -1
	jne	.L15
	cmp	DWORD PTR -4124[rbp], 0
	jne	.L16
	mov	DWORD PTR -4124[rbp], 1
	jmp	.L14
.L16:
	mov	DWORD PTR -4124[rbp], 0
	jmp	.L14
.L15:
	cmp	DWORD PTR -4124[rbp], 1
	jne	.L14
	lea	rax, -4112[rbp]
	mov	rdx, QWORD PTR -4152[rbp]
	mov	rdi, rax
	call	rdx
.L14:
	mov	rax, QWORD PTR -4120[rbp]
	mov	rdi, rax
	call	feof@PLT
	test	eax, eax
	je	.L17
	mov	rax, QWORD PTR -4120[rbp]
	mov	rdi, rax
	call	fclose@PLT
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L18
	call	__stack_chk_fail@PLT
.L18:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	unu, .-unu
	.section	.rodata
.LC2:
	.string	"wb"
.LC3:
	.string	"ngaImage"
.LC4:
	.string	"Unable to save the image!"
	.text
	.globl	save
	.type	save, @function
save:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	lea	rsi, .LC2[rip]
	lea	rdi, .LC3[rip]
	call	fopen@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L20
	lea	rdi, .LC4[rip]
	call	puts@PLT
	mov	edi, 2
	call	exit@PLT
.L20:
	mov	eax, DWORD PTR here[rip]
	cdqe
	mov	rdx, QWORD PTR -8[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 4
	lea	rdi, target[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	fclose@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	save, .-save
	.globl	lookup
	.type	lookup, @function
lookup:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -8[rbp], -1
	mov	eax, DWORD PTR np[rip]
	mov	DWORD PTR -4[rbp], eax
	jmp	.L22
.L23:
	sub	DWORD PTR -4[rbp], 1
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sal	rax, 6
	mov	rdx, rax
	lea	rax, Labels[rip]
	add	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	strcmp@PLT
	test	eax, eax
	jne	.L22
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, Pointers[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	DWORD PTR -8[rbp], eax
.L22:
	cmp	DWORD PTR -4[rbp], 0
	jg	.L23
	mov	eax, DWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	lookup, .-lookup
	.section	.rodata
	.align 8
.LC5:
	.string	"Fatal error: %s already defined\n"
	.text
	.globl	add_label
	.type	add_label, @function
add_label:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	DWORD PTR -12[rbp], esi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	lookup
	cmp	eax, -1
	jne	.L26
	mov	eax, DWORD PTR np[rip]
	cdqe
	sal	rax, 6
	mov	rdx, rax
	lea	rax, Labels[rip]
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, 64
	mov	rsi, rax
	mov	rdi, rcx
	call	bsd_strlcpy
	mov	eax, DWORD PTR np[rip]
	cdqe
	lea	rcx, 0[0+rax*4]
	lea	rdx, Pointers[rip]
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR [rcx+rdx], eax
	mov	eax, DWORD PTR np[rip]
	add	eax, 1
	mov	DWORD PTR np[rip], eax
	jmp	.L28
.L26:
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rax
	lea	rdi, .LC5[rip]
	mov	eax, 0
	call	printf@PLT
	mov	edi, 0
	call	exit@PLT
.L28:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	add_label, .-add_label
	.section	.rodata
	.align 8
.LC6:
	.string	"..lidudrswpupojucaccreeqneltgtfestadsumudianorxoshzrhaieiqii"
	.text
	.globl	opcode_for
	.type	opcode_for, @function
opcode_for:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -40[rbp], rdi
	lea	rax, .LC6[rip]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -28[rbp], 0
	mov	DWORD PTR -28[rbp], 0
	jmp	.L30
.L33:
	mov	rax, QWORD PTR -16[rbp]
	movzx	edx, WORD PTR [rax]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	lea	rcx, [rax+rax]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rcx
	movzx	eax, WORD PTR [rax]
	cmp	dx, ax
	jne	.L31
	mov	eax, DWORD PTR -28[rbp]
	jmp	.L32
.L31:
	add	DWORD PTR -28[rbp], 1
.L30:
	cmp	DWORD PTR -28[rbp], 30
	jle	.L33
	mov	eax, 0
.L32:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	opcode_for, .-opcode_for
	.globl	pass1
	.type	pass1, @function
pass1:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	cmp	eax, 115
	je	.L35
	cmp	eax, 115
	jg	.L41
	cmp	eax, 114
	je	.L37
	cmp	eax, 114
	jg	.L41
	cmp	eax, 105
	je	.L38
	cmp	eax, 105
	jg	.L41
	cmp	eax, 58
	je	.L39
	cmp	eax, 100
	je	.L40
	jmp	.L41
.L38:
	mov	eax, DWORD PTR here[rip]
	add	eax, 1
	mov	DWORD PTR here[rip], eax
	jmp	.L36
.L37:
	mov	eax, DWORD PTR here[rip]
	add	eax, 1
	mov	DWORD PTR here[rip], eax
	jmp	.L36
.L40:
	mov	eax, DWORD PTR here[rip]
	add	eax, 1
	mov	DWORD PTR here[rip], eax
	jmp	.L36
.L35:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	edx, eax
	mov	eax, DWORD PTR here[rip]
	add	eax, edx
	sub	eax, 1
	mov	DWORD PTR here[rip], eax
	jmp	.L36
.L39:
	mov	eax, DWORD PTR here[rip]
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 2
	mov	esi, eax
	mov	rdi, rdx
	call	add_label
	nop
.L36:
.L41:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	pass1, .-pass1
	.globl	pass2
	.type	pass2, @function
pass2:
.LFB14:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	BYTE PTR -9[rbp], 0
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	cmp	eax, 115
	je	.L43
	cmp	eax, 115
	jg	.L50
	cmp	eax, 114
	je	.L45
	cmp	eax, 114
	jg	.L50
	cmp	eax, 105
	je	.L46
	cmp	eax, 105
	jg	.L50
	cmp	eax, 58
	je	.L51
	cmp	eax, 100
	je	.L48
	jmp	.L50
.L46:
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	eax, WORD PTR [rax]
	mov	WORD PTR -11[rbp], ax
	lea	rax, -11[rbp]
	mov	rdi, rax
	call	opcode_for
	mov	DWORD PTR -16[rbp], eax
	sal	DWORD PTR -16[rbp], 8
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 6
	movzx	eax, WORD PTR [rax]
	mov	WORD PTR -11[rbp], ax
	lea	rax, -11[rbp]
	mov	rdi, rax
	call	opcode_for
	add	DWORD PTR -16[rbp], eax
	sal	DWORD PTR -16[rbp], 8
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	eax, WORD PTR [rax]
	mov	WORD PTR -11[rbp], ax
	lea	rax, -11[rbp]
	mov	rdi, rax
	call	opcode_for
	add	DWORD PTR -16[rbp], eax
	sal	DWORD PTR -16[rbp], 8
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 2
	movzx	eax, WORD PTR [rax]
	mov	WORD PTR -11[rbp], ax
	lea	rax, -11[rbp]
	mov	rdi, rax
	call	opcode_for
	add	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR here[rip]
	lea	edx, 1[rax]
	mov	DWORD PTR here[rip], edx
	mov	edx, DWORD PTR -16[rbp]
	cdqe
	lea	rcx, 0[0+rax*4]
	lea	rax, target[rip]
	mov	DWORD PTR [rcx+rax], edx
	jmp	.L44
.L45:
	mov	eax, DWORD PTR here[rip]
	add	eax, 1
	mov	DWORD PTR here[rip], eax
	jmp	.L44
.L48:
	mov	eax, DWORD PTR here[rip]
	add	eax, 1
	mov	DWORD PTR here[rip], eax
	jmp	.L44
.L43:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	edx, eax
	mov	eax, DWORD PTR here[rip]
	add	eax, edx
	sub	eax, 1
	mov	DWORD PTR here[rip], eax
	jmp	.L44
.L51:
	nop
.L44:
.L50:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L49
	call	__stack_chk_fail@PLT
.L49:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	pass2, .-pass2
	.globl	pass3
	.type	pass3, @function
pass3:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 24
	.cfi_offset 3, -24
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	cmp	eax, 115
	je	.L53
	cmp	eax, 115
	jg	.L59
	cmp	eax, 114
	je	.L55
	cmp	eax, 114
	jg	.L59
	cmp	eax, 105
	je	.L56
	cmp	eax, 105
	jg	.L59
	cmp	eax, 58
	je	.L60
	cmp	eax, 100
	je	.L58
	jmp	.L59
.L56:
	mov	eax, DWORD PTR here[rip]
	add	eax, 1
	mov	DWORD PTR here[rip], eax
	jmp	.L54
.L55:
	mov	eax, DWORD PTR here[rip]
	add	eax, 1
	mov	DWORD PTR here[rip], eax
	jmp	.L54
.L58:
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 2
	mov	ebx, DWORD PTR here[rip]
	lea	edx, 1[rbx]
	mov	DWORD PTR here[rip], edx
	mov	rdi, rax
	call	atoi@PLT
	movsx	rdx, ebx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, target[rip]
	mov	DWORD PTR [rcx+rdx], eax
	jmp	.L54
.L53:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	edx, eax
	mov	eax, DWORD PTR here[rip]
	add	eax, edx
	sub	eax, 1
	mov	DWORD PTR here[rip], eax
	jmp	.L54
.L60:
	nop
.L54:
.L59:
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	pass3, .-pass3
	.globl	pass4
	.type	pass4, @function
pass4:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	cmp	eax, 115
	je	.L62
	cmp	eax, 115
	jg	.L70
	cmp	eax, 114
	je	.L64
	cmp	eax, 114
	jg	.L70
	cmp	eax, 105
	je	.L65
	cmp	eax, 105
	jg	.L70
	cmp	eax, 58
	je	.L71
	cmp	eax, 100
	je	.L67
	jmp	.L70
.L65:
	mov	eax, DWORD PTR here[rip]
	add	eax, 1
	mov	DWORD PTR here[rip], eax
	jmp	.L63
.L64:
	mov	eax, DWORD PTR here[rip]
	add	eax, 1
	mov	DWORD PTR here[rip], eax
	jmp	.L63
.L67:
	mov	eax, DWORD PTR here[rip]
	add	eax, 1
	mov	DWORD PTR here[rip], eax
	jmp	.L63
.L62:
	mov	DWORD PTR -20[rbp], 2
	jmp	.L68
.L69:
	mov	eax, DWORD PTR -20[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -20[rbp], edx
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movzx	ecx, BYTE PTR [rax]
	mov	eax, DWORD PTR here[rip]
	lea	edx, 1[rax]
	mov	DWORD PTR here[rip], edx
	movsx	edx, cl
	cdqe
	lea	rcx, 0[0+rax*4]
	lea	rax, target[rip]
	mov	DWORD PTR [rcx+rax], edx
.L68:
	mov	ebx, DWORD PTR -20[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	strlen@PLT
	cmp	rbx, rax
	jb	.L69
	mov	eax, DWORD PTR here[rip]
	lea	edx, 1[rax]
	mov	DWORD PTR here[rip], edx
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, target[rip]
	mov	DWORD PTR [rdx+rax], 0
	jmp	.L63
.L71:
	nop
.L63:
.L70:
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	pass4, .-pass4
	.section	.rodata
.LC7:
	.string	"Lookup failed: '%s'\n"
	.text
	.globl	pass5
	.type	pass5, @function
pass5:
.LFB17:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 24
	.cfi_offset 3, -24
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	cmp	eax, 115
	je	.L73
	cmp	eax, 115
	jg	.L80
	cmp	eax, 114
	je	.L75
	cmp	eax, 114
	jg	.L80
	cmp	eax, 105
	je	.L76
	cmp	eax, 105
	jg	.L80
	cmp	eax, 58
	je	.L81
	cmp	eax, 100
	je	.L78
	jmp	.L80
.L76:
	mov	eax, DWORD PTR here[rip]
	add	eax, 1
	mov	DWORD PTR here[rip], eax
	jmp	.L74
.L75:
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 2
	mov	ebx, DWORD PTR here[rip]
	lea	edx, 1[rbx]
	mov	DWORD PTR here[rip], edx
	mov	rdi, rax
	call	lookup
	movsx	rdx, ebx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, target[rip]
	mov	DWORD PTR [rcx+rdx], eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 2
	mov	rdi, rax
	call	lookup
	cmp	eax, -1
	jne	.L82
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 2
	mov	rsi, rax
	lea	rdi, .LC7[rip]
	mov	eax, 0
	call	printf@PLT
	jmp	.L82
.L78:
	mov	eax, DWORD PTR here[rip]
	add	eax, 1
	mov	DWORD PTR here[rip], eax
	jmp	.L74
.L73:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	edx, eax
	mov	eax, DWORD PTR here[rip]
	add	eax, edx
	sub	eax, 1
	mov	DWORD PTR here[rip], eax
	jmp	.L74
.L81:
	nop
	jmp	.L80
.L82:
	nop
.L74:
.L80:
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	pass5, .-pass5
	.section	.rodata
.LC8:
	.string	"Wrote %lld cells to ngaImage\n"
.LC9:
	.string	"No file specified."
	.text
	.globl	main
	.type	main, @function
main:
.LFB18:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	QWORD PTR -16[rbp], rsi
	mov	DWORD PTR code_start[rip], 8289918
	mov	DWORD PTR code_end[rip], 8289918
	mov	DWORD PTR test_start[rip], 6316128
	mov	DWORD PTR test_end[rip], 6316128
	mov	DWORD PTR np[rip], 0
	cmp	DWORD PTR -4[rbp], 1
	jle	.L84
	mov	DWORD PTR here[rip], 0
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	lea	rdx, pass1[rip]
	mov	esi, 0
	mov	rdi, rax
	call	unu
	mov	DWORD PTR here[rip], 0
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	lea	rdx, pass2[rip]
	mov	esi, 0
	mov	rdi, rax
	call	unu
	mov	DWORD PTR here[rip], 0
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	lea	rdx, pass3[rip]
	mov	esi, 0
	mov	rdi, rax
	call	unu
	mov	DWORD PTR here[rip], 0
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	lea	rdx, pass4[rip]
	mov	esi, 0
	mov	rdi, rax
	call	unu
	mov	DWORD PTR here[rip], 0
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	lea	rdx, pass5[rip]
	mov	esi, 0
	mov	rdi, rax
	call	unu
	mov	eax, 0
	call	save
	mov	eax, DWORD PTR here[rip]
	cdqe
	mov	rsi, rax
	lea	rdi, .LC8[rip]
	mov	eax, 0
	call	printf@PLT
	jmp	.L85
.L84:
	lea	rdi, .LC9[rip]
	call	puts@PLT
.L85:
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	main, .-main
	.globl	bsd_strlcpy
	.type	bsd_strlcpy, @function
bsd_strlcpy:
.LFB19:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	je	.L88
	jmp	.L89
.L90:
	mov	rdx, QWORD PTR -32[rbp]
	lea	rax, 1[rdx]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	lea	rcx, 1[rax]
	mov	QWORD PTR -24[rbp], rcx
	movzx	edx, BYTE PTR [rdx]
	mov	BYTE PTR [rax], dl
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L95
.L89:
	sub	QWORD PTR -16[rbp], 1
	cmp	QWORD PTR -16[rbp], 0
	jne	.L90
	jmp	.L88
.L95:
	nop
.L88:
	cmp	QWORD PTR -16[rbp], 0
	jne	.L91
	cmp	QWORD PTR -40[rbp], 0
	je	.L96
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR [rax], 0
.L96:
	nop
.L93:
	mov	rax, QWORD PTR -32[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -32[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L93
.L91:
	mov	rax, QWORD PTR -32[rbp]
	sub	rax, QWORD PTR -8[rbp]
	sub	rax, 1
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	bsd_strlcpy, .-bsd_strlcpy
	.ident	"GCC: (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 6
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"69443.c"
	.text
	.comm	Labels,65536,4
	.comm	Pointers,4096,4
	.comm	np,4,4
	.comm	source,1024,4
	.comm	target,524288,4
	.comm	here,4,4
	.comm	code_start,33,4
	.comm	code_end,33,4
	.comm	test_start,33,4
	.comm	test_end,33,4
	.align	2
	.global	read_line
	.syntax unified
	.arm
	.fpu softvfp
	.type	read_line, %function
read_line:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	getc
	str	r0, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L2
.L4:
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	ldr	r2, [fp, #-12]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	getc
	str	r0, [fp, #-12]
.L2:
	ldr	r3, [fp, #-12]
	cmp	r3, #10
	beq	.L3
	ldr	r3, [fp, #-12]
	cmn	r3, #1
	bne	.L4
.L3:
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	read_line, .-read_line
	.align	2
	.global	fence_boundary
	.syntax unified
	.arm
	.fpu softvfp
	.type	fence_boundary, %function
fence_boundary:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	mov	r3, #1
	str	r3, [fp, #-8]
	ldr	r1, .L12
	ldr	r0, [fp, #-16]
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L6
	mvn	r3, #0
	str	r3, [fp, #-8]
.L6:
	ldr	r1, .L12+4
	ldr	r0, [fp, #-16]
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L7
	mvn	r3, #0
	str	r3, [fp, #-8]
.L7:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L8
	ldr	r3, [fp, #-8]
	b	.L9
.L8:
	ldr	r1, .L12+8
	ldr	r0, [fp, #-16]
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L10
	mvn	r3, #0
	str	r3, [fp, #-8]
.L10:
	ldr	r1, .L12+12
	ldr	r0, [fp, #-16]
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L11
	mvn	r3, #0
	str	r3, [fp, #-8]
.L11:
	ldr	r3, [fp, #-8]
.L9:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L13:
	.align	2
.L12:
	.word	code_start
	.word	code_end
	.word	test_start
	.word	test_end
	.size	fence_boundary, .-fence_boundary
	.section	.rodata
	.align	2
.LC0:
	.ascii	"r\000"
	.align	2
.LC1:
	.ascii	"Unable to load file\000"
	.align	2
.LC2:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	unu
	.syntax unified
	.arm
	.fpu softvfp
	.type	unu, %function
unu:
	@ args = 0, pretend = 0, frame = 4128
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #4096
	sub	sp, sp, #36
	sub	r3, fp, #4096
	sub	r3, r3, #12
	str	r0, [r3, #-20]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	str	r1, [r3, #-24]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	str	r2, [r3, #-28]
	ldr	r3, .L21
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-12]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r4, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r1, .L21+4
	ldr	r0, [r3, #-20]
	bl	fopen
	str	r0, [r4, #-8]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-8]
	cmp	r3, #0
	bne	.L16
	ldr	r0, .L21+8
	bl	puts
	mov	r0, #2
	bl	exit
.L19:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	sub	r3, r3, #4
	sub	r2, fp, #4096
	sub	r2, r2, #12
	mov	r1, r3
	ldr	r0, [r2, #-8]
	bl	read_line
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	sub	r3, r3, #4
	ldr	r1, [r2, #-24]
	mov	r0, r3
	bl	fence_boundary
	mov	r3, r0
	cmn	r3, #1
	bne	.L17
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-12]
	cmp	r3, #0
	bne	.L18
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #1
	str	r3, [r2, #-12]
	b	.L16
.L18:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-12]
	b	.L16
.L17:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-12]
	str	r3, [r2, #-12]
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r3, [r3, #-12]
	cmp	r3, #1
	bne	.L16
	sub	r3, fp, #4096
	sub	r3, r3, #12
	sub	r3, r3, #4
	sub	r2, fp, #4096
	sub	r2, r2, #12
	ldr	r2, [r2, #-28]
	mov	r0, r3
	blx	r2
.L16:
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r0, [r3, #-8]
	bl	feof
	mov	r3, r0
	cmp	r3, #0
	beq	.L19
	sub	r3, fp, #4096
	sub	r3, r3, #12
	ldr	r0, [r3, #-8]
	bl	fclose
	nop
	ldr	r3, .L21
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L20
	bl	__stack_chk_fail
.L20:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L22:
	.align	2
.L21:
	.word	.LC2
	.word	.LC0
	.word	.LC1
	.size	unu, .-unu
	.section	.rodata
	.align	2
.LC3:
	.ascii	"wb\000"
	.align	2
.LC4:
	.ascii	"ngaImage\000"
	.align	2
.LC5:
	.ascii	"Unable to save the image!\000"
	.text
	.align	2
	.global	save
	.syntax unified
	.arm
	.fpu softvfp
	.type	save, %function
save:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	ldr	r1, .L25
	ldr	r0, .L25+4
	bl	fopen
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L24
	ldr	r0, .L25+8
	bl	puts
	mov	r0, #2
	bl	exit
.L24:
	ldr	r3, .L25+12
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-8]
	mov	r1, #4
	ldr	r0, .L25+16
	bl	fwrite
	ldr	r0, [fp, #-8]
	bl	fclose
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L26:
	.align	2
.L25:
	.word	.LC3
	.word	.LC4
	.word	.LC5
	.word	here
	.word	target
	.size	save, .-save
	.align	2
	.global	lookup
	.syntax unified
	.arm
	.fpu softvfp
	.type	lookup, %function
lookup:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	mvn	r3, #0
	str	r3, [fp, #-12]
	ldr	r3, .L31
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	b	.L28
.L29:
	ldr	r3, [fp, #-8]
	sub	r3, r3, #1
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #6
	ldr	r2, .L31+4
	add	r3, r3, r2
	ldr	r1, [fp, #-16]
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L28
	ldr	r2, .L31+8
	ldr	r3, [fp, #-8]
	ldr	r3, [r2, r3, lsl #2]
	str	r3, [fp, #-12]
.L28:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bgt	.L29
	ldr	r3, [fp, #-12]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L32:
	.align	2
.L31:
	.word	np
	.word	Labels
	.word	Pointers
	.size	lookup, .-lookup
	.section	.rodata
	.align	2
.LC6:
	.ascii	"Fatal error: %s already defined\012\000"
	.text
	.align	2
	.global	add_label
	.syntax unified
	.arm
	.fpu softvfp
	.type	add_label, %function
add_label:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	lookup
	mov	r3, r0
	cmn	r3, #1
	bne	.L34
	ldr	r3, .L37
	ldr	r3, [r3]
	lsl	r3, r3, #6
	ldr	r2, .L37+4
	add	r3, r3, r2
	mov	r2, #64
	ldr	r1, [fp, #-8]
	mov	r0, r3
	bl	bsd_strlcpy
	ldr	r3, .L37
	ldr	r3, [r3]
	ldr	r1, .L37+8
	ldr	r2, [fp, #-12]
	str	r2, [r1, r3, lsl #2]
	ldr	r3, .L37
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L37
	str	r3, [r2]
	b	.L36
.L34:
	ldr	r1, [fp, #-8]
	ldr	r0, .L37+12
	bl	printf
	mov	r0, #0
	bl	exit
.L36:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L38:
	.align	2
.L37:
	.word	np
	.word	Labels
	.word	Pointers
	.word	.LC6
	.size	add_label, .-add_label
	.section	.rodata
	.align	2
.LC7:
	.ascii	"..lidudrswpupojucaccreeqneltgtfestadsumudianorxoshz"
	.ascii	"rhaieiqii\000"
	.text
	.align	2
	.global	opcode_for
	.syntax unified
	.arm
	.fpu softvfp
	.type	opcode_for, %function
opcode_for:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #28
	str	r0, [fp, #-24]
	ldr	r3, .L44
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L40
.L43:
	ldr	r3, [fp, #-12]
	ldrsh	r2, [r3]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #1
	ldr	r1, [fp, #-8]
	add	r3, r1, r3
	ldrsh	r3, [r3]
	cmp	r2, r3
	bne	.L41
	ldr	r3, [fp, #-20]
	b	.L42
.L41:
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L40:
	ldr	r3, [fp, #-20]
	cmp	r3, #30
	ble	.L43
	mov	r3, #0
.L42:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L45:
	.align	2
.L44:
	.word	.LC7
	.size	opcode_for, .-opcode_for
	.align	2
	.global	pass1
	.syntax unified
	.arm
	.fpu softvfp
	.type	pass1, %function
pass1:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #58
	beq	.L47
	cmp	r3, #58
	blt	.L54
	cmp	r3, #115
	bgt	.L54
	cmp	r3, #100
	blt	.L54
	sub	r3, r3, #100
	cmp	r3, #15
	ldrls	pc, [pc, r3, asl #2]
	b	.L54
.L50:
	.word	.L53
	.word	.L54
	.word	.L54
	.word	.L54
	.word	.L54
	.word	.L52
	.word	.L54
	.word	.L54
	.word	.L54
	.word	.L54
	.word	.L54
	.word	.L54
	.word	.L54
	.word	.L54
	.word	.L51
	.word	.L49
.L52:
	ldr	r3, .L55
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L55
	str	r3, [r2]
	b	.L48
.L51:
	ldr	r3, .L55
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L55
	str	r3, [r2]
	b	.L48
.L53:
	ldr	r3, .L55
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L55
	str	r3, [r2]
	b	.L48
.L49:
	ldr	r0, [fp, #-8]
	bl	strlen
	mov	r3, r0
	ldr	r2, .L55
	ldr	r2, [r2]
	add	r3, r3, r2
	sub	r3, r3, #1
	mov	r2, r3
	ldr	r3, .L55
	str	r2, [r3]
	b	.L48
.L47:
	ldr	r3, [fp, #-8]
	add	r3, r3, #2
	ldr	r2, .L55
	ldr	r2, [r2]
	mov	r1, r2
	mov	r0, r3
	bl	add_label
	nop
.L48:
.L54:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L56:
	.align	2
.L55:
	.word	here
	.size	pass1, .-pass1
	.section	.rodata
	.align	2
.LC8:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	pass2
	.syntax unified
	.arm
	.fpu softvfp
	.type	pass2, %function
pass2:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	ldr	r3, .L68
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	strb	r3, [fp, #-10]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #58
	beq	.L66
	cmp	r3, #58
	blt	.L67
	cmp	r3, #115
	bgt	.L67
	cmp	r3, #100
	blt	.L67
	sub	r3, r3, #100
	cmp	r3, #15
	ldrls	pc, [pc, r3, asl #2]
	b	.L67
.L61:
	.word	.L64
	.word	.L67
	.word	.L67
	.word	.L67
	.word	.L67
	.word	.L63
	.word	.L67
	.word	.L67
	.word	.L67
	.word	.L67
	.word	.L67
	.word	.L67
	.word	.L67
	.word	.L67
	.word	.L62
	.word	.L60
.L63:
	ldr	r3, [fp, #-24]
	add	r1, r3, #8
	sub	r3, fp, #12
	mov	r2, #2
	mov	r0, r3
	bl	memcpy
	sub	r3, fp, #12
	mov	r0, r3
	bl	opcode_for
	mov	r3, r0
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #8
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r1, r3, #6
	sub	r3, fp, #12
	mov	r2, #2
	mov	r0, r3
	bl	memcpy
	sub	r3, fp, #12
	mov	r0, r3
	bl	opcode_for
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #8
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r1, r3, #4
	sub	r3, fp, #12
	mov	r2, #2
	mov	r0, r3
	bl	memcpy
	sub	r3, fp, #12
	mov	r0, r3
	bl	opcode_for
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #8
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r1, r3, #2
	sub	r3, fp, #12
	mov	r2, #2
	mov	r0, r3
	bl	memcpy
	sub	r3, fp, #12
	mov	r0, r3
	bl	opcode_for
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, .L68+4
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L68+4
	str	r2, [r1]
	ldr	r2, [fp, #-16]
	ldr	r1, .L68+8
	str	r2, [r1, r3, lsl #2]
	b	.L59
.L62:
	ldr	r3, .L68+4
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L68+4
	str	r3, [r2]
	b	.L59
.L64:
	ldr	r3, .L68+4
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L68+4
	str	r3, [r2]
	b	.L59
.L60:
	ldr	r0, [fp, #-24]
	bl	strlen
	mov	r3, r0
	ldr	r2, .L68+4
	ldr	r2, [r2]
	add	r3, r3, r2
	sub	r3, r3, #1
	mov	r2, r3
	ldr	r3, .L68+4
	str	r2, [r3]
	b	.L59
.L66:
	nop
.L59:
.L67:
	nop
	ldr	r3, .L68
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L65
	bl	__stack_chk_fail
.L65:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L69:
	.align	2
.L68:
	.word	.LC8
	.word	here
	.word	target
	.size	pass2, .-pass2
	.align	2
	.global	pass3
	.syntax unified
	.arm
	.fpu softvfp
	.type	pass3, %function
pass3:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #12
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #58
	beq	.L78
	cmp	r3, #58
	blt	.L79
	cmp	r3, #115
	bgt	.L79
	cmp	r3, #100
	blt	.L79
	sub	r3, r3, #100
	cmp	r3, #15
	ldrls	pc, [pc, r3, asl #2]
	b	.L79
.L74:
	.word	.L77
	.word	.L79
	.word	.L79
	.word	.L79
	.word	.L79
	.word	.L76
	.word	.L79
	.word	.L79
	.word	.L79
	.word	.L79
	.word	.L79
	.word	.L79
	.word	.L79
	.word	.L79
	.word	.L75
	.word	.L73
.L76:
	ldr	r3, .L80
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L80
	str	r3, [r2]
	b	.L72
.L75:
	ldr	r3, .L80
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L80
	str	r3, [r2]
	b	.L72
.L77:
	ldr	r3, [fp, #-16]
	add	r2, r3, #2
	ldr	r3, .L80
	ldr	r4, [r3]
	add	r3, r4, #1
	ldr	r1, .L80
	str	r3, [r1]
	mov	r0, r2
	bl	atoi
	mov	r3, r0
	ldr	r2, .L80+4
	str	r3, [r2, r4, lsl #2]
	b	.L72
.L73:
	ldr	r0, [fp, #-16]
	bl	strlen
	mov	r3, r0
	ldr	r2, .L80
	ldr	r2, [r2]
	add	r3, r3, r2
	sub	r3, r3, #1
	mov	r2, r3
	ldr	r3, .L80
	str	r2, [r3]
	b	.L72
.L78:
	nop
.L72:
.L79:
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L81:
	.align	2
.L80:
	.word	here
	.word	target
	.size	pass3, .-pass3
	.align	2
	.global	pass4
	.syntax unified
	.arm
	.fpu softvfp
	.type	pass4, %function
pass4:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #58
	beq	.L92
	cmp	r3, #58
	blt	.L93
	cmp	r3, #115
	bgt	.L93
	cmp	r3, #100
	blt	.L93
	sub	r3, r3, #100
	cmp	r3, #15
	ldrls	pc, [pc, r3, asl #2]
	b	.L93
.L86:
	.word	.L89
	.word	.L93
	.word	.L93
	.word	.L93
	.word	.L93
	.word	.L88
	.word	.L93
	.word	.L93
	.word	.L93
	.word	.L93
	.word	.L93
	.word	.L93
	.word	.L93
	.word	.L93
	.word	.L87
	.word	.L85
.L88:
	ldr	r3, .L94
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L94
	str	r3, [r2]
	b	.L84
.L87:
	ldr	r3, .L94
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L94
	str	r3, [r2]
	b	.L84
.L89:
	ldr	r3, .L94
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L94
	str	r3, [r2]
	b	.L84
.L85:
	mov	r3, #2
	str	r3, [fp, #-8]
	b	.L90
.L91:
	ldr	r3, [fp, #-8]
	add	r2, r3, #1
	str	r2, [fp, #-8]
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldrb	r0, [r3]	@ zero_extendqisi2
	ldr	r3, .L94
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L94
	str	r2, [r1]
	mov	r1, r0
	ldr	r2, .L94+4
	str	r1, [r2, r3, lsl #2]
.L90:
	ldr	r0, [fp, #-16]
	bl	strlen
	mov	r2, r0
	ldr	r3, [fp, #-8]
	cmp	r3, r2
	bcc	.L91
	ldr	r3, .L94
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L94
	str	r2, [r1]
	ldr	r2, .L94+4
	mov	r1, #0
	str	r1, [r2, r3, lsl #2]
	b	.L84
.L92:
	nop
.L84:
.L93:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L95:
	.align	2
.L94:
	.word	here
	.word	target
	.size	pass4, .-pass4
	.section	.rodata
	.align	2
.LC9:
	.ascii	"Lookup failed: '%s'\012\000"
	.text
	.align	2
	.global	pass5
	.syntax unified
	.arm
	.fpu softvfp
	.type	pass5, %function
pass5:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #12
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #58
	beq	.L105
	cmp	r3, #58
	blt	.L106
	cmp	r3, #115
	bgt	.L106
	cmp	r3, #100
	blt	.L106
	sub	r3, r3, #100
	cmp	r3, #15
	ldrls	pc, [pc, r3, asl #2]
	b	.L106
.L100:
	.word	.L103
	.word	.L106
	.word	.L106
	.word	.L106
	.word	.L106
	.word	.L102
	.word	.L106
	.word	.L106
	.word	.L106
	.word	.L106
	.word	.L106
	.word	.L106
	.word	.L106
	.word	.L106
	.word	.L101
	.word	.L99
.L102:
	ldr	r3, .L108
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L108
	str	r3, [r2]
	b	.L98
.L101:
	ldr	r3, [fp, #-16]
	add	r2, r3, #2
	ldr	r3, .L108
	ldr	r4, [r3]
	add	r3, r4, #1
	ldr	r1, .L108
	str	r3, [r1]
	mov	r0, r2
	bl	lookup
	mov	r3, r0
	ldr	r2, .L108+4
	str	r3, [r2, r4, lsl #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #2
	mov	r0, r3
	bl	lookup
	mov	r3, r0
	cmn	r3, #1
	bne	.L107
	ldr	r3, [fp, #-16]
	add	r3, r3, #2
	mov	r1, r3
	ldr	r0, .L108+8
	bl	printf
	b	.L107
.L103:
	ldr	r3, .L108
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L108
	str	r3, [r2]
	b	.L98
.L99:
	ldr	r0, [fp, #-16]
	bl	strlen
	mov	r3, r0
	ldr	r2, .L108
	ldr	r2, [r2]
	add	r3, r3, r2
	sub	r3, r3, #1
	mov	r2, r3
	ldr	r3, .L108
	str	r2, [r3]
	b	.L98
.L105:
	nop
	b	.L106
.L107:
	nop
.L98:
.L106:
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L109:
	.align	2
.L108:
	.word	here
	.word	target
	.word	.LC9
	.size	pass5, .-pass5
	.section	.rodata
	.align	2
.LC10:
	.ascii	"~~~\000"
	.align	2
.LC11:
	.ascii	"```\000"
	.align	2
.LC12:
	.ascii	"Wrote %lld cells to ngaImage\012\000"
	.align	2
.LC13:
	.ascii	"No file specified.\000"
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r2, .L114
	ldr	r3, .L114+4
	mov	r0, r2
	mov	r1, r3
	mov	r3, #4
	mov	r2, r3
	bl	memcpy
	ldr	r2, .L114+8
	ldr	r3, .L114+4
	mov	r0, r2
	mov	r1, r3
	mov	r3, #4
	mov	r2, r3
	bl	memcpy
	ldr	r2, .L114+12
	ldr	r3, .L114+16
	mov	r0, r2
	mov	r1, r3
	mov	r3, #4
	mov	r2, r3
	bl	memcpy
	ldr	r2, .L114+20
	ldr	r3, .L114+16
	mov	r0, r2
	mov	r1, r3
	mov	r3, #4
	mov	r2, r3
	bl	memcpy
	ldr	r3, .L114+24
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	cmp	r3, #1
	ble	.L111
	ldr	r3, .L114+28
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #4
	ldr	r3, [r3]
	ldr	r2, .L114+32
	mov	r1, #0
	mov	r0, r3
	bl	unu
	ldr	r3, .L114+28
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #4
	ldr	r3, [r3]
	ldr	r2, .L114+36
	mov	r1, #0
	mov	r0, r3
	bl	unu
	ldr	r3, .L114+28
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #4
	ldr	r3, [r3]
	ldr	r2, .L114+40
	mov	r1, #0
	mov	r0, r3
	bl	unu
	ldr	r3, .L114+28
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #4
	ldr	r3, [r3]
	ldr	r2, .L114+44
	mov	r1, #0
	mov	r0, r3
	bl	unu
	ldr	r3, .L114+28
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #4
	ldr	r3, [r3]
	ldr	r2, .L114+48
	mov	r1, #0
	mov	r0, r3
	bl	unu
	bl	save
	ldr	r3, .L114+28
	ldr	r3, [r3]
	mov	r2, r3
	asr	r3, r2, #31
	ldr	r0, .L114+52
	bl	printf
	b	.L112
.L111:
	ldr	r0, .L114+56
	bl	puts
.L112:
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L115:
	.align	2
.L114:
	.word	code_start
	.word	.LC10
	.word	code_end
	.word	test_start
	.word	.LC11
	.word	test_end
	.word	np
	.word	here
	.word	pass1
	.word	pass2
	.word	pass3
	.word	pass4
	.word	pass5
	.word	.LC12
	.word	.LC13
	.size	main, .-main
	.align	2
	.global	bsd_strlcpy
	.syntax unified
	.arm
	.fpu softvfp
	.type	bsd_strlcpy, %function
bsd_strlcpy:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #28
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L117
	b	.L118
.L119:
	ldr	r2, [fp, #-20]
	add	r3, r2, #1
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-16]
	add	r1, r3, #1
	str	r1, [fp, #-16]
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L124
.L118:
	ldr	r3, [fp, #-12]
	sub	r3, r3, #1
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L119
	b	.L117
.L124:
	nop
.L117:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L120
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L125
	ldr	r3, [fp, #-16]
	mov	r2, #0
	strb	r2, [r3]
.L125:
	nop
.L122:
	ldr	r3, [fp, #-20]
	add	r2, r3, #1
	str	r2, [fp, #-20]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L122
.L120:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-8]
	sub	r3, r2, r3
	sub	r3, r3, #1
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	bsd_strlcpy, .-bsd_strlcpy
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
