	.file	"360874.c"
	.intel_syntax noprefix
	.section	.rodata
.LC0:
	.string	"+"
.LC1:
	.string	"-"
.LC2:
	.string	"*"
.LC3:
	.string	"/"
.LC4:
	.string	"="
.LC5:
	.string	"<"
.LC6:
	.string	"<="
.LC7:
	.string	">"
.LC8:
	.string	">="
.LC9:
	.string	"list"
.LC10:
	.string	"vector"
.LC11:
	.string	"hashmap"
.LC12:
	.string	"zip"
.LC13:
	.string	"list?"
.LC14:
	.string	"vector?"
.LC15:
	.string	"hashmap?"
.LC16:
	.string	"env?"
.LC17:
	.string	"empty?"
.LC18:
	.string	"count"
.LC19:
	.string	"pr-str"
.LC20:
	.string	"str"
.LC21:
	.string	"prn"
.LC22:
	.string	"println"
.LC23:
	.string	"type"
	.text
	.globl	text_make
	.type	text_make, @function
text_make:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	QWORD PTR -16[rbp], rax
	mov	esi, 40
	mov	edi, 1
	call	calloc@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	and	eax, 31
	test	rax, rax
	setne	al
	movzx	edx, al
	mov	rax, QWORD PTR -16[rbp]
	shr	rax, 5
	add	rax, rdx
	sal	rax, 5
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 32[rax]
	add	rax, 1
	mov	esi, 1
	mov	rdi, rax
	call	calloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rdx, QWORD PTR -16[rbp]
	mov	rcx, QWORD PTR -32[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	strncpy@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 24[rax]
	test	eax, eax
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	text_make, .-text_make
	.globl	text_append
	.type	text_append, @function
text_append:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	eax, edx
	mov	BYTE PTR -20[rbp], al
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 32[rax]
	cmp	rdx, rax
	jb	.L4
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 32[rax]
	lea	rdx, 32[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 32[rax]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	realloc@PLT
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 16[rdx], rax
.L4:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	add	rdx, rax
	movzx	eax, BYTE PTR -20[rbp]
	mov	BYTE PTR [rdx], al
	cmp	BYTE PTR -20[rbp], 0
	je	.L5
	mov	rax, QWORD PTR -16[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	add	rax, rcx
	mov	BYTE PTR [rax], 0
.L5:
	mov	rax, QWORD PTR -16[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	text_append, .-text_append
	.globl	text_concat
	.type	text_concat, @function
text_concat:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 32[rax]
	cmp	rdx, rax
	jb	.L8
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	and	eax, 31
	test	rax, rax
	setne	al
	movzx	edx, al
	mov	rax, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rcx
	shr	rax, 5
	add	rax, rdx
	sal	rax, 5
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 32[rax]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	realloc@PLT
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 16[rdx], rax
.L8:
	cmp	QWORD PTR -8[rbp], 0
	je	.L9
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	lea	rcx, [rdx+rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	call	strncpy@PLT
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -8[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	add	rax, rdx
	mov	BYTE PTR [rax], 0
.L9:
	mov	rax, QWORD PTR -32[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	text_concat, .-text_concat
	.globl	text_concat_text
	.type	text_concat_text, @function
text_concat_text:
.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	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 32[rax]
	cmp	rdx, rax
	jb	.L12
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	and	eax, 31
	test	rax, rax
	setne	al
	movzx	edx, al
	mov	rax, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rcx
	shr	rax, 5
	add	rax, rdx
	sal	rax, 5
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 32[rax]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	realloc@PLT
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 16[rdx], rax
.L12:
	cmp	QWORD PTR -8[rbp], 0
	je	.L13
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rdx, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR 16[rdx]
	mov	rdx, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 24[rdx]
	add	rcx, rdx
	mov	rdx, QWORD PTR -8[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	call	strncpy@PLT
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -8[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	add	rax, rdx
	mov	BYTE PTR [rax], 0
.L13:
	mov	rax, QWORD PTR -32[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	text_concat_text, .-text_concat_text
	.section	.rodata
.LC25:
	.string	""
	.text
	.globl	text_offset
	.type	text_offset, @function
text_offset:
.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	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC25[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -16[rbp], rax
	jmp	.L16
.L17:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movsx	edx, al
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	add	QWORD PTR -16[rbp], 1
.L16:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -16[rbp], rax
	jb	.L17
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	text_offset, .-text_offset
	.globl	text_escape
	.type	text_escape, @function
text_escape:
.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, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC25[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 34
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	jmp	.L20
.L28:
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	cmp	eax, 92
	je	.L21
	cmp	eax, 92
	jg	.L22
	cmp	eax, 34
	je	.L23
	cmp	eax, 34
	jg	.L22
	cmp	eax, 13
	je	.L24
	cmp	eax, 13
	jg	.L22
	cmp	eax, 9
	je	.L25
	cmp	eax, 10
	je	.L26
	jmp	.L22
.L25:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 92
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 116
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	jmp	.L27
.L26:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 92
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 110
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	jmp	.L27
.L24:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 92
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 114
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	jmp	.L27
.L23:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 92
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 34
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	jmp	.L27
.L21:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 92
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 92
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	jmp	.L27
.L22:
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	edx, al
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	nop
.L27:
	add	QWORD PTR -16[rbp], 1
.L20:
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L28
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 34
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	text_escape, .-text_escape
	.globl	text_unescape
	.type	text_unescape, @function
text_unescape:
.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, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC25[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	QWORD PTR -8[rbp], rax
	mov	QWORD PTR -24[rbp], 1
	jmp	.L31
.L41:
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 92
	jne	.L32
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	cmp	eax, 116
	je	.L33
	cmp	eax, 116
	jg	.L34
	cmp	eax, 114
	je	.L35
	cmp	eax, 114
	jg	.L34
	cmp	eax, 110
	je	.L36
	cmp	eax, 110
	jg	.L34
	cmp	eax, 34
	je	.L37
	cmp	eax, 92
	je	.L38
	jmp	.L34
.L37:
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, 34
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	add	QWORD PTR -24[rbp], 1
	jmp	.L40
.L38:
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, 92
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	add	QWORD PTR -24[rbp], 1
	jmp	.L40
.L36:
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, 10
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	add	QWORD PTR -24[rbp], 1
	jmp	.L40
.L35:
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, 13
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	add	QWORD PTR -24[rbp], 1
	jmp	.L40
.L33:
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, 9
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	add	QWORD PTR -24[rbp], 1
	jmp	.L40
.L34:
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movsx	edx, al
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	jmp	.L40
.L32:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -24[rbp], rax
	je	.L40
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 34
	je	.L40
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movsx	edx, al
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
.L40:
	add	QWORD PTR -24[rbp], 1
.L31:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -24[rbp], rax
	jb	.L41
	mov	rax, QWORD PTR -16[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	text_unescape, .-text_unescape
	.globl	text_make_integer
	.type	text_make_integer, @function
text_make_integer:
.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, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC25[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -48[rbp], 0
	jne	.L44
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, 48
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	jmp	.L45
.L44:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 24[rax], 0
	jmp	.L46
.L47:
	mov	rcx, QWORD PTR -48[rbp]
	movabs	rdx, 7378697629483820647
	mov	rax, rcx
	imul	rdx
	mov	rax, rdx
	sar	rax, 2
	mov	rsi, rcx
	sar	rsi, 63
	sub	rax, rsi
	mov	rdx, rax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	add	rax, rax
	sub	rcx, rax
	mov	rdx, rcx
	mov	eax, edx
	add	eax, 48
	movsx	edx, al
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rcx, QWORD PTR -48[rbp]
	movabs	rdx, 7378697629483820647
	mov	rax, rcx
	imul	rdx
	mov	rax, rdx
	sar	rax, 2
	sar	rcx, 63
	mov	rdx, rcx
	sub	rax, rdx
	mov	QWORD PTR -48[rbp], rax
.L46:
	cmp	QWORD PTR -48[rbp], 0
	jne	.L47
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	mov	QWORD PTR -24[rbp], rax
	jmp	.L48
.L49:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movsx	rax, al
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rsi, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -32[rbp], rdx
	lea	rdx, [rsi+rax]
	movzx	eax, BYTE PTR [rcx]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -16[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, -1[rax]
	mov	QWORD PTR -24[rbp], rdx
	add	rax, rcx
	mov	rdx, QWORD PTR -8[rbp]
	mov	BYTE PTR [rax], dl
.L48:
	mov	rax, QWORD PTR -32[rbp]
	cmp	rax, QWORD PTR -24[rbp]
	jb	.L49
.L45:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	add	rax, rdx
	mov	BYTE PTR [rax], 0
	mov	rax, QWORD PTR -16[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	text_make_integer, .-text_make_integer
	.globl	text_make_decimal
	.type	text_make_decimal, @function
text_make_decimal:
.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, 64
	mov	QWORD PTR -56[rbp], rdi
	movsd	QWORD PTR -64[rbp], xmm0
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC25[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -8[rbp], rax
	movsd	xmm0, QWORD PTR -64[rbp]
	cvttsd2si	rax, xmm0
	mov	QWORD PTR -24[rbp], rax
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, QWORD PTR -24[rbp]
	movsd	xmm0, QWORD PTR -64[rbp]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -16[rbp], xmm0
	mov	DWORD PTR -40[rbp], 0
	cmp	QWORD PTR -24[rbp], 0
	jne	.L52
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, 48
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	jmp	.L53
.L52:
	cmp	QWORD PTR -24[rbp], 0
	jns	.L54
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, 45
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	neg	QWORD PTR -24[rbp]
.L54:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	DWORD PTR -36[rbp], eax
	jmp	.L55
.L57:
	mov	rcx, QWORD PTR -24[rbp]
	movabs	rdx, 7378697629483820647
	mov	rax, rcx
	imul	rdx
	mov	rax, rdx
	sar	rax, 2
	mov	rsi, rcx
	sar	rsi, 63
	sub	rax, rsi
	mov	rdx, rax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	add	rax, rax
	sub	rcx, rax
	mov	rdx, rcx
	mov	eax, edx
	add	eax, 48
	movsx	edx, al
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rcx, QWORD PTR -24[rbp]
	movabs	rdx, 7378697629483820647
	mov	rax, rcx
	imul	rdx
	mov	rax, rdx
	sar	rax, 2
	sar	rcx, 63
	mov	rdx, rcx
	sub	rax, rdx
	mov	QWORD PTR -24[rbp], rax
	add	DWORD PTR -40[rbp], 1
.L55:
	cmp	QWORD PTR -24[rbp], 0
	je	.L58
	cmp	DWORD PTR -40[rbp], 15
	jle	.L57
	jmp	.L58
.L60:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, 48
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rcx, QWORD PTR -24[rbp]
	movabs	rdx, 7378697629483820647
	mov	rax, rcx
	imul	rdx
	mov	rax, rdx
	sar	rax, 2
	sar	rcx, 63
	mov	rdx, rcx
	sub	rax, rdx
	mov	QWORD PTR -24[rbp], rax
.L58:
	cmp	QWORD PTR -24[rbp], 0
	je	.L59
	cmp	DWORD PTR -40[rbp], 15
	jg	.L60
.L59:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	sub	eax, 1
	mov	DWORD PTR -32[rbp], eax
	jmp	.L61
.L62:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -36[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -36[rbp], edx
	cdqe
	lea	rdx, [rsi+rax]
	movzx	eax, BYTE PTR [rcx]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -8[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -32[rbp]
	lea	edx, -1[rax]
	mov	DWORD PTR -32[rbp], edx
	cdqe
	add	rax, rcx
	mov	edx, DWORD PTR -28[rbp]
	mov	BYTE PTR [rax], dl
.L61:
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -32[rbp]
	jl	.L62
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	add	rax, rdx
	mov	BYTE PTR [rax], 0
.L53:
	pxor	xmm0, xmm0
	ucomisd	xmm0, QWORD PTR -16[rbp]
	jp	.L63
	pxor	xmm0, xmm0
	ucomisd	xmm0, QWORD PTR -16[rbp]
	jne	.L63
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, 46
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, 48
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	jmp	.L65
.L63:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, 46
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	movsd	xmm1, QWORD PTR -16[rbp]
	movsd	xmm0, QWORD PTR .LC27[rip]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -16[rbp], xmm0
	movsd	xmm0, QWORD PTR -16[rbp]
	cvttsd2si	rax, xmm0
	mov	QWORD PTR -24[rbp], rax
	jmp	.L66
.L69:
	mov	rcx, QWORD PTR -24[rbp]
	movabs	rdx, 7378697629483820647
	mov	rax, rcx
	imul	rdx
	mov	rax, rdx
	sar	rax, 2
	mov	rsi, rcx
	sar	rsi, 63
	sub	rax, rsi
	mov	rdx, rax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	add	rax, rax
	sub	rcx, rax
	mov	rdx, rcx
	mov	eax, edx
	add	eax, 48
	movsx	edx, al
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	movsd	xmm1, QWORD PTR -16[rbp]
	movsd	xmm0, QWORD PTR .LC27[rip]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -16[rbp], xmm0
	movsd	xmm0, QWORD PTR -16[rbp]
	cvttsd2si	rax, xmm0
	mov	QWORD PTR -24[rbp], rax
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, QWORD PTR -24[rbp]
	movsd	xmm0, QWORD PTR -16[rbp]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -16[rbp], xmm0
	add	DWORD PTR -40[rbp], 1
.L66:
	movsd	xmm0, QWORD PTR -16[rbp]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jbe	.L67
	cmp	DWORD PTR -40[rbp], 15
	jle	.L69
.L67:
	jmp	.L70
.L72:
	movsd	xmm1, QWORD PTR -16[rbp]
	movsd	xmm0, QWORD PTR .LC27[rip]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -16[rbp], xmm0
	movsd	xmm0, QWORD PTR -16[rbp]
	cvttsd2si	rax, xmm0
	mov	QWORD PTR -24[rbp], rax
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, QWORD PTR -24[rbp]
	movsd	xmm0, QWORD PTR -16[rbp]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -16[rbp], xmm0
.L70:
	movsd	xmm0, QWORD PTR -16[rbp]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jbe	.L65
	mov	eax, DWORD PTR -40[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -40[rbp], edx
	cmp	eax, 15
	jg	.L72
.L65:
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	text_make_decimal, .-text_make_decimal
	.globl	text_to_integer
	.type	text_to_integer, @function
text_to_integer:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -16[rbp], 0
	mov	QWORD PTR -8[rbp], 0
	mov	QWORD PTR -8[rbp], 0
	jmp	.L78
.L81:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -17[rbp], al
	cmp	BYTE PTR -17[rbp], 47
	jle	.L79
	cmp	BYTE PTR -17[rbp], 57
	jg	.L79
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	movsx	eax, BYTE PTR -17[rbp]
	sub	eax, 48
	cdqe
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	add	QWORD PTR -8[rbp], 1
	jmp	.L78
.L79:
	mov	rax, QWORD PTR -16[rbp]
	jmp	.L80
.L78:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -8[rbp], rax
	jb	.L81
	mov	rax, QWORD PTR -16[rbp]
.L80:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	text_to_integer, .-text_to_integer
	.globl	text_to_decimal
	.type	text_to_decimal, @function
text_to_decimal:
.LFB16:
	.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 -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	pxor	xmm0, xmm0
	movsd	QWORD PTR -24[rbp], xmm0
	mov	DWORD PTR -28[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	jmp	.L83
.L87:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -29[rbp], al
	cmp	BYTE PTR -29[rbp], 47
	jle	.L84
	cmp	BYTE PTR -29[rbp], 57
	jg	.L84
	cmp	DWORD PTR -28[rbp], 0
	jne	.L84
	movsd	xmm1, QWORD PTR -24[rbp]
	movsd	xmm0, QWORD PTR .LC27[rip]
	mulsd	xmm1, xmm0
	movsx	eax, BYTE PTR -29[rbp]
	sub	eax, 48
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, eax
	addsd	xmm0, xmm1
	movsd	QWORD PTR -24[rbp], xmm0
	jmp	.L85
.L84:
	cmp	BYTE PTR -29[rbp], 47
	jle	.L86
	cmp	BYTE PTR -29[rbp], 57
	jg	.L86
	cmp	DWORD PTR -28[rbp], 0
	je	.L86
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR .LC28[rip]
	movapd	xmm1, xmm0
	movq	xmm0, rax
	call	pow@PLT
	movq	rax, xmm0
	mov	QWORD PTR -8[rbp], rax
	movsx	eax, BYTE PTR -29[rbp]
	sub	eax, 48
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, eax
	mulsd	xmm0, QWORD PTR -8[rbp]
	movsd	xmm1, QWORD PTR -24[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -24[rbp], xmm0
	add	DWORD PTR -28[rbp], 1
	jmp	.L85
.L86:
	cmp	BYTE PTR -29[rbp], 46
	jne	.L85
	mov	DWORD PTR -28[rbp], 1
.L85:
	add	QWORD PTR -16[rbp], 1
.L83:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -16[rbp], rax
	jb	.L87
	movsd	xmm0, QWORD PTR -24[rbp]
	movq	rax, xmm0
	movq	xmm0, rax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	text_to_decimal, .-text_to_decimal
	.globl	text_cmp
	.type	text_cmp, @function
text_cmp:
.LFB17:
	.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	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -8[rbp], rax
	cmovnb	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	rcx, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	strncmp@PLT
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	text_cmp, .-text_cmp
	.globl	text_cmp_text
	.type	text_cmp_text, @function
text_cmp_text:
.LFB18:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rdx, rax
	cmovnb	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	strncmp@PLT
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	text_cmp_text, .-text_cmp_text
	.globl	text_hash_fnv_1a
	.type	text_hash_fnv_1a, @function
text_hash_fnv_1a:
.LFB19:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	eax, 2166136261
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -12[rbp], 0
	jmp	.L94
.L95:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -12[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	xor	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	imul	rax, rax, 16777619
	mov	QWORD PTR -8[rbp], rax
	add	DWORD PTR -12[rbp], 1
.L94:
	mov	edx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rdx, rax
	jb	.L95
	mov	rax, QWORD PTR -8[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	text_hash_fnv_1a, .-text_hash_fnv_1a
	.globl	text_hash_jenkins
	.type	text_hash_jenkins, @function
text_hash_jenkins:
.LFB20:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L98
.L99:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 10
	add	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	shr	rax, 6
	xor	QWORD PTR -16[rbp], rax
	add	QWORD PTR -8[rbp], 1
.L98:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L99
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	shr	rax, 11
	xor	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 15
	add	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	text_hash_jenkins, .-text_hash_jenkins
	.section	.rodata
.LC29:
	.string	" C:"
.LC30:
	.string	"L:"
	.text
	.globl	text_display_position
	.type	text_display_position, @function
text_display_position:
.LFB21:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r12
	push	rbx
	sub	rsp, 32
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_make
	mov	rbx, rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 48[rax]
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_make_integer
	mov	r12, rax
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC29[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, r12
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 32
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rcx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rbx, rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_make_integer
	mov	r12, rax
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC30[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, r12
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 10
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	add	rsp, 32
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	text_display_position, .-text_display_position
	.globl	text_str
	.type	text_str, @function
text_str:
.LFB22:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rdi, rax
	call	strdup@PLT
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE22:
	.size	text_str, .-text_str
	.globl	text_get
	.type	text_get, @function
text_get:
.LFB23:
	.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	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -24[rbp], rax
	jnb	.L106
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	jmp	.L107
.L106:
	mov	eax, 0
.L107:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE23:
	.size	text_get, .-text_get
	.globl	text_free
	.type	text_free, @function
text_free:
.LFB24:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	free@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE24:
	.size	text_free, .-text_free
	.globl	error_make
	.type	error_make, @function
error_make:
.LFB25:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 24
	.cfi_offset 3, -24
	mov	QWORD PTR -24[rbp], rdi
	mov	esi, 48
	mov	edi, 1
	call	calloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 64[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	QWORD PTR 32[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	QWORD PTR 40[rax], 32
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	rax, QWORD PTR 40[rax]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rbx, QWORD PTR 64[rdx]
	mov	esi, 8
	mov	rdi, rax
	call	calloc@PLT
	mov	QWORD PTR 16[rbx], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	rax, QWORD PTR 40[rax]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rbx, QWORD PTR 64[rdx]
	mov	esi, 4
	mov	rdi, rax
	call	calloc@PLT
	mov	QWORD PTR 24[rbx], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	DWORD PTR [rax], 10
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 24[rax]
	test	eax, eax
	sete	dl
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	movzx	edx, dl
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR [rdx]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	eax, 1
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE25:
	.size	error_make, .-error_make
	.globl	error_append
	.type	error_append, @function
error_append:
.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
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	test	rax, rax
	jne	.L112
	mov	esi, 48
	mov	edi, 1
	call	calloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 64[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	QWORD PTR 32[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	QWORD PTR 40[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	DWORD PTR [rax], 10
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 24[rax]
	test	eax, eax
	sete	dl
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	movzx	edx, dl
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR [rdx]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], rdx
.L112:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	rax, QWORD PTR 32[rax]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	rax, QWORD PTR 40[rax]
	cmp	rdx, rax
	jb	.L113
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	rdx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	add	rdx, 32
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	rax, QWORD PTR 40[rax]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rbx, QWORD PTR 64[rcx]
	mov	rsi, rdx
	mov	rdi, rax
	call	realloc@PLT
	mov	QWORD PTR 16[rbx], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	rax, QWORD PTR 40[rax]
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rbx, QWORD PTR 64[rcx]
	mov	rsi, rdx
	mov	rdi, rax
	call	realloc@PLT
	mov	QWORD PTR 24[rbx], rax
.L113:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	rax, QWORD PTR 32[rax]
	sal	rax, 2
	add	rdx, rax
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	rsi, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	rdx, QWORD PTR 32[rax]
	lea	rcx, 1[rdx]
	mov	QWORD PTR 32[rax], rcx
	lea	rax, 0[0+rdx*8]
	lea	rdx, [rsi+rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE26:
	.size	error_append, .-error_append
	.section	.rodata
.LC31:
	.string	"([ERROR]\n"
.LC32:
	.string	"  [OK] "
.LC33:
	.string	"  [READER] "
.LC34:
	.string	"  [RUNTIME] "
.LC35:
	.string	"  [PRINTER] "
.LC36:
	.string	"  [UNKNOWN] "
.LC37:
	.string	")\n"
	.text
	.globl	error_collapse
	.type	error_collapse, @function
error_collapse:
.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	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC31[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	test	rax, rax
	je	.L116
	mov	QWORD PTR -16[rbp], 0
	jmp	.L117
.L124:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	eax, 3
	je	.L118
	cmp	eax, 3
	ja	.L119
	cmp	eax, 2
	je	.L120
	cmp	eax, 2
	ja	.L119
	test	eax, eax
	je	.L121
	cmp	eax, 1
	je	.L122
	jmp	.L119
.L121:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, .LC32[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	jmp	.L123
.L122:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, .LC33[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	jmp	.L123
.L120:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, .LC34[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	jmp	.L123
.L118:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, .LC35[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	jmp	.L123
.L119:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, .LC36[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
.L123:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	add	QWORD PTR -16[rbp], 1
.L117:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	rax, QWORD PTR 32[rax]
	cmp	QWORD PTR -16[rbp], rax
	jb	.L124
.L116:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, .LC37[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE27:
	.size	error_collapse, .-error_collapse
	.globl	error_empty
	.type	error_empty, @function
error_empty:
.LFB28:
	.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 -8[rbp]
	mov	rax, QWORD PTR 64[rax]
	test	rax, rax
	jne	.L127
	mov	eax, 1
	jmp	.L128
.L127:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	rax, QWORD PTR 32[rax]
	test	rax, rax
	sete	al
	movzx	eax, al
.L128:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE28:
	.size	error_empty, .-error_empty
	.globl	error_free
	.type	error_free, @function
error_free:
.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
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	free@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE29:
	.size	error_free, .-error_free
	.globl	comment_make
	.type	comment_make, @function
comment_make:
.LFB30:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 24
	.cfi_offset 3, -24
	mov	QWORD PTR -24[rbp], rdi
	mov	esi, 40
	mov	edi, 1
	call	calloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 72[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 72[rax]
	mov	QWORD PTR 24[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 72[rax]
	mov	QWORD PTR 32[rax], 32
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 72[rax]
	mov	rax, QWORD PTR 32[rax]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 72[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rbx, QWORD PTR 72[rcx]
	mov	rsi, rdx
	mov	rdi, rax
	call	realloc@PLT
	mov	QWORD PTR 16[rbx], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 72[rax]
	mov	DWORD PTR [rax], 7
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 24[rax]
	test	eax, eax
	sete	dl
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 72[rax]
	movzx	edx, dl
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 72[rax]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR [rdx]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 72[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	eax, 1
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE30:
	.size	comment_make, .-comment_make
	.globl	comment_append
	.type	comment_append, @function
comment_append:
.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
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 72[rax]
	test	rax, rax
	jne	.L133
	mov	esi, 40
	mov	edi, 1
	call	calloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 72[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 72[rax]
	mov	QWORD PTR 24[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 72[rax]
	mov	QWORD PTR 32[rax], 0
.L133:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 72[rax]
	mov	rax, QWORD PTR 24[rax]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 72[rax]
	mov	rax, QWORD PTR 32[rax]
	cmp	rdx, rax
	jb	.L134
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 72[rax]
	mov	rdx, QWORD PTR 32[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 72[rax]
	add	rdx, 32
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 72[rax]
	mov	rax, QWORD PTR 32[rax]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 72[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rbx, QWORD PTR 72[rcx]
	mov	rsi, rdx
	mov	rdi, rax
	call	realloc@PLT
	mov	QWORD PTR 16[rbx], rax
.L134:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 72[rax]
	mov	rsi, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 72[rax]
	mov	rdx, QWORD PTR 24[rax]
	lea	rcx, 1[rdx]
	mov	QWORD PTR 24[rax], rcx
	lea	rax, 0[0+rdx*8]
	lea	rdx, [rsi+rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 72[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 72[rax]
	mov	rax, QWORD PTR 24[rax]
	sal	rax, 3
	add	rax, rdx
	mov	QWORD PTR [rax], 0
	mov	rax, QWORD PTR -32[rbp]
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE31:
	.size	comment_append, .-comment_append
	.section	.rodata
.LC38:
	.string	"([comment]\n"
	.text
	.globl	comment_collapse
	.type	comment_collapse, @function
comment_collapse:
.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
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC38[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 72[rax]
	test	rax, rax
	je	.L137
	mov	QWORD PTR -16[rbp], 0
	jmp	.L138
.L139:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 72[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	add	QWORD PTR -16[rbp], 1
.L138:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 72[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -16[rbp], rax
	jb	.L139
.L137:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, .LC37[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE32:
	.size	comment_collapse, .-comment_collapse
	.globl	comment_free
	.type	comment_free, @function
comment_free:
.LFB33:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	free@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE33:
	.size	comment_free, .-comment_free
	.globl	function_make
	.type	function_make, @function
function_make:
.LFB34:
	.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	esi, 32
	mov	edi, 1
	call	calloc@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], 8
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 24[rax]
	test	eax, eax
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE34:
	.size	function_make, .-function_make
	.globl	function_free
	.type	function_free, @function
function_free:
.LFB35:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	free@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE35:
	.size	function_free, .-function_free
	.globl	closure_make
	.type	closure_make, @function
closure_make:
.LFB36:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -48[rbp], rcx
	mov	QWORD PTR -56[rbp], r8
	mov	esi, 48
	mov	edi, 1
	call	calloc@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -48[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -56[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], 9
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 24[rax]
	test	eax, eax
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE36:
	.size	closure_make, .-closure_make
	.section	.rodata
.LC39:
	.string	"(fn* "
	.text
	.globl	closure_text
	.type	closure_text, @function
closure_text:
.LFB37:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC39[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rcx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_more_text
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 32
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rax, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 41
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE37:
	.size	closure_text, .-closure_text
	.section	.rodata
.LC40:
	.string	"nil: nil"
	.align 8
.LC41:
	.string	"'fn*': non-symbol in argument list '"
.LC42:
	.string	"'\n"
	.align 8
.LC43:
	.string	"'fn*': missing symbol after '&' in argument list\n"
	.align 8
.LC44:
	.string	"'fn*': more symbol is duplicate symbol in argument list '"
	.align 8
.LC45:
	.string	"'fn*': unexpected symbol after'& "
.LC46:
	.string	"' symbol in argument list: '"
	.align 8
.LC47:
	.string	"'fn*': unexpected symbol after '"
	.align 8
.LC48:
	.string	"'fn*': duplicate symbol in argument list '"
	.text
	.globl	closure_parameters
	.type	closure_parameters, @function
closure_parameters:
.LFB38:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r12
	push	rbx
	sub	rsp, 80
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	QWORD PTR -88[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_list
	test	eax, eax
	je	.L150
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	jmp	.L151
.L150:
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_vector
	test	eax, eax
	je	.L152
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	vector_list
	jmp	.L151
.L152:
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	list_make
.L151:
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	list_make
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -64[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_vector
	test	eax, eax
	je	.L154
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	vector_list
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_list
	mov	rdx, QWORD PTR -80[rbp]
	mov	QWORD PTR [rdx], rax
.L154:
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_list
	test	eax, eax
	jne	.L155
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_symbol
	test	eax, eax
	je	.L155
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	list_make
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rdx, QWORD PTR -64[rbp]
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_list
	mov	rdx, QWORD PTR -80[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -64[rbp]
	jmp	.L171
.L155:
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_list
	test	eax, eax
	jne	.L157
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_symbol
	test	eax, eax
	jne	.L157
	mov	rax, QWORD PTR -80[rbp]
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rbx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC41[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, .LC42[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L171
.L157:
	mov	QWORD PTR -56[rbp], 0
	jmp	.L158
.L170:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -56[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	is_symbol
	test	eax, eax
	jne	.L159
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rbx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC41[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, .LC42[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L171
.L159:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 38
	jne	.L160
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L161
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	je	.L162
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC43[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L171
.L162:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_symbol
	test	eax, eax
	je	.L163
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 2
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	je	.L163
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 3[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rdx, rax
	jne	.L163
	mov	rdx, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_find
	test	rax, rax
	je	.L164
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rbx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC44[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, .LC42[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L171
.L164:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -88[rbp]
	mov	QWORD PTR [rax], rdx
	jmp	.L165
.L163:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_symbol
	test	eax, eax
	je	.L168
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 2
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L168
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rbx, rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	r12, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC45[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, r12
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, .LC46[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, .LC42[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L171
.L161:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	je	.L167
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rdx, rax
	jne	.L167
	mov	rax, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, 1
	mov	rsi, rcx
	mov	rdi, rax
	call	text_offset
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_symbol
	mov	rdx, QWORD PTR -88[rbp]
	mov	QWORD PTR [rdx], rax
	jmp	.L168
.L167:
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rbx, rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	r12, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC47[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, r12
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, .LC46[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, .LC42[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L171
.L160:
	mov	rdx, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_find
	test	rax, rax
	je	.L169
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rbx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC48[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, .LC42[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L171
.L169:
	mov	rdx, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
.L168:
	add	QWORD PTR -56[rbp], 1
.L158:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -56[rbp], rax
	jb	.L170
.L165:
	mov	rdx, QWORD PTR -64[rbp]
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_list
	mov	rdx, QWORD PTR -80[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -64[rbp]
.L171:
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L172
	call	__stack_chk_fail@PLT
.L172:
	add	rsp, 80
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE38:
	.size	closure_parameters, .-closure_parameters
	.globl	closure_free
	.type	closure_free, @function
closure_free:
.LFB39:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	free@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE39:
	.size	closure_free, .-closure_free
	.globl	list_make
	.type	list_make, @function
list_make:
.LFB40:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	esi, 40
	mov	edi, 1
	call	calloc@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	QWORD PTR -16[rbp], 2
	cmp	QWORD PTR -32[rbp], 0
	jne	.L176
	mov	QWORD PTR -32[rbp], 2
	jmp	.L176
.L177:
	sal	QWORD PTR -16[rbp]
.L176:
	mov	rax, QWORD PTR -16[rbp]
	cmp	rax, QWORD PTR -32[rbp]
	jb	.L177
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 24[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	calloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], 2
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 24[rax]
	test	eax, eax
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE40:
	.size	list_make, .-list_make
	.section	.rodata
.LC49:
	.string	"not enough memory"
	.text
	.globl	list_append
	.type	list_append, @function
list_append:
.LFB41:
	.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	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 32[rax]
	cmp	rdx, rax
	jb	.L180
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 32[rax]
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 32[rax]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	realloc@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L181
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	reader_peek
	mov	rcx, rax
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, .LC49[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_display_position
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	error_append
	mov	eax, 0
	jmp	.L182
.L181:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 16[rax], rdx
.L180:
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	lea	rcx, 1[rax]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 24[rdx], rcx
	sal	rax, 3
	lea	rdx, [rsi+rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR [rdx], rax
	mov	eax, 1
.L182:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE41:
	.size	list_append, .-list_append
	.section	.rodata
.LC50:
	.string	"("
.LC51:
	.string	"nil"
.LC52:
	.string	" : "
	.text
	.globl	list_text
	.type	list_text, @function
list_text:
.LFB42:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC50[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -8[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L184
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	QWORD PTR -16[rbp], 1
	jmp	.L185
.L186:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 32
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	add	QWORD PTR -16[rbp], 1
.L185:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -16[rbp], rax
	jb	.L186
	cmp	QWORD PTR -16[rbp], 1
	je	.L184
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rcx, rax
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, .LC51[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_cmp
	test	eax, eax
	je	.L184
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, .LC52[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
.L184:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 41
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE42:
	.size	list_text, .-list_text
	.section	.rodata
.LC53:
	.string	" & "
	.text
	.globl	list_more_text
	.type	list_more_text, @function
list_more_text:
.LFB43:
	.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	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC50[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -8[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L189
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	QWORD PTR -16[rbp], 1
	jmp	.L190
.L191:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 32
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	add	QWORD PTR -16[rbp], 1
.L190:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -16[rbp], rax
	jb	.L191
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L189
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 32
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
.L189:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L192
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, .LC53[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
.L192:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 41
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE43:
	.size	list_more_text, .-list_more_text
	.globl	list_offset
	.type	list_offset, @function
list_offset:
.LFB44:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -56[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, QWORD PTR -56[rbp]
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rdx, rax
	jnb	.L195
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, QWORD PTR -56[rbp]
	jmp	.L196
.L195:
	mov	eax, 0
.L196:
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	list_make
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -24[rbp], rax
	jmp	.L197
.L198:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	add	QWORD PTR -24[rbp], 1
.L197:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -24[rbp], rax
	jb	.L198
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	jne	.L199
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -32[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rdx, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
.L199:
	mov	rax, QWORD PTR -16[rbp]
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L201
	call	__stack_chk_fail@PLT
.L201:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE44:
	.size	list_offset, .-list_offset
	.globl	list_params
	.type	list_params, @function
list_params:
.LFB45:
	.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 -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	jle	.L203
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	lea	rdx, -1[rax]
	jmp	.L204
.L203:
	mov	edx, 0
.L204:
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	list_make
	mov	QWORD PTR -16[rbp], rax
	mov	QWORD PTR -24[rbp], 1
	jmp	.L205
.L206:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	add	QWORD PTR -24[rbp], 1
.L205:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -24[rbp], rax
	jb	.L206
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	jne	.L207
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -32[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rdx, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
.L207:
	mov	rax, QWORD PTR -16[rbp]
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L209
	call	__stack_chk_fail@PLT
.L209:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE45:
	.size	list_params, .-list_params
	.globl	list_get
	.type	list_get, @function
list_get:
.LFB46:
	.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	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -40[rbp], rax
	jnb	.L211
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	jmp	.L212
.L211:
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -16[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -16[rbp]
.L212:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L213
	call	__stack_chk_fail@PLT
.L213:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE46:
	.size	list_get, .-list_get
	.globl	list_find
	.type	list_find, @function
list_find:
.LFB47:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -56[rbp], rdx
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -8[rbp], rax
	mov	QWORD PTR -24[rbp], 0
	jmp	.L215
.L218:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 24[rax]
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_cmp_text
	test	eax, eax
	jne	.L216
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	jmp	.L217
.L216:
	add	QWORD PTR -24[rbp], 1
.L215:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -24[rbp], rax
	jb	.L218
	mov	rax, QWORD PTR -16[rbp]
.L217:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE47:
	.size	list_find, .-list_find
	.section	.rodata
.LC54:
	.string	"boolean: true"
.LC55:
	.string	"boolean: false"
	.text
	.globl	list_equal
	.type	list_equal, @function
list_equal:
.LFB48:
	.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 -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	QWORD PTR -72[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC54[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -48[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC55[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rdx, rax
	je	.L220
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L225
.L220:
	mov	QWORD PTR -32[rbp], 0
	jmp	.L222
.L224:
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	list_make
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_list
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	core_eq
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	is_false
	test	eax, eax
	je	.L223
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L225
.L223:
	add	QWORD PTR -32[rbp], 1
.L222:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -32[rbp], rax
	jb	.L224
	mov	rax, QWORD PTR -48[rbp]
.L225:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L226
	call	__stack_chk_fail@PLT
.L226:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE48:
	.size	list_equal, .-list_equal
	.globl	list_free
	.type	list_free, @function
list_free:
.LFB49:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	free@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE49:
	.size	list_free, .-list_free
	.globl	vector_make
	.type	vector_make, @function
vector_make:
.LFB50:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	esi, 40
	mov	edi, 1
	call	calloc@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	QWORD PTR -16[rbp], 2
	cmp	QWORD PTR -32[rbp], 0
	jne	.L230
	mov	QWORD PTR -32[rbp], 2
	jmp	.L230
.L231:
	sal	QWORD PTR -16[rbp]
.L230:
	mov	rax, QWORD PTR -16[rbp]
	cmp	rax, QWORD PTR -32[rbp]
	jb	.L231
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 24[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	calloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], 3
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 24[rax]
	test	eax, eax
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE50:
	.size	vector_make, .-vector_make
	.globl	vector_append
	.type	vector_append, @function
vector_append:
.LFB51:
	.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	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 32[rax]
	cmp	rdx, rax
	jb	.L234
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 32[rax]
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 32[rax]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	realloc@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L235
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	reader_peek
	mov	rcx, rax
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, .LC49[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_display_position
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	error_append
	mov	eax, 0
	jmp	.L236
.L235:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 16[rax], rdx
.L234:
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	lea	rcx, 1[rax]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 24[rdx], rcx
	sal	rax, 3
	lea	rdx, [rsi+rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR [rdx], rax
	mov	eax, 1
.L236:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE51:
	.size	vector_append, .-vector_append
	.section	.rodata
.LC56:
	.string	"["
	.text
	.globl	vector_text
	.type	vector_text, @function
vector_text:
.LFB52:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC56[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L238
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	QWORD PTR -16[rbp], 1
	jmp	.L239
.L240:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 32
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	add	QWORD PTR -16[rbp], 1
.L239:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -16[rbp], rax
	jb	.L240
	cmp	QWORD PTR -16[rbp], 1
	je	.L238
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rcx, rax
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, .LC51[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_cmp
	test	eax, eax
	je	.L238
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, .LC52[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
.L238:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 93
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE52:
	.size	vector_text, .-vector_text
	.globl	vector_get
	.type	vector_get, @function
vector_get:
.LFB53:
	.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	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -40[rbp], rax
	jnb	.L243
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	jmp	.L244
.L243:
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -16[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -16[rbp]
.L244:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L245
	call	__stack_chk_fail@PLT
.L245:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE53:
	.size	vector_get, .-vector_get
	.globl	vector_equal
	.type	vector_equal, @function
vector_equal:
.LFB54:
	.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 -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	QWORD PTR -72[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC54[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -48[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC55[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rdx, rax
	je	.L247
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L252
.L247:
	mov	QWORD PTR -32[rbp], 0
	jmp	.L249
.L251:
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	list_make
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_list
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	core_eq
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	is_false
	test	eax, eax
	je	.L250
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L252
.L250:
	add	QWORD PTR -32[rbp], 1
.L249:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -32[rbp], rax
	jb	.L251
	mov	rax, QWORD PTR -48[rbp]
.L252:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L253
	call	__stack_chk_fail@PLT
.L253:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE54:
	.size	vector_equal, .-vector_equal
	.globl	vector_list
	.type	vector_list, @function
vector_list:
.LFB55:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	list_make
	mov	QWORD PTR -8[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	jmp	.L255
.L256:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	add	QWORD PTR -16[rbp], 1
.L255:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -16[rbp], rax
	jb	.L256
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE55:
	.size	vector_list, .-vector_list
	.globl	vector_free
	.type	vector_free, @function
vector_free:
.LFB56:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	free@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE56:
	.size	vector_free, .-vector_free
	.globl	hashmap_make
	.type	hashmap_make, @function
hashmap_make:
.LFB57:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	esi, 40
	mov	edi, 1
	call	calloc@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	QWORD PTR -16[rbp], 2
	cmp	QWORD PTR -32[rbp], 0
	jne	.L261
	mov	QWORD PTR -32[rbp], 2
	jmp	.L261
.L262:
	sal	QWORD PTR -16[rbp]
.L261:
	mov	rax, QWORD PTR -16[rbp]
	cmp	rax, QWORD PTR -32[rbp]
	jb	.L262
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 24[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	calloc@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], 5
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 24[rax]
	test	eax, eax
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE57:
	.size	hashmap_make, .-hashmap_make
	.globl	hashmap_set
	.type	hashmap_set, @function
hashmap_set:
.LFB58:
	.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	QWORD PTR -48[rbp], rcx
	mov	QWORD PTR -8[rbp], 0
	mov	QWORD PTR -8[rbp], 0
	jmp	.L265
.L268:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	sal	rax, 3
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	rcx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_cmp_text
	test	eax, eax
	jne	.L266
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 1
	cmp	rax, rdx
	jb	.L266
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 1
	sal	rax, 3
	add	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR [rdx], rax
	mov	eax, 1
	jmp	.L267
.L266:
	add	QWORD PTR -8[rbp], 2
.L265:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -8[rbp], rax
	jb	.L268
	mov	rdx, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	hashmap_append
	mov	rdx, QWORD PTR -48[rbp]
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	hashmap_append
	mov	eax, 1
.L267:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE58:
	.size	hashmap_set, .-hashmap_set
	.globl	hashmap_get
	.type	hashmap_get, @function
hashmap_get:
.LFB59:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -56[rbp], rdx
	mov	QWORD PTR -64[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR [rax], 0
	mov	QWORD PTR -16[rbp], 0
	jmp	.L270
.L273:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	rcx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_cmp_text
	test	eax, eax
	jne	.L271
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, 1
	jmp	.L274
.L271:
	add	QWORD PTR -16[rbp], 2
.L270:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -16[rbp], rax
	jb	.L273
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, 0
.L274:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L275
	call	__stack_chk_fail@PLT
.L275:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE59:
	.size	hashmap_get, .-hashmap_get
	.globl	hashmap_get_by_text
	.type	hashmap_get_by_text, @function
hashmap_get_by_text:
.LFB60:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -56[rbp], rdx
	mov	QWORD PTR -64[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR [rax], 0
	mov	QWORD PTR -16[rbp], 0
	jmp	.L277
.L280:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rcx, QWORD PTR 40[rax]
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_cmp_text
	test	eax, eax
	jne	.L278
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, 1
	jmp	.L281
.L278:
	add	QWORD PTR -16[rbp], 2
.L277:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -16[rbp], rax
	jb	.L280
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, 0
.L281:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L282
	call	__stack_chk_fail@PLT
.L282:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE60:
	.size	hashmap_get_by_text, .-hashmap_get_by_text
	.globl	hashmap_append
	.type	hashmap_append, @function
hashmap_append:
.LFB61:
	.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	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 32[rax]
	cmp	rdx, rax
	jb	.L284
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 32[rax]
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 32[rax]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	realloc@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L285
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	reader_peek
	mov	rcx, rax
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, .LC49[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_display_position
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	error_append
	mov	eax, 0
	jmp	.L286
.L285:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 16[rax], rdx
.L284:
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	lea	rcx, 1[rax]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 24[rdx], rcx
	sal	rax, 3
	lea	rdx, [rsi+rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR [rdx], rax
	mov	eax, 1
.L286:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE61:
	.size	hashmap_append, .-hashmap_append
	.section	.rodata
.LC57:
	.string	"{"
.LC58:
	.string	": "
	.text
	.globl	hashmap_text
	.type	hashmap_text, @function
hashmap_text:
.LFB62:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC57[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L288
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, .LC58[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	QWORD PTR -16[rbp], 2
	jmp	.L289
.L290:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 32
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, .LC58[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	add	QWORD PTR -16[rbp], 2
.L289:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -16[rbp], rax
	jb	.L290
.L288:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 125
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE62:
	.size	hashmap_text, .-hashmap_text
	.globl	hashmap_equal
	.type	hashmap_equal, @function
hashmap_equal:
.LFB63:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 112
	mov	QWORD PTR -88[rbp], rdi
	mov	QWORD PTR -96[rbp], rsi
	mov	QWORD PTR -104[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -88[rbp]
	lea	rsi, .LC54[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -88[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -72[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -88[rbp]
	lea	rsi, .LC55[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -88[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -64[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	jne	.L293
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	jne	.L293
	mov	rax, QWORD PTR -72[rbp]
	jmp	.L301
.L293:
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rdx, rax
	je	.L295
	mov	rax, QWORD PTR -64[rbp]
	jmp	.L301
.L295:
	mov	QWORD PTR -48[rbp], 0
	jmp	.L296
.L300:
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -48[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -32[rbp], rax
	mov	QWORD PTR -56[rbp], 0
	mov	rax, QWORD PTR -88[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	list_make
	mov	QWORD PTR -24[rbp], rax
	lea	rcx, -56[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	hashmap_get
	mov	rax, QWORD PTR -56[rbp]
	test	rax, rax
	jne	.L297
	mov	rax, QWORD PTR -64[rbp]
	jmp	.L301
.L297:
	mov	rdx, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rdx, QWORD PTR -56[rbp]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_list
	mov	rdx, rax
	mov	rax, QWORD PTR -88[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	core_eq
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	is_false
	test	eax, eax
	je	.L299
	mov	rax, QWORD PTR -64[rbp]
	jmp	.L301
.L299:
	add	QWORD PTR -48[rbp], 2
.L296:
	mov	rax, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -48[rbp], rax
	jb	.L300
	mov	rax, QWORD PTR -72[rbp]
.L301:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L302
	call	__stack_chk_fail@PLT
.L302:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE63:
	.size	hashmap_equal, .-hashmap_equal
	.globl	hashmap_free
	.type	hashmap_free, @function
hashmap_free:
.LFB64:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	free@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE64:
	.size	hashmap_free, .-hashmap_free
	.globl	env_make
	.type	env_make, @function
env_make:
.LFB65:
	.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, 88
	.cfi_offset 3, -24
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	QWORD PTR -72[rbp], rdx
	mov	QWORD PTR -80[rbp], rcx
	mov	QWORD PTR -88[rbp], r8
	mov	QWORD PTR -96[rbp], r9
	mov	esi, 32
	mov	edi, 1
	call	calloc@PLT
	mov	QWORD PTR -24[rbp], rax
	mov	QWORD PTR -40[rbp], 2
	mov	QWORD PTR -32[rbp], 0
	cmp	QWORD PTR -96[rbp], 0
	jne	.L306
	mov	QWORD PTR -96[rbp], 2
	jmp	.L306
.L307:
	sal	QWORD PTR -40[rbp]
.L306:
	mov	rax, QWORD PTR -40[rbp]
	cmp	rax, QWORD PTR -96[rbp]
	jb	.L307
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -64[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rdx, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	vector_make
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 24[rdx], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], 4
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 24[rax]
	test	eax, eax
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 8[rax]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR 8[rax], rdx
	cmp	QWORD PTR -72[rbp], 0
	je	.L308
	jmp	.L309
.L310:
	mov	rdx, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_get
	mov	rbx, rax
	mov	rdx, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_get
	mov	rdx, rax
	mov	rsi, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rbx
	mov	rdi, rax
	call	env_set
	add	QWORD PTR -32[rbp], 1
.L309:
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -32[rbp], rax
	jb	.L310
.L308:
	cmp	QWORD PTR -88[rbp], 0
	je	.L311
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L311
	mov	rdx, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_get
	mov	rcx, rax
	mov	rdx, QWORD PTR -88[rbp]
	mov	rsi, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	env_set
.L311:
	mov	rax, QWORD PTR -24[rbp]
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE65:
	.size	env_make, .-env_make
	.globl	env_set
	.type	env_set, @function
env_set:
.LFB66:
	.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	QWORD PTR -48[rbp], rcx
	mov	QWORD PTR -8[rbp], 0
	mov	QWORD PTR -8[rbp], 0
	jmp	.L314
.L317:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	sal	rax, 3
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	rcx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_cmp_text
	test	eax, eax
	jne	.L315
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 1
	cmp	rax, rdx
	jb	.L315
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 1
	sal	rax, 3
	add	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR [rdx], rax
	mov	eax, 1
	jmp	.L316
.L315:
	add	QWORD PTR -8[rbp], 2
.L314:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -8[rbp], rax
	jb	.L317
	mov	rax, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	mov	rax, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	mov	eax, 1
.L316:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE66:
	.size	env_set, .-env_set
	.globl	env_get
	.type	env_get, @function
env_get:
.LFB67:
	.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	QWORD PTR -48[rbp], rcx
	mov	QWORD PTR -8[rbp], 0
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR [rax], 0
	jmp	.L319
.L324:
	mov	QWORD PTR -8[rbp], 0
	jmp	.L320
.L323:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	sal	rax, 3
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	rcx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_cmp_text
	test	eax, eax
	jne	.L321
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, 1
	jmp	.L322
.L321:
	add	QWORD PTR -8[rbp], 2
.L320:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -8[rbp], rax
	jb	.L323
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	QWORD PTR -32[rbp], rax
.L319:
	cmp	QWORD PTR -32[rbp], 0
	jne	.L324
	mov	eax, 0
.L322:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE67:
	.size	env_get, .-env_get
	.globl	env_get_by_text
	.type	env_get_by_text, @function
env_get_by_text:
.LFB68:
	.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	QWORD PTR -48[rbp], rcx
	mov	QWORD PTR -8[rbp], 0
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR [rax], 0
	jmp	.L326
.L331:
	mov	QWORD PTR -8[rbp], 0
	jmp	.L327
.L330:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rcx, QWORD PTR 40[rax]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_cmp_text
	test	eax, eax
	jne	.L328
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, 1
	jmp	.L329
.L328:
	add	QWORD PTR -8[rbp], 2
.L327:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -8[rbp], rax
	jb	.L330
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	QWORD PTR -32[rbp], rax
.L326:
	cmp	QWORD PTR -32[rbp], 0
	jne	.L331
	mov	eax, 0
.L329:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE68:
	.size	env_get_by_text, .-env_get_by_text
	.globl	env_text
	.type	env_text, @function
env_text:
.LFB69:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC57[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L333
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, .LC58[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	QWORD PTR -16[rbp], 2
	jmp	.L334
.L335:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 32
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, .LC58[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	add	QWORD PTR -16[rbp], 2
.L334:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -16[rbp], rax
	jb	.L335
.L333:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 125
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE69:
	.size	env_text, .-env_text
	.globl	env_free
	.type	env_free, @function
env_free:
.LFB70:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	free@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE70:
	.size	env_free, .-env_free
	.section	.rodata
.LC59:
	.string	"%s"
.LC60:
	.string	"\r\n"
	.text
	.globl	readline
	.type	readline, @function
readline:
.LFB71:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 2096
	mov	QWORD PTR -2088[rbp], rdi
	mov	QWORD PTR -2096[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -2096[rbp]
	mov	rsi, rax
	lea	rdi, .LC59[rip]
	mov	eax, 0
	call	printf@PLT
	mov	rdx, QWORD PTR stdin[rip]
	lea	rax, -2064[rbp]
	mov	esi, 2048
	mov	rdi, rax
	call	fgets@PLT
	mov	rax, QWORD PTR stdin[rip]
	mov	rdi, rax
	call	feof@PLT
	test	eax, eax
	je	.L339
	mov	eax, 0
	jmp	.L341
.L339:
	lea	rax, -2064[rbp]
	lea	rsi, .LC60[rip]
	mov	rdi, rax
	call	strcspn@PLT
	mov	BYTE PTR -2064[rbp+rax], 0
	lea	rax, -2064[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	rdx, rax
	lea	rax, -2064[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strndup@PLT
	mov	QWORD PTR -2072[rbp], rax
	mov	rax, QWORD PTR -2072[rbp]
.L341:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L342
	call	__stack_chk_fail@PLT
.L342:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE71:
	.size	readline, .-readline
	.globl	tokenizer_peek
	.type	tokenizer_peek, @function
tokenizer_peek:
.LFB72:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	readers_get
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE72:
	.size	tokenizer_peek, .-tokenizer_peek
	.globl	tokenizer_peek_next
	.type	tokenizer_peek_next, @function
tokenizer_peek_next:
.LFB73:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	readers_get
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L346
	mov	eax, 0
	jmp	.L347
.L346:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	add	rax, 1
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
.L347:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE73:
	.size	tokenizer_peek_next, .-tokenizer_peek_next
	.globl	tokenizer_next
	.type	tokenizer_next, @function
tokenizer_next:
.LFB74:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	readers_get
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L349
	mov	eax, 0
	jmp	.L350
.L349:
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	lea	rcx, 1[rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rdx], rcx
	add	rax, rsi
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -9[rbp], al
	cmp	BYTE PTR -9[rbp], 10
	jne	.L351
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 16[rax]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 24[rax], 0
	jmp	.L352
.L351:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 24[rax], rdx
.L352:
	movzx	eax, BYTE PTR -9[rbp]
.L350:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE74:
	.size	tokenizer_next, .-tokenizer_next
	.globl	tokenizer_scan
	.type	tokenizer_scan, @function
tokenizer_scan:
.LFB75:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	jmp	.L354
.L356:
	movsx	eax, BYTE PTR -17[rbp]
	cmp	eax, 44
	seta	dl
	test	dl, dl
	jne	.L355
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	movabs	rax, 17596481021440
	and	rax, rdx
	test	rax, rax
	setne	al
	test	al, al
	je	.L355
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tokenizer_next
	jmp	.L354
.L355:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tokenizer_next
	nop
.L354:
	call	__ctype_b_loc@PLT
	mov	rbx, QWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tokenizer_peek
	mov	BYTE PTR -17[rbp], al
	movsx	rax, BYTE PTR -17[rbp]
	add	rax, rax
	add	rax, rbx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 8192
	test	eax, eax
	jne	.L356
	cmp	BYTE PTR -17[rbp], 44
	je	.L356
	movsx	eax, BYTE PTR -17[rbp]
	test	eax, eax
	je	.L357
	test	eax, eax
	js	.L358
	cmp	eax, 126
	jg	.L358
	cmp	eax, 34
	jl	.L358
	sub	eax, 34
	cmp	eax, 92
	ja	.L358
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L360[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L360[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L360:
	.long	.L364-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L359-.L360
	.long	.L359-.L360
	.long	.L359-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L363-.L360
	.long	.L363-.L360
	.long	.L363-.L360
	.long	.L363-.L360
	.long	.L363-.L360
	.long	.L363-.L360
	.long	.L363-.L360
	.long	.L363-.L360
	.long	.L363-.L360
	.long	.L363-.L360
	.long	.L362-.L360
	.long	.L361-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L359-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L359-.L360
	.long	.L359-.L360
	.long	.L359-.L360
	.long	.L359-.L360
	.long	.L358-.L360
	.long	.L359-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L358-.L360
	.long	.L359-.L360
	.long	.L358-.L360
	.long	.L359-.L360
	.long	.L359-.L360
	.text
.L357:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	token_eoi
	jmp	.L365
.L364:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	token_string
	jmp	.L365
.L359:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	token_special
	jmp	.L365
.L363:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	token_number
	jmp	.L365
.L362:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tokenizer_peek_next
	movsx	eax, al
	cmp	eax, 64
	jg	.L366
	cmp	eax, 9
	jge	.L367
	jmp	.L368
.L371:
	sub	eax, 91
	cmp	eax, 35
	seta	dl
	test	dl, dl
	jne	.L368
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	movabs	rax, 55834574895
	and	rax, rdx
	test	rax, rax
	setne	al
	test	al, al
	jne	.L369
	jmp	.L368
.L367:
	sub	eax, 9
	cmp	eax, 55
	ja	.L368
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L370[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L370[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L370:
	.long	.L369-.L370
	.long	.L369-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L369-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L369-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L369-.L370
	.long	.L369-.L370
	.long	.L369-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L368-.L370
	.long	.L369-.L370
	.text
.L366:
	cmp	eax, 126
	jg	.L368
	cmp	eax, 91
	jge	.L371
	jmp	.L368
.L369:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	token_special
	jmp	.L365
.L368:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	token_keyword
	jmp	.L365
.L361:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	token_comment
	jmp	.L354
.L358:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	token_symbol
.L365:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE75:
	.size	tokenizer_scan, .-tokenizer_scan
	.globl	token_make
	.type	token_make, @function
token_make:
.LFB76:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	esi, 56
	mov	edi, 1
	call	calloc@PLT
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	readers_get
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	je	.L374
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 48[rax], rdx
	jmp	.L375
.L374:
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 40[rax], 0
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 48[rax], 0
.L375:
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 24[rax]
	test	eax, eax
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE76:
	.size	token_make, .-token_make
	.globl	token_eoi
	.type	token_eoi, @function
token_eoi:
.LFB77:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	token_make
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 16[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC25[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 24[rdx], rax
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE77:
	.size	token_eoi, .-token_eoi
	.globl	token_comment
	.type	token_comment, @function
token_comment:
.LFB78:
	.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, 56
	.cfi_offset 3, -24
	mov	QWORD PTR -56[rbp], rdi
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	token_make
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC25[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	readers_get
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 16[rax], 2
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	tokenizer_next
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, 32
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	jmp	.L380
.L382:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	tokenizer_next
.L380:
	call	__ctype_b_loc@PLT
	mov	rbx, QWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	tokenizer_peek
	movsx	rax, al
	add	rax, rax
	add	rax, rbx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 8192
	test	eax, eax
	je	.L383
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	tokenizer_peek
	cmp	al, 10
	jne	.L382
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	tokenizer_peek
	cmp	al, 13
	jne	.L382
	jmp	.L383
.L388:
	movsx	eax, BYTE PTR -41[rbp]
	cmp	eax, 10
	je	.L384
	cmp	eax, 13
	je	.L385
	jmp	.L389
.L384:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_display_position
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 24[rdx], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	comment_append
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L387
.L385:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_display_position
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 24[rdx], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	comment_append
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L387
.L389:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	tokenizer_peek
	movsx	edx, al
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	nop
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	tokenizer_next
.L383:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	tokenizer_peek
	mov	BYTE PTR -41[rbp], al
	cmp	BYTE PTR -41[rbp], 0
	jne	.L388
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_display_position
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 24[rdx], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	comment_append
	mov	rax, QWORD PTR -40[rbp]
.L387:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE78:
	.size	token_comment, .-token_comment
	.globl	token_special
	.type	token_special, @function
token_special:
.LFB79:
	.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 -40[rbp], rdi
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	token_make
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC25[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	readers_get
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tokenizer_peek
	movsx	eax, al
	sub	eax, 39
	cmp	eax, 87
	ja	.L391
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L393[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L393[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L393:
	.long	.L405-.L393
	.long	.L404-.L393
	.long	.L403-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L402-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L401-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L400-.L393
	.long	.L399-.L393
	.long	.L398-.L393
	.long	.L397-.L393
	.long	.L391-.L393
	.long	.L396-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L391-.L393
	.long	.L395-.L393
	.long	.L391-.L393
	.long	.L394-.L393
	.long	.L392-.L393
	.text
.L405:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], 4
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 32[rax], 1
	jmp	.L391
.L404:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], 6
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 32[rax], 1
	jmp	.L391
.L403:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], 7
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 32[rax], 1
	jmp	.L391
.L402:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], 5
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 32[rax], 1
	jmp	.L391
.L401:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], 8
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 32[rax], 1
	jmp	.L391
.L400:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], 9
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 32[rax], 1
	jmp	.L391
.L399:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], 10
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 32[rax], 1
	jmp	.L391
.L398:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], 11
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 32[rax], 1
	jmp	.L391
.L397:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], 12
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 32[rax], 1
	jmp	.L391
.L396:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], 13
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 32[rax], 1
	jmp	.L391
.L395:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], 14
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 32[rax], 1
	jmp	.L391
.L394:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], 15
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 32[rax], 1
	jmp	.L391
.L392:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tokenizer_peek_next
	cmp	al, 64
	jne	.L406
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], 16
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 32[rax], 2
	jmp	.L391
.L406:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], 17
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 32[rax], 1
	nop
.L391:
	mov	DWORD PTR -28[rbp], 0
	jmp	.L407
.L408:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tokenizer_next
	movsx	edx, al
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	add	DWORD PTR -28[rbp], 1
.L407:
	mov	edx, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 32[rax]
	cmp	rdx, rax
	jb	.L408
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE79:
	.size	token_special, .-token_special
	.globl	token_number
	.type	token_number, @function
token_number:
.LFB80:
	.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 -40[rbp], rdi
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	token_make
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC25[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	readers_get
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -28[rbp], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 48[rax], rdx
	jmp	.L411
.L421:
	movsx	eax, BYTE PTR -29[rbp]
	sub	eax, 46
	cmp	eax, 55
	seta	dl
	test	dl, dl
	jne	.L412
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	movabs	rax, 36028797027356669
	and	rax, rdx
	test	rax, rax
	setne	al
	test	al, al
	je	.L412
	cmp	BYTE PTR -29[rbp], 46
	je	.L413
	cmp	BYTE PTR -29[rbp], 69
	je	.L413
	cmp	BYTE PTR -29[rbp], 101
	jne	.L414
.L413:
	cmp	DWORD PTR -28[rbp], 0
	jne	.L414
	mov	DWORD PTR -28[rbp], 1
	movsx	edx, BYTE PTR -29[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tokenizer_next
	jmp	.L411
.L414:
	cmp	BYTE PTR -29[rbp], 46
	je	.L415
	cmp	BYTE PTR -29[rbp], 69
	je	.L415
	cmp	BYTE PTR -29[rbp], 101
	je	.L415
	movsx	edx, BYTE PTR -29[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tokenizer_next
	jmp	.L411
.L415:
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 24[rax], rdx
	cmp	DWORD PTR -28[rbp], 0
	je	.L416
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], 20
	jmp	.L417
.L416:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], 19
.L417:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	jmp	.L418
.L412:
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 24[rax], rdx
	cmp	DWORD PTR -28[rbp], 0
	je	.L419
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], 20
	jmp	.L420
.L419:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], 19
.L420:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	jmp	.L418
.L411:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tokenizer_peek
	mov	BYTE PTR -29[rbp], al
	cmp	BYTE PTR -29[rbp], 0
	jne	.L421
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 24[rax], rdx
	cmp	DWORD PTR -28[rbp], 0
	je	.L422
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], 20
	jmp	.L423
.L422:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], 19
.L423:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
.L418:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE80:
	.size	token_number, .-token_number
	.globl	token_symbol
	.type	token_symbol, @function
token_symbol:
.LFB81:
	.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 -40[rbp], rdi
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	token_make
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC25[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	readers_get
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], 18
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 48[rax], rdx
	jmp	.L425
.L430:
	movsx	eax, BYTE PTR -25[rbp]
	sub	eax, 9
	cmp	eax, 117
	ja	.L426
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L428[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L428[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L428:
	.long	.L427-.L428
	.long	.L427-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L427-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L427-.L428
	.long	.L426-.L428
	.long	.L427-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L427-.L428
	.long	.L427-.L428
	.long	.L427-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L427-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L427-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L427-.L428
	.long	.L427-.L428
	.long	.L427-.L428
	.long	.L427-.L428
	.long	.L426-.L428
	.long	.L427-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L426-.L428
	.long	.L427-.L428
	.long	.L426-.L428
	.long	.L427-.L428
	.long	.L427-.L428
	.text
.L427:
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	jmp	.L429
.L426:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tokenizer_next
	movsx	edx, al
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	nop
.L425:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tokenizer_peek
	mov	BYTE PTR -25[rbp], al
	cmp	BYTE PTR -25[rbp], 0
	jne	.L430
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
.L429:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE81:
	.size	token_symbol, .-token_symbol
	.globl	token_keyword
	.type	token_keyword, @function
token_keyword:
.LFB82:
	.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 -40[rbp], rdi
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	token_make
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC25[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	readers_get
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], 21
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tokenizer_next
	jmp	.L432
.L437:
	movsx	eax, BYTE PTR -25[rbp]
	sub	eax, 9
	cmp	eax, 117
	ja	.L433
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L435[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L435[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L435:
	.long	.L434-.L435
	.long	.L434-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L434-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L434-.L435
	.long	.L433-.L435
	.long	.L434-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L434-.L435
	.long	.L434-.L435
	.long	.L434-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L434-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L434-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L434-.L435
	.long	.L434-.L435
	.long	.L434-.L435
	.long	.L434-.L435
	.long	.L433-.L435
	.long	.L434-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L433-.L435
	.long	.L434-.L435
	.long	.L433-.L435
	.long	.L434-.L435
	.long	.L434-.L435
	.text
.L434:
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	jmp	.L436
.L433:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tokenizer_next
	movsx	edx, al
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	nop
.L432:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tokenizer_peek
	mov	BYTE PTR -25[rbp], al
	cmp	BYTE PTR -25[rbp], 0
	jne	.L437
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
.L436:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE82:
	.size	token_keyword, .-token_keyword
	.globl	token_string
	.type	token_string, @function
token_string:
.LFB83:
	.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 -40[rbp], rdi
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	token_make
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC25[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	readers_get
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], 22
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tokenizer_next
	jmp	.L439
.L451:
	movsx	eax, BYTE PTR -25[rbp]
	cmp	eax, 34
	je	.L440
	cmp	eax, 92
	je	.L441
	jmp	.L452
.L440:
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	jmp	.L443
.L441:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tokenizer_next
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tokenizer_next
	mov	BYTE PTR -25[rbp], al
	movsx	eax, BYTE PTR -25[rbp]
	cmp	eax, 116
	je	.L444
	cmp	eax, 116
	jg	.L453
	cmp	eax, 114
	je	.L446
	cmp	eax, 114
	jg	.L453
	cmp	eax, 110
	je	.L447
	cmp	eax, 110
	jg	.L453
	cmp	eax, 34
	je	.L448
	cmp	eax, 92
	je	.L449
	jmp	.L453
.L444:
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, 9
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	jmp	.L450
.L447:
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, 10
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	jmp	.L450
.L446:
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, 13
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	jmp	.L450
.L448:
	movsx	edx, BYTE PTR -25[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	jmp	.L450
.L449:
	movsx	edx, BYTE PTR -25[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	jmp	.L450
.L453:
	nop
.L450:
	jmp	.L439
.L452:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tokenizer_next
	movsx	edx, al
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	nop
.L439:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tokenizer_peek
	mov	BYTE PTR -25[rbp], al
	cmp	BYTE PTR -25[rbp], 0
	jne	.L451
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
.L443:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE83:
	.size	token_string, .-token_string
	.globl	token_free
	.type	token_free, @function
token_free:
.LFB84:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	free@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE84:
	.size	token_free, .-token_free
	.globl	reader_make
	.type	reader_make, @function
reader_make:
.LFB85:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	esi, 56
	mov	edi, 1
	call	calloc@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 16[rax], 1
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 24[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 48[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 52[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE85:
	.size	reader_make, .-reader_make
	.globl	reader_peek
	.type	reader_peek, @function
reader_peek:
.LFB86:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	readers_get
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 48[rax]
	test	eax, eax
	je	.L458
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 32[rax]
	jmp	.L459
.L458:
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 48[rax], 1
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	tokenizer_scan
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 32[rdx], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 32[rax]
.L459:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE86:
	.size	reader_peek, .-reader_peek
	.globl	reader_peek_next
	.type	reader_peek_next, @function
reader_peek_next:
.LFB87:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	readers_get
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 52[rax]
	test	eax, eax
	je	.L461
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 40[rax]
	jmp	.L462
.L461:
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 52[rax], 1
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	tokenizer_scan
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 40[rdx], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 40[rax]
.L462:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE87:
	.size	reader_peek_next, .-reader_peek_next
	.globl	reader_next
	.type	reader_next, @function
reader_next:
.LFB88:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	readers_get
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 52[rax]
	test	eax, eax
	je	.L464
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 52[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 32[rax]
	jmp	.L465
.L464:
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 48[rax], 1
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 52[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	tokenizer_scan
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 32[rdx], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 32[rax]
.L465:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE88:
	.size	reader_next, .-reader_next
	.globl	read_str
	.type	read_str, @function
read_str:
.LFB89:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	reader_peek
	mov	eax, DWORD PTR 16[rax]
	test	eax, eax
	jne	.L467
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	mal_eoi
	jmp	.L468
.L467:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	rax, QWORD PTR 32[rax]
	test	rax, rax
	je	.L469
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	mal_eoi
	jmp	.L468
.L469:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	read_form
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	readers_pop
	mov	rax, QWORD PTR -8[rbp]
.L468:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE89:
	.size	read_str, .-read_str
	.section	.rodata
.LC61:
	.string	"quote"
	.align 8
.LC62:
	.string	"unbalanced parenthesis, expected '('"
	.align 8
.LC63:
	.string	"unexpected colon character ':'"
.LC64:
	.string	"deref"
	.align 8
.LC65:
	.string	"unexpected backslash character '\\'"
	.align 8
.LC66:
	.string	"unbalanced brackets, expected '['"
.LC67:
	.string	"with-meta"
.LC68:
	.string	"expected symbol"
.LC69:
	.string	"quasiquote"
	.align 8
.LC70:
	.string	"unbalanced brackets, expected '{'"
.LC71:
	.string	"splice-unquote"
.LC72:
	.string	"unquote"
	.text
	.globl	read_form
	.type	read_form, @function
read_form:
.LFB90:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	reader_peek
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	list_make
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 17
	ja	.L471
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L473[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L473[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L473:
	.long	.L487-.L473
	.long	.L471-.L473
	.long	.L471-.L473
	.long	.L471-.L473
	.long	.L486-.L473
	.long	.L485-.L473
	.long	.L484-.L473
	.long	.L483-.L473
	.long	.L482-.L473
	.long	.L481-.L473
	.long	.L480-.L473
	.long	.L479-.L473
	.long	.L478-.L473
	.long	.L477-.L473
	.long	.L476-.L473
	.long	.L475-.L473
	.long	.L474-.L473
	.long	.L472-.L473
	.text
.L487:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	mal_eoi
	jmp	.L490
.L486:
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC61[rip]
	mov	rdi, rax
	call	read_symbol_list
	jmp	.L490
.L484:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	read_list
	jmp	.L490
.L483:
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, .LC62[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_display_position
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	mal_error
	jmp	.L490
.L485:
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, .LC63[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_display_position
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	mal_error
	jmp	.L490
.L482:
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC64[rip]
	mov	rdi, rax
	call	read_symbol_list
	jmp	.L490
.L481:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	read_vector
	jmp	.L490
.L480:
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, .LC65[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_display_position
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	mal_error
	jmp	.L490
.L479:
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, .LC66[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_display_position
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	mal_error
	jmp	.L490
.L478:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	reader_next
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC67[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_symbol
	mov	rdx, rax
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	read_form
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	read_form
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 3
	jne	.L489
	mov	rdx, QWORD PTR -16[rbp]
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rdx, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -48[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rdx, QWORD PTR -48[rbp]
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_list
	jmp	.L490
.L489:
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, .LC68[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_display_position
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	mal_error
	jmp	.L490
.L477:
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC69[rip]
	mov	rdi, rax
	call	read_symbol_list
	jmp	.L490
.L476:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	read_hashmap
	jmp	.L490
.L475:
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, .LC70[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_display_position
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	mal_error
	jmp	.L490
.L474:
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC71[rip]
	mov	rdi, rax
	call	read_symbol_list
	jmp	.L490
.L472:
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC72[rip]
	mov	rdi, rax
	call	read_symbol_list
	jmp	.L490
.L471:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	read_atom
.L490:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L491
	call	__stack_chk_fail@PLT
.L491:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE90:
	.size	read_form, .-read_form
	.globl	read_list
	.type	read_list, @function
read_list:
.LFB91:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	read_parenthesis
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE91:
	.size	read_list, .-read_list
	.section	.rodata
	.align 8
.LC73:
	.string	"unbalanced parenthesis, expected ')'"
	.text
	.globl	read_parenthesis
	.type	read_parenthesis, @function
read_parenthesis:
.LFB92:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	reader_peek
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	reader_next
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	list_make
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	reader_peek
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 16[rax]
	test	eax, eax
	je	.L495
	cmp	eax, 7
	je	.L496
	jmp	.L506
.L495:
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, .LC73[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_display_position
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	mal_error
	jmp	.L504
.L496:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	reader_next
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_list
	jmp	.L504
.L506:
	jmp	.L499
.L503:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 5
	jne	.L500
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	reader_next
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 16[rax]
	test	eax, eax
	jne	.L501
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, .LC73[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_display_position
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	mal_error
	jmp	.L504
.L501:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	jne	.L502
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rdx, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
.L502:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	read_form
	mov	rdx, rax
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_list
	jmp	.L504
.L500:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	read_form
	mov	rdx, rax
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	reader_peek
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 16[rax]
	test	eax, eax
	jne	.L499
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, .LC73[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_display_position
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	mal_error
	jmp	.L504
.L499:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 7
	jne	.L503
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	reader_next
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rdx, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_list
.L504:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L505
	call	__stack_chk_fail@PLT
.L505:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE92:
	.size	read_parenthesis, .-read_parenthesis
	.globl	read_vector
	.type	read_vector, @function
read_vector:
.LFB93:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	read_brackets
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE93:
	.size	read_vector, .-read_vector
	.section	.rodata
	.align 8
.LC74:
	.string	"unbalanced brackets, expected ']'"
	.text
	.globl	read_brackets
	.type	read_brackets, @function
read_brackets:
.LFB94:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	reader_peek
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	reader_next
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	vector_make
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 16[rax]
	test	eax, eax
	je	.L510
	cmp	eax, 11
	je	.L511
	jmp	.L521
.L510:
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, .LC74[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_display_position
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	mal_error
	jmp	.L519
.L511:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	reader_next
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_vector
	jmp	.L519
.L521:
	jmp	.L514
.L518:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 5
	jne	.L515
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	reader_next
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 16[rax]
	test	eax, eax
	jne	.L516
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, .LC74[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_display_position
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	mal_error
	jmp	.L519
.L516:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	jne	.L517
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rdx, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
.L517:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	read_form
	mov	rdx, rax
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_vector
	jmp	.L519
.L515:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	read_form
	mov	rdx, rax
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	reader_peek
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 16[rax]
	test	eax, eax
	jne	.L514
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, .LC74[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_display_position
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	mal_error
	jmp	.L519
.L514:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 11
	jne	.L518
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	reader_next
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rdx, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_vector
.L519:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L520
	call	__stack_chk_fail@PLT
.L520:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE94:
	.size	read_brackets, .-read_brackets
	.globl	read_hashmap
	.type	read_hashmap, @function
read_hashmap:
.LFB95:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	read_braces
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE95:
	.size	read_hashmap, .-read_hashmap
	.section	.rodata
	.align 8
.LC75:
	.string	"unbalanced braces, expected '}'"
.LC76:
	.string	"unexpected colon ':'"
	.text
	.globl	read_braces
	.type	read_braces, @function
read_braces:
.LFB96:
	.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	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	reader_peek
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	reader_next
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	hashmap_make
	mov	QWORD PTR -24[rbp], rax
	mov	QWORD PTR -56[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	QWORD PTR -40[rbp], 0
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 16[rax]
	test	eax, eax
	je	.L525
	cmp	eax, 15
	je	.L526
	jmp	.L539
.L525:
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, .LC75[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_display_position
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	mal_error
	jmp	.L537
.L526:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	reader_next
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_hashmap
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L537
.L539:
	jmp	.L529
.L536:
	mov	QWORD PTR -40[rbp], 0
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 5
	jne	.L530
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, .LC76[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_display_position
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	mal_error
	jmp	.L537
.L530:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	read_form
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	reader_peek
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 5
	jne	.L531
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	reader_next
	mov	QWORD PTR -48[rbp], rax
.L531:
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 16[rax]
	test	eax, eax
	je	.L532
	cmp	eax, 15
	je	.L533
	jmp	.L540
.L532:
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, .LC75[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_display_position
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	mal_error
	jmp	.L537
.L533:
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -56[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -40[rbp], rax
	jmp	.L535
.L540:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	read_form
	mov	QWORD PTR -40[rbp], rax
	nop
.L535:
	mov	rcx, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	rsi, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	hashmap_set
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	reader_peek
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 16[rax]
	test	eax, eax
	jne	.L529
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, .LC75[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_display_position
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	mal_error
	jmp	.L537
.L529:
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 15
	jne	.L536
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	reader_next
	mov	QWORD PTR -48[rbp], rax
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_hashmap
.L537:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L538
	call	__stack_chk_fail@PLT
.L538:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE96:
	.size	read_braces, .-read_braces
	.section	.rodata
.LC77:
	.string	"true"
.LC78:
	.string	"false"
.LC79:
	.string	"unknown atom type"
	.text
	.globl	read_atom
	.type	read_atom, @function
read_atom:
.LFB97:
	.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 -40[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	reader_peek
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	reader_next
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 22
	ja	.L542
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L544[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L544[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L544:
	.long	.L551-.L544
	.long	.L550-.L544
	.long	.L542-.L544
	.long	.L549-.L544
	.long	.L542-.L544
	.long	.L542-.L544
	.long	.L542-.L544
	.long	.L542-.L544
	.long	.L542-.L544
	.long	.L542-.L544
	.long	.L542-.L544
	.long	.L542-.L544
	.long	.L542-.L544
	.long	.L542-.L544
	.long	.L542-.L544
	.long	.L542-.L544
	.long	.L542-.L544
	.long	.L542-.L544
	.long	.L548-.L544
	.long	.L547-.L544
	.long	.L546-.L544
	.long	.L545-.L544
	.long	.L543-.L544
	.text
.L551:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	mal_eoi
	jmp	.L557
.L550:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	mal_nil
	jmp	.L557
.L549:
	mov	rax, QWORD PTR -16[rbp]
	mov	rcx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, .LC77[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_cmp
	test	eax, eax
	jne	.L553
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC54[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -24[rbp]
	jmp	.L557
.L553:
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC55[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -24[rbp]
	jmp	.L557
.L548:
	mov	rax, QWORD PTR -16[rbp]
	mov	rcx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, .LC51[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_cmp
	test	eax, eax
	jne	.L554
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -24[rbp]
	jmp	.L557
.L554:
	mov	rax, QWORD PTR -16[rbp]
	mov	rcx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, .LC77[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_cmp
	test	eax, eax
	jne	.L555
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC54[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -24[rbp]
	jmp	.L557
.L555:
	mov	rax, QWORD PTR -16[rbp]
	mov	rcx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, .LC78[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_cmp
	test	eax, eax
	jne	.L556
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC55[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -24[rbp]
	jmp	.L557
.L556:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_symbol
	jmp	.L557
.L545:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_keyword
	jmp	.L557
.L543:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_string
	jmp	.L557
.L547:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_to_integer
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_integer
	jmp	.L557
.L546:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_to_decimal
	movq	rax, xmm0
	mov	rdx, QWORD PTR -40[rbp]
	movq	xmm0, rax
	mov	rdi, rdx
	call	mal_decimal
	jmp	.L557
.L542:
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, .LC79[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_display_position
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	mal_error
.L557:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L558
	call	__stack_chk_fail@PLT
.L558:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE97:
	.size	read_atom, .-read_atom
	.globl	read_symbol_list
	.type	read_symbol_list, @function
read_symbol_list:
.LFB98:
	.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 -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	list_make
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	reader_next
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_symbol
	mov	rdx, rax
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	read_form
	mov	rdx, rax
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rdx, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_list
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L561
	call	__stack_chk_fail@PLT
.L561:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE98:
	.size	read_symbol_list, .-read_symbol_list
	.globl	mal_make
	.type	mal_make, @function
mal_make:
.LFB99:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	esi, 64
	mov	edi, 1
	call	calloc@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -28[rbp]
	mov	DWORD PTR 16[rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 24[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	token_make
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 32[rdx], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], 6
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 24[rax]
	test	eax, eax
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE99:
	.size	mal_make, .-mal_make
	.section	.rodata
.LC80:
	.string	"eoi"
.LC81:
	.string	"eoi: eoi"
	.text
	.globl	mal_eoi
	.type	mal_eoi, @function
mal_eoi:
.LFB100:
	.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 -40[rbp], rdi
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	mal_make
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC80[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC81[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_hash_jenkins
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 56[rdx], rax
	mov	rax, QWORD PTR -32[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE100:
	.size	mal_eoi, .-mal_eoi
	.globl	mal_nil
	.type	mal_nil, @function
mal_nil:
.LFB101:
	.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 -40[rbp], rdi
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 6
	mov	rdi, rax
	call	mal_make
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC51[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_hash_jenkins
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 56[rdx], rax
	mov	rax, QWORD PTR -32[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE101:
	.size	mal_nil, .-mal_nil
	.section	.rodata
.LC82:
	.string	"error: "
.LC83:
	.string	"OK: "
.LC84:
	.string	"READER ERROR: "
.LC85:
	.string	"RUNTIME ERROR: "
.LC86:
	.string	"PRINTER ERROR: "
.LC87:
	.string	"UNKNOWN ERROR: "
	.text
	.globl	mal_error
	.type	mal_error, @function
mal_error:
.LFB102:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	QWORD PTR -56[rbp], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	mal_make
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC82[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	QWORD PTR -16[rbp], rax
	cmp	DWORD PTR -44[rbp], 3
	je	.L569
	cmp	DWORD PTR -44[rbp], 3
	ja	.L570
	cmp	DWORD PTR -44[rbp], 2
	je	.L571
	cmp	DWORD PTR -44[rbp], 2
	ja	.L570
	cmp	DWORD PTR -44[rbp], 0
	je	.L572
	cmp	DWORD PTR -44[rbp], 1
	je	.L573
	jmp	.L570
.L572:
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC83[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	QWORD PTR -32[rbp], rax
	jmp	.L574
.L573:
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC84[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	QWORD PTR -32[rbp], rax
	jmp	.L574
.L571:
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC85[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	QWORD PTR -32[rbp], rax
	jmp	.L574
.L569:
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC86[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	QWORD PTR -32[rbp], rax
	jmp	.L574
.L570:
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC87[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	QWORD PTR -32[rbp], rax
	nop
.L574:
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rdx, QWORD PTR -56[rbp]
	mov	ecx, DWORD PTR -44[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	error_append
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_hash_jenkins
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 56[rdx], rax
	mov	rax, QWORD PTR -24[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE102:
	.size	mal_error, .-mal_error
	.section	.rodata
.LC88:
	.string	"boolean: "
	.text
	.globl	mal_boolean
	.type	mal_boolean, @function
mal_boolean:
.LFB103:
	.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 -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_make
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC88[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -16[rbp], rax
	cmp	DWORD PTR -44[rbp], 0
	je	.L577
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC77[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -32[rbp], rax
	jmp	.L578
.L577:
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC78[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -32[rbp], rax
.L578:
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -44[rbp]
	mov	DWORD PTR 24[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rdx, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 40[rdx], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_hash_jenkins
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 56[rdx], rax
	mov	rax, QWORD PTR -24[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE103:
	.size	mal_boolean, .-mal_boolean
	.section	.rodata
.LC89:
	.string	"symbol: "
	.text
	.globl	mal_symbol
	.type	mal_symbol, @function
mal_symbol:
.LFB104:
	.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 -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	mal_make
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC89[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -48[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rdx, QWORD PTR -48[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_hash_jenkins
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 56[rdx], rax
	mov	rax, QWORD PTR -24[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE104:
	.size	mal_symbol, .-mal_symbol
	.section	.rodata
.LC90:
	.string	"keyword: "
	.text
	.globl	mal_keyword
	.type	mal_keyword, @function
mal_keyword:
.LFB105:
	.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 -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 4
	mov	rdi, rax
	call	mal_make
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC90[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -48[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rdx, QWORD PTR -48[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_hash_jenkins
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 56[rdx], rax
	mov	rax, QWORD PTR -24[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE105:
	.size	mal_keyword, .-mal_keyword
	.section	.rodata
.LC91:
	.string	"string: "
	.text
	.globl	mal_string
	.type	mal_string, @function
mal_string:
.LFB106:
	.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 -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 5
	mov	rdi, rax
	call	mal_make
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC91[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -48[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rdx, QWORD PTR -48[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_hash_jenkins
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 56[rdx], rax
	mov	rax, QWORD PTR -24[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE106:
	.size	mal_string, .-mal_string
	.section	.rodata
.LC92:
	.string	"function: "
	.text
	.globl	mal_function
	.type	mal_function, @function
mal_function:
.LFB107:
	.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, 56
	.cfi_offset 3, -24
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 13
	mov	rdi, rax
	call	mal_make
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	rbx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC92[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -64[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rdx, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 24[rdx]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_hash_jenkins
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 56[rdx], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE107:
	.size	mal_function, .-mal_function
	.section	.rodata
.LC93:
	.string	"closure: "
	.text
	.globl	mal_closure
	.type	mal_closure, @function
mal_closure:
.LFB108:
	.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 -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 14
	mov	rdi, rax
	call	mal_make
	mov	QWORD PTR -24[rbp], rax
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	closure_text
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC93[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -48[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_hash_jenkins
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 56[rdx], rax
	mov	rax, QWORD PTR -24[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE108:
	.size	mal_closure, .-mal_closure
	.section	.rodata
.LC94:
	.string	"list: "
	.text
	.globl	mal_list
	.type	mal_list, @function
mal_list:
.LFB109:
	.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, 56
	.cfi_offset 3, -24
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 7
	mov	rdi, rax
	call	mal_make
	mov	QWORD PTR -40[rbp], rax
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	list_text
	mov	QWORD PTR -32[rbp], rax
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	list_text
	mov	rbx, rax
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC94[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -64[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_hash_jenkins
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 56[rdx], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE109:
	.size	mal_list, .-mal_list
	.section	.rodata
.LC95:
	.string	"vector: "
	.text
	.globl	mal_vector
	.type	mal_vector, @function
mal_vector:
.LFB110:
	.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, 56
	.cfi_offset 3, -24
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	mal_make
	mov	QWORD PTR -40[rbp], rax
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	vector_text
	mov	QWORD PTR -32[rbp], rax
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	vector_text
	mov	rbx, rax
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC95[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -64[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_hash_jenkins
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 56[rdx], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE110:
	.size	mal_vector, .-mal_vector
	.section	.rodata
.LC96:
	.string	"hashmap: "
	.text
	.globl	mal_hashmap
	.type	mal_hashmap, @function
mal_hashmap:
.LFB111:
	.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, 56
	.cfi_offset 3, -24
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 9
	mov	rdi, rax
	call	mal_make
	mov	QWORD PTR -40[rbp], rax
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	hashmap_text
	mov	QWORD PTR -32[rbp], rax
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	hashmap_text
	mov	rbx, rax
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC96[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -64[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_hash_jenkins
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 56[rdx], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE111:
	.size	mal_hashmap, .-mal_hashmap
	.section	.rodata
.LC97:
	.string	"env: "
	.text
	.globl	mal_env
	.type	mal_env, @function
mal_env:
.LFB112:
	.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, 56
	.cfi_offset 3, -24
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 12
	mov	rdi, rax
	call	mal_make
	mov	QWORD PTR -40[rbp], rax
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	env_text
	mov	QWORD PTR -32[rbp], rax
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	env_text
	mov	rbx, rax
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC97[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -64[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_hash_jenkins
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 56[rdx], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE112:
	.size	mal_env, .-mal_env
	.section	.rodata
.LC98:
	.string	"integer: "
	.text
	.globl	mal_integer
	.type	mal_integer, @function
mal_integer:
.LFB113:
	.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 -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 10
	mov	rdi, rax
	call	mal_make
	mov	QWORD PTR -24[rbp], rax
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_make_integer
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC98[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -48[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rdx, QWORD PTR -16[rbp]
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 40[rdx], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_hash_jenkins
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 56[rdx], rax
	mov	rax, QWORD PTR -24[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE113:
	.size	mal_integer, .-mal_integer
	.section	.rodata
.LC99:
	.string	"decimal: "
	.text
	.globl	mal_decimal
	.type	mal_decimal, @function
mal_decimal:
.LFB114:
	.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 -40[rbp], rdi
	movsd	QWORD PTR -48[rbp], xmm0
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 11
	mov	rdi, rax
	call	mal_make
	mov	QWORD PTR -24[rbp], rax
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -40[rbp]
	movq	xmm0, rdx
	mov	rdi, rax
	call	text_make_decimal
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC99[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	movsd	xmm0, QWORD PTR -48[rbp]
	movsd	QWORD PTR 24[rax], xmm0
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rdx, QWORD PTR -16[rbp]
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 40[rdx], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_hash_jenkins
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 56[rdx], rax
	mov	rax, QWORD PTR -24[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE114:
	.size	mal_decimal, .-mal_decimal
	.globl	mal_as_str
	.type	mal_as_str, @function
mal_as_str:
.LFB115:
	.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	DWORD PTR -36[rbp], edx
	mov	QWORD PTR -48[rbp], rcx
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC25[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -8[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	jmp	.L603
.L604:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	edx, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rdx, QWORD PTR -48[rbp]
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	add	QWORD PTR -16[rbp], 1
.L603:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 2
	cmp	QWORD PTR -16[rbp], rax
	jb	.L604
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	edx, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_string
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE115:
	.size	mal_as_str, .-mal_as_str
	.section	.rodata
.LC100:
	.string	"error"
.LC101:
	.string	"integer"
.LC102:
	.string	"decimal"
.LC103:
	.string	"symbol"
.LC104:
	.string	"keyword"
.LC105:
	.string	"string"
.LC106:
	.string	"boolean"
.LC107:
	.string	"function"
.LC108:
	.string	"closure"
.LC109:
	.string	"env"
.LC110:
	.string	"'(unknown type)"
	.text
	.globl	mal_type_of
	.type	mal_type_of, @function
mal_type_of:
.LFB116:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 14
	ja	.L607
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L609[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L609[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L609:
	.long	.L623-.L609
	.long	.L622-.L609
	.long	.L621-.L609
	.long	.L620-.L609
	.long	.L619-.L609
	.long	.L618-.L609
	.long	.L617-.L609
	.long	.L616-.L609
	.long	.L615-.L609
	.long	.L614-.L609
	.long	.L613-.L609
	.long	.L612-.L609
	.long	.L611-.L609
	.long	.L610-.L609
	.long	.L608-.L609
	.text
.L623:
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, .LC80[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_symbol
	jmp	.L624
.L617:
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, .LC51[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_symbol
	jmp	.L624
.L622:
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, .LC100[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_symbol
	jmp	.L624
.L613:
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, .LC101[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_symbol
	jmp	.L624
.L612:
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, .LC102[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_symbol
	jmp	.L624
.L620:
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, .LC103[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_symbol
	jmp	.L624
.L619:
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, .LC104[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_symbol
	jmp	.L624
.L618:
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, .LC105[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_symbol
	jmp	.L624
.L621:
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, .LC106[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_symbol
	jmp	.L624
.L610:
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, .LC107[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_symbol
	jmp	.L624
.L608:
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, .LC108[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_symbol
	jmp	.L624
.L616:
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, .LC9[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_symbol
	jmp	.L624
.L615:
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, .LC10[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_symbol
	jmp	.L624
.L614:
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, .LC11[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_symbol
	jmp	.L624
.L611:
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, .LC109[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_symbol
	jmp	.L624
.L607:
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, .LC110[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_symbol
.L624:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE116:
	.size	mal_type_of, .-mal_type_of
	.section	.rodata
.LC111:
	.string	":"
.LC112:
	.string	"\""
.LC113:
	.string	"unknown type of object"
	.text
	.globl	mal_print
	.type	mal_print, @function
mal_print:
.LFB117:
	.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	DWORD PTR -36[rbp], edx
	mov	QWORD PTR -16[rbp], 1
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 14
	ja	.L626
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L628[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L628[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L628:
	.long	.L642-.L628
	.long	.L641-.L628
	.long	.L640-.L628
	.long	.L639-.L628
	.long	.L638-.L628
	.long	.L637-.L628
	.long	.L636-.L628
	.long	.L635-.L628
	.long	.L634-.L628
	.long	.L633-.L628
	.long	.L632-.L628
	.long	.L631-.L628
	.long	.L630-.L628
	.long	.L629-.L628
	.long	.L627-.L628
	.text
.L642:
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC25[rip]
	mov	rdi, rax
	call	text_make
	jmp	.L643
.L641:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	jmp	.L643
.L636:
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC51[rip]
	mov	rdi, rax
	call	text_make
	jmp	.L643
.L640:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 24[rax]
	test	eax, eax
	je	.L644
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC77[rip]
	mov	rdi, rax
	call	text_make
	jmp	.L643
.L644:
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC78[rip]
	mov	rdi, rax
	call	text_make
	jmp	.L643
.L629:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	jmp	.L643
.L627:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	closure_text
	jmp	.L643
.L635:
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC50[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L645
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 1
	jne	.L646
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L648
.L646:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rcx, QWORD PTR [rax]
	mov	edx, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	jmp	.L648
.L649:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 32
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	edx, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	add	QWORD PTR -16[rbp], 1
.L648:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -16[rbp], rax
	jb	.L649
	cmp	QWORD PTR -16[rbp], 1
	je	.L645
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L645
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, .LC52[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	edx, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
.L645:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 41
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	jmp	.L643
.L634:
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC56[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L650
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 1
	jne	.L651
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L653
.L651:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rcx, QWORD PTR [rax]
	mov	edx, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	jmp	.L653
.L654:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 32
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	edx, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	add	QWORD PTR -16[rbp], 1
.L653:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -16[rbp], rax
	jb	.L654
	cmp	QWORD PTR -16[rbp], 1
	je	.L650
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L650
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, .LC52[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	edx, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
.L650:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 93
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	jmp	.L643
.L633:
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC57[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L655
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rcx, QWORD PTR [rax]
	mov	edx, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, .LC58[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	rcx, QWORD PTR [rax]
	mov	edx, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	QWORD PTR -16[rbp], 2
	jmp	.L656
.L657:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 32
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	edx, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, .LC58[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	edx, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	add	QWORD PTR -16[rbp], 2
.L656:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -16[rbp], rax
	jb	.L657
.L655:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 125
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	jmp	.L643
.L630:
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC57[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L658
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rcx, QWORD PTR [rax]
	mov	edx, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, .LC58[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	rcx, QWORD PTR [rax]
	mov	edx, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	QWORD PTR -16[rbp], 2
	jmp	.L659
.L660:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 32
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	edx, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, .LC58[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	edx, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	add	QWORD PTR -16[rbp], 2
.L659:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -16[rbp], rax
	jb	.L660
.L658:
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 125
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	jmp	.L643
.L639:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	jmp	.L643
.L638:
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC111[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	jmp	.L643
.L637:
	cmp	DWORD PTR -36[rbp], 0
	je	.L661
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_escape
	jmp	.L643
.L661:
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC112[rip]
	mov	rdi, rax
	call	text_make
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 34
	mov	rsi, rcx
	mov	rdi, rax
	call	text_append
	jmp	.L643
.L632:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_make_integer
	jmp	.L643
.L631:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	movq	xmm0, rdx
	mov	rdi, rax
	call	text_make_decimal
	jmp	.L643
.L626:
	mov	rax, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR 32[rax]
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, .LC113[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_display_position
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error_append
.L643:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE117:
	.size	mal_print, .-mal_print
	.globl	mal_free
	.type	mal_free, @function
mal_free:
.LFB118:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	free@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE118:
	.size	mal_free, .-mal_free
	.globl	is_eoi
	.type	is_eoi, @function
is_eoi:
.LFB119:
	.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 -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	test	eax, eax
	sete	al
	movzx	eax, al
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE119:
	.size	is_eoi, .-is_eoi
	.globl	is_nil
	.type	is_nil, @function
is_nil:
.LFB120:
	.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 -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 6
	sete	al
	movzx	eax, al
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE120:
	.size	is_nil, .-is_nil
	.globl	is_true
	.type	is_true, @function
is_true:
.LFB121:
	.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 -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 2
	jne	.L668
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 24[rax]
	cmp	eax, 1
	jne	.L668
	mov	eax, 1
	jmp	.L669
.L668:
	mov	eax, 0
.L669:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE121:
	.size	is_true, .-is_true
	.globl	is_false
	.type	is_false, @function
is_false:
.LFB122:
	.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 -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 2
	jne	.L672
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 24[rax]
	test	eax, eax
	jne	.L672
	mov	eax, 1
	jmp	.L673
.L672:
	mov	eax, 0
.L673:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE122:
	.size	is_false, .-is_false
	.globl	is_error
	.type	is_error, @function
is_error:
.LFB123:
	.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 -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE123:
	.size	is_error, .-is_error
	.globl	is_integer
	.type	is_integer, @function
is_integer:
.LFB124:
	.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 -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 10
	sete	al
	movzx	eax, al
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE124:
	.size	is_integer, .-is_integer
	.globl	is_decimal
	.type	is_decimal, @function
is_decimal:
.LFB125:
	.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 -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 11
	sete	al
	movzx	eax, al
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE125:
	.size	is_decimal, .-is_decimal
	.globl	is_number
	.type	is_number, @function
is_number:
.LFB126:
	.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 -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 10
	je	.L682
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 11
	jne	.L683
.L682:
	mov	eax, 1
	jmp	.L684
.L683:
	mov	eax, 0
.L684:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE126:
	.size	is_number, .-is_number
	.globl	is_symbol
	.type	is_symbol, @function
is_symbol:
.LFB127:
	.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 -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 3
	sete	al
	movzx	eax, al
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE127:
	.size	is_symbol, .-is_symbol
	.globl	is_keyword
	.type	is_keyword, @function
is_keyword:
.LFB128:
	.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 -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 4
	sete	al
	movzx	eax, al
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE128:
	.size	is_keyword, .-is_keyword
	.globl	is_string
	.type	is_string, @function
is_string:
.LFB129:
	.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 -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 5
	sete	al
	movzx	eax, al
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE129:
	.size	is_string, .-is_string
	.globl	is_self_evaluating
	.type	is_self_evaluating, @function
is_self_evaluating:
.LFB130:
	.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 -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 6
	je	.L693
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 2
	je	.L693
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 4
	je	.L693
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 5
	je	.L693
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 10
	je	.L693
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 11
	jne	.L694
.L693:
	mov	eax, 1
	jmp	.L695
.L694:
	mov	eax, 0
.L695:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE130:
	.size	is_self_evaluating, .-is_self_evaluating
	.globl	is_list
	.type	is_list, @function
is_list:
.LFB131:
	.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 -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 7
	sete	al
	movzx	eax, al
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE131:
	.size	is_list, .-is_list
	.globl	is_vector
	.type	is_vector, @function
is_vector:
.LFB132:
	.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 -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 8
	sete	al
	movzx	eax, al
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE132:
	.size	is_vector, .-is_vector
	.globl	is_hashmap
	.type	is_hashmap, @function
is_hashmap:
.LFB133:
	.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 -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 9
	sete	al
	movzx	eax, al
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE133:
	.size	is_hashmap, .-is_hashmap
	.globl	is_env
	.type	is_env, @function
is_env:
.LFB134:
	.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 -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 12
	sete	al
	movzx	eax, al
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE134:
	.size	is_env, .-is_env
	.globl	is_sequential
	.type	is_sequential, @function
is_sequential:
.LFB135:
	.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 -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 7
	je	.L706
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 8
	jne	.L707
.L706:
	mov	eax, 1
	jmp	.L708
.L707:
	mov	eax, 0
.L708:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE135:
	.size	is_sequential, .-is_sequential
	.globl	is_function
	.type	is_function, @function
is_function:
.LFB136:
	.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 -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 13
	sete	al
	movzx	eax, al
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE136:
	.size	is_function, .-is_function
	.globl	is_closure
	.type	is_closure, @function
is_closure:
.LFB137:
	.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 -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 14
	sete	al
	movzx	eax, al
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE137:
	.size	is_closure, .-is_closure
	.globl	is_callable
	.type	is_callable, @function
is_callable:
.LFB138:
	.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 -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 13
	je	.L715
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 14
	jne	.L716
.L715:
	mov	eax, 1
	jmp	.L717
.L716:
	mov	eax, 0
.L717:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE138:
	.size	is_callable, .-is_callable
	.globl	lvm_make
	.type	lvm_make, @function
lvm_make:
.LFB139:
	.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	esi, 80
	mov	edi, 1
	call	calloc@PLT
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR 24[rax], 0
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 8[rax], 0
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 16[rax], 8
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR [rax], 0
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 40[rax], 0
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 48[rax], 2
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 64[rax], 0
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 72[rax], 0
	mov	rax, QWORD PTR -16[rbp]
	mov	r9d, 0
	mov	r8d, 0
	mov	ecx, 0
	mov	edx, 0
	mov	esi, 0
	mov	rdi, rax
	call	env_make
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 56[rdx], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	mal_nil
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rsi, QWORD PTR 56[rax]
	mov	rcx, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	env_set
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	mal_boolean
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rsi, QWORD PTR 56[rax]
	mov	rcx, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	env_set
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	mal_boolean
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rsi, QWORD PTR 56[rax]
	mov	rcx, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	env_set
	mov	rax, QWORD PTR -16[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE139:
	.size	lvm_make, .-lvm_make
	.globl	lvm_gc_mark
	.type	lvm_gc_mark, @function
lvm_gc_mark:
.LFB140:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 24[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	edx, eax
	je	.L757
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 24[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 10
	ja	.L721
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L725[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L725[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L725:
	.long	.L758-.L725
	.long	.L758-.L725
	.long	.L733-.L725
	.long	.L732-.L725
	.long	.L731-.L725
	.long	.L730-.L725
	.long	.L729-.L725
	.long	.L728-.L725
	.long	.L727-.L725
	.long	.L726-.L725
	.long	.L724-.L725
	.text
.L727:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 24[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	lvm_gc_mark
	jmp	.L721
.L726:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 24[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	lvm_gc_mark
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	lvm_gc_mark
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	lvm_gc_mark
	jmp	.L721
.L733:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 24[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	QWORD PTR -8[rbp], 0
	jmp	.L736
.L737:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	lvm_gc_mark
	add	QWORD PTR -8[rbp], 1
.L736:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -8[rbp], rax
	jb	.L737
	jmp	.L721
.L732:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 24[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	QWORD PTR -8[rbp], 0
	jmp	.L738
.L739:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	lvm_gc_mark
	add	QWORD PTR -8[rbp], 1
.L738:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -8[rbp], rax
	jb	.L739
	jmp	.L721
.L730:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 24[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	QWORD PTR -8[rbp], 0
	jmp	.L740
.L741:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	lvm_gc_mark
	add	QWORD PTR -8[rbp], 1
.L740:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -8[rbp], rax
	jb	.L741
	jmp	.L721
.L731:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 24[rdx]
	mov	DWORD PTR 4[rax], edx
	mov	QWORD PTR -8[rbp], 0
	jmp	.L742
.L743:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	lvm_gc_mark
	add	QWORD PTR -8[rbp], 1
.L742:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -8[rbp], rax
	jb	.L743
	jmp	.L721
.L724:
	mov	QWORD PTR -8[rbp], 0
	jmp	.L744
.L745:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	lvm_gc_mark
	add	QWORD PTR -8[rbp], 1
.L744:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 32[rax]
	cmp	QWORD PTR -8[rbp], rax
	jb	.L745
	jmp	.L721
.L728:
	mov	QWORD PTR -8[rbp], 0
	jmp	.L746
.L747:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	lvm_gc_mark
	add	QWORD PTR -8[rbp], 1
.L746:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -8[rbp], rax
	jb	.L747
	jmp	.L721
.L729:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 24[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 16[rax]
	sub	eax, 7
	cmp	eax, 7
	ja	.L759
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L750[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L750[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L750:
	.long	.L755-.L750
	.long	.L754-.L750
	.long	.L753-.L750
	.long	.L759-.L750
	.long	.L759-.L750
	.long	.L752-.L750
	.long	.L751-.L750
	.long	.L749-.L750
	.text
.L751:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	lvm_gc_mark
	jmp	.L756
.L749:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	lvm_gc_mark
	jmp	.L756
.L755:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	lvm_gc_mark
	jmp	.L756
.L754:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	lvm_gc_mark
	jmp	.L756
.L753:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	lvm_gc_mark
	jmp	.L756
.L752:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	lvm_gc_mark
	jmp	.L756
.L759:
	nop
.L756:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	lvm_gc_mark
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	lvm_gc_mark
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	lvm_gc_mark
	jmp	.L721
.L757:
	nop
	jmp	.L721
.L758:
	nop
.L721:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE140:
	.size	lvm_gc_mark, .-lvm_gc_mark
	.globl	lvm_gc_mark_all
	.type	lvm_gc_mark_all, @function
lvm_gc_mark_all:
.LFB141:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	lvm_gc_mark
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE141:
	.size	lvm_gc_mark_all, .-lvm_gc_mark_all
	.globl	lvm_gc_sweep
	.type	lvm_gc_sweep, @function
lvm_gc_sweep:
.LFB142:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -16[rbp], rax
	jmp	.L762
.L777:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 24[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 4[rax]
	cmp	edx, eax
	je	.L763
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 10
	ja	.L764
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L766[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L766[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L766:
	.long	.L776-.L766
	.long	.L775-.L766
	.long	.L774-.L766
	.long	.L773-.L766
	.long	.L772-.L766
	.long	.L771-.L766
	.long	.L770-.L766
	.long	.L769-.L766
	.long	.L768-.L766
	.long	.L767-.L766
	.long	.L765-.L766
	.text
.L776:
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_free
	jmp	.L764
.L768:
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	function_free
	jmp	.L764
.L767:
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	closure_free
	jmp	.L764
.L774:
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	list_free
	jmp	.L764
.L773:
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	vector_free
	jmp	.L764
.L771:
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	hashmap_free
	jmp	.L764
.L772:
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	env_free
	jmp	.L764
.L765:
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	error_free
	jmp	.L764
.L769:
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	comment_free
	jmp	.L764
.L775:
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	token_free
	jmp	.L764
.L770:
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_free
	nop
.L764:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], rdx
	jmp	.L762
.L763:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	add	rax, 8
	mov	QWORD PTR -16[rbp], rax
.L762:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L777
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE142:
	.size	lvm_gc_sweep, .-lvm_gc_sweep
	.globl	lvm_gc_print
	.type	lvm_gc_print, @function
lvm_gc_print:
.LFB143:
	.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
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE143:
	.size	lvm_gc_print, .-lvm_gc_print
	.globl	lvm_gc
	.type	lvm_gc, @function
lvm_gc:
.LFB144:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	lvm_gc_mark_all
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	lvm_gc_sweep
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	je	.L780
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	lea	rdx, [rax+rax]
	jmp	.L781
.L780:
	mov	edx, 8
.L781:
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 24[rax]
	test	eax, eax
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 24[rax], edx
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE144:
	.size	lvm_gc, .-lvm_gc
	.globl	lvm_gc_free
	.type	lvm_gc_free, @function
lvm_gc_free:
.LFB145:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	nop
	jmp	.L784
.L797:
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 10
	ja	.L784
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L786[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L786[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L786:
	.long	.L796-.L786
	.long	.L795-.L786
	.long	.L794-.L786
	.long	.L793-.L786
	.long	.L792-.L786
	.long	.L791-.L786
	.long	.L790-.L786
	.long	.L789-.L786
	.long	.L788-.L786
	.long	.L787-.L786
	.long	.L785-.L786
	.text
.L796:
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_free
	jmp	.L784
.L788:
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	function_free
	jmp	.L784
.L787:
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	closure_free
	jmp	.L784
.L794:
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	list_free
	jmp	.L784
.L793:
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	vector_free
	jmp	.L784
.L791:
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	hashmap_free
	jmp	.L784
.L792:
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	vector_free
	jmp	.L784
.L785:
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	error_free
	jmp	.L784
.L789:
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	comment_free
	jmp	.L784
.L795:
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	token_free
	jmp	.L784
.L790:
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_free
	nop
.L784:
	cmp	QWORD PTR -16[rbp], 0
	jne	.L797
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE145:
	.size	lvm_gc_free, .-lvm_gc_free
	.globl	lvm_free
	.type	lvm_free, @function
lvm_free:
.LFB146:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	lvm_gc_free
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], 0
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE146:
	.size	lvm_free, .-lvm_free
	.section	.rodata
.LC114:
	.string	"var '"
.LC115:
	.string	"' not found\n"
	.text
	.globl	eval_ast
	.type	eval_ast, @function
eval_ast:
.LFB147:
	.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, 56
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -56[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 9
	je	.L801
	cmp	eax, 9
	ja	.L802
	cmp	eax, 8
	je	.L803
	cmp	eax, 8
	ja	.L802
	cmp	eax, 3
	je	.L804
	cmp	eax, 7
	je	.L805
	jmp	.L802
.L804:
	lea	rcx, -32[rbp]
	mov	rdx, QWORD PTR -48[rbp]
	mov	rsi, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	env_get
	test	eax, eax
	je	.L806
	mov	rax, QWORD PTR -32[rbp]
	jmp	.L811
.L806:
	mov	rcx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rbx, rax
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC114[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, .LC115[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L811
.L805:
	mov	rax, QWORD PTR -48[rbp]
	mov	rcx, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	eval_list
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	is_error
	test	eax, eax
	je	.L808
	mov	rax, QWORD PTR -32[rbp]
	jmp	.L811
.L808:
	mov	rax, QWORD PTR -32[rbp]
	jmp	.L811
.L803:
	mov	rax, QWORD PTR -48[rbp]
	mov	rcx, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	eval_vector
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	is_error
	test	eax, eax
	je	.L809
	mov	rax, QWORD PTR -32[rbp]
	jmp	.L811
.L809:
	mov	rax, QWORD PTR -32[rbp]
	jmp	.L811
.L801:
	mov	rax, QWORD PTR -48[rbp]
	mov	rcx, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	eval_hashmap
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	is_error
	test	eax, eax
	je	.L810
	mov	rax, QWORD PTR -32[rbp]
	jmp	.L811
.L810:
	mov	rax, QWORD PTR -32[rbp]
	jmp	.L811
.L802:
	mov	rax, QWORD PTR -48[rbp]
.L811:
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L812
	call	__stack_chk_fail@PLT
.L812:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE147:
	.size	eval_ast, .-eval_ast
	.globl	eval_list
	.type	eval_list, @function
eval_list:
.LFB148:
	.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	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	list_make
	mov	QWORD PTR -8[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	jmp	.L814
.L815:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	lvm_eval
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	add	QWORD PTR -16[rbp], 1
.L814:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -16[rbp], rax
	jb	.L815
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_list
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE148:
	.size	eval_list, .-eval_list
	.globl	eval_vector
	.type	eval_vector, @function
eval_vector:
.LFB149:
	.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	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	vector_make
	mov	QWORD PTR -8[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	jmp	.L818
.L819:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	lvm_eval
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	add	QWORD PTR -16[rbp], 1
.L818:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -16[rbp], rax
	jb	.L819
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_vector
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE149:
	.size	eval_vector, .-eval_vector
	.globl	eval_hashmap
	.type	eval_hashmap, @function
eval_hashmap:
.LFB150:
	.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	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	shr	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	hashmap_make
	mov	QWORD PTR -8[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	jmp	.L822
.L823:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	lvm_eval
	mov	rcx, rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rsi, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	hashmap_set
	add	QWORD PTR -16[rbp], 2
.L822:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -16[rbp], rax
	jb	.L823
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_hashmap
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE150:
	.size	eval_hashmap, .-eval_hashmap
	.section	.rodata
	.align 8
.LC116:
	.string	"'def!': expected proper list with two arguments\n"
	.align 8
.LC117:
	.string	"'def!': expected symbol as first argument\n"
	.text
	.globl	eval_def_bang
	.type	eval_def_bang, @function
eval_def_bang:
.LFB151:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -56[rbp], rdx
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	list_params
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 1
	jbe	.L826
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 2
	jbe	.L827
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 16
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L827
.L826:
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC116[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L828
.L827:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	is_symbol
	test	eax, eax
	jne	.L829
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC117[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L828
.L829:
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	list_params
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rdx, QWORD PTR -56[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	lvm_eval
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	is_error
	test	eax, eax
	jne	.L830
	mov	rcx, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rsi, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	env_set
.L830:
	mov	rax, QWORD PTR -8[rbp]
.L828:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE151:
	.size	eval_def_bang, .-eval_def_bang
	.section	.rodata
.LC118:
	.string	"'let*': missing binding list\n"
	.align 8
.LC119:
	.string	"'let*': first argument is not list or vector\n"
	.align 8
.LC120:
	.string	"'let*': expected an even number of binding pairs\n"
.LC121:
	.string	"'let*': binding error, '"
.LC122:
	.string	"' is not a symbol\n"
	.align 8
.LC123:
	.string	"'let*': expected the proper list with exactly three elements\n"
	.text
	.globl	eval_let_star
	.type	eval_let_star, @function
eval_let_star:
.LFB152:
	.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, 104
	.cfi_offset 3, -24
	mov	QWORD PTR -88[rbp], rdi
	mov	QWORD PTR -96[rbp], rsi
	mov	QWORD PTR -104[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -72[rbp], 0
	mov	rax, QWORD PTR -88[rbp]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -88[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -80[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 1
	ja	.L832
	mov	rax, QWORD PTR -88[rbp]
	lea	rsi, .LC118[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -88[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L847
.L832:
	mov	rax, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 1
	jbe	.L834
	mov	rax, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR 16[rax]
	jmp	.L835
.L834:
	mov	rax, QWORD PTR -80[rbp]
.L835:
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_sequential
	test	eax, eax
	jne	.L836
	mov	rax, QWORD PTR -88[rbp]
	lea	rsi, .LC119[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -88[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L847
.L836:
	mov	rax, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 24[rax]
	and	eax, 1
	test	rax, rax
	jne	.L837
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 24[rax]
	sal	rax, 3
	sub	rax, 8
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L838
.L837:
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 24[rax]
	and	eax, 1
	test	rax, rax
	je	.L839
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 24[rax]
	sal	rax, 3
	sub	rax, 8
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L839
.L838:
	mov	rax, QWORD PTR -88[rbp]
	lea	rsi, .LC120[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -88[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L847
.L839:
	mov	rax, QWORD PTR -104[rbp]
	mov	rsi, QWORD PTR [rax]
	mov	rax, QWORD PTR -88[rbp]
	mov	r9d, 0
	mov	r8d, 0
	mov	ecx, 0
	mov	edx, 0
	mov	rdi, rax
	call	env_make
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 4
	jne	.L840
	mov	rax, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 24
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L841
.L840:
	mov	rax, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 3
	jne	.L842
.L841:
	mov	QWORD PTR -72[rbp], 0
	jmp	.L843
.L846:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -72[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	lvm_eval
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	is_error
	test	eax, eax
	je	.L844
	mov	rax, QWORD PTR -32[rbp]
	jmp	.L847
.L844:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	is_symbol
	test	eax, eax
	jne	.L845
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rbx, rax
	mov	rax, QWORD PTR -88[rbp]
	lea	rsi, .LC121[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -88[rbp]
	lea	rdx, .LC122[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rdx, rax
	mov	rax, QWORD PTR -88[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L847
.L845:
	mov	rcx, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	env_set
	add	QWORD PTR -72[rbp], 2
.L843:
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -72[rbp], rax
	jb	.L846
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR -48[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -64[rbp]
	jmp	.L847
.L842:
	mov	rax, QWORD PTR -88[rbp]
	lea	rsi, .LC123[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -88[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
.L847:
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L848
	call	__stack_chk_fail@PLT
.L848:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE152:
	.size	eval_let_star, .-eval_let_star
	.section	.rodata
.LC124:
	.string	"'if': got too few arguments '"
	.align 8
.LC125:
	.string	"'if': got too many arguments '"
	.text
	.globl	eval_if
	.type	eval_if, @function
eval_if:
.LFB153:
	.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, 72
	.cfi_offset 3, -24
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	QWORD PTR -72[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 2
	jbe	.L850
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 3
	jne	.L851
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 16
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	je	.L851
.L850:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_make_integer
	mov	rbx, rax
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC124[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, .LC42[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L852
.L851:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 4
	jbe	.L853
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 32
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L853
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_make_integer
	mov	rbx, rax
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC125[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, .LC42[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L852
.L853:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	lvm_eval
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	is_error
	test	eax, eax
	je	.L854
	mov	rax, QWORD PTR -32[rbp]
	jmp	.L852
.L854:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	is_false
	test	eax, eax
	jne	.L855
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	je	.L856
.L855:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 24
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L857
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR 24[rax]
	jmp	.L852
.L857:
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, QWORD PTR [rax]
	lea	rdx, -48[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -48[rbp]
	jmp	.L852
.L856:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR 16[rax]
.L852:
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L858
	call	__stack_chk_fail@PLT
.L858:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE153:
	.size	eval_if, .-eval_if
	.section	.rodata
	.align 8
.LC126:
	.string	"'fn*': has too few arguments '"
	.align 8
.LC127:
	.string	"' missing parameters and body\n"
.LC128:
	.string	"' missing body\n"
	.align 8
.LC129:
	.string	"'fn*': has too many arguments '"
	.text
	.globl	eval_fn_star
	.type	eval_fn_star, @function
eval_fn_star:
.LFB154:
	.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, 88
	.cfi_offset 3, -24
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	QWORD PTR -88[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -56[rbp], 0
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 2
	ja	.L860
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	je	.L860
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_make_integer
	mov	rbx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC126[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, .LC127[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L865
.L860:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 3
	ja	.L862
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 16
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	je	.L862
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_make_integer
	mov	rbx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC126[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, .LC128[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L865
.L862:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 3
	jbe	.L863
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 24
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L863
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 2
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_make_integer
	mov	rbx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC129[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, .LC42[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L865
.L863:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -64[rbp], rax
	lea	rdx, -56[rbp]
	lea	rcx, -64[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	closure_parameters
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	is_error
	test	eax, eax
	je	.L864
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L865
.L864:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	QWORD PTR -32[rbp], rax
	mov	rdi, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR -64[rbp]
	mov	rcx, QWORD PTR -32[rbp]
	mov	rsi, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	closure_make
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_closure
.L865:
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L866
	call	__stack_chk_fail@PLT
.L866:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE154:
	.size	eval_fn_star, .-eval_fn_star
	.globl	eval_do
	.type	eval_do, @function
eval_do:
.LFB155:
	.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 -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	QWORD PTR -72[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	list_params
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L868
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 1
	jne	.L869
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	je	.L869
.L868:
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	lea	rdx, -40[rbp]
	mov	rsi, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L870
.L869:
	mov	QWORD PTR -24[rbp], 0
	jmp	.L871
.L873:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	lvm_eval
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	is_error
	test	eax, eax
	je	.L872
	mov	rax, QWORD PTR -32[rbp]
	jmp	.L870
.L872:
	add	QWORD PTR -24[rbp], 1
.L871:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -24[rbp], rax
	jb	.L873
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	je	.L874
	mov	rax, QWORD PTR -32[rbp]
	jmp	.L870
.L874:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
.L870:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L875
	call	__stack_chk_fail@PLT
.L875:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE155:
	.size	eval_do, .-eval_do
	.section	.rodata
.LC130:
	.string	"args to '+' are not numbers '"
.LC131:
	.string	"unknown type of '+' result\n"
	.text
	.globl	core_add
	.type	core_add, @function
core_add:
.LFB156:
	.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, 72
	.cfi_offset 3, -24
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	DWORD PTR -52[rbp], 10
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	mal_integer
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L877
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	je	.L878
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 1
	jne	.L878
.L877:
	mov	rax, QWORD PTR -24[rbp]
	jmp	.L895
.L878:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 10
	je	.L880
	cmp	eax, 11
	je	.L881
	jmp	.L896
.L880:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 24[rax], rdx
	jmp	.L883
.L881:
	mov	DWORD PTR -52[rbp], 11
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -52[rbp]
	mov	DWORD PTR 16[rax], edx
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	movsd	xmm0, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	movsd	QWORD PTR 24[rax], xmm0
	jmp	.L883
.L896:
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rbx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC130[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, .LC42[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L895
.L883:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 1
	jbe	.L884
	mov	QWORD PTR -40[rbp], 1
	jmp	.L885
.L893:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -40[rbp], rax
	jne	.L886
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L897
.L886:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_integer
	test	eax, eax
	je	.L887
	cmp	DWORD PTR -52[rbp], 10
	jne	.L888
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	add	rax, rdx
	mov	QWORD PTR -48[rbp], rax
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 24[rax], rdx
	jmp	.L889
.L888:
	cmp	DWORD PTR -52[rbp], 11
	jne	.L889
	mov	rax, QWORD PTR -24[rbp]
	movsd	xmm1, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	addsd	xmm0, xmm1
	movsd	QWORD PTR -48[rbp], xmm0
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], 11
	movsd	xmm0, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -24[rbp]
	movsd	QWORD PTR 24[rax], xmm0
	jmp	.L889
.L887:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_decimal
	test	eax, eax
	je	.L890
	cmp	DWORD PTR -52[rbp], 10
	jne	.L891
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	movsd	xmm0, QWORD PTR 24[rax]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -48[rbp], xmm0
	mov	DWORD PTR -52[rbp], 11
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -52[rbp]
	mov	DWORD PTR 16[rax], edx
	jmp	.L892
.L891:
	cmp	DWORD PTR -52[rbp], 11
	jne	.L892
	mov	rax, QWORD PTR -24[rbp]
	movsd	xmm1, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	movsd	xmm0, QWORD PTR 24[rax]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -48[rbp], xmm0
.L892:
	movsd	xmm0, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -24[rbp]
	movsd	QWORD PTR 24[rax], xmm0
	jmp	.L889
.L890:
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rbx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC130[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, .LC42[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L895
.L889:
	add	QWORD PTR -40[rbp], 1
.L885:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -40[rbp], rax
	jb	.L893
	jmp	.L884
.L897:
	nop
.L884:
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 10
	cmp	eax, 1
	ja	.L894
	mov	rax, QWORD PTR -24[rbp]
	jmp	.L895
.L894:
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC131[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
.L895:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE156:
	.size	core_add, .-core_add
	.section	.rodata
.LC132:
	.string	"args to '-' are not numbers '"
.LC133:
	.string	"unknown type of '-' result\n"
	.text
	.globl	core_sub
	.type	core_sub, @function
core_sub:
.LFB157:
	.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, 72
	.cfi_offset 3, -24
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	DWORD PTR -52[rbp], 10
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	mal_integer
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L899
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	je	.L900
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 1
	jne	.L900
.L899:
	mov	rax, QWORD PTR -24[rbp]
	jmp	.L917
.L900:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 10
	je	.L902
	cmp	eax, 11
	je	.L903
	jmp	.L918
.L902:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 24[rax], rdx
	jmp	.L905
.L903:
	mov	DWORD PTR -52[rbp], 11
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -52[rbp]
	mov	DWORD PTR 16[rax], edx
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	movsd	xmm0, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	movsd	QWORD PTR 24[rax], xmm0
	jmp	.L905
.L918:
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rbx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC132[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, .LC42[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L917
.L905:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 1
	jbe	.L906
	mov	QWORD PTR -40[rbp], 1
	jmp	.L907
.L915:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -40[rbp], rax
	jne	.L908
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L919
.L908:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_integer
	test	eax, eax
	je	.L909
	cmp	DWORD PTR -52[rbp], 10
	jne	.L910
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	rcx, QWORD PTR 24[rax]
	mov	rax, rdx
	sub	rax, rcx
	mov	QWORD PTR -48[rbp], rax
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 24[rax], rdx
	jmp	.L911
.L910:
	cmp	DWORD PTR -52[rbp], 11
	jne	.L911
	mov	rax, QWORD PTR -24[rbp]
	movsd	xmm0, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, rax
	subsd	xmm0, xmm1
	movsd	QWORD PTR -48[rbp], xmm0
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], 11
	movsd	xmm0, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -24[rbp]
	movsd	QWORD PTR 24[rax], xmm0
	jmp	.L911
.L909:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_decimal
	test	eax, eax
	je	.L912
	cmp	DWORD PTR -52[rbp], 10
	jne	.L913
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	movsd	xmm1, QWORD PTR 24[rax]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -48[rbp], xmm0
	mov	DWORD PTR -52[rbp], 11
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -52[rbp]
	mov	DWORD PTR 16[rax], edx
	jmp	.L914
.L913:
	cmp	DWORD PTR -52[rbp], 11
	jne	.L914
	mov	rax, QWORD PTR -24[rbp]
	movsd	xmm0, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	movsd	xmm1, QWORD PTR 24[rax]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -48[rbp], xmm0
.L914:
	movsd	xmm0, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -24[rbp]
	movsd	QWORD PTR 24[rax], xmm0
	jmp	.L911
.L912:
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rbx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC132[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, .LC42[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L917
.L911:
	add	QWORD PTR -40[rbp], 1
.L907:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -40[rbp], rax
	jb	.L915
	jmp	.L906
.L919:
	nop
.L906:
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 10
	cmp	eax, 1
	ja	.L916
	mov	rax, QWORD PTR -24[rbp]
	jmp	.L917
.L916:
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC133[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
.L917:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE157:
	.size	core_sub, .-core_sub
	.section	.rodata
.LC134:
	.string	"args to '*' are not numbers '"
.LC135:
	.string	"unknown type of '*' result\n"
	.text
	.globl	core_mul
	.type	core_mul, @function
core_mul:
.LFB158:
	.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, 72
	.cfi_offset 3, -24
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	DWORD PTR -52[rbp], 10
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	mal_integer
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L921
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	je	.L922
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 1
	jne	.L922
.L921:
	mov	rax, QWORD PTR -24[rbp]
	jmp	.L939
.L922:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 10
	je	.L924
	cmp	eax, 11
	je	.L925
	jmp	.L940
.L924:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 24[rax], rdx
	jmp	.L927
.L925:
	mov	DWORD PTR -52[rbp], 11
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -52[rbp]
	mov	DWORD PTR 16[rax], edx
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	movsd	xmm0, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	movsd	QWORD PTR 24[rax], xmm0
	jmp	.L927
.L940:
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rbx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC134[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, .LC42[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L939
.L927:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 1
	jbe	.L928
	mov	QWORD PTR -40[rbp], 1
	jmp	.L929
.L937:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -40[rbp], rax
	jne	.L930
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L941
.L930:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_integer
	test	eax, eax
	je	.L931
	cmp	DWORD PTR -52[rbp], 10
	jne	.L932
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	imul	rax, rdx
	mov	QWORD PTR -48[rbp], rax
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 24[rax], rdx
	jmp	.L933
.L932:
	cmp	DWORD PTR -52[rbp], 11
	jne	.L933
	mov	rax, QWORD PTR -24[rbp]
	movsd	xmm1, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -48[rbp], xmm0
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], 11
	movsd	xmm0, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -24[rbp]
	movsd	QWORD PTR 24[rax], xmm0
	jmp	.L933
.L931:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_decimal
	test	eax, eax
	je	.L934
	cmp	DWORD PTR -52[rbp], 10
	jne	.L935
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	movsd	xmm0, QWORD PTR 24[rax]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -48[rbp], xmm0
	mov	DWORD PTR -52[rbp], 11
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -52[rbp]
	mov	DWORD PTR 16[rax], edx
	jmp	.L936
.L935:
	cmp	DWORD PTR -52[rbp], 11
	jne	.L936
	mov	rax, QWORD PTR -24[rbp]
	movsd	xmm1, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	movsd	xmm0, QWORD PTR 24[rax]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -48[rbp], xmm0
.L936:
	movsd	xmm0, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -24[rbp]
	movsd	QWORD PTR 24[rax], xmm0
	jmp	.L933
.L934:
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rbx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC134[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, .LC42[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L939
.L933:
	add	QWORD PTR -40[rbp], 1
.L929:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -40[rbp], rax
	jb	.L937
	jmp	.L928
.L941:
	nop
.L928:
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 10
	cmp	eax, 1
	ja	.L938
	mov	rax, QWORD PTR -24[rbp]
	jmp	.L939
.L938:
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC135[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
.L939:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE158:
	.size	core_mul, .-core_mul
	.section	.rodata
.LC136:
	.string	"args to '/' are not numbers '"
.LC137:
	.string	"unknown type of '/' result\n"
	.text
	.globl	core_div
	.type	core_div, @function
core_div:
.LFB159:
	.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, 72
	.cfi_offset 3, -24
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	DWORD PTR -52[rbp], 10
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	mal_integer
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L943
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	je	.L944
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 1
	jne	.L944
.L943:
	mov	rax, QWORD PTR -24[rbp]
	jmp	.L961
.L944:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 10
	je	.L946
	cmp	eax, 11
	je	.L947
	jmp	.L962
.L946:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 24[rax], rdx
	jmp	.L949
.L947:
	mov	DWORD PTR -52[rbp], 11
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -52[rbp]
	mov	DWORD PTR 16[rax], edx
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	movsd	xmm0, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	movsd	QWORD PTR 24[rax], xmm0
	jmp	.L949
.L962:
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rbx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC136[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, .LC42[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L961
.L949:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 1
	jbe	.L950
	mov	QWORD PTR -40[rbp], 1
	jmp	.L951
.L959:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -40[rbp], rax
	jne	.L952
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L963
.L952:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_integer
	test	eax, eax
	je	.L953
	cmp	DWORD PTR -52[rbp], 10
	jne	.L954
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR 16[rdx]
	mov	rdx, QWORD PTR -40[rbp]
	sal	rdx, 3
	add	rdx, rcx
	mov	rdx, QWORD PTR [rdx]
	mov	rbx, QWORD PTR 24[rdx]
	cqo
	idiv	rbx
	mov	QWORD PTR -48[rbp], rax
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 24[rax], rdx
	jmp	.L955
.L954:
	cmp	DWORD PTR -52[rbp], 11
	jne	.L955
	mov	rax, QWORD PTR -24[rbp]
	movsd	xmm0, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, rax
	divsd	xmm0, xmm1
	movsd	QWORD PTR -48[rbp], xmm0
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], 11
	movsd	xmm0, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -24[rbp]
	movsd	QWORD PTR 24[rax], xmm0
	jmp	.L955
.L953:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_decimal
	test	eax, eax
	je	.L956
	cmp	DWORD PTR -52[rbp], 10
	jne	.L957
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	movsd	xmm1, QWORD PTR 24[rax]
	divsd	xmm0, xmm1
	movsd	QWORD PTR -48[rbp], xmm0
	mov	DWORD PTR -52[rbp], 11
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -52[rbp]
	mov	DWORD PTR 16[rax], edx
	jmp	.L958
.L957:
	cmp	DWORD PTR -52[rbp], 11
	jne	.L958
	mov	rax, QWORD PTR -24[rbp]
	movsd	xmm0, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	movsd	xmm1, QWORD PTR 24[rax]
	divsd	xmm0, xmm1
	movsd	QWORD PTR -48[rbp], xmm0
.L958:
	movsd	xmm0, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -24[rbp]
	movsd	QWORD PTR 24[rax], xmm0
	jmp	.L955
.L956:
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rbx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC136[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, .LC42[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L961
.L955:
	add	QWORD PTR -40[rbp], 1
.L951:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -40[rbp], rax
	jb	.L959
	jmp	.L950
.L963:
	nop
.L950:
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 10
	cmp	eax, 1
	ja	.L960
	mov	rax, QWORD PTR -24[rbp]
	jmp	.L961
.L960:
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC137[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
.L961:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE159:
	.size	core_div, .-core_div
	.section	.rodata
	.align 8
.LC138:
	.string	"'=': expected exactly two arguments\n"
	.align 8
.LC139:
	.string	"'=': this state should not happen\n"
	.text
	.globl	core_eq
	.type	core_eq, @function
core_eq:
.LFB160:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC54[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC55[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -32[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 1
	jbe	.L965
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 2
	jbe	.L966
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 16
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L966
.L965:
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC138[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L994
.L966:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	edx, eax
	je	.L968
	mov	rax, QWORD PTR -32[rbp]
	jmp	.L994
.L968:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	is_sequential
	test	eax, eax
	je	.L969
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	is_sequential
	test	eax, eax
	je	.L969
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 7
	je	.L970
	cmp	eax, 8
	je	.L971
	jmp	.L997
.L970:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_equal
	jmp	.L994
.L971:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_equal
	jmp	.L994
.L997:
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC139[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L994
.L969:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 14
	ja	.L973
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L975[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L975[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L975:
	.long	.L973-.L975
	.long	.L973-.L975
	.long	.L984-.L975
	.long	.L983-.L975
	.long	.L982-.L975
	.long	.L981-.L975
	.long	.L980-.L975
	.long	.L973-.L975
	.long	.L973-.L975
	.long	.L979-.L975
	.long	.L978-.L975
	.long	.L977-.L975
	.long	.L973-.L975
	.long	.L976-.L975
	.long	.L974-.L975
	.text
.L978:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rdx, rax
	jne	.L985
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L994
.L985:
	mov	rax, QWORD PTR -32[rbp]
	jmp	.L994
.L977:
	mov	rax, QWORD PTR -24[rbp]
	movsd	xmm0, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -16[rbp]
	movsd	xmm1, QWORD PTR 24[rax]
	ucomisd	xmm0, xmm1
	jp	.L986
	ucomisd	xmm0, xmm1
	jne	.L986
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L994
.L986:
	mov	rax, QWORD PTR -32[rbp]
	jmp	.L994
.L983:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L988
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L994
.L988:
	mov	rax, QWORD PTR -32[rbp]
	jmp	.L994
.L982:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L989
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L994
.L989:
	mov	rax, QWORD PTR -32[rbp]
	jmp	.L994
.L981:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L990
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L994
.L990:
	mov	rax, QWORD PTR -32[rbp]
	jmp	.L994
.L979:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	hashmap_equal
	jmp	.L994
.L984:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 24[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR 24[rax]
	cmp	edx, eax
	jne	.L991
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L994
.L991:
	mov	rax, QWORD PTR -32[rbp]
	jmp	.L994
.L980:
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L994
.L976:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rdx, rax
	jne	.L992
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L994
.L992:
	mov	rax, QWORD PTR -32[rbp]
	jmp	.L994
.L974:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rdx, rax
	jne	.L993
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L994
.L993:
	mov	rax, QWORD PTR -32[rbp]
	jmp	.L994
.L973:
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC139[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
.L994:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L995
	call	__stack_chk_fail@PLT
.L995:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE160:
	.size	core_eq, .-core_eq
	.section	.rodata
	.align 8
.LC140:
	.string	"'<': expected exactly two arguments\n"
	.align 8
.LC141:
	.string	"'<': expected numerical arguments\n"
	.text
	.globl	core_lt
	.type	core_lt, @function
core_lt:
.LFB161:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC54[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC55[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -32[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 1
	jbe	.L999
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 2
	jbe	.L1000
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 16
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1000
.L999:
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC140[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L1009
.L1000:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	is_number
	test	eax, eax
	je	.L1002
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	is_number
	test	eax, eax
	jne	.L1003
.L1002:
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC141[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L1009
.L1003:
	mov	DWORD PTR -44[rbp], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	is_integer
	test	eax, eax
	je	.L1004
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	is_integer
	test	eax, eax
	je	.L1004
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rdx, rax
	setl	al
	movzx	eax, al
	mov	DWORD PTR -44[rbp], eax
	jmp	.L1005
.L1004:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	is_integer
	test	eax, eax
	je	.L1006
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	is_decimal
	test	eax, eax
	je	.L1006
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, rax
	mov	rax, QWORD PTR -16[rbp]
	movsd	xmm0, QWORD PTR 24[rax]
	comisd	xmm0, xmm1
	seta	al
	movzx	eax, al
	mov	DWORD PTR -44[rbp], eax
	jmp	.L1005
.L1006:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	is_decimal
	test	eax, eax
	je	.L1007
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	is_integer
	test	eax, eax
	je	.L1007
	mov	rax, QWORD PTR -24[rbp]
	movsd	xmm1, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	comisd	xmm0, xmm1
	seta	al
	movzx	eax, al
	mov	DWORD PTR -44[rbp], eax
	jmp	.L1005
.L1007:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	is_decimal
	test	eax, eax
	je	.L1005
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	is_decimal
	test	eax, eax
	je	.L1005
	mov	rax, QWORD PTR -24[rbp]
	movsd	xmm1, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -16[rbp]
	movsd	xmm0, QWORD PTR 24[rax]
	comisd	xmm0, xmm1
	seta	al
	movzx	eax, al
	mov	DWORD PTR -44[rbp], eax
.L1005:
	cmp	DWORD PTR -44[rbp], 0
	je	.L1008
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L1009
.L1008:
	mov	rax, QWORD PTR -32[rbp]
.L1009:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1010
	call	__stack_chk_fail@PLT
.L1010:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE161:
	.size	core_lt, .-core_lt
	.section	.rodata
	.align 8
.LC142:
	.string	"'<=': expected exactly two arguments\n"
	.align 8
.LC143:
	.string	"'<=': expected numerical arguments\n"
	.text
	.globl	core_le
	.type	core_le, @function
core_le:
.LFB162:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC54[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC55[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -32[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 1
	jbe	.L1012
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 2
	jbe	.L1013
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 16
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1013
.L1012:
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC142[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L1022
.L1013:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	is_number
	test	eax, eax
	je	.L1015
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	is_number
	test	eax, eax
	jne	.L1016
.L1015:
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC143[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L1022
.L1016:
	mov	DWORD PTR -44[rbp], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	is_integer
	test	eax, eax
	je	.L1017
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	is_integer
	test	eax, eax
	je	.L1017
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rdx, rax
	setle	al
	movzx	eax, al
	mov	DWORD PTR -44[rbp], eax
	jmp	.L1018
.L1017:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	is_integer
	test	eax, eax
	je	.L1019
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	is_decimal
	test	eax, eax
	je	.L1019
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, rax
	mov	rax, QWORD PTR -16[rbp]
	movsd	xmm0, QWORD PTR 24[rax]
	comisd	xmm0, xmm1
	setnb	al
	movzx	eax, al
	mov	DWORD PTR -44[rbp], eax
	jmp	.L1018
.L1019:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	is_decimal
	test	eax, eax
	je	.L1020
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	is_integer
	test	eax, eax
	je	.L1020
	mov	rax, QWORD PTR -24[rbp]
	movsd	xmm1, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	comisd	xmm0, xmm1
	setnb	al
	movzx	eax, al
	mov	DWORD PTR -44[rbp], eax
	jmp	.L1018
.L1020:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	is_decimal
	test	eax, eax
	je	.L1018
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	is_decimal
	test	eax, eax
	je	.L1018
	mov	rax, QWORD PTR -24[rbp]
	movsd	xmm1, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -16[rbp]
	movsd	xmm0, QWORD PTR 24[rax]
	comisd	xmm0, xmm1
	setnb	al
	movzx	eax, al
	mov	DWORD PTR -44[rbp], eax
.L1018:
	cmp	DWORD PTR -44[rbp], 0
	je	.L1021
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L1022
.L1021:
	mov	rax, QWORD PTR -32[rbp]
.L1022:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1023
	call	__stack_chk_fail@PLT
.L1023:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE162:
	.size	core_le, .-core_le
	.section	.rodata
	.align 8
.LC144:
	.string	"'>': expected exactly two arguments\n"
	.align 8
.LC145:
	.string	"'>': expected numerical arguments\n"
	.text
	.globl	core_gt
	.type	core_gt, @function
core_gt:
.LFB163:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC54[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC55[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -32[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 1
	jbe	.L1025
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 2
	jbe	.L1026
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 16
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1026
.L1025:
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC144[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L1035
.L1026:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	is_number
	test	eax, eax
	je	.L1028
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	is_number
	test	eax, eax
	jne	.L1029
.L1028:
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC145[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L1035
.L1029:
	mov	DWORD PTR -44[rbp], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	is_integer
	test	eax, eax
	je	.L1030
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	is_integer
	test	eax, eax
	je	.L1030
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rdx, rax
	setg	al
	movzx	eax, al
	mov	DWORD PTR -44[rbp], eax
	jmp	.L1031
.L1030:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	is_integer
	test	eax, eax
	je	.L1032
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	is_decimal
	test	eax, eax
	je	.L1032
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	mov	rax, QWORD PTR -16[rbp]
	movsd	xmm1, QWORD PTR 24[rax]
	comisd	xmm0, xmm1
	seta	al
	movzx	eax, al
	mov	DWORD PTR -44[rbp], eax
	jmp	.L1031
.L1032:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	is_decimal
	test	eax, eax
	je	.L1033
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	is_integer
	test	eax, eax
	je	.L1033
	mov	rax, QWORD PTR -24[rbp]
	movsd	xmm0, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, rax
	comisd	xmm0, xmm1
	seta	al
	movzx	eax, al
	mov	DWORD PTR -44[rbp], eax
	jmp	.L1031
.L1033:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	is_decimal
	test	eax, eax
	je	.L1031
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	is_decimal
	test	eax, eax
	je	.L1031
	mov	rax, QWORD PTR -24[rbp]
	movsd	xmm0, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -16[rbp]
	movsd	xmm1, QWORD PTR 24[rax]
	comisd	xmm0, xmm1
	seta	al
	movzx	eax, al
	mov	DWORD PTR -44[rbp], eax
.L1031:
	cmp	DWORD PTR -44[rbp], 0
	je	.L1034
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L1035
.L1034:
	mov	rax, QWORD PTR -32[rbp]
.L1035:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1036
	call	__stack_chk_fail@PLT
.L1036:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE163:
	.size	core_gt, .-core_gt
	.section	.rodata
	.align 8
.LC146:
	.string	"'>=': expected exactly two arguments\n"
	.align 8
.LC147:
	.string	"'>=': expected numerical arguments\n"
	.text
	.globl	core_ge
	.type	core_ge, @function
core_ge:
.LFB164:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC54[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC55[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -32[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 1
	jbe	.L1038
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 2
	jbe	.L1039
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 16
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1039
.L1038:
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC146[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L1048
.L1039:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	is_number
	test	eax, eax
	je	.L1041
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	is_number
	test	eax, eax
	jne	.L1042
.L1041:
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC147[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L1048
.L1042:
	mov	DWORD PTR -44[rbp], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	is_integer
	test	eax, eax
	je	.L1043
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	is_integer
	test	eax, eax
	je	.L1043
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rdx, rax
	setge	al
	movzx	eax, al
	mov	DWORD PTR -44[rbp], eax
	jmp	.L1044
.L1043:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	is_integer
	test	eax, eax
	je	.L1045
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	is_decimal
	test	eax, eax
	je	.L1045
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	mov	rax, QWORD PTR -16[rbp]
	movsd	xmm1, QWORD PTR 24[rax]
	comisd	xmm0, xmm1
	setnb	al
	movzx	eax, al
	mov	DWORD PTR -44[rbp], eax
	jmp	.L1044
.L1045:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	is_decimal
	test	eax, eax
	je	.L1046
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	is_integer
	test	eax, eax
	je	.L1046
	mov	rax, QWORD PTR -24[rbp]
	movsd	xmm0, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, rax
	comisd	xmm0, xmm1
	setnb	al
	movzx	eax, al
	mov	DWORD PTR -44[rbp], eax
	jmp	.L1044
.L1046:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	is_decimal
	test	eax, eax
	je	.L1044
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	is_decimal
	test	eax, eax
	je	.L1044
	mov	rax, QWORD PTR -24[rbp]
	movsd	xmm0, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -16[rbp]
	movsd	xmm1, QWORD PTR 24[rax]
	comisd	xmm0, xmm1
	setnb	al
	movzx	eax, al
	mov	DWORD PTR -44[rbp], eax
.L1044:
	cmp	DWORD PTR -44[rbp], 0
	je	.L1047
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L1048
.L1047:
	mov	rax, QWORD PTR -32[rbp]
.L1048:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1049
	call	__stack_chk_fail@PLT
.L1049:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE164:
	.size	core_ge, .-core_ge
	.globl	core_list
	.type	core_list, @function
core_list:
.LFB165:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	list_make
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -48[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	jne	.L1051
	mov	rdx, QWORD PTR -48[rbp]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_list
	jmp	.L1081
.L1051:
	mov	QWORD PTR -40[rbp], 0
	jmp	.L1053
.L1067:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 9
	je	.L1054
	cmp	eax, 9
	ja	.L1055
	cmp	eax, 7
	je	.L1056
	cmp	eax, 8
	je	.L1057
	jmp	.L1055
.L1056:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L1083
	mov	QWORD PTR -32[rbp], 0
	jmp	.L1059
.L1060:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	add	QWORD PTR -32[rbp], 1
.L1059:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -32[rbp], rax
	jb	.L1060
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1083
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	jmp	.L1083
.L1057:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L1084
	mov	QWORD PTR -32[rbp], 0
	jmp	.L1063
.L1064:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	add	QWORD PTR -32[rbp], 1
.L1063:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -32[rbp], rax
	jb	.L1064
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1084
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	jmp	.L1084
.L1054:
	mov	QWORD PTR -32[rbp], 0
	jmp	.L1065
.L1066:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	add	QWORD PTR -32[rbp], 2
.L1065:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -32[rbp], rax
	jb	.L1066
	jmp	.L1061
.L1055:
	mov	rdx, QWORD PTR -16[rbp]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	jmp	.L1061
.L1083:
	nop
	jmp	.L1061
.L1084:
	nop
.L1061:
	add	QWORD PTR -40[rbp], 1
.L1053:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -40[rbp], rax
	jb	.L1067
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1085
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 9
	je	.L1069
	cmp	eax, 9
	ja	.L1070
	cmp	eax, 7
	je	.L1071
	cmp	eax, 8
	je	.L1072
	jmp	.L1070
.L1071:
	mov	QWORD PTR -32[rbp], 0
	jmp	.L1073
.L1074:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	add	QWORD PTR -32[rbp], 1
.L1073:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -32[rbp], rax
	jb	.L1074
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1086
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	jmp	.L1086
.L1072:
	mov	QWORD PTR -32[rbp], 0
	jmp	.L1076
.L1077:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	add	QWORD PTR -32[rbp], 1
.L1076:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -32[rbp], rax
	jb	.L1077
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1087
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	jmp	.L1087
.L1069:
	mov	QWORD PTR -32[rbp], 0
	jmp	.L1079
.L1080:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	add	QWORD PTR -32[rbp], 2
.L1079:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -32[rbp], rax
	jb	.L1080
	jmp	.L1068
.L1070:
	mov	rdx, QWORD PTR -16[rbp]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	jmp	.L1068
.L1085:
	nop
	jmp	.L1068
.L1086:
	nop
	jmp	.L1068
.L1087:
	nop
.L1068:
	mov	rdx, QWORD PTR -48[rbp]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_list
.L1081:
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L1082
	call	__stack_chk_fail@PLT
.L1082:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE165:
	.size	core_list, .-core_list
	.globl	core_vector
	.type	core_vector, @function
core_vector:
.LFB166:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	vector_make
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -48[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	jne	.L1089
	mov	rdx, QWORD PTR -48[rbp]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_vector
	jmp	.L1119
.L1089:
	mov	QWORD PTR -40[rbp], 0
	jmp	.L1091
.L1105:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 9
	je	.L1092
	cmp	eax, 9
	ja	.L1093
	cmp	eax, 7
	je	.L1094
	cmp	eax, 8
	je	.L1095
	jmp	.L1093
.L1094:
	mov	QWORD PTR -32[rbp], 0
	jmp	.L1096
.L1097:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	add	QWORD PTR -32[rbp], 1
.L1096:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -32[rbp], rax
	jb	.L1097
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1121
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	jmp	.L1121
.L1095:
	mov	QWORD PTR -32[rbp], 0
	jmp	.L1100
.L1101:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	add	QWORD PTR -32[rbp], 1
.L1100:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -32[rbp], rax
	jb	.L1101
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1122
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	jmp	.L1122
.L1092:
	mov	QWORD PTR -32[rbp], 0
	jmp	.L1103
.L1104:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	add	QWORD PTR -32[rbp], 2
.L1103:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -32[rbp], rax
	jb	.L1104
	jmp	.L1099
.L1093:
	mov	rdx, QWORD PTR -16[rbp]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	jmp	.L1099
.L1121:
	nop
	jmp	.L1099
.L1122:
	nop
.L1099:
	add	QWORD PTR -40[rbp], 1
.L1091:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -40[rbp], rax
	jb	.L1105
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1123
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 9
	je	.L1107
	cmp	eax, 9
	ja	.L1108
	cmp	eax, 7
	je	.L1109
	cmp	eax, 8
	je	.L1110
	jmp	.L1108
.L1109:
	mov	QWORD PTR -32[rbp], 0
	jmp	.L1111
.L1112:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	add	QWORD PTR -32[rbp], 1
.L1111:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -32[rbp], rax
	jb	.L1112
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1124
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	jmp	.L1124
.L1110:
	mov	QWORD PTR -32[rbp], 0
	jmp	.L1114
.L1115:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	add	QWORD PTR -32[rbp], 1
.L1114:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -32[rbp], rax
	jb	.L1115
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1125
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	jmp	.L1125
.L1107:
	mov	QWORD PTR -32[rbp], 0
	jmp	.L1117
.L1118:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	add	QWORD PTR -32[rbp], 2
.L1117:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -32[rbp], rax
	jb	.L1118
	jmp	.L1106
.L1108:
	mov	rdx, QWORD PTR -16[rbp]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	jmp	.L1106
.L1123:
	nop
	jmp	.L1106
.L1124:
	nop
	jmp	.L1106
.L1125:
	nop
.L1106:
	mov	rdx, QWORD PTR -48[rbp]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_vector
.L1119:
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L1120
	call	__stack_chk_fail@PLT
.L1120:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE166:
	.size	core_vector, .-core_vector
	.globl	core_hashmap
	.type	core_hashmap, @function
core_hashmap:
.LFB167:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	hashmap_make
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -48[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	jne	.L1127
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_hashmap
	jmp	.L1171
.L1127:
	mov	QWORD PTR -40[rbp], 0
	jmp	.L1129
.L1150:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 9
	je	.L1130
	cmp	eax, 9
	ja	.L1131
	cmp	eax, 7
	je	.L1132
	cmp	eax, 8
	je	.L1133
	jmp	.L1131
.L1132:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	and	eax, 1
	test	rax, rax
	jne	.L1134
	mov	QWORD PTR -32[rbp], 0
	jmp	.L1135
.L1136:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rsi, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	hashmap_set
	add	QWORD PTR -32[rbp], 2
.L1135:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -32[rbp], rax
	jb	.L1136
	jmp	.L1140
.L1134:
	mov	QWORD PTR -32[rbp], 0
	jmp	.L1138
.L1139:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rsi, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	hashmap_set
	add	QWORD PTR -32[rbp], 2
.L1138:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -32[rbp], rax
	jb	.L1139
	mov	rcx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rsi, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	hashmap_set
	jmp	.L1140
.L1133:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	and	eax, 1
	test	rax, rax
	jne	.L1141
	mov	QWORD PTR -32[rbp], 0
	jmp	.L1142
.L1143:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rsi, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	hashmap_set
	add	QWORD PTR -32[rbp], 2
.L1142:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -32[rbp], rax
	jb	.L1143
	jmp	.L1140
.L1141:
	mov	QWORD PTR -32[rbp], 0
	jmp	.L1145
.L1146:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rsi, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	hashmap_set
	add	QWORD PTR -32[rbp], 2
.L1145:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -32[rbp], rax
	jb	.L1146
	mov	rcx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rsi, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	hashmap_set
	jmp	.L1140
.L1130:
	mov	QWORD PTR -32[rbp], 0
	jmp	.L1147
.L1148:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rsi, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	hashmap_set
	add	QWORD PTR -32[rbp], 2
.L1147:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -32[rbp], rax
	jb	.L1148
	jmp	.L1140
.L1131:
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	rdx, rax
	je	.L1149
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rsi, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	hashmap_set
	add	QWORD PTR -40[rbp], 1
	jmp	.L1140
.L1149:
	mov	rcx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rsi, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	hashmap_set
.L1140:
	add	QWORD PTR -40[rbp], 1
.L1129:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -40[rbp], rax
	jb	.L1150
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1151
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 9
	je	.L1152
	cmp	eax, 9
	ja	.L1153
	cmp	eax, 7
	je	.L1154
	cmp	eax, 8
	je	.L1155
	jmp	.L1153
.L1154:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	and	eax, 1
	test	rax, rax
	jne	.L1156
	mov	QWORD PTR -32[rbp], 0
	jmp	.L1157
.L1158:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rsi, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	hashmap_set
	add	QWORD PTR -32[rbp], 2
.L1157:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -32[rbp], rax
	jb	.L1158
	jmp	.L1151
.L1156:
	mov	QWORD PTR -32[rbp], 0
	jmp	.L1160
.L1161:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rsi, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	hashmap_set
	add	QWORD PTR -32[rbp], 2
.L1160:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -32[rbp], rax
	jb	.L1161
	mov	rcx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rsi, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	hashmap_set
	jmp	.L1151
.L1155:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	and	eax, 1
	test	rax, rax
	jne	.L1162
	mov	QWORD PTR -32[rbp], 0
	jmp	.L1163
.L1164:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rsi, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	hashmap_set
	add	QWORD PTR -32[rbp], 2
.L1163:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -32[rbp], rax
	jb	.L1164
	jmp	.L1151
.L1162:
	mov	QWORD PTR -32[rbp], 0
	jmp	.L1166
.L1167:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rsi, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	hashmap_set
	add	QWORD PTR -32[rbp], 2
.L1166:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -32[rbp], rax
	jb	.L1167
	mov	rcx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rsi, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	hashmap_set
	jmp	.L1151
.L1152:
	mov	QWORD PTR -32[rbp], 0
	jmp	.L1168
.L1169:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rsi, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	hashmap_set
	add	QWORD PTR -32[rbp], 2
.L1168:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -32[rbp], rax
	jb	.L1169
	jmp	.L1151
.L1153:
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	rdx, rax
	je	.L1170
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 1
	sal	rax, 3
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rsi, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	hashmap_set
	add	QWORD PTR -40[rbp], 1
	jmp	.L1151
.L1170:
	mov	rcx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rsi, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	hashmap_set
.L1151:
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_hashmap
.L1171:
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L1172
	call	__stack_chk_fail@PLT
.L1172:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE167:
	.size	core_hashmap, .-core_hashmap
	.section	.rodata
	.align 8
.LC148:
	.string	"in zip first list has to be equal or longer then second list\n"
	.align 8
.LC149:
	.string	"in zip first list has to be equal or longer then second vector\n"
	.align 8
.LC150:
	.string	"unsupported type of the second sequential '"
	.align 8
.LC151:
	.string	"in zip first vector has to be equal or longer then second list\n"
	.align 8
.LC152:
	.string	"in zip first vector has to be equal or longer then second vector\n"
	.align 8
.LC153:
	.string	"unsupported type of the first sequential '"
	.align 8
.LC154:
	.string	"required two lists or vectors\n"
	.align 8
.LC155:
	.string	"required proper list of length 2\n"
	.text
	.globl	core_zip
	.type	core_zip, @function
core_zip:
.LFB168:
	.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, 152
	.cfi_offset 3, -24
	mov	QWORD PTR -152[rbp], rdi
	mov	QWORD PTR -160[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -152[rbp]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -136[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 3
	jne	.L1174
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 16
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1175
.L1174:
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 2
	jne	.L1176
.L1175:
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_sequential
	test	eax, eax
	je	.L1177
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_sequential
	test	eax, eax
	je	.L1177
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 7
	je	.L1178
	cmp	eax, 8
	je	.L1179
	jmp	.L1218
.L1178:
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 7
	je	.L1181
	cmp	eax, 8
	je	.L1182
	jmp	.L1219
.L1181:
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rdx, rax
	jb	.L1184
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	list_make
	mov	QWORD PTR -32[rbp], rax
	mov	QWORD PTR -128[rbp], 0
	jmp	.L1185
.L1186:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -128[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -128[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	add	QWORD PTR -128[rbp], 1
.L1185:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -128[rbp], rax
	jb	.L1186
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -128[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1188
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -128[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -128[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -128[rbp], rdx
	sal	rax, 3
	add	rax, rcx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	jmp	.L1188
.L1190:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -128[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1189
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -128[rbp], rax
	jne	.L1189
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -128[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rdx, QWORD PTR -136[rbp]
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
.L1189:
	add	QWORD PTR -128[rbp], 1
.L1188:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -128[rbp], rax
	jb	.L1190
	mov	rdx, QWORD PTR -136[rbp]
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_list
	jmp	.L1216
.L1184:
	mov	rax, QWORD PTR -152[rbp]
	lea	rsi, .LC148[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -152[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L1216
.L1182:
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rdx, rax
	jb	.L1192
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 24[rax]
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	list_make
	mov	QWORD PTR -56[rbp], rax
	mov	QWORD PTR -128[rbp], 0
	jmp	.L1193
.L1194:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -128[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -128[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	add	QWORD PTR -128[rbp], 1
.L1193:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -128[rbp], rax
	jb	.L1194
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -128[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1196
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -128[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rax, QWORD PTR -64[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -128[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -128[rbp], rdx
	sal	rax, 3
	add	rax, rcx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	jmp	.L1196
.L1198:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -128[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1197
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -128[rbp], rax
	jne	.L1197
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -128[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rdx, QWORD PTR -136[rbp]
	mov	rcx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
.L1197:
	add	QWORD PTR -128[rbp], 1
.L1196:
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -128[rbp], rax
	jb	.L1198
	mov	rdx, QWORD PTR -136[rbp]
	mov	rcx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_list
	jmp	.L1216
.L1192:
	mov	rax, QWORD PTR -152[rbp]
	lea	rsi, .LC149[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -152[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L1216
.L1219:
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -152[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rbx, rax
	mov	rax, QWORD PTR -152[rbp]
	lea	rsi, .LC150[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -152[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -152[rbp]
	lea	rdx, .LC42[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rdx, rax
	mov	rax, QWORD PTR -152[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L1216
.L1179:
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 7
	je	.L1199
	cmp	eax, 8
	je	.L1200
	jmp	.L1220
.L1199:
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rdx, rax
	jb	.L1202
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR 24[rax]
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	list_make
	mov	QWORD PTR -80[rbp], rax
	mov	QWORD PTR -128[rbp], 0
	jmp	.L1203
.L1204:
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -128[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -128[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	add	QWORD PTR -128[rbp], 1
.L1203:
	mov	rax, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -128[rbp], rax
	jb	.L1204
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -128[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1206
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -128[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rax, QWORD PTR -88[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -128[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -128[rbp], rdx
	sal	rax, 3
	add	rax, rcx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	jmp	.L1206
.L1208:
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -128[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1207
	mov	rax, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -128[rbp], rax
	jne	.L1207
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -128[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rdx, QWORD PTR -136[rbp]
	mov	rcx, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
.L1207:
	add	QWORD PTR -128[rbp], 1
.L1206:
	mov	rax, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -128[rbp], rax
	jb	.L1208
	mov	rdx, QWORD PTR -136[rbp]
	mov	rcx, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rdx, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_list
	jmp	.L1216
.L1202:
	mov	rax, QWORD PTR -152[rbp]
	lea	rsi, .LC151[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -152[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L1216
.L1200:
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rdx, rax
	jb	.L1209
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 24[rax]
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	list_make
	mov	QWORD PTR -104[rbp], rax
	mov	QWORD PTR -128[rbp], 0
	jmp	.L1210
.L1211:
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -128[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -128[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	add	QWORD PTR -128[rbp], 1
.L1210:
	mov	rax, QWORD PTR -112[rbp]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -128[rbp], rax
	jb	.L1211
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -128[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1213
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -128[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rax, QWORD PTR -112[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -128[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -128[rbp], rdx
	sal	rax, 3
	add	rax, rcx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	jmp	.L1213
.L1215:
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -128[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1214
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -128[rbp], rax
	jne	.L1214
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -128[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rdx, QWORD PTR -136[rbp]
	mov	rcx, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
.L1214:
	add	QWORD PTR -128[rbp], 1
.L1213:
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -128[rbp], rax
	jb	.L1215
	mov	rdx, QWORD PTR -136[rbp]
	mov	rcx, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	rdx, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_list
	jmp	.L1216
.L1209:
	mov	rax, QWORD PTR -152[rbp]
	lea	rsi, .LC152[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -152[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L1216
.L1220:
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -152[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rbx, rax
	mov	rax, QWORD PTR -152[rbp]
	lea	rsi, .LC150[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -152[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -152[rbp]
	lea	rdx, .LC42[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rdx, rax
	mov	rax, QWORD PTR -152[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L1216
.L1218:
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -152[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rbx, rax
	mov	rax, QWORD PTR -152[rbp]
	lea	rsi, .LC153[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -152[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -152[rbp]
	lea	rdx, .LC42[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rdx, rax
	mov	rax, QWORD PTR -152[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L1216
.L1177:
	mov	rax, QWORD PTR -152[rbp]
	lea	rsi, .LC154[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -152[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L1216
.L1176:
	mov	rax, QWORD PTR -152[rbp]
	lea	rsi, .LC155[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -152[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
.L1216:
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L1217
	call	__stack_chk_fail@PLT
.L1217:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE168:
	.size	core_zip, .-core_zip
	.globl	core_listp
	.type	core_listp, @function
core_listp:
.LFB169:
	.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 fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -56[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC54[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -48[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC55[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -40[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 2
	jne	.L1222
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1223
.L1222:
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 1
	jne	.L1224
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1224
.L1223:
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_list
	test	eax, eax
	je	.L1225
	mov	rax, QWORD PTR -48[rbp]
	jmp	.L1234
.L1225:
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L1234
.L1224:
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 1
	jbe	.L1227
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1227
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sal	rax, 3
	sub	rax, 8
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	je	.L1228
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	jmp	.L1229
.L1228:
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
.L1229:
	mov	QWORD PTR -24[rbp], rax
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	vector_make
	mov	QWORD PTR -16[rbp], rax
	mov	QWORD PTR -32[rbp], 0
	jmp	.L1230
.L1233:
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_list
	test	eax, eax
	je	.L1231
	mov	rdx, QWORD PTR -48[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	jmp	.L1232
.L1231:
	mov	rdx, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
.L1232:
	add	QWORD PTR -32[rbp], 1
.L1230:
	mov	rax, QWORD PTR -32[rbp]
	cmp	rax, QWORD PTR -24[rbp]
	jb	.L1233
	mov	rdx, QWORD PTR -56[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_vector
	jmp	.L1234
.L1227:
	mov	rax, QWORD PTR -40[rbp]
.L1234:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1235
	call	__stack_chk_fail@PLT
.L1235:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE169:
	.size	core_listp, .-core_listp
	.globl	core_vectorp
	.type	core_vectorp, @function
core_vectorp:
.LFB170:
	.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 fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -56[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC54[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -48[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC55[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -40[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 2
	jne	.L1237
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1238
.L1237:
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 1
	jne	.L1239
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1239
.L1238:
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_vector
	test	eax, eax
	je	.L1240
	mov	rax, QWORD PTR -48[rbp]
	jmp	.L1249
.L1240:
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L1249
.L1239:
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 1
	jbe	.L1242
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1242
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sal	rax, 3
	sub	rax, 8
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	je	.L1243
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	jmp	.L1244
.L1243:
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
.L1244:
	mov	QWORD PTR -24[rbp], rax
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	vector_make
	mov	QWORD PTR -16[rbp], rax
	mov	QWORD PTR -32[rbp], 0
	jmp	.L1245
.L1248:
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_vector
	test	eax, eax
	je	.L1246
	mov	rdx, QWORD PTR -48[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	jmp	.L1247
.L1246:
	mov	rdx, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
.L1247:
	add	QWORD PTR -32[rbp], 1
.L1245:
	mov	rax, QWORD PTR -32[rbp]
	cmp	rax, QWORD PTR -24[rbp]
	jb	.L1248
	mov	rdx, QWORD PTR -56[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_vector
	jmp	.L1249
.L1242:
	mov	rax, QWORD PTR -40[rbp]
.L1249:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1250
	call	__stack_chk_fail@PLT
.L1250:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE170:
	.size	core_vectorp, .-core_vectorp
	.globl	core_hashmapp
	.type	core_hashmapp, @function
core_hashmapp:
.LFB171:
	.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 fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -56[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC54[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -48[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC55[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -40[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 3
	jne	.L1252
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 16
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1253
.L1252:
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 2
	jne	.L1254
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1254
.L1253:
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_hashmap
	test	eax, eax
	je	.L1255
	mov	rax, QWORD PTR -48[rbp]
	jmp	.L1264
.L1255:
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L1264
.L1254:
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 2
	jbe	.L1257
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 16
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1257
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sal	rax, 3
	sub	rax, 8
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	je	.L1258
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	jmp	.L1259
.L1258:
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
.L1259:
	mov	QWORD PTR -24[rbp], rax
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	vector_make
	mov	QWORD PTR -16[rbp], rax
	mov	QWORD PTR -32[rbp], 0
	jmp	.L1260
.L1263:
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_hashmap
	test	eax, eax
	je	.L1261
	mov	rdx, QWORD PTR -48[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	jmp	.L1262
.L1261:
	mov	rdx, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
.L1262:
	add	QWORD PTR -32[rbp], 1
.L1260:
	mov	rax, QWORD PTR -32[rbp]
	cmp	rax, QWORD PTR -24[rbp]
	jb	.L1263
	mov	rdx, QWORD PTR -56[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_vector
	jmp	.L1264
.L1257:
	mov	rax, QWORD PTR -40[rbp]
.L1264:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1265
	call	__stack_chk_fail@PLT
.L1265:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE171:
	.size	core_hashmapp, .-core_hashmapp
	.globl	core_envp
	.type	core_envp, @function
core_envp:
.LFB172:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC54[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -48[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC55[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 3
	jne	.L1267
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 16
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1268
.L1267:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 2
	jne	.L1269
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1269
.L1268:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_env
	test	eax, eax
	je	.L1270
	mov	rax, QWORD PTR -48[rbp]
	jmp	.L1279
.L1270:
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L1279
.L1269:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 2
	jbe	.L1272
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 16
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1272
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sal	rax, 3
	sub	rax, 8
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	je	.L1273
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	jmp	.L1274
.L1273:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
.L1274:
	mov	QWORD PTR -24[rbp], rax
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	vector_make
	mov	QWORD PTR -16[rbp], rax
	mov	QWORD PTR -32[rbp], 0
	jmp	.L1275
.L1278:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_env
	test	eax, eax
	je	.L1276
	mov	rdx, QWORD PTR -48[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	jmp	.L1277
.L1276:
	mov	rdx, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
.L1277:
	add	QWORD PTR -32[rbp], 1
.L1275:
	mov	rax, QWORD PTR -32[rbp]
	cmp	rax, QWORD PTR -24[rbp]
	jb	.L1278
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_vector
	jmp	.L1279
.L1272:
	mov	rax, QWORD PTR -40[rbp]
.L1279:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1280
	call	__stack_chk_fail@PLT
.L1280:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE172:
	.size	core_envp, .-core_envp
	.globl	core_emptyp
	.type	core_emptyp, @function
core_emptyp:
.LFB173:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC54[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -48[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC55[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -40[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 2
	jne	.L1282
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1283
.L1282:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 1
	jne	.L1284
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1284
.L1283:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 12
	je	.L1285
	cmp	eax, 12
	ja	.L1286
	cmp	eax, 9
	je	.L1287
	cmp	eax, 9
	ja	.L1286
	cmp	eax, 7
	je	.L1288
	cmp	eax, 8
	je	.L1289
	jmp	.L1286
.L1288:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	jne	.L1290
	mov	rax, QWORD PTR -48[rbp]
	jmp	.L1317
.L1290:
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L1317
.L1289:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	jne	.L1292
	mov	rax, QWORD PTR -48[rbp]
	jmp	.L1317
.L1292:
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L1317
.L1287:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	jne	.L1293
	mov	rax, QWORD PTR -48[rbp]
	jmp	.L1317
.L1293:
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L1317
.L1285:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	jne	.L1294
	mov	rax, QWORD PTR -48[rbp]
	jmp	.L1317
.L1294:
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L1317
.L1286:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	je	.L1295
	mov	rax, QWORD PTR -48[rbp]
	jmp	.L1317
.L1295:
	mov	rax, QWORD PTR -40[rbp]
	jmp	.L1317
.L1284:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 1
	jbe	.L1296
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1296
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sal	rax, 3
	sub	rax, 8
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	je	.L1297
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	jmp	.L1298
.L1297:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
.L1298:
	mov	QWORD PTR -24[rbp], rax
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	vector_make
	mov	QWORD PTR -16[rbp], rax
	mov	QWORD PTR -32[rbp], 0
	jmp	.L1299
.L1316:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 12
	je	.L1300
	cmp	eax, 12
	ja	.L1301
	cmp	eax, 9
	je	.L1302
	cmp	eax, 9
	ja	.L1301
	cmp	eax, 7
	je	.L1303
	cmp	eax, 8
	je	.L1304
	jmp	.L1301
.L1303:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	jne	.L1305
	mov	rdx, QWORD PTR -48[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	jmp	.L1307
.L1305:
	mov	rdx, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	jmp	.L1307
.L1304:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	jne	.L1308
	mov	rdx, QWORD PTR -48[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	jmp	.L1307
.L1308:
	mov	rdx, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	jmp	.L1307
.L1302:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	jne	.L1310
	mov	rdx, QWORD PTR -48[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	jmp	.L1307
.L1310:
	mov	rdx, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	jmp	.L1307
.L1300:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	jne	.L1312
	mov	rdx, QWORD PTR -48[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	jmp	.L1307
.L1312:
	mov	rdx, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	jmp	.L1307
.L1301:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	je	.L1314
	mov	rdx, QWORD PTR -48[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	jmp	.L1319
.L1314:
	mov	rdx, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
.L1319:
	nop
.L1307:
	add	QWORD PTR -32[rbp], 1
.L1299:
	mov	rax, QWORD PTR -32[rbp]
	cmp	rax, QWORD PTR -24[rbp]
	jb	.L1316
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_vector
	jmp	.L1317
.L1296:
	mov	rax, QWORD PTR -48[rbp]
.L1317:
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L1318
	call	__stack_chk_fail@PLT
.L1318:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE173:
	.size	core_emptyp, .-core_emptyp
	.globl	core_count
	.type	core_count, @function
core_count:
.LFB174:
	.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 -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 2
	jne	.L1321
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1322
.L1321:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 1
	jne	.L1323
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1323
.L1322:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 12
	je	.L1324
	cmp	eax, 12
	ja	.L1325
	cmp	eax, 9
	je	.L1326
	cmp	eax, 9
	ja	.L1325
	cmp	eax, 7
	je	.L1327
	cmp	eax, 8
	je	.L1328
	jmp	.L1325
.L1327:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_integer
	jmp	.L1329
.L1328:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_integer
	jmp	.L1329
.L1326:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	shr	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_integer
	jmp	.L1329
.L1324:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	shr	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_integer
	jmp	.L1329
.L1325:
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	mal_integer
	jmp	.L1329
.L1323:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 1
	jbe	.L1330
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1330
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sal	rax, 3
	sub	rax, 8
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	je	.L1331
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	jmp	.L1332
.L1331:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
.L1332:
	mov	QWORD PTR -16[rbp], rax
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	vector_make
	mov	QWORD PTR -8[rbp], rax
	mov	QWORD PTR -24[rbp], 0
	jmp	.L1333
.L1340:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 12
	je	.L1334
	cmp	eax, 12
	ja	.L1335
	cmp	eax, 9
	je	.L1336
	cmp	eax, 9
	ja	.L1335
	cmp	eax, 7
	je	.L1337
	cmp	eax, 8
	je	.L1338
	jmp	.L1335
.L1337:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_integer
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	jmp	.L1339
.L1338:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_integer
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	jmp	.L1339
.L1336:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	shr	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_integer
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	jmp	.L1339
.L1334:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	shr	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_integer
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	jmp	.L1339
.L1335:
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	mal_integer
	mov	rdx, rax
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	nop
.L1339:
	add	QWORD PTR -24[rbp], 1
.L1333:
	mov	rax, QWORD PTR -24[rbp]
	cmp	rax, QWORD PTR -16[rbp]
	jb	.L1340
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_vector
	jmp	.L1329
.L1330:
	mov	eax, 0
.L1329:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE174:
	.size	core_count, .-core_count
	.section	.rodata
.LC156:
	.string	" "
	.text
	.globl	core_pr_str
	.type	core_pr_str, @function
core_pr_str:
.LFB175:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rsi, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	lea	rcx, .LC156[rip]
	mov	edx, 1
	mov	rdi, rax
	call	mal_as_str
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE175:
	.size	core_pr_str, .-core_pr_str
	.globl	core_str
	.type	core_str, @function
core_str:
.LFB176:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rsi, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	lea	rcx, .LC25[rip]
	mov	edx, 0
	mov	rdi, rax
	call	mal_as_str
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE176:
	.size	core_str, .-core_str
	.globl	core_prn
	.type	core_prn, @function
core_prn:
.LFB177:
	.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 -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rsi, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -40[rbp]
	lea	rcx, .LC156[rip]
	mov	edx, 1
	mov	rdi, rax
	call	mal_as_str
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	lvm_print
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	puts@PLT
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1347
	call	__stack_chk_fail@PLT
.L1347:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE177:
	.size	core_prn, .-core_prn
	.globl	core_println
	.type	core_println, @function
core_println:
.LFB178:
	.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 -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rsi, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -40[rbp]
	lea	rcx, .LC156[rip]
	mov	edx, 0
	mov	rdi, rax
	call	mal_as_str
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	lvm_print
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	puts@PLT
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1350
	call	__stack_chk_fail@PLT
.L1350:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE178:
	.size	core_println, .-core_println
	.globl	core_type
	.type	core_type, @function
core_type:
.LFB179:
	.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 -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	vector_make
	mov	QWORD PTR -16[rbp], rax
	mov	QWORD PTR -24[rbp], 0
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 1
	jne	.L1352
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1353
.L1352:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	jne	.L1354
.L1353:
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC51[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_symbol
	jmp	.L1361
.L1354:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 2
	jne	.L1356
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_type_of
	jmp	.L1361
.L1356:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L1358
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -24[rbp], rdx
	sal	rax, 3
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1358
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_type_of
	mov	rdx, rax
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	jmp	.L1358
.L1359:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_type_of
	mov	rdx, rax
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	add	QWORD PTR -24[rbp], 1
.L1358:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -24[rbp], rax
	jb	.L1359
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	jne	.L1360
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_type_of
	mov	rdx, rax
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
.L1360:
	mov	rax, QWORD PTR -40[rbp]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	call	text_make
	mov	rdi, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR 56[rax]
	lea	rdx, -32[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	env_get_by_text
	mov	rdx, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vector_append
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_vector
.L1361:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1362
	call	__stack_chk_fail@PLT
.L1362:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE179:
	.size	core_type, .-core_type
	.section	.rodata
.LC157:
	.string	"nOK:%p\n"
	.text
	.globl	readers_push
	.type	readers_push, @function
readers_push:
.LFB180:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 32
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L1364
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 16[rax]
	cmp	rdx, rax
	jb	.L1365
.L1364:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 16[rax]
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 16[rax]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	realloc@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L1366
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC49[rip]
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	error_append
	mov	eax, 0
	jmp	.L1367
.L1366:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
.L1365:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rsi, rax
	lea	rdi, .LC157[rip]
	mov	eax, 0
	call	printf@PLT
	mov	rax, QWORD PTR -16[rbp]
	mov	rsi, QWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 8[rax]
	lea	rcx, 1[rax]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 8[rdx], rcx
	sal	rax, 3
	lea	rdx, [rsi+rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR [rdx], rax
	mov	eax, 1
.L1367:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE180:
	.size	readers_push, .-readers_push
	.globl	readers_pop
	.type	readers_pop, @function
readers_pop:
.LFB181:
	.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 -40[rbp], rdi
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 32
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	je	.L1369
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	sal	rax, 3
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 16[rax]
	cmp	rdx, rax
	jnb	.L1369
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 16[rax]
	shr	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 16[rax]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	realloc@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
.L1369:
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE181:
	.size	readers_pop, .-readers_pop
	.section	.rodata
.LC158:
	.string	"nOK"
	.text
	.globl	readers_get
	.type	readers_get, @function
readers_get:
.LFB182:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 32
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	je	.L1372
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	jmp	.L1373
.L1372:
	lea	rdi, .LC158[rip]
	call	puts@PLT
	mov	eax, 0
.L1373:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE182:
	.size	readers_get, .-readers_get
	.globl	lvm_read
	.type	lvm_read, @function
lvm_read:
.LFB183:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	reader_make
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	readers_push
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	error_make
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	read_str
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE183:
	.size	lvm_read, .-lvm_read
	.section	.rodata
.LC159:
	.string	"def!"
.LC160:
	.string	"let*"
.LC161:
	.string	"if"
.LC162:
	.string	"fn*"
.LC163:
	.string	"do"
.LC164:
	.string	".."
	.align 8
.LC165:
	.string	"'fn*': too few arguments supplied to the function '"
	.align 8
.LC166:
	.string	"'fn*': too many arguments supplied to the function '"
	.align 8
.LC167:
	.string	"first list item not callable '"
	.text
	.globl	lvm_eval
	.type	lvm_eval, @function
lvm_eval:
.LFB184:
	.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, 136
	.cfi_offset 3, -24
	mov	QWORD PTR -120[rbp], rdi
	mov	QWORD PTR -128[rbp], rsi
	mov	QWORD PTR -136[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
.L1411:
	mov	rax, QWORD PTR -128[rbp]
	mov	rdi, rax
	call	is_eoi
	test	eax, eax
	jne	.L1377
	mov	rax, QWORD PTR -128[rbp]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	je	.L1378
.L1377:
	mov	rax, QWORD PTR -128[rbp]
	jmp	.L1410
.L1378:
	mov	rax, QWORD PTR -128[rbp]
	mov	rdi, rax
	call	is_list
	test	eax, eax
	jne	.L1380
	mov	rdx, QWORD PTR -136[rbp]
	mov	rcx, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	eval_ast
	jmp	.L1410
.L1380:
	mov	rax, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	jne	.L1381
	mov	rax, QWORD PTR -128[rbp]
	jmp	.L1410
.L1381:
	mov	rax, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 3
	jne	.L1382
	mov	rax, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rcx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -120[rbp]
	lea	rdx, .LC159[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_cmp
	test	eax, eax
	jne	.L1383
	mov	rdx, QWORD PTR -136[rbp]
	mov	rcx, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	eval_def_bang
	jmp	.L1410
.L1383:
	mov	rax, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rcx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -120[rbp]
	lea	rdx, .LC160[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_cmp
	test	eax, eax
	jne	.L1384
	lea	rdx, -136[rbp]
	mov	rcx, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	eval_let_star
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	mov	rdi, rax
	call	is_error
	test	eax, eax
	je	.L1413
	mov	rax, QWORD PTR -128[rbp]
	jmp	.L1410
.L1384:
	mov	rax, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rcx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -120[rbp]
	lea	rdx, .LC161[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_cmp
	test	eax, eax
	jne	.L1387
	lea	rdx, -136[rbp]
	mov	rcx, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	eval_if
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	mov	rdi, rax
	call	is_error
	test	eax, eax
	je	.L1414
	mov	rax, QWORD PTR -128[rbp]
	jmp	.L1410
.L1387:
	mov	rax, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rcx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -120[rbp]
	lea	rdx, .LC162[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_cmp
	test	eax, eax
	jne	.L1389
	mov	rdx, QWORD PTR -136[rbp]
	mov	rcx, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	eval_fn_star
	jmp	.L1410
.L1389:
	mov	rax, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rcx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -120[rbp]
	lea	rdx, .LC163[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_cmp
	test	eax, eax
	jne	.L1390
	mov	rdx, QWORD PTR -136[rbp]
	mov	rcx, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	eval_do
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	mov	rdi, rax
	call	is_error
	test	eax, eax
	je	.L1415
	mov	rax, QWORD PTR -128[rbp]
	jmp	.L1410
.L1390:
	mov	rax, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	rcx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -120[rbp]
	lea	rdx, .LC164[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_cmp
	test	eax, eax
	jne	.L1382
	mov	rdx, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_env
	jmp	.L1410
.L1382:
	mov	rdx, QWORD PTR -136[rbp]
	mov	rcx, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	eval_ast
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 1
	jne	.L1392
	mov	rax, QWORD PTR -104[rbp]
	jmp	.L1410
.L1392:
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -120[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	list_params
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, 14
	je	.L1393
	cmp	eax, 14
	ja	.L1394
	cmp	eax, 13
	je	.L1395
	cmp	eax, 13
	ja	.L1394
	cmp	eax, 3
	je	.L1416
	cmp	eax, 9
	je	.L1397
	jmp	.L1394
.L1395:
	mov	rax, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rbx, QWORD PTR 16[rax]
	mov	rdx, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_list
	mov	rdx, rax
	mov	rax, QWORD PTR -120[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rbx
	jmp	.L1410
.L1393:
	mov	rax, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	cmp	rax, QWORD PTR -48[rbp]
	jle	.L1399
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_make_integer
	mov	rbx, rax
	mov	rax, QWORD PTR -120[rbp]
	lea	rsi, .LC165[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -120[rbp]
	lea	rdx, .LC42[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rdx, rax
	mov	rax, QWORD PTR -120[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L1410
.L1399:
	mov	rax, QWORD PTR -56[rbp]
	cmp	rax, QWORD PTR -48[rbp]
	jge	.L1400
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 32[rax]
	test	rax, rax
	jne	.L1400
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_make_integer
	mov	rbx, rax
	mov	rax, QWORD PTR -120[rbp]
	lea	rsi, .LC166[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -120[rbp]
	lea	rdx, .LC42[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rdx, rax
	mov	rax, QWORD PTR -120[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L1410
.L1400:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, QWORD PTR 32[rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, QWORD PTR 16[rax]
	mov	rcx, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	r9d, 0
	mov	r8, rdi
	mov	rdi, rax
	call	env_make
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 40[rax]
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	mov	rdi, rax
	call	is_error
	test	eax, eax
	je	.L1417
	mov	rax, QWORD PTR -128[rbp]
	jmp	.L1410
.L1397:
	mov	QWORD PTR -40[rbp], 0
	nop
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -40[rbp], rax
	jnb	.L1418
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_nil
	test	eax, eax
	je	.L1403
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	sub	rax, 1
	cmp	QWORD PTR -40[rbp], rax
	jne	.L1403
	mov	rax, QWORD PTR -88[rbp]
	jmp	.L1410
.L1403:
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	is_keyword
	test	eax, eax
	je	.L1419
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -88[rbp]
	mov	rsi, QWORD PTR 24[rax]
	lea	rcx, -104[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	rdi, rax
	call	hashmap_get
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -120[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	list_make
	mov	QWORD PTR -32[rbp], rax
	mov	rcx, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	edx, 1
	mov	rsi, rcx
	mov	rdi, rax
	call	list_offset
	mov	QWORD PTR -80[rbp], rax
	mov	rdx, QWORD PTR -104[rbp]
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	mov	QWORD PTR -96[rbp], 0
	jmp	.L1405
.L1406:
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -96[rbp]
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	list_append
	add	QWORD PTR -96[rbp], 1
.L1405:
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	QWORD PTR -96[rbp], rax
	jb	.L1406
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rax, 2
	jbe	.L1407
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_list
	mov	QWORD PTR -128[rbp], rax
	jmp	.L1419
.L1407:
	mov	rax, QWORD PTR -104[rbp]
	mov	QWORD PTR -128[rbp], rax
.L1419:
	nop
	jmp	.L1418
.L1394:
	mov	rcx, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rbx, rax
	mov	rax, QWORD PTR -120[rbp]
	lea	rsi, .LC167[rip]
	mov	rdi, rax
	call	text_make
	mov	rcx, rax
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat_text
	mov	rcx, rax
	mov	rax, QWORD PTR -120[rbp]
	lea	rdx, .LC42[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	text_concat
	mov	rdx, rax
	mov	rax, QWORD PTR -120[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	mal_error
	jmp	.L1410
.L1416:
	nop
	mov	rax, QWORD PTR -128[rbp]
	jmp	.L1410
.L1413:
	nop
	jmp	.L1411
.L1414:
	nop
	jmp	.L1411
.L1415:
	nop
	jmp	.L1411
.L1417:
	nop
	jmp	.L1411
.L1418:
	nop
	jmp	.L1411
.L1410:
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L1412
	call	__stack_chk_fail@PLT
.L1412:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE184:
	.size	lvm_eval, .-lvm_eval
	.globl	lvm_print
	.type	lvm_print, @function
lvm_print:
.LFB185:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	rax, QWORD PTR 32[rax]
	test	rax, rax
	je	.L1421
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	error_collapse
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_str
	mov	QWORD PTR -8[rbp], rax
	jmp	.L1422
.L1421:
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	mal_print
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_str
	mov	QWORD PTR -8[rbp], rax
.L1422:
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE185:
	.size	lvm_print, .-lvm_print
	.globl	lvm_rep
	.type	lvm_rep, @function
lvm_rep:
.LFB186:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 24
	.cfi_offset 3, -24
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	rbx, QWORD PTR 56[rax]
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	lvm_read
	mov	rcx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	lvm_eval
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	lvm_print
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE186:
	.size	lvm_rep, .-lvm_rep
	.section	.rodata
.LC169:
	.string	"Make-a-lisp version 0.5.0\n"
.LC170:
	.string	"Press Ctrl+D to exit\n"
	.align 8
.LC171:
	.string	"(def! not (fn* (a) (if a false true)))"
.LC172:
	.string	"mal> "
	.data
	.align 32
.LC168:
	.quad	.LC0
	.quad	core_add
	.quad	.LC1
	.quad	core_sub
	.quad	.LC2
	.quad	core_mul
	.quad	.LC3
	.quad	core_div
	.quad	.LC4
	.quad	core_eq
	.quad	.LC5
	.quad	core_lt
	.quad	.LC6
	.quad	core_le
	.quad	.LC7
	.quad	core_gt
	.quad	.LC8
	.quad	core_ge
	.quad	.LC9
	.quad	core_list
	.quad	.LC10
	.quad	core_vector
	.quad	.LC11
	.quad	core_hashmap
	.quad	.LC12
	.quad	core_zip
	.quad	.LC13
	.quad	core_listp
	.quad	.LC14
	.quad	core_vectorp
	.quad	.LC15
	.quad	core_hashmapp
	.quad	.LC16
	.quad	core_envp
	.quad	.LC17
	.quad	core_emptyp
	.quad	.LC18
	.quad	core_count
	.quad	.LC19
	.quad	core_pr_str
	.quad	.LC20
	.quad	core_str
	.quad	.LC21
	.quad	core_prn
	.quad	.LC22
	.quad	core_println
	.quad	.LC23
	.quad	core_type
	.quad	0
	.quad	0
	.text
	.globl	main
	.type	main, @function
main:
.LFB187:
	.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, 488
	.cfi_offset 3, -24
	mov	DWORD PTR -484[rbp], edi
	mov	QWORD PTR -496[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	eax, 0
	call	lvm_make
	mov	QWORD PTR -480[rbp], rax
	lea	rax, -432[rbp]
	lea	rdx, .LC168[rip]
	mov	ecx, 50
	mov	rdi, rax
	mov	rsi, rdx
	rep movsq
	lea	rdi, .LC169[rip]
	call	puts@PLT
	lea	rdi, .LC170[rip]
	call	puts@PLT
	mov	QWORD PTR -472[rbp], 0
	jmp	.L1427
.L1428:
	mov	rax, QWORD PTR -472[rbp]
	sal	rax, 4
	lea	rax, -16[rax]
	add	rax, rbp
	sub	rax, 416
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -480[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	text_make
	mov	rdx, rax
	mov	rax, QWORD PTR -480[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_symbol
	mov	QWORD PTR -448[rbp], rax
	mov	rax, QWORD PTR -448[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	rax, QWORD PTR -472[rbp]
	sal	rax, 4
	lea	rax, -16[rax]
	add	rax, rbp
	sub	rax, 408
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -480[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	function_make
	mov	rdx, rax
	mov	rax, QWORD PTR -480[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	mal_function
	mov	QWORD PTR -440[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	mov	rsi, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -480[rbp]
	mov	rcx, QWORD PTR -440[rbp]
	mov	rdx, QWORD PTR -448[rbp]
	mov	rdi, rax
	call	env_set
	add	QWORD PTR -472[rbp], 1
.L1427:
	mov	rax, QWORD PTR -472[rbp]
	sal	rax, 4
	lea	rax, -16[rax]
	add	rax, rbp
	sub	rax, 416
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L1428
	mov	rax, QWORD PTR -480[rbp]
	mov	rbx, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -480[rbp]
	lea	rsi, .LC171[rip]
	mov	rdi, rax
	call	lvm_read
	mov	rcx, rax
	mov	rax, QWORD PTR -480[rbp]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	lvm_eval
.L1432:
	mov	rax, QWORD PTR -480[rbp]
	lea	rsi, .LC172[rip]
	mov	rdi, rax
	call	readline
	mov	QWORD PTR -464[rbp], rax
	mov	QWORD PTR -456[rbp], 0
	cmp	QWORD PTR -464[rbp], 0
	jne	.L1429
	mov	edi, 10
	call	putchar@PLT
	nop
	lea	rax, -480[rbp]
	mov	rdi, rax
	call	lvm_free
	mov	eax, 0
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L1434
	jmp	.L1435
.L1429:
	mov	rax, QWORD PTR -480[rbp]
	mov	rdx, QWORD PTR -464[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	lvm_rep
	mov	QWORD PTR -456[rbp], rax
	mov	rax, QWORD PTR -456[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L1431
	mov	rax, QWORD PTR -456[rbp]
	mov	rdi, rax
	call	puts@PLT
.L1431:
	mov	rax, QWORD PTR -456[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	QWORD PTR -456[rbp], 0
	mov	rax, QWORD PTR -464[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -480[rbp]
	mov	rdi, rax
	call	lvm_gc
	jmp	.L1432
.L1435:
	call	__stack_chk_fail@PLT
.L1434:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE187:
	.size	main, .-main
	.section	.rodata
	.align 8
.LC27:
	.long	0
	.long	1076101120
	.align 8
.LC28:
	.long	-1717986918
	.long	1069128089
	.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	"360874.c"
	.section	.rodata
	.align	2
.LC0:
	.ascii	"+\000"
	.align	2
.LC1:
	.ascii	"-\000"
	.align	2
.LC2:
	.ascii	"*\000"
	.align	2
.LC3:
	.ascii	"/\000"
	.align	2
.LC4:
	.ascii	"=\000"
	.align	2
.LC5:
	.ascii	"<\000"
	.align	2
.LC6:
	.ascii	"<=\000"
	.align	2
.LC7:
	.ascii	">\000"
	.align	2
.LC8:
	.ascii	">=\000"
	.align	2
.LC9:
	.ascii	"list\000"
	.align	2
.LC10:
	.ascii	"vector\000"
	.align	2
.LC11:
	.ascii	"hashmap\000"
	.align	2
.LC12:
	.ascii	"zip\000"
	.align	2
.LC13:
	.ascii	"list?\000"
	.align	2
.LC14:
	.ascii	"vector?\000"
	.align	2
.LC15:
	.ascii	"hashmap?\000"
	.align	2
.LC16:
	.ascii	"env?\000"
	.align	2
.LC17:
	.ascii	"empty?\000"
	.align	2
.LC18:
	.ascii	"count\000"
	.align	2
.LC19:
	.ascii	"pr-str\000"
	.align	2
.LC20:
	.ascii	"str\000"
	.align	2
.LC21:
	.ascii	"prn\000"
	.align	2
.LC22:
	.ascii	"println\000"
	.align	2
.LC23:
	.ascii	"type\000"
	.text
	.align	2
	.global	text_make
	.syntax unified
	.arm
	.fpu softvfp
	.type	text_make, %function
text_make:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r0, [fp, #-20]
	bl	strlen
	str	r0, [fp, #-12]
	mov	r1, #24
	mov	r0, #1
	bl	calloc
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-12]
	and	r3, r3, #31
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-12]
	lsr	r3, r3, #5
	add	r3, r2, r3
	lsl	r2, r3, #5
	ldr	r3, [fp, #-8]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #20]
	add	r3, r3, #1
	mov	r1, #1
	mov	r0, r3
	bl	calloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-12]
	ldr	r1, [fp, #-20]
	mov	r0, r3
	bl	strncpy
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	add	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	text_make, .-text_make
	.align	2
	.global	text_append
	.syntax unified
	.arm
	.fpu softvfp
	.type	text_append, %function
text_append:
	@ 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, #-8]
	str	r1, [fp, #-12]
	mov	r3, r2
	strb	r3, [fp, #-13]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #16]
	add	r2, r3, #1
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #20]
	cmp	r2, r3
	bcc	.L4
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #20]
	add	r2, r3, #32
	ldr	r3, [fp, #-12]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #20]
	add	r3, r3, #1
	mov	r1, r3
	mov	r0, r2
	bl	realloc
	mov	r2, r0
	ldr	r3, [fp, #-12]
	str	r2, [r3, #12]
.L4:
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #16]
	add	r3, r2, r3
	ldrb	r2, [fp, #-13]
	strb	r2, [r3]
	ldrb	r3, [fp, #-13]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L5
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #16]
	add	r1, r3, #1
	ldr	r3, [fp, #-12]
	str	r1, [r3, #16]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #16]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
.L5:
	ldr	r3, [fp, #-12]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	text_append, .-text_append
	.align	2
	.global	text_concat
	.syntax unified
	.arm
	.fpu softvfp
	.type	text_concat, %function
text_concat:
	@ 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]
	ldr	r0, [fp, #-24]
	bl	strlen
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	add	r2, r3, #1
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #20]
	cmp	r2, r3
	bcc	.L8
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	and	r3, r3, #31
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	lsr	r3, r3, #5
	add	r3, r1, r3
	lsl	r2, r3, #5
	ldr	r3, [fp, #-20]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #20]
	add	r3, r3, #1
	mov	r1, r3
	mov	r0, r2
	bl	realloc
	mov	r2, r0
	ldr	r3, [fp, #-20]
	str	r2, [r3, #12]
.L8:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L9
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	add	r3, r2, r3
	ldr	r2, [fp, #-8]
	ldr	r1, [fp, #-24]
	mov	r0, r3
	bl	strncpy
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	add	r2, r2, r3
	ldr	r3, [fp, #-20]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
.L9:
	ldr	r3, [fp, #-20]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	text_concat, .-text_concat
	.align	2
	.global	text_concat_text
	.syntax unified
	.arm
	.fpu softvfp
	.type	text_concat_text, %function
text_concat_text:
	@ 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]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	add	r2, r3, #1
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #20]
	cmp	r2, r3
	bcc	.L12
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	and	r3, r3, #31
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	lsr	r3, r3, #5
	add	r3, r1, r3
	lsl	r2, r3, #5
	ldr	r3, [fp, #-20]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #20]
	add	r3, r3, #1
	mov	r1, r3
	mov	r0, r2
	bl	realloc
	mov	r2, r0
	ldr	r3, [fp, #-20]
	str	r2, [r3, #12]
.L12:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L13
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	add	r0, r2, r3
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-8]
	mov	r1, r3
	bl	strncpy
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	add	r2, r2, r3
	ldr	r3, [fp, #-20]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
.L13:
	ldr	r3, [fp, #-20]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	text_concat_text, .-text_concat_text
	.section	.rodata
	.align	2
.LC25:
	.ascii	"\000"
	.text
	.align	2
	.global	text_offset
	.syntax unified
	.arm
	.fpu softvfp
	.type	text_offset, %function
text_offset:
	@ 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]
	ldr	r1, .L19
	ldr	r0, [fp, #-16]
	bl	text_make
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-12]
	b	.L16
.L17:
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L16:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bcc	.L17
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L20:
	.align	2
.L19:
	.word	.LC25
	.size	text_offset, .-text_offset
	.align	2
	.global	text_escape
	.syntax unified
	.arm
	.fpu softvfp
	.type	text_escape, %function
text_escape:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r1, .L34
	ldr	r0, [fp, #-16]
	bl	text_make
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-12]
	mov	r2, #34
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	b	.L22
.L32:
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #34
	bgt	.L23
	cmp	r3, #9
	blt	.L24
	sub	r3, r3, #9
	cmp	r3, #25
	ldrls	pc, [pc, r3, asl #2]
	b	.L24
.L26:
	.word	.L29
	.word	.L28
	.word	.L24
	.word	.L24
	.word	.L27
	.word	.L24
	.word	.L24
	.word	.L24
	.word	.L24
	.word	.L24
	.word	.L24
	.word	.L24
	.word	.L24
	.word	.L24
	.word	.L24
	.word	.L24
	.word	.L24
	.word	.L24
	.word	.L24
	.word	.L24
	.word	.L24
	.word	.L24
	.word	.L24
	.word	.L24
	.word	.L24
	.word	.L25
.L23:
	cmp	r3, #92
	beq	.L30
	b	.L24
.L29:
	mov	r2, #92
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	mov	r2, #116
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	b	.L31
.L28:
	mov	r2, #92
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	mov	r2, #110
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	b	.L31
.L27:
	mov	r2, #92
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	mov	r2, #114
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	b	.L31
.L25:
	mov	r2, #92
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	mov	r2, #34
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	b	.L31
.L30:
	mov	r2, #92
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	mov	r2, #92
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	b	.L31
.L24:
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	nop
.L31:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L22:
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L32
	mov	r2, #34
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L35:
	.align	2
.L34:
	.word	.LC25
	.size	text_escape, .-text_escape
	.align	2
	.global	text_unescape
	.syntax unified
	.arm
	.fpu softvfp
	.type	text_unescape, %function
text_unescape:
	@ 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]
	str	r1, [fp, #-28]
	ldr	r1, .L50
	ldr	r0, [fp, #-24]
	bl	text_make
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-8]
	mov	r3, #1
	str	r3, [fp, #-16]
	b	.L37
.L48:
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #92
	bne	.L38
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #34
	beq	.L39
	cmp	r3, #34
	blt	.L40
	cmp	r3, #116
	bgt	.L40
	cmp	r3, #92
	blt	.L40
	sub	r3, r3, #92
	cmp	r3, #24
	ldrls	pc, [pc, r3, asl #2]
	b	.L40
.L42:
	.word	.L45
	.word	.L40
	.word	.L40
	.word	.L40
	.word	.L40
	.word	.L40
	.word	.L40
	.word	.L40
	.word	.L40
	.word	.L40
	.word	.L40
	.word	.L40
	.word	.L40
	.word	.L40
	.word	.L40
	.word	.L40
	.word	.L40
	.word	.L40
	.word	.L44
	.word	.L40
	.word	.L40
	.word	.L40
	.word	.L43
	.word	.L40
	.word	.L41
.L39:
	mov	r2, #34
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	text_append
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	b	.L47
.L45:
	mov	r2, #92
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	text_append
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	b	.L47
.L44:
	mov	r2, #10
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	text_append
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	b	.L47
.L43:
	mov	r2, #13
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	text_append
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	b	.L47
.L41:
	mov	r2, #9
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	text_append
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	b	.L47
.L40:
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	text_append
	b	.L47
.L38:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	beq	.L47
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #34
	beq	.L47
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	text_append
.L47:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L37:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bcc	.L48
	ldr	r3, [fp, #-12]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L51:
	.align	2
.L50:
	.word	.LC25
	.size	text_unescape, .-text_unescape
	.align	2
	.global	text_make_integer
	.syntax unified
	.arm
	.fpu softvfp
	.type	text_make_integer, %function
text_make_integer:
	@ 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]
	str	r1, [fp, #-28]
	ldr	r1, .L60
	ldr	r0, [fp, #-24]
	bl	text_make
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bne	.L53
	mov	r2, #48
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	text_append
	b	.L54
.L53:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-12]
	mov	r2, #0
	str	r2, [r3, #16]
	b	.L55
.L56:
	ldr	r1, [fp, #-28]
	ldr	r3, .L60+4
	smull	r2, r3, r1, r3
	asr	r2, r3, #2
	asr	r3, r1, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	sub	r2, r1, r3
	and	r3, r2, #255
	add	r3, r3, #48
	and	r3, r3, #255
	mov	r2, r3
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	text_append
	ldr	r3, [fp, #-28]
	ldr	r2, .L60+4
	smull	r1, r2, r3, r2
	asr	r2, r2, #2
	asr	r3, r3, #31
	sub	r3, r2, r3
	str	r3, [fp, #-28]
.L55:
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bne	.L56
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	str	r3, [fp, #-16]
	b	.L57
.L58:
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	add	r2, r2, r3
	ldr	r3, [fp, #-12]
	ldr	r1, [r3, #12]
	ldr	r3, [fp, #-20]
	add	r0, r3, #1
	str	r0, [fp, #-20]
	add	r3, r1, r3
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	sub	r1, r3, #1
	str	r1, [fp, #-16]
	add	r3, r2, r3
	ldr	r2, [fp, #-8]
	and	r2, r2, #255
	strb	r2, [r3]
.L57:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	bcc	.L58
.L54:
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #16]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L61:
	.align	2
.L60:
	.word	.LC25
	.word	1717986919
	.size	text_make_integer, .-text_make_integer
	.global	__aeabi_d2iz
	.global	__aeabi_i2d
	.global	__aeabi_dsub
	.global	__aeabi_dcmpeq
	.global	__aeabi_dmul
	.global	__aeabi_dcmpgt
	.align	2
	.global	text_make_decimal
	.syntax unified
	.arm
	.fpu softvfp
	.type	text_make_decimal, %function
text_make_decimal:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-40]
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	ldr	r1, .L89
	ldr	r0, [fp, #-40]
	bl	text_make
	str	r0, [fp, #-20]
	sub	r1, fp, #52
	ldmia	r1, {r0-r1}
	bl	__aeabi_d2iz
	mov	r3, r0
	str	r3, [fp, #-36]
	ldr	r0, [fp, #-36]
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #52
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-12]
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	bne	.L63
	mov	r2, #48
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	text_append
	b	.L64
.L63:
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	bge	.L65
	mov	r2, #45
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	text_append
	ldr	r3, [fp, #-36]
	rsb	r3, r3, #0
	str	r3, [fp, #-36]
.L65:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-28]
	b	.L66
.L68:
	ldr	r1, [fp, #-36]
	ldr	r3, .L89+4
	smull	r2, r3, r1, r3
	asr	r2, r3, #2
	asr	r3, r1, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	sub	r2, r1, r3
	and	r3, r2, #255
	add	r3, r3, #48
	and	r3, r3, #255
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	text_append
	ldr	r3, [fp, #-36]
	ldr	r2, .L89+4
	smull	r1, r2, r3, r2
	asr	r2, r2, #2
	asr	r3, r3, #31
	sub	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L66:
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L69
	ldr	r3, [fp, #-32]
	cmp	r3, #15
	ble	.L68
	b	.L69
.L71:
	mov	r2, #48
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	text_append
	ldr	r3, [fp, #-36]
	ldr	r2, .L89+4
	smull	r1, r2, r3, r2
	asr	r2, r2, #2
	asr	r3, r3, #31
	sub	r3, r2, r3
	str	r3, [fp, #-36]
.L69:
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L70
	ldr	r3, [fp, #-32]
	cmp	r3, #15
	bgt	.L71
.L70:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	str	r3, [fp, #-24]
	b	.L72
.L73:
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-24]
	add	r2, r2, r3
	ldr	r3, [fp, #-20]
	ldr	r1, [r3, #12]
	ldr	r3, [fp, #-28]
	add	r0, r3, #1
	str	r0, [fp, #-28]
	add	r3, r1, r3
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-24]
	sub	r1, r3, #1
	str	r1, [fp, #-24]
	add	r3, r2, r3
	ldr	r2, [fp, #-16]
	and	r2, r2, #255
	strb	r2, [r3]
.L72:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	blt	.L73
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
.L64:
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #12
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpeq
	mov	r3, r0
	cmp	r3, #0
	beq	.L88
	mov	r2, #46
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	text_append
	mov	r2, #48
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	text_append
	b	.L76
.L88:
	mov	r2, #46
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	text_append
	mov	r2, #0
	ldr	r3, .L89+8
	sub	r1, fp, #12
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-12]
	str	r3, [fp, #-8]
	sub	r1, fp, #12
	ldmia	r1, {r0-r1}
	bl	__aeabi_d2iz
	mov	r3, r0
	str	r3, [fp, #-36]
	b	.L77
.L80:
	ldr	r1, [fp, #-36]
	ldr	r3, .L89+4
	smull	r2, r3, r1, r3
	asr	r2, r3, #2
	asr	r3, r1, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	sub	r2, r1, r3
	and	r3, r2, #255
	add	r3, r3, #48
	and	r3, r3, #255
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	text_append
	mov	r2, #0
	ldr	r3, .L89+8
	sub	r1, fp, #12
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-12]
	str	r3, [fp, #-8]
	sub	r1, fp, #12
	ldmia	r1, {r0-r1}
	bl	__aeabi_d2iz
	mov	r3, r0
	str	r3, [fp, #-36]
	ldr	r0, [fp, #-36]
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #12
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L77:
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #12
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L78
	ldr	r3, [fp, #-32]
	cmp	r3, #15
	ble	.L80
.L78:
	b	.L81
.L83:
	mov	r2, #0
	ldr	r3, .L89+8
	sub	r1, fp, #12
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-12]
	str	r3, [fp, #-8]
	sub	r1, fp, #12
	ldmia	r1, {r0-r1}
	bl	__aeabi_d2iz
	mov	r3, r0
	str	r3, [fp, #-36]
	ldr	r0, [fp, #-36]
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #12
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-12]
	str	r3, [fp, #-8]
.L81:
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #12
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L76
	ldr	r3, [fp, #-32]
	add	r2, r3, #1
	str	r2, [fp, #-32]
	cmp	r3, #15
	bgt	.L83
.L76:
	ldr	r3, [fp, #-20]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L90:
	.align	2
.L89:
	.word	.LC25
	.word	1717986919
	.word	1076101120
	.size	text_make_decimal, .-text_make_decimal
	.align	2
	.global	text_to_integer
	.syntax unified
	.arm
	.fpu softvfp
	.type	text_to_integer, %function
text_to_integer:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #28
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L92
.L95:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-13]
	ldrb	r3, [fp, #-13]	@ zero_extendqisi2
	cmp	r3, #47
	bls	.L93
	ldrb	r3, [fp, #-13]	@ zero_extendqisi2
	cmp	r3, #57
	bhi	.L93
	ldr	r2, [fp, #-12]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	mov	r2, r3
	ldrb	r3, [fp, #-13]	@ zero_extendqisi2
	sub	r3, r3, #48
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
	b	.L92
.L93:
	ldr	r3, [fp, #-12]
	b	.L94
.L92:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	bcc	.L95
	ldr	r3, [fp, #-12]
.L94:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	text_to_integer, .-text_to_integer
	.global	__aeabi_dadd
	.align	2
	.global	text_to_decimal
	.syntax unified
	.arm
	.fpu softvfp
	.type	text_to_decimal, %function
text_to_decimal:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #40
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-32]
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L97
.L101:
	ldr	r3, [fp, #-52]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-37]
	ldrb	r3, [fp, #-37]	@ zero_extendqisi2
	cmp	r3, #47
	bls	.L98
	ldrb	r3, [fp, #-37]	@ zero_extendqisi2
	cmp	r3, #57
	bhi	.L98
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	bne	.L98
	mov	r2, #0
	ldr	r3, .L103
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldrb	r3, [fp, #-37]	@ zero_extendqisi2
	sub	r3, r3, #48
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	b	.L99
.L98:
	ldrb	r3, [fp, #-37]	@ zero_extendqisi2
	cmp	r3, #47
	bls	.L100
	ldrb	r3, [fp, #-37]	@ zero_extendqisi2
	cmp	r3, #57
	bhi	.L100
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L100
	ldr	r0, [fp, #-36]
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	ldr	r0, .L103+4
	ldr	r1, .L103+8
	bl	pow
	str	r0, [fp, #-20]
	str	r1, [fp, #-16]
	ldrb	r3, [fp, #-37]	@ zero_extendqisi2
	sub	r3, r3, #48
	mov	r0, r3
	bl	__aeabi_i2d
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
	b	.L99
.L100:
	ldrb	r3, [fp, #-37]	@ zero_extendqisi2
	cmp	r3, #46
	bne	.L99
	mov	r3, #1
	str	r3, [fp, #-36]
.L99:
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L97:
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	bcc	.L101
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L104:
	.align	2
.L103:
	.word	1076101120
	.word	-1717986918
	.word	1069128089
	.size	text_to_decimal, .-text_to_decimal
	.align	2
	.global	text_cmp
	.syntax unified
	.arm
	.fpu softvfp
	.type	text_cmp, %function
text_cmp:
	@ 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]
	ldr	r0, [fp, #-24]
	bl	strlen
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	movcs	r3, r2
	movcc	r3, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-8]
	ldr	r1, [fp, #-24]
	mov	r0, r3
	bl	strncmp
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	text_cmp, .-text_cmp
	.align	2
	.global	text_cmp_text
	.syntax unified
	.arm
	.fpu softvfp
	.type	text_cmp_text, %function
text_cmp_text:
	@ 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]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	cmp	r2, r3
	movcs	r3, r2
	movcc	r3, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-20]
	ldr	r0, [r3, #12]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-8]
	mov	r1, r3
	bl	strncmp
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	text_cmp_text, .-text_cmp_text
	.align	2
	.global	text_hash_fnv_1a
	.syntax unified
	.arm
	.fpu softvfp
	.type	text_hash_fnv_1a, %function
text_hash_fnv_1a:
	@ 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]
	str	r1, [fp, #-20]
	ldr	r3, .L113
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L110
.L111:
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-12]
	eor	r3, r3, r2
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-12]
	mov	r3, r2
	lsl	r3, r3, #16
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L110:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	bcc	.L111
	ldr	r3, [fp, #-12]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L114:
	.align	2
.L113:
	.word	-2128831035
	.size	text_hash_fnv_1a, .-text_hash_fnv_1a
	.align	2
	.global	text_hash_jenkins
	.syntax unified
	.arm
	.fpu softvfp
	.type	text_hash_jenkins, %function
text_hash_jenkins:
	@ 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]
	str	r1, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-8]
	b	.L116
.L117:
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-12]
	add	r3, r3, r2
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #10
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	lsr	r3, r3, #6
	ldr	r2, [fp, #-12]
	eor	r3, r3, r2
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L116:
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L117
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	lsr	r3, r3, #11
	ldr	r2, [fp, #-12]
	eor	r3, r3, r2
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #15
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	text_hash_jenkins, .-text_hash_jenkins
	.section	.rodata
	.align	2
.LC26:
	.ascii	"L:\000"
	.align	2
.LC27:
	.ascii	" C:\000"
	.text
	.align	2
	.global	text_display_position
	.syntax unified
	.arm
	.fpu softvfp
	.type	text_display_position, %function
text_display_position:
	@ 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
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r1, .L121
	ldr	r0, [fp, #-16]
	bl	text_make
	mov	r4, r0
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #24]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	text_make_integer
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	mov	r4, r0
	ldr	r1, .L121+4
	ldr	r0, [fp, #-16]
	bl	text_make
	mov	r5, r0
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #28]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	text_make_integer
	mov	r3, r0
	mov	r2, r3
	mov	r1, r5
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	mov	r3, r0
	mov	r2, #32
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	text_append
	mov	r5, r0
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-16]
	bl	text_make
	mov	r3, r0
	mov	r2, r3
	mov	r1, r5
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	mov	r3, r0
	mov	r2, #10
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	text_append
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L122:
	.align	2
.L121:
	.word	.LC26
	.word	.LC27
	.size	text_display_position, .-text_display_position
	.align	2
	.global	text_str
	.syntax unified
	.arm
	.fpu softvfp
	.type	text_str, %function
text_str:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #12]
	mov	r0, r3
	bl	strdup
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	text_str, .-text_str
	.align	2
	.global	text_get
	.syntax unified
	.arm
	.fpu softvfp
	.type	text_get, %function
text_get:
	@ 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, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bcs	.L126
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	b	.L127
.L126:
	mov	r3, #0
.L127:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	text_get, .-text_get
	.align	2
	.global	text_free
	.syntax unified
	.arm
	.fpu softvfp
	.type	text_free, %function
text_free:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #12]
	mov	r0, r3
	bl	free
	ldr	r0, [fp, #-12]
	bl	free
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	text_free, .-text_free
	.align	2
	.global	error_make
	.syntax unified
	.arm
	.fpu softvfp
	.type	error_make, %function
error_make:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #12
	str	r0, [fp, #-16]
	mov	r1, #28
	mov	r0, #1
	bl	calloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #32]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	mov	r2, #0
	str	r2, [r3, #20]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	mov	r2, #32
	str	r2, [r3, #24]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-16]
	ldr	r4, [r3, #32]
	mov	r1, #4
	mov	r0, r2
	bl	calloc
	mov	r3, r0
	str	r3, [r4, #12]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-16]
	ldr	r4, [r3, #32]
	mov	r1, #4
	mov	r0, r2
	bl	calloc
	mov	r3, r0
	str	r3, [r4, #16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	mov	r2, #10
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	ldr	r2, [fp, #-16]
	ldr	r2, [r2]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #32]
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	add	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	mov	r3, #1
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	error_make, .-error_make
	.align	2
	.global	error_append
	.syntax unified
	.arm
	.fpu softvfp
	.type	error_append, %function
error_append:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	cmp	r3, #0
	bne	.L132
	mov	r1, #28
	mov	r0, #1
	bl	calloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #32]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	mov	r2, #0
	str	r2, [r3, #20]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	mov	r2, #0
	str	r2, [r3, #24]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	mov	r2, #10
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	ldr	r2, [fp, #-16]
	ldr	r2, [r2]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #32]
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	add	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
.L132:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	ldr	r3, [r3, #20]
	add	r2, r3, #1
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	ldr	r3, [r3, #24]
	cmp	r2, r3
	bcc	.L133
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	add	r2, r2, #32
	str	r2, [r3, #24]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	ldr	r3, [r3, #24]
	lsl	r1, r3, #2
	ldr	r3, [fp, #-16]
	ldr	r4, [r3, #32]
	mov	r0, r2
	bl	realloc
	mov	r3, r0
	str	r3, [r4, #12]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	ldr	r3, [r3, #24]
	lsl	r1, r3, #2
	ldr	r3, [fp, #-16]
	ldr	r4, [r3, #32]
	mov	r0, r2
	bl	realloc
	mov	r3, r0
	str	r3, [r4, #16]
.L133:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	ldr	r3, [r3, #20]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	ldr	r1, [r3, #12]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #32]
	ldr	r3, [r2, #20]
	add	r0, r3, #1
	str	r0, [r2, #20]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r2, [fp, #-24]
	str	r2, [r3]
	ldr	r3, [fp, #-24]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	error_append, .-error_append
	.section	.rodata
	.align	2
.LC28:
	.ascii	"([ERROR]\012\000"
	.align	2
.LC29:
	.ascii	"  [OK] \000"
	.align	2
.LC30:
	.ascii	"  [READER] \000"
	.align	2
.LC31:
	.ascii	"  [RUNTIME] \000"
	.align	2
.LC32:
	.ascii	"  [PRINTER] \000"
	.align	2
.LC33:
	.ascii	"  [UNKNOWN] \000"
	.align	2
.LC34:
	.ascii	")\012\000"
	.text
	.align	2
	.global	error_collapse
	.syntax unified
	.arm
	.fpu softvfp
	.type	error_collapse, %function
error_collapse:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r1, .L147
	ldr	r0, [fp, #-16]
	bl	text_make
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	cmp	r3, #0
	beq	.L136
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L137
.L145:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #3
	ldrls	pc, [pc, r3, asl #2]
	b	.L138
.L140:
	.word	.L143
	.word	.L142
	.word	.L141
	.word	.L139
.L143:
	ldr	r2, .L147+4
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat
	b	.L144
.L142:
	ldr	r2, .L147+8
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat
	b	.L144
.L141:
	ldr	r2, .L147+12
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat
	b	.L144
.L139:
	ldr	r2, .L147+16
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat
	b	.L144
.L138:
	ldr	r2, .L147+20
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat
.L144:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L137:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bcc	.L145
.L136:
	ldr	r2, .L147+24
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L148:
	.align	2
.L147:
	.word	.LC28
	.word	.LC29
	.word	.LC30
	.word	.LC31
	.word	.LC32
	.word	.LC33
	.word	.LC34
	.size	error_collapse, .-error_collapse
	.align	2
	.global	error_empty
	.syntax unified
	.arm
	.fpu softvfp
	.type	error_empty, %function
error_empty:
	@ 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, [fp, #-8]
	ldr	r3, [r3, #32]
	cmp	r3, #0
	bne	.L150
	mov	r3, #1
	b	.L151
.L150:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #32]
	ldr	r3, [r3, #20]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
.L151:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	error_empty, .-error_empty
	.align	2
	.global	error_free
	.syntax unified
	.arm
	.fpu softvfp
	.type	error_free, %function
error_free:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #12]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #16]
	mov	r0, r3
	bl	free
	ldr	r0, [fp, #-12]
	bl	free
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	error_free, .-error_free
	.align	2
	.global	comment_make
	.syntax unified
	.arm
	.fpu softvfp
	.type	comment_make, %function
comment_make:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #12
	str	r0, [fp, #-16]
	mov	r1, #24
	mov	r0, #1
	bl	calloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #36]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #36]
	mov	r2, #0
	str	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #36]
	mov	r2, #32
	str	r2, [r3, #20]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #36]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #36]
	ldr	r3, [r3, #20]
	lsl	r1, r3, #2
	ldr	r3, [fp, #-16]
	ldr	r4, [r3, #36]
	mov	r0, r2
	bl	realloc
	mov	r3, r0
	str	r3, [r4, #12]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #36]
	mov	r2, #7
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #36]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #36]
	ldr	r2, [fp, #-16]
	ldr	r2, [r2]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	add	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	mov	r3, #1
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	comment_make, .-comment_make
	.align	2
	.global	comment_append
	.syntax unified
	.arm
	.fpu softvfp
	.type	comment_append, %function
comment_append:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #12
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #36]
	cmp	r3, #0
	bne	.L156
	mov	r1, #24
	mov	r0, #1
	bl	calloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #36]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #36]
	mov	r2, #0
	str	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #36]
	mov	r2, #0
	str	r2, [r3, #20]
.L156:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #36]
	ldr	r3, [r3, #16]
	add	r2, r3, #1
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #36]
	ldr	r3, [r3, #20]
	cmp	r2, r3
	bcc	.L157
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #36]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #36]
	add	r2, r2, #32
	str	r2, [r3, #20]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #36]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #36]
	ldr	r3, [r3, #20]
	lsl	r1, r3, #2
	ldr	r3, [fp, #-16]
	ldr	r4, [r3, #36]
	mov	r0, r2
	bl	realloc
	mov	r3, r0
	str	r3, [r4, #12]
.L157:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #36]
	ldr	r1, [r3, #12]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #36]
	ldr	r3, [r2, #16]
	add	r0, r3, #1
	str	r0, [r2, #16]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #36]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #36]
	ldr	r3, [r3, #16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-20]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	comment_append, .-comment_append
	.section	.rodata
	.align	2
.LC35:
	.ascii	"([comment]\012\000"
	.text
	.align	2
	.global	comment_collapse
	.syntax unified
	.arm
	.fpu softvfp
	.type	comment_collapse, %function
comment_collapse:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r1, .L164
	ldr	r0, [fp, #-16]
	bl	text_make
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #36]
	cmp	r3, #0
	beq	.L160
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L161
.L162:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #36]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L161:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #36]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bcc	.L162
.L160:
	ldr	r2, .L164+4
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L165:
	.align	2
.L164:
	.word	.LC35
	.word	.LC34
	.size	comment_collapse, .-comment_collapse
	.align	2
	.global	comment_free
	.syntax unified
	.arm
	.fpu softvfp
	.type	comment_free, %function
comment_free:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #12]
	mov	r0, r3
	bl	free
	ldr	r0, [fp, #-12]
	bl	free
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	comment_free, .-comment_free
	.align	2
	.global	function_make
	.syntax unified
	.arm
	.fpu softvfp
	.type	function_make, %function
function_make:
	@ 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]
	mov	r1, #20
	mov	r0, #1
	bl	calloc
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-20]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-24]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	mov	r2, #8
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	add	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	function_make, .-function_make
	.align	2
	.global	function_free
	.syntax unified
	.arm
	.fpu softvfp
	.type	function_free, %function
function_free:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r0, [fp, #-12]
	bl	free
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	function_free, .-function_free
	.align	2
	.global	closure_make
	.syntax unified
	.arm
	.fpu softvfp
	.type	closure_make, %function
closure_make:
	@ 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]
	mov	r1, #28
	mov	r0, #1
	bl	calloc
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-20]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-24]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-28]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #4]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-8]
	mov	r2, #9
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	add	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	closure_make, .-closure_make
	.section	.rodata
	.align	2
.LC36:
	.ascii	"(fn* \000"
	.text
	.align	2
	.global	closure_text
	.syntax unified
	.arm
	.fpu softvfp
	.type	closure_text, %function
closure_text:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r1, .L174
	ldr	r0, [fp, #-16]
	bl	text_make
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r1, [r3, #16]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #20]
	mov	r2, r3
	ldr	r0, [fp, #-16]
	bl	list_more_text
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	mov	r2, #32
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #24]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	mov	r2, #41
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L175:
	.align	2
.L174:
	.word	.LC36
	.size	closure_text, .-closure_text
	.section	.rodata
	.align	2
.LC37:
	.ascii	"nil: nil\000"
	.align	2
.LC38:
	.ascii	"'fn*': non-symbol in argument list '\000"
	.align	2
.LC39:
	.ascii	"'\012\000"
	.align	2
.LC40:
	.ascii	"'fn*': missing symbol after '&' in argument list\012"
	.ascii	"\000"
	.align	2
.LC41:
	.ascii	"'fn*': more symbol is duplicate symbol in argument "
	.ascii	"list '\000"
	.align	2
.LC42:
	.ascii	"'fn*': unexpected symbol after'& \000"
	.align	2
.LC43:
	.ascii	"' symbol in argument list: '\000"
	.align	2
.LC44:
	.ascii	"'fn*': unexpected symbol after '\000"
	.align	2
.LC45:
	.ascii	"'fn*': duplicate symbol in argument list '\000"
	.align	2
.LC46:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	closure_parameters
	.syntax unified
	.arm
	.fpu softvfp
	.type	closure_parameters, %function
closure_parameters:
	@ 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, #-40]
	str	r1, [fp, #-44]
	str	r2, [fp, #-48]
	ldr	r3, .L200
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_list
	mov	r3, r0
	cmp	r3, #0
	beq	.L177
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	b	.L178
.L177:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_vector
	mov	r3, r0
	cmp	r3, #0
	beq	.L179
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	vector_list
	mov	r3, r0
	b	.L178
.L179:
	mov	r1, #0
	ldr	r0, [fp, #-40]
	bl	list_make
	mov	r3, r0
.L178:
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	list_make
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-40]
	ldr	r4, [r3, #28]
	ldr	r1, .L200+4
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #36
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	env_get_by_text
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-48]
	str	r2, [r3]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_vector
	mov	r3, r0
	cmp	r3, #0
	beq	.L181
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	vector_list
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	mal_list
	mov	r2, r0
	ldr	r3, [fp, #-44]
	str	r2, [r3]
.L181:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_list
	mov	r3, r0
	cmp	r3, #0
	bne	.L182
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_symbol
	mov	r3, r0
	cmp	r3, #0
	beq	.L182
	mov	r1, #1
	ldr	r0, [fp, #-40]
	bl	list_make
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	list_append
	ldr	r3, [fp, #-36]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	list_append
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	mal_list
	mov	r2, r0
	ldr	r3, [fp, #-44]
	str	r2, [r3]
	ldr	r3, [fp, #-36]
	b	.L198
.L182:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_list
	mov	r3, r0
	cmp	r3, #0
	bne	.L184
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_symbol
	mov	r3, r0
	cmp	r3, #0
	bne	.L184
	ldr	r1, .L200+8
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r4, r0
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	text_concat_text
	mov	r3, r0
	ldr	r2, .L200+12
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	text_concat
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L198
.L184:
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L185
.L197:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r0, [fp, #-20]
	bl	is_symbol
	mov	r3, r0
	cmp	r3, #0
	bne	.L186
	ldr	r1, .L200+8
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r4, r0
	mov	r2, #0
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	text_concat_text
	mov	r3, r0
	ldr	r2, .L200+12
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	text_concat
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L198
.L186:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #38
	bne	.L187
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L188
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	beq	.L189
	ldr	r1, .L200+16
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L198
.L189:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_symbol
	mov	r3, r0
	cmp	r3, #0
	beq	.L190
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	add	r3, r3, #2
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	beq	.L190
	ldr	r3, [fp, #-32]
	add	r2, r3, #3
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	cmp	r2, r3
	bne	.L190
	ldr	r2, [fp, #-20]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	list_find
	mov	r3, r0
	cmp	r3, #0
	beq	.L191
	ldr	r1, .L200+20
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r4, r0
	mov	r2, #0
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	text_concat_text
	mov	r3, r0
	ldr	r2, .L200+12
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	text_concat
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L198
.L191:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-48]
	str	r2, [r3]
	b	.L192
.L190:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_symbol
	mov	r3, r0
	cmp	r3, #0
	beq	.L195
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	add	r3, r3, #2
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L195
	ldr	r1, .L200+24
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r4, r0
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	text_concat_text
	mov	r3, r0
	ldr	r2, .L200+28
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	text_concat
	mov	r4, r0
	mov	r2, #0
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	text_concat_text
	mov	r3, r0
	ldr	r2, .L200+12
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	text_concat
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L198
.L188:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	beq	.L194
	ldr	r3, [fp, #-32]
	add	r2, r3, #2
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	cmp	r2, r3
	bne	.L194
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	mov	r2, #1
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	text_offset
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	mal_symbol
	mov	r2, r0
	ldr	r3, [fp, #-48]
	str	r2, [r3]
	b	.L195
.L194:
	ldr	r1, .L200+32
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r4, r0
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	text_concat_text
	mov	r3, r0
	ldr	r2, .L200+28
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	text_concat
	mov	r4, r0
	mov	r2, #0
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	text_concat_text
	mov	r3, r0
	ldr	r2, .L200+12
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	text_concat
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L198
.L187:
	ldr	r2, [fp, #-20]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	list_find
	mov	r3, r0
	cmp	r3, #0
	beq	.L196
	ldr	r1, .L200+36
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r4, r0
	mov	r2, #0
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	text_concat_text
	mov	r3, r0
	ldr	r2, .L200+12
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	text_concat
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L198
.L196:
	ldr	r2, [fp, #-20]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	list_append
.L195:
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L185:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	bcc	.L197
.L192:
	ldr	r3, [fp, #-36]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	list_append
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	mal_list
	mov	r2, r0
	ldr	r3, [fp, #-44]
	str	r2, [r3]
	ldr	r3, [fp, #-36]
.L198:
	ldr	r2, .L200
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L199
	bl	__stack_chk_fail
.L199:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L201:
	.align	2
.L200:
	.word	.LC46
	.word	.LC37
	.word	.LC38
	.word	.LC39
	.word	.LC40
	.word	.LC41
	.word	.LC42
	.word	.LC43
	.word	.LC44
	.word	.LC45
	.size	closure_parameters, .-closure_parameters
	.align	2
	.global	closure_free
	.syntax unified
	.arm
	.fpu softvfp
	.type	closure_free, %function
closure_free:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r0, [fp, #-12]
	bl	free
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	closure_free, .-closure_free
	.align	2
	.global	list_make
	.syntax unified
	.arm
	.fpu softvfp
	.type	list_make, %function
list_make:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	mov	r1, #24
	mov	r0, #1
	bl	calloc
	mov	r3, r0
	str	r3, [fp, #-8]
	mov	r3, #2
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L205
	mov	r3, #2
	str	r3, [fp, #-20]
	b	.L205
.L206:
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #1
	str	r3, [fp, #-12]
.L205:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	bcc	.L206
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #20]
	mov	r1, #4
	ldr	r0, [fp, #-12]
	bl	calloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	mov	r2, #2
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	add	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	list_make, .-list_make
	.section	.rodata
	.align	2
.LC47:
	.ascii	"not enough memory\000"
	.text
	.align	2
	.global	list_append
	.syntax unified
	.arm
	.fpu softvfp
	.type	list_append, %function
list_append:
	@ 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]
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #20]
	cmp	r2, r3
	bcc	.L209
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #20]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-20]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #20]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	realloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L210
	ldr	r0, [fp, #-16]
	bl	reader_peek
	mov	r3, r0
	ldr	r2, .L212
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	text_display_position
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-16]
	bl	error_append
	mov	r3, #0
	b	.L211
.L210:
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #12]
.L209:
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	add	r0, r3, #1
	ldr	r1, [fp, #-20]
	str	r0, [r1, #16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-24]
	str	r2, [r3]
	mov	r3, #1
.L211:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L213:
	.align	2
.L212:
	.word	.LC47
	.size	list_append, .-list_append
	.section	.rodata
	.align	2
.LC48:
	.ascii	"(\000"
	.align	2
.LC49:
	.ascii	"nil\000"
	.align	2
.LC50:
	.ascii	" : \000"
	.text
	.align	2
	.global	list_text
	.syntax unified
	.arm
	.fpu softvfp
	.type	list_text, %function
list_text:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r1, .L219
	ldr	r0, [fp, #-16]
	bl	text_make
	str	r0, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	beq	.L215
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	mov	r3, #1
	str	r3, [fp, #-12]
	b	.L216
.L217:
	mov	r2, #32
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L216:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bcc	.L217
	ldr	r3, [fp, #-12]
	cmp	r3, #1
	beq	.L215
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	ldr	r2, .L219+4
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	text_cmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L215
	ldr	r2, .L219+8
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
.L215:
	mov	r2, #41
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L220:
	.align	2
.L219:
	.word	.LC48
	.word	.LC49
	.word	.LC50
	.size	list_text, .-list_text
	.section	.rodata
	.align	2
.LC51:
	.ascii	" & \000"
	.text
	.align	2
	.global	list_more_text
	.syntax unified
	.arm
	.fpu softvfp
	.type	list_more_text, %function
list_more_text:
	@ 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]
	ldr	r1, .L227
	ldr	r0, [fp, #-16]
	bl	text_make
	str	r0, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	beq	.L222
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	mov	r3, #1
	str	r3, [fp, #-12]
	b	.L223
.L224:
	mov	r2, #32
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L223:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bcc	.L224
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L222
	mov	r2, #32
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
.L222:
	ldr	r0, [fp, #-24]
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L225
	ldr	r2, .L227+4
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat
	mov	r2, #0
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
.L225:
	mov	r2, #41
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L228:
	.align	2
.L227:
	.word	.LC48
	.word	.LC51
	.size	list_more_text, .-list_more_text
	.section	.rodata
	.align	2
.LC52:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	list_offset
	.syntax unified
	.arm
	.fpu softvfp
	.type	list_offset, %function
list_offset:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #36
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	ldr	r3, .L237
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-40]
	sub	r2, r2, r3
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #16]
	cmp	r2, r3
	bcs	.L230
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-40]
	sub	r3, r2, r3
	b	.L231
.L230:
	mov	r3, #0
.L231:
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	list_make
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-24]
	b	.L232
.L233:
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-32]
	bl	list_append
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L232:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	bcc	.L233
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L234
	ldr	r3, [fp, #-32]
	ldr	r4, [r3, #28]
	ldr	r1, .L237+4
	ldr	r0, [fp, #-32]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #28
	mov	r1, r4
	ldr	r0, [fp, #-32]
	bl	env_get_by_text
	ldr	r3, [fp, #-28]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-32]
	bl	list_append
.L234:
	ldr	r3, [fp, #-20]
	ldr	r2, .L237
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L236
	bl	__stack_chk_fail
.L236:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L238:
	.align	2
.L237:
	.word	.LC52
	.word	.LC37
	.size	list_offset, .-list_offset
	.section	.rodata
	.align	2
.LC53:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	list_params
	.syntax unified
	.arm
	.fpu softvfp
	.type	list_params, %function
list_params:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	ldr	r3, .L247
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	ble	.L240
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	b	.L241
.L240:
	mov	r3, #0
.L241:
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	list_make
	str	r0, [fp, #-20]
	mov	r3, #1
	str	r3, [fp, #-24]
	b	.L242
.L243:
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-32]
	bl	list_append
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L242:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	bcc	.L243
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L244
	ldr	r3, [fp, #-32]
	ldr	r4, [r3, #28]
	ldr	r1, .L247+4
	ldr	r0, [fp, #-32]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #28
	mov	r1, r4
	ldr	r0, [fp, #-32]
	bl	env_get_by_text
	ldr	r3, [fp, #-28]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-32]
	bl	list_append
.L244:
	ldr	r3, [fp, #-20]
	ldr	r2, .L247
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L246
	bl	__stack_chk_fail
.L246:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L248:
	.align	2
.L247:
	.word	.LC53
	.word	.LC37
	.size	list_params, .-list_params
	.section	.rodata
	.align	2
.LC54:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	list_get
	.syntax unified
	.arm
	.fpu softvfp
	.type	list_get, %function
list_get:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	ldr	r3, .L253
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	bcs	.L250
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	b	.L251
.L250:
	ldr	r3, [fp, #-24]
	ldr	r4, [r3, #28]
	ldr	r1, .L253+4
	ldr	r0, [fp, #-24]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #20
	mov	r1, r4
	ldr	r0, [fp, #-24]
	bl	env_get_by_text
	ldr	r3, [fp, #-20]
.L251:
	ldr	r2, .L253
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L252
	bl	__stack_chk_fail
.L252:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L254:
	.align	2
.L253:
	.word	.LC54
	.word	.LC37
	.size	list_get, .-list_get
	.align	2
	.global	list_find
	.syntax unified
	.arm
	.fpu softvfp
	.type	list_find, %function
list_find:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	mov	r3, #0
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L256
.L259:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-24]
	bl	text_cmp_text
	mov	r3, r0
	cmp	r3, #0
	bne	.L257
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	b	.L258
.L257:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L256:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bcc	.L259
	ldr	r3, [fp, #-12]
.L258:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	list_find, .-list_find
	.section	.rodata
	.align	2
.LC55:
	.ascii	"boolean: true\000"
	.align	2
.LC56:
	.ascii	"boolean: false\000"
	.align	2
.LC57:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	list_equal
	.syntax unified
	.arm
	.fpu softvfp
	.type	list_equal, %function
list_equal:
	@ 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, #-40]
	str	r1, [fp, #-44]
	str	r2, [fp, #-48]
	ldr	r3, .L268
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-40]
	ldr	r4, [r3, #28]
	ldr	r1, .L268+4
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #36
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	env_get_by_text
	ldr	r3, [fp, #-40]
	ldr	r4, [r3, #28]
	ldr	r1, .L268+8
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #32
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	env_get_by_text
	ldr	r3, [fp, #-44]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #16]
	cmp	r2, r3
	beq	.L261
	ldr	r3, [fp, #-32]
	b	.L266
.L261:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L263
.L265:
	mov	r1, #0
	ldr	r0, [fp, #-40]
	bl	list_make
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-44]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	list_append
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	list_append
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	mal_list
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	core_eq
	str	r0, [fp, #-20]
	ldr	r0, [fp, #-20]
	bl	is_false
	mov	r3, r0
	cmp	r3, #0
	beq	.L264
	ldr	r3, [fp, #-32]
	b	.L266
.L264:
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L263:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bcc	.L265
	ldr	r3, [fp, #-36]
.L266:
	ldr	r2, .L268
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L267
	bl	__stack_chk_fail
.L267:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L269:
	.align	2
.L268:
	.word	.LC57
	.word	.LC55
	.word	.LC56
	.size	list_equal, .-list_equal
	.align	2
	.global	list_free
	.syntax unified
	.arm
	.fpu softvfp
	.type	list_free, %function
list_free:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #12]
	mov	r0, r3
	bl	free
	ldr	r0, [fp, #-12]
	bl	free
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	list_free, .-list_free
	.align	2
	.global	vector_make
	.syntax unified
	.arm
	.fpu softvfp
	.type	vector_make, %function
vector_make:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	mov	r1, #24
	mov	r0, #1
	bl	calloc
	mov	r3, r0
	str	r3, [fp, #-8]
	mov	r3, #2
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L273
	mov	r3, #2
	str	r3, [fp, #-20]
	b	.L273
.L274:
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #1
	str	r3, [fp, #-12]
.L273:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	bcc	.L274
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #20]
	mov	r1, #4
	ldr	r0, [fp, #-12]
	bl	calloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	mov	r2, #3
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	add	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	vector_make, .-vector_make
	.align	2
	.global	vector_append
	.syntax unified
	.arm
	.fpu softvfp
	.type	vector_append, %function
vector_append:
	@ 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]
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #20]
	cmp	r2, r3
	bcc	.L277
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #20]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-20]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #20]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	realloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L278
	ldr	r0, [fp, #-16]
	bl	reader_peek
	mov	r3, r0
	ldr	r2, .L280
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	text_display_position
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-16]
	bl	error_append
	mov	r3, #0
	b	.L279
.L278:
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #12]
.L277:
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	add	r0, r3, #1
	ldr	r1, [fp, #-20]
	str	r0, [r1, #16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-24]
	str	r2, [r3]
	mov	r3, #1
.L279:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L281:
	.align	2
.L280:
	.word	.LC47
	.size	vector_append, .-vector_append
	.section	.rodata
	.align	2
.LC58:
	.ascii	"[\000"
	.text
	.align	2
	.global	vector_text
	.syntax unified
	.arm
	.fpu softvfp
	.type	vector_text, %function
vector_text:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r1, .L287
	ldr	r0, [fp, #-16]
	bl	text_make
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	beq	.L283
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	mov	r3, #1
	str	r3, [fp, #-12]
	b	.L284
.L285:
	mov	r2, #32
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L284:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bcc	.L285
	ldr	r3, [fp, #-12]
	cmp	r3, #1
	beq	.L283
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	ldr	r2, .L287+4
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	text_cmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L283
	ldr	r2, .L287+8
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
.L283:
	mov	r2, #93
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L288:
	.align	2
.L287:
	.word	.LC58
	.word	.LC49
	.word	.LC50
	.size	vector_text, .-vector_text
	.section	.rodata
	.align	2
.LC59:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	vector_get
	.syntax unified
	.arm
	.fpu softvfp
	.type	vector_get, %function
vector_get:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	ldr	r3, .L293
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	bcs	.L290
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	b	.L291
.L290:
	ldr	r3, [fp, #-24]
	ldr	r4, [r3, #28]
	ldr	r1, .L293+4
	ldr	r0, [fp, #-24]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #20
	mov	r1, r4
	ldr	r0, [fp, #-24]
	bl	env_get_by_text
	ldr	r3, [fp, #-20]
.L291:
	ldr	r2, .L293
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L292
	bl	__stack_chk_fail
.L292:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L294:
	.align	2
.L293:
	.word	.LC59
	.word	.LC37
	.size	vector_get, .-vector_get
	.section	.rodata
	.align	2
.LC60:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	vector_equal
	.syntax unified
	.arm
	.fpu softvfp
	.type	vector_equal, %function
vector_equal:
	@ 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, #-40]
	str	r1, [fp, #-44]
	str	r2, [fp, #-48]
	ldr	r3, .L303
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-40]
	ldr	r4, [r3, #28]
	ldr	r1, .L303+4
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #36
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	env_get_by_text
	ldr	r3, [fp, #-40]
	ldr	r4, [r3, #28]
	ldr	r1, .L303+8
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #32
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	env_get_by_text
	ldr	r3, [fp, #-44]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #16]
	cmp	r2, r3
	beq	.L296
	ldr	r3, [fp, #-32]
	b	.L301
.L296:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L298
.L300:
	mov	r1, #0
	ldr	r0, [fp, #-40]
	bl	list_make
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-44]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	list_append
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	list_append
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	mal_list
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	core_eq
	str	r0, [fp, #-20]
	ldr	r0, [fp, #-20]
	bl	is_false
	mov	r3, r0
	cmp	r3, #0
	beq	.L299
	ldr	r3, [fp, #-32]
	b	.L301
.L299:
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L298:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bcc	.L300
	ldr	r3, [fp, #-36]
.L301:
	ldr	r2, .L303
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L302
	bl	__stack_chk_fail
.L302:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L304:
	.align	2
.L303:
	.word	.LC60
	.word	.LC55
	.word	.LC56
	.size	vector_equal, .-vector_equal
	.align	2
	.global	vector_list
	.syntax unified
	.arm
	.fpu softvfp
	.type	vector_list, %function
vector_list:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	list_make
	str	r0, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L306
.L307:
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	list_append
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L306:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bcc	.L307
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	vector_list, .-vector_list
	.align	2
	.global	vector_free
	.syntax unified
	.arm
	.fpu softvfp
	.type	vector_free, %function
vector_free:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #12]
	mov	r0, r3
	bl	free
	ldr	r0, [fp, #-12]
	bl	free
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	vector_free, .-vector_free
	.align	2
	.global	hashmap_make
	.syntax unified
	.arm
	.fpu softvfp
	.type	hashmap_make, %function
hashmap_make:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	mov	r1, #24
	mov	r0, #1
	bl	calloc
	mov	r3, r0
	str	r3, [fp, #-8]
	mov	r3, #2
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L312
	mov	r3, #2
	str	r3, [fp, #-20]
	b	.L312
.L313:
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #1
	str	r3, [fp, #-12]
.L312:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	bcc	.L313
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #20]
	mov	r1, #4
	ldr	r0, [fp, #-12]
	bl	calloc
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	mov	r2, #5
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	add	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	hashmap_make, .-hashmap_make
	.align	2
	.global	hashmap_set
	.syntax unified
	.arm
	.fpu softvfp
	.type	hashmap_set, %function
hashmap_set:
	@ 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]
	mov	r3, #0
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L316
.L319:
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, [r3, #28]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #28]
	mov	r2, r3
	ldr	r0, [fp, #-16]
	bl	text_cmp_text
	mov	r3, r0
	cmp	r3, #0
	bne	.L317
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	cmp	r2, r3
	bcc	.L317
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	mov	r3, #1
	b	.L318
.L317:
	ldr	r3, [fp, #-8]
	add	r3, r3, #2
	str	r3, [fp, #-8]
.L316:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	bcc	.L319
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	hashmap_append
	ldr	r2, [fp, #-28]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	hashmap_append
	mov	r3, #1
.L318:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	hashmap_set, .-hashmap_set
	.section	.rodata
	.align	2
.LC61:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	hashmap_get
	.syntax unified
	.arm
	.fpu softvfp
	.type	hashmap_get, %function
hashmap_get:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #36
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	str	r3, [fp, #-44]
	ldr	r3, .L327
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-44]
	mov	r2, #0
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L321
.L324:
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, [r3, #28]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #28]
	mov	r2, r3
	ldr	r0, [fp, #-32]
	bl	text_cmp_text
	mov	r3, r0
	cmp	r3, #0
	bne	.L322
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-44]
	str	r2, [r3]
	mov	r3, #1
	b	.L325
.L322:
	ldr	r3, [fp, #-20]
	add	r3, r3, #2
	str	r3, [fp, #-20]
.L321:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	bcc	.L324
	ldr	r3, [fp, #-32]
	ldr	r4, [r3, #28]
	ldr	r1, .L327+4
	ldr	r0, [fp, #-32]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #24
	mov	r1, r4
	ldr	r0, [fp, #-32]
	bl	env_get_by_text
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-44]
	str	r2, [r3]
	mov	r3, #0
.L325:
	ldr	r2, .L327
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L326
	bl	__stack_chk_fail
.L326:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L328:
	.align	2
.L327:
	.word	.LC61
	.word	.LC37
	.size	hashmap_get, .-hashmap_get
	.section	.rodata
	.align	2
.LC62:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	hashmap_get_by_text
	.syntax unified
	.arm
	.fpu softvfp
	.type	hashmap_get_by_text, %function
hashmap_get_by_text:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #36
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	str	r3, [fp, #-44]
	ldr	r3, .L336
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-44]
	mov	r2, #0
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L330
.L333:
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #28]
	ldr	r2, [fp, #-40]
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	text_cmp_text
	mov	r3, r0
	cmp	r3, #0
	bne	.L331
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-44]
	str	r2, [r3]
	mov	r3, #1
	b	.L334
.L331:
	ldr	r3, [fp, #-20]
	add	r3, r3, #2
	str	r3, [fp, #-20]
.L330:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	bcc	.L333
	ldr	r3, [fp, #-32]
	ldr	r4, [r3, #28]
	ldr	r1, .L336+4
	ldr	r0, [fp, #-32]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #24
	mov	r1, r4
	ldr	r0, [fp, #-32]
	bl	env_get_by_text
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-44]
	str	r2, [r3]
	mov	r3, #0
.L334:
	ldr	r2, .L336
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L335
	bl	__stack_chk_fail
.L335:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L337:
	.align	2
.L336:
	.word	.LC62
	.word	.LC37
	.size	hashmap_get_by_text, .-hashmap_get_by_text
	.align	2
	.global	hashmap_append
	.syntax unified
	.arm
	.fpu softvfp
	.type	hashmap_append, %function
hashmap_append:
	@ 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]
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #20]
	cmp	r2, r3
	bcc	.L339
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #20]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-20]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #20]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	realloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L340
	ldr	r0, [fp, #-16]
	bl	reader_peek
	mov	r3, r0
	ldr	r2, .L342
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	text_display_position
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-16]
	bl	error_append
	mov	r3, #0
	b	.L341
.L340:
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #12]
.L339:
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	add	r0, r3, #1
	ldr	r1, [fp, #-20]
	str	r0, [r1, #16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-24]
	str	r2, [r3]
	mov	r3, #1
.L341:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L343:
	.align	2
.L342:
	.word	.LC47
	.size	hashmap_append, .-hashmap_append
	.section	.rodata
	.align	2
.LC63:
	.ascii	"{\000"
	.align	2
.LC64:
	.ascii	": \000"
	.text
	.align	2
	.global	hashmap_text
	.syntax unified
	.arm
	.fpu softvfp
	.type	hashmap_text, %function
hashmap_text:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r1, .L349
	ldr	r0, [fp, #-16]
	bl	text_make
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	beq	.L345
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	ldr	r2, .L349+4
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	mov	r3, #2
	str	r3, [fp, #-12]
	b	.L346
.L347:
	mov	r2, #32
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	ldr	r2, .L349+4
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	ldr	r3, [fp, #-12]
	add	r3, r3, #2
	str	r3, [fp, #-12]
.L346:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bcc	.L347
.L345:
	mov	r2, #125
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L350:
	.align	2
.L349:
	.word	.LC63
	.word	.LC64
	.size	hashmap_text, .-hashmap_text
	.section	.rodata
	.align	2
.LC65:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	hashmap_equal
	.syntax unified
	.arm
	.fpu softvfp
	.type	hashmap_equal, %function
hashmap_equal:
	@ args = 0, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #60
	str	r0, [fp, #-56]
	str	r1, [fp, #-60]
	str	r2, [fp, #-64]
	ldr	r3, .L362
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-56]
	ldr	r4, [r3, #28]
	ldr	r1, .L362+4
	ldr	r0, [fp, #-56]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #48
	mov	r1, r4
	ldr	r0, [fp, #-56]
	bl	env_get_by_text
	ldr	r3, [fp, #-56]
	ldr	r4, [r3, #28]
	ldr	r1, .L362+8
	ldr	r0, [fp, #-56]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #44
	mov	r1, r4
	ldr	r0, [fp, #-56]
	bl	env_get_by_text
	ldr	r3, [fp, #-60]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L352
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L352
	ldr	r3, [fp, #-48]
	b	.L360
.L352:
	ldr	r3, [fp, #-60]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #16]
	cmp	r2, r3
	beq	.L354
	ldr	r3, [fp, #-44]
	b	.L360
.L354:
	mov	r3, #0
	str	r3, [fp, #-36]
	b	.L355
.L359:
	ldr	r3, [fp, #-60]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-60]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-40]
	mov	r1, #0
	ldr	r0, [fp, #-56]
	bl	list_make
	str	r0, [fp, #-24]
	sub	r3, fp, #40
	ldr	r2, [fp, #-32]
	ldr	r1, [fp, #-64]
	ldr	r0, [fp, #-56]
	bl	hashmap_get
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	bne	.L356
	ldr	r3, [fp, #-44]
	b	.L360
.L356:
	ldr	r2, [fp, #-28]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-56]
	bl	list_append
	ldr	r3, [fp, #-40]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-56]
	bl	list_append
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-56]
	bl	mal_list
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-56]
	bl	core_eq
	str	r0, [fp, #-20]
	ldr	r0, [fp, #-20]
	bl	is_false
	mov	r3, r0
	cmp	r3, #0
	beq	.L358
	ldr	r3, [fp, #-44]
	b	.L360
.L358:
	ldr	r3, [fp, #-36]
	add	r3, r3, #2
	str	r3, [fp, #-36]
.L355:
	ldr	r3, [fp, #-60]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	bcc	.L359
	ldr	r3, [fp, #-48]
.L360:
	ldr	r2, .L362
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L361
	bl	__stack_chk_fail
.L361:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L363:
	.align	2
.L362:
	.word	.LC65
	.word	.LC55
	.word	.LC56
	.size	hashmap_equal, .-hashmap_equal
	.align	2
	.global	hashmap_free
	.syntax unified
	.arm
	.fpu softvfp
	.type	hashmap_free, %function
hashmap_free:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #12]
	mov	r0, r3
	bl	free
	ldr	r0, [fp, #-12]
	bl	free
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	hashmap_free, .-hashmap_free
	.align	2
	.global	env_make
	.syntax unified
	.arm
	.fpu softvfp
	.type	env_make, %function
env_make:
	@ args = 8, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #36
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	str	r3, [fp, #-44]
	mov	r1, #20
	mov	r0, #1
	bl	calloc
	mov	r3, r0
	str	r3, [fp, #-16]
	mov	r3, #2
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #8]
	cmp	r3, #0
	bne	.L367
	mov	r3, #2
	str	r3, [fp, #8]
	b	.L367
.L368:
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #1
	str	r3, [fp, #-24]
.L367:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #8]
	cmp	r2, r3
	bcc	.L368
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-36]
	str	r2, [r3, #12]
	ldr	r1, [fp, #8]
	ldr	r0, [fp, #-32]
	bl	vector_make
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	mov	r2, #4
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #4]
	add	r2, r3, #1
	ldr	r3, [fp, #-32]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	beq	.L369
	b	.L370
.L371:
	ldr	r2, [fp, #-20]
	ldr	r1, [fp, #-40]
	ldr	r0, [fp, #-32]
	bl	list_get
	mov	r4, r0
	ldr	r2, [fp, #-20]
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-32]
	bl	list_get
	mov	r3, r0
	mov	r2, r4
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-32]
	bl	env_set
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L370:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	bcc	.L371
.L369:
	ldr	r3, [fp, #4]
	cmp	r3, #0
	beq	.L372
	ldr	r0, [fp, #4]
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L372
	ldr	r2, [fp, #-20]
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-32]
	bl	list_get
	mov	r3, r0
	ldr	r2, [fp, #4]
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-32]
	bl	env_set
.L372:
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	env_make, .-env_make
	.align	2
	.global	env_set
	.syntax unified
	.arm
	.fpu softvfp
	.type	env_set, %function
env_set:
	@ 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]
	mov	r3, #0
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L375
.L378:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, [r3, #28]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #28]
	mov	r2, r3
	ldr	r0, [fp, #-16]
	bl	text_cmp_text
	mov	r3, r0
	cmp	r3, #0
	bne	.L376
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	cmp	r2, r3
	bcc	.L376
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	mov	r3, #1
	b	.L377
.L376:
	ldr	r3, [fp, #-8]
	add	r3, r3, #2
	str	r3, [fp, #-8]
.L375:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	bcc	.L378
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-24]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	vector_append
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-28]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	vector_append
	mov	r3, #1
.L377:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	env_set, .-env_set
	.align	2
	.global	env_get
	.syntax unified
	.arm
	.fpu softvfp
	.type	env_get, %function
env_get:
	@ 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]
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-28]
	mov	r2, #0
	str	r2, [r3]
	b	.L380
.L385:
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L381
.L384:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r1, [r3, #28]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #28]
	mov	r2, r3
	ldr	r0, [fp, #-16]
	bl	text_cmp_text
	mov	r3, r0
	cmp	r3, #0
	bne	.L382
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-28]
	str	r2, [r3]
	mov	r3, #1
	b	.L383
.L382:
	ldr	r3, [fp, #-8]
	add	r3, r3, #2
	str	r3, [fp, #-8]
.L381:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	bcc	.L384
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-20]
.L380:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L385
	mov	r3, #0
.L383:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	env_get, .-env_get
	.align	2
	.global	env_get_by_text
	.syntax unified
	.arm
	.fpu softvfp
	.type	env_get_by_text, %function
env_get_by_text:
	@ 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]
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-28]
	mov	r2, #0
	str	r2, [r3]
	b	.L387
.L392:
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L388
.L391:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #28]
	ldr	r2, [fp, #-24]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	text_cmp_text
	mov	r3, r0
	cmp	r3, #0
	bne	.L389
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-28]
	str	r2, [r3]
	mov	r3, #1
	b	.L390
.L389:
	ldr	r3, [fp, #-8]
	add	r3, r3, #2
	str	r3, [fp, #-8]
.L388:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	bcc	.L391
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-20]
.L387:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L392
	mov	r3, #0
.L390:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	env_get_by_text, .-env_get_by_text
	.align	2
	.global	env_text
	.syntax unified
	.arm
	.fpu softvfp
	.type	env_text, %function
env_text:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r1, .L398
	ldr	r0, [fp, #-16]
	bl	text_make
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	beq	.L394
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	ldr	r2, .L398+4
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	mov	r3, #2
	str	r3, [fp, #-12]
	b	.L395
.L396:
	mov	r2, #32
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	ldr	r2, .L398+4
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	ldr	r3, [fp, #-12]
	add	r3, r3, #2
	str	r3, [fp, #-12]
.L395:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bcc	.L396
.L394:
	mov	r2, #125
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L399:
	.align	2
.L398:
	.word	.LC63
	.word	.LC64
	.size	env_text, .-env_text
	.align	2
	.global	env_free
	.syntax unified
	.arm
	.fpu softvfp
	.type	env_free, %function
env_free:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r0, [fp, #-12]
	bl	free
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	env_free, .-env_free
	.section	.rodata
	.align	2
.LC66:
	.ascii	"%s\000"
	.align	2
.LC67:
	.ascii	"\015\012\000"
	.align	2
.LC68:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	readline
	.syntax unified
	.arm
	.fpu softvfp
	.type	readline, %function
readline:
	@ args = 0, pretend = 0, frame = 2064
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #2064
	str	r0, [fp, #-2064]
	str	r1, [fp, #-2068]
	ldr	r3, .L406
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r1, [fp, #-2068]
	ldr	r0, .L406+4
	bl	printf
	ldr	r3, .L406+8
	ldr	r2, [r3]
	sub	r3, fp, #2048
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r1, #2048
	mov	r0, r3
	bl	fgets
	ldr	r3, .L406+8
	ldr	r3, [r3]
	mov	r0, r3
	bl	feof
	mov	r3, r0
	cmp	r3, #0
	beq	.L402
	mov	r3, #0
	b	.L404
.L402:
	sub	r3, fp, #2048
	sub	r3, r3, #4
	sub	r3, r3, #4
	ldr	r1, .L406+12
	mov	r0, r3
	bl	strcspn
	mov	r3, r0
	sub	r2, fp, #4
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3, #-2052]
	sub	r3, fp, #2048
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r0, r3
	bl	strlen
	mov	r2, r0
	sub	r3, fp, #2048
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r1, r2
	mov	r0, r3
	bl	strndup
	mov	r3, r0
	str	r3, [fp, #-2060]
	ldr	r3, [fp, #-2060]
.L404:
	ldr	r2, .L406
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L405
	bl	__stack_chk_fail
.L405:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L407:
	.align	2
.L406:
	.word	.LC68
	.word	.LC66
	.word	stdin
	.word	.LC67
	.size	readline, .-readline
	.align	2
	.global	tokenizer_peek
	.syntax unified
	.arm
	.fpu softvfp
	.type	tokenizer_peek, %function
tokenizer_peek:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	readers_get
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tokenizer_peek, .-tokenizer_peek
	.align	2
	.global	tokenizer_peek_next
	.syntax unified
	.arm
	.fpu softvfp
	.type	tokenizer_peek_next, %function
tokenizer_peek_next:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	readers_get
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L411
	mov	r3, #0
	b	.L412
.L411:
	ldr	r3, [fp, #-8]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	add	r3, r3, #1
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
.L412:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tokenizer_peek_next, .-tokenizer_peek_next
	.align	2
	.global	tokenizer_next
	.syntax unified
	.arm
	.fpu softvfp
	.type	tokenizer_next, %function
tokenizer_next:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	readers_get
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L414
	mov	r3, #0
	b	.L415
.L414:
	ldr	r3, [fp, #-8]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	add	r0, r3, #1
	ldr	r1, [fp, #-8]
	str	r0, [r1, #4]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-9]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	cmp	r3, #10
	bne	.L416
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	add	r2, r3, #1
	ldr	r3, [fp, #-8]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #12]
	b	.L417
.L416:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	add	r2, r3, #1
	ldr	r3, [fp, #-8]
	str	r2, [r3, #12]
.L417:
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
.L415:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tokenizer_next, .-tokenizer_next
	.align	2
	.global	tokenizer_scan
	.syntax unified
	.arm
	.fpu softvfp
	.type	tokenizer_scan, %function
tokenizer_scan:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #20
	str	r0, [fp, #-24]
	b	.L419
.L423:
	ldrb	r3, [fp, #-13]	@ zero_extendqisi2
	sub	r3, r3, #9
	cmp	r3, #35
	ldrls	pc, [pc, r3, asl #2]
	b	.L420
.L422:
	.word	.L421
	.word	.L421
	.word	.L420
	.word	.L420
	.word	.L421
	.word	.L420
	.word	.L420
	.word	.L420
	.word	.L420
	.word	.L420
	.word	.L420
	.word	.L420
	.word	.L420
	.word	.L420
	.word	.L420
	.word	.L420
	.word	.L420
	.word	.L420
	.word	.L420
	.word	.L420
	.word	.L420
	.word	.L420
	.word	.L420
	.word	.L421
	.word	.L420
	.word	.L420
	.word	.L420
	.word	.L420
	.word	.L420
	.word	.L420
	.word	.L420
	.word	.L420
	.word	.L420
	.word	.L420
	.word	.L420
	.word	.L421
.L421:
	ldr	r0, [fp, #-24]
	bl	tokenizer_next
	b	.L419
.L420:
	ldr	r0, [fp, #-24]
	bl	tokenizer_next
	nop
.L419:
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r4, [r3]
	ldr	r0, [fp, #-24]
	bl	tokenizer_peek
	mov	r3, r0
	strb	r3, [fp, #-13]
	ldrb	r3, [fp, #-13]	@ zero_extendqisi2
	lsl	r3, r3, #1
	add	r3, r4, r3
	ldrh	r3, [r3]
	and	r3, r3, #8192
	cmp	r3, #0
	bne	.L423
	ldrb	r3, [fp, #-13]	@ zero_extendqisi2
	cmp	r3, #44
	beq	.L423
	ldrb	r3, [fp, #-13]	@ zero_extendqisi2
	cmp	r3, #64
	bgt	.L424
	cmp	r3, #0
	bge	.L425
	b	.L426
.L435:
	sub	r3, r3, #91
	cmp	r3, #35
	ldrls	pc, [pc, r3, asl #2]
	b	.L426
.L428:
	.word	.L427
	.word	.L427
	.word	.L427
	.word	.L427
	.word	.L426
	.word	.L427
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L427
	.word	.L426
	.word	.L427
	.word	.L427
.L425:
	cmp	r3, #64
	ldrls	pc, [pc, r3, asl #2]
	b	.L426
.L429:
	.word	.L434
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L433
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L427
	.word	.L427
	.word	.L427
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L432
	.word	.L432
	.word	.L432
	.word	.L432
	.word	.L432
	.word	.L432
	.word	.L432
	.word	.L432
	.word	.L432
	.word	.L432
	.word	.L431
	.word	.L430
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L426
	.word	.L427
.L424:
	cmp	r3, #126
	bgt	.L426
	cmp	r3, #91
	bge	.L435
	b	.L426
.L434:
	ldr	r0, [fp, #-24]
	bl	token_eoi
	mov	r3, r0
	b	.L436
.L433:
	ldr	r0, [fp, #-24]
	bl	token_string
	mov	r3, r0
	b	.L436
.L427:
	ldr	r0, [fp, #-24]
	bl	token_special
	mov	r3, r0
	b	.L436
.L432:
	ldr	r0, [fp, #-24]
	bl	token_number
	mov	r3, r0
	b	.L436
.L431:
	ldr	r0, [fp, #-24]
	bl	tokenizer_peek_next
	mov	r3, r0
	cmp	r3, #64
	bgt	.L437
	cmp	r3, #9
	bge	.L438
	b	.L439
.L443:
	sub	r3, r3, #91
	cmp	r3, #35
	ldrls	pc, [pc, r3, asl #2]
	b	.L439
.L441:
	.word	.L440
	.word	.L440
	.word	.L440
	.word	.L440
	.word	.L439
	.word	.L440
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L440
	.word	.L439
	.word	.L440
	.word	.L440
.L438:
	sub	r3, r3, #9
	cmp	r3, #55
	ldrls	pc, [pc, r3, asl #2]
	b	.L439
.L442:
	.word	.L440
	.word	.L440
	.word	.L439
	.word	.L439
	.word	.L440
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L440
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L440
	.word	.L440
	.word	.L440
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L439
	.word	.L440
.L437:
	cmp	r3, #126
	bgt	.L439
	cmp	r3, #91
	bge	.L443
	b	.L439
.L440:
	ldr	r0, [fp, #-24]
	bl	token_special
	mov	r3, r0
	b	.L436
.L439:
	ldr	r0, [fp, #-24]
	bl	token_keyword
	mov	r3, r0
	b	.L436
.L430:
	ldr	r0, [fp, #-24]
	bl	token_comment
	b	.L419
.L426:
	ldr	r0, [fp, #-24]
	bl	token_symbol
	mov	r3, r0
.L436:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	tokenizer_scan, .-tokenizer_scan
	.align	2
	.global	token_make
	.syntax unified
	.arm
	.fpu softvfp
	.type	token_make, %function
token_make:
	@ 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	r1, #32
	mov	r0, #1
	bl	calloc
	mov	r3, r0
	str	r3, [fp, #-12]
	ldr	r0, [fp, #-16]
	bl	readers_get
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L446
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-12]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	str	r2, [r3, #28]
	b	.L447
.L446:
	ldr	r3, [fp, #-12]
	mov	r2, #0
	str	r2, [r3, #24]
	ldr	r3, [fp, #-12]
	mov	r2, #0
	str	r2, [r3, #28]
.L447:
	ldr	r3, [fp, #-12]
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-12]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	add	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	token_make, .-token_make
	.align	2
	.global	token_eoi
	.syntax unified
	.arm
	.fpu softvfp
	.type	token_eoi, %function
token_eoi:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	token_make
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #12]
	ldr	r1, .L451
	ldr	r0, [fp, #-16]
	bl	text_make
	mov	r2, r0
	ldr	r3, [fp, #-8]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L452:
	.align	2
.L451:
	.word	.LC25
	.size	token_eoi, .-token_eoi
	.align	2
	.global	token_comment
	.syntax unified
	.arm
	.fpu softvfp
	.type	token_comment, %function
token_comment:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-32]
	ldr	r0, [fp, #-32]
	bl	token_make
	str	r0, [fp, #-24]
	ldr	r1, .L464
	ldr	r0, [fp, #-32]
	bl	text_make
	str	r0, [fp, #-20]
	ldr	r0, [fp, #-32]
	bl	readers_get
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-24]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-24]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-24]
	mov	r2, #2
	str	r2, [r3, #12]
	ldr	r0, [fp, #-32]
	bl	tokenizer_next
	mov	r2, #32
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-32]
	bl	text_append
	b	.L454
.L456:
	ldr	r0, [fp, #-32]
	bl	tokenizer_next
.L454:
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r4, [r3]
	ldr	r0, [fp, #-32]
	bl	tokenizer_peek
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r4, r3
	ldrh	r3, [r3]
	and	r3, r3, #8192
	cmp	r3, #0
	beq	.L457
	ldr	r0, [fp, #-32]
	bl	tokenizer_peek
	mov	r3, r0
	cmp	r3, #10
	bne	.L456
	ldr	r0, [fp, #-32]
	bl	tokenizer_peek
	mov	r3, r0
	cmp	r3, #13
	bne	.L456
	b	.L457
.L462:
	ldrb	r3, [fp, #-25]	@ zero_extendqisi2
	cmp	r3, #10
	beq	.L458
	cmp	r3, #13
	beq	.L459
	b	.L463
.L458:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-24]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-24]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-32]
	bl	text_display_position
	mov	r2, r0
	ldr	r3, [fp, #-24]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	comment_append
	ldr	r3, [fp, #-24]
	b	.L461
.L459:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-24]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-24]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-32]
	bl	text_display_position
	mov	r2, r0
	ldr	r3, [fp, #-24]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	comment_append
	ldr	r3, [fp, #-24]
	b	.L461
.L463:
	ldr	r0, [fp, #-32]
	bl	tokenizer_peek
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-32]
	bl	text_append
	nop
	ldr	r0, [fp, #-32]
	bl	tokenizer_next
.L457:
	ldr	r0, [fp, #-32]
	bl	tokenizer_peek
	mov	r3, r0
	strb	r3, [fp, #-25]
	ldrb	r3, [fp, #-25]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L462
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-24]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-24]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-32]
	bl	text_display_position
	mov	r2, r0
	ldr	r3, [fp, #-24]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	comment_append
	ldr	r3, [fp, #-24]
.L461:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L465:
	.align	2
.L464:
	.word	.LC25
	.size	token_comment, .-token_comment
	.align	2
	.global	token_special
	.syntax unified
	.arm
	.fpu softvfp
	.type	token_special, %function
token_special:
	@ 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	r0, [fp, #-24]
	bl	token_make
	str	r0, [fp, #-16]
	ldr	r1, .L486
	ldr	r0, [fp, #-24]
	bl	text_make
	str	r0, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	readers_get
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #28]
	ldr	r0, [fp, #-24]
	bl	tokenizer_peek
	mov	r3, r0
	sub	r3, r3, #39
	cmp	r3, #87
	ldrls	pc, [pc, r3, asl #2]
	b	.L467
.L469:
	.word	.L481
	.word	.L480
	.word	.L479
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L478
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L477
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L476
	.word	.L475
	.word	.L474
	.word	.L473
	.word	.L467
	.word	.L472
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L467
	.word	.L471
	.word	.L467
	.word	.L470
	.word	.L468
.L481:
	ldr	r3, [fp, #-16]
	mov	r2, #4
	str	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	mov	r2, #1
	str	r2, [r3, #20]
	b	.L467
.L480:
	ldr	r3, [fp, #-16]
	mov	r2, #6
	str	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	mov	r2, #1
	str	r2, [r3, #20]
	b	.L467
.L479:
	ldr	r3, [fp, #-16]
	mov	r2, #7
	str	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	mov	r2, #1
	str	r2, [r3, #20]
	b	.L467
.L478:
	ldr	r3, [fp, #-16]
	mov	r2, #5
	str	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	mov	r2, #1
	str	r2, [r3, #20]
	b	.L467
.L477:
	ldr	r3, [fp, #-16]
	mov	r2, #8
	str	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	mov	r2, #1
	str	r2, [r3, #20]
	b	.L467
.L476:
	ldr	r3, [fp, #-16]
	mov	r2, #9
	str	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	mov	r2, #1
	str	r2, [r3, #20]
	b	.L467
.L475:
	ldr	r3, [fp, #-16]
	mov	r2, #10
	str	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	mov	r2, #1
	str	r2, [r3, #20]
	b	.L467
.L474:
	ldr	r3, [fp, #-16]
	mov	r2, #11
	str	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	mov	r2, #1
	str	r2, [r3, #20]
	b	.L467
.L473:
	ldr	r3, [fp, #-16]
	mov	r2, #12
	str	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	mov	r2, #1
	str	r2, [r3, #20]
	b	.L467
.L472:
	ldr	r3, [fp, #-16]
	mov	r2, #13
	str	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	mov	r2, #1
	str	r2, [r3, #20]
	b	.L467
.L471:
	ldr	r3, [fp, #-16]
	mov	r2, #14
	str	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	mov	r2, #1
	str	r2, [r3, #20]
	b	.L467
.L470:
	ldr	r3, [fp, #-16]
	mov	r2, #15
	str	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	mov	r2, #1
	str	r2, [r3, #20]
	b	.L467
.L468:
	ldr	r0, [fp, #-24]
	bl	tokenizer_peek_next
	mov	r3, r0
	cmp	r3, #64
	bne	.L482
	ldr	r3, [fp, #-16]
	mov	r2, #16
	str	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	mov	r2, #2
	str	r2, [r3, #20]
	b	.L467
.L482:
	ldr	r3, [fp, #-16]
	mov	r2, #17
	str	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	mov	r2, #1
	str	r2, [r3, #20]
	nop
.L467:
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L483
.L484:
	ldr	r0, [fp, #-24]
	bl	tokenizer_next
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	text_append
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L483:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	bcc	.L484
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L487:
	.align	2
.L486:
	.word	.LC25
	.size	token_special, .-token_special
	.align	2
	.global	token_number
	.syntax unified
	.arm
	.fpu softvfp
	.type	token_number, %function
token_number:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	ldr	r0, [fp, #-32]
	bl	token_make
	str	r0, [fp, #-16]
	ldr	r1, .L504
	ldr	r0, [fp, #-32]
	bl	text_make
	str	r0, [fp, #-12]
	ldr	r0, [fp, #-32]
	bl	readers_get
	str	r0, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #28]
	b	.L489
.L501:
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	cmp	r3, #69
	bgt	.L490
	cmp	r3, #46
	blt	.L491
	sub	r3, r3, #46
	mov	r2, #1
	lsl	r2, r2, r3
	ldr	r3, .L504+4
	and	r3, r3, r2
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	cmp	r3, #0
	bne	.L492
	b	.L491
.L490:
	cmp	r3, #101
	bne	.L491
.L492:
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	cmp	r3, #46
	beq	.L493
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	cmp	r3, #69
	beq	.L493
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	cmp	r3, #101
	bne	.L494
.L493:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L494
	mov	r3, #1
	str	r3, [fp, #-20]
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-32]
	bl	text_append
	ldr	r0, [fp, #-32]
	bl	tokenizer_next
	b	.L489
.L494:
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	cmp	r3, #46
	beq	.L495
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	cmp	r3, #69
	beq	.L495
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	cmp	r3, #101
	beq	.L495
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-32]
	bl	text_append
	ldr	r0, [fp, #-32]
	bl	tokenizer_next
	b	.L489
.L495:
	mov	r2, #0
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-32]
	bl	text_append
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L496
	ldr	r3, [fp, #-16]
	mov	r2, #20
	str	r2, [r3, #12]
	b	.L497
.L496:
	ldr	r3, [fp, #-16]
	mov	r2, #19
	str	r2, [r3, #12]
.L497:
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-16]
	b	.L498
.L491:
	mov	r2, #0
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-32]
	bl	text_append
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L499
	ldr	r3, [fp, #-16]
	mov	r2, #20
	str	r2, [r3, #12]
	b	.L500
.L499:
	ldr	r3, [fp, #-16]
	mov	r2, #19
	str	r2, [r3, #12]
.L500:
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-16]
	b	.L498
.L489:
	ldr	r0, [fp, #-32]
	bl	tokenizer_peek
	mov	r3, r0
	strb	r3, [fp, #-21]
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L501
	mov	r2, #0
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-32]
	bl	text_append
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L502
	ldr	r3, [fp, #-16]
	mov	r2, #20
	str	r2, [r3, #12]
	b	.L503
.L502:
	ldr	r3, [fp, #-16]
	mov	r2, #19
	str	r2, [r3, #12]
.L503:
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-16]
.L498:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L505:
	.align	2
.L504:
	.word	.LC25
	.word	8392701
	.size	token_number, .-token_number
	.align	2
	.global	token_symbol
	.syntax unified
	.arm
	.fpu softvfp
	.type	token_symbol, %function
token_symbol:
	@ 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	r0, [fp, #-24]
	bl	token_make
	str	r0, [fp, #-16]
	ldr	r1, .L513
	ldr	r0, [fp, #-24]
	bl	text_make
	str	r0, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	readers_get
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-16]
	mov	r2, #18
	str	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #28]
	b	.L507
.L512:
	ldrb	r3, [fp, #-17]	@ zero_extendqisi2
	sub	r3, r3, #9
	cmp	r3, #117
	ldrls	pc, [pc, r3, asl #2]
	b	.L508
.L510:
	.word	.L509
	.word	.L509
	.word	.L508
	.word	.L508
	.word	.L509
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L509
	.word	.L508
	.word	.L509
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L509
	.word	.L509
	.word	.L509
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L509
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L509
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L509
	.word	.L509
	.word	.L509
	.word	.L509
	.word	.L508
	.word	.L509
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L508
	.word	.L509
	.word	.L508
	.word	.L509
	.word	.L509
.L509:
	mov	r2, #0
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	text_append
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-16]
	b	.L511
.L508:
	ldr	r0, [fp, #-24]
	bl	tokenizer_next
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	text_append
	nop
.L507:
	ldr	r0, [fp, #-24]
	bl	tokenizer_peek
	mov	r3, r0
	strb	r3, [fp, #-17]
	ldrb	r3, [fp, #-17]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L512
	mov	r2, #0
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	text_append
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-16]
.L511:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L514:
	.align	2
.L513:
	.word	.LC25
	.size	token_symbol, .-token_symbol
	.align	2
	.global	token_keyword
	.syntax unified
	.arm
	.fpu softvfp
	.type	token_keyword, %function
token_keyword:
	@ 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	r0, [fp, #-24]
	bl	token_make
	str	r0, [fp, #-16]
	ldr	r1, .L522
	ldr	r0, [fp, #-24]
	bl	text_make
	str	r0, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	readers_get
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-16]
	mov	r2, #21
	str	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #28]
	ldr	r0, [fp, #-24]
	bl	tokenizer_next
	b	.L516
.L521:
	ldrb	r3, [fp, #-17]	@ zero_extendqisi2
	sub	r3, r3, #9
	cmp	r3, #117
	ldrls	pc, [pc, r3, asl #2]
	b	.L517
.L519:
	.word	.L518
	.word	.L518
	.word	.L517
	.word	.L517
	.word	.L518
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L518
	.word	.L517
	.word	.L518
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L518
	.word	.L518
	.word	.L518
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L518
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L518
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L518
	.word	.L518
	.word	.L518
	.word	.L518
	.word	.L517
	.word	.L518
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L517
	.word	.L518
	.word	.L517
	.word	.L518
	.word	.L518
.L518:
	mov	r2, #0
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	text_append
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-16]
	b	.L520
.L517:
	ldr	r0, [fp, #-24]
	bl	tokenizer_next
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	text_append
	nop
.L516:
	ldr	r0, [fp, #-24]
	bl	tokenizer_peek
	mov	r3, r0
	strb	r3, [fp, #-17]
	ldrb	r3, [fp, #-17]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L521
	mov	r2, #0
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	text_append
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-16]
.L520:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L523:
	.align	2
.L522:
	.word	.LC25
	.size	token_keyword, .-token_keyword
	.align	2
	.global	token_string
	.syntax unified
	.arm
	.fpu softvfp
	.type	token_string, %function
token_string:
	@ 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	r0, [fp, #-24]
	bl	token_make
	str	r0, [fp, #-16]
	ldr	r1, .L541
	ldr	r0, [fp, #-24]
	bl	text_make
	str	r0, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	readers_get
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-16]
	mov	r2, #22
	str	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #28]
	ldr	r0, [fp, #-24]
	bl	tokenizer_next
	b	.L525
.L538:
	ldrb	r3, [fp, #-17]	@ zero_extendqisi2
	cmp	r3, #34
	beq	.L526
	cmp	r3, #92
	beq	.L527
	b	.L539
.L526:
	mov	r2, #0
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	text_append
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-16]
	b	.L529
.L527:
	ldr	r0, [fp, #-24]
	bl	tokenizer_next
	ldr	r0, [fp, #-24]
	bl	tokenizer_next
	mov	r3, r0
	strb	r3, [fp, #-17]
	ldrb	r3, [fp, #-17]	@ zero_extendqisi2
	cmp	r3, #34
	beq	.L530
	cmp	r3, #34
	blt	.L540
	cmp	r3, #116
	bgt	.L540
	cmp	r3, #92
	blt	.L540
	sub	r3, r3, #92
	cmp	r3, #24
	ldrls	pc, [pc, r3, asl #2]
	b	.L540
.L533:
	.word	.L536
	.word	.L540
	.word	.L540
	.word	.L540
	.word	.L540
	.word	.L540
	.word	.L540
	.word	.L540
	.word	.L540
	.word	.L540
	.word	.L540
	.word	.L540
	.word	.L540
	.word	.L540
	.word	.L540
	.word	.L540
	.word	.L540
	.word	.L540
	.word	.L535
	.word	.L540
	.word	.L540
	.word	.L540
	.word	.L534
	.word	.L540
	.word	.L532
.L532:
	mov	r2, #9
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	text_append
	b	.L537
.L535:
	mov	r2, #10
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	text_append
	b	.L537
.L534:
	mov	r2, #13
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	text_append
	b	.L537
.L530:
	ldrb	r3, [fp, #-17]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	text_append
	b	.L537
.L536:
	ldrb	r3, [fp, #-17]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	text_append
	b	.L537
.L540:
	nop
.L537:
	b	.L525
.L539:
	ldr	r0, [fp, #-24]
	bl	tokenizer_next
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	text_append
	nop
.L525:
	ldr	r0, [fp, #-24]
	bl	tokenizer_peek
	mov	r3, r0
	strb	r3, [fp, #-17]
	ldrb	r3, [fp, #-17]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L538
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-16]
.L529:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L542:
	.align	2
.L541:
	.word	.LC25
	.size	token_string, .-token_string
	.align	2
	.global	token_free
	.syntax unified
	.arm
	.fpu softvfp
	.type	token_free, %function
token_free:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r0, [fp, #-12]
	bl	free
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	token_free, .-token_free
	.align	2
	.global	reader_make
	.syntax unified
	.arm
	.fpu softvfp
	.type	reader_make, %function
reader_make:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	mov	r1, #32
	mov	r0, #1
	bl	calloc
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	mov	r2, #1
	str	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #24]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #28]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	reader_make, .-reader_make
	.align	2
	.global	reader_peek
	.syntax unified
	.arm
	.fpu softvfp
	.type	reader_peek, %function
reader_peek:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	readers_get
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #24]
	cmp	r3, #0
	beq	.L547
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #16]
	b	.L548
.L547:
	ldr	r3, [fp, #-8]
	mov	r2, #1
	str	r2, [r3, #24]
	ldr	r0, [fp, #-16]
	bl	tokenizer_scan
	mov	r2, r0
	ldr	r3, [fp, #-8]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #16]
.L548:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	reader_peek, .-reader_peek
	.align	2
	.global	reader_peek_next
	.syntax unified
	.arm
	.fpu softvfp
	.type	reader_peek_next, %function
reader_peek_next:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	readers_get
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #28]
	cmp	r3, #0
	beq	.L550
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #20]
	b	.L551
.L550:
	ldr	r3, [fp, #-8]
	mov	r2, #1
	str	r2, [r3, #28]
	ldr	r0, [fp, #-16]
	bl	tokenizer_scan
	mov	r2, r0
	ldr	r3, [fp, #-8]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #20]
.L551:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	reader_peek_next, .-reader_peek_next
	.align	2
	.global	reader_next
	.syntax unified
	.arm
	.fpu softvfp
	.type	reader_next, %function
reader_next:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	readers_get
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #28]
	cmp	r3, #0
	beq	.L553
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #28]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #16]
	b	.L554
.L553:
	ldr	r3, [fp, #-8]
	mov	r2, #1
	str	r2, [r3, #24]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #28]
	ldr	r0, [fp, #-16]
	bl	tokenizer_scan
	mov	r2, r0
	ldr	r3, [fp, #-8]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #16]
.L554:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	reader_next, .-reader_next
	.align	2
	.global	read_str
	.syntax unified
	.arm
	.fpu softvfp
	.type	read_str, %function
read_str:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	reader_peek
	mov	r3, r0
	ldr	r3, [r3, #12]
	cmp	r3, #0
	bne	.L556
	ldr	r0, [fp, #-16]
	bl	mal_eoi
	mov	r3, r0
	b	.L557
.L556:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	ldr	r3, [r3, #20]
	cmp	r3, #0
	beq	.L558
	ldr	r0, [fp, #-16]
	bl	mal_eoi
	mov	r3, r0
	b	.L557
.L558:
	ldr	r0, [fp, #-16]
	bl	read_form
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	readers_pop
	ldr	r3, [fp, #-8]
.L557:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	read_str, .-read_str
	.section	.rodata
	.align	2
.LC69:
	.ascii	"quote\000"
	.align	2
.LC70:
	.ascii	"unbalanced parenthesis, expected '('\000"
	.align	2
.LC71:
	.ascii	"unexpected colon character ':'\000"
	.align	2
.LC72:
	.ascii	"deref\000"
	.align	2
.LC73:
	.ascii	"unexpected backslash character '\\'\000"
	.align	2
.LC74:
	.ascii	"unbalanced brackets, expected '['\000"
	.align	2
.LC75:
	.ascii	"with-meta\000"
	.align	2
.LC76:
	.ascii	"expected symbol\000"
	.align	2
.LC77:
	.ascii	"quasiquote\000"
	.align	2
.LC78:
	.ascii	"unbalanced brackets, expected '{'\000"
	.align	2
.LC79:
	.ascii	"splice-unquote\000"
	.align	2
.LC80:
	.ascii	"unquote\000"
	.align	2
.LC81:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	read_form
	.syntax unified
	.arm
	.fpu softvfp
	.type	read_form, %function
read_form:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #36
	str	r0, [fp, #-40]
	ldr	r3, .L581
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r0, [fp, #-40]
	bl	reader_peek
	str	r0, [fp, #-32]
	mov	r1, #0
	ldr	r0, [fp, #-40]
	bl	list_make
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #12]
	cmp	r3, #17
	ldrls	pc, [pc, r3, asl #2]
	b	.L560
.L562:
	.word	.L576
	.word	.L560
	.word	.L560
	.word	.L560
	.word	.L575
	.word	.L574
	.word	.L573
	.word	.L572
	.word	.L571
	.word	.L570
	.word	.L569
	.word	.L568
	.word	.L567
	.word	.L566
	.word	.L565
	.word	.L564
	.word	.L563
	.word	.L561
.L576:
	ldr	r0, [fp, #-40]
	bl	mal_eoi
	mov	r3, r0
	b	.L579
.L575:
	ldr	r1, .L581+4
	ldr	r0, [fp, #-40]
	bl	read_symbol_list
	mov	r3, r0
	b	.L579
.L573:
	ldr	r0, [fp, #-40]
	bl	read_list
	mov	r3, r0
	b	.L579
.L572:
	ldr	r2, .L581+8
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-40]
	bl	text_display_position
	mov	r3, r0
	mov	r2, r3
	mov	r1, #1
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L579
.L574:
	ldr	r2, .L581+12
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-40]
	bl	text_display_position
	mov	r3, r0
	mov	r2, r3
	mov	r1, #1
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L579
.L571:
	ldr	r1, .L581+16
	ldr	r0, [fp, #-40]
	bl	read_symbol_list
	mov	r3, r0
	b	.L579
.L570:
	ldr	r0, [fp, #-40]
	bl	read_vector
	mov	r3, r0
	b	.L579
.L569:
	ldr	r2, .L581+20
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-40]
	bl	text_display_position
	mov	r3, r0
	mov	r2, r3
	mov	r1, #1
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L579
.L568:
	ldr	r2, .L581+24
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-40]
	bl	text_display_position
	mov	r3, r0
	mov	r2, r3
	mov	r1, #1
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L579
.L567:
	ldr	r0, [fp, #-40]
	bl	reader_next
	ldr	r1, .L581+28
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	mal_symbol
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-40]
	bl	list_append
	ldr	r0, [fp, #-40]
	bl	read_form
	str	r0, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	read_form
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	cmp	r3, #3
	bne	.L578
	ldr	r2, [fp, #-20]
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-40]
	bl	list_append
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-40]
	bl	list_append
	ldr	r3, [fp, #-40]
	ldr	r4, [r3, #28]
	ldr	r1, .L581+32
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #36
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	env_get_by_text
	ldr	r3, [fp, #-36]
	mov	r2, r3
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-40]
	bl	list_append
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-40]
	bl	mal_list
	mov	r3, r0
	b	.L579
.L578:
	ldr	r2, .L581+36
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-40]
	bl	text_display_position
	mov	r3, r0
	mov	r2, r3
	mov	r1, #1
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L579
.L566:
	ldr	r1, .L581+40
	ldr	r0, [fp, #-40]
	bl	read_symbol_list
	mov	r3, r0
	b	.L579
.L565:
	ldr	r0, [fp, #-40]
	bl	read_hashmap
	mov	r3, r0
	b	.L579
.L564:
	ldr	r2, .L581+44
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-40]
	bl	text_display_position
	mov	r3, r0
	mov	r2, r3
	mov	r1, #1
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L579
.L563:
	ldr	r1, .L581+48
	ldr	r0, [fp, #-40]
	bl	read_symbol_list
	mov	r3, r0
	b	.L579
.L561:
	ldr	r1, .L581+52
	ldr	r0, [fp, #-40]
	bl	read_symbol_list
	mov	r3, r0
	b	.L579
.L560:
	ldr	r0, [fp, #-40]
	bl	read_atom
	mov	r3, r0
.L579:
	ldr	r2, .L581
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L580
	bl	__stack_chk_fail
.L580:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L582:
	.align	2
.L581:
	.word	.LC81
	.word	.LC69
	.word	.LC70
	.word	.LC71
	.word	.LC72
	.word	.LC73
	.word	.LC74
	.word	.LC75
	.word	.LC37
	.word	.LC76
	.word	.LC77
	.word	.LC78
	.word	.LC79
	.word	.LC80
	.size	read_form, .-read_form
	.align	2
	.global	read_list
	.syntax unified
	.arm
	.fpu softvfp
	.type	read_list, %function
read_list:
	@ 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	r0, [fp, #-8]
	bl	read_parenthesis
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	read_list, .-read_list
	.section	.rodata
	.align	2
.LC82:
	.ascii	"unbalanced parenthesis, expected ')'\000"
	.align	2
.LC83:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	read_parenthesis
	.syntax unified
	.arm
	.fpu softvfp
	.type	read_parenthesis, %function
read_parenthesis:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #36
	str	r0, [fp, #-40]
	ldr	r3, .L598
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r0, [fp, #-40]
	bl	reader_peek
	str	r0, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	reader_next
	str	r0, [fp, #-28]
	mov	r1, #0
	ldr	r0, [fp, #-40]
	bl	list_make
	str	r0, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	reader_peek
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	beq	.L586
	cmp	r3, #7
	beq	.L587
	b	.L597
.L586:
	ldr	r2, .L598+4
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	text_display_position
	mov	r3, r0
	mov	r2, r3
	mov	r1, #1
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L595
.L587:
	ldr	r0, [fp, #-40]
	bl	reader_next
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	mal_list
	mov	r3, r0
	b	.L595
.L597:
	b	.L590
.L594:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	cmp	r3, #5
	bne	.L591
	ldr	r0, [fp, #-40]
	bl	reader_next
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	bne	.L592
	ldr	r2, .L598+4
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	text_display_position
	mov	r3, r0
	mov	r2, r3
	mov	r1, #1
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L595
.L592:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L593
	ldr	r3, [fp, #-40]
	ldr	r4, [r3, #28]
	ldr	r1, .L598+8
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #32
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	env_get_by_text
	ldr	r3, [fp, #-32]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	list_append
.L593:
	ldr	r0, [fp, #-40]
	bl	read_form
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	list_append
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	mal_list
	mov	r3, r0
	b	.L595
.L591:
	ldr	r0, [fp, #-40]
	bl	read_form
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	list_append
	ldr	r0, [fp, #-40]
	bl	reader_peek
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	bne	.L590
	ldr	r2, .L598+4
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	text_display_position
	mov	r3, r0
	mov	r2, r3
	mov	r1, #1
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L595
.L590:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	cmp	r3, #7
	bne	.L594
	ldr	r0, [fp, #-40]
	bl	reader_next
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-40]
	ldr	r4, [r3, #28]
	ldr	r1, .L598+8
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #32
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	env_get_by_text
	ldr	r3, [fp, #-32]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	list_append
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	mal_list
	mov	r3, r0
.L595:
	ldr	r2, .L598
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L596
	bl	__stack_chk_fail
.L596:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L599:
	.align	2
.L598:
	.word	.LC83
	.word	.LC82
	.word	.LC37
	.size	read_parenthesis, .-read_parenthesis
	.align	2
	.global	read_vector
	.syntax unified
	.arm
	.fpu softvfp
	.type	read_vector, %function
read_vector:
	@ 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	r0, [fp, #-8]
	bl	read_brackets
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	read_vector, .-read_vector
	.section	.rodata
	.align	2
.LC84:
	.ascii	"unbalanced brackets, expected ']'\000"
	.align	2
.LC85:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	read_brackets
	.syntax unified
	.arm
	.fpu softvfp
	.type	read_brackets, %function
read_brackets:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #36
	str	r0, [fp, #-40]
	ldr	r3, .L615
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r0, [fp, #-40]
	bl	reader_peek
	str	r0, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	reader_next
	str	r0, [fp, #-28]
	mov	r1, #0
	ldr	r0, [fp, #-40]
	bl	vector_make
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	beq	.L603
	cmp	r3, #11
	beq	.L604
	b	.L614
.L603:
	ldr	r2, .L615+4
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	text_display_position
	mov	r3, r0
	mov	r2, r3
	mov	r1, #1
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L612
.L604:
	ldr	r0, [fp, #-40]
	bl	reader_next
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	mal_vector
	mov	r3, r0
	b	.L612
.L614:
	b	.L607
.L611:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	cmp	r3, #5
	bne	.L608
	ldr	r0, [fp, #-40]
	bl	reader_next
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	bne	.L609
	ldr	r2, .L615+4
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	text_display_position
	mov	r3, r0
	mov	r2, r3
	mov	r1, #1
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L612
.L609:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L610
	ldr	r3, [fp, #-40]
	ldr	r4, [r3, #28]
	ldr	r1, .L615+8
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #32
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	env_get_by_text
	ldr	r3, [fp, #-32]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	vector_append
.L610:
	ldr	r0, [fp, #-40]
	bl	read_form
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	vector_append
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	mal_vector
	mov	r3, r0
	b	.L612
.L608:
	ldr	r0, [fp, #-40]
	bl	read_form
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	vector_append
	ldr	r0, [fp, #-40]
	bl	reader_peek
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	bne	.L607
	ldr	r2, .L615+4
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	text_display_position
	mov	r3, r0
	mov	r2, r3
	mov	r1, #1
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L612
.L607:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	cmp	r3, #11
	bne	.L611
	ldr	r0, [fp, #-40]
	bl	reader_next
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-40]
	ldr	r4, [r3, #28]
	ldr	r1, .L615+8
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #32
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	env_get_by_text
	ldr	r3, [fp, #-32]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	vector_append
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	mal_vector
	mov	r3, r0
.L612:
	ldr	r2, .L615
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L613
	bl	__stack_chk_fail
.L613:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L616:
	.align	2
.L615:
	.word	.LC85
	.word	.LC84
	.word	.LC37
	.size	read_brackets, .-read_brackets
	.align	2
	.global	read_hashmap
	.syntax unified
	.arm
	.fpu softvfp
	.type	read_hashmap, %function
read_hashmap:
	@ 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	r0, [fp, #-8]
	bl	read_braces
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	read_hashmap, .-read_hashmap
	.section	.rodata
	.align	2
.LC86:
	.ascii	"unbalanced braces, expected '}'\000"
	.align	2
.LC87:
	.ascii	"unexpected colon ':'\000"
	.align	2
.LC88:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	read_braces
	.syntax unified
	.arm
	.fpu softvfp
	.type	read_braces, %function
read_braces:
	@ 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]
	ldr	r3, .L636
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r0, [fp, #-48]
	bl	reader_peek
	str	r0, [fp, #-28]
	ldr	r0, [fp, #-48]
	bl	reader_next
	str	r0, [fp, #-36]
	mov	r1, #0
	ldr	r0, [fp, #-48]
	bl	hashmap_make
	str	r0, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-40]
	mov	r3, #0
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	beq	.L620
	cmp	r3, #15
	beq	.L621
	b	.L634
.L620:
	ldr	r2, .L636+4
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-48]
	bl	text_display_position
	mov	r3, r0
	mov	r2, r3
	mov	r1, #1
	ldr	r0, [fp, #-48]
	bl	mal_error
	mov	r3, r0
	b	.L632
.L621:
	ldr	r0, [fp, #-48]
	bl	reader_next
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-48]
	bl	mal_hashmap
	str	r0, [fp, #-32]
	ldr	r3, [fp, #-32]
	b	.L632
.L634:
	b	.L624
.L631:
	mov	r3, #0
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #12]
	cmp	r3, #5
	bne	.L625
	ldr	r2, .L636+8
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-48]
	bl	text_display_position
	mov	r3, r0
	mov	r2, r3
	mov	r1, #1
	ldr	r0, [fp, #-48]
	bl	mal_error
	mov	r3, r0
	b	.L632
.L625:
	ldr	r0, [fp, #-48]
	bl	read_form
	str	r0, [fp, #-20]
	ldr	r0, [fp, #-48]
	bl	reader_peek
	str	r0, [fp, #-36]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #12]
	cmp	r3, #5
	bne	.L626
	ldr	r0, [fp, #-48]
	bl	reader_next
	str	r0, [fp, #-36]
.L626:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	beq	.L627
	cmp	r3, #15
	beq	.L628
	b	.L635
.L627:
	ldr	r2, .L636+4
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-48]
	bl	text_display_position
	mov	r3, r0
	mov	r2, r3
	mov	r1, #1
	ldr	r0, [fp, #-48]
	bl	mal_error
	mov	r3, r0
	b	.L632
.L628:
	ldr	r3, [fp, #-48]
	ldr	r4, [r3, #28]
	ldr	r1, .L636+12
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #40
	mov	r1, r4
	ldr	r0, [fp, #-48]
	bl	env_get_by_text
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-32]
	b	.L630
.L635:
	ldr	r0, [fp, #-48]
	bl	read_form
	str	r0, [fp, #-32]
	nop
.L630:
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-20]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-48]
	bl	hashmap_set
	ldr	r0, [fp, #-48]
	bl	reader_peek
	str	r0, [fp, #-36]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	bne	.L624
	ldr	r2, .L636+4
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-48]
	bl	text_display_position
	mov	r3, r0
	mov	r2, r3
	mov	r1, #1
	ldr	r0, [fp, #-48]
	bl	mal_error
	mov	r3, r0
	b	.L632
.L624:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #12]
	cmp	r3, #15
	bne	.L631
	ldr	r0, [fp, #-48]
	bl	reader_next
	str	r0, [fp, #-36]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-48]
	bl	mal_hashmap
	mov	r3, r0
.L632:
	ldr	r2, .L636
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L633
	bl	__stack_chk_fail
.L633:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L637:
	.align	2
.L636:
	.word	.LC88
	.word	.LC86
	.word	.LC87
	.word	.LC37
	.size	read_braces, .-read_braces
	.section	.rodata
	.align	2
.LC89:
	.ascii	"true\000"
	.align	2
.LC90:
	.ascii	"false\000"
	.align	2
.LC91:
	.ascii	"unknown atom type\000"
	.align	2
.LC92:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	read_atom
	.syntax unified
	.arm
	.fpu softvfp
	.type	read_atom, %function
read_atom:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-32]
	ldr	r3, .L656
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r0, [fp, #-32]
	bl	reader_peek
	str	r0, [fp, #-20]
	ldr	r0, [fp, #-32]
	bl	reader_next
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	cmp	r3, #22
	ldrls	pc, [pc, r3, asl #2]
	b	.L639
.L641:
	.word	.L648
	.word	.L647
	.word	.L639
	.word	.L646
	.word	.L639
	.word	.L639
	.word	.L639
	.word	.L639
	.word	.L639
	.word	.L639
	.word	.L639
	.word	.L639
	.word	.L639
	.word	.L639
	.word	.L639
	.word	.L639
	.word	.L639
	.word	.L639
	.word	.L645
	.word	.L644
	.word	.L643
	.word	.L642
	.word	.L640
.L648:
	ldr	r0, [fp, #-32]
	bl	mal_eoi
	mov	r3, r0
	b	.L654
.L647:
	ldr	r0, [fp, #-32]
	bl	mal_nil
	mov	r3, r0
	b	.L654
.L646:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, .L656+4
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	text_cmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L650
	ldr	r3, [fp, #-32]
	ldr	r4, [r3, #28]
	ldr	r1, .L656+8
	ldr	r0, [fp, #-32]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #24
	mov	r1, r4
	ldr	r0, [fp, #-32]
	bl	env_get_by_text
	ldr	r3, [fp, #-24]
	b	.L654
.L650:
	ldr	r3, [fp, #-32]
	ldr	r4, [r3, #28]
	ldr	r1, .L656+12
	ldr	r0, [fp, #-32]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #24
	mov	r1, r4
	ldr	r0, [fp, #-32]
	bl	env_get_by_text
	ldr	r3, [fp, #-24]
	b	.L654
.L645:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, .L656+16
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	text_cmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L651
	ldr	r3, [fp, #-32]
	ldr	r4, [r3, #28]
	ldr	r1, .L656+20
	ldr	r0, [fp, #-32]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #24
	mov	r1, r4
	ldr	r0, [fp, #-32]
	bl	env_get_by_text
	ldr	r3, [fp, #-24]
	b	.L654
.L651:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, .L656+4
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	text_cmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L652
	ldr	r3, [fp, #-32]
	ldr	r4, [r3, #28]
	ldr	r1, .L656+8
	ldr	r0, [fp, #-32]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #24
	mov	r1, r4
	ldr	r0, [fp, #-32]
	bl	env_get_by_text
	ldr	r3, [fp, #-24]
	b	.L654
.L652:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, .L656+24
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	text_cmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L653
	ldr	r3, [fp, #-32]
	ldr	r4, [r3, #28]
	ldr	r1, .L656+12
	ldr	r0, [fp, #-32]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #24
	mov	r1, r4
	ldr	r0, [fp, #-32]
	bl	env_get_by_text
	ldr	r3, [fp, #-24]
	b	.L654
.L653:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	mal_symbol
	mov	r3, r0
	b	.L654
.L642:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	mal_keyword
	mov	r3, r0
	b	.L654
.L640:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	mal_string
	mov	r3, r0
	b	.L654
.L644:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	text_to_integer
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	mal_integer
	mov	r3, r0
	b	.L654
.L643:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	text_to_decimal
	mov	r2, r0
	mov	r3, r1
	ldr	r0, [fp, #-32]
	bl	mal_decimal
	mov	r3, r0
	b	.L654
.L639:
	ldr	r2, .L656+28
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-32]
	bl	text_display_position
	mov	r3, r0
	mov	r2, r3
	mov	r1, #1
	ldr	r0, [fp, #-32]
	bl	mal_error
	mov	r3, r0
.L654:
	ldr	r2, .L656
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L655
	bl	__stack_chk_fail
.L655:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L657:
	.align	2
.L656:
	.word	.LC92
	.word	.LC89
	.word	.LC55
	.word	.LC56
	.word	.LC49
	.word	.LC37
	.word	.LC90
	.word	.LC91
	.size	read_atom, .-read_atom
	.section	.rodata
	.align	2
.LC93:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	read_symbol_list
	.syntax unified
	.arm
	.fpu softvfp
	.type	read_symbol_list, %function
read_symbol_list:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	ldr	r3, .L661
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r1, #0
	ldr	r0, [fp, #-32]
	bl	list_make
	str	r0, [fp, #-20]
	ldr	r0, [fp, #-32]
	bl	reader_next
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	text_make
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	mal_symbol
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-32]
	bl	list_append
	ldr	r0, [fp, #-32]
	bl	read_form
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-32]
	bl	list_append
	ldr	r3, [fp, #-32]
	ldr	r4, [r3, #28]
	ldr	r1, .L661+4
	ldr	r0, [fp, #-32]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #24
	mov	r1, r4
	ldr	r0, [fp, #-32]
	bl	env_get_by_text
	ldr	r3, [fp, #-24]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-32]
	bl	list_append
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-32]
	bl	mal_list
	mov	r3, r0
	ldr	r2, .L661
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L660
	bl	__stack_chk_fail
.L660:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L662:
	.align	2
.L661:
	.word	.LC93
	.word	.LC37
	.size	read_symbol_list, .-read_symbol_list
	.align	2
	.global	mal_make
	.syntax unified
	.arm
	.fpu softvfp
	.type	mal_make, %function
mal_make:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	mov	r1, #40
	mov	r0, #1
	bl	calloc
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-20]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #16]
	ldr	r0, [fp, #-16]
	bl	token_make
	mov	r2, r0
	ldr	r3, [fp, #-8]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-8]
	mov	r2, #6
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	add	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	mal_make, .-mal_make
	.section	.rodata
	.align	2
.LC94:
	.ascii	"eoi\000"
	.align	2
.LC95:
	.ascii	"eoi: eoi\000"
	.text
	.align	2
	.global	mal_eoi
	.syntax unified
	.arm
	.fpu softvfp
	.type	mal_eoi, %function
mal_eoi:
	@ 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]
	mov	r1, #0
	ldr	r0, [fp, #-24]
	bl	mal_make
	str	r0, [fp, #-20]
	ldr	r1, .L667
	ldr	r0, [fp, #-24]
	bl	text_make
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-12]
	ldr	r1, .L667+4
	ldr	r0, [fp, #-24]
	bl	text_make
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-16]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #24]
	ldr	r2, [fp, #-16]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #32]
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-24]
	bl	text_hash_jenkins
	mov	r2, r0
	ldr	r3, [fp, #-20]
	str	r2, [r3, #36]
	ldr	r3, [fp, #-20]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L668:
	.align	2
.L667:
	.word	.LC94
	.word	.LC95
	.size	mal_eoi, .-mal_eoi
	.align	2
	.global	mal_nil
	.syntax unified
	.arm
	.fpu softvfp
	.type	mal_nil, %function
mal_nil:
	@ 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]
	mov	r1, #6
	ldr	r0, [fp, #-24]
	bl	mal_make
	str	r0, [fp, #-20]
	ldr	r1, .L671
	ldr	r0, [fp, #-24]
	bl	text_make
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-12]
	ldr	r1, .L671+4
	ldr	r0, [fp, #-24]
	bl	text_make
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-16]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #24]
	ldr	r2, [fp, #-16]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #32]
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-24]
	bl	text_hash_jenkins
	mov	r2, r0
	ldr	r3, [fp, #-20]
	str	r2, [r3, #36]
	ldr	r3, [fp, #-20]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L672:
	.align	2
.L671:
	.word	.LC49
	.word	.LC37
	.size	mal_nil, .-mal_nil
	.section	.rodata
	.align	2
.LC96:
	.ascii	"error: \000"
	.align	2
.LC97:
	.ascii	"OK: \000"
	.align	2
.LC98:
	.ascii	"READER ERROR: \000"
	.align	2
.LC99:
	.ascii	"RUNTIME ERROR: \000"
	.align	2
.LC100:
	.ascii	"PRINTER ERROR: \000"
	.align	2
.LC101:
	.ascii	"UNKNOWN ERROR: \000"
	.text
	.align	2
	.global	mal_error
	.syntax unified
	.arm
	.fpu softvfp
	.type	mal_error, %function
mal_error:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	mov	r1, #1
	ldr	r0, [fp, #-24]
	bl	mal_make
	str	r0, [fp, #-16]
	ldr	r1, .L682
	ldr	r0, [fp, #-24]
	bl	text_make
	mov	r3, r0
	ldr	r2, [fp, #-32]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	text_concat_text
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-28]
	cmp	r3, #3
	ldrls	pc, [pc, r3, asl #2]
	b	.L674
.L676:
	.word	.L679
	.word	.L678
	.word	.L677
	.word	.L675
.L679:
	ldr	r1, .L682+4
	ldr	r0, [fp, #-24]
	bl	text_make
	mov	r3, r0
	ldr	r2, [fp, #-32]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	text_concat_text
	str	r0, [fp, #-20]
	b	.L680
.L678:
	ldr	r1, .L682+8
	ldr	r0, [fp, #-24]
	bl	text_make
	mov	r3, r0
	ldr	r2, [fp, #-32]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	text_concat_text
	str	r0, [fp, #-20]
	b	.L680
.L677:
	ldr	r1, .L682+12
	ldr	r0, [fp, #-24]
	bl	text_make
	mov	r3, r0
	ldr	r2, [fp, #-32]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	text_concat_text
	str	r0, [fp, #-20]
	b	.L680
.L675:
	ldr	r1, .L682+16
	ldr	r0, [fp, #-24]
	bl	text_make
	mov	r3, r0
	ldr	r2, [fp, #-32]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	text_concat_text
	str	r0, [fp, #-20]
	b	.L680
.L674:
	ldr	r1, .L682+20
	ldr	r0, [fp, #-24]
	bl	text_make
	mov	r3, r0
	ldr	r2, [fp, #-32]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	text_concat_text
	str	r0, [fp, #-20]
	nop
.L680:
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-20]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #24]
	ldr	r2, [fp, #-20]
	str	r2, [r3, #16]
	ldr	r2, [fp, #-32]
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-24]
	bl	error_append
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #32]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	text_hash_jenkins
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #36]
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L683:
	.align	2
.L682:
	.word	.LC96
	.word	.LC97
	.word	.LC98
	.word	.LC99
	.word	.LC100
	.word	.LC101
	.size	mal_error, .-mal_error
	.section	.rodata
	.align	2
.LC102:
	.ascii	"boolean: \000"
	.text
	.align	2
	.global	mal_boolean
	.syntax unified
	.arm
	.fpu softvfp
	.type	mal_boolean, %function
mal_boolean:
	@ 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]
	str	r1, [fp, #-28]
	mov	r1, #2
	ldr	r0, [fp, #-24]
	bl	mal_make
	str	r0, [fp, #-16]
	ldr	r1, .L688
	ldr	r0, [fp, #-24]
	bl	text_make
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	beq	.L685
	ldr	r1, .L688+4
	ldr	r0, [fp, #-24]
	bl	text_make
	str	r0, [fp, #-20]
	b	.L686
.L685:
	ldr	r1, .L688+8
	ldr	r0, [fp, #-24]
	bl	text_make
	str	r0, [fp, #-20]
.L686:
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-28]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #24]
	ldr	r2, [fp, #-20]
	str	r2, [r3, #16]
	ldr	r2, [fp, #-20]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	text_concat_text
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #32]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	text_hash_jenkins
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #36]
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L689:
	.align	2
.L688:
	.word	.LC102
	.word	.LC89
	.word	.LC90
	.size	mal_boolean, .-mal_boolean
	.section	.rodata
	.align	2
.LC103:
	.ascii	"symbol: \000"
	.text
	.align	2
	.global	mal_symbol
	.syntax unified
	.arm
	.fpu softvfp
	.type	mal_symbol, %function
mal_symbol:
	@ 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]
	str	r1, [fp, #-28]
	mov	r1, #3
	ldr	r0, [fp, #-24]
	bl	mal_make
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-12]
	ldr	r1, .L692
	ldr	r0, [fp, #-24]
	bl	text_make
	mov	r3, r0
	ldr	r2, [fp, #-28]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	text_concat_text
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-28]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #24]
	ldr	r2, [fp, #-28]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #32]
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-24]
	bl	text_hash_jenkins
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #36]
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L693:
	.align	2
.L692:
	.word	.LC103
	.size	mal_symbol, .-mal_symbol
	.section	.rodata
	.align	2
.LC104:
	.ascii	"keyword: \000"
	.text
	.align	2
	.global	mal_keyword
	.syntax unified
	.arm
	.fpu softvfp
	.type	mal_keyword, %function
mal_keyword:
	@ 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]
	str	r1, [fp, #-28]
	mov	r1, #4
	ldr	r0, [fp, #-24]
	bl	mal_make
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-12]
	ldr	r1, .L696
	ldr	r0, [fp, #-24]
	bl	text_make
	mov	r3, r0
	ldr	r2, [fp, #-28]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	text_concat_text
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-28]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #24]
	ldr	r2, [fp, #-28]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #32]
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-24]
	bl	text_hash_jenkins
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #36]
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L697:
	.align	2
.L696:
	.word	.LC104
	.size	mal_keyword, .-mal_keyword
	.section	.rodata
	.align	2
.LC105:
	.ascii	"string: \000"
	.text
	.align	2
	.global	mal_string
	.syntax unified
	.arm
	.fpu softvfp
	.type	mal_string, %function
mal_string:
	@ 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]
	str	r1, [fp, #-28]
	mov	r1, #5
	ldr	r0, [fp, #-24]
	bl	mal_make
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-12]
	ldr	r1, .L700
	ldr	r0, [fp, #-24]
	bl	text_make
	mov	r3, r0
	ldr	r2, [fp, #-28]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	text_concat_text
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-28]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #24]
	ldr	r2, [fp, #-28]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #32]
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-24]
	bl	text_hash_jenkins
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #36]
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L701:
	.align	2
.L700:
	.word	.LC105
	.size	mal_string, .-mal_string
	.section	.rodata
	.align	2
.LC106:
	.ascii	"function: \000"
	.text
	.align	2
	.global	mal_function
	.syntax unified
	.arm
	.fpu softvfp
	.type	mal_function, %function
mal_function:
	@ 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]
	str	r1, [fp, #-28]
	mov	r1, #13
	ldr	r0, [fp, #-24]
	bl	mal_make
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-12]
	ldr	r1, .L704
	ldr	r0, [fp, #-24]
	bl	text_make
	mov	r1, r0
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	mov	r2, r3
	ldr	r0, [fp, #-24]
	bl	text_concat_text
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-28]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #24]
	ldr	r2, [fp, #-28]
	ldr	r2, [r2, #16]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #32]
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-24]
	bl	text_hash_jenkins
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #36]
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L705:
	.align	2
.L704:
	.word	.LC106
	.size	mal_function, .-mal_function
	.section	.rodata
	.align	2
.LC107:
	.ascii	"closure: \000"
	.text
	.align	2
	.global	mal_closure
	.syntax unified
	.arm
	.fpu softvfp
	.type	mal_closure, %function
mal_closure:
	@ 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]
	str	r1, [fp, #-28]
	mov	r1, #14
	ldr	r0, [fp, #-24]
	bl	mal_make
	str	r0, [fp, #-16]
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-24]
	bl	closure_text
	str	r0, [fp, #-12]
	ldr	r1, .L708
	ldr	r0, [fp, #-24]
	bl	text_make
	mov	r3, r0
	ldr	r2, [fp, #-12]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	text_concat_text
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-28]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #24]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #32]
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-24]
	bl	text_hash_jenkins
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #36]
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L709:
	.align	2
.L708:
	.word	.LC107
	.size	mal_closure, .-mal_closure
	.section	.rodata
	.align	2
.LC108:
	.ascii	"list: \000"
	.text
	.align	2
	.global	mal_list
	.syntax unified
	.arm
	.fpu softvfp
	.type	mal_list, %function
mal_list:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	mov	r1, #7
	ldr	r0, [fp, #-32]
	bl	mal_make
	str	r0, [fp, #-24]
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	list_text
	str	r0, [fp, #-20]
	ldr	r1, .L712
	ldr	r0, [fp, #-32]
	bl	text_make
	mov	r4, r0
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	list_text
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-32]
	bl	text_concat_text
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-36]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #24]
	ldr	r2, [fp, #-20]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-16]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-20]
	str	r2, [r3, #32]
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-32]
	bl	text_hash_jenkins
	mov	r2, r0
	ldr	r3, [fp, #-24]
	str	r2, [r3, #36]
	ldr	r3, [fp, #-24]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L713:
	.align	2
.L712:
	.word	.LC108
	.size	mal_list, .-mal_list
	.section	.rodata
	.align	2
.LC109:
	.ascii	"vector: \000"
	.text
	.align	2
	.global	mal_vector
	.syntax unified
	.arm
	.fpu softvfp
	.type	mal_vector, %function
mal_vector:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	mov	r1, #8
	ldr	r0, [fp, #-32]
	bl	mal_make
	str	r0, [fp, #-24]
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	vector_text
	str	r0, [fp, #-20]
	ldr	r1, .L716
	ldr	r0, [fp, #-32]
	bl	text_make
	mov	r4, r0
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	vector_text
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-32]
	bl	text_concat_text
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-36]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #24]
	ldr	r2, [fp, #-20]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-16]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-20]
	str	r2, [r3, #32]
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-32]
	bl	text_hash_jenkins
	mov	r2, r0
	ldr	r3, [fp, #-24]
	str	r2, [r3, #36]
	ldr	r3, [fp, #-24]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L717:
	.align	2
.L716:
	.word	.LC109
	.size	mal_vector, .-mal_vector
	.section	.rodata
	.align	2
.LC110:
	.ascii	"hashmap: \000"
	.text
	.align	2
	.global	mal_hashmap
	.syntax unified
	.arm
	.fpu softvfp
	.type	mal_hashmap, %function
mal_hashmap:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	mov	r1, #9
	ldr	r0, [fp, #-32]
	bl	mal_make
	str	r0, [fp, #-24]
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	hashmap_text
	str	r0, [fp, #-20]
	ldr	r1, .L720
	ldr	r0, [fp, #-32]
	bl	text_make
	mov	r4, r0
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	hashmap_text
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-32]
	bl	text_concat_text
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-36]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #24]
	ldr	r2, [fp, #-20]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-16]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-20]
	str	r2, [r3, #32]
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-32]
	bl	text_hash_jenkins
	mov	r2, r0
	ldr	r3, [fp, #-24]
	str	r2, [r3, #36]
	ldr	r3, [fp, #-24]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L721:
	.align	2
.L720:
	.word	.LC110
	.size	mal_hashmap, .-mal_hashmap
	.section	.rodata
	.align	2
.LC111:
	.ascii	"env: \000"
	.text
	.align	2
	.global	mal_env
	.syntax unified
	.arm
	.fpu softvfp
	.type	mal_env, %function
mal_env:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	mov	r1, #12
	ldr	r0, [fp, #-32]
	bl	mal_make
	str	r0, [fp, #-24]
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	env_text
	str	r0, [fp, #-20]
	ldr	r1, .L724
	ldr	r0, [fp, #-32]
	bl	text_make
	mov	r4, r0
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	env_text
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-32]
	bl	text_concat_text
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-36]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #24]
	ldr	r2, [fp, #-20]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-16]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-20]
	str	r2, [r3, #32]
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-32]
	bl	text_hash_jenkins
	mov	r2, r0
	ldr	r3, [fp, #-24]
	str	r2, [r3, #36]
	ldr	r3, [fp, #-24]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L725:
	.align	2
.L724:
	.word	.LC111
	.size	mal_env, .-mal_env
	.section	.rodata
	.align	2
.LC112:
	.ascii	"integer: \000"
	.text
	.align	2
	.global	mal_integer
	.syntax unified
	.arm
	.fpu softvfp
	.type	mal_integer, %function
mal_integer:
	@ 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]
	str	r1, [fp, #-28]
	mov	r1, #10
	ldr	r0, [fp, #-24]
	bl	mal_make
	str	r0, [fp, #-16]
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-24]
	bl	text_make_integer
	str	r0, [fp, #-12]
	ldr	r1, .L728
	ldr	r0, [fp, #-24]
	bl	text_make
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-28]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #24]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #16]
	ldr	r2, [fp, #-12]
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-24]
	bl	text_concat_text
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #32]
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-24]
	bl	text_hash_jenkins
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #36]
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L729:
	.align	2
.L728:
	.word	.LC112
	.size	mal_integer, .-mal_integer
	.section	.rodata
	.align	2
.LC113:
	.ascii	"decimal: \000"
	.text
	.align	2
	.global	mal_decimal
	.syntax unified
	.arm
	.fpu softvfp
	.type	mal_decimal, %function
mal_decimal:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	mov	r1, #11
	ldr	r0, [fp, #-24]
	bl	mal_make
	str	r0, [fp, #-16]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-24]
	bl	text_make_decimal
	str	r0, [fp, #-12]
	ldr	r1, .L732
	ldr	r0, [fp, #-24]
	bl	text_make
	str	r0, [fp, #-8]
	ldr	r1, [fp, #-16]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	str	r2, [r1, #16]
	str	r3, [r1, #20]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #24]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #16]
	ldr	r2, [fp, #-12]
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-24]
	bl	text_concat_text
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #32]
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-24]
	bl	text_hash_jenkins
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #36]
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L733:
	.align	2
.L732:
	.word	.LC113
	.size	mal_decimal, .-mal_decimal
	.align	2
	.global	mal_as_str
	.syntax unified
	.arm
	.fpu softvfp
	.type	mal_as_str, %function
mal_as_str:
	@ 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]
	ldr	r1, .L738
	ldr	r0, [fp, #-16]
	bl	text_make
	str	r0, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L735
.L736:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	ldr	r2, [fp, #-28]
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L735:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #2
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bcc	.L736
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	mal_string
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L739:
	.align	2
.L738:
	.word	.LC25
	.size	mal_as_str, .-mal_as_str
	.section	.rodata
	.align	2
.LC114:
	.ascii	"error\000"
	.align	2
.LC115:
	.ascii	"integer\000"
	.align	2
.LC116:
	.ascii	"decimal\000"
	.align	2
.LC117:
	.ascii	"symbol\000"
	.align	2
.LC118:
	.ascii	"keyword\000"
	.align	2
.LC119:
	.ascii	"string\000"
	.align	2
.LC120:
	.ascii	"boolean\000"
	.align	2
.LC121:
	.ascii	"function\000"
	.align	2
.LC122:
	.ascii	"closure\000"
	.align	2
.LC123:
	.ascii	"env\000"
	.align	2
.LC124:
	.ascii	"'(unknown type)\000"
	.text
	.align	2
	.global	mal_type_of
	.syntax unified
	.arm
	.fpu softvfp
	.type	mal_type_of, %function
mal_type_of:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #12]
	cmp	r3, #14
	ldrls	pc, [pc, r3, asl #2]
	b	.L741
.L743:
	.word	.L757
	.word	.L756
	.word	.L755
	.word	.L754
	.word	.L753
	.word	.L752
	.word	.L751
	.word	.L750
	.word	.L749
	.word	.L748
	.word	.L747
	.word	.L746
	.word	.L745
	.word	.L744
	.word	.L742
.L757:
	ldr	r1, .L759
	ldr	r0, [fp, #-8]
	bl	text_make
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	mal_symbol
	mov	r3, r0
	b	.L758
.L751:
	ldr	r1, .L759+4
	ldr	r0, [fp, #-8]
	bl	text_make
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	mal_symbol
	mov	r3, r0
	b	.L758
.L756:
	ldr	r1, .L759+8
	ldr	r0, [fp, #-8]
	bl	text_make
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	mal_symbol
	mov	r3, r0
	b	.L758
.L747:
	ldr	r1, .L759+12
	ldr	r0, [fp, #-8]
	bl	text_make
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	mal_symbol
	mov	r3, r0
	b	.L758
.L746:
	ldr	r1, .L759+16
	ldr	r0, [fp, #-8]
	bl	text_make
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	mal_symbol
	mov	r3, r0
	b	.L758
.L754:
	ldr	r1, .L759+20
	ldr	r0, [fp, #-8]
	bl	text_make
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	mal_symbol
	mov	r3, r0
	b	.L758
.L753:
	ldr	r1, .L759+24
	ldr	r0, [fp, #-8]
	bl	text_make
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	mal_symbol
	mov	r3, r0
	b	.L758
.L752:
	ldr	r1, .L759+28
	ldr	r0, [fp, #-8]
	bl	text_make
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	mal_symbol
	mov	r3, r0
	b	.L758
.L755:
	ldr	r1, .L759+32
	ldr	r0, [fp, #-8]
	bl	text_make
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	mal_symbol
	mov	r3, r0
	b	.L758
.L744:
	ldr	r1, .L759+36
	ldr	r0, [fp, #-8]
	bl	text_make
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	mal_symbol
	mov	r3, r0
	b	.L758
.L742:
	ldr	r1, .L759+40
	ldr	r0, [fp, #-8]
	bl	text_make
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	mal_symbol
	mov	r3, r0
	b	.L758
.L750:
	ldr	r1, .L759+44
	ldr	r0, [fp, #-8]
	bl	text_make
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	mal_symbol
	mov	r3, r0
	b	.L758
.L749:
	ldr	r1, .L759+48
	ldr	r0, [fp, #-8]
	bl	text_make
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	mal_symbol
	mov	r3, r0
	b	.L758
.L748:
	ldr	r1, .L759+52
	ldr	r0, [fp, #-8]
	bl	text_make
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	mal_symbol
	mov	r3, r0
	b	.L758
.L745:
	ldr	r1, .L759+56
	ldr	r0, [fp, #-8]
	bl	text_make
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	mal_symbol
	mov	r3, r0
	b	.L758
.L741:
	ldr	r1, .L759+60
	ldr	r0, [fp, #-8]
	bl	text_make
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	mal_symbol
	mov	r3, r0
.L758:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L760:
	.align	2
.L759:
	.word	.LC94
	.word	.LC49
	.word	.LC114
	.word	.LC115
	.word	.LC116
	.word	.LC117
	.word	.LC118
	.word	.LC119
	.word	.LC120
	.word	.LC121
	.word	.LC122
	.word	.LC9
	.word	.LC10
	.word	.LC11
	.word	.LC123
	.word	.LC124
	.size	mal_type_of, .-mal_type_of
	.section	.rodata
	.align	2
.LC125:
	.ascii	":\000"
	.align	2
.LC126:
	.ascii	"\"\000"
	.align	2
.LC127:
	.ascii	"unknown type of object\000"
	.text
	.align	2
	.global	mal_print
	.syntax unified
	.arm
	.fpu softvfp
	.type	mal_print, %function
mal_print:
	@ 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]
	mov	r3, #1
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	cmp	r3, #14
	ldrls	pc, [pc, r3, asl #2]
	b	.L762
.L764:
	.word	.L778
	.word	.L777
	.word	.L776
	.word	.L775
	.word	.L774
	.word	.L773
	.word	.L772
	.word	.L771
	.word	.L770
	.word	.L769
	.word	.L768
	.word	.L767
	.word	.L766
	.word	.L765
	.word	.L763
.L778:
	ldr	r1, .L798
	ldr	r0, [fp, #-16]
	bl	text_make
	mov	r3, r0
	b	.L779
.L777:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	b	.L779
.L772:
	ldr	r1, .L798+4
	ldr	r0, [fp, #-16]
	bl	text_make
	mov	r3, r0
	b	.L779
.L776:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	beq	.L780
	ldr	r1, .L798+8
	ldr	r0, [fp, #-16]
	bl	text_make
	mov	r3, r0
	b	.L779
.L780:
	ldr	r1, .L798+12
	ldr	r0, [fp, #-16]
	bl	text_make
	mov	r3, r0
	b	.L779
.L765:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	b	.L779
.L763:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	closure_text
	mov	r3, r0
	b	.L779
.L771:
	ldr	r1, .L798+16
	ldr	r0, [fp, #-16]
	bl	text_make
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	beq	.L781
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #1
	bne	.L782
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L784
.L782:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	b	.L784
.L785:
	mov	r2, #32
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L784:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bcc	.L785
	ldr	r3, [fp, #-12]
	cmp	r3, #1
	beq	.L781
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L781
	ldr	r2, .L798+20
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
.L781:
	mov	r2, #41
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	mov	r2, #0
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	mov	r3, r0
	b	.L779
.L770:
	ldr	r1, .L798+24
	ldr	r0, [fp, #-16]
	bl	text_make
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	beq	.L786
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #1
	bne	.L787
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L789
.L787:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	b	.L789
.L790:
	mov	r2, #32
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L789:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bcc	.L790
	ldr	r3, [fp, #-12]
	cmp	r3, #1
	beq	.L786
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L786
	ldr	r2, .L798+20
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
.L786:
	mov	r2, #93
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	mov	r2, #0
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	mov	r3, r0
	b	.L779
.L769:
	ldr	r1, .L798+28
	ldr	r0, [fp, #-16]
	bl	text_make
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	beq	.L791
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	ldr	r2, .L798+32
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #4
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	mov	r3, #2
	str	r3, [fp, #-12]
	b	.L792
.L793:
	mov	r2, #32
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	ldr	r2, .L798+32
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	ldr	r3, [fp, #-12]
	add	r3, r3, #2
	str	r3, [fp, #-12]
.L792:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bcc	.L793
.L791:
	mov	r2, #125
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	mov	r2, #0
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	mov	r3, r0
	b	.L779
.L766:
	ldr	r1, .L798+28
	ldr	r0, [fp, #-16]
	bl	text_make
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	beq	.L794
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	ldr	r2, .L798+32
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #4
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	mov	r3, #2
	str	r3, [fp, #-12]
	b	.L795
.L796:
	mov	r2, #32
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	ldr	r2, .L798+32
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	ldr	r3, [fp, #-12]
	add	r3, r3, #2
	str	r3, [fp, #-12]
.L795:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bcc	.L796
.L794:
	mov	r2, #125
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	mov	r2, #0
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	mov	r3, r0
	b	.L779
.L775:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	b	.L779
.L774:
	ldr	r1, .L798+36
	ldr	r0, [fp, #-16]
	bl	text_make
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	mov	r3, r0
	b	.L779
.L773:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L797
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	text_escape
	mov	r3, r0
	b	.L779
.L797:
	ldr	r1, .L798+40
	ldr	r0, [fp, #-16]
	bl	text_make
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_concat_text
	mov	r2, #34
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_append
	mov	r3, r0
	b	.L779
.L768:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	text_make_integer
	mov	r3, r0
	b	.L779
.L767:
	ldr	r3, [fp, #-20]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-16]
	bl	text_make_decimal
	mov	r3, r0
	b	.L779
.L762:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #24]
	ldr	r2, .L798+44
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	text_display_position
	mov	r3, r0
	mov	r2, r3
	mov	r1, #3
	ldr	r0, [fp, #-16]
	bl	error_append
	mov	r3, r0
.L779:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L799:
	.align	2
.L798:
	.word	.LC25
	.word	.LC49
	.word	.LC89
	.word	.LC90
	.word	.LC48
	.word	.LC50
	.word	.LC58
	.word	.LC63
	.word	.LC64
	.word	.LC125
	.word	.LC126
	.word	.LC127
	.size	mal_print, .-mal_print
	.align	2
	.global	mal_free
	.syntax unified
	.arm
	.fpu softvfp
	.type	mal_free, %function
mal_free:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r0, [fp, #-12]
	bl	free
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	mal_free, .-mal_free
	.align	2
	.global	is_eoi
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_eoi, %function
is_eoi:
	@ 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, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	is_eoi, .-is_eoi
	.align	2
	.global	is_nil
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_nil, %function
is_nil:
	@ 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, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #6
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	is_nil, .-is_nil
	.align	2
	.global	is_true
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_true, %function
is_true:
	@ 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, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #2
	bne	.L806
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #16]
	cmp	r3, #1
	bne	.L806
	mov	r3, #1
	b	.L807
.L806:
	mov	r3, #0
.L807:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	is_true, .-is_true
	.align	2
	.global	is_false
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_false, %function
is_false:
	@ 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, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #2
	bne	.L810
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L810
	mov	r3, #1
	b	.L811
.L810:
	mov	r3, #0
.L811:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	is_false, .-is_false
	.align	2
	.global	is_error
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_error, %function
is_error:
	@ 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, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	is_error, .-is_error
	.align	2
	.global	is_integer
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_integer, %function
is_integer:
	@ 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, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #10
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	is_integer, .-is_integer
	.align	2
	.global	is_decimal
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_decimal, %function
is_decimal:
	@ 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, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #11
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	is_decimal, .-is_decimal
	.align	2
	.global	is_number
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_number, %function
is_number:
	@ 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, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #10
	beq	.L820
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #11
	bne	.L821
.L820:
	mov	r3, #1
	b	.L822
.L821:
	mov	r3, #0
.L822:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	is_number, .-is_number
	.align	2
	.global	is_symbol
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_symbol, %function
is_symbol:
	@ 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, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	is_symbol, .-is_symbol
	.align	2
	.global	is_keyword
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_keyword, %function
is_keyword:
	@ 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, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #4
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	is_keyword, .-is_keyword
	.align	2
	.global	is_string
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_string, %function
is_string:
	@ 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, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #5
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	is_string, .-is_string
	.align	2
	.global	is_self_evaluating
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_self_evaluating, %function
is_self_evaluating:
	@ 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, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #6
	beq	.L831
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #2
	beq	.L831
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #4
	beq	.L831
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #5
	beq	.L831
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #10
	beq	.L831
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #11
	bne	.L832
.L831:
	mov	r3, #1
	b	.L833
.L832:
	mov	r3, #0
.L833:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	is_self_evaluating, .-is_self_evaluating
	.align	2
	.global	is_list
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_list, %function
is_list:
	@ 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, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #7
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	is_list, .-is_list
	.align	2
	.global	is_vector
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_vector, %function
is_vector:
	@ 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, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #8
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	is_vector, .-is_vector
	.align	2
	.global	is_hashmap
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_hashmap, %function
is_hashmap:
	@ 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, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #9
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	is_hashmap, .-is_hashmap
	.align	2
	.global	is_env
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_env, %function
is_env:
	@ 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, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #12
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	is_env, .-is_env
	.align	2
	.global	is_sequential
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_sequential, %function
is_sequential:
	@ 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, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #7
	beq	.L844
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #8
	bne	.L845
.L844:
	mov	r3, #1
	b	.L846
.L845:
	mov	r3, #0
.L846:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	is_sequential, .-is_sequential
	.align	2
	.global	is_function
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_function, %function
is_function:
	@ 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, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #13
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	is_function, .-is_function
	.align	2
	.global	is_closure
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_closure, %function
is_closure:
	@ 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, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #14
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	is_closure, .-is_closure
	.align	2
	.global	is_callable
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_callable, %function
is_callable:
	@ 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, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #13
	beq	.L853
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #14
	bne	.L854
.L853:
	mov	r3, #1
	b	.L855
.L854:
	mov	r3, #0
.L855:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	is_callable, .-is_callable
	.align	2
	.global	lvm_make
	.syntax unified
	.arm
	.fpu softvfp
	.type	lvm_make, %function
lvm_make:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	mov	r1, #40
	mov	r0, #1
	bl	calloc
	mov	r3, r0
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	mov	r2, #0
	str	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	mov	r2, #8
	str	r2, [r3, #8]
	ldr	r3, [fp, #-12]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	mov	r2, #0
	str	r2, [r3, #20]
	ldr	r3, [fp, #-12]
	mov	r2, #2
	str	r2, [r3, #24]
	ldr	r3, [fp, #-12]
	mov	r2, #0
	str	r2, [r3, #32]
	ldr	r3, [fp, #-12]
	mov	r2, #0
	str	r2, [r3, #36]
	mov	r3, #0
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #0
	mov	r1, #0
	ldr	r0, [fp, #-12]
	bl	env_make
	mov	r2, r0
	ldr	r3, [fp, #-12]
	str	r2, [r3, #28]
	ldr	r0, [fp, #-12]
	bl	mal_nil
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-12]
	ldr	r1, [r3, #28]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-8]
	ldr	r0, [fp, #-12]
	bl	env_set
	mov	r1, #1
	ldr	r0, [fp, #-12]
	bl	mal_boolean
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-12]
	ldr	r1, [r3, #28]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-8]
	ldr	r0, [fp, #-12]
	bl	env_set
	mov	r1, #0
	ldr	r0, [fp, #-12]
	bl	mal_boolean
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-12]
	ldr	r1, [r3, #28]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-8]
	ldr	r0, [fp, #-12]
	bl	env_set
	ldr	r3, [fp, #-12]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	lvm_make, .-lvm_make
	.align	2
	.global	lvm_gc_mark
	.syntax unified
	.arm
	.fpu softvfp
	.type	lvm_gc_mark, %function
lvm_gc_mark:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	beq	.L895
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	cmp	r3, #10
	ldrls	pc, [pc, r3, asl #2]
	b	.L859
.L863:
	.word	.L859
	.word	.L859
	.word	.L871
	.word	.L870
	.word	.L869
	.word	.L868
	.word	.L867
	.word	.L866
	.word	.L865
	.word	.L864
	.word	.L862
.L865:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	lvm_gc_mark
	b	.L859
.L864:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	lvm_gc_mark
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #20]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	lvm_gc_mark
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #24]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	lvm_gc_mark
	b	.L859
.L871:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	str	r2, [r3, #4]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L874
.L875:
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	lvm_gc_mark
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L874:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	bcc	.L875
	b	.L859
.L870:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	str	r2, [r3, #4]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L876
.L877:
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	lvm_gc_mark
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L876:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	bcc	.L877
	b	.L859
.L868:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	str	r2, [r3, #4]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L878
.L879:
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	lvm_gc_mark
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L878:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	bcc	.L879
	b	.L859
.L869:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-16]
	ldr	r2, [r2, #12]
	str	r2, [r3, #4]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L880
.L881:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	lvm_gc_mark
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L880:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	bcc	.L881
	b	.L859
.L862:
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L882
.L883:
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	lvm_gc_mark
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L882:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	bcc	.L883
	b	.L859
.L866:
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L884
.L885:
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	lvm_gc_mark
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L884:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	bcc	.L885
	b	.L859
.L867:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	sub	r3, r3, #7
	cmp	r3, #7
	ldrls	pc, [pc, r3, asl #2]
	b	.L896
.L888:
	.word	.L893
	.word	.L892
	.word	.L891
	.word	.L896
	.word	.L896
	.word	.L890
	.word	.L889
	.word	.L887
.L889:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	lvm_gc_mark
	b	.L894
.L887:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	lvm_gc_mark
	b	.L894
.L893:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	lvm_gc_mark
	b	.L894
.L892:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	lvm_gc_mark
	b	.L894
.L891:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	lvm_gc_mark
	b	.L894
.L890:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	lvm_gc_mark
	b	.L894
.L896:
	nop
.L894:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #28]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	lvm_gc_mark
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #32]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	lvm_gc_mark
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #24]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	lvm_gc_mark
	b	.L859
.L895:
	nop
.L859:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	lvm_gc_mark, .-lvm_gc_mark
	.align	2
	.global	lvm_gc_mark_all
	.syntax unified
	.arm
	.fpu softvfp
	.type	lvm_gc_mark_all, %function
lvm_gc_mark_all:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #28]
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	lvm_gc_mark
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	lvm_gc_mark_all, .-lvm_gc_mark_all
	.align	2
	.global	lvm_gc_sweep
	.syntax unified
	.arm
	.fpu softvfp
	.type	lvm_gc_sweep, %function
lvm_gc_sweep:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-12]
	b	.L899
.L914:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	beq	.L900
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-12]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #10
	ldrls	pc, [pc, r3, asl #2]
	b	.L901
.L903:
	.word	.L913
	.word	.L912
	.word	.L911
	.word	.L910
	.word	.L909
	.word	.L908
	.word	.L907
	.word	.L906
	.word	.L905
	.word	.L904
	.word	.L902
.L913:
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_free
	b	.L901
.L905:
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	function_free
	b	.L901
.L904:
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	closure_free
	b	.L901
.L911:
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	list_free
	b	.L901
.L910:
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	vector_free
	b	.L901
.L908:
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	hashmap_free
	b	.L901
.L909:
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	env_free
	b	.L901
.L902:
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	error_free
	b	.L901
.L906:
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	comment_free
	b	.L901
.L912:
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	token_free
	b	.L901
.L907:
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	mal_free
	nop
.L901:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	sub	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	b	.L899
.L900:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	add	r3, r3, #8
	str	r3, [fp, #-12]
.L899:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L914
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	lvm_gc_sweep, .-lvm_gc_sweep
	.align	2
	.global	lvm_gc_print
	.syntax unified
	.arm
	.fpu softvfp
	.type	lvm_gc_print, %function
lvm_gc_print:
	@ 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]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	lvm_gc_print, .-lvm_gc_print
	.align	2
	.global	lvm_gc
	.syntax unified
	.arm
	.fpu softvfp
	.type	lvm_gc, %function
lvm_gc:
	@ 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	r0, [fp, #-8]
	bl	lvm_gc_mark_all
	ldr	r0, [fp, #-8]
	bl	lvm_gc_sweep
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L917
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #1
	b	.L918
.L917:
	mov	r3, #8
.L918:
	ldr	r2, [fp, #-8]
	str	r3, [r2, #8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3, #12]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	lvm_gc, .-lvm_gc
	.align	2
	.global	lvm_gc_free
	.syntax unified
	.arm
	.fpu softvfp
	.type	lvm_gc_free, %function
lvm_gc_free:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	nop
	b	.L921
.L934:
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #10
	ldrls	pc, [pc, r3, asl #2]
	b	.L921
.L923:
	.word	.L933
	.word	.L932
	.word	.L931
	.word	.L930
	.word	.L929
	.word	.L928
	.word	.L927
	.word	.L926
	.word	.L925
	.word	.L924
	.word	.L922
.L933:
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	text_free
	b	.L921
.L925:
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	function_free
	b	.L921
.L924:
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	closure_free
	b	.L921
.L931:
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	list_free
	b	.L921
.L930:
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	vector_free
	b	.L921
.L928:
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	hashmap_free
	b	.L921
.L929:
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	vector_free
	b	.L921
.L922:
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	error_free
	b	.L921
.L926:
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	comment_free
	b	.L921
.L932:
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	token_free
	b	.L921
.L927:
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	mal_free
	nop
.L921:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L934
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	lvm_gc_free, .-lvm_gc_free
	.align	2
	.global	lvm_free
	.syntax unified
	.arm
	.fpu softvfp
	.type	lvm_free, %function
lvm_free:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r0, r3
	bl	lvm_gc_free
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	lvm_free, .-lvm_free
	.section	.rodata
	.align	2
.LC128:
	.ascii	"var '\000"
	.align	2
.LC129:
	.ascii	"' not found\012\000"
	.align	2
.LC130:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	eval_ast
	.syntax unified
	.arm
	.fpu softvfp
	.type	eval_ast, %function
eval_ast:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	ldr	r3, .L951
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	sub	r3, r3, #3
	cmp	r3, #6
	ldrls	pc, [pc, r3, asl #2]
	b	.L938
.L940:
	.word	.L943
	.word	.L938
	.word	.L938
	.word	.L938
	.word	.L942
	.word	.L941
	.word	.L939
.L943:
	sub	r3, fp, #20
	ldr	r2, [fp, #-28]
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-24]
	bl	env_get
	mov	r3, r0
	cmp	r3, #0
	beq	.L944
	ldr	r3, [fp, #-20]
	b	.L949
.L944:
	ldr	r1, .L951+4
	ldr	r0, [fp, #-24]
	bl	text_make
	mov	r4, r0
	mov	r2, #0
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-24]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-24]
	bl	text_concat_text
	mov	r3, r0
	ldr	r2, .L951+8
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	text_concat
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-24]
	bl	mal_error
	mov	r3, r0
	b	.L949
.L942:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-32]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	eval_list
	mov	r3, r0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	mov	r0, r3
	bl	is_error
	mov	r3, r0
	cmp	r3, #0
	beq	.L946
	ldr	r3, [fp, #-20]
	b	.L949
.L946:
	ldr	r3, [fp, #-20]
	b	.L949
.L941:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-32]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	eval_vector
	mov	r3, r0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	mov	r0, r3
	bl	is_error
	mov	r3, r0
	cmp	r3, #0
	beq	.L947
	ldr	r3, [fp, #-20]
	b	.L949
.L947:
	ldr	r3, [fp, #-20]
	b	.L949
.L939:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-32]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	eval_hashmap
	mov	r3, r0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	mov	r0, r3
	bl	is_error
	mov	r3, r0
	cmp	r3, #0
	beq	.L948
	ldr	r3, [fp, #-20]
	b	.L949
.L948:
	ldr	r3, [fp, #-20]
	b	.L949
.L938:
	ldr	r3, [fp, #-28]
.L949:
	ldr	r2, .L951
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L950
	bl	__stack_chk_fail
.L950:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L952:
	.align	2
.L951:
	.word	.LC130
	.word	.LC128
	.word	.LC129
	.size	eval_ast, .-eval_ast
	.align	2
	.global	eval_list
	.syntax unified
	.arm
	.fpu softvfp
	.type	eval_list, %function
eval_list:
	@ 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]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	list_make
	str	r0, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L954
.L955:
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	lvm_eval
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	list_append
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L954:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bcc	.L955
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	mal_list
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	eval_list, .-eval_list
	.align	2
	.global	eval_vector
	.syntax unified
	.arm
	.fpu softvfp
	.type	eval_vector, %function
eval_vector:
	@ 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]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	vector_make
	str	r0, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L958
.L959:
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	lvm_eval
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	vector_append
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L958:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bcc	.L959
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	mal_vector
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	eval_vector, .-eval_vector
	.align	2
	.global	eval_hashmap
	.syntax unified
	.arm
	.fpu softvfp
	.type	eval_hashmap, %function
eval_hashmap:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	lsr	r3, r3, #1
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	hashmap_make
	str	r0, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L962
.L963:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r4, [r3]
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	lvm_eval
	mov	r3, r0
	mov	r2, r4
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-24]
	bl	hashmap_set
	ldr	r3, [fp, #-20]
	add	r3, r3, #2
	str	r3, [fp, #-20]
.L962:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	bcc	.L963
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-24]
	bl	mal_hashmap
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	eval_hashmap, .-eval_hashmap
	.section	.rodata
	.align	2
.LC131:
	.ascii	"'def!': expected proper list with two arguments\012"
	.ascii	"\000"
	.align	2
.LC132:
	.ascii	"'def!': expected symbol as first argument\012\000"
	.text
	.align	2
	.global	eval_def_bang
	.syntax unified
	.arm
	.fpu softvfp
	.type	eval_def_bang, %function
eval_def_bang:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	list_params
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	cmp	r3, #1
	bls	.L966
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	cmp	r3, #2
	bls	.L967
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L967
.L966:
	ldr	r1, .L971
	ldr	r0, [fp, #-24]
	bl	text_make
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-24]
	bl	mal_error
	mov	r3, r0
	b	.L968
.L967:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	is_symbol
	mov	r3, r0
	cmp	r3, #0
	bne	.L969
	ldr	r1, .L971+4
	ldr	r0, [fp, #-24]
	bl	text_make
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-24]
	bl	mal_error
	mov	r3, r0
	b	.L968
.L969:
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-24]
	bl	list_params
	mov	r3, r0
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-32]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	lvm_eval
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	is_error
	mov	r3, r0
	cmp	r3, #0
	bne	.L970
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-24]
	bl	env_set
.L970:
	ldr	r3, [fp, #-8]
.L968:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L972:
	.align	2
.L971:
	.word	.LC131
	.word	.LC132
	.size	eval_def_bang, .-eval_def_bang
	.section	.rodata
	.align	2
.LC133:
	.ascii	"'let*': missing binding list\012\000"
	.align	2
.LC134:
	.ascii	"'let*': first argument is not list or vector\012\000"
	.align	2
.LC135:
	.ascii	"'let*': expected an even number of binding pairs\012"
	.ascii	"\000"
	.align	2
.LC136:
	.ascii	"'let*': binding error, '\000"
	.align	2
.LC137:
	.ascii	"' is not a symbol\012\000"
	.align	2
.LC138:
	.ascii	"'let*': expected the proper list with exactly three"
	.ascii	" elements\012\000"
	.align	2
.LC139:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	eval_let_star
	.syntax unified
	.arm
	.fpu softvfp
	.type	eval_let_star, %function
eval_let_star:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #60
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	str	r2, [fp, #-56]
	ldr	r3, .L991
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-48]
	ldr	r4, [r3, #28]
	ldr	r1, .L991+4
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #44
	mov	r1, r4
	ldr	r0, [fp, #-48]
	bl	env_get_by_text
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #1
	bhi	.L974
	ldr	r1, .L991+8
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-48]
	bl	mal_error
	mov	r3, r0
	b	.L989
.L974:
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #1
	bls	.L976
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #8]
	b	.L977
.L976:
	ldr	r3, [fp, #-44]
.L977:
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_sequential
	mov	r3, r0
	cmp	r3, #0
	bne	.L978
	ldr	r1, .L991+12
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-48]
	bl	mal_error
	mov	r3, r0
	b	.L989
.L978:
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #4
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #16]
	and	r3, r3, #1
	cmp	r3, #0
	bne	.L979
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #16]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L980
.L979:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #16]
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L981
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #16]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L981
.L980:
	ldr	r1, .L991+16
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-48]
	bl	mal_error
	mov	r3, r0
	b	.L989
.L981:
	ldr	r3, [fp, #-56]
	ldr	r1, [r3]
	mov	r3, #0
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #0
	ldr	r0, [fp, #-48]
	bl	env_make
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #4
	bne	.L982
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #12
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L983
.L982:
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #3
	bne	.L984
.L983:
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L985
.L988:
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	mov	r1, r3
	ldr	r0, [fp, #-48]
	bl	lvm_eval
	str	r0, [fp, #-20]
	ldr	r0, [fp, #-20]
	bl	is_error
	mov	r3, r0
	cmp	r3, #0
	beq	.L986
	ldr	r3, [fp, #-20]
	b	.L989
.L986:
	ldr	r0, [fp, #-24]
	bl	is_symbol
	mov	r3, r0
	cmp	r3, #0
	bne	.L987
	ldr	r1, .L991+20
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r4, r0
	mov	r2, #0
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-48]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-48]
	bl	text_concat_text
	mov	r3, r0
	ldr	r2, .L991+24
	mov	r1, r3
	ldr	r0, [fp, #-48]
	bl	text_concat
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-48]
	bl	mal_error
	mov	r3, r0
	b	.L989
.L987:
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-48]
	bl	env_set
	ldr	r3, [fp, #-40]
	add	r3, r3, #2
	str	r3, [fp, #-40]
.L985:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	bcc	.L988
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-36]
	b	.L989
.L984:
	ldr	r1, .L991+28
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-48]
	bl	mal_error
	mov	r3, r0
.L989:
	ldr	r2, .L991
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L990
	bl	__stack_chk_fail
.L990:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L992:
	.align	2
.L991:
	.word	.LC139
	.word	.LC37
	.word	.LC133
	.word	.LC134
	.word	.LC135
	.word	.LC136
	.word	.LC137
	.word	.LC138
	.size	eval_let_star, .-eval_let_star
	.section	.rodata
	.align	2
.LC140:
	.ascii	"'if': got too few arguments '\000"
	.align	2
.LC141:
	.ascii	"'if': got too many arguments '\000"
	.align	2
.LC142:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	eval_if
	.syntax unified
	.arm
	.fpu softvfp
	.type	eval_if, %function
eval_if:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #36
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	ldr	r3, .L1003
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #16]
	cmp	r3, #2
	bls	.L994
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #16]
	cmp	r3, #3
	bne	.L995
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #12]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	beq	.L995
.L994:
	ldr	r1, .L1003+4
	ldr	r0, [fp, #-32]
	bl	text_make
	mov	r4, r0
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #16]
	sub	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	text_make_integer
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-32]
	bl	text_concat_text
	mov	r3, r0
	ldr	r2, .L1003+8
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	text_concat
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-32]
	bl	mal_error
	mov	r3, r0
	b	.L996
.L995:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #16]
	cmp	r3, #4
	bls	.L997
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #12]
	add	r3, r3, #16
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L997
	ldr	r1, .L1003+12
	ldr	r0, [fp, #-32]
	bl	text_make
	mov	r4, r0
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #16]
	sub	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	text_make_integer
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-32]
	bl	text_concat_text
	mov	r3, r0
	ldr	r2, .L1003+8
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	text_concat
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-32]
	bl	mal_error
	mov	r3, r0
	b	.L996
.L997:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #12]
	add	r3, r3, #4
	ldr	r1, [r3]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r0, [fp, #-32]
	bl	lvm_eval
	str	r0, [fp, #-20]
	ldr	r0, [fp, #-20]
	bl	is_error
	mov	r3, r0
	cmp	r3, #0
	beq	.L998
	ldr	r3, [fp, #-20]
	b	.L996
.L998:
	ldr	r0, [fp, #-20]
	bl	is_false
	mov	r3, r0
	cmp	r3, #0
	bne	.L999
	ldr	r0, [fp, #-20]
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	beq	.L1000
.L999:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #12]
	add	r3, r3, #12
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1001
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #12]
	b	.L996
.L1001:
	ldr	r3, [fp, #-40]
	ldr	r4, [r3]
	ldr	r1, .L1003+16
	ldr	r0, [fp, #-32]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #28
	mov	r1, r4
	ldr	r0, [fp, #-32]
	bl	env_get_by_text
	ldr	r3, [fp, #-28]
	b	.L996
.L1000:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #8]
.L996:
	ldr	r2, .L1003
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1002
	bl	__stack_chk_fail
.L1002:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1004:
	.align	2
.L1003:
	.word	.LC142
	.word	.LC140
	.word	.LC39
	.word	.LC141
	.word	.LC37
	.size	eval_if, .-eval_if
	.section	.rodata
	.align	2
.LC143:
	.ascii	"'fn*': has too few arguments '\000"
	.align	2
.LC144:
	.ascii	"' missing parameters and body\012\000"
	.align	2
.LC145:
	.ascii	"' missing body\012\000"
	.align	2
.LC146:
	.ascii	"'fn*': has too many arguments '\000"
	.align	2
.LC147:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	eval_fn_star
	.syntax unified
	.arm
	.fpu softvfp
	.type	eval_fn_star, %function
eval_fn_star:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #52
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	str	r2, [fp, #-48]
	ldr	r3, .L1013
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	cmp	r3, #2
	bhi	.L1006
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	beq	.L1006
	ldr	r1, .L1013+4
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r4, r0
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	sub	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	text_make_integer
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	text_concat_text
	mov	r3, r0
	ldr	r2, .L1013+8
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	text_concat
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L1011
.L1006:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	cmp	r3, #3
	bhi	.L1008
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	beq	.L1008
	ldr	r1, .L1013+4
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r4, r0
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	sub	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	text_make_integer
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	text_concat_text
	mov	r3, r0
	ldr	r2, .L1013+12
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	text_concat
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L1011
.L1008:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	cmp	r3, #3
	bls	.L1009
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	add	r3, r3, #12
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1009
	ldr	r1, .L1013+16
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r4, r0
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	sub	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	text_make_integer
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	text_concat_text
	mov	r3, r0
	ldr	r2, .L1013+20
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	text_concat
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L1011
.L1009:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-36]
	sub	r2, fp, #32
	sub	r3, fp, #36
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	closure_parameters
	str	r0, [fp, #-24]
	ldr	r0, [fp, #-24]
	bl	is_error
	mov	r3, r0
	cmp	r3, #0
	beq	.L1010
	ldr	r3, [fp, #-24]
	b	.L1011
.L1010:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-20]
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-32]
	str	r3, [sp]
	ldr	r3, [fp, #-20]
	ldr	r1, [fp, #-48]
	ldr	r0, [fp, #-40]
	bl	closure_make
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	mal_closure
	mov	r3, r0
.L1011:
	ldr	r2, .L1013
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1012
	bl	__stack_chk_fail
.L1012:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1014:
	.align	2
.L1013:
	.word	.LC147
	.word	.LC143
	.word	.LC144
	.word	.LC145
	.word	.LC146
	.word	.LC39
	.size	eval_fn_star, .-eval_fn_star
	.section	.rodata
	.align	2
.LC148:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	eval_do
	.syntax unified
	.arm
	.fpu softvfp
	.type	eval_do, %function
eval_do:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	ldr	r3, .L1024
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	list_params
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	beq	.L1016
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #16]
	cmp	r3, #1
	bne	.L1017
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	beq	.L1017
.L1016:
	ldr	r1, .L1024+4
	ldr	r0, [fp, #-32]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #24
	ldr	r1, [fp, #-40]
	ldr	r0, [fp, #-32]
	bl	env_get_by_text
	ldr	r3, [fp, #-24]
	b	.L1018
.L1017:
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L1019
.L1021:
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	lvm_eval
	str	r0, [fp, #-20]
	ldr	r0, [fp, #-20]
	bl	is_error
	mov	r3, r0
	cmp	r3, #0
	beq	.L1020
	ldr	r3, [fp, #-20]
	b	.L1018
.L1020:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L1019:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bcc	.L1021
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	beq	.L1022
	ldr	r3, [fp, #-20]
	b	.L1018
.L1022:
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
.L1018:
	ldr	r2, .L1024
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1023
	bl	__stack_chk_fail
.L1023:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1025:
	.align	2
.L1024:
	.word	.LC148
	.word	.LC37
	.size	eval_do, .-eval_do
	.section	.rodata
	.align	2
.LC149:
	.ascii	"args to '+' are not numbers '\000"
	.align	2
.LC150:
	.ascii	"unknown type of '+' result\012\000"
	.text
	.align	2
	.global	core_add
	.syntax unified
	.arm
	.fpu softvfp
	.type	core_add, %function
core_add:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #32
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	mov	r3, #10
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-28]
	mov	r1, #0
	ldr	r0, [fp, #-40]
	bl	mal_integer
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	beq	.L1027
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	beq	.L1028
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	cmp	r3, #1
	bne	.L1028
.L1027:
	ldr	r3, [fp, #-24]
	b	.L1045
.L1028:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r3, [r3, #12]
	cmp	r3, #10
	beq	.L1030
	cmp	r3, #11
	beq	.L1031
	b	.L1046
.L1030:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-24]
	str	r2, [r3, #16]
	b	.L1033
.L1031:
	mov	r3, #11
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-36]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-24]
	str	r2, [r1, #16]
	str	r3, [r1, #20]
	b	.L1033
.L1046:
	ldr	r1, .L1048
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r4, r0
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	text_concat_text
	mov	r3, r0
	ldr	r2, .L1048+4
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	text_concat
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L1045
.L1033:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	cmp	r3, #1
	bls	.L1034
	mov	r3, #1
	str	r3, [fp, #-32]
	b	.L1035
.L1043:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	bne	.L1036
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1047
.L1036:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_integer
	mov	r3, r0
	cmp	r3, #0
	beq	.L1037
	ldr	r3, [fp, #-36]
	cmp	r3, #10
	bne	.L1038
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-28]
	ldr	r1, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-24]
	str	r2, [r3, #16]
	b	.L1039
.L1038:
	ldr	r3, [fp, #-36]
	cmp	r3, #11
	bne	.L1039
	ldr	r3, [fp, #-24]
	add	r5, r3, #16
	ldmia	r5, {r4-r5}
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	mov	r2, #11
	str	r2, [r3, #12]
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-24]
	str	r2, [r1, #16]
	str	r3, [r1, #20]
	b	.L1039
.L1037:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_decimal
	mov	r3, r0
	cmp	r3, #0
	beq	.L1040
	ldr	r3, [fp, #-36]
	cmp	r3, #10
	bne	.L1041
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #16]
	mov	r0, r3
	bl	__aeabi_i2d
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	mov	r3, #11
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-36]
	str	r2, [r3, #12]
	b	.L1042
.L1041:
	ldr	r3, [fp, #-36]
	cmp	r3, #11
	bne	.L1042
	ldr	r3, [fp, #-24]
	add	r1, r3, #16
	ldmia	r1, {r0-r1}
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
.L1042:
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-24]
	str	r2, [r1, #16]
	str	r3, [r1, #20]
	b	.L1039
.L1040:
	ldr	r1, .L1048
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r4, r0
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	text_concat_text
	mov	r3, r0
	ldr	r2, .L1048+4
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	text_concat
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L1045
.L1039:
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L1035:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	bcc	.L1043
	b	.L1034
.L1047:
	nop
.L1034:
	ldr	r3, [fp, #-36]
	sub	r3, r3, #10
	cmp	r3, #1
	bhi	.L1044
	ldr	r3, [fp, #-24]
	b	.L1045
.L1044:
	ldr	r1, .L1048+8
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
.L1045:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L1049:
	.align	2
.L1048:
	.word	.LC149
	.word	.LC39
	.word	.LC150
	.size	core_add, .-core_add
	.section	.rodata
	.align	2
.LC151:
	.ascii	"args to '-' are not numbers '\000"
	.align	2
.LC152:
	.ascii	"unknown type of '-' result\012\000"
	.text
	.align	2
	.global	core_sub
	.syntax unified
	.arm
	.fpu softvfp
	.type	core_sub, %function
core_sub:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #32
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	mov	r3, #10
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-28]
	mov	r1, #0
	ldr	r0, [fp, #-40]
	bl	mal_integer
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	beq	.L1051
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	beq	.L1052
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	cmp	r3, #1
	bne	.L1052
.L1051:
	ldr	r3, [fp, #-24]
	b	.L1069
.L1052:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r3, [r3, #12]
	cmp	r3, #10
	beq	.L1054
	cmp	r3, #11
	beq	.L1055
	b	.L1070
.L1054:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-24]
	str	r2, [r3, #16]
	b	.L1057
.L1055:
	mov	r3, #11
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-36]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-24]
	str	r2, [r1, #16]
	str	r3, [r1, #20]
	b	.L1057
.L1070:
	ldr	r1, .L1072
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r4, r0
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	text_concat_text
	mov	r3, r0
	ldr	r2, .L1072+4
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	text_concat
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L1069
.L1057:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	cmp	r3, #1
	bls	.L1058
	mov	r3, #1
	str	r3, [fp, #-32]
	b	.L1059
.L1067:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	bne	.L1060
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1071
.L1060:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_integer
	mov	r3, r0
	cmp	r3, #0
	beq	.L1061
	ldr	r3, [fp, #-36]
	cmp	r3, #10
	bne	.L1062
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-28]
	ldr	r1, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	sub	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-24]
	str	r2, [r3, #16]
	b	.L1063
.L1062:
	ldr	r3, [fp, #-36]
	cmp	r3, #11
	bne	.L1063
	ldr	r3, [fp, #-24]
	add	r5, r3, #16
	ldmia	r5, {r4-r5}
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	mov	r2, #11
	str	r2, [r3, #12]
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-24]
	str	r2, [r1, #16]
	str	r3, [r1, #20]
	b	.L1063
.L1061:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_decimal
	mov	r3, r0
	cmp	r3, #0
	beq	.L1064
	ldr	r3, [fp, #-36]
	cmp	r3, #10
	bne	.L1065
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #16]
	mov	r0, r3
	bl	__aeabi_i2d
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	mov	r3, #11
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-36]
	str	r2, [r3, #12]
	b	.L1066
.L1065:
	ldr	r3, [fp, #-36]
	cmp	r3, #11
	bne	.L1066
	ldr	r3, [fp, #-24]
	add	r1, r3, #16
	ldmia	r1, {r0-r1}
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
.L1066:
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-24]
	str	r2, [r1, #16]
	str	r3, [r1, #20]
	b	.L1063
.L1064:
	ldr	r1, .L1072
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r4, r0
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	text_concat_text
	mov	r3, r0
	ldr	r2, .L1072+4
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	text_concat
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L1069
.L1063:
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L1059:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	bcc	.L1067
	b	.L1058
.L1071:
	nop
.L1058:
	ldr	r3, [fp, #-36]
	sub	r3, r3, #10
	cmp	r3, #1
	bhi	.L1068
	ldr	r3, [fp, #-24]
	b	.L1069
.L1068:
	ldr	r1, .L1072+8
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
.L1069:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L1073:
	.align	2
.L1072:
	.word	.LC151
	.word	.LC39
	.word	.LC152
	.size	core_sub, .-core_sub
	.section	.rodata
	.align	2
.LC153:
	.ascii	"args to '*' are not numbers '\000"
	.align	2
.LC154:
	.ascii	"unknown type of '*' result\012\000"
	.text
	.align	2
	.global	core_mul
	.syntax unified
	.arm
	.fpu softvfp
	.type	core_mul, %function
core_mul:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #32
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	mov	r3, #10
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-28]
	mov	r1, #1
	ldr	r0, [fp, #-40]
	bl	mal_integer
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	beq	.L1075
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	beq	.L1076
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	cmp	r3, #1
	bne	.L1076
.L1075:
	ldr	r3, [fp, #-24]
	b	.L1093
.L1076:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r3, [r3, #12]
	cmp	r3, #10
	beq	.L1078
	cmp	r3, #11
	beq	.L1079
	b	.L1094
.L1078:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-24]
	str	r2, [r3, #16]
	b	.L1081
.L1079:
	mov	r3, #11
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-36]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-24]
	str	r2, [r1, #16]
	str	r3, [r1, #20]
	b	.L1081
.L1094:
	ldr	r1, .L1096
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r4, r0
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	text_concat_text
	mov	r3, r0
	ldr	r2, .L1096+4
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	text_concat
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L1093
.L1081:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	cmp	r3, #1
	bls	.L1082
	mov	r3, #1
	str	r3, [fp, #-32]
	b	.L1083
.L1091:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	bne	.L1084
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1095
.L1084:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_integer
	mov	r3, r0
	cmp	r3, #0
	beq	.L1085
	ldr	r3, [fp, #-36]
	cmp	r3, #10
	bne	.L1086
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-28]
	ldr	r1, [r2, #12]
	ldr	r2, [fp, #-32]
	lsl	r2, r2, #2
	add	r2, r1, r2
	ldr	r2, [r2]
	ldr	r2, [r2, #16]
	mul	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-24]
	str	r2, [r3, #16]
	b	.L1087
.L1086:
	ldr	r3, [fp, #-36]
	cmp	r3, #11
	bne	.L1087
	ldr	r3, [fp, #-24]
	add	r5, r3, #16
	ldmia	r5, {r4-r5}
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	mov	r2, #11
	str	r2, [r3, #12]
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-24]
	str	r2, [r1, #16]
	str	r3, [r1, #20]
	b	.L1087
.L1085:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_decimal
	mov	r3, r0
	cmp	r3, #0
	beq	.L1088
	ldr	r3, [fp, #-36]
	cmp	r3, #10
	bne	.L1089
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #16]
	mov	r0, r3
	bl	__aeabi_i2d
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	mov	r3, #11
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-36]
	str	r2, [r3, #12]
	b	.L1090
.L1089:
	ldr	r3, [fp, #-36]
	cmp	r3, #11
	bne	.L1090
	ldr	r3, [fp, #-24]
	add	r1, r3, #16
	ldmia	r1, {r0-r1}
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
.L1090:
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-24]
	str	r2, [r1, #16]
	str	r3, [r1, #20]
	b	.L1087
.L1088:
	ldr	r1, .L1096
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r4, r0
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	text_concat_text
	mov	r3, r0
	ldr	r2, .L1096+4
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	text_concat
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L1093
.L1087:
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L1083:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	bcc	.L1091
	b	.L1082
.L1095:
	nop
.L1082:
	ldr	r3, [fp, #-36]
	sub	r3, r3, #10
	cmp	r3, #1
	bhi	.L1092
	ldr	r3, [fp, #-24]
	b	.L1093
.L1092:
	ldr	r1, .L1096+8
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
.L1093:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L1097:
	.align	2
.L1096:
	.word	.LC153
	.word	.LC39
	.word	.LC154
	.size	core_mul, .-core_mul
	.section	.rodata
	.align	2
.LC155:
	.ascii	"args to '/' are not numbers '\000"
	.global	__aeabi_idiv
	.global	__aeabi_ddiv
	.align	2
.LC156:
	.ascii	"unknown type of '/' result\012\000"
	.text
	.align	2
	.global	core_div
	.syntax unified
	.arm
	.fpu softvfp
	.type	core_div, %function
core_div:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #32
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	mov	r3, #10
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-28]
	mov	r1, #1
	ldr	r0, [fp, #-40]
	bl	mal_integer
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	beq	.L1099
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	beq	.L1100
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	cmp	r3, #1
	bne	.L1100
.L1099:
	ldr	r3, [fp, #-24]
	b	.L1117
.L1100:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r3, [r3, #12]
	cmp	r3, #10
	beq	.L1102
	cmp	r3, #11
	beq	.L1103
	b	.L1118
.L1102:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-24]
	str	r2, [r3, #16]
	b	.L1105
.L1103:
	mov	r3, #11
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-36]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-24]
	str	r2, [r1, #16]
	str	r3, [r1, #20]
	b	.L1105
.L1118:
	ldr	r1, .L1120
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r4, r0
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	text_concat_text
	mov	r3, r0
	ldr	r2, .L1120+4
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	text_concat
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L1117
.L1105:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	cmp	r3, #1
	bls	.L1106
	mov	r3, #1
	str	r3, [fp, #-32]
	b	.L1107
.L1115:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	bne	.L1108
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1119
.L1108:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_integer
	mov	r3, r0
	cmp	r3, #0
	beq	.L1109
	ldr	r3, [fp, #-36]
	cmp	r3, #10
	bne	.L1110
	ldr	r3, [fp, #-24]
	ldr	r0, [r3, #16]
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	mov	r1, r3
	bl	__aeabi_idiv
	mov	r3, r0
	str	r3, [fp, #-20]
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-24]
	str	r2, [r3, #16]
	b	.L1111
.L1110:
	ldr	r3, [fp, #-36]
	cmp	r3, #11
	bne	.L1111
	ldr	r3, [fp, #-24]
	add	r5, r3, #16
	ldmia	r5, {r4-r5}
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	mov	r2, #11
	str	r2, [r3, #12]
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-24]
	str	r2, [r1, #16]
	str	r3, [r1, #20]
	b	.L1111
.L1109:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_decimal
	mov	r3, r0
	cmp	r3, #0
	beq	.L1112
	ldr	r3, [fp, #-36]
	cmp	r3, #10
	bne	.L1113
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #16]
	mov	r0, r3
	bl	__aeabi_i2d
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	mov	r3, #11
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-36]
	str	r2, [r3, #12]
	b	.L1114
.L1113:
	ldr	r3, [fp, #-36]
	cmp	r3, #11
	bne	.L1114
	ldr	r3, [fp, #-24]
	add	r1, r3, #16
	ldmia	r1, {r0-r1}
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
.L1114:
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-24]
	str	r2, [r1, #16]
	str	r3, [r1, #20]
	b	.L1111
.L1112:
	ldr	r1, .L1120
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r4, r0
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	text_concat_text
	mov	r3, r0
	ldr	r2, .L1120+4
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	text_concat
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L1117
.L1111:
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L1107:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	bcc	.L1115
	b	.L1106
.L1119:
	nop
.L1106:
	ldr	r3, [fp, #-36]
	sub	r3, r3, #10
	cmp	r3, #1
	bhi	.L1116
	ldr	r3, [fp, #-24]
	b	.L1117
.L1116:
	ldr	r1, .L1120+8
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
.L1117:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L1121:
	.align	2
.L1120:
	.word	.LC155
	.word	.LC39
	.word	.LC156
	.size	core_div, .-core_div
	.section	.rodata
	.align	2
.LC157:
	.ascii	"'=': expected exactly two arguments\012\000"
	.align	2
.LC158:
	.ascii	"'=': this state should not happen\012\000"
	.align	2
.LC159:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	core_eq
	.syntax unified
	.arm
	.fpu softvfp
	.type	core_eq, %function
core_eq:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #36
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	ldr	r3, .L1157
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-40]
	ldr	r4, [r3, #28]
	ldr	r1, .L1157+4
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #32
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	env_get_by_text
	ldr	r3, [fp, #-40]
	ldr	r4, [r3, #28]
	ldr	r1, .L1157+8
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #28
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	env_get_by_text
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #1
	bls	.L1123
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #2
	bls	.L1124
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1124
.L1123:
	ldr	r1, .L1157+12
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L1152
.L1124:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	cmp	r2, r3
	beq	.L1126
	ldr	r3, [fp, #-28]
	b	.L1152
.L1126:
	ldr	r0, [fp, #-24]
	bl	is_sequential
	mov	r3, r0
	cmp	r3, #0
	beq	.L1127
	ldr	r0, [fp, #-20]
	bl	is_sequential
	mov	r3, r0
	cmp	r3, #0
	beq	.L1127
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #12]
	cmp	r3, #7
	beq	.L1128
	cmp	r3, #8
	beq	.L1129
	b	.L1155
.L1128:
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #16]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	mov	r2, r3
	ldr	r0, [fp, #-40]
	bl	list_equal
	mov	r3, r0
	b	.L1152
.L1129:
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #16]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	mov	r2, r3
	ldr	r0, [fp, #-40]
	bl	vector_equal
	mov	r3, r0
	b	.L1152
.L1155:
	ldr	r1, .L1157+16
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
	b	.L1152
.L1127:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #12]
	sub	r3, r3, #2
	cmp	r3, #12
	ldrls	pc, [pc, r3, asl #2]
	b	.L1131
.L1133:
	.word	.L1142
	.word	.L1141
	.word	.L1140
	.word	.L1139
	.word	.L1138
	.word	.L1131
	.word	.L1131
	.word	.L1137
	.word	.L1136
	.word	.L1135
	.word	.L1131
	.word	.L1134
	.word	.L1132
.L1136:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	cmp	r2, r3
	bne	.L1143
	ldr	r3, [fp, #-32]
	b	.L1152
.L1143:
	ldr	r3, [fp, #-28]
	b	.L1152
.L1135:
	ldr	r3, [fp, #-24]
	add	r1, r3, #16
	ldmia	r1, {r0-r1}
	ldr	r3, [fp, #-20]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	bl	__aeabi_dcmpeq
	mov	r3, r0
	cmp	r3, #0
	beq	.L1156
	ldr	r3, [fp, #-32]
	b	.L1152
.L1156:
	ldr	r3, [fp, #-28]
	b	.L1152
.L1141:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	mov	r1, r3
	mov	r0, r2
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L1146
	ldr	r3, [fp, #-32]
	b	.L1152
.L1146:
	ldr	r3, [fp, #-28]
	b	.L1152
.L1140:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	mov	r1, r3
	mov	r0, r2
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L1147
	ldr	r3, [fp, #-32]
	b	.L1152
.L1147:
	ldr	r3, [fp, #-28]
	b	.L1152
.L1139:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	mov	r1, r3
	mov	r0, r2
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L1148
	ldr	r3, [fp, #-32]
	b	.L1152
.L1148:
	ldr	r3, [fp, #-28]
	b	.L1152
.L1137:
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #16]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	mov	r2, r3
	ldr	r0, [fp, #-40]
	bl	hashmap_equal
	mov	r3, r0
	b	.L1152
.L1142:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	cmp	r2, r3
	bne	.L1149
	ldr	r3, [fp, #-32]
	b	.L1152
.L1149:
	ldr	r3, [fp, #-28]
	b	.L1152
.L1138:
	ldr	r3, [fp, #-32]
	b	.L1152
.L1134:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	cmp	r2, r3
	bne	.L1150
	ldr	r3, [fp, #-32]
	b	.L1152
.L1150:
	ldr	r3, [fp, #-28]
	b	.L1152
.L1132:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	cmp	r2, r3
	bne	.L1151
	ldr	r3, [fp, #-32]
	b	.L1152
.L1151:
	ldr	r3, [fp, #-28]
	b	.L1152
.L1131:
	ldr	r1, .L1157+16
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-40]
	bl	mal_error
	mov	r3, r0
.L1152:
	ldr	r2, .L1157
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1153
	bl	__stack_chk_fail
.L1153:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1158:
	.align	2
.L1157:
	.word	.LC159
	.word	.LC55
	.word	.LC56
	.word	.LC157
	.word	.LC158
	.size	core_eq, .-core_eq
	.section	.rodata
	.align	2
.LC160:
	.ascii	"'<': expected exactly two arguments\012\000"
	.align	2
.LC161:
	.ascii	"'<': expected numerical arguments\012\000"
	.global	__aeabi_dcmplt
	.align	2
.LC162:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	core_lt
	.syntax unified
	.arm
	.fpu softvfp
	.type	core_lt, %function
core_lt:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, fp, lr}
	add	fp, sp, #16
	sub	sp, sp, #36
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	ldr	r3, .L1175
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	ldr	r3, [fp, #-48]
	ldr	r4, [r3, #28]
	ldr	r1, .L1175+4
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #44
	mov	r1, r4
	ldr	r0, [fp, #-48]
	bl	env_get_by_text
	ldr	r3, [fp, #-48]
	ldr	r4, [r3, #28]
	ldr	r1, .L1175+8
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #40
	mov	r1, r4
	ldr	r0, [fp, #-48]
	bl	env_get_by_text
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #1
	bls	.L1160
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #2
	bls	.L1161
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1161
.L1160:
	ldr	r1, .L1175+12
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-48]
	bl	mal_error
	mov	r3, r0
	b	.L1173
.L1161:
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-28]
	ldr	r0, [fp, #-32]
	bl	is_number
	mov	r3, r0
	cmp	r3, #0
	beq	.L1163
	ldr	r0, [fp, #-28]
	bl	is_number
	mov	r3, r0
	cmp	r3, #0
	bne	.L1164
.L1163:
	ldr	r1, .L1175+16
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-48]
	bl	mal_error
	mov	r3, r0
	b	.L1173
.L1164:
	mov	r3, #0
	str	r3, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	is_integer
	mov	r3, r0
	cmp	r3, #0
	beq	.L1165
	ldr	r0, [fp, #-28]
	bl	is_integer
	mov	r3, r0
	cmp	r3, #0
	beq	.L1165
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	cmp	r2, r3
	movlt	r3, #1
	movge	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-36]
	b	.L1166
.L1165:
	ldr	r0, [fp, #-32]
	bl	is_integer
	mov	r3, r0
	cmp	r3, #0
	beq	.L1167
	ldr	r0, [fp, #-28]
	bl	is_decimal
	mov	r3, r0
	cmp	r3, #0
	beq	.L1167
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #16]
	mov	r0, r3
	bl	__aeabi_i2d
	ldr	r3, [fp, #-28]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	mov	ip, #1
	mov	r4, ip
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	bne	.L1168
	mov	r3, #0
	mov	r4, r3
.L1168:
	and	r3, r4, #255
	str	r3, [fp, #-36]
	b	.L1166
.L1167:
	ldr	r0, [fp, #-32]
	bl	is_decimal
	mov	r3, r0
	cmp	r3, #0
	beq	.L1169
	ldr	r0, [fp, #-28]
	bl	is_integer
	mov	r3, r0
	cmp	r3, #0
	beq	.L1169
	ldr	r3, [fp, #-32]
	add	r5, r3, #16
	ldmia	r5, {r4-r5}
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r1, #1
	mov	r6, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	bne	.L1170
	mov	r3, #0
	mov	r6, r3
.L1170:
	and	r3, r6, #255
	str	r3, [fp, #-36]
	b	.L1166
.L1169:
	ldr	r0, [fp, #-32]
	bl	is_decimal
	mov	r3, r0
	cmp	r3, #0
	beq	.L1166
	ldr	r0, [fp, #-28]
	bl	is_decimal
	mov	r3, r0
	cmp	r3, #0
	beq	.L1166
	ldr	r3, [fp, #-32]
	add	r1, r3, #16
	ldmia	r1, {r0-r1}
	ldr	r3, [fp, #-28]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	mov	ip, #1
	mov	r4, ip
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	bne	.L1171
	mov	r3, #0
	mov	r4, r3
.L1171:
	and	r3, r4, #255
	str	r3, [fp, #-36]
.L1166:
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L1172
	ldr	r3, [fp, #-44]
	b	.L1173
.L1172:
	ldr	r3, [fp, #-40]
.L1173:
	ldr	r2, .L1175
	ldr	r1, [r2]
	ldr	r2, [fp, #-24]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1174
	bl	__stack_chk_fail
.L1174:
	mov	r0, r3
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, fp, pc}
.L1176:
	.align	2
.L1175:
	.word	.LC162
	.word	.LC55
	.word	.LC56
	.word	.LC160
	.word	.LC161
	.size	core_lt, .-core_lt
	.section	.rodata
	.align	2
.LC163:
	.ascii	"'<=': expected exactly two arguments\012\000"
	.align	2
.LC164:
	.ascii	"'<=': expected numerical arguments\012\000"
	.global	__aeabi_dcmple
	.align	2
.LC165:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	core_le
	.syntax unified
	.arm
	.fpu softvfp
	.type	core_le, %function
core_le:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, fp, lr}
	add	fp, sp, #16
	sub	sp, sp, #36
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	ldr	r3, .L1193
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	ldr	r3, [fp, #-48]
	ldr	r4, [r3, #28]
	ldr	r1, .L1193+4
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #44
	mov	r1, r4
	ldr	r0, [fp, #-48]
	bl	env_get_by_text
	ldr	r3, [fp, #-48]
	ldr	r4, [r3, #28]
	ldr	r1, .L1193+8
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #40
	mov	r1, r4
	ldr	r0, [fp, #-48]
	bl	env_get_by_text
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #1
	bls	.L1178
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #2
	bls	.L1179
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1179
.L1178:
	ldr	r1, .L1193+12
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-48]
	bl	mal_error
	mov	r3, r0
	b	.L1191
.L1179:
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-28]
	ldr	r0, [fp, #-32]
	bl	is_number
	mov	r3, r0
	cmp	r3, #0
	beq	.L1181
	ldr	r0, [fp, #-28]
	bl	is_number
	mov	r3, r0
	cmp	r3, #0
	bne	.L1182
.L1181:
	ldr	r1, .L1193+16
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-48]
	bl	mal_error
	mov	r3, r0
	b	.L1191
.L1182:
	mov	r3, #0
	str	r3, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	is_integer
	mov	r3, r0
	cmp	r3, #0
	beq	.L1183
	ldr	r0, [fp, #-28]
	bl	is_integer
	mov	r3, r0
	cmp	r3, #0
	beq	.L1183
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	cmp	r2, r3
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-36]
	b	.L1184
.L1183:
	ldr	r0, [fp, #-32]
	bl	is_integer
	mov	r3, r0
	cmp	r3, #0
	beq	.L1185
	ldr	r0, [fp, #-28]
	bl	is_decimal
	mov	r3, r0
	cmp	r3, #0
	beq	.L1185
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #16]
	mov	r0, r3
	bl	__aeabi_i2d
	ldr	r3, [fp, #-28]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	mov	ip, #1
	mov	r4, ip
	bl	__aeabi_dcmple
	mov	r3, r0
	cmp	r3, #0
	bne	.L1186
	mov	r3, #0
	mov	r4, r3
.L1186:
	and	r3, r4, #255
	str	r3, [fp, #-36]
	b	.L1184
.L1185:
	ldr	r0, [fp, #-32]
	bl	is_decimal
	mov	r3, r0
	cmp	r3, #0
	beq	.L1187
	ldr	r0, [fp, #-28]
	bl	is_integer
	mov	r3, r0
	cmp	r3, #0
	beq	.L1187
	ldr	r3, [fp, #-32]
	add	r5, r3, #16
	ldmia	r5, {r4-r5}
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r1, #1
	mov	r6, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmple
	mov	r3, r0
	cmp	r3, #0
	bne	.L1188
	mov	r3, #0
	mov	r6, r3
.L1188:
	and	r3, r6, #255
	str	r3, [fp, #-36]
	b	.L1184
.L1187:
	ldr	r0, [fp, #-32]
	bl	is_decimal
	mov	r3, r0
	cmp	r3, #0
	beq	.L1184
	ldr	r0, [fp, #-28]
	bl	is_decimal
	mov	r3, r0
	cmp	r3, #0
	beq	.L1184
	ldr	r3, [fp, #-32]
	add	r1, r3, #16
	ldmia	r1, {r0-r1}
	ldr	r3, [fp, #-28]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	mov	ip, #1
	mov	r4, ip
	bl	__aeabi_dcmple
	mov	r3, r0
	cmp	r3, #0
	bne	.L1189
	mov	r3, #0
	mov	r4, r3
.L1189:
	and	r3, r4, #255
	str	r3, [fp, #-36]
.L1184:
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L1190
	ldr	r3, [fp, #-44]
	b	.L1191
.L1190:
	ldr	r3, [fp, #-40]
.L1191:
	ldr	r2, .L1193
	ldr	r1, [r2]
	ldr	r2, [fp, #-24]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1192
	bl	__stack_chk_fail
.L1192:
	mov	r0, r3
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, fp, pc}
.L1194:
	.align	2
.L1193:
	.word	.LC165
	.word	.LC55
	.word	.LC56
	.word	.LC163
	.word	.LC164
	.size	core_le, .-core_le
	.section	.rodata
	.align	2
.LC166:
	.ascii	"'>': expected exactly two arguments\012\000"
	.align	2
.LC167:
	.ascii	"'>': expected numerical arguments\012\000"
	.align	2
.LC168:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	core_gt
	.syntax unified
	.arm
	.fpu softvfp
	.type	core_gt, %function
core_gt:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, fp, lr}
	add	fp, sp, #16
	sub	sp, sp, #36
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	ldr	r3, .L1211
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	ldr	r3, [fp, #-48]
	ldr	r4, [r3, #28]
	ldr	r1, .L1211+4
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #44
	mov	r1, r4
	ldr	r0, [fp, #-48]
	bl	env_get_by_text
	ldr	r3, [fp, #-48]
	ldr	r4, [r3, #28]
	ldr	r1, .L1211+8
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #40
	mov	r1, r4
	ldr	r0, [fp, #-48]
	bl	env_get_by_text
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #1
	bls	.L1196
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #2
	bls	.L1197
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1197
.L1196:
	ldr	r1, .L1211+12
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-48]
	bl	mal_error
	mov	r3, r0
	b	.L1209
.L1197:
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-28]
	ldr	r0, [fp, #-32]
	bl	is_number
	mov	r3, r0
	cmp	r3, #0
	beq	.L1199
	ldr	r0, [fp, #-28]
	bl	is_number
	mov	r3, r0
	cmp	r3, #0
	bne	.L1200
.L1199:
	ldr	r1, .L1211+16
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-48]
	bl	mal_error
	mov	r3, r0
	b	.L1209
.L1200:
	mov	r3, #0
	str	r3, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	is_integer
	mov	r3, r0
	cmp	r3, #0
	beq	.L1201
	ldr	r0, [fp, #-28]
	bl	is_integer
	mov	r3, r0
	cmp	r3, #0
	beq	.L1201
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	cmp	r2, r3
	movgt	r3, #1
	movle	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-36]
	b	.L1202
.L1201:
	ldr	r0, [fp, #-32]
	bl	is_integer
	mov	r3, r0
	cmp	r3, #0
	beq	.L1203
	ldr	r0, [fp, #-28]
	bl	is_decimal
	mov	r3, r0
	cmp	r3, #0
	beq	.L1203
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #16]
	mov	r0, r3
	bl	__aeabi_i2d
	ldr	r3, [fp, #-28]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	mov	ip, #1
	mov	r4, ip
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L1204
	mov	r3, #0
	mov	r4, r3
.L1204:
	and	r3, r4, #255
	str	r3, [fp, #-36]
	b	.L1202
.L1203:
	ldr	r0, [fp, #-32]
	bl	is_decimal
	mov	r3, r0
	cmp	r3, #0
	beq	.L1205
	ldr	r0, [fp, #-28]
	bl	is_integer
	mov	r3, r0
	cmp	r3, #0
	beq	.L1205
	ldr	r3, [fp, #-32]
	add	r5, r3, #16
	ldmia	r5, {r4-r5}
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r1, #1
	mov	r6, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L1206
	mov	r3, #0
	mov	r6, r3
.L1206:
	and	r3, r6, #255
	str	r3, [fp, #-36]
	b	.L1202
.L1205:
	ldr	r0, [fp, #-32]
	bl	is_decimal
	mov	r3, r0
	cmp	r3, #0
	beq	.L1202
	ldr	r0, [fp, #-28]
	bl	is_decimal
	mov	r3, r0
	cmp	r3, #0
	beq	.L1202
	ldr	r3, [fp, #-32]
	add	r1, r3, #16
	ldmia	r1, {r0-r1}
	ldr	r3, [fp, #-28]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	mov	ip, #1
	mov	r4, ip
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L1207
	mov	r3, #0
	mov	r4, r3
.L1207:
	and	r3, r4, #255
	str	r3, [fp, #-36]
.L1202:
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L1208
	ldr	r3, [fp, #-44]
	b	.L1209
.L1208:
	ldr	r3, [fp, #-40]
.L1209:
	ldr	r2, .L1211
	ldr	r1, [r2]
	ldr	r2, [fp, #-24]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1210
	bl	__stack_chk_fail
.L1210:
	mov	r0, r3
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, fp, pc}
.L1212:
	.align	2
.L1211:
	.word	.LC168
	.word	.LC55
	.word	.LC56
	.word	.LC166
	.word	.LC167
	.size	core_gt, .-core_gt
	.section	.rodata
	.align	2
.LC169:
	.ascii	"'>=': expected exactly two arguments\012\000"
	.align	2
.LC170:
	.ascii	"'>=': expected numerical arguments\012\000"
	.global	__aeabi_dcmpge
	.align	2
.LC171:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	core_ge
	.syntax unified
	.arm
	.fpu softvfp
	.type	core_ge, %function
core_ge:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, fp, lr}
	add	fp, sp, #16
	sub	sp, sp, #36
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	ldr	r3, .L1229
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	ldr	r3, [fp, #-48]
	ldr	r4, [r3, #28]
	ldr	r1, .L1229+4
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #44
	mov	r1, r4
	ldr	r0, [fp, #-48]
	bl	env_get_by_text
	ldr	r3, [fp, #-48]
	ldr	r4, [r3, #28]
	ldr	r1, .L1229+8
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #40
	mov	r1, r4
	ldr	r0, [fp, #-48]
	bl	env_get_by_text
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #1
	bls	.L1214
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #2
	bls	.L1215
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1215
.L1214:
	ldr	r1, .L1229+12
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-48]
	bl	mal_error
	mov	r3, r0
	b	.L1227
.L1215:
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-28]
	ldr	r0, [fp, #-32]
	bl	is_number
	mov	r3, r0
	cmp	r3, #0
	beq	.L1217
	ldr	r0, [fp, #-28]
	bl	is_number
	mov	r3, r0
	cmp	r3, #0
	bne	.L1218
.L1217:
	ldr	r1, .L1229+16
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-48]
	bl	mal_error
	mov	r3, r0
	b	.L1227
.L1218:
	mov	r3, #0
	str	r3, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	is_integer
	mov	r3, r0
	cmp	r3, #0
	beq	.L1219
	ldr	r0, [fp, #-28]
	bl	is_integer
	mov	r3, r0
	cmp	r3, #0
	beq	.L1219
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	cmp	r2, r3
	movge	r3, #1
	movlt	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-36]
	b	.L1220
.L1219:
	ldr	r0, [fp, #-32]
	bl	is_integer
	mov	r3, r0
	cmp	r3, #0
	beq	.L1221
	ldr	r0, [fp, #-28]
	bl	is_decimal
	mov	r3, r0
	cmp	r3, #0
	beq	.L1221
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #16]
	mov	r0, r3
	bl	__aeabi_i2d
	ldr	r3, [fp, #-28]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	mov	ip, #1
	mov	r4, ip
	bl	__aeabi_dcmpge
	mov	r3, r0
	cmp	r3, #0
	bne	.L1222
	mov	r3, #0
	mov	r4, r3
.L1222:
	and	r3, r4, #255
	str	r3, [fp, #-36]
	b	.L1220
.L1221:
	ldr	r0, [fp, #-32]
	bl	is_decimal
	mov	r3, r0
	cmp	r3, #0
	beq	.L1223
	ldr	r0, [fp, #-28]
	bl	is_integer
	mov	r3, r0
	cmp	r3, #0
	beq	.L1223
	ldr	r3, [fp, #-32]
	add	r5, r3, #16
	ldmia	r5, {r4-r5}
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r1, #1
	mov	r6, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmpge
	mov	r3, r0
	cmp	r3, #0
	bne	.L1224
	mov	r3, #0
	mov	r6, r3
.L1224:
	and	r3, r6, #255
	str	r3, [fp, #-36]
	b	.L1220
.L1223:
	ldr	r0, [fp, #-32]
	bl	is_decimal
	mov	r3, r0
	cmp	r3, #0
	beq	.L1220
	ldr	r0, [fp, #-28]
	bl	is_decimal
	mov	r3, r0
	cmp	r3, #0
	beq	.L1220
	ldr	r3, [fp, #-32]
	add	r1, r3, #16
	ldmia	r1, {r0-r1}
	ldr	r3, [fp, #-28]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	mov	ip, #1
	mov	r4, ip
	bl	__aeabi_dcmpge
	mov	r3, r0
	cmp	r3, #0
	bne	.L1225
	mov	r3, #0
	mov	r4, r3
.L1225:
	and	r3, r4, #255
	str	r3, [fp, #-36]
.L1220:
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L1226
	ldr	r3, [fp, #-44]
	b	.L1227
.L1226:
	ldr	r3, [fp, #-40]
.L1227:
	ldr	r2, .L1229
	ldr	r1, [r2]
	ldr	r2, [fp, #-24]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1228
	bl	__stack_chk_fail
.L1228:
	mov	r0, r3
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, fp, pc}
.L1230:
	.align	2
.L1229:
	.word	.LC171
	.word	.LC55
	.word	.LC56
	.word	.LC169
	.word	.LC170
	.size	core_ge, .-core_ge
	.section	.rodata
	.align	2
.LC172:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	core_list
	.syntax unified
	.arm
	.fpu softvfp
	.type	core_list, %function
core_list:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #36
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	ldr	r3, .L1269
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	list_make
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-40]
	ldr	r4, [r3, #28]
	ldr	r1, .L1269+4
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #36
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	env_get_by_text
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L1232
	ldr	r3, [fp, #-36]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	list_append
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	mal_list
	mov	r3, r0
	b	.L1262
.L1232:
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L1234
.L1248:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	cmp	r3, #9
	beq	.L1235
	cmp	r3, #9
	bhi	.L1236
	cmp	r3, #7
	beq	.L1237
	cmp	r3, #8
	beq	.L1238
	b	.L1236
.L1237:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	beq	.L1264
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1240
.L1241:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	list_append
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L1240:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bcc	.L1241
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1264
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	list_append
	b	.L1264
.L1238:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	beq	.L1265
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1244
.L1245:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	list_append
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L1244:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bcc	.L1245
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1265
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	list_append
	b	.L1265
.L1235:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1246
.L1247:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	list_append
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	str	r3, [fp, #-28]
.L1246:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bcc	.L1247
	b	.L1242
.L1236:
	ldr	r2, [fp, #-20]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	list_append
	b	.L1242
.L1264:
	nop
	b	.L1242
.L1265:
	nop
.L1242:
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L1234:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	bcc	.L1248
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1266
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	cmp	r3, #9
	beq	.L1250
	cmp	r3, #9
	bhi	.L1251
	cmp	r3, #7
	beq	.L1252
	cmp	r3, #8
	beq	.L1253
	b	.L1251
.L1252:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1254
.L1255:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	list_append
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L1254:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bcc	.L1255
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1267
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	list_append
	b	.L1267
.L1253:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1257
.L1258:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	list_append
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L1257:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bcc	.L1258
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1268
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	list_append
	b	.L1268
.L1250:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1260
.L1261:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	list_append
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	str	r3, [fp, #-28]
.L1260:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bcc	.L1261
	b	.L1249
.L1251:
	ldr	r2, [fp, #-20]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	list_append
	b	.L1249
.L1266:
	nop
	b	.L1249
.L1267:
	nop
	b	.L1249
.L1268:
	nop
.L1249:
	ldr	r3, [fp, #-36]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	list_append
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	mal_list
	mov	r3, r0
.L1262:
	ldr	r2, .L1269
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1263
	bl	__stack_chk_fail
.L1263:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1270:
	.align	2
.L1269:
	.word	.LC172
	.word	.LC37
	.size	core_list, .-core_list
	.section	.rodata
	.align	2
.LC173:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	core_vector
	.syntax unified
	.arm
	.fpu softvfp
	.type	core_vector, %function
core_vector:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #36
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	ldr	r3, .L1309
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	vector_make
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-40]
	ldr	r4, [r3, #28]
	ldr	r1, .L1309+4
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #36
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	env_get_by_text
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L1272
	ldr	r3, [fp, #-36]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	vector_append
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	mal_vector
	mov	r3, r0
	b	.L1302
.L1272:
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L1274
.L1288:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	cmp	r3, #9
	beq	.L1275
	cmp	r3, #9
	bhi	.L1276
	cmp	r3, #7
	beq	.L1277
	cmp	r3, #8
	beq	.L1278
	b	.L1276
.L1277:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1279
.L1280:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	vector_append
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L1279:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bcc	.L1280
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1304
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	vector_append
	b	.L1304
.L1278:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1283
.L1284:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	vector_append
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L1283:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bcc	.L1284
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1305
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	vector_append
	b	.L1305
.L1275:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1286
.L1287:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	vector_append
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	str	r3, [fp, #-28]
.L1286:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bcc	.L1287
	b	.L1282
.L1276:
	ldr	r2, [fp, #-20]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	vector_append
	b	.L1282
.L1304:
	nop
	b	.L1282
.L1305:
	nop
.L1282:
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L1274:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	bcc	.L1288
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1306
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	cmp	r3, #9
	beq	.L1290
	cmp	r3, #9
	bhi	.L1291
	cmp	r3, #7
	beq	.L1292
	cmp	r3, #8
	beq	.L1293
	b	.L1291
.L1292:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1294
.L1295:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	vector_append
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L1294:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bcc	.L1295
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1307
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	vector_append
	b	.L1307
.L1293:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1297
.L1298:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	vector_append
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L1297:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bcc	.L1298
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1308
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	vector_append
	b	.L1308
.L1290:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1300
.L1301:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	vector_append
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	str	r3, [fp, #-28]
.L1300:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bcc	.L1301
	b	.L1289
.L1291:
	ldr	r2, [fp, #-20]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	vector_append
	b	.L1289
.L1306:
	nop
	b	.L1289
.L1307:
	nop
	b	.L1289
.L1308:
	nop
.L1289:
	ldr	r3, [fp, #-36]
	mov	r2, r3
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	vector_append
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	mal_vector
	mov	r3, r0
.L1302:
	ldr	r2, .L1309
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1303
	bl	__stack_chk_fail
.L1303:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1310:
	.align	2
.L1309:
	.word	.LC173
	.word	.LC37
	.size	core_vector, .-core_vector
	.section	.rodata
	.align	2
.LC174:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	core_hashmap
	.syntax unified
	.arm
	.fpu softvfp
	.type	core_hashmap, %function
core_hashmap:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #36
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	ldr	r3, .L1358
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	hashmap_make
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-40]
	ldr	r4, [r3, #28]
	ldr	r1, .L1358+4
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #36
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	env_get_by_text
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L1312
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	mal_hashmap
	mov	r3, r0
	b	.L1356
.L1312:
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L1314
.L1335:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	cmp	r3, #9
	beq	.L1315
	cmp	r3, #9
	bhi	.L1316
	cmp	r3, #7
	beq	.L1317
	cmp	r3, #8
	beq	.L1318
	b	.L1316
.L1317:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	and	r3, r3, #1
	cmp	r3, #0
	bne	.L1319
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1320
.L1321:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r1
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	hashmap_set
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	str	r3, [fp, #-28]
.L1320:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bcc	.L1321
	b	.L1325
.L1319:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1323
.L1324:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r1
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	hashmap_set
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	str	r3, [fp, #-28]
.L1323:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bcc	.L1324
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-36]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	hashmap_set
	b	.L1325
.L1318:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	and	r3, r3, #1
	cmp	r3, #0
	bne	.L1326
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1327
.L1328:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r1
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	hashmap_set
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	str	r3, [fp, #-28]
.L1327:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bcc	.L1328
	b	.L1325
.L1326:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1330
.L1331:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r1
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	hashmap_set
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	str	r3, [fp, #-28]
.L1330:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bcc	.L1331
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-36]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	hashmap_set
	b	.L1325
.L1315:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1332
.L1333:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r1
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	hashmap_set
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	str	r3, [fp, #-28]
.L1332:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bcc	.L1333
	b	.L1325
.L1316:
	ldr	r3, [fp, #-32]
	add	r2, r3, #1
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	cmp	r2, r3
	beq	.L1334
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r1
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	hashmap_set
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
	b	.L1325
.L1334:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-36]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	hashmap_set
.L1325:
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L1314:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	bcc	.L1335
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1336
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	cmp	r3, #9
	beq	.L1337
	cmp	r3, #9
	bhi	.L1338
	cmp	r3, #7
	beq	.L1339
	cmp	r3, #8
	beq	.L1340
	b	.L1338
.L1339:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	and	r3, r3, #1
	cmp	r3, #0
	bne	.L1341
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1342
.L1343:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r1
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	hashmap_set
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	str	r3, [fp, #-28]
.L1342:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bcc	.L1343
	b	.L1336
.L1341:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1345
.L1346:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r1
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	hashmap_set
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	str	r3, [fp, #-28]
.L1345:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bcc	.L1346
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-36]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	hashmap_set
	b	.L1336
.L1340:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	and	r3, r3, #1
	cmp	r3, #0
	bne	.L1347
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1348
.L1349:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r1
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	hashmap_set
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	str	r3, [fp, #-28]
.L1348:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bcc	.L1349
	b	.L1336
.L1347:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1351
.L1352:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r1
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	hashmap_set
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	str	r3, [fp, #-28]
.L1351:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bcc	.L1352
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-36]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	hashmap_set
	b	.L1336
.L1337:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1353
.L1354:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r1
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	hashmap_set
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	str	r3, [fp, #-28]
.L1353:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bcc	.L1354
	b	.L1336
.L1338:
	ldr	r3, [fp, #-32]
	add	r2, r3, #1
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	cmp	r2, r3
	beq	.L1355
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r1
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	hashmap_set
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
	b	.L1336
.L1355:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-36]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	hashmap_set
.L1336:
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	mal_hashmap
	mov	r3, r0
.L1356:
	ldr	r2, .L1358
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1357
	bl	__stack_chk_fail
.L1357:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1359:
	.align	2
.L1358:
	.word	.LC174
	.word	.LC37
	.size	core_hashmap, .-core_hashmap
	.section	.rodata
	.align	2
.LC175:
	.ascii	"in zip first list has to be equal or longer then se"
	.ascii	"cond list\012\000"
	.align	2
.LC176:
	.ascii	"in zip first list has to be equal or longer then se"
	.ascii	"cond vector\012\000"
	.align	2
.LC177:
	.ascii	"unsupported type of the second sequential '\000"
	.align	2
.LC178:
	.ascii	"in zip first vector has to be equal or longer then "
	.ascii	"second list\012\000"
	.align	2
.LC179:
	.ascii	"in zip first vector has to be equal or longer then "
	.ascii	"second vector\012\000"
	.align	2
.LC180:
	.ascii	"unsupported type of the first sequential '\000"
	.align	2
.LC181:
	.ascii	"required two lists or vectors\012\000"
	.align	2
.LC182:
	.ascii	"required proper list of length 2\012\000"
	.align	2
.LC183:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	core_zip
	.syntax unified
	.arm
	.fpu softvfp
	.type	core_zip, %function
core_zip:
	@ args = 0, pretend = 0, frame = 72
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #76
	str	r0, [fp, #-80]
	str	r1, [fp, #-84]
	ldr	r3, .L1408
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-80]
	ldr	r4, [r3, #28]
	ldr	r1, .L1408+4
	ldr	r0, [fp, #-80]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #72
	mov	r1, r4
	ldr	r0, [fp, #-80]
	bl	env_get_by_text
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #3
	bne	.L1361
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1362
.L1361:
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #2
	bne	.L1363
.L1362:
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_sequential
	mov	r3, r0
	cmp	r3, #0
	beq	.L1364
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_sequential
	mov	r3, r0
	cmp	r3, #0
	beq	.L1364
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r3, [r3, #12]
	cmp	r3, #7
	beq	.L1365
	cmp	r3, #8
	beq	.L1366
	b	.L1405
.L1365:
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #4
	ldr	r3, [r3]
	ldr	r3, [r3, #12]
	cmp	r3, #7
	beq	.L1368
	cmp	r3, #8
	beq	.L1369
	b	.L1406
.L1368:
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #4
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r2, r3
	bcc	.L1371
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #4
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	lsl	r3, r3, #1
	mov	r1, r3
	ldr	r0, [fp, #-80]
	bl	list_make
	str	r0, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-68]
	b	.L1372
.L1373:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-80]
	bl	list_append
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-80]
	bl	list_append
	ldr	r3, [fp, #-68]
	add	r3, r3, #1
	str	r3, [fp, #-68]
.L1372:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-68]
	cmp	r2, r3
	bcc	.L1373
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1375
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-80]
	bl	list_append
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-68]
	add	r1, r3, #1
	str	r1, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-80]
	bl	list_append
	b	.L1375
.L1377:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1376
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-68]
	cmp	r2, r3
	bne	.L1376
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-80]
	bl	list_append
	ldr	r3, [fp, #-72]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-80]
	bl	list_append
.L1376:
	ldr	r3, [fp, #-68]
	add	r3, r3, #1
	str	r3, [fp, #-68]
.L1375:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-68]
	cmp	r2, r3
	bcc	.L1377
	ldr	r3, [fp, #-72]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-80]
	bl	list_append
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-80]
	bl	mal_list
	mov	r3, r0
	b	.L1403
.L1371:
	ldr	r1, .L1408+8
	ldr	r0, [fp, #-80]
	bl	text_make
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-80]
	bl	mal_error
	mov	r3, r0
	b	.L1403
.L1369:
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #4
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r2, r3
	bcc	.L1379
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #4
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #16]
	lsl	r3, r3, #1
	mov	r1, r3
	ldr	r0, [fp, #-80]
	bl	list_make
	str	r0, [fp, #-32]
	mov	r3, #0
	str	r3, [fp, #-68]
	b	.L1380
.L1381:
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-80]
	bl	list_append
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-80]
	bl	list_append
	ldr	r3, [fp, #-68]
	add	r3, r3, #1
	str	r3, [fp, #-68]
.L1380:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-68]
	cmp	r2, r3
	bcc	.L1381
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1383
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-80]
	bl	list_append
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-68]
	add	r1, r3, #1
	str	r1, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-80]
	bl	list_append
	b	.L1383
.L1385:
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1384
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-68]
	cmp	r2, r3
	bne	.L1384
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-80]
	bl	list_append
	ldr	r3, [fp, #-72]
	mov	r2, r3
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-80]
	bl	list_append
.L1384:
	ldr	r3, [fp, #-68]
	add	r3, r3, #1
	str	r3, [fp, #-68]
.L1383:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-68]
	cmp	r2, r3
	bcc	.L1385
	ldr	r3, [fp, #-72]
	mov	r2, r3
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-80]
	bl	list_append
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-80]
	bl	mal_list
	mov	r3, r0
	b	.L1403
.L1379:
	ldr	r1, .L1408+12
	ldr	r0, [fp, #-80]
	bl	text_make
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-80]
	bl	mal_error
	mov	r3, r0
	b	.L1403
.L1406:
	ldr	r1, .L1408+16
	ldr	r0, [fp, #-80]
	bl	text_make
	mov	r4, r0
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-80]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-80]
	bl	text_concat_text
	mov	r3, r0
	ldr	r2, .L1408+20
	mov	r1, r3
	ldr	r0, [fp, #-80]
	bl	text_concat
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-80]
	bl	mal_error
	mov	r3, r0
	b	.L1403
.L1366:
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #4
	ldr	r3, [r3]
	ldr	r3, [r3, #12]
	cmp	r3, #7
	beq	.L1386
	cmp	r3, #8
	beq	.L1387
	b	.L1407
.L1386:
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #4
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r2, r3
	bcc	.L1389
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #4
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	lsl	r3, r3, #1
	mov	r1, r3
	ldr	r0, [fp, #-80]
	bl	list_make
	str	r0, [fp, #-44]
	mov	r3, #0
	str	r3, [fp, #-68]
	b	.L1390
.L1391:
	ldr	r3, [fp, #-52]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-80]
	bl	list_append
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-80]
	bl	list_append
	ldr	r3, [fp, #-68]
	add	r3, r3, #1
	str	r3, [fp, #-68]
.L1390:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-68]
	cmp	r2, r3
	bcc	.L1391
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1393
	ldr	r3, [fp, #-52]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-80]
	bl	list_append
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-68]
	add	r1, r3, #1
	str	r1, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-80]
	bl	list_append
	b	.L1393
.L1395:
	ldr	r3, [fp, #-52]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1394
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-68]
	cmp	r2, r3
	bne	.L1394
	ldr	r3, [fp, #-52]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-80]
	bl	list_append
	ldr	r3, [fp, #-72]
	mov	r2, r3
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-80]
	bl	list_append
.L1394:
	ldr	r3, [fp, #-68]
	add	r3, r3, #1
	str	r3, [fp, #-68]
.L1393:
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-68]
	cmp	r2, r3
	bcc	.L1395
	ldr	r3, [fp, #-72]
	mov	r2, r3
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-80]
	bl	list_append
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-80]
	bl	mal_list
	mov	r3, r0
	b	.L1403
.L1389:
	ldr	r1, .L1408+24
	ldr	r0, [fp, #-80]
	bl	text_make
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-80]
	bl	mal_error
	mov	r3, r0
	b	.L1403
.L1387:
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #4
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r2, r3
	bcc	.L1396
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #4
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #16]
	lsl	r3, r3, #1
	mov	r1, r3
	ldr	r0, [fp, #-80]
	bl	list_make
	str	r0, [fp, #-56]
	mov	r3, #0
	str	r3, [fp, #-68]
	b	.L1397
.L1398:
	ldr	r3, [fp, #-64]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-56]
	ldr	r0, [fp, #-80]
	bl	list_append
	ldr	r3, [fp, #-60]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-56]
	ldr	r0, [fp, #-80]
	bl	list_append
	ldr	r3, [fp, #-68]
	add	r3, r3, #1
	str	r3, [fp, #-68]
.L1397:
	ldr	r3, [fp, #-60]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-68]
	cmp	r2, r3
	bcc	.L1398
	ldr	r3, [fp, #-60]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1400
	ldr	r3, [fp, #-64]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-56]
	ldr	r0, [fp, #-80]
	bl	list_append
	ldr	r3, [fp, #-60]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-68]
	add	r1, r3, #1
	str	r1, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-56]
	ldr	r0, [fp, #-80]
	bl	list_append
	b	.L1400
.L1402:
	ldr	r3, [fp, #-64]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1401
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-68]
	cmp	r2, r3
	bne	.L1401
	ldr	r3, [fp, #-64]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-56]
	ldr	r0, [fp, #-80]
	bl	list_append
	ldr	r3, [fp, #-72]
	mov	r2, r3
	ldr	r1, [fp, #-56]
	ldr	r0, [fp, #-80]
	bl	list_append
.L1401:
	ldr	r3, [fp, #-68]
	add	r3, r3, #1
	str	r3, [fp, #-68]
.L1400:
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-68]
	cmp	r2, r3
	bcc	.L1402
	ldr	r3, [fp, #-72]
	mov	r2, r3
	ldr	r1, [fp, #-56]
	ldr	r0, [fp, #-80]
	bl	list_append
	ldr	r1, [fp, #-56]
	ldr	r0, [fp, #-80]
	bl	mal_list
	mov	r3, r0
	b	.L1403
.L1396:
	ldr	r1, .L1408+28
	ldr	r0, [fp, #-80]
	bl	text_make
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-80]
	bl	mal_error
	mov	r3, r0
	b	.L1403
.L1407:
	ldr	r1, .L1408+16
	ldr	r0, [fp, #-80]
	bl	text_make
	mov	r4, r0
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-80]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-80]
	bl	text_concat_text
	mov	r3, r0
	ldr	r2, .L1408+20
	mov	r1, r3
	ldr	r0, [fp, #-80]
	bl	text_concat
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-80]
	bl	mal_error
	mov	r3, r0
	b	.L1403
.L1405:
	ldr	r1, .L1408+32
	ldr	r0, [fp, #-80]
	bl	text_make
	mov	r4, r0
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-80]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-80]
	bl	text_concat_text
	mov	r3, r0
	ldr	r2, .L1408+20
	mov	r1, r3
	ldr	r0, [fp, #-80]
	bl	text_concat
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-80]
	bl	mal_error
	mov	r3, r0
	b	.L1403
.L1364:
	ldr	r1, .L1408+36
	ldr	r0, [fp, #-80]
	bl	text_make
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-80]
	bl	mal_error
	mov	r3, r0
	b	.L1403
.L1363:
	ldr	r1, .L1408+40
	ldr	r0, [fp, #-80]
	bl	text_make
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-80]
	bl	mal_error
	mov	r3, r0
.L1403:
	ldr	r2, .L1408
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1404
	bl	__stack_chk_fail
.L1404:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1409:
	.align	2
.L1408:
	.word	.LC183
	.word	.LC37
	.word	.LC175
	.word	.LC176
	.word	.LC177
	.word	.LC39
	.word	.LC178
	.word	.LC179
	.word	.LC180
	.word	.LC181
	.word	.LC182
	.size	core_zip, .-core_zip
	.section	.rodata
	.align	2
.LC184:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	core_listp
	.syntax unified
	.arm
	.fpu softvfp
	.type	core_listp, %function
core_listp:
	@ 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, .L1425
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-48]
	ldr	r4, [r3, #28]
	ldr	r1, .L1425+4
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #40
	mov	r1, r4
	ldr	r0, [fp, #-48]
	bl	env_get_by_text
	ldr	r3, [fp, #-48]
	ldr	r4, [r3, #28]
	ldr	r1, .L1425+8
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #36
	mov	r1, r4
	ldr	r0, [fp, #-48]
	bl	env_get_by_text
	ldr	r3, [fp, #-48]
	ldr	r4, [r3, #28]
	ldr	r1, .L1425+12
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #32
	mov	r1, r4
	ldr	r0, [fp, #-48]
	bl	env_get_by_text
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #2
	bne	.L1411
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1412
.L1411:
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #1
	bne	.L1413
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1413
.L1412:
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_list
	mov	r3, r0
	cmp	r3, #0
	beq	.L1414
	ldr	r3, [fp, #-36]
	b	.L1423
.L1414:
	ldr	r3, [fp, #-32]
	b	.L1423
.L1413:
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #1
	bls	.L1416
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1416
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	beq	.L1417
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	b	.L1418
.L1417:
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
.L1418:
	str	r3, [fp, #-24]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-48]
	bl	vector_make
	str	r0, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1419
.L1422:
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_list
	mov	r3, r0
	cmp	r3, #0
	beq	.L1420
	ldr	r3, [fp, #-36]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-48]
	bl	vector_append
	b	.L1421
.L1420:
	ldr	r3, [fp, #-32]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-48]
	bl	vector_append
.L1421:
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L1419:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	bcc	.L1422
	ldr	r3, [fp, #-40]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-48]
	bl	vector_append
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-48]
	bl	mal_vector
	mov	r3, r0
	b	.L1423
.L1416:
	ldr	r3, [fp, #-32]
.L1423:
	ldr	r2, .L1425
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1424
	bl	__stack_chk_fail
.L1424:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1426:
	.align	2
.L1425:
	.word	.LC184
	.word	.LC37
	.word	.LC55
	.word	.LC56
	.size	core_listp, .-core_listp
	.section	.rodata
	.align	2
.LC185:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	core_vectorp
	.syntax unified
	.arm
	.fpu softvfp
	.type	core_vectorp, %function
core_vectorp:
	@ 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, .L1442
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-48]
	ldr	r4, [r3, #28]
	ldr	r1, .L1442+4
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #40
	mov	r1, r4
	ldr	r0, [fp, #-48]
	bl	env_get_by_text
	ldr	r3, [fp, #-48]
	ldr	r4, [r3, #28]
	ldr	r1, .L1442+8
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #36
	mov	r1, r4
	ldr	r0, [fp, #-48]
	bl	env_get_by_text
	ldr	r3, [fp, #-48]
	ldr	r4, [r3, #28]
	ldr	r1, .L1442+12
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #32
	mov	r1, r4
	ldr	r0, [fp, #-48]
	bl	env_get_by_text
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #2
	bne	.L1428
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1429
.L1428:
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #1
	bne	.L1430
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1430
.L1429:
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_vector
	mov	r3, r0
	cmp	r3, #0
	beq	.L1431
	ldr	r3, [fp, #-36]
	b	.L1440
.L1431:
	ldr	r3, [fp, #-32]
	b	.L1440
.L1430:
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #1
	bls	.L1433
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1433
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	beq	.L1434
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	b	.L1435
.L1434:
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
.L1435:
	str	r3, [fp, #-24]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-48]
	bl	vector_make
	str	r0, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1436
.L1439:
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_vector
	mov	r3, r0
	cmp	r3, #0
	beq	.L1437
	ldr	r3, [fp, #-36]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-48]
	bl	vector_append
	b	.L1438
.L1437:
	ldr	r3, [fp, #-32]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-48]
	bl	vector_append
.L1438:
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L1436:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	bcc	.L1439
	ldr	r3, [fp, #-40]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-48]
	bl	vector_append
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-48]
	bl	mal_vector
	mov	r3, r0
	b	.L1440
.L1433:
	ldr	r3, [fp, #-32]
.L1440:
	ldr	r2, .L1442
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1441
	bl	__stack_chk_fail
.L1441:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1443:
	.align	2
.L1442:
	.word	.LC185
	.word	.LC37
	.word	.LC55
	.word	.LC56
	.size	core_vectorp, .-core_vectorp
	.section	.rodata
	.align	2
.LC186:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	core_hashmapp
	.syntax unified
	.arm
	.fpu softvfp
	.type	core_hashmapp, %function
core_hashmapp:
	@ 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, .L1459
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-48]
	ldr	r4, [r3, #28]
	ldr	r1, .L1459+4
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #40
	mov	r1, r4
	ldr	r0, [fp, #-48]
	bl	env_get_by_text
	ldr	r3, [fp, #-48]
	ldr	r4, [r3, #28]
	ldr	r1, .L1459+8
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #36
	mov	r1, r4
	ldr	r0, [fp, #-48]
	bl	env_get_by_text
	ldr	r3, [fp, #-48]
	ldr	r4, [r3, #28]
	ldr	r1, .L1459+12
	ldr	r0, [fp, #-48]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #32
	mov	r1, r4
	ldr	r0, [fp, #-48]
	bl	env_get_by_text
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #3
	bne	.L1445
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1446
.L1445:
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #2
	bne	.L1447
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1447
.L1446:
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_hashmap
	mov	r3, r0
	cmp	r3, #0
	beq	.L1448
	ldr	r3, [fp, #-36]
	b	.L1457
.L1448:
	ldr	r3, [fp, #-32]
	b	.L1457
.L1447:
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #2
	bls	.L1450
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1450
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	beq	.L1451
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	b	.L1452
.L1451:
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
.L1452:
	str	r3, [fp, #-24]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-48]
	bl	vector_make
	str	r0, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1453
.L1456:
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_hashmap
	mov	r3, r0
	cmp	r3, #0
	beq	.L1454
	ldr	r3, [fp, #-36]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-48]
	bl	vector_append
	b	.L1455
.L1454:
	ldr	r3, [fp, #-32]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-48]
	bl	vector_append
.L1455:
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L1453:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	bcc	.L1456
	ldr	r3, [fp, #-40]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-48]
	bl	vector_append
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-48]
	bl	mal_vector
	mov	r3, r0
	b	.L1457
.L1450:
	ldr	r3, [fp, #-32]
.L1457:
	ldr	r2, .L1459
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1458
	bl	__stack_chk_fail
.L1458:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1460:
	.align	2
.L1459:
	.word	.LC186
	.word	.LC37
	.word	.LC55
	.word	.LC56
	.size	core_hashmapp, .-core_hashmapp
	.section	.rodata
	.align	2
.LC187:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	core_envp
	.syntax unified
	.arm
	.fpu softvfp
	.type	core_envp, %function
core_envp:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #36
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	ldr	r3, .L1476
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-40]
	ldr	r4, [r3, #28]
	ldr	r1, .L1476+4
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #36
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	env_get_by_text
	ldr	r3, [fp, #-40]
	ldr	r4, [r3, #28]
	ldr	r1, .L1476+8
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #32
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	env_get_by_text
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #3
	bne	.L1462
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1463
.L1462:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #2
	bne	.L1464
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1464
.L1463:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_env
	mov	r3, r0
	cmp	r3, #0
	beq	.L1465
	ldr	r3, [fp, #-36]
	b	.L1474
.L1465:
	ldr	r3, [fp, #-32]
	b	.L1474
.L1464:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #2
	bls	.L1467
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #8
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1467
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	beq	.L1468
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	b	.L1469
.L1468:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
.L1469:
	str	r3, [fp, #-24]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	vector_make
	str	r0, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1470
.L1473:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_env
	mov	r3, r0
	cmp	r3, #0
	beq	.L1471
	ldr	r3, [fp, #-36]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	vector_append
	b	.L1472
.L1471:
	ldr	r3, [fp, #-32]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	vector_append
.L1472:
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L1470:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	bcc	.L1473
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	mal_vector
	mov	r3, r0
	b	.L1474
.L1467:
	ldr	r3, [fp, #-32]
.L1474:
	ldr	r2, .L1476
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1475
	bl	__stack_chk_fail
.L1475:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1477:
	.align	2
.L1476:
	.word	.LC187
	.word	.LC55
	.word	.LC56
	.size	core_envp, .-core_envp
	.section	.rodata
	.align	2
.LC188:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	core_emptyp
	.syntax unified
	.arm
	.fpu softvfp
	.type	core_emptyp, %function
core_emptyp:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #36
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	ldr	r3, .L1519
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-40]
	ldr	r4, [r3, #28]
	ldr	r1, .L1519+4
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #36
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	env_get_by_text
	ldr	r3, [fp, #-40]
	ldr	r4, [r3, #28]
	ldr	r1, .L1519+8
	ldr	r0, [fp, #-40]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #32
	mov	r1, r4
	ldr	r0, [fp, #-40]
	bl	env_get_by_text
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #2
	bne	.L1479
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1480
.L1479:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #1
	bne	.L1481
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1481
.L1480:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r3, [r3, #12]
	sub	r3, r3, #7
	cmp	r3, #5
	ldrls	pc, [pc, r3, asl #2]
	b	.L1482
.L1484:
	.word	.L1487
	.word	.L1486
	.word	.L1485
	.word	.L1482
	.word	.L1482
	.word	.L1483
.L1487:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L1488
	ldr	r3, [fp, #-36]
	b	.L1516
.L1488:
	ldr	r3, [fp, #-32]
	b	.L1516
.L1486:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L1490
	ldr	r3, [fp, #-36]
	b	.L1516
.L1490:
	ldr	r3, [fp, #-32]
	b	.L1516
.L1485:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L1491
	ldr	r3, [fp, #-36]
	b	.L1516
.L1491:
	ldr	r3, [fp, #-32]
	b	.L1516
.L1483:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L1492
	ldr	r3, [fp, #-36]
	b	.L1516
.L1492:
	ldr	r3, [fp, #-32]
	b	.L1516
.L1482:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	beq	.L1493
	ldr	r3, [fp, #-36]
	b	.L1516
.L1493:
	ldr	r3, [fp, #-32]
	b	.L1516
.L1481:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #1
	bls	.L1494
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1494
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	beq	.L1495
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	b	.L1496
.L1495:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
.L1496:
	str	r3, [fp, #-24]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-40]
	bl	vector_make
	str	r0, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L1497
.L1515:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #12]
	sub	r3, r3, #7
	cmp	r3, #5
	ldrls	pc, [pc, r3, asl #2]
	b	.L1498
.L1500:
	.word	.L1503
	.word	.L1502
	.word	.L1501
	.word	.L1498
	.word	.L1498
	.word	.L1499
.L1503:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L1504
	ldr	r3, [fp, #-36]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	vector_append
	b	.L1506
.L1504:
	ldr	r3, [fp, #-32]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	vector_append
	b	.L1506
.L1502:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L1507
	ldr	r3, [fp, #-36]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	vector_append
	b	.L1506
.L1507:
	ldr	r3, [fp, #-32]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	vector_append
	b	.L1506
.L1501:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L1509
	ldr	r3, [fp, #-36]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	vector_append
	b	.L1506
.L1509:
	ldr	r3, [fp, #-32]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	vector_append
	b	.L1506
.L1499:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L1511
	ldr	r3, [fp, #-36]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	vector_append
	b	.L1506
.L1511:
	ldr	r3, [fp, #-32]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	vector_append
	b	.L1506
.L1498:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	beq	.L1513
	ldr	r3, [fp, #-36]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	vector_append
	b	.L1518
.L1513:
	ldr	r3, [fp, #-32]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	vector_append
.L1518:
	nop
.L1506:
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L1497:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	bcc	.L1515
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	mal_vector
	mov	r3, r0
	b	.L1516
.L1494:
	ldr	r3, [fp, #-36]
.L1516:
	ldr	r2, .L1519
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1517
	bl	__stack_chk_fail
.L1517:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1520:
	.align	2
.L1519:
	.word	.LC188
	.word	.LC55
	.word	.LC56
	.size	core_emptyp, .-core_emptyp
	.align	2
	.global	core_count
	.syntax unified
	.arm
	.fpu softvfp
	.type	core_count, %function
core_count:
	@ 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]
	str	r1, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #2
	bne	.L1522
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1523
.L1522:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #1
	bne	.L1524
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1524
.L1523:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r3, [r3, #12]
	sub	r3, r3, #7
	cmp	r3, #5
	ldrls	pc, [pc, r3, asl #2]
	b	.L1525
.L1527:
	.word	.L1530
	.word	.L1529
	.word	.L1528
	.word	.L1525
	.word	.L1525
	.word	.L1526
.L1530:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	mal_integer
	mov	r3, r0
	b	.L1531
.L1529:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	mal_integer
	mov	r3, r0
	b	.L1531
.L1528:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	lsr	r3, r3, #1
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	mal_integer
	mov	r3, r0
	b	.L1531
.L1526:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	lsr	r3, r3, #1
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	mal_integer
	mov	r3, r0
	b	.L1531
.L1525:
	mov	r1, #1
	ldr	r0, [fp, #-24]
	bl	mal_integer
	mov	r3, r0
	b	.L1531
.L1524:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #1
	bls	.L1532
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1532
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	beq	.L1533
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	b	.L1534
.L1533:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
.L1534:
	str	r3, [fp, #-12]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	vector_make
	str	r0, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L1535
.L1543:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #12]
	sub	r3, r3, #7
	cmp	r3, #5
	ldrls	pc, [pc, r3, asl #2]
	b	.L1536
.L1538:
	.word	.L1541
	.word	.L1540
	.word	.L1539
	.word	.L1536
	.word	.L1536
	.word	.L1537
.L1541:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	mal_integer
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-24]
	bl	vector_append
	b	.L1542
.L1540:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	mal_integer
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-24]
	bl	vector_append
	b	.L1542
.L1539:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	lsr	r3, r3, #1
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	mal_integer
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-24]
	bl	vector_append
	b	.L1542
.L1537:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	lsr	r3, r3, #1
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	mal_integer
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-24]
	bl	vector_append
	b	.L1542
.L1536:
	mov	r1, #1
	ldr	r0, [fp, #-24]
	bl	mal_integer
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-24]
	bl	vector_append
	nop
.L1542:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L1535:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	bcc	.L1543
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-24]
	bl	mal_vector
	mov	r3, r0
	b	.L1531
.L1532:
	mov	r3, #0
.L1531:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	core_count, .-core_count
	.section	.rodata
	.align	2
.LC189:
	.ascii	" \000"
	.text
	.align	2
	.global	core_pr_str
	.syntax unified
	.arm
	.fpu softvfp
	.type	core_pr_str, %function
core_pr_str:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, .L1546
	mov	r2, #1
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	mal_as_str
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1547:
	.align	2
.L1546:
	.word	.LC189
	.size	core_pr_str, .-core_pr_str
	.align	2
	.global	core_str
	.syntax unified
	.arm
	.fpu softvfp
	.type	core_str, %function
core_str:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, .L1550
	mov	r2, #0
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	mal_as_str
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1551:
	.align	2
.L1550:
	.word	.LC25
	.size	core_str, .-core_str
	.section	.rodata
	.align	2
.LC190:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	core_prn
	.syntax unified
	.arm
	.fpu softvfp
	.type	core_prn, %function
core_prn:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	ldr	r3, .L1555
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-32]
	ldr	r4, [r3, #28]
	ldr	r1, .L1555+4
	ldr	r0, [fp, #-32]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #24
	mov	r1, r4
	ldr	r0, [fp, #-32]
	bl	env_get_by_text
	ldr	r3, .L1555+8
	mov	r2, #1
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	mal_as_str
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	lvm_print
	str	r0, [fp, #-20]
	ldr	r0, [fp, #-20]
	bl	puts
	ldr	r0, [fp, #-20]
	bl	free
	ldr	r3, [fp, #-24]
	ldr	r2, .L1555
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1554
	bl	__stack_chk_fail
.L1554:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1556:
	.align	2
.L1555:
	.word	.LC190
	.word	.LC37
	.word	.LC189
	.size	core_prn, .-core_prn
	.section	.rodata
	.align	2
.LC191:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	core_println
	.syntax unified
	.arm
	.fpu softvfp
	.type	core_println, %function
core_println:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	ldr	r3, .L1560
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-32]
	ldr	r4, [r3, #28]
	ldr	r1, .L1560+4
	ldr	r0, [fp, #-32]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #24
	mov	r1, r4
	ldr	r0, [fp, #-32]
	bl	env_get_by_text
	ldr	r3, .L1560+8
	mov	r2, #0
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	mal_as_str
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	lvm_print
	str	r0, [fp, #-20]
	ldr	r0, [fp, #-20]
	bl	puts
	ldr	r0, [fp, #-20]
	bl	free
	ldr	r3, [fp, #-24]
	ldr	r2, .L1560
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1559
	bl	__stack_chk_fail
.L1559:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1561:
	.align	2
.L1560:
	.word	.LC191
	.word	.LC37
	.word	.LC189
	.size	core_println, .-core_println
	.section	.rodata
	.align	2
.LC192:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	core_type
	.syntax unified
	.arm
	.fpu softvfp
	.type	core_type, %function
core_type:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	ldr	r3, .L1574
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r1, #0
	ldr	r0, [fp, #-32]
	bl	vector_make
	str	r0, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #1
	bne	.L1563
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1564
.L1563:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L1565
.L1564:
	ldr	r1, .L1574+4
	ldr	r0, [fp, #-32]
	bl	text_make
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	mal_symbol
	mov	r3, r0
	b	.L1572
.L1565:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #2
	bne	.L1567
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	mal_type_of
	mov	r3, r0
	b	.L1572
.L1567:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	beq	.L1569
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-24]
	add	r1, r3, #1
	str	r1, [fp, #-24]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1569
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	mal_type_of
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-32]
	bl	vector_append
	b	.L1569
.L1570:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	mal_type_of
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-32]
	bl	vector_append
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L1569:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	bcc	.L1570
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	bne	.L1571
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	mal_type_of
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-32]
	bl	vector_append
.L1571:
	ldr	r3, [fp, #-32]
	ldr	r4, [r3, #28]
	ldr	r1, .L1574+8
	ldr	r0, [fp, #-32]
	bl	text_make
	mov	r2, r0
	sub	r3, fp, #28
	mov	r1, r4
	ldr	r0, [fp, #-32]
	bl	env_get_by_text
	ldr	r3, [fp, #-28]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-32]
	bl	vector_append
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-32]
	bl	mal_vector
	mov	r3, r0
.L1572:
	ldr	r2, .L1574
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1573
	bl	__stack_chk_fail
.L1573:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1575:
	.align	2
.L1574:
	.word	.LC192
	.word	.LC49
	.word	.LC37
	.size	core_type, .-core_type
	.section	.rodata
	.align	2
.LC193:
	.ascii	"nOK:%p\012\000"
	.text
	.align	2
	.global	readers_push
	.syntax unified
	.arm
	.fpu softvfp
	.type	readers_push, %function
readers_push:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	add	r3, r3, #16
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L1577
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #8]
	cmp	r2, r3
	bcc	.L1578
.L1577:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #8]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-12]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #8]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	realloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L1579
	ldr	r1, .L1581
	ldr	r0, [fp, #-16]
	bl	text_make
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-16]
	bl	error_append
	mov	r3, #0
	b	.L1580
.L1579:
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
.L1578:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L1581+4
	bl	printf
	ldr	r3, [fp, #-12]
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #4]
	add	r0, r3, #1
	ldr	r1, [fp, #-12]
	str	r0, [r1, #4]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	mov	r3, #1
.L1580:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1582:
	.align	2
.L1581:
	.word	.LC47
	.word	.LC193
	.size	readers_push, .-readers_push
	.align	2
	.global	readers_pop
	.syntax unified
	.arm
	.fpu softvfp
	.type	readers_pop, %function
readers_pop:
	@ 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, [fp, #-24]
	add	r3, r3, #16
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L1584
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	sub	r1, r3, #1
	ldr	r3, [fp, #-16]
	str	r1, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r0, [fp, #-12]
	bl	free
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	cmp	r2, r3
	bcs	.L1584
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	lsr	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	realloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
.L1584:
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	readers_pop, .-readers_pop
	.section	.rodata
	.align	2
.LC194:
	.ascii	"nOK\000"
	.text
	.align	2
	.global	readers_get
	.syntax unified
	.arm
	.fpu softvfp
	.type	readers_get, %function
readers_get:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	add	r3, r3, #16
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L1587
	ldr	r3, [fp, #-8]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	b	.L1588
.L1587:
	ldr	r0, .L1589
	bl	puts
	mov	r3, #0
.L1588:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1590:
	.align	2
.L1589:
	.word	.LC194
	.size	readers_get, .-readers_get
	.align	2
	.global	lvm_read
	.syntax unified
	.arm
	.fpu softvfp
	.type	lvm_read, %function
lvm_read:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	reader_make
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	readers_push
	ldr	r0, [fp, #-8]
	bl	error_make
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	read_str
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	lvm_read, .-lvm_read
	.section	.rodata
	.align	2
.LC195:
	.ascii	"def!\000"
	.align	2
.LC196:
	.ascii	"let*\000"
	.align	2
.LC197:
	.ascii	"if\000"
	.align	2
.LC198:
	.ascii	"fn*\000"
	.align	2
.LC199:
	.ascii	"do\000"
	.align	2
.LC200:
	.ascii	"..\000"
	.align	2
.LC201:
	.ascii	"'fn*': too few arguments supplied to the function '"
	.ascii	"\000"
	.align	2
.LC202:
	.ascii	"'fn*': too many arguments supplied to the function "
	.ascii	"'\000"
	.align	2
.LC203:
	.ascii	"first list item not callable '\000"
	.align	2
.LC204:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	lvm_eval
	.syntax unified
	.arm
	.fpu softvfp
	.type	lvm_eval, %function
lvm_eval:
	@ args = 0, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #76
	str	r0, [fp, #-64]
	str	r1, [fp, #-68]
	str	r2, [fp, #-72]
	ldr	r3, .L1638
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
.L1629:
	ldr	r0, [fp, #-68]
	bl	is_eoi
	mov	r3, r0
	cmp	r3, #0
	bne	.L1594
	ldr	r0, [fp, #-68]
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	beq	.L1595
.L1594:
	ldr	r3, [fp, #-68]
	b	.L1628
.L1595:
	ldr	r0, [fp, #-68]
	bl	is_list
	mov	r3, r0
	cmp	r3, #0
	bne	.L1597
	ldr	r3, [fp, #-72]
	mov	r2, r3
	ldr	r1, [fp, #-68]
	ldr	r0, [fp, #-64]
	bl	eval_ast
	mov	r3, r0
	b	.L1628
.L1597:
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L1598
	ldr	r3, [fp, #-68]
	b	.L1628
.L1598:
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r3, [r3, #12]
	cmp	r3, #3
	bne	.L1599
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r2, .L1638+4
	mov	r1, r3
	ldr	r0, [fp, #-64]
	bl	text_cmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L1600
	ldr	r3, [fp, #-72]
	mov	r2, r3
	ldr	r1, [fp, #-68]
	ldr	r0, [fp, #-64]
	bl	eval_def_bang
	mov	r3, r0
	b	.L1628
.L1600:
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r2, .L1638+8
	mov	r1, r3
	ldr	r0, [fp, #-64]
	bl	text_cmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L1601
	sub	r3, fp, #72
	mov	r2, r3
	ldr	r1, [fp, #-68]
	ldr	r0, [fp, #-64]
	bl	eval_let_star
	str	r0, [fp, #-68]
	ldr	r0, [fp, #-68]
	bl	is_error
	mov	r3, r0
	cmp	r3, #0
	beq	.L1631
	ldr	r3, [fp, #-68]
	b	.L1628
.L1601:
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r2, .L1638+12
	mov	r1, r3
	ldr	r0, [fp, #-64]
	bl	text_cmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L1604
	sub	r3, fp, #72
	mov	r2, r3
	ldr	r1, [fp, #-68]
	ldr	r0, [fp, #-64]
	bl	eval_if
	str	r0, [fp, #-68]
	ldr	r0, [fp, #-68]
	bl	is_error
	mov	r3, r0
	cmp	r3, #0
	beq	.L1632
	ldr	r3, [fp, #-68]
	b	.L1628
.L1604:
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r2, .L1638+16
	mov	r1, r3
	ldr	r0, [fp, #-64]
	bl	text_cmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L1606
	ldr	r3, [fp, #-72]
	mov	r2, r3
	ldr	r1, [fp, #-68]
	ldr	r0, [fp, #-64]
	bl	eval_fn_star
	mov	r3, r0
	b	.L1628
.L1606:
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r2, .L1638+20
	mov	r1, r3
	ldr	r0, [fp, #-64]
	bl	text_cmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L1607
	ldr	r3, [fp, #-72]
	mov	r2, r3
	ldr	r1, [fp, #-68]
	ldr	r0, [fp, #-64]
	bl	eval_do
	str	r0, [fp, #-68]
	ldr	r0, [fp, #-68]
	bl	is_error
	mov	r3, r0
	cmp	r3, #0
	beq	.L1633
	ldr	r3, [fp, #-68]
	b	.L1628
.L1607:
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r2, .L1638+24
	mov	r1, r3
	ldr	r0, [fp, #-64]
	bl	text_cmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L1599
	ldr	r3, [fp, #-72]
	mov	r1, r3
	ldr	r0, [fp, #-64]
	bl	mal_env
	mov	r3, r0
	b	.L1628
.L1599:
	ldr	r3, [fp, #-72]
	mov	r2, r3
	ldr	r1, [fp, #-68]
	ldr	r0, [fp, #-64]
	bl	eval_ast
	mov	r3, r0
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #12]
	cmp	r3, #1
	bne	.L1609
	ldr	r3, [fp, #-56]
	b	.L1628
.L1609:
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-64]
	bl	list_params
	str	r0, [fp, #-44]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #12]
	sub	r3, r3, #3
	cmp	r3, #11
	ldrls	pc, [pc, r3, asl #2]
	b	.L1610
.L1612:
	.word	.L1634
	.word	.L1610
	.word	.L1610
	.word	.L1610
	.word	.L1610
	.word	.L1610
	.word	.L1614
	.word	.L1610
	.word	.L1610
	.word	.L1610
	.word	.L1613
	.word	.L1611
.L1613:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #16]
	ldr	r4, [r3, #12]
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-64]
	bl	mal_list
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-64]
	blx	r4
	mov	r3, r0
	b	.L1628
.L1611:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	str	r3, [fp, #-28]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	ble	.L1617
	ldr	r1, .L1638+28
	ldr	r0, [fp, #-64]
	bl	text_make
	mov	r4, r0
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-64]
	bl	text_make_integer
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-64]
	bl	text_concat_text
	mov	r3, r0
	ldr	r2, .L1638+32
	mov	r1, r3
	ldr	r0, [fp, #-64]
	bl	text_concat
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-64]
	bl	mal_error
	mov	r3, r0
	b	.L1628
.L1617:
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	bge	.L1618
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #20]
	cmp	r3, #0
	bne	.L1618
	ldr	r1, .L1638+36
	ldr	r0, [fp, #-64]
	bl	text_make
	mov	r4, r0
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-64]
	bl	text_make_integer
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-64]
	bl	text_concat_text
	mov	r3, r0
	ldr	r2, .L1638+32
	mov	r1, r3
	ldr	r0, [fp, #-64]
	bl	text_concat
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-64]
	bl	mal_error
	mov	r3, r0
	b	.L1628
.L1618:
	ldr	r3, [fp, #-40]
	ldr	r1, [r3, #12]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #20]
	mov	r2, #0
	str	r2, [sp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-44]
	ldr	r2, [fp, #-36]
	ldr	r0, [fp, #-64]
	bl	env_make
	mov	r3, r0
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #24]
	str	r3, [fp, #-68]
	ldr	r0, [fp, #-68]
	bl	is_error
	mov	r3, r0
	cmp	r3, #0
	beq	.L1635
	ldr	r3, [fp, #-68]
	b	.L1628
.L1614:
	mov	r3, #0
	str	r3, [fp, #-24]
	nop
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	bcs	.L1636
	ldr	r3, [fp, #-44]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_nil
	mov	r3, r0
	cmp	r3, #0
	beq	.L1621
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	sub	r3, r3, #1
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	bne	.L1621
	ldr	r3, [fp, #-48]
	b	.L1628
.L1621:
	ldr	r3, [fp, #-44]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_keyword
	mov	r3, r0
	cmp	r3, #0
	beq	.L1637
	ldr	r3, [fp, #-48]
	ldr	r1, [r3, #16]
	ldr	r3, [fp, #-44]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	sub	r3, fp, #56
	ldr	r0, [fp, #-64]
	bl	hashmap_get
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-64]
	bl	list_make
	str	r0, [fp, #-20]
	mov	r2, #1
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-64]
	bl	list_offset
	str	r0, [fp, #-44]
	ldr	r3, [fp, #-56]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-64]
	bl	list_append
	mov	r3, #0
	str	r3, [fp, #-52]
	b	.L1623
.L1624:
	ldr	r3, [fp, #-44]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-64]
	bl	list_append
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
.L1623:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-52]
	cmp	r2, r3
	bcc	.L1624
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	cmp	r3, #2
	bls	.L1625
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-64]
	bl	mal_list
	str	r0, [fp, #-68]
	b	.L1637
.L1625:
	ldr	r3, [fp, #-56]
	str	r3, [fp, #-68]
.L1637:
	nop
	b	.L1636
.L1610:
	ldr	r1, .L1638+40
	ldr	r0, [fp, #-64]
	bl	text_make
	mov	r4, r0
	mov	r2, #0
	ldr	r1, [fp, #-48]
	ldr	r0, [fp, #-64]
	bl	mal_print
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	ldr	r0, [fp, #-64]
	bl	text_concat_text
	mov	r3, r0
	ldr	r2, .L1638+32
	mov	r1, r3
	ldr	r0, [fp, #-64]
	bl	text_concat
	mov	r3, r0
	mov	r2, r3
	mov	r1, #2
	ldr	r0, [fp, #-64]
	bl	mal_error
	mov	r3, r0
	b	.L1628
.L1634:
	nop
	ldr	r3, [fp, #-68]
	b	.L1628
.L1631:
	nop
	b	.L1629
.L1632:
	nop
	b	.L1629
.L1633:
	nop
	b	.L1629
.L1635:
	nop
	b	.L1629
.L1636:
	nop
	b	.L1629
.L1628:
	ldr	r2, .L1638
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1630
	bl	__stack_chk_fail
.L1630:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1639:
	.align	2
.L1638:
	.word	.LC204
	.word	.LC195
	.word	.LC196
	.word	.LC197
	.word	.LC198
	.word	.LC199
	.word	.LC200
	.word	.LC201
	.word	.LC39
	.word	.LC202
	.word	.LC203
	.size	lvm_eval, .-lvm_eval
	.align	2
	.global	lvm_print
	.syntax unified
	.arm
	.fpu softvfp
	.type	lvm_print, %function
lvm_print:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	ldr	r3, [r3, #20]
	cmp	r3, #0
	beq	.L1641
	ldr	r0, [fp, #-16]
	bl	error_collapse
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	text_str
	str	r0, [fp, #-8]
	b	.L1642
.L1641:
	mov	r2, #0
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	mal_print
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	text_str
	str	r0, [fp, #-8]
.L1642:
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	lvm_print, .-lvm_print
	.align	2
	.global	lvm_rep
	.syntax unified
	.arm
	.fpu softvfp
	.type	lvm_rep, %function
lvm_rep:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	lvm_read
	mov	r1, r0
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #28]
	mov	r2, r3
	ldr	r0, [fp, #-8]
	bl	lvm_eval
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	lvm_print
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	lvm_rep, .-lvm_rep
	.section	.rodata
	.align	2
.LC206:
	.ascii	"Make-a-lisp version 0.5.0\012\000"
	.align	2
.LC207:
	.ascii	"Press Ctrl+D to exit\012\000"
	.align	2
.LC208:
	.ascii	"(def! not (fn* (a) (if a false true)))\000"
	.align	2
.LC209:
	.ascii	"mal> \000"
	.align	2
.LC205:
	.word	.LC0
	.word	core_add
	.word	.LC1
	.word	core_sub
	.word	.LC2
	.word	core_mul
	.word	.LC3
	.word	core_div
	.word	.LC4
	.word	core_eq
	.word	.LC5
	.word	core_lt
	.word	.LC6
	.word	core_le
	.word	.LC7
	.word	core_gt
	.word	.LC8
	.word	core_ge
	.word	.LC9
	.word	core_list
	.word	.LC10
	.word	core_vector
	.word	.LC11
	.word	core_hashmap
	.word	.LC12
	.word	core_zip
	.word	.LC13
	.word	core_listp
	.word	.LC14
	.word	core_vectorp
	.word	.LC15
	.word	core_hashmapp
	.word	.LC16
	.word	core_envp
	.word	.LC17
	.word	core_emptyp
	.word	.LC18
	.word	core_count
	.word	.LC19
	.word	core_pr_str
	.word	.LC20
	.word	core_str
	.word	.LC21
	.word	core_prn
	.word	.LC22
	.word	core_println
	.word	.LC23
	.word	core_type
	.word	0
	.word	0
	.align	2
.LC210:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 240
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #244
	str	r0, [fp, #-248]
	str	r1, [fp, #-252]
	ldr	r3, .L1656
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	bl	lvm_make
	mov	r3, r0
	str	r3, [fp, #-240]
	ldr	r2, .L1656+4
	sub	r3, fp, #216
	mov	r1, r2
	mov	r2, #200
	mov	r0, r3
	bl	memcpy
	ldr	r0, .L1656+8
	bl	puts
	ldr	r0, .L1656+12
	bl	puts
	mov	r3, #0
	str	r3, [fp, #-236]
	b	.L1647
.L1648:
	ldr	r4, [fp, #-240]
	ldr	r2, [fp, #-240]
	ldr	r3, [fp, #-236]
	lsl	r3, r3, #3
	sub	r1, fp, #12
	add	r3, r1, r3
	ldr	r3, [r3, #-204]
	mov	r1, r3
	mov	r0, r2
	bl	text_make
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	mal_symbol
	str	r0, [fp, #-224]
	ldr	r4, [fp, #-240]
	ldr	r0, [fp, #-240]
	ldr	r3, [fp, #-236]
	lsl	r3, r3, #3
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r1, [r3, #-200]
	ldr	r3, [fp, #-224]
	ldr	r3, [r3, #32]
	mov	r2, r3
	bl	function_make
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	mal_function
	str	r0, [fp, #-220]
	ldr	r0, [fp, #-240]
	ldr	r3, [fp, #-240]
	ldr	r1, [r3, #28]
	ldr	r3, [fp, #-220]
	ldr	r2, [fp, #-224]
	bl	env_set
	ldr	r3, [fp, #-236]
	add	r3, r3, #1
	str	r3, [fp, #-236]
.L1647:
	ldr	r3, [fp, #-236]
	lsl	r3, r3, #3
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r3, [r3, #-204]
	cmp	r3, #0
	bne	.L1648
	ldr	r4, [fp, #-240]
	ldr	r3, [fp, #-240]
	ldr	r1, .L1656+16
	mov	r0, r3
	bl	lvm_read
	mov	r1, r0
	ldr	r3, [fp, #-240]
	ldr	r3, [r3, #28]
	mov	r2, r3
	mov	r0, r4
	bl	lvm_eval
.L1652:
	ldr	r3, [fp, #-240]
	ldr	r1, .L1656+20
	mov	r0, r3
	bl	readline
	str	r0, [fp, #-232]
	mov	r3, #0
	str	r3, [fp, #-228]
	ldr	r3, [fp, #-232]
	cmp	r3, #0
	bne	.L1649
	mov	r0, #10
	bl	putchar
	nop
	sub	r3, fp, #240
	mov	r0, r3
	bl	lvm_free
	mov	r3, #0
	ldr	r2, .L1656
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1654
	b	.L1655
.L1649:
	ldr	r3, [fp, #-240]
	ldr	r1, [fp, #-232]
	mov	r0, r3
	bl	lvm_rep
	str	r0, [fp, #-228]
	ldr	r3, [fp, #-228]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L1651
	ldr	r0, [fp, #-228]
	bl	puts
.L1651:
	ldr	r0, [fp, #-228]
	bl	free
	mov	r3, #0
	str	r3, [fp, #-228]
	ldr	r0, [fp, #-232]
	bl	free
	ldr	r3, [fp, #-240]
	mov	r0, r3
	bl	lvm_gc
	b	.L1652
.L1655:
	bl	__stack_chk_fail
.L1654:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1657:
	.align	2
.L1656:
	.word	.LC210
	.word	.LC205
	.word	.LC206
	.word	.LC207
	.word	.LC208
	.word	.LC209
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
