	.file	"587577.c"
	.intel_syntax noprefix
	.text
	.local	complaint
	.comm	complaint,8,8
	.type	complain, @function
complain:
.LFB6:
	.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 -8[rbp], rdi
	mov	rax, QWORD PTR complaint[rip]
	test	rax, rax
	jne	.L3
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR complaint[rip], rax
.L3:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	complain, .-complain
	.local	the_store
	.comm	the_store,4096,32
	.section	.data.rel.local,"aw"
	.align 8
	.type	dictionary_ptr, @object
	.size	dictionary_ptr, 8
dictionary_ptr:
	.quad	the_store+4096
	.section	.rodata
.LC0:
	.string	"Store exhausted"
	.text
	.type	available, @function
available:
.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, 8
	mov	DWORD PTR -4[rbp], edi
	lea	rax, the_store[rip]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -4[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR dictionary_ptr[rip]
	cmp	rdx, rax
	ja	.L5
	mov	eax, 1
	jmp	.L6
.L5:
	lea	rdi, .LC0[rip]
	call	complain
	mov	eax, 0
.L6:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	available, .-available
	.type	next_header, @function
next_header:
.LFB8:
	.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	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 3[rax]
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 2[rax]
	shr	al, 4
	movzx	eax, al
	add	rax, rdx
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	next_header, .-next_header
	.section	.rodata
.LC1:
	.string	"the_stack_data/587577.c"
.LC2:
	.string	"name"
.LC3:
	.string	"length < (1<<4)"
.LC4:
	.string	"kind <= a_local"
.LC5:
	.string	"binding < (1<<14)"
.LC6:
	.string	"arity < (1<<4)"
	.text
	.type	bind, @function
bind:
.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, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	DWORD PTR -32[rbp], edx
	mov	DWORD PTR -36[rbp], ecx
	mov	DWORD PTR -40[rbp], r8d
	cmp	QWORD PTR -24[rbp], 0
	jne	.L10
	lea	rcx, __PRETTY_FUNCTION__.2[rip]
	mov	edx, 107
	lea	rsi, .LC1[rip]
	lea	rdi, .LC2[rip]
	call	__assert_fail@PLT
.L10:
	cmp	DWORD PTR -28[rbp], 15
	jbe	.L11
	lea	rcx, __PRETTY_FUNCTION__.2[rip]
	mov	edx, 108
	lea	rsi, .LC1[rip]
	lea	rdi, .LC3[rip]
	call	__assert_fail@PLT
.L11:
	cmp	DWORD PTR -32[rbp], 3
	jbe	.L12
	lea	rcx, __PRETTY_FUNCTION__.2[rip]
	mov	edx, 109
	lea	rsi, .LC1[rip]
	lea	rdi, .LC4[rip]
	call	__assert_fail@PLT
.L12:
	cmp	DWORD PTR -36[rbp], 16383
	jbe	.L13
	lea	rcx, __PRETTY_FUNCTION__.2[rip]
	mov	edx, 110
	lea	rsi, .LC1[rip]
	lea	rdi, .LC5[rip]
	call	__assert_fail@PLT
.L13:
	cmp	DWORD PTR -40[rbp], 15
	jbe	.L14
	lea	rcx, __PRETTY_FUNCTION__.2[rip]
	mov	edx, 111
	lea	rsi, .LC1[rip]
	lea	rdi, .LC6[rip]
	call	__assert_fail@PLT
.L14:
	mov	eax, DWORD PTR -28[rbp]
	add	eax, 3
	mov	edi, eax
	call	available
	test	eax, eax
	je	.L15
	mov	rax, QWORD PTR dictionary_ptr[rip]
	mov	edx, DWORD PTR -28[rbp]
	mov	rcx, -3
	sub	rcx, rdx
	add	rax, rcx
	mov	QWORD PTR dictionary_ptr[rip], rax
	mov	rax, QWORD PTR dictionary_ptr[rip]
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -32[rbp]
	and	eax, 3
	mov	rdx, QWORD PTR -8[rbp]
	and	eax, 3
	mov	ecx, eax
	movzx	eax, BYTE PTR [rdx]
	and	eax, -4
	or	eax, ecx
	mov	BYTE PTR [rdx], al
	mov	eax, DWORD PTR -36[rbp]
	mov	edx, eax
	and	dx, 16383
	mov	rax, QWORD PTR -8[rbp]
	movzx	ecx, dx
	and	ecx, 63
	lea	esi, 0[0+rcx*4]
	movzx	ecx, BYTE PTR [rax]
	and	ecx, 3
	or	ecx, esi
	mov	BYTE PTR [rax], cl
	shr	dx, 6
	movzx	edx, dx
	movzx	ecx, dl
	movzx	edx, BYTE PTR 1[rax]
	and	edx, 0
	or	edx, ecx
	mov	BYTE PTR 1[rax], dl
	mov	eax, DWORD PTR -40[rbp]
	and	eax, 15
	mov	rdx, QWORD PTR -8[rbp]
	and	eax, 15
	mov	ecx, eax
	movzx	eax, BYTE PTR 2[rdx]
	and	eax, -16
	or	eax, ecx
	mov	BYTE PTR 2[rdx], al
	mov	eax, DWORD PTR -28[rbp]
	and	eax, 15
	mov	rdx, QWORD PTR -8[rbp]
	sal	eax, 4
	mov	ecx, eax
	movzx	eax, BYTE PTR 2[rdx]
	and	eax, 15
	or	eax, ecx
	mov	BYTE PTR 2[rdx], al
	mov	edx, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -8[rbp]
	lea	rcx, 3[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	call	memcpy@PLT
	mov	rax, QWORD PTR -8[rbp]
	jmp	.L16
.L15:
	mov	eax, 0
.L16:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	bind, .-bind
	.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, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	DWORD PTR -44[rbp], ecx
	jmp	.L18
.L21:
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 2[rax]
	shr	al, 4
	movzx	eax, al
	cmp	DWORD PTR -44[rbp], eax
	jne	.L19
	mov	edx, DWORD PTR -44[rbp]
	mov	rax, QWORD PTR -8[rbp]
	lea	rcx, 3[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	call	memcmp@PLT
	test	eax, eax
	jne	.L19
	mov	rax, QWORD PTR -8[rbp]
	jmp	.L20
.L19:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	next_header
	mov	QWORD PTR -24[rbp], rax
.L18:
	mov	rax, QWORD PTR -24[rbp]
	cmp	rax, QWORD PTR -32[rbp]
	jb	.L21
	mov	eax, 0
.L20:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	lookup, .-lookup
	.section	.rodata
.LC7:
	.string	"HALT"
.LC8:
	.string	"PUSH"
.LC9:
	.string	"POP"
.LC10:
	.string	"PUSH_STRING"
.LC11:
	.string	"GLOBAL_FETCH"
.LC12:
	.string	"GLOBAL_STORE"
.LC13:
	.string	"LOCAL_FETCH"
.LC14:
	.string	"CALL"
.LC15:
	.string	"RETURN"
.LC16:
	.string	"BRANCH"
.LC17:
	.string	"JUMP"
.LC18:
	.string	"ADD"
.LC19:
	.string	"SUB"
.LC20:
	.string	"MUL"
.LC21:
	.string	"DIV"
.LC22:
	.string	"MOD"
.LC23:
	.string	"UMUL"
.LC24:
	.string	"UDIV"
.LC25:
	.string	"UMOD"
.LC26:
	.string	"NEGATE"
.LC27:
	.string	"EQ"
.LC28:
	.string	"LT"
.LC29:
	.string	"ULT"
.LC30:
	.string	"AND"
.LC31:
	.string	"OR"
.LC32:
	.string	"XOR"
.LC33:
	.string	"SLA"
.LC34:
	.string	"SRA"
.LC35:
	.string	"SRL"
.LC36:
	.string	"GETC"
.LC37:
	.string	"PUTC"
.LC38:
	.string	"FETCH_BYTE"
.LC39:
	.string	"PEEK"
.LC40:
	.string	"POKE"
	.section	.data.rel.local
	.align 32
	.type	opcode_names, @object
	.size	opcode_names, 272
opcode_names:
	.quad	.LC7
	.quad	.LC8
	.quad	.LC9
	.quad	.LC10
	.quad	.LC11
	.quad	.LC12
	.quad	.LC13
	.quad	.LC14
	.quad	.LC15
	.quad	.LC16
	.quad	.LC17
	.quad	.LC18
	.quad	.LC19
	.quad	.LC20
	.quad	.LC21
	.quad	.LC22
	.quad	.LC23
	.quad	.LC24
	.quad	.LC25
	.quad	.LC26
	.quad	.LC27
	.quad	.LC28
	.quad	.LC29
	.quad	.LC30
	.quad	.LC31
	.quad	.LC32
	.quad	.LC33
	.quad	.LC34
	.quad	.LC35
	.quad	.LC36
	.quad	.LC37
	.quad	.LC38
	.quad	.LC39
	.quad	.LC40
	.section	.rodata
	.align 32
	.type	primitive_dictionary, @object
	.size	primitive_dictionary, 73
primitive_dictionary:
	.string	"@"
	.string	"BumulD"
	.string	"BudivH"
	.string	"BumodX"
	.string	"2ulth"
	.string	"2slal"
	.string	"2srap"
	.string	"2srlt"
	.string	"@getcx"
	.string	"Aputc\200"
	.string	"Apeek\204"
	.ascii	"Apoke"
.LC41:
	.string	"0"
.LC42:
	.string	"Stack overflow"
	.text
	.type	run, @function
run:
.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, 80
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	rax, QWORD PTR dictionary_ptr[rip]
	mov	eax, eax
	and	rax, -4
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -32[rbp], rax
.L74:
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -72[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cmp	eax, 33
	ja	.L75
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L25[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L25[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L25:
	.long	.L58-.L25
	.long	.L57-.L25
	.long	.L56-.L25
	.long	.L55-.L25
	.long	.L54-.L25
	.long	.L53-.L25
	.long	.L52-.L25
	.long	.L51-.L25
	.long	.L50-.L25
	.long	.L49-.L25
	.long	.L48-.L25
	.long	.L47-.L25
	.long	.L46-.L25
	.long	.L45-.L25
	.long	.L44-.L25
	.long	.L43-.L25
	.long	.L42-.L25
	.long	.L41-.L25
	.long	.L40-.L25
	.long	.L39-.L25
	.long	.L38-.L25
	.long	.L37-.L25
	.long	.L36-.L25
	.long	.L35-.L25
	.long	.L34-.L25
	.long	.L33-.L25
	.long	.L32-.L25
	.long	.L31-.L25
	.long	.L30-.L25
	.long	.L29-.L25
	.long	.L28-.L25
	.long	.L27-.L25
	.long	.L26-.L25
	.long	.L24-.L25
	.text
.L58:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	jmp	.L59
.L57:
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, 4
	cmp	QWORD PTR -80[rbp], rax
	ja	.L76
	sub	QWORD PTR -40[rbp], 4
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], edx
	add	QWORD PTR -72[rbp], 4
	jmp	.L62
.L56:
	add	QWORD PTR -40[rbp], 4
	jmp	.L62
.L55:
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, 4
	cmp	QWORD PTR -80[rbp], rax
	ja	.L77
	mov	rax, QWORD PTR -72[rbp]
	sub	QWORD PTR -40[rbp], 4
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	strlen@PLT
	add	rax, 1
	add	QWORD PTR -72[rbp], rax
	jmp	.L62
.L54:
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, 4
	cmp	QWORD PTR -80[rbp], rax
	ja	.L78
	mov	rax, QWORD PTR -72[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	lea	rdx, the_store[rip]
	add	rax, rdx
	sub	QWORD PTR -40[rbp], 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], edx
	add	QWORD PTR -72[rbp], 2
	jmp	.L62
.L53:
	mov	rax, QWORD PTR -72[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	lea	rdx, the_store[rip]
	add	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR [rdx], eax
	add	QWORD PTR -72[rbp], 2
	jmp	.L62
.L52:
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, 4
	cmp	QWORD PTR -80[rbp], rax
	ja	.L79
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -72[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	neg	eax
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	sub	QWORD PTR -40[rbp], 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L62
.L51:
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 3
	mov	QWORD PTR -24[rbp], rax
	jmp	.L66
.L67:
	add	QWORD PTR -24[rbp], 1
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	add	QWORD PTR -24[rbp], rax
.L66:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 10
	je	.L67
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 8
	jne	.L68
	mov	rax, QWORD PTR -72[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -49[rbp], al
	movzx	eax, BYTE PTR -49[rbp]
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -44[rbp], eax
	movzx	eax, BYTE PTR -49[rbp]
	lea	rdx, 0[0+rax*4]
	movzx	ecx, BYTE PTR -49[rbp]
	mov	eax, 1
	sub	rax, rcx
	lea	rcx, 0[0+rax*4]
	mov	rax, QWORD PTR -32[rbp]
	add	rcx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	call	memmove@PLT
	movzx	eax, BYTE PTR -49[rbp]
	sal	rax, 2
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -44[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L69
.L68:
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, 4
	cmp	QWORD PTR -80[rbp], rax
	ja	.L80
	sub	QWORD PTR -40[rbp], 4
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -8[rbp], rax
	lea	rdx, the_store[rip]
	mov	rax, QWORD PTR -32[rbp]
	sub	rax, rdx
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	WORD PTR [rax], dx
	lea	rcx, the_store[rip]
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 2
	mov	WORD PTR [rax], dx
	mov	rax, QWORD PTR -72[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	QWORD PTR -32[rbp], rax
.L69:
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 1
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	lea	rdx, the_store[rip]
	add	rax, rdx
	mov	QWORD PTR -72[rbp], rax
	jmp	.L62
.L50:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -48[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	lea	rdx, the_store[rip]
	add	rax, rdx
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 2
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	lea	rdx, the_store[rip]
	add	rax, rdx
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -48[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L62
.L49:
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, 4[rax]
	mov	QWORD PTR -40[rbp], rdx
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L71
	mov	rax, QWORD PTR -72[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	add	QWORD PTR -72[rbp], rax
	jmp	.L62
.L71:
	add	QWORD PTR -72[rbp], 2
	jmp	.L62
.L48:
	mov	rax, QWORD PTR -72[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	add	QWORD PTR -72[rbp], rax
	jmp	.L62
.L47:
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	add	edx, ecx
	mov	DWORD PTR [rax], edx
	add	QWORD PTR -40[rbp], 4
	jmp	.L62
.L46:
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	sub	edx, ecx
	mov	DWORD PTR [rax], edx
	add	QWORD PTR -40[rbp], 4
	jmp	.L62
.L45:
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -40[rbp]
	add	rdx, 4
	imul	eax, ecx
	mov	DWORD PTR [rdx], eax
	add	QWORD PTR -40[rbp], 4
	jmp	.L62
.L44:
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -40[rbp]
	mov	edi, DWORD PTR [rdx]
	mov	rcx, QWORD PTR -40[rbp]
	add	rcx, 4
	cdq
	idiv	edi
	mov	DWORD PTR [rcx], eax
	add	QWORD PTR -40[rbp], 4
	jmp	.L62
.L43:
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -40[rbp]
	mov	esi, DWORD PTR [rdx]
	mov	rdx, QWORD PTR -40[rbp]
	lea	rcx, 4[rdx]
	cdq
	idiv	esi
	mov	eax, edx
	mov	DWORD PTR [rcx], eax
	add	QWORD PTR -40[rbp], 4
	jmp	.L62
.L42:
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	imul	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	mov	DWORD PTR [rax], edx
	add	QWORD PTR -40[rbp], 4
	jmp	.L62
.L41:
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	eax, edx
	mov	edx, 0
	div	ecx
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	mov	DWORD PTR [rax], edx
	add	QWORD PTR -40[rbp], 4
	jmp	.L62
.L40:
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	eax, edx
	mov	edx, 0
	div	ecx
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	mov	DWORD PTR [rax], edx
	add	QWORD PTR -40[rbp], 4
	jmp	.L62
.L39:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	neg	eax
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L62
.L38:
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	sete	cl
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, 4[rax]
	movzx	eax, cl
	mov	DWORD PTR [rdx], eax
	add	QWORD PTR -40[rbp], 4
	jmp	.L62
.L37:
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	setl	cl
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, 4[rax]
	movzx	eax, cl
	mov	DWORD PTR [rdx], eax
	add	QWORD PTR -40[rbp], 4
	jmp	.L62
.L36:
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	setb	cl
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, 4[rax]
	movzx	eax, cl
	mov	DWORD PTR [rdx], eax
	add	QWORD PTR -40[rbp], 4
	jmp	.L62
.L35:
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	and	edx, ecx
	mov	DWORD PTR [rax], edx
	add	QWORD PTR -40[rbp], 4
	jmp	.L62
.L34:
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	or	edx, ecx
	mov	DWORD PTR [rax], edx
	add	QWORD PTR -40[rbp], 4
	jmp	.L62
.L33:
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	add	QWORD PTR -40[rbp], 4
	jmp	.L62
.L32:
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	mov	esi, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -40[rbp]
	add	rdx, 4
	mov	ecx, eax
	sal	esi, cl
	mov	eax, esi
	mov	DWORD PTR [rdx], eax
	add	QWORD PTR -40[rbp], 4
	jmp	.L62
.L31:
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	mov	esi, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -40[rbp]
	add	rdx, 4
	mov	ecx, eax
	sar	esi, cl
	mov	eax, esi
	mov	DWORD PTR [rdx], eax
	add	QWORD PTR -40[rbp], 4
	jmp	.L62
.L30:
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	shr	edx, cl
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	mov	DWORD PTR [rax], edx
	add	QWORD PTR -40[rbp], 4
	jmp	.L62
.L29:
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, 4
	cmp	QWORD PTR -80[rbp], rax
	ja	.L81
	mov	rax, QWORD PTR stdin[rip]
	sub	QWORD PTR -40[rbp], 4
	mov	rdi, rax
	call	getc@PLT
	mov	rdx, QWORD PTR -40[rbp]
	mov	DWORD PTR [rdx], eax
	jmp	.L62
.L28:
	mov	rdx, QWORD PTR stdout[rip]
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	mov	rsi, rdx
	mov	edi, eax
	call	putc@PLT
	jmp	.L62
.L27:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L62
.L26:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L62
.L24:
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR [rdx], eax
	add	QWORD PTR -40[rbp], 4
	jmp	.L62
.L75:
	lea	rcx, __PRETTY_FUNCTION__.1[rip]
	mov	edx, 412
	lea	rsi, .LC1[rip]
	lea	rdi, .LC41[rip]
	call	__assert_fail@PLT
.L62:
	jmp	.L74
.L76:
	nop
	jmp	.L61
.L77:
	nop
	jmp	.L61
.L78:
	nop
	jmp	.L61
.L79:
	nop
	jmp	.L61
.L80:
	nop
	jmp	.L61
.L81:
	nop
.L61:
	lea	rdi, .LC42[rip]
	call	complain
	mov	eax, 0
.L59:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	run, .-run
	.local	prev_instruc
	.comm	prev_instruc,8,8
	.type	gen, @function
gen:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 8
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	mov	edi, 1
	call	available
	test	eax, eax
	je	.L84
	lea	rax, the_store[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR prev_instruc[rip], rax
	lea	rdx, the_store[rip]
	mov	rax, QWORD PTR [rdx]
	lea	rcx, 1[rax]
	mov	QWORD PTR [rdx], rcx
	movzx	edx, BYTE PTR -4[rbp]
	mov	BYTE PTR [rax], dl
.L84:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	gen, .-gen
	.type	gen_ubyte, @function
gen_ubyte:
.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, 8
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	mov	edi, 1
	call	available
	test	eax, eax
	je	.L87
	lea	rdx, the_store[rip]
	mov	rax, QWORD PTR [rdx]
	lea	rcx, 1[rax]
	mov	QWORD PTR [rdx], rcx
	movzx	edx, BYTE PTR -4[rbp]
	mov	BYTE PTR [rax], dl
.L87:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	gen_ubyte, .-gen_ubyte
	.type	gen_ushort, @function
gen_ushort:
.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, 8
	mov	eax, edi
	mov	WORD PTR -4[rbp], ax
	mov	edi, 2
	call	available
	test	eax, eax
	je	.L90
	lea	rax, the_store[rip]
	mov	rax, QWORD PTR [rax]
	movzx	edx, WORD PTR -4[rbp]
	mov	WORD PTR [rax], dx
	lea	rax, the_store[rip]
	mov	rdx, QWORD PTR [rax]
	lea	rax, the_store[rip]
	add	rdx, 2
	mov	QWORD PTR [rax], rdx
.L90:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	gen_ushort, .-gen_ushort
	.type	gen_value, @function
gen_value:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 8
	mov	DWORD PTR -4[rbp], edi
	mov	edi, 4
	call	available
	test	eax, eax
	je	.L93
	lea	rax, the_store[rip]
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR -4[rbp]
	mov	DWORD PTR [rax], edx
	lea	rax, the_store[rip]
	mov	rdx, QWORD PTR [rax]
	lea	rax, the_store[rip]
	add	rdx, 4
	mov	QWORD PTR [rax], rdx
.L93:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	gen_value, .-gen_value
	.type	forward_ref, @function
forward_ref:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	rax, the_store[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	lea	rax, the_store[rip]
	mov	rdx, QWORD PTR [rax]
	lea	rax, the_store[rip]
	add	rdx, 2
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	forward_ref, .-forward_ref
	.type	resolve, @function
resolve:
.LFB17:
	.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 -8[rbp], rdi
	lea	rax, the_store[rip]
	mov	rax, QWORD PTR [rax]
	sub	rax, QWORD PTR -8[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	WORD PTR [rax], dx
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	resolve, .-resolve
	.data
	.align 4
	.type	input_char, @object
	.size	input_char, 4
input_char:
	.long	-2
	.local	token
	.comm	token,4,4
	.local	token_value
	.comm	token_value,4,4
	.local	token_name
	.comm	token_name,16,16
	.text
	.type	ch, @function
ch:
.LFB18:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, DWORD PTR input_char[rip]
	cmp	eax, -2
	jne	.L98
	mov	rax, QWORD PTR stdin[rip]
	mov	rdi, rax
	call	getc@PLT
	mov	DWORD PTR input_char[rip], eax
.L98:
	mov	eax, DWORD PTR input_char[rip]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	ch, .-ch
	.type	next_char, @function
next_char:
.LFB19:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, DWORD PTR input_char[rip]
	cmp	eax, -1
	je	.L102
	mov	DWORD PTR input_char[rip], -2
.L102:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	next_char, .-next_char
	.type	skip_line, @function
skip_line:
.LFB20:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	jmp	.L104
.L106:
	call	next_char
.L104:
	call	ch
	cmp	eax, 10
	je	.L107
	call	ch
	cmp	eax, -1
	jne	.L106
.L107:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	skip_line, .-skip_line
	.type	hex_char_value, @function
hex_char_value:
.LFB21:
	.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	eax, edi
	mov	BYTE PTR -4[rbp], al
	cmp	BYTE PTR -4[rbp], 57
	jg	.L109
	movsx	eax, BYTE PTR -4[rbp]
	sub	eax, 48
	jmp	.L111
.L109:
	movsx	eax, BYTE PTR -4[rbp]
	mov	edi, eax
	call	toupper@PLT
	sub	eax, 55
.L111:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	hex_char_value, .-hex_char_value
	.section	.rodata
.LC43:
	.string	"Identifier too long"
.LC44:
	.string	"then"
.LC45:
	.string	"forget"
.LC46:
	.string	"let"
.LC47:
	.string	"if"
.LC48:
	.string	"fun"
.LC49:
	.string	"else"
.LC50:
	.string	"Unterminated string"
.LC51:
	.string	"Lexical error"
	.text
	.type	next, @function
next:
.LFB22:
	.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
.L113:
	call	__ctype_b_loc@PLT
	mov	rbx, QWORD PTR [rax]
	call	ch
	cdqe
	add	rax, rax
	add	rax, rbx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 2048
	test	eax, eax
	je	.L114
	mov	DWORD PTR token[rip], 1
	mov	DWORD PTR token_value[rip], 0
.L119:
	mov	edx, DWORD PTR token_value[rip]
	mov	eax, edx
	sal	eax, 2
	add	eax, edx
	add	eax, eax
	mov	ebx, eax
	call	ch
	add	eax, ebx
	sub	eax, 48
	mov	DWORD PTR token_value[rip], eax
	call	next_char
	call	ch
	cmp	eax, 120
	jne	.L115
	mov	eax, DWORD PTR token_value[rip]
	test	eax, eax
	jne	.L115
	call	next_char
	jmp	.L116
.L117:
	mov	eax, DWORD PTR token_value[rip]
	sal	eax, 4
	mov	ebx, eax
	call	ch
	movsx	eax, al
	mov	edi, eax
	call	hex_char_value
	add	eax, ebx
	mov	DWORD PTR token_value[rip], eax
	call	next_char
.L116:
	call	__ctype_b_loc@PLT
	mov	rbx, QWORD PTR [rax]
	call	ch
	cdqe
	add	rax, rax
	add	rax, rbx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 4096
	test	eax, eax
	jne	.L117
	jmp	.L112
.L115:
	call	__ctype_b_loc@PLT
	mov	rbx, QWORD PTR [rax]
	call	ch
	cdqe
	add	rax, rax
	add	rax, rbx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 2048
	test	eax, eax
	jne	.L119
	jmp	.L112
.L114:
	call	__ctype_b_loc@PLT
	mov	rbx, QWORD PTR [rax]
	call	ch
	cdqe
	add	rax, rax
	add	rax, rbx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 1024
	test	eax, eax
	jne	.L121
	call	ch
	cmp	eax, 95
	jne	.L122
.L121:
	lea	rax, token_name[rip]
	mov	QWORD PTR -32[rbp], rax
.L125:
	mov	rax, QWORD PTR -32[rbp]
	lea	rdx, 1[rax]
	lea	rax, token_name[rip+16]
	cmp	rdx, rax
	jne	.L123
	lea	rdi, .LC43[rip]
	call	complain
	jmp	.L124
.L123:
	call	ch
	mov	ecx, eax
	mov	rax, QWORD PTR -32[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -32[rbp], rdx
	mov	edx, ecx
	mov	BYTE PTR [rax], dl
	call	next_char
	call	__ctype_b_loc@PLT
	mov	rbx, QWORD PTR [rax]
	call	ch
	cdqe
	add	rax, rax
	add	rax, rbx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 8
	test	eax, eax
	jne	.L125
	call	ch
	cmp	eax, 95
	je	.L125
.L124:
	mov	rax, QWORD PTR -32[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -32[rbp], rdx
	mov	BYTE PTR [rax], 0
	lea	rsi, .LC44[rip]
	lea	rdi, token_name[rip]
	call	strcmp@PLT
	test	eax, eax
	jne	.L126
	mov	DWORD PTR token[rip], 116
	jmp	.L112
.L126:
	lea	rsi, .LC45[rip]
	lea	rdi, token_name[rip]
	call	strcmp@PLT
	test	eax, eax
	jne	.L128
	mov	DWORD PTR token[rip], 111
	jmp	.L112
.L128:
	lea	rsi, .LC46[rip]
	lea	rdi, token_name[rip]
	call	strcmp@PLT
	test	eax, eax
	jne	.L129
	mov	DWORD PTR token[rip], 108
	jmp	.L112
.L129:
	lea	rsi, .LC47[rip]
	lea	rdi, token_name[rip]
	call	strcmp@PLT
	test	eax, eax
	jne	.L130
	mov	DWORD PTR token[rip], 105
	jmp	.L112
.L130:
	lea	rsi, .LC48[rip]
	lea	rdi, token_name[rip]
	call	strcmp@PLT
	test	eax, eax
	jne	.L131
	mov	DWORD PTR token[rip], 102
	jmp	.L112
.L131:
	lea	rsi, .LC49[rip]
	lea	rdi, token_name[rip]
	call	strcmp@PLT
	test	eax, eax
	jne	.L132
	mov	DWORD PTR token[rip], 101
	jmp	.L112
.L132:
	mov	DWORD PTR token[rip], 97
	jmp	.L112
.L122:
	call	ch
	add	eax, 1
	cmp	eax, 125
	ja	.L133
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L135[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L135[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L135:
	.long	.L134-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L138-.L135
	.long	.L134-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L138-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L138-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L137-.L135
	.long	.L133-.L135
	.long	.L134-.L135
	.long	.L134-.L135
	.long	.L136-.L135
	.long	.L134-.L135
	.long	.L134-.L135
	.long	.L134-.L135
	.long	.L134-.L135
	.long	.L133-.L135
	.long	.L134-.L135
	.long	.L133-.L135
	.long	.L134-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L134-.L135
	.long	.L134-.L135
	.long	.L134-.L135
	.long	.L134-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L134-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L133-.L135
	.long	.L134-.L135
	.text
.L136:
	call	next_char
	lea	rax, the_store[rip]
	mov	rax, QWORD PTR [rax]
	add	rax, 1
	mov	QWORD PTR -24[rbp], rax
	jmp	.L139
.L142:
	call	ch
	cmp	eax, -1
	jne	.L140
	lea	rdi, .LC50[rip]
	call	complain
	mov	DWORD PTR token[rip], -1
	jmp	.L112
.L140:
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 2[rax]
	lea	rax, the_store[rip]
	mov	rcx, QWORD PTR [rax]
	mov	rax, rdx
	sub	rax, rcx
	mov	edi, eax
	call	available
	test	eax, eax
	jne	.L141
	mov	DWORD PTR token[rip], 10
	jmp	.L112
.L141:
	call	ch
	mov	ecx, eax
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -24[rbp], rdx
	mov	edx, ecx
	mov	BYTE PTR [rax], dl
	call	next_char
.L139:
	call	ch
	cmp	eax, 39
	jne	.L142
	call	next_char
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR [rax], 0
	mov	DWORD PTR token[rip], 39
	jmp	.L112
.L134:
	call	ch
	mov	DWORD PTR token[rip], eax
	call	next_char
	jmp	.L112
.L138:
	call	next_char
	jmp	.L113
.L137:
	call	skip_line
	jmp	.L113
.L133:
	lea	rdi, .LC51[rip]
	call	complain
	mov	DWORD PTR token[rip], 10
	nop
.L112:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE22:
	.size	next, .-next
	.type	expect, @function
expect:
.LFB23:
	.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	eax, edi
	mov	QWORD PTR -16[rbp], rsi
	mov	BYTE PTR -4[rbp], al
	movzx	edx, BYTE PTR -4[rbp]
	mov	eax, DWORD PTR token[rip]
	cmp	edx, eax
	jne	.L144
	mov	eax, 1
	jmp	.L145
.L144:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	complain
	mov	eax, 0
.L145:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE23:
	.size	expect, .-expect
	.type	skip_newline, @function
skip_newline:
.LFB24:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	jmp	.L147
.L149:
	call	next
.L147:
	mov	rax, QWORD PTR complaint[rip]
	test	rax, rax
	jne	.L150
	mov	eax, DWORD PTR token[rip]
	cmp	eax, 10
	je	.L149
.L150:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE24:
	.size	skip_newline, .-skip_newline
	.type	parse_arguments, @function
parse_arguments:
.LFB25:
	.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	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -4[rbp], 0
	jmp	.L152
.L153:
	mov	edi, 20
	call	parse_expr
	add	DWORD PTR -4[rbp], 1
.L152:
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, DWORD PTR -20[rbp]
	jb	.L153
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE25:
	.size	parse_arguments, .-parse_arguments
	.section	.rodata
.LC52:
	.string	"Unknown identifier"
.LC53:
	.string	"Expected 'then'"
.LC54:
	.string	"Expected 'else'"
.LC55:
	.string	"Syntax error: expected ')'"
	.align 8
.LC56:
	.string	"Syntax error: expected a factor"
	.text
	.type	parse_factor, @function
parse_factor:
.LFB26:
	.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
	call	skip_newline
	mov	eax, DWORD PTR token[rip]
	cmp	eax, 105
	je	.L155
	cmp	eax, 105
	jg	.L156
	cmp	eax, 97
	je	.L157
	cmp	eax, 97
	jg	.L156
	cmp	eax, 45
	je	.L158
	cmp	eax, 45
	jg	.L156
	cmp	eax, 42
	je	.L159
	cmp	eax, 42
	jg	.L156
	cmp	eax, 40
	je	.L160
	cmp	eax, 40
	jg	.L156
	cmp	eax, 1
	je	.L161
	cmp	eax, 39
	je	.L162
	jmp	.L156
.L161:
	mov	edi, 1
	call	gen
	mov	eax, DWORD PTR token_value[rip]
	mov	edi, eax
	call	gen_value
	call	next
	jmp	.L163
.L162:
	mov	edi, 3
	call	gen
	lea	rax, the_store[rip]
	mov	rbx, QWORD PTR [rax]
	lea	rax, the_store[rip]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	strlen@PLT
	lea	rdx, 1[rax]
	lea	rax, the_store[rip]
	add	rdx, rbx
	mov	QWORD PTR [rax], rdx
	call	next
	jmp	.L163
.L157:
	lea	rdi, token_name[rip]
	call	strlen@PLT
	mov	edx, eax
	lea	rsi, the_store[rip+4096]
	mov	rax, QWORD PTR dictionary_ptr[rip]
	mov	ecx, edx
	lea	rdx, token_name[rip]
	mov	rdi, rax
	call	lookup
	mov	QWORD PTR -40[rbp], rax
	cmp	QWORD PTR -40[rbp], 0
	jne	.L164
	lea	rdi, token_name[rip]
	call	strlen@PLT
	mov	edx, eax
	lea	rax, primitive_dictionary[rip+73]
	mov	ecx, edx
	lea	rdx, token_name[rip]
	mov	rsi, rax
	lea	rdi, primitive_dictionary[rip]
	call	lookup
	mov	QWORD PTR -40[rbp], rax
.L164:
	cmp	QWORD PTR -40[rbp], 0
	jne	.L165
	lea	rdi, .LC52[rip]
	call	complain
	jmp	.L163
.L165:
	call	next
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR [rax]
	and	eax, 3
	movzx	eax, al
	cmp	eax, 3
	je	.L167
	cmp	eax, 3
	jg	.L168
	cmp	eax, 2
	je	.L169
	cmp	eax, 2
	jg	.L168
	test	eax, eax
	je	.L170
	cmp	eax, 1
	je	.L171
	jmp	.L168
.L169:
	mov	edi, 4
	call	gen
	mov	rax, QWORD PTR -40[rbp]
	movzx	edx, BYTE PTR [rax]
	shr	dl, 2
	movzx	edx, dl
	movzx	eax, BYTE PTR 1[rax]
	sal	rax, 6
	or	rax, rdx
	movzx	eax, ax
	mov	edi, eax
	call	gen_ushort
	jmp	.L166
.L167:
	mov	edi, 6
	call	gen
	mov	rax, QWORD PTR -40[rbp]
	movzx	edx, BYTE PTR [rax]
	shr	dl, 2
	movzx	edx, dl
	movzx	eax, BYTE PTR 1[rax]
	sal	rax, 6
	or	rax, rdx
	movzx	eax, al
	mov	edi, eax
	call	gen_ubyte
	jmp	.L166
.L171:
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 2[rax]
	and	eax, 15
	movzx	eax, al
	mov	edi, eax
	call	parse_arguments
	mov	edi, 7
	call	gen
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 2[rax]
	and	eax, 15
	movzx	eax, al
	mov	edi, eax
	call	gen_ubyte
	mov	rax, QWORD PTR -40[rbp]
	movzx	edx, BYTE PTR [rax]
	shr	dl, 2
	movzx	edx, dl
	movzx	eax, BYTE PTR 1[rax]
	sal	rax, 6
	or	rax, rdx
	movzx	eax, ax
	mov	edi, eax
	call	gen_ushort
	jmp	.L166
.L170:
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 2[rax]
	and	eax, 15
	movzx	eax, al
	mov	edi, eax
	call	parse_arguments
	mov	rax, QWORD PTR -40[rbp]
	movzx	edx, BYTE PTR [rax]
	shr	dl, 2
	movzx	edx, dl
	movzx	eax, BYTE PTR 1[rax]
	sal	rax, 6
	or	rax, rdx
	movzx	eax, al
	mov	edi, eax
	call	gen
	jmp	.L166
.L168:
	lea	rcx, __PRETTY_FUNCTION__.0[rip]
	mov	edx, 718
	lea	rsi, .LC1[rip]
	lea	rdi, .LC41[rip]
	call	__assert_fail@PLT
.L166:
	jmp	.L163
.L155:
	call	next
	mov	edi, 0
	call	parse_expr
	mov	edi, 9
	call	gen
	call	forward_ref
	mov	QWORD PTR -32[rbp], rax
	call	skip_newline
	lea	rsi, .LC53[rip]
	mov	edi, 116
	call	expect
	test	eax, eax
	je	.L174
	call	next
	mov	edi, 3
	call	parse_expr
	mov	edi, 10
	call	gen
	call	forward_ref
	mov	QWORD PTR -24[rbp], rax
	call	skip_newline
	lea	rsi, .LC54[rip]
	mov	edi, 101
	call	expect
	test	eax, eax
	je	.L174
	call	next
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	resolve
	mov	edi, 3
	call	parse_expr
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	resolve
	jmp	.L174
.L159:
	call	next
	call	parse_factor
	mov	edi, 31
	call	gen
	jmp	.L163
.L158:
	call	next
	call	parse_factor
	mov	edi, 19
	call	gen
	jmp	.L163
.L160:
	call	next
	mov	edi, 0
	call	parse_expr
	lea	rsi, .LC55[rip]
	mov	edi, 41
	call	expect
	test	eax, eax
	je	.L175
	call	next
	jmp	.L175
.L156:
	lea	rdi, .LC56[rip]
	call	complain
	jmp	.L176
.L174:
	nop
	jmp	.L176
.L175:
	nop
.L163:
.L176:
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE26:
	.size	parse_factor, .-parse_factor
	.section	.rodata
.LC57:
	.string	"Not an l-value"
	.text
	.type	parse_expr, @function
parse_expr:
.LFB27:
	.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	DWORD PTR -20[rbp], edi
	mov	rax, QWORD PTR complaint[rip]
	test	rax, rax
	jne	.L203
	call	parse_factor
	jmp	.L180
.L202:
	cmp	DWORD PTR -20[rbp], 0
	jne	.L181
	call	skip_newline
.L181:
	mov	eax, DWORD PTR token[rip]
	sub	eax, 37
	cmp	eax, 87
	ja	.L204
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L184[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L184[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L184:
	.long	.L195-.L184
	.long	.L194-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L193-.L184
	.long	.L192-.L184
	.long	.L204-.L184
	.long	.L191-.L184
	.long	.L204-.L184
	.long	.L190-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L189-.L184
	.long	.L188-.L184
	.long	.L187-.L184
	.long	.L186-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L185-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L204-.L184
	.long	.L183-.L184
	.text
.L188:
	mov	DWORD PTR -8[rbp], 1
	mov	DWORD PTR -4[rbp], 2
	jmp	.L196
.L189:
	mov	DWORD PTR -8[rbp], 3
	mov	DWORD PTR -4[rbp], 5
	jmp	.L196
.L194:
	mov	DWORD PTR -8[rbp], 5
	mov	DWORD PTR -4[rbp], 23
	jmp	.L196
.L183:
	mov	DWORD PTR -8[rbp], 5
	mov	DWORD PTR -4[rbp], 24
	jmp	.L196
.L185:
	mov	DWORD PTR -8[rbp], 5
	mov	DWORD PTR -4[rbp], 25
	jmp	.L196
.L187:
	mov	DWORD PTR -8[rbp], 7
	mov	DWORD PTR -4[rbp], 21
	jmp	.L196
.L186:
	mov	DWORD PTR -8[rbp], 7
	mov	DWORD PTR -4[rbp], 20
	jmp	.L196
.L192:
	mov	DWORD PTR -8[rbp], 9
	mov	DWORD PTR -4[rbp], 11
	jmp	.L196
.L191:
	mov	DWORD PTR -8[rbp], 9
	mov	DWORD PTR -4[rbp], 12
	jmp	.L196
.L193:
	mov	DWORD PTR -8[rbp], 11
	mov	DWORD PTR -4[rbp], 13
	jmp	.L196
.L190:
	mov	DWORD PTR -8[rbp], 11
	mov	DWORD PTR -4[rbp], 14
	jmp	.L196
.L195:
	mov	DWORD PTR -8[rbp], 11
	mov	DWORD PTR -4[rbp], 15
	nop
.L196:
	mov	eax, DWORD PTR -8[rbp]
	cmp	eax, DWORD PTR -20[rbp]
	jl	.L205
	mov	rax, QWORD PTR complaint[rip]
	test	rax, rax
	jne	.L205
	call	next
	call	skip_newline
	cmp	DWORD PTR -4[rbp], 2
	jne	.L199
	mov	eax, DWORD PTR -4[rbp]
	movzx	eax, al
	mov	edi, eax
	call	gen
	jmp	.L200
.L199:
	cmp	DWORD PTR -4[rbp], 5
	jne	.L200
	mov	rax, QWORD PTR prev_instruc[rip]
	test	rax, rax
	je	.L201
	mov	rax, QWORD PTR prev_instruc[rip]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 4
	jne	.L201
	mov	rax, QWORD PTR prev_instruc[rip]
	movzx	eax, WORD PTR 1[rax]
	mov	WORD PTR -10[rbp], ax
	lea	rdx, the_store[rip]
	mov	rax, QWORD PTR prev_instruc[rip]
	mov	QWORD PTR [rdx], rax
	mov	eax, DWORD PTR -8[rbp]
	mov	edi, eax
	call	parse_expr
	mov	edi, 5
	call	gen
	movzx	eax, WORD PTR -10[rbp]
	mov	edi, eax
	call	gen_ushort
	jmp	.L180
.L201:
	lea	rdi, .LC57[rip]
	call	complain
	jmp	.L177
.L200:
	mov	eax, DWORD PTR -8[rbp]
	add	eax, 1
	mov	edi, eax
	call	parse_expr
	cmp	DWORD PTR -4[rbp], 2
	je	.L180
	mov	eax, DWORD PTR -4[rbp]
	movzx	eax, al
	mov	edi, eax
	call	gen
.L180:
	mov	rax, QWORD PTR complaint[rip]
	test	rax, rax
	je	.L202
	jmp	.L177
.L203:
	nop
	jmp	.L177
.L204:
	nop
	jmp	.L177
.L205:
	nop
.L177:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE27:
	.size	parse_expr, .-parse_expr
	.section	.rodata
	.align 8
.LC58:
	.string	"Syntax error: unexpected token"
	.text
	.type	parse_done, @function
parse_done:
.LFB28:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, DWORD PTR token[rip]
	cmp	eax, -1
	je	.L208
	mov	eax, DWORD PTR token[rip]
	cmp	eax, 10
	je	.L208
	lea	rdi, .LC58[rip]
	call	complain
.L208:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE28:
	.size	parse_done, .-parse_done
	.type	scratch_expr, @function
scratch_expr:
.LFB29:
	.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	rax, the_store[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	edi, -1
	call	parse_expr
	call	parse_done
	mov	edi, 0
	call	gen
	lea	rax, the_store[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	lea	rdx, the_store[rip]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR complaint[rip]
	test	rax, rax
	jne	.L210
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -16[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	run
	jmp	.L212
.L210:
	mov	eax, 0
.L212:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE29:
	.size	scratch_expr, .-scratch_expr
	.section	.rodata
.LC59:
	.string	"%d\n"
	.text
	.type	run_expr, @function
run_expr:
.LFB30:
	.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
	call	scratch_expr
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR complaint[rip]
	test	rax, rax
	jne	.L215
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, eax
	lea	rdi, .LC59[rip]
	mov	eax, 0
	call	printf@PLT
.L215:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE30:
	.size	run_expr, .-run_expr
	.section	.rodata
.LC60:
	.string	"Expected identifier"
.LC61:
	.string	"Expected '='"
	.text
	.type	run_let, @function
run_let:
.LFB31:
	.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
	lea	rsi, .LC60[rip]
	mov	edi, 97
	call	expect
	test	eax, eax
	je	.L218
	mov	edi, 4
	call	available
	test	eax, eax
	je	.L218
	lea	rax, the_store[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	mov	edi, 0
	call	gen_value
	lea	rdx, the_store[rip]
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, rdx
	mov	ebx, eax
	lea	rdi, token_name[rip]
	call	strlen@PLT
	mov	r8d, 0
	mov	ecx, ebx
	mov	edx, 2
	mov	esi, eax
	lea	rdi, token_name[rip]
	call	bind
	call	next
	lea	rsi, .LC61[rip]
	mov	edi, 61
	call	expect
	test	eax, eax
	je	.L218
	call	next
	call	scratch_expr
	mov	rdx, QWORD PTR -24[rbp]
	mov	DWORD PTR [rdx], eax
.L218:
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE31:
	.size	run_let, .-run_let
	.section	.rodata
.LC62:
	.string	"Not a definition"
.LC63:
	.string	"Dictionary corrupted"
	.text
	.type	run_forget, @function
run_forget:
.LFB32:
	.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
	lea	rsi, .LC60[rip]
	mov	edi, 97
	call	expect
	test	eax, eax
	je	.L224
	lea	rdi, token_name[rip]
	call	strlen@PLT
	mov	edx, eax
	lea	rsi, the_store[rip+4096]
	mov	rax, QWORD PTR dictionary_ptr[rip]
	mov	ecx, edx
	lea	rdx, token_name[rip]
	mov	rdi, rax
	call	lookup
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	jne	.L221
	lea	rdi, .LC52[rip]
	call	complain
	jmp	.L222
.L221:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	and	eax, 3
	cmp	al, 2
	je	.L222
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	and	eax, 3
	cmp	al, 1
	je	.L222
	lea	rdi, .LC62[rip]
	call	complain
.L222:
	call	next
	call	parse_done
	mov	rax, QWORD PTR complaint[rip]
	test	rax, rax
	jne	.L224
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, BYTE PTR [rax]
	shr	dl, 2
	movzx	edx, dl
	movzx	eax, BYTE PTR 1[rax]
	sal	rax, 6
	or	rax, rdx
	movzx	eax, ax
	lea	rdx, the_store[rip]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	next_header
	mov	QWORD PTR -8[rbp], rax
	lea	rax, the_store[rip]
	cmp	QWORD PTR -16[rbp], rax
	jb	.L223
	mov	rax, QWORD PTR -16[rbp]
	cmp	rax, QWORD PTR -8[rbp]
	ja	.L223
	lea	rax, the_store[rip+4096]
	cmp	QWORD PTR -8[rbp], rax
	ja	.L223
	lea	rdx, the_store[rip]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR dictionary_ptr[rip], rax
	jmp	.L224
.L223:
	lea	rdi, .LC63[rip]
	call	complain
.L224:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE32:
	.size	run_forget, .-run_forget
	.type	run_fun, @function
run_fun:
.LFB33:
	.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
	lea	rsi, .LC60[rip]
	mov	edi, 97
	call	expect
	test	eax, eax
	je	.L231
	mov	rax, QWORD PTR dictionary_ptr[rip]
	mov	QWORD PTR -40[rbp], rax
	lea	rax, the_store[rip]
	mov	rax, QWORD PTR [rax]
	lea	rdx, the_store[rip]
	sub	rax, rdx
	mov	ebx, eax
	lea	rdi, token_name[rip]
	call	strlen@PLT
	mov	r8d, 0
	mov	ecx, ebx
	mov	edx, 1
	mov	esi, eax
	lea	rdi, token_name[rip]
	call	bind
	mov	QWORD PTR -32[rbp], rax
	call	next
	cmp	QWORD PTR -32[rbp], 0
	je	.L227
	mov	rax, QWORD PTR dictionary_ptr[rip]
	mov	QWORD PTR -24[rbp], rax
	jmp	.L228
.L229:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 2[rax]
	and	eax, 15
	mov	ecx, eax
	lea	eax, 1[rcx]
	and	eax, 15
	mov	rdx, QWORD PTR -32[rbp]
	and	eax, 15
	mov	esi, eax
	movzx	eax, BYTE PTR 2[rdx]
	and	eax, -16
	or	eax, esi
	mov	BYTE PTR 2[rdx], al
	movzx	ebx, cl
	lea	rdi, token_name[rip]
	call	strlen@PLT
	mov	r8d, 0
	mov	ecx, ebx
	mov	edx, 3
	mov	esi, eax
	lea	rdi, token_name[rip]
	call	bind
	call	next
.L228:
	mov	eax, DWORD PTR token[rip]
	cmp	eax, 97
	je	.L229
	lea	rsi, .LC61[rip]
	mov	edi, 61
	call	expect
	test	eax, eax
	je	.L230
	call	next
	mov	edi, -1
	call	parse_expr
	call	parse_done
	mov	edi, 8
	call	gen
.L230:
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR dictionary_ptr[rip], rax
.L227:
	mov	rax, QWORD PTR complaint[rip]
	test	rax, rax
	je	.L231
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR dictionary_ptr[rip], rax
.L231:
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE33:
	.size	run_fun, .-run_fun
	.type	run_command, @function
run_command:
.LFB34:
	.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 complaint[rip], 0
	call	skip_newline
	mov	eax, DWORD PTR token[rip]
	cmp	eax, 102
	jne	.L233
	call	next
	call	run_fun
	jmp	.L234
.L233:
	mov	eax, DWORD PTR token[rip]
	cmp	eax, 108
	jne	.L235
	call	next
	call	run_let
	jmp	.L234
.L235:
	mov	eax, DWORD PTR token[rip]
	cmp	eax, 111
	jne	.L236
	call	next
	call	run_forget
	jmp	.L234
.L236:
	call	run_expr
.L234:
	mov	rax, QWORD PTR complaint[rip]
	test	rax, rax
	je	.L238
	mov	rax, QWORD PTR complaint[rip]
	mov	rdi, rax
	call	puts@PLT
	call	skip_line
	call	next
.L238:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE34:
	.size	run_command, .-run_command
	.section	.rodata
.LC64:
	.string	"> "
	.text
	.type	read_eval_print_loop, @function
read_eval_print_loop:
.LFB35:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	rdi, .LC64[rip]
	mov	eax, 0
	call	printf@PLT
	call	next_char
	call	next
	jmp	.L240
.L241:
	call	run_command
	lea	rdi, .LC64[rip]
	mov	eax, 0
	call	printf@PLT
	call	skip_newline
.L240:
	mov	eax, DWORD PTR token[rip]
	cmp	eax, -1
	jne	.L241
	mov	edi, 10
	call	putchar@PLT
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE35:
	.size	read_eval_print_loop, .-read_eval_print_loop
	.section	.rodata
.LC65:
	.string	"cp"
	.text
	.globl	main
	.type	main, @function
main:
.LFB36:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	r8d, 0
	mov	ecx, 0
	mov	edx, 2
	mov	esi, 2
	lea	rdi, .LC65[rip]
	call	bind
	lea	rax, the_store[rip]
	lea	rdx, the_store[rip+4]
	mov	QWORD PTR [rax], rdx
	call	read_eval_print_loop
	mov	eax, 0
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE36:
	.size	main, .-main
	.section	.rodata
	.type	__PRETTY_FUNCTION__.2, @object
	.size	__PRETTY_FUNCTION__.2, 5
__PRETTY_FUNCTION__.2:
	.string	"bind"
	.type	__PRETTY_FUNCTION__.1, @object
	.size	__PRETTY_FUNCTION__.1, 4
__PRETTY_FUNCTION__.1:
	.string	"run"
	.align 8
	.type	__PRETTY_FUNCTION__.0, @object
	.size	__PRETTY_FUNCTION__.0, 13
__PRETTY_FUNCTION__.0:
	.string	"parse_factor"
	.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	"587577.c"
	.text
	.local	complaint
	.comm	complaint,4,4
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	complain, %function
complain:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, .L4
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L3
	ldr	r2, .L4
	ldr	r3, [fp, #-8]
	str	r3, [r2]
.L3:
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L5:
	.align	2
.L4:
	.word	complaint
	.size	complain, .-complain
	.local	the_store
	.comm	the_store,4096,4
	.data
	.align	2
	.type	dictionary_ptr, %object
	.size	dictionary_ptr, 4
dictionary_ptr:
	.word	the_store+4096
	.section	.rodata
	.align	2
.LC0:
	.ascii	"Store exhausted\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	available, %function
available:
	@ 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, .L9
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r2, r2, r3
	ldr	r3, .L9+4
	ldr	r3, [r3]
	cmp	r2, r3
	bhi	.L7
	mov	r3, #1
	b	.L8
.L7:
	ldr	r0, .L9+8
	bl	complain
	mov	r3, #0
.L8:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L10:
	.align	2
.L9:
	.word	the_store
	.word	dictionary_ptr
	.word	.LC0
	.size	available, .-available
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	next_header, %function
next_header:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	add	r3, r3, #3
	ldr	r2, [fp, #-8]
	ldrb	r2, [r2, #2]	@ zero_extendqisi2
	lsr	r2, r2, #4
	and	r2, r2, #255
	add	r3, r3, r2
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	next_header, .-next_header
	.section	.rodata
	.align	2
.LC1:
	.ascii	"the_stack_data/587577.c\000"
	.align	2
.LC2:
	.ascii	"name\000"
	.align	2
.LC3:
	.ascii	"length < (1<<4)\000"
	.align	2
.LC4:
	.ascii	"kind <= a_local\000"
	.align	2
.LC5:
	.ascii	"binding < (1<<14)\000"
	.align	2
.LC6:
	.ascii	"arity < (1<<4)\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bind, %function
bind:
	@ args = 4, 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, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L14
	ldr	r3, .L21
	mov	r2, #107
	ldr	r1, .L21+4
	ldr	r0, .L21+8
	bl	__assert_fail
.L14:
	ldr	r3, [fp, #-20]
	cmp	r3, #15
	bls	.L15
	ldr	r3, .L21
	mov	r2, #108
	ldr	r1, .L21+4
	ldr	r0, .L21+12
	bl	__assert_fail
.L15:
	ldr	r3, [fp, #-24]
	cmp	r3, #3
	bls	.L16
	ldr	r3, .L21
	mov	r2, #109
	ldr	r1, .L21+4
	ldr	r0, .L21+16
	bl	__assert_fail
.L16:
	ldr	r3, [fp, #-28]
	cmp	r3, #16384
	bcc	.L17
	ldr	r3, .L21
	mov	r2, #110
	ldr	r1, .L21+4
	ldr	r0, .L21+20
	bl	__assert_fail
.L17:
	ldr	r3, [fp, #4]
	cmp	r3, #15
	bls	.L18
	ldr	r3, .L21
	mov	r2, #111
	ldr	r1, .L21+4
	ldr	r0, .L21+24
	bl	__assert_fail
.L18:
	ldr	r3, [fp, #-20]
	add	r3, r3, #3
	mov	r0, r3
	bl	available
	mov	r3, r0
	cmp	r3, #0
	beq	.L19
	ldr	r3, .L21+28
	ldr	r2, [r3]
	ldr	r1, [fp, #-20]
	mvn	r3, #2
	sub	r3, r3, r1
	add	r3, r2, r3
	ldr	r2, .L21+28
	str	r3, [r2]
	ldr	r3, .L21+28
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-24]
	and	r3, r3, #3
	and	r1, r3, #255
	ldr	r2, [fp, #-8]
	ldrb	r3, [r2]
	and	r1, r1, #3
	bic	r3, r3, #3
	orr	r3, r1, r3
	strb	r3, [r2]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #18
	lsr	r3, r3, #18
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-8]
	and	r1, r2, #63
	lsl	ip, r1, #2
	ldrb	r1, [r3]
	and	r1, r1, #3
	mov	r0, r1
	mov	r1, ip
	orr	r1, r0, r1
	strb	r1, [r3]
	lsr	r2, r2, #6
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	and	r2, r2, #255
	mov	r1, #0
	orr	r2, r1, r2
	strb	r2, [r3, #1]
	ldr	r3, [fp, #4]
	and	r3, r3, #15
	and	r1, r3, #255
	ldr	r2, [fp, #-8]
	ldrb	r3, [r2, #2]
	and	r1, r1, #15
	bic	r3, r3, #15
	orr	r3, r1, r3
	strb	r3, [r2, #2]
	ldr	r3, [fp, #-20]
	and	r3, r3, #15
	and	r3, r3, #255
	ldr	r1, [fp, #-8]
	ldrb	r2, [r1, #2]
	and	r3, r3, #15
	bic	r2, r2, #240
	lsl	r3, r3, #4
	orr	r3, r3, r2
	mov	r2, r3
	strb	r2, [r1, #2]
	ldr	r3, [fp, #-8]
	add	r3, r3, #3
	ldr	r2, [fp, #-20]
	ldr	r1, [fp, #-16]
	mov	r0, r3
	bl	memcpy
	ldr	r3, [fp, #-8]
	b	.L20
.L19:
	mov	r3, #0
.L20:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L22:
	.align	2
.L21:
	.word	__PRETTY_FUNCTION__.5450
	.word	.LC1
	.word	.LC2
	.word	.LC3
	.word	.LC4
	.word	.LC5
	.word	.LC6
	.word	dictionary_ptr
	.size	bind, .-bind
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	lookup, %function
lookup:
	@ 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, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	b	.L24
.L27:
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-28]
	cmp	r3, r2
	bne	.L25
	ldr	r3, [fp, #-8]
	add	r3, r3, #3
	ldr	r2, [fp, #-28]
	ldr	r1, [fp, #-24]
	mov	r0, r3
	bl	memcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L25
	ldr	r3, [fp, #-8]
	b	.L26
.L25:
	ldr	r0, [fp, #-16]
	bl	next_header
	str	r0, [fp, #-16]
.L24:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	bcc	.L27
	mov	r3, #0
.L26:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	lookup, .-lookup
	.section	.rodata
	.align	2
.LC7:
	.ascii	"HALT\000"
	.align	2
.LC8:
	.ascii	"PUSH\000"
	.align	2
.LC9:
	.ascii	"POP\000"
	.align	2
.LC10:
	.ascii	"PUSH_STRING\000"
	.align	2
.LC11:
	.ascii	"GLOBAL_FETCH\000"
	.align	2
.LC12:
	.ascii	"GLOBAL_STORE\000"
	.align	2
.LC13:
	.ascii	"LOCAL_FETCH\000"
	.align	2
.LC14:
	.ascii	"CALL\000"
	.align	2
.LC15:
	.ascii	"RETURN\000"
	.align	2
.LC16:
	.ascii	"BRANCH\000"
	.align	2
.LC17:
	.ascii	"JUMP\000"
	.align	2
.LC18:
	.ascii	"ADD\000"
	.align	2
.LC19:
	.ascii	"SUB\000"
	.align	2
.LC20:
	.ascii	"MUL\000"
	.align	2
.LC21:
	.ascii	"DIV\000"
	.align	2
.LC22:
	.ascii	"MOD\000"
	.align	2
.LC23:
	.ascii	"UMUL\000"
	.align	2
.LC24:
	.ascii	"UDIV\000"
	.align	2
.LC25:
	.ascii	"UMOD\000"
	.align	2
.LC26:
	.ascii	"NEGATE\000"
	.align	2
.LC27:
	.ascii	"EQ\000"
	.align	2
.LC28:
	.ascii	"LT\000"
	.align	2
.LC29:
	.ascii	"ULT\000"
	.align	2
.LC30:
	.ascii	"AND\000"
	.align	2
.LC31:
	.ascii	"OR\000"
	.align	2
.LC32:
	.ascii	"XOR\000"
	.align	2
.LC33:
	.ascii	"SLA\000"
	.align	2
.LC34:
	.ascii	"SRA\000"
	.align	2
.LC35:
	.ascii	"SRL\000"
	.align	2
.LC36:
	.ascii	"GETC\000"
	.align	2
.LC37:
	.ascii	"PUTC\000"
	.align	2
.LC38:
	.ascii	"FETCH_BYTE\000"
	.align	2
.LC39:
	.ascii	"PEEK\000"
	.align	2
.LC40:
	.ascii	"POKE\000"
	.data
	.align	2
	.type	opcode_names, %object
	.size	opcode_names, 136
opcode_names:
	.word	.LC7
	.word	.LC8
	.word	.LC9
	.word	.LC10
	.word	.LC11
	.word	.LC12
	.word	.LC13
	.word	.LC14
	.word	.LC15
	.word	.LC16
	.word	.LC17
	.word	.LC18
	.word	.LC19
	.word	.LC20
	.word	.LC21
	.word	.LC22
	.word	.LC23
	.word	.LC24
	.word	.LC25
	.word	.LC26
	.word	.LC27
	.word	.LC28
	.word	.LC29
	.word	.LC30
	.word	.LC31
	.word	.LC32
	.word	.LC33
	.word	.LC34
	.word	.LC35
	.word	.LC36
	.word	.LC37
	.word	.LC38
	.word	.LC39
	.word	.LC40
	.section	.rodata
	.align	2
	.type	primitive_dictionary, %object
	.size	primitive_dictionary, 73
primitive_dictionary:
	.ascii	"@\000BumulD\000BudivH\000BumodX\0002ulth\0002slal\000"
	.ascii	"2srap\0002srlt\000@getcx\000Aputc\200\000Apeek\204\000"
	.ascii	"Apoke"
	.global	__aeabi_idiv
	.global	__aeabi_idivmod
	.global	__aeabi_uidiv
	.global	__aeabi_uidivmod
	.align	2
.LC41:
	.ascii	"0\000"
	.align	2
.LC42:
	.ascii	"Stack overflow\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	run, %function
run:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #44
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	ldr	r3, .L88
	ldr	r3, [r3]
	bic	r3, r3, #3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-36]
.L80:
	ldr	r3, [fp, #-48]
	add	r2, r3, #1
	str	r2, [fp, #-48]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #33
	ldrls	pc, [pc, r3, asl #2]
	b	.L81
.L31:
	.word	.L64
	.word	.L63
	.word	.L62
	.word	.L61
	.word	.L60
	.word	.L59
	.word	.L58
	.word	.L57
	.word	.L56
	.word	.L55
	.word	.L54
	.word	.L53
	.word	.L52
	.word	.L51
	.word	.L50
	.word	.L49
	.word	.L48
	.word	.L47
	.word	.L46
	.word	.L45
	.word	.L44
	.word	.L43
	.word	.L42
	.word	.L41
	.word	.L40
	.word	.L39
	.word	.L38
	.word	.L37
	.word	.L36
	.word	.L35
	.word	.L34
	.word	.L33
	.word	.L32
	.word	.L30
.L64:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	b	.L65
.L63:
	ldr	r3, [fp, #-40]
	sub	r3, r3, #4
	ldr	r2, [fp, #-52]
	cmp	r2, r3
	bhi	.L82
	ldr	r3, [fp, #-40]
	sub	r3, r3, #4
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-48]
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #4
	str	r3, [fp, #-48]
	b	.L68
.L62:
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	str	r3, [fp, #-40]
	b	.L68
.L61:
	ldr	r3, [fp, #-40]
	sub	r3, r3, #4
	ldr	r2, [fp, #-52]
	cmp	r2, r3
	bhi	.L83
	ldr	r3, [fp, #-40]
	sub	r3, r3, #4
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-40]
	str	r2, [r3]
	ldr	r0, [fp, #-48]
	bl	strlen
	mov	r3, r0
	add	r3, r3, #1
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	str	r3, [fp, #-48]
	b	.L68
.L60:
	ldr	r3, [fp, #-40]
	sub	r3, r3, #4
	ldr	r2, [fp, #-52]
	cmp	r2, r3
	bhi	.L84
	ldr	r3, [fp, #-48]
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, .L88+4
	add	r3, r2, r3
	ldr	r2, [fp, #-40]
	sub	r2, r2, #4
	str	r2, [fp, #-40]
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #2
	str	r3, [fp, #-48]
	b	.L68
.L59:
	ldr	r3, [fp, #-48]
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, .L88+4
	add	r3, r2, r3
	ldr	r2, [fp, #-40]
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #2
	str	r3, [fp, #-48]
	b	.L68
.L58:
	ldr	r3, [fp, #-40]
	sub	r3, r3, #4
	ldr	r2, [fp, #-52]
	cmp	r2, r3
	bhi	.L85
	ldr	r3, [fp, #-48]
	add	r2, r3, #1
	str	r2, [fp, #-48]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #30
	sub	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-36]
	add	r3, r3, r2
	ldr	r2, [fp, #-40]
	sub	r2, r2, #4
	str	r2, [fp, #-40]
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	str	r2, [r3]
	b	.L68
.L57:
	ldr	r3, [fp, #-48]
	add	r3, r3, #3
	str	r3, [fp, #-32]
	b	.L72
.L73:
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
.L72:
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #10
	beq	.L73
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #8
	bne	.L74
	ldr	r3, [fp, #-48]
	ldrb	r3, [r3]
	strb	r3, [fp, #-41]
	ldrb	r3, [fp, #-41]	@ zero_extendqisi2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldrb	r3, [fp, #-41]	@ zero_extendqisi2
	rsb	r3, r3, #1
	lsl	r3, r3, #2
	ldr	r2, [fp, #-36]
	add	r0, r2, r3
	ldrb	r3, [fp, #-41]	@ zero_extendqisi2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r1, [fp, #-40]
	bl	memmove
	ldrb	r3, [fp, #-41]	@ zero_extendqisi2
	lsl	r3, r3, #2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	b	.L75
.L74:
	ldr	r3, [fp, #-40]
	sub	r3, r3, #4
	ldr	r2, [fp, #-52]
	cmp	r2, r3
	bhi	.L86
	ldr	r3, [fp, #-40]
	sub	r3, r3, #4
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-36]
	ldr	r2, .L88+4
	sub	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-20]
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-32]
	ldr	r2, .L88+4
	sub	r2, r3, r2
	ldr	r3, [fp, #-20]
	add	r3, r3, #2
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-48]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-36]
.L75:
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, .L88+4
	add	r3, r2, r3
	str	r3, [fp, #-48]
	b	.L68
.L56:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-24]
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, .L88+4
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-24]
	add	r3, r3, #2
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, .L88+4
	add	r3, r2, r3
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	b	.L68
.L55:
	ldr	r3, [fp, #-40]
	add	r2, r3, #4
	str	r2, [fp, #-40]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L77
	ldr	r3, [fp, #-48]
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-48]
	add	r3, r3, r2
	str	r3, [fp, #-48]
	b	.L68
.L77:
	ldr	r3, [fp, #-48]
	add	r3, r3, #2
	str	r3, [fp, #-48]
	b	.L68
.L54:
	ldr	r3, [fp, #-48]
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-48]
	add	r3, r3, r2
	str	r3, [fp, #-48]
	b	.L68
.L53:
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	ldr	r1, [r3]
	ldr	r3, [fp, #-40]
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	add	r2, r1, r2
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	str	r3, [fp, #-40]
	b	.L68
.L52:
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	ldr	r1, [r3]
	ldr	r3, [fp, #-40]
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	sub	r2, r1, r2
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	str	r3, [fp, #-40]
	b	.L68
.L51:
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	ldr	r1, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	mul	r2, r1, r2
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	str	r3, [fp, #-40]
	b	.L68
.L50:
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	ldr	r1, [r3]
	ldr	r3, [fp, #-40]
	add	r4, r3, #4
	mov	r0, r2
	bl	__aeabi_idiv
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	str	r3, [fp, #-40]
	b	.L68
.L49:
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	ldr	r1, [r3]
	ldr	r3, [fp, #-40]
	add	r4, r3, #4
	mov	r0, r2
	bl	__aeabi_idivmod
	mov	r3, r1
	str	r3, [r4]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	str	r3, [fp, #-40]
	b	.L68
.L48:
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	mul	r2, r3, r2
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	str	r3, [fp, #-40]
	b	.L68
.L47:
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	str	r3, [fp, #-40]
	b	.L68
.L46:
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidivmod
	mov	r3, r1
	mov	r2, r3
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	str	r3, [fp, #-40]
	b	.L68
.L45:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	rsb	r2, r3, #0
	ldr	r3, [fp, #-40]
	str	r2, [r3]
	b	.L68
.L44:
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r2, r3, #255
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	str	r3, [fp, #-40]
	b	.L68
.L43:
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	cmp	r2, r3
	movlt	r3, #1
	movge	r3, #0
	and	r2, r3, #255
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	str	r3, [fp, #-40]
	b	.L68
.L42:
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	cmp	r2, r3
	movcc	r3, #1
	movcs	r3, #0
	and	r2, r3, #255
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	str	r3, [fp, #-40]
	b	.L68
.L41:
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	ldr	r1, [r3]
	ldr	r3, [fp, #-40]
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	and	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	str	r3, [fp, #-40]
	b	.L68
.L40:
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	ldr	r1, [r3]
	ldr	r3, [fp, #-40]
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	orr	r2, r1, r2
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	str	r3, [fp, #-40]
	b	.L68
.L39:
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	ldr	r1, [r3]
	ldr	r3, [fp, #-40]
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	str	r3, [fp, #-40]
	b	.L68
.L38:
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	ldr	r1, [r3]
	ldr	r3, [fp, #-40]
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	lsl	r2, r1, r2
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	str	r3, [fp, #-40]
	b	.L68
.L37:
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	ldr	r1, [r3]
	ldr	r3, [fp, #-40]
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	asr	r2, r1, r2
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	str	r3, [fp, #-40]
	b	.L68
.L36:
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	lsr	r2, r2, r3
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	str	r3, [fp, #-40]
	b	.L68
.L35:
	ldr	r3, [fp, #-40]
	sub	r3, r3, #4
	ldr	r2, [fp, #-52]
	cmp	r2, r3
	bhi	.L87
	ldr	r3, .L88+8
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	sub	r3, r3, #4
	str	r3, [fp, #-40]
	mov	r0, r2
	bl	getc
	mov	r2, r0
	ldr	r3, [fp, #-40]
	str	r2, [r3]
	b	.L68
.L34:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	ldr	r2, .L88+12
	ldr	r2, [r2]
	mov	r1, r2
	mov	r0, r3
	bl	putc
	b	.L68
.L33:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-40]
	str	r2, [r3]
	b	.L68
.L32:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	str	r2, [r3]
	b	.L68
.L30:
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	str	r3, [r2]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	str	r3, [fp, #-40]
	b	.L68
.L81:
	ldr	r3, .L88+16
	mov	r2, #412
	ldr	r1, .L88+20
	ldr	r0, .L88+24
	bl	__assert_fail
.L68:
	b	.L80
.L82:
	nop
	b	.L67
.L83:
	nop
	b	.L67
.L84:
	nop
	b	.L67
.L85:
	nop
	b	.L67
.L86:
	nop
	b	.L67
.L87:
	nop
.L67:
	ldr	r0, .L88+28
	bl	complain
	mov	r3, #0
.L65:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L89:
	.align	2
.L88:
	.word	dictionary_ptr
	.word	the_store
	.word	stdin
	.word	stdout
	.word	__PRETTY_FUNCTION__.5552
	.word	.LC1
	.word	.LC41
	.word	.LC42
	.size	run, .-run
	.local	prev_instruc
	.comm	prev_instruc,4,4
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	gen, %function
gen:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strb	r3, [fp, #-5]
	mov	r0, #1
	bl	available
	mov	r3, r0
	cmp	r3, #0
	beq	.L92
	ldr	r3, .L93
	ldr	r3, [r3]
	ldr	r2, .L93+4
	str	r3, [r2]
	ldr	r2, .L93
	ldr	r3, [r2]
	add	r1, r3, #1
	str	r1, [r2]
	ldrb	r2, [fp, #-5]
	strb	r2, [r3]
.L92:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L94:
	.align	2
.L93:
	.word	the_store
	.word	prev_instruc
	.size	gen, .-gen
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	gen_ubyte, %function
gen_ubyte:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strb	r3, [fp, #-5]
	mov	r0, #1
	bl	available
	mov	r3, r0
	cmp	r3, #0
	beq	.L97
	ldr	r2, .L98
	ldr	r3, [r2]
	add	r1, r3, #1
	str	r1, [r2]
	ldrb	r2, [fp, #-5]
	strb	r2, [r3]
.L97:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L99:
	.align	2
.L98:
	.word	the_store
	.size	gen_ubyte, .-gen_ubyte
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	gen_ushort, %function
gen_ushort:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strh	r3, [fp, #-6]	@ movhi
	mov	r0, #2
	bl	available
	mov	r3, r0
	cmp	r3, #0
	beq	.L102
	ldr	r3, .L103
	ldr	r3, [r3]
	ldrh	r2, [fp, #-6]	@ movhi
	strh	r2, [r3]	@ movhi
	ldr	r3, .L103
	ldr	r3, [r3]
	ldr	r2, .L103
	add	r3, r3, #2
	str	r3, [r2]
.L102:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L104:
	.align	2
.L103:
	.word	the_store
	.size	gen_ushort, .-gen_ushort
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	gen_value, %function
gen_value:
	@ 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]
	mov	r0, #4
	bl	available
	mov	r3, r0
	cmp	r3, #0
	beq	.L107
	ldr	r3, .L108
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldr	r3, .L108
	ldr	r3, [r3]
	ldr	r2, .L108
	add	r3, r3, #4
	str	r3, [r2]
.L107:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L109:
	.align	2
.L108:
	.word	the_store
	.size	gen_value, .-gen_value
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	forward_ref, %function
forward_ref:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	ldr	r3, .L112
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, .L112
	ldr	r3, [r3]
	ldr	r2, .L112
	add	r3, r3, #2
	str	r3, [r2]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L113:
	.align	2
.L112:
	.word	the_store
	.size	forward_ref, .-forward_ref
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	resolve, %function
resolve:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, .L115
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	sub	r3, r2, r3
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-8]
	strh	r2, [r3]	@ movhi
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L116:
	.align	2
.L115:
	.word	the_store
	.size	resolve, .-resolve
	.data
	.align	2
	.type	input_char, %object
	.size	input_char, 4
input_char:
	.word	-2
	.local	token
	.comm	token,4,4
	.local	token_value
	.comm	token_value,4,4
	.local	token_name
	.comm	token_name,16,4
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	ch, %function
ch:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L120
	ldr	r3, [r3]
	cmn	r3, #2
	bne	.L118
	ldr	r3, .L120+4
	ldr	r3, [r3]
	mov	r0, r3
	bl	getc
	mov	r3, r0
	ldr	r2, .L120
	str	r3, [r2]
.L118:
	ldr	r3, .L120
	ldr	r3, [r3]
	mov	r0, r3
	pop	{fp, pc}
.L121:
	.align	2
.L120:
	.word	input_char
	.word	stdin
	.size	ch, .-ch
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	next_char, %function
next_char:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	ldr	r3, .L125
	ldr	r3, [r3]
	cmn	r3, #1
	beq	.L124
	ldr	r3, .L125
	mvn	r2, #1
	str	r2, [r3]
.L124:
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L126:
	.align	2
.L125:
	.word	input_char
	.size	next_char, .-next_char
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	skip_line, %function
skip_line:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	b	.L128
.L130:
	bl	next_char
.L128:
	bl	ch
	mov	r3, r0
	cmp	r3, #10
	beq	.L131
	bl	ch
	mov	r3, r0
	cmn	r3, #1
	bne	.L130
.L131:
	nop
	pop	{fp, pc}
	.size	skip_line, .-skip_line
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	hex_char_value, %function
hex_char_value:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #57
	bhi	.L133
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	sub	r3, r3, #48
	b	.L135
.L133:
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	mov	r0, r3
	bl	toupper
	mov	r3, r0
	sub	r3, r3, #55
.L135:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	hex_char_value, .-hex_char_value
	.section	.rodata
	.align	2
.LC43:
	.ascii	"Identifier too long\000"
	.align	2
.LC44:
	.ascii	"then\000"
	.align	2
.LC45:
	.ascii	"forget\000"
	.align	2
.LC46:
	.ascii	"let\000"
	.align	2
.LC47:
	.ascii	"if\000"
	.align	2
.LC48:
	.ascii	"fun\000"
	.align	2
.LC49:
	.ascii	"else\000"
	.align	2
.LC50:
	.ascii	"Unterminated string\000"
	.align	2
.LC51:
	.ascii	"Lexical error\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	next, %function
next:
	@ 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
.L137:
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r4, [r3]
	bl	ch
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r4, r3
	ldrh	r3, [r3]
	and	r3, r3, #2048
	cmp	r3, #0
	beq	.L138
	ldr	r3, .L167
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, .L167+4
	mov	r2, #0
	str	r2, [r3]
.L143:
	ldr	r3, .L167+4
	ldr	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	mov	r4, r3
	bl	ch
	mov	r3, r0
	add	r3, r4, r3
	sub	r3, r3, #48
	ldr	r2, .L167+4
	str	r3, [r2]
	bl	next_char
	bl	ch
	mov	r3, r0
	cmp	r3, #120
	bne	.L139
	ldr	r3, .L167+4
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L139
	bl	next_char
	b	.L140
.L141:
	ldr	r3, .L167+4
	ldr	r3, [r3]
	lsl	r3, r3, #4
	mov	r4, r3
	bl	ch
	mov	r3, r0
	and	r3, r3, #255
	mov	r0, r3
	bl	hex_char_value
	mov	r3, r0
	add	r3, r4, r3
	mov	r2, r3
	ldr	r3, .L167+4
	str	r2, [r3]
	bl	next_char
.L140:
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r4, [r3]
	bl	ch
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r4, r3
	ldrh	r3, [r3]
	and	r3, r3, #4096
	cmp	r3, #0
	bne	.L141
	b	.L136
.L139:
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r4, [r3]
	bl	ch
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r4, r3
	ldrh	r3, [r3]
	and	r3, r3, #2048
	cmp	r3, #0
	bne	.L143
	b	.L136
.L138:
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r4, [r3]
	bl	ch
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r4, r3
	ldrh	r3, [r3]
	and	r3, r3, #1024
	cmp	r3, #0
	bne	.L145
	bl	ch
	mov	r3, r0
	cmp	r3, #95
	bne	.L146
.L145:
	ldr	r3, .L167+8
	str	r3, [fp, #-20]
.L149:
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	ldr	r2, .L167+12
	cmp	r3, r2
	bne	.L147
	ldr	r0, .L167+16
	bl	complain
	b	.L148
.L147:
	bl	ch
	mov	r1, r0
	ldr	r3, [fp, #-20]
	add	r2, r3, #1
	str	r2, [fp, #-20]
	and	r2, r1, #255
	strb	r2, [r3]
	bl	next_char
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r4, [r3]
	bl	ch
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r4, r3
	ldrh	r3, [r3]
	and	r3, r3, #8
	cmp	r3, #0
	bne	.L149
	bl	ch
	mov	r3, r0
	cmp	r3, #95
	beq	.L149
.L148:
	ldr	r3, [fp, #-20]
	add	r2, r3, #1
	str	r2, [fp, #-20]
	mov	r2, #0
	strb	r2, [r3]
	ldr	r1, .L167+20
	ldr	r0, .L167+8
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L150
	ldr	r3, .L167
	mov	r2, #116
	str	r2, [r3]
	b	.L136
.L150:
	ldr	r1, .L167+24
	ldr	r0, .L167+8
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L152
	ldr	r3, .L167
	mov	r2, #111
	str	r2, [r3]
	b	.L136
.L152:
	ldr	r1, .L167+28
	ldr	r0, .L167+8
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L153
	ldr	r3, .L167
	mov	r2, #108
	str	r2, [r3]
	b	.L136
.L153:
	ldr	r1, .L167+32
	ldr	r0, .L167+8
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L154
	ldr	r3, .L167
	mov	r2, #105
	str	r2, [r3]
	b	.L136
.L154:
	ldr	r1, .L167+36
	ldr	r0, .L167+8
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L155
	ldr	r3, .L167
	mov	r2, #102
	str	r2, [r3]
	b	.L136
.L155:
	ldr	r1, .L167+40
	ldr	r0, .L167+8
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L156
	ldr	r3, .L167
	mov	r2, #101
	str	r2, [r3]
	b	.L136
.L156:
	ldr	r3, .L167
	mov	r2, #97
	str	r2, [r3]
	b	.L136
.L146:
	bl	ch
	mov	r3, r0
	add	r3, r3, #1
	cmp	r3, #125
	ldrls	pc, [pc, r3, asl #2]
	b	.L157
.L159:
	.word	.L158
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L162
	.word	.L158
	.word	.L157
	.word	.L157
	.word	.L162
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L162
	.word	.L157
	.word	.L157
	.word	.L161
	.word	.L157
	.word	.L158
	.word	.L158
	.word	.L160
	.word	.L158
	.word	.L158
	.word	.L158
	.word	.L158
	.word	.L157
	.word	.L158
	.word	.L157
	.word	.L158
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L158
	.word	.L158
	.word	.L158
	.word	.L158
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L158
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L157
	.word	.L158
.L160:
	bl	next_char
	ldr	r3, .L167+44
	ldr	r3, [r3]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	b	.L163
.L166:
	bl	ch
	mov	r3, r0
	cmn	r3, #1
	bne	.L164
	ldr	r0, .L167+48
	bl	complain
	ldr	r3, .L167
	mvn	r2, #0
	str	r2, [r3]
	b	.L136
.L164:
	ldr	r3, [fp, #-16]
	add	r2, r3, #2
	ldr	r3, .L167+44
	ldr	r3, [r3]
	sub	r3, r2, r3
	mov	r0, r3
	bl	available
	mov	r3, r0
	cmp	r3, #0
	bne	.L165
	ldr	r3, .L167
	mov	r2, #10
	str	r2, [r3]
	b	.L136
.L165:
	bl	ch
	mov	r1, r0
	ldr	r3, [fp, #-16]
	add	r2, r3, #1
	str	r2, [fp, #-16]
	and	r2, r1, #255
	strb	r2, [r3]
	bl	next_char
.L163:
	bl	ch
	mov	r3, r0
	cmp	r3, #39
	bne	.L166
	bl	next_char
	ldr	r3, [fp, #-16]
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, .L167
	mov	r2, #39
	str	r2, [r3]
	b	.L136
.L158:
	bl	ch
	mov	r3, r0
	ldr	r2, .L167
	str	r3, [r2]
	bl	next_char
	b	.L136
.L162:
	bl	next_char
	b	.L137
.L161:
	bl	skip_line
	b	.L137
.L157:
	ldr	r0, .L167+52
	bl	complain
	ldr	r3, .L167
	mov	r2, #10
	str	r2, [r3]
	nop
.L136:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L168:
	.align	2
.L167:
	.word	token
	.word	token_value
	.word	token_name
	.word	token_name+16
	.word	.LC43
	.word	.LC44
	.word	.LC45
	.word	.LC46
	.word	.LC47
	.word	.LC48
	.word	.LC49
	.word	the_store
	.word	.LC50
	.word	.LC51
	.size	next, .-next
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	expect, %function
expect:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	str	r1, [fp, #-12]
	strb	r3, [fp, #-5]
	ldrb	r2, [fp, #-5]	@ zero_extendqisi2
	ldr	r3, .L172
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L170
	mov	r3, #1
	b	.L171
.L170:
	ldr	r0, [fp, #-12]
	bl	complain
	mov	r3, #0
.L171:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L173:
	.align	2
.L172:
	.word	token
	.size	expect, .-expect
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	skip_newline, %function
skip_newline:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	b	.L175
.L177:
	bl	next
.L175:
	ldr	r3, .L179
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L178
	ldr	r3, .L179+4
	ldr	r3, [r3]
	cmp	r3, #10
	beq	.L177
.L178:
	nop
	pop	{fp, pc}
.L180:
	.align	2
.L179:
	.word	complaint
	.word	token
	.size	skip_newline, .-skip_newline
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	parse_arguments, %function
parse_arguments:
	@ 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]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L182
.L183:
	mov	r0, #20
	bl	parse_expr
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L182:
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	bcc	.L183
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	parse_arguments, .-parse_arguments
	.section	.rodata
	.align	2
.LC52:
	.ascii	"Unknown identifier\000"
	.align	2
.LC53:
	.ascii	"Expected 'then'\000"
	.align	2
.LC54:
	.ascii	"Expected 'else'\000"
	.align	2
.LC55:
	.ascii	"Syntax error: expected ')'\000"
	.align	2
.LC56:
	.ascii	"Syntax error: expected a factor\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	parse_factor, %function
parse_factor:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #16
	bl	skip_newline
	ldr	r3, .L210
	ldr	r3, [r3]
	cmp	r3, #105
	beq	.L185
	cmp	r3, #105
	bgt	.L186
	cmp	r3, #97
	beq	.L187
	cmp	r3, #97
	bgt	.L186
	cmp	r3, #1
	beq	.L188
	cmp	r3, #0
	ble	.L186
	cmp	r3, #45
	bgt	.L186
	cmp	r3, #39
	blt	.L186
	sub	r3, r3, #39
	cmp	r3, #6
	ldrls	pc, [pc, r3, asl #2]
	b	.L186
.L190:
	.word	.L193
	.word	.L192
	.word	.L186
	.word	.L191
	.word	.L186
	.word	.L186
	.word	.L189
.L188:
	mov	r0, #1
	bl	gen
	ldr	r3, .L210+4
	ldr	r3, [r3]
	mov	r0, r3
	bl	gen_value
	bl	next
	b	.L194
.L193:
	mov	r0, #3
	bl	gen
	ldr	r3, .L210+8
	ldr	r4, [r3]
	ldr	r3, .L210+8
	ldr	r3, [r3]
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	add	r3, r3, #1
	ldr	r2, .L210+8
	add	r3, r4, r3
	str	r3, [r2]
	bl	next
	b	.L194
.L187:
	ldr	r3, .L210+12
	ldr	r4, [r3]
	ldr	r5, .L210+16
	ldr	r0, .L210+20
	bl	strlen
	mov	r3, r0
	ldr	r2, .L210+20
	mov	r1, r5
	mov	r0, r4
	bl	lookup
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L195
	ldr	r4, .L210+24
	ldr	r0, .L210+20
	bl	strlen
	mov	r3, r0
	ldr	r2, .L210+20
	mov	r1, r4
	ldr	r0, .L210+28
	bl	lookup
	str	r0, [fp, #-24]
.L195:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L196
	ldr	r0, .L210+32
	bl	complain
	b	.L194
.L196:
	bl	next
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]
	and	r3, r3, #3
	and	r3, r3, #255
	cmp	r3, #3
	ldrls	pc, [pc, r3, asl #2]
	b	.L206
.L200:
	.word	.L203
	.word	.L202
	.word	.L201
	.word	.L199
.L201:
	mov	r0, #4
	bl	gen
	ldr	r3, [fp, #-24]
	ldrb	r2, [r3]	@ zero_extendqisi2
	lsr	r2, r2, #2
	and	r2, r2, #255
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	lsl	r3, r3, #6
	orr	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r0, r3
	bl	gen_ushort
	b	.L197
.L199:
	mov	r0, #6
	bl	gen
	ldr	r3, [fp, #-24]
	ldrb	r2, [r3]	@ zero_extendqisi2
	lsr	r2, r2, #2
	and	r2, r2, #255
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	lsl	r3, r3, #6
	orr	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	and	r3, r3, #255
	mov	r0, r3
	bl	gen_ubyte
	b	.L197
.L202:
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3, #2]
	and	r3, r3, #15
	and	r3, r3, #255
	mov	r0, r3
	bl	parse_arguments
	mov	r0, #7
	bl	gen
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3, #2]
	and	r3, r3, #15
	and	r3, r3, #255
	mov	r0, r3
	bl	gen_ubyte
	ldr	r3, [fp, #-24]
	ldrb	r2, [r3]	@ zero_extendqisi2
	lsr	r2, r2, #2
	and	r2, r2, #255
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	lsl	r3, r3, #6
	orr	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r0, r3
	bl	gen_ushort
	b	.L197
.L203:
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3, #2]
	and	r3, r3, #15
	and	r3, r3, #255
	mov	r0, r3
	bl	parse_arguments
	ldr	r3, [fp, #-24]
	ldrb	r2, [r3]	@ zero_extendqisi2
	lsr	r2, r2, #2
	and	r2, r2, #255
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	lsl	r3, r3, #6
	orr	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	and	r3, r3, #255
	mov	r0, r3
	bl	gen
	b	.L197
.L206:
	ldr	r3, .L210+36
	ldr	r2, .L210+40
	ldr	r1, .L210+44
	ldr	r0, .L210+48
	bl	__assert_fail
.L197:
	b	.L194
.L185:
	bl	next
	mov	r0, #0
	bl	parse_expr
	mov	r0, #9
	bl	gen
	bl	forward_ref
	str	r0, [fp, #-20]
	bl	skip_newline
	ldr	r1, .L210+52
	mov	r0, #116
	bl	expect
	mov	r3, r0
	cmp	r3, #0
	beq	.L207
	bl	next
	mov	r0, #3
	bl	parse_expr
	mov	r0, #10
	bl	gen
	bl	forward_ref
	str	r0, [fp, #-16]
	bl	skip_newline
	ldr	r1, .L210+56
	mov	r0, #101
	bl	expect
	mov	r3, r0
	cmp	r3, #0
	beq	.L207
	bl	next
	ldr	r0, [fp, #-20]
	bl	resolve
	mov	r0, #3
	bl	parse_expr
	ldr	r0, [fp, #-16]
	bl	resolve
	b	.L207
.L191:
	bl	next
	bl	parse_factor
	mov	r0, #31
	bl	gen
	b	.L194
.L189:
	bl	next
	bl	parse_factor
	mov	r0, #19
	bl	gen
	b	.L194
.L192:
	bl	next
	mov	r0, #0
	bl	parse_expr
	ldr	r1, .L210+60
	mov	r0, #41
	bl	expect
	mov	r3, r0
	cmp	r3, #0
	beq	.L208
	bl	next
	b	.L208
.L186:
	ldr	r0, .L210+64
	bl	complain
	b	.L209
.L207:
	nop
	b	.L209
.L208:
	nop
.L194:
.L209:
	nop
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L211:
	.align	2
.L210:
	.word	token
	.word	token_value
	.word	the_store
	.word	dictionary_ptr
	.word	the_store+4096
	.word	token_name
	.word	primitive_dictionary+73
	.word	primitive_dictionary
	.word	.LC52
	.word	__PRETTY_FUNCTION__.5667
	.word	718
	.word	.LC1
	.word	.LC41
	.word	.LC53
	.word	.LC54
	.word	.LC55
	.word	.LC56
	.size	parse_factor, .-parse_factor
	.section	.rodata
	.align	2
.LC57:
	.ascii	"Not an l-value\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	parse_expr, %function
parse_expr:
	@ 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, .L241
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L238
	bl	parse_factor
	b	.L215
.L237:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L216
	bl	skip_newline
.L216:
	ldr	r3, .L241+4
	ldr	r3, [r3]
	sub	r3, r3, #37
	cmp	r3, #87
	ldrls	pc, [pc, r3, asl #2]
	b	.L239
.L219:
	.word	.L230
	.word	.L229
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L228
	.word	.L227
	.word	.L239
	.word	.L226
	.word	.L239
	.word	.L225
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L224
	.word	.L223
	.word	.L222
	.word	.L221
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L220
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L239
	.word	.L218
.L223:
	mov	r3, #1
	str	r3, [fp, #-12]
	mov	r3, #2
	str	r3, [fp, #-8]
	b	.L231
.L224:
	mov	r3, #3
	str	r3, [fp, #-12]
	mov	r3, #5
	str	r3, [fp, #-8]
	b	.L231
.L229:
	mov	r3, #5
	str	r3, [fp, #-12]
	mov	r3, #23
	str	r3, [fp, #-8]
	b	.L231
.L218:
	mov	r3, #5
	str	r3, [fp, #-12]
	mov	r3, #24
	str	r3, [fp, #-8]
	b	.L231
.L220:
	mov	r3, #5
	str	r3, [fp, #-12]
	mov	r3, #25
	str	r3, [fp, #-8]
	b	.L231
.L222:
	mov	r3, #7
	str	r3, [fp, #-12]
	mov	r3, #21
	str	r3, [fp, #-8]
	b	.L231
.L221:
	mov	r3, #7
	str	r3, [fp, #-12]
	mov	r3, #20
	str	r3, [fp, #-8]
	b	.L231
.L227:
	mov	r3, #9
	str	r3, [fp, #-12]
	mov	r3, #11
	str	r3, [fp, #-8]
	b	.L231
.L226:
	mov	r3, #9
	str	r3, [fp, #-12]
	mov	r3, #12
	str	r3, [fp, #-8]
	b	.L231
.L228:
	mov	r3, #11
	str	r3, [fp, #-12]
	mov	r3, #13
	str	r3, [fp, #-8]
	b	.L231
.L225:
	mov	r3, #11
	str	r3, [fp, #-12]
	mov	r3, #14
	str	r3, [fp, #-8]
	b	.L231
.L230:
	mov	r3, #11
	str	r3, [fp, #-12]
	mov	r3, #15
	str	r3, [fp, #-8]
	nop
.L231:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	blt	.L240
	ldr	r3, .L241
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L240
	bl	next
	bl	skip_newline
	ldr	r3, [fp, #-8]
	cmp	r3, #2
	bne	.L234
	ldr	r3, [fp, #-8]
	and	r3, r3, #255
	mov	r0, r3
	bl	gen
	b	.L235
.L234:
	ldr	r3, [fp, #-8]
	cmp	r3, #5
	bne	.L235
	ldr	r3, .L241+8
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L236
	ldr	r3, .L241+8
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #4
	bne	.L236
	ldr	r3, .L241+8
	ldr	r3, [r3]
	ldrh	r3, [r3, #1]	@ movhi
	strh	r3, [fp, #-14]	@ movhi
	ldr	r2, .L241+12
	ldr	r3, .L241+8
	ldr	r3, [r3]
	str	r3, [r2]
	ldr	r0, [fp, #-12]
	bl	parse_expr
	mov	r0, #5
	bl	gen
	ldrh	r3, [fp, #-14]
	mov	r0, r3
	bl	gen_ushort
	b	.L215
.L236:
	ldr	r0, .L241+16
	bl	complain
	b	.L212
.L235:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	mov	r0, r3
	bl	parse_expr
	ldr	r3, [fp, #-8]
	cmp	r3, #2
	beq	.L215
	ldr	r3, [fp, #-8]
	and	r3, r3, #255
	mov	r0, r3
	bl	gen
.L215:
	ldr	r3, .L241
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L237
	b	.L212
.L238:
	nop
	b	.L212
.L239:
	nop
	b	.L212
.L240:
	nop
.L212:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L242:
	.align	2
.L241:
	.word	complaint
	.word	token
	.word	prev_instruc
	.word	the_store
	.word	.LC57
	.size	parse_expr, .-parse_expr
	.section	.rodata
	.align	2
.LC58:
	.ascii	"Syntax error: unexpected token\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	parse_done, %function
parse_done:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L246
	ldr	r3, [r3]
	cmn	r3, #1
	beq	.L245
	ldr	r3, .L246
	ldr	r3, [r3]
	cmp	r3, #10
	beq	.L245
	ldr	r0, .L246+4
	bl	complain
.L245:
	nop
	pop	{fp, pc}
.L247:
	.align	2
.L246:
	.word	token
	.word	.LC58
	.size	parse_done, .-parse_done
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	scratch_expr, %function
scratch_expr:
	@ 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	r3, .L252
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	mvn	r0, #0
	bl	parse_expr
	bl	parse_done
	mov	r0, #0
	bl	gen
	ldr	r3, .L252
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r2, .L252
	ldr	r3, [fp, #-12]
	str	r3, [r2]
	ldr	r3, .L252+4
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L249
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-12]
	bl	run
	mov	r3, r0
	b	.L251
.L249:
	mov	r3, #0
.L251:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L253:
	.align	2
.L252:
	.word	the_store
	.word	complaint
	.size	scratch_expr, .-scratch_expr
	.section	.rodata
	.align	2
.LC59:
	.ascii	"%d\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	run_expr, %function
run_expr:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	bl	scratch_expr
	str	r0, [fp, #-8]
	ldr	r3, .L257
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L256
	ldr	r1, [fp, #-8]
	ldr	r0, .L257+4
	bl	printf
.L256:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L258:
	.align	2
.L257:
	.word	complaint
	.word	.LC59
	.size	run_expr, .-run_expr
	.section	.rodata
	.align	2
.LC60:
	.ascii	"Expected identifier\000"
	.align	2
.LC61:
	.ascii	"Expected '='\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	run_let, %function
run_let:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	ldr	r1, .L262
	mov	r0, #97
	bl	expect
	mov	r3, r0
	cmp	r3, #0
	beq	.L261
	mov	r0, #4
	bl	available
	mov	r3, r0
	cmp	r3, #0
	beq	.L261
	ldr	r3, .L262+4
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r0, #0
	bl	gen_value
	ldr	r0, .L262+8
	bl	strlen
	mov	r1, r0
	ldr	r3, [fp, #-8]
	ldr	r2, .L262+4
	sub	r3, r3, r2
	mov	r2, r3
	mov	r3, #0
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #2
	ldr	r0, .L262+8
	bl	bind
	bl	next
	ldr	r1, .L262+12
	mov	r0, #61
	bl	expect
	mov	r3, r0
	cmp	r3, #0
	beq	.L261
	bl	next
	bl	scratch_expr
	mov	r2, r0
	ldr	r3, [fp, #-8]
	str	r2, [r3]
.L261:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L263:
	.align	2
.L262:
	.word	.LC60
	.word	the_store
	.word	token_name
	.word	.LC61
	.size	run_let, .-run_let
	.section	.rodata
	.align	2
.LC62:
	.ascii	"Not a definition\000"
	.align	2
.LC63:
	.ascii	"Dictionary corrupted\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	run_forget, %function
run_forget:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #16
	ldr	r1, .L270
	mov	r0, #97
	bl	expect
	mov	r3, r0
	cmp	r3, #0
	beq	.L269
	ldr	r3, .L270+4
	ldr	r4, [r3]
	ldr	r5, .L270+8
	ldr	r0, .L270+12
	bl	strlen
	mov	r3, r0
	ldr	r2, .L270+12
	mov	r1, r5
	mov	r0, r4
	bl	lookup
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L266
	ldr	r0, .L270+16
	bl	complain
	b	.L267
.L266:
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r3, r3, #3
	and	r3, r3, #255
	cmp	r3, #2
	beq	.L267
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r3, r3, #3
	and	r3, r3, #255
	cmp	r3, #1
	beq	.L267
	ldr	r0, .L270+20
	bl	complain
.L267:
	bl	next
	bl	parse_done
	ldr	r3, .L270+24
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L269
	ldr	r3, [fp, #-24]
	ldrb	r2, [r3]	@ zero_extendqisi2
	lsr	r2, r2, #2
	and	r2, r2, #255
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	lsl	r3, r3, #6
	orr	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	ldr	r3, .L270+28
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r0, [fp, #-24]
	bl	next_header
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-20]
	ldr	r2, .L270+28
	cmp	r3, r2
	bcc	.L268
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	bhi	.L268
	ldr	r2, .L270+8
	ldr	r3, [fp, #-16]
	cmp	r3, r2
	bhi	.L268
	ldr	r2, .L270+28
	ldr	r3, [fp, #-20]
	str	r3, [r2]
	ldr	r2, .L270+4
	ldr	r3, [fp, #-16]
	str	r3, [r2]
	b	.L269
.L268:
	ldr	r0, .L270+32
	bl	complain
.L269:
	nop
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L271:
	.align	2
.L270:
	.word	.LC60
	.word	dictionary_ptr
	.word	the_store+4096
	.word	token_name
	.word	.LC52
	.word	.LC62
	.word	complaint
	.word	the_store
	.word	.LC63
	.size	run_forget, .-run_forget
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	run_fun, %function
run_fun:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	ldr	r1, .L279
	mov	r0, #97
	bl	expect
	mov	r3, r0
	cmp	r3, #0
	beq	.L278
	ldr	r3, .L279+4
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r0, .L279+8
	bl	strlen
	mov	r1, r0
	ldr	r3, .L279+12
	ldr	r3, [r3]
	ldr	r2, .L279+12
	sub	r3, r3, r2
	mov	r2, r3
	mov	r3, #0
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #1
	ldr	r0, .L279+8
	bl	bind
	str	r0, [fp, #-12]
	bl	next
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L274
	ldr	r3, .L279+4
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	b	.L275
.L276:
	ldr	r0, .L279+8
	bl	strlen
	mov	ip, r0
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3, #2]
	and	r3, r3, #15
	and	r1, r3, #255
	add	r3, r1, #1
	and	r3, r3, #15
	and	r0, r3, #255
	ldr	r2, [fp, #-12]
	ldrb	r3, [r2, #2]
	and	r0, r0, #15
	bic	r3, r3, #15
	orr	r3, r0, r3
	strb	r3, [r2, #2]
	mov	r2, r1
	mov	r3, #0
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #3
	mov	r1, ip
	ldr	r0, .L279+8
	bl	bind
	bl	next
.L275:
	ldr	r3, .L279+16
	ldr	r3, [r3]
	cmp	r3, #97
	beq	.L276
	ldr	r1, .L279+20
	mov	r0, #61
	bl	expect
	mov	r3, r0
	cmp	r3, #0
	beq	.L277
	bl	next
	mvn	r0, #0
	bl	parse_expr
	bl	parse_done
	mov	r0, #8
	bl	gen
.L277:
	ldr	r2, .L279+4
	ldr	r3, [fp, #-8]
	str	r3, [r2]
.L274:
	ldr	r3, .L279+24
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L278
	ldr	r2, .L279+4
	ldr	r3, [fp, #-16]
	str	r3, [r2]
.L278:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L280:
	.align	2
.L279:
	.word	.LC60
	.word	dictionary_ptr
	.word	token_name
	.word	the_store
	.word	token
	.word	.LC61
	.word	complaint
	.size	run_fun, .-run_fun
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	run_command, %function
run_command:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L288
	mov	r2, #0
	str	r2, [r3]
	bl	skip_newline
	ldr	r3, .L288+4
	ldr	r3, [r3]
	cmp	r3, #102
	bne	.L282
	bl	next
	bl	run_fun
	b	.L283
.L282:
	ldr	r3, .L288+4
	ldr	r3, [r3]
	cmp	r3, #108
	bne	.L284
	bl	next
	bl	run_let
	b	.L283
.L284:
	ldr	r3, .L288+4
	ldr	r3, [r3]
	cmp	r3, #111
	bne	.L285
	bl	next
	bl	run_forget
	b	.L283
.L285:
	bl	run_expr
.L283:
	ldr	r3, .L288
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L287
	ldr	r3, .L288
	ldr	r3, [r3]
	mov	r0, r3
	bl	puts
	bl	skip_line
	bl	next
.L287:
	nop
	pop	{fp, pc}
.L289:
	.align	2
.L288:
	.word	complaint
	.word	token
	.size	run_command, .-run_command
	.section	.rodata
	.align	2
.LC64:
	.ascii	"> \000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	read_eval_print_loop, %function
read_eval_print_loop:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r0, .L293
	bl	printf
	bl	next_char
	bl	next
	b	.L291
.L292:
	bl	run_command
	ldr	r0, .L293
	bl	printf
	bl	skip_newline
.L291:
	ldr	r3, .L293+4
	ldr	r3, [r3]
	cmn	r3, #1
	bne	.L292
	mov	r0, #10
	bl	putchar
	nop
	pop	{fp, pc}
.L294:
	.align	2
.L293:
	.word	.LC64
	.word	token
	.size	read_eval_print_loop, .-read_eval_print_loop
	.section	.rodata
	.align	2
.LC65:
	.ascii	"cp\000"
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #2
	mov	r1, #2
	ldr	r0, .L297
	bl	bind
	ldr	r3, .L297+4
	ldr	r2, .L297+8
	str	r2, [r3]
	bl	read_eval_print_loop
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L298:
	.align	2
.L297:
	.word	.LC65
	.word	the_store
	.word	the_store+4
	.size	main, .-main
	.section	.rodata
	.align	2
	.type	__PRETTY_FUNCTION__.5450, %object
	.size	__PRETTY_FUNCTION__.5450, 5
__PRETTY_FUNCTION__.5450:
	.ascii	"bind\000"
	.align	2
	.type	__PRETTY_FUNCTION__.5552, %object
	.size	__PRETTY_FUNCTION__.5552, 4
__PRETTY_FUNCTION__.5552:
	.ascii	"run\000"
	.align	2
	.type	__PRETTY_FUNCTION__.5667, %object
	.size	__PRETTY_FUNCTION__.5667, 13
__PRETTY_FUNCTION__.5667:
	.ascii	"parse_factor\000"
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
