	.file	"660953.c"
	.intel_syntax noprefix
	.text
	.local	default_input_port
	.comm	default_input_port,8,8
	.local	default_output_port
	.comm	default_output_port,8,8
	.local	symbols
	.comm	symbols,8,8
	.local	look
	.comm	look,4,4
	.local	token
	.comm	token,32,32
	.globl	is_space
	.type	is_space, @function
is_space:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	cmp	BYTE PTR -4[rbp], 32
	je	.L2
	cmp	BYTE PTR -4[rbp], 10
	jne	.L3
.L2:
	mov	eax, 1
	jmp	.L5
.L3:
	mov	eax, 0
.L5:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	is_space, .-is_space
	.globl	is_parens
	.type	is_parens, @function
is_parens:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	cmp	BYTE PTR -4[rbp], 40
	je	.L7
	cmp	BYTE PTR -4[rbp], 41
	jne	.L8
.L7:
	mov	eax, 1
	jmp	.L10
.L8:
	mov	eax, 0
.L10:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	is_parens, .-is_parens
	.globl	is_syntaxquote
	.type	is_syntaxquote, @function
is_syntaxquote:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	cmp	BYTE PTR -4[rbp], 39
	je	.L12
	cmp	BYTE PTR -4[rbp], 96
	je	.L12
	cmp	BYTE PTR -4[rbp], 44
	jne	.L13
.L12:
	mov	eax, 1
	jmp	.L15
.L13:
	mov	eax, 0
.L15:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	is_syntaxquote, .-is_syntaxquote
	.globl	is_doublequote
	.type	is_doublequote, @function
is_doublequote:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	cmp	BYTE PTR -4[rbp], 34
	sete	al
	movzx	eax, al
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	is_doublequote, .-is_doublequote
	.globl	is_digit
	.type	is_digit, @function
is_digit:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	cmp	BYTE PTR -4[rbp], 47
	jle	.L19
	cmp	BYTE PTR -4[rbp], 57
	jg	.L19
	mov	eax, 1
	jmp	.L21
.L19:
	mov	eax, 0
.L21:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	is_digit, .-is_digit
	.globl	is_op
	.type	is_op, @function
is_op:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	cmp	BYTE PTR -4[rbp], 45
	je	.L23
	cmp	BYTE PTR -4[rbp], 43
	je	.L23
	cmp	BYTE PTR -4[rbp], 42
	je	.L23
	cmp	BYTE PTR -4[rbp], 47
	je	.L23
	cmp	BYTE PTR -4[rbp], 61
	je	.L23
	cmp	BYTE PTR -4[rbp], 37
	je	.L23
	cmp	BYTE PTR -4[rbp], 94
	je	.L23
	cmp	BYTE PTR -4[rbp], 38
	je	.L23
	cmp	BYTE PTR -4[rbp], 124
	je	.L23
	cmp	BYTE PTR -4[rbp], 33
	jne	.L24
.L23:
	mov	eax, 1
	jmp	.L26
.L24:
	mov	eax, 0
.L26:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	is_op, .-is_op
	.globl	freadmem
	.type	freadmem, @function
freadmem:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	DWORD PTR -52[rbp], edx
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	DWORD PTR -20[rbp], 0
	jmp	.L28
.L30:
	mov	rdx, QWORD PTR -16[rbp]
	lea	rax, 1[rdx]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	lea	rcx, 1[rax]
	mov	QWORD PTR -48[rbp], rcx
	movzx	edx, BYTE PTR [rdx]
	mov	BYTE PTR [rax], dl
	add	DWORD PTR -20[rbp], 1
.L28:
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -52[rbp]
	jge	.L29
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L30
.L29:
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L31
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -48[rbp], rdx
	mov	BYTE PTR [rax], -1
.L31:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, DWORD PTR -20[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	freadmem, .-freadmem
	.globl	fwritemem
	.type	fwritemem, @function
fwritemem:
.LFB13:
	.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	DWORD PTR -52[rbp], edx
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	DWORD PTR -20[rbp], 0
	jmp	.L34
.L36:
	mov	rdx, QWORD PTR -48[rbp]
	lea	rax, 1[rdx]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rcx, 1[rax]
	mov	QWORD PTR -16[rbp], rcx
	movzx	edx, BYTE PTR [rdx]
	mov	BYTE PTR [rax], dl
	add	DWORD PTR -20[rbp], 1
.L34:
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -52[rbp]
	jge	.L35
	mov	rax, QWORD PTR -48[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L36
.L35:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, DWORD PTR -20[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	fwritemem, .-fwritemem
	.globl	lookahead
	.type	lookahead, @function
lookahead:
.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, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdi, rax
	call	getc@PLT
	mov	DWORD PTR look[rip], eax
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	lookahead, .-lookahead
	.globl	gettoken
	.type	gettoken, @function
gettoken:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -4[rbp], 0
	jmp	.L40
.L41:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	lookahead
.L40:
	mov	eax, DWORD PTR look[rip]
	movsx	eax, al
	mov	edi, eax
	call	is_space
	test	eax, eax
	jne	.L41
	mov	eax, DWORD PTR look[rip]
	movsx	eax, al
	mov	edi, eax
	call	is_parens
	test	eax, eax
	jne	.L42
	mov	eax, DWORD PTR look[rip]
	movsx	eax, al
	mov	edi, eax
	call	is_syntaxquote
	test	eax, eax
	jne	.L42
	mov	eax, DWORD PTR look[rip]
	movsx	eax, al
	mov	edi, eax
	call	is_op
	test	eax, eax
	je	.L43
.L42:
	mov	ecx, DWORD PTR look[rip]
	mov	eax, DWORD PTR -4[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -4[rbp], edx
	cdqe
	lea	rdx, token[rip]
	mov	BYTE PTR [rax+rdx], cl
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	lookahead
	movzx	eax, BYTE PTR token[rip]
	cmp	al, 44
	jne	.L55
	mov	eax, DWORD PTR look[rip]
	cmp	eax, 64
	jne	.L55
	mov	ecx, DWORD PTR look[rip]
	mov	eax, DWORD PTR -4[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -4[rbp], edx
	cdqe
	lea	rdx, token[rip]
	mov	BYTE PTR [rax+rdx], cl
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	lookahead
	jmp	.L55
.L43:
	mov	eax, DWORD PTR look[rip]
	movsx	eax, al
	mov	edi, eax
	call	is_doublequote
	test	eax, eax
	je	.L46
	mov	ecx, DWORD PTR look[rip]
	mov	eax, DWORD PTR -4[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -4[rbp], edx
	cdqe
	lea	rdx, token[rip]
	mov	BYTE PTR [rax+rdx], cl
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	lookahead
	jmp	.L47
.L49:
	mov	ecx, DWORD PTR look[rip]
	mov	eax, DWORD PTR -4[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -4[rbp], edx
	cdqe
	lea	rdx, token[rip]
	mov	BYTE PTR [rax+rdx], cl
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	lookahead
.L47:
	cmp	DWORD PTR -4[rbp], 30
	jg	.L48
	mov	eax, DWORD PTR look[rip]
	cmp	eax, -1
	je	.L48
	mov	eax, DWORD PTR look[rip]
	movsx	eax, al
	mov	edi, eax
	call	is_doublequote
	test	eax, eax
	je	.L49
.L48:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	lookahead
	jmp	.L45
.L46:
	mov	eax, DWORD PTR look[rip]
	movsx	eax, al
	mov	edi, eax
	call	is_digit
	test	eax, eax
	je	.L53
	jmp	.L51
.L52:
	mov	ecx, DWORD PTR look[rip]
	mov	eax, DWORD PTR -4[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -4[rbp], edx
	cdqe
	lea	rdx, token[rip]
	mov	BYTE PTR [rax+rdx], cl
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	lookahead
.L51:
	cmp	DWORD PTR -4[rbp], 30
	jg	.L45
	mov	eax, DWORD PTR look[rip]
	cmp	eax, -1
	je	.L45
	mov	eax, DWORD PTR look[rip]
	movsx	eax, al
	mov	edi, eax
	call	is_digit
	test	eax, eax
	jne	.L52
	jmp	.L45
.L54:
	mov	ecx, DWORD PTR look[rip]
	mov	eax, DWORD PTR -4[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -4[rbp], edx
	cdqe
	lea	rdx, token[rip]
	mov	BYTE PTR [rax+rdx], cl
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	lookahead
.L53:
	cmp	DWORD PTR -4[rbp], 30
	jg	.L45
	mov	eax, DWORD PTR look[rip]
	cmp	eax, -1
	je	.L45
	mov	eax, DWORD PTR look[rip]
	movsx	eax, al
	mov	edi, eax
	call	is_space
	test	eax, eax
	jne	.L45
	mov	eax, DWORD PTR look[rip]
	movsx	eax, al
	mov	edi, eax
	call	is_parens
	test	eax, eax
	je	.L54
	jmp	.L45
.L55:
	nop
.L45:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, token[rip]
	mov	BYTE PTR [rax+rdx], 0
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	gettoken, .-gettoken
	.globl	tagalloc
	.type	tagalloc, @function
tagalloc:
.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, 32
	mov	DWORD PTR -20[rbp], edi
	mov	esi, 32
	mov	edi, 1
	call	calloc@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	edx, DWORD PTR -20[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	tagalloc, .-tagalloc
	.globl	cons
	.type	cons, @function
cons:
.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, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	edi, 1
	call	tagalloc
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	cons, .-cons
	.globl	newsymbol
	.type	newsymbol, @function
newsymbol:
.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, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	edi, 0
	call	tagalloc
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	strdup@PLT
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	newsymbol, .-newsymbol
	.globl	newnumber
	.type	newnumber, @function
newnumber:
.LFB19:
	.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	edi, 8
	call	tagalloc
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, 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
.LFE19:
	.size	newnumber, .-newnumber
	.globl	newstring
	.type	newstring, @function
newstring:
.LFB20:
	.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	edi, 7
	call	tagalloc
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, 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
.LFE20:
	.size	newstring, .-newstring
	.globl	newprimop
	.type	newprimop, @function
newprimop:
.LFB21:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	edi, 2
	call	tagalloc
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, 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
.LFE21:
	.size	newprimop, .-newprimop
	.globl	newclosure
	.type	newclosure, @function
newclosure:
.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, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	edi, 3
	call	tagalloc
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], rdx
	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]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE22:
	.size	newclosure, .-newclosure
	.globl	newsyntax
	.type	newsyntax, @function
newsyntax:
.LFB23:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	edi, 5
	call	tagalloc
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, 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
.LFE23:
	.size	newsyntax, .-newsyntax
	.globl	newmacro
	.type	newmacro, @function
newmacro:
.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, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	edi, 4
	call	tagalloc
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], rdx
	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]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE24:
	.size	newmacro, .-newmacro
	.globl	newchar
	.type	newchar, @function
newchar:
.LFB25:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	eax, edi
	mov	BYTE PTR -20[rbp], al
	mov	edi, 6
	call	tagalloc
	mov	QWORD PTR -8[rbp], rax
	movsx	rdx, BYTE PTR -20[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE25:
	.size	newchar, .-newchar
	.globl	newport
	.type	newport, @function
newport:
.LFB26:
	.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	edi, 9
	call	tagalloc
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, 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
.LFE26:
	.size	newport, .-newport
	.globl	car
	.type	car, @function
car:
.LFB27:
	.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
	cmp	QWORD PTR -8[rbp], 0
	je	.L79
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 16[rax]
	jmp	.L81
.L79:
	mov	eax, 0
.L81:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE27:
	.size	car, .-car
	.globl	cdr
	.type	cdr, @function
cdr:
.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
	cmp	QWORD PTR -8[rbp], 0
	je	.L83
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	jmp	.L85
.L83:
	mov	eax, 0
.L85:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE28:
	.size	cdr, .-cdr
	.globl	intern
	.type	intern, @function
intern:
.LFB29:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	rax, QWORD PTR symbols[rip]
	mov	QWORD PTR -24[rbp], rax
	jmp	.L87
.L90:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	rcx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, 32
	mov	rsi, rcx
	mov	rdi, rax
	call	strncmp@PLT
	test	eax, eax
	jne	.L88
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	jmp	.L89
.L88:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -24[rbp], rax
.L87:
	cmp	QWORD PTR -24[rbp], 0
	jne	.L90
	mov	rbx, QWORD PTR symbols[rip]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	newsymbol
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	QWORD PTR symbols[rip], rax
	mov	rax, QWORD PTR symbols[rip]
	mov	rdi, rax
	call	car
.L89:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE29:
	.size	intern, .-intern
	.globl	gettokenobj
	.type	gettokenobj, @function
gettokenobj:
.LFB30:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	gettoken
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	getobj
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE30:
	.size	gettokenobj, .-gettokenobj
	.section	.rodata
.LC0:
	.string	"unquote-splicing"
.LC1:
	.string	"unquote"
.LC2:
	.string	"quasiquote"
.LC3:
	.string	"quote"
	.text
	.globl	getobj
	.type	getobj, @function
getobj:
.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
	movzx	eax, BYTE PTR token[rip]
	cmp	al, 44
	jne	.L94
	movzx	eax, BYTE PTR token[rip+1]
	cmp	al, 64
	jne	.L94
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	gettokenobj
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	rbx, rax
	lea	rdi, .LC0[rip]
	call	intern
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	jmp	.L95
.L94:
	movzx	eax, BYTE PTR token[rip]
	cmp	al, 44
	jne	.L96
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	gettokenobj
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	rbx, rax
	lea	rdi, .LC1[rip]
	call	intern
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	jmp	.L95
.L96:
	movzx	eax, BYTE PTR token[rip]
	cmp	al, 96
	jne	.L97
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	gettokenobj
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	rbx, rax
	lea	rdi, .LC2[rip]
	call	intern
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	jmp	.L95
.L97:
	movzx	eax, BYTE PTR token[rip]
	cmp	al, 39
	jne	.L98
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	gettokenobj
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	rbx, rax
	lea	rdi, .LC3[rip]
	call	intern
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	jmp	.L95
.L98:
	movzx	eax, BYTE PTR token[rip]
	cmp	al, 40
	jne	.L99
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	getlist
	jmp	.L95
.L99:
	movzx	eax, BYTE PTR token[rip]
	movsx	eax, al
	mov	edi, eax
	call	is_doublequote
	test	eax, eax
	je	.L100
	lea	rax, token[rip+1]
	mov	rdi, rax
	call	newstring
	jmp	.L95
.L100:
	movzx	eax, BYTE PTR token[rip]
	movsx	eax, al
	mov	edi, eax
	call	is_digit
	test	eax, eax
	je	.L101
	lea	rdi, token[rip]
	call	atoi@PLT
	cdqe
	mov	rdi, rax
	call	newnumber
	jmp	.L95
.L101:
	lea	rdi, token[rip]
	call	intern
.L95:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE31:
	.size	getobj, .-getobj
	.globl	getlist
	.type	getlist, @function
getlist:
.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]
	mov	rdi, rax
	call	gettoken
	movzx	eax, BYTE PTR token[rip]
	cmp	al, 41
	jne	.L103
	mov	eax, 0
	jmp	.L104
.L103:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	getobj
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	getlist
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	cons
.L104:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE32:
	.size	getlist, .-getlist
	.globl	newline
	.type	newline, @function
newline:
.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	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE33:
	.size	newline, .-newline
	.globl	err
	.type	err, @function
err:
.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, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR default_output_port[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	fputs@PLT
	mov	rax, QWORD PTR default_output_port[rip]
	mov	rdx, QWORD PTR -16[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	print_obj
	mov	rax, QWORD PTR default_output_port[rip]
	mov	rdi, rax
	call	newline
	mov	edi, 1
	call	exit@PLT
	.cfi_endproc
.LFE34:
	.size	err, .-err
	.section	.rodata
.LC4:
	.string	" . "
	.text
	.globl	print_obj_list
	.type	print_obj_list, @function
print_obj_list:
.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	car
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	print_obj
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	cdr
	test	rax, rax
	je	.L110
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	cdr
	mov	eax, DWORD PTR [rax]
	cmp	eax, 1
	jne	.L109
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rsi, rax
	mov	edi, 32
	call	fputc@PLT
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	cdr
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	print_obj_list
	jmp	.L110
.L109:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rcx, rax
	mov	edx, 3
	mov	esi, 1
	lea	rdi, .LC4[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	cdr
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	print_obj
.L110:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE35:
	.size	print_obj_list, .-print_obj_list
	.section	.rodata
.LC5:
	.string	"()"
.LC6:
	.string	"<CLOSURE>"
.LC7:
	.string	"<PRIMOP>"
.LC8:
	.string	"<MACRO>"
.LC9:
	.string	"<SYNTAX>"
.LC10:
	.string	"\"%s\""
.LC11:
	.string	"%ld"
	.text
	.globl	print_obj
	.type	print_obj, @function
print_obj:
.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, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	cmp	QWORD PTR -16[rbp], 0
	jne	.L112
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rcx, rax
	mov	edx, 2
	mov	esi, 1
	lea	rdi, .LC5[rip]
	call	fwrite@PLT
	jmp	.L122
.L112:
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L114
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rdx]
	mov	rsi, rdx
	mov	rdi, rax
	call	fputs@PLT
	jmp	.L122
.L114:
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 1
	jne	.L115
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rsi, rax
	mov	edi, 40
	call	fputc@PLT
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	print_obj_list
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rsi, rax
	mov	edi, 41
	call	fputc@PLT
	jmp	.L122
.L115:
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 3
	jne	.L116
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rcx, rax
	mov	edx, 9
	mov	esi, 1
	lea	rdi, .LC6[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	print_obj
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	print_obj
	jmp	.L122
.L116:
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	jne	.L117
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rcx, rax
	mov	edx, 8
	mov	esi, 1
	lea	rdi, .LC7[rip]
	call	fwrite@PLT
	jmp	.L122
.L117:
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 4
	jne	.L118
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rcx, rax
	mov	edx, 7
	mov	esi, 1
	lea	rdi, .LC8[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	print_obj
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	print_obj
	jmp	.L122
.L118:
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 5
	jne	.L119
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rcx, rax
	mov	edx, 8
	mov	esi, 1
	lea	rdi, .LC9[rip]
	call	fwrite@PLT
	jmp	.L122
.L119:
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 6
	jne	.L120
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rsi, rax
	mov	edi, edx
	call	fputc@PLT
	jmp	.L122
.L120:
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 7
	jne	.L121
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	lea	rsi, .LC10[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L122
.L121:
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 8
	jne	.L122
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	lea	rsi, .LC11[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L122:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE36:
	.size	print_obj, .-print_obj
	.section	.rodata
.LC12:
	.string	"#t"
	.text
	.globl	format
	.type	format, @function
format:
.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, 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 8[rax]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L124
.L129:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 126
	jne	.L125
	add	QWORD PTR -8[rbp], 1
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 115
	jne	.L126
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	car
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	print_obj
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -40[rbp], rax
	jmp	.L127
.L126:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 37
	jne	.L128
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	jmp	.L127
.L128:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 126
	jne	.L127
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rsi, rax
	mov	edi, 126
	call	fputc@PLT
.L127:
	add	QWORD PTR -8[rbp], 1
	jmp	.L124
.L125:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -8[rbp]
	lea	rcx, 1[rax]
	mov	QWORD PTR -8[rbp], rcx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	rsi, rdx
	mov	edi, eax
	call	fputc@PLT
.L124:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L129
	lea	rdi, .LC12[rip]
	call	intern
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE37:
	.size	format, .-format
	.globl	map_
	.type	map_, @function
map_:
.LFB38:
	.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	QWORD PTR -24[rbp], 0
	lea	rax, -24[rbp]
	mov	QWORD PTR -16[rbp], rax
	jmp	.L132
.L133:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	car
	mov	rcx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR -48[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	call	rdx
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	add	rax, 8
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -40[rbp], rax
.L132:
	cmp	QWORD PTR -40[rbp], 0
	jne	.L133
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L135
	call	__stack_chk_fail@PLT
.L135:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE38:
	.size	map_, .-map_
	.globl	fcons
	.type	fcons, @function
fcons:
.LFB39:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 24
	.cfi_offset 3, -24
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cdr
	mov	rdi, rax
	call	car
	mov	rbx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE39:
	.size	fcons, .-fcons
	.globl	fcar
	.type	fcar, @function
fcar:
.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, 8
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	car
	mov	rdi, rax
	call	car
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE40:
	.size	fcar, .-fcar
	.globl	fcdr
	.type	fcdr, @function
fcdr:
.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, 8
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	car
	mov	rdi, rax
	call	cdr
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE41:
	.size	fcdr, .-fcdr
	.globl	feq
	.type	feq, @function
feq:
.LFB42:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 24
	.cfi_offset 3, -24
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	rbx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cdr
	mov	rdi, rax
	call	car
	cmp	rbx, rax
	jne	.L143
	lea	rdi, .LC12[rip]
	call	intern
	jmp	.L145
.L143:
	mov	eax, 0
.L145:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE42:
	.size	feq, .-feq
	.globl	fnot
	.type	fnot, @function
fnot:
.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, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	car
	test	rax, rax
	jne	.L147
	lea	rdi, .LC12[rip]
	call	intern
	jmp	.L149
.L147:
	mov	eax, 0
.L149:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE43:
	.size	fnot, .-fnot
	.globl	fpair
	.type	fpair, @function
fpair:
.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, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	car
	mov	eax, DWORD PTR [rax]
	cmp	eax, 1
	jne	.L151
	lea	rdi, .LC12[rip]
	call	intern
	jmp	.L153
.L151:
	mov	eax, 0
.L153:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE44:
	.size	fpair, .-fpair
	.globl	fatom
	.type	fatom, @function
fatom:
.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, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	car
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L155
	lea	rdi, .LC12[rip]
	call	intern
	jmp	.L157
.L155:
	mov	eax, 0
.L157:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE45:
	.size	fatom, .-fatom
	.globl	fnull
	.type	fnull, @function
fnull:
.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, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	car
	test	rax, rax
	jne	.L159
	lea	rdi, .LC12[rip]
	call	intern
	jmp	.L161
.L159:
	mov	eax, 0
.L161:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE46:
	.size	fnull, .-fnull
	.globl	freadobj
	.type	freadobj, @function
freadobj:
.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, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR default_input_port[rip]
	mov	rdi, rax
	call	gettokenobj
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE47:
	.size	freadobj, .-freadobj
	.globl	fwriteobj
	.type	fwriteobj, @function
fwriteobj:
.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, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	car
	mov	rdx, rax
	mov	rax, QWORD PTR default_output_port[rip]
	mov	rsi, rdx
	mov	rdi, rax
	call	print_obj
	mov	rax, QWORD PTR default_output_port[rip]
	mov	rdi, rax
	call	newline
	lea	rdi, .LC12[rip]
	call	intern
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE48:
	.size	fwriteobj, .-fwriteobj
	.globl	fputch
	.type	fputch, @function
fputch:
.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	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	car
	mov	rax, QWORD PTR 8[rax]
	mov	edi, eax
	call	putchar@PLT
	lea	rdi, .LC12[rip]
	call	intern
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE49:
	.size	fputch, .-fputch
	.globl	fgetch
	.type	fgetch, @function
fgetch:
.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, 16
	mov	QWORD PTR -8[rbp], rdi
	call	getchar@PLT
	movsx	eax, al
	mov	edi, eax
	call	newchar
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE50:
	.size	fgetch, .-fgetch
	.globl	fformat
	.type	fformat, @function
fformat:
.LFB51:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 24
	.cfi_offset 3, -24
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cdr
	mov	rbx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	rcx, rax
	mov	rax, QWORD PTR default_output_port[rip]
	mov	rdx, rbx
	mov	rsi, rcx
	mov	rdi, rax
	call	format
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE51:
	.size	fformat, .-fformat
	.globl	feval
	.type	feval, @function
feval:
.LFB52:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 24
	.cfi_offset 3, -24
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cdr
	mov	rdi, rax
	call	car
	mov	rbx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	rsi, rbx
	mov	rdi, rax
	call	eval
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE52:
	.size	feval, .-feval
	.globl	fquote
	.type	fquote, @function
fquote:
.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, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	cdr
	mov	rdi, rax
	call	car
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE53:
	.size	fquote, .-fquote
	.globl	flambda
	.type	flambda, @function
flambda:
.LFB54:
	.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	rdi, rax
	call	cdr
	mov	rdi, rax
	call	cdr
	mov	rdi, rax
	call	car
	mov	rbx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cdr
	mov	rdi, rax
	call	car
	mov	rcx, rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, rax
	mov	rsi, rbx
	mov	rdi, rcx
	call	newclosure
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE54:
	.size	flambda, .-flambda
	.globl	fenv
	.type	fenv, @function
fenv:
.LFB55:
	.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	rax, QWORD PTR -16[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE55:
	.size	fenv, .-fenv
	.globl	fadd
	.type	fadd, @function
fadd:
.LFB56:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	car
	mov	rax, QWORD PTR 8[rax]
	mov	rdi, rax
	call	newnumber
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -40[rbp], rax
	jmp	.L181
.L182:
	mov	rax, QWORD PTR -24[rbp]
	mov	rbx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	car
	mov	rax, QWORD PTR 8[rax]
	lea	rdx, [rbx+rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -40[rbp], rax
.L181:
	cmp	QWORD PTR -40[rbp], 0
	jne	.L182
	mov	rax, QWORD PTR -24[rbp]
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE56:
	.size	fadd, .-fadd
	.globl	fsub
	.type	fsub, @function
fsub:
.LFB57:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	car
	mov	rax, QWORD PTR 8[rax]
	mov	rdi, rax
	call	newnumber
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -40[rbp], rax
	jmp	.L185
.L186:
	mov	rax, QWORD PTR -24[rbp]
	mov	rbx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	car
	mov	rax, QWORD PTR 8[rax]
	mov	rdx, rbx
	sub	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -40[rbp], rax
.L185:
	cmp	QWORD PTR -40[rbp], 0
	jne	.L186
	mov	rax, QWORD PTR -24[rbp]
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE57:
	.size	fsub, .-fsub
	.globl	fmul
	.type	fmul, @function
fmul:
.LFB58:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	car
	mov	rax, QWORD PTR 8[rax]
	mov	rdi, rax
	call	newnumber
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -40[rbp], rax
	jmp	.L189
.L190:
	mov	rax, QWORD PTR -24[rbp]
	mov	rbx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	car
	mov	rax, QWORD PTR 8[rax]
	mov	rdx, rbx
	imul	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -40[rbp], rax
.L189:
	cmp	QWORD PTR -40[rbp], 0
	jne	.L190
	mov	rax, QWORD PTR -24[rbp]
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE58:
	.size	fmul, .-fmul
	.globl	fdiv
	.type	fdiv, @function
fdiv:
.LFB59:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	car
	mov	rax, QWORD PTR 8[rax]
	mov	rdi, rax
	call	newnumber
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -40[rbp], rax
	jmp	.L193
.L194:
	mov	rax, QWORD PTR -24[rbp]
	mov	rbx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	car
	mov	rcx, QWORD PTR 8[rax]
	mov	rax, rbx
	cqo
	idiv	rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -40[rbp], rax
.L193:
	cmp	QWORD PTR -40[rbp], 0
	jne	.L194
	mov	rax, QWORD PTR -24[rbp]
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE59:
	.size	fdiv, .-fdiv
	.globl	fmodulo
	.type	fmodulo, @function
fmodulo:
.LFB60:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	car
	mov	rax, QWORD PTR 8[rax]
	mov	rdi, rax
	call	newnumber
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -40[rbp], rax
	jmp	.L197
.L198:
	mov	rax, QWORD PTR -24[rbp]
	mov	rbx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	car
	mov	rcx, QWORD PTR 8[rax]
	mov	rax, rbx
	cqo
	idiv	rcx
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -40[rbp], rax
.L197:
	cmp	QWORD PTR -40[rbp], 0
	jne	.L198
	mov	rax, QWORD PTR -24[rbp]
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE60:
	.size	fmodulo, .-fmodulo
	.globl	fexp
	.type	fexp, @function
fexp:
.LFB61:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	car
	mov	rax, QWORD PTR 8[rax]
	mov	rdi, rax
	call	newnumber
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -40[rbp], rax
	jmp	.L201
.L202:
	mov	rax, QWORD PTR -24[rbp]
	mov	rbx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	car
	mov	rax, QWORD PTR 8[rax]
	mov	rdx, rbx
	xor	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -40[rbp], rax
.L201:
	cmp	QWORD PTR -40[rbp], 0
	jne	.L202
	mov	rax, QWORD PTR -24[rbp]
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE61:
	.size	fexp, .-fexp
	.globl	fmeq
	.type	fmeq, @function
fmeq:
.LFB62:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 24
	.cfi_offset 3, -24
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	rbx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cdr
	mov	rdi, rax
	call	car
	mov	rax, QWORD PTR 8[rax]
	cmp	rbx, rax
	jne	.L205
	lea	rdi, .LC12[rip]
	call	intern
	jmp	.L207
.L205:
	mov	eax, 0
.L207:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE62:
	.size	fmeq, .-fmeq
	.globl	fapply
	.type	fapply, @function
fapply:
.LFB63:
	.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 fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -48[rbp], 0
	lea	rax, -48[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	cdr
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -32[rbp], rax
	jmp	.L209
.L210:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	car
	mov	rdx, rax
	mov	rax, QWORD PTR -64[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	eval
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	add	rax, 8
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -32[rbp], rax
.L209:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	cdr
	test	rax, rax
	jne	.L210
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	car
	mov	rdx, rax
	mov	rax, QWORD PTR -64[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	eval
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rbx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	cdr
	mov	rdi, rax
	call	car
	mov	rdx, rax
	mov	rax, QWORD PTR -64[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	eval
	mov	rsi, rbx
	mov	rdi, rax
	call	apply
	mov	rcx, QWORD PTR -24[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L212
	call	__stack_chk_fail@PLT
.L212:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE63:
	.size	fapply, .-fapply
	.section	.rodata
.LC13:
	.string	"cannot expand: "
	.text
	.globl	fexpand
	.type	fexpand, @function
fexpand:
.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, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cdr
	mov	rdi, rax
	call	car
	mov	rdi, rax
	call	car
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	eval
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 4
	jne	.L214
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cdr
	mov	rdi, rax
	call	car
	mov	rdi, rax
	call	cdr
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	expand
	jmp	.L215
.L214:
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rax
	lea	rdi, .LC13[rip]
	call	err
	mov	eax, 0
.L215:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE64:
	.size	fexpand, .-fexpand
	.section	.rodata
.LC14:
	.string	"cannot make macro from: "
	.text
	.globl	fmacro
	.type	fmacro, @function
fmacro:
.LFB65:
	.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	cdr
	mov	rdi, rax
	call	car
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	eval
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 3
	jne	.L217
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rsi, rcx
	mov	rdi, rax
	call	newmacro
	jmp	.L218
.L217:
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rax
	lea	rdi, .LC14[rip]
	call	err
	mov	eax, 0
.L218:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE65:
	.size	fmacro, .-fmacro
	.globl	fif
	.type	fif, @function
fif:
.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, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	cdr
	mov	rdi, rax
	call	car
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	eval
	test	rax, rax
	je	.L220
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	cdr
	mov	rdi, rax
	call	cdr
	mov	rdi, rax
	call	car
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	eval
	jmp	.L221
.L220:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	cdr
	mov	rdi, rax
	call	cdr
	mov	rdi, rax
	call	cdr
	mov	rdi, rax
	call	car
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	eval
.L221:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE66:
	.size	fif, .-fif
	.section	.rodata
.LC15:
	.string	"."
	.text
	.globl	bind_append
	.type	bind_append, @function
bind_append:
.LFB67:
	.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 -72[rbp]
	mov	QWORD PTR -40[rbp], rax
	lea	rax, -40[rbp]
	mov	QWORD PTR -32[rbp], rax
	cmp	QWORD PTR -56[rbp], 0
	je	.L225
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L225
	mov	rax, QWORD PTR -64[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	cons
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	cons
	jmp	.L229
.L228:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	car
	mov	rbx, rax
	lea	rdi, .LC15[rip]
	call	intern
	cmp	rbx, rax
	jne	.L226
	mov	rax, QWORD PTR -64[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	rbx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	cdr
	mov	rdi, rax
	call	car
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	cons
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR [rdx], rax
	jmp	.L227
.L226:
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, rax
	call	car
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	rbx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	car
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	rdx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	cons
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR [rax]
	add	rax, 8
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -56[rbp], rax
.L225:
	cmp	QWORD PTR -56[rbp], 0
	je	.L227
	cmp	QWORD PTR -64[rbp], 0
	jne	.L228
.L227:
	mov	rax, QWORD PTR -40[rbp]
.L229:
	mov	rcx, QWORD PTR -24[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L230
	call	__stack_chk_fail@PLT
.L230:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE67:
	.size	bind_append, .-bind_append
	.globl	expand
	.type	expand, @function
expand:
.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, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 4
	jne	.L232
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	bind_append
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	eval
	jmp	.L233
.L232:
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rax
	lea	rdi, .LC13[rip]
	call	err
	mov	eax, 0
.L233:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE68:
	.size	expand, .-expand
	.section	.rodata
.LC16:
	.string	"cannot apply: "
	.text
	.globl	apply
	.type	apply, @function
apply:
.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, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	jne	.L235
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	rdx
	jmp	.L236
.L235:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 3
	jne	.L237
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	bind_append
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	eval
	jmp	.L236
.L237:
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rax
	lea	rdi, .LC16[rip]
	call	err
	mov	eax, 0
.L236:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE69:
	.size	apply, .-apply
	.section	.rodata
.LC17:
	.string	"cannot lookup: "
.LC18:
	.string	"cannot evaluate: "
	.text
	.globl	eval
	.type	eval, @function
eval:
.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, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L239
	jmp	.L240
.L243:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	car
	mov	rdi, rax
	call	car
	cmp	QWORD PTR -24[rbp], rax
	jne	.L241
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	car
	mov	rdi, rax
	call	cdr
	mov	rdi, rax
	call	car
	jmp	.L242
.L241:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -32[rbp], rax
.L240:
	cmp	QWORD PTR -32[rbp], 0
	jne	.L243
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rax
	lea	rdi, .LC17[rip]
	call	err
	mov	eax, 0
	jmp	.L242
.L239:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 8
	jne	.L244
	mov	rax, QWORD PTR -24[rbp]
	jmp	.L242
.L244:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 7
	jne	.L245
	mov	rax, QWORD PTR -24[rbp]
	jmp	.L242
.L245:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 3
	jne	.L246
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rdx, QWORD PTR -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	eval
	jmp	.L242
.L246:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 1
	jne	.L247
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	eval
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 4
	jne	.L248
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cdr
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	expand
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	eval
	jmp	.L242
.L248:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 5
	jne	.L249
	mov	rax, QWORD PTR -8[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
	jmp	.L242
.L249:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cdr
	mov	rcx, rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, rax
	lea	rsi, eval[rip]
	mov	rdi, rcx
	call	map_
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	apply
	jmp	.L242
.L247:
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rax
	lea	rdi, .LC18[rip]
	call	err
	mov	eax, 0
.L242:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE70:
	.size	eval, .-eval
	.section	.rodata
.LC19:
	.string	"Y"
	.align 8
.LC20:
	.string	"(lambda (fn) ((lambda (h) (h h)) (lambda (g) (fn (lambda args (apply (g g) args))))))"
.LC21:
	.string	"list"
.LC22:
	.string	"(lambda args args)"
.LC23:
	.string	"foldr"
	.align 8
.LC24:
	.string	"(lambda (fn0 acc0 lst0) ((Y (lambda (foldr0) (lambda (acc lst) (if (null? lst) acc (fn0 (car lst) (foldr0 acc (cdr lst))))))) acc0 lst0 ))"
.LC25:
	.string	"foldl"
	.align 8
.LC26:
	.string	"(lambda (fn0 acc0 lst0) ((Y (lambda (foldl0) (lambda (acc lst) (if (null? lst) acc (foldl0 (fn0 (car lst) acc) (cdr lst)))))) acc0 lst0 ))"
.LC27:
	.string	"cond"
	.align 8
.LC28:
	.string	"(macro (lambda exp0 ((Y (lambda (condr) (lambda (exp) (if (null? exp) (quote (quote ())) (list (quote if) (car (car exp)) (car (cdr (car exp))) (condr (cdr exp))))))) exp0 )))"
.LC29:
	.string	"append"
	.align 8
.LC30:
	.string	"(Y (lambda (append0) (lambda (x y) (cond ((null? x) y) ((quote #t) (cons (car x) (append0 (cdr x) y)))))))"
	.align 8
.LC31:
	.ascii	"(macro (lambda (exp0) (cons (quote list) ((Y (lambda (expand"
	.ascii	"-qq) (lambda (exp) (cond ((null? exp) (quote ())) ((pair? ex"
	.ascii	"p) (cond ((eq? (car exp) (quote unq"
	.string	"uote)) (car (cdr exp))) ((eq? (car exp) (quote unquote-splicing)) (append (car (cdr exp)) (expand-qq (cdr (cdr exp))))) ((quote #t) (cons (expand-qq (car exp)) (expand-qq (cdr exp)))))) ((quote #t) (cons (quote quote) (cons exp (quote ()) ))))))) exp0 ))))"
.LC32:
	.string	"map"
	.align 8
.LC33:
	.string	"(lambda (fn l0) ((Y (lambda (mapr) (lambda (l1 l2) (if (null? l1) l2 (cons (fn (car l1)) (mapr (cdr l1) l2)))))) l0 (quote ()) ))"
.LC34:
	.string	"let"
	.align 8
.LC35:
	.string	"(macro (lambda (args body) (append (list (list (quote lambda) (map (lambda (x) (car x)) args) body)) (map (lambda (x) (car (cdr x))) args))))"
.LC36:
	.string	"let*"
	.align 8
.LC37:
	.string	"(macro (lambda (args body) (foldr (lambda (x y) (list (quote let) (list x) y)) body args )))"
.LC38:
	.string	"letrec"
	.align 8
.LC39:
	.string	"(macro (lambda (args body) (list (quote let) (map (lambda (x) (let ((var (car x)) (val (car (cdr x)))) (list var (list (quote Y) (list (quote lambda) (list var) val))))) args) body )))"
.LC40:
	.string	"letrec*"
	.align 8
.LC41:
	.string	"(macro (lambda (args body) (foldr (lambda (x y) (list (quote letrec) (list x) y)) body args )))"
.LC42:
	.string	"curry"
	.align 8
.LC43:
	.string	"(lambda (func arg1) (lambda (arg) (apply func (cons arg1 (list arg)))))"
.LC44:
	.string	"compose"
	.align 8
.LC45:
	.string	"(lambda (f g) (lambda arg (f (apply g arg))))"
	.section	.data.rel.local,"aw"
	.align 32
	.type	env_src, @object
	.size	env_src, 240
env_src:
	.quad	.LC19
	.quad	.LC20
	.quad	.LC21
	.quad	.LC22
	.quad	.LC23
	.quad	.LC24
	.quad	.LC25
	.quad	.LC26
	.quad	.LC27
	.quad	.LC28
	.quad	.LC29
	.quad	.LC30
	.quad	.LC2
	.quad	.LC31
	.quad	.LC32
	.quad	.LC33
	.quad	.LC34
	.quad	.LC35
	.quad	.LC36
	.quad	.LC37
	.quad	.LC38
	.quad	.LC39
	.quad	.LC40
	.quad	.LC41
	.quad	.LC42
	.quad	.LC43
	.quad	.LC44
	.quad	.LC45
	.quad	0
	.quad	0
	.text
	.globl	eval_string
	.type	eval_string, @function
eval_string:
.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, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	lea	rax, -24[rbp]
	mov	r8d, 0
	mov	ecx, 0
	mov	edx, 0
	lea	rsi, freadmem[rip]
	mov	rdi, rax
	mov	eax, 0
	call	funopen@PLT
	cdqe
	mov	rdi, rax
	call	newport
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	lookahead
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	gettokenobj
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	eval
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE71:
	.size	eval_string, .-eval_string
	.globl	extend_env
	.type	extend_env, @function
extend_env:
.LFB72:
	.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
	jmp	.L253
.L254:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	eval_string
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	rbx, rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	intern
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	cons
	mov	QWORD PTR -24[rbp], rax
	add	QWORD PTR -32[rbp], 16
.L253:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L254
	mov	rax, QWORD PTR -24[rbp]
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE72:
	.size	extend_env, .-extend_env
	.section	.rodata
.LC46:
	.string	"="
.LC47:
	.string	"/"
.LC48:
	.string	"*"
.LC49:
	.string	"-"
.LC50:
	.string	"+"
.LC51:
	.string	"environment"
.LC52:
	.string	"expand"
.LC53:
	.string	"macro"
.LC54:
	.string	"if"
.LC55:
	.string	"lambda"
.LC56:
	.string	"apply"
.LC57:
	.string	"eval"
.LC58:
	.string	"format"
.LC59:
	.string	"write"
.LC60:
	.string	"read"
.LC61:
	.string	"null?"
.LC62:
	.string	"symbol?"
.LC63:
	.string	"pair?"
.LC64:
	.string	"not"
.LC65:
	.string	"eq?"
.LC66:
	.string	"cons"
.LC67:
	.string	"cdr"
.LC68:
	.string	"car"
	.text
	.globl	main
	.type	main, @function
main:
.LFB73:
	.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	DWORD PTR -36[rbp], edi
	mov	QWORD PTR -48[rbp], rsi
	lea	rdi, fmeq[rip]
	call	newprimop
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	rbx, rax
	lea	rdi, .LC46[rip]
	call	intern
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	rbx, rax
	lea	rdi, fdiv[rip]
	call	newprimop
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	r12, rax
	lea	rdi, .LC47[rip]
	call	intern
	mov	rsi, r12
	mov	rdi, rax
	call	cons
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	rbx, rax
	lea	rdi, fmul[rip]
	call	newprimop
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	r12, rax
	lea	rdi, .LC48[rip]
	call	intern
	mov	rsi, r12
	mov	rdi, rax
	call	cons
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	rbx, rax
	lea	rdi, fsub[rip]
	call	newprimop
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	r12, rax
	lea	rdi, .LC49[rip]
	call	intern
	mov	rsi, r12
	mov	rdi, rax
	call	cons
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	rbx, rax
	lea	rdi, fadd[rip]
	call	newprimop
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	r12, rax
	lea	rdi, .LC50[rip]
	call	intern
	mov	rsi, r12
	mov	rdi, rax
	call	cons
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	rbx, rax
	lea	rdi, fenv[rip]
	call	newsyntax
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	r12, rax
	lea	rdi, .LC51[rip]
	call	intern
	mov	rsi, r12
	mov	rdi, rax
	call	cons
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	rbx, rax
	lea	rdi, fexpand[rip]
	call	newsyntax
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	r12, rax
	lea	rdi, .LC52[rip]
	call	intern
	mov	rsi, r12
	mov	rdi, rax
	call	cons
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	rbx, rax
	lea	rdi, fmacro[rip]
	call	newsyntax
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	r12, rax
	lea	rdi, .LC53[rip]
	call	intern
	mov	rsi, r12
	mov	rdi, rax
	call	cons
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	rbx, rax
	lea	rdi, fif[rip]
	call	newsyntax
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	r12, rax
	lea	rdi, .LC54[rip]
	call	intern
	mov	rsi, r12
	mov	rdi, rax
	call	cons
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	rbx, rax
	lea	rdi, flambda[rip]
	call	newsyntax
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	r12, rax
	lea	rdi, .LC55[rip]
	call	intern
	mov	rsi, r12
	mov	rdi, rax
	call	cons
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	rbx, rax
	lea	rdi, fquote[rip]
	call	newsyntax
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	r12, rax
	lea	rdi, .LC3[rip]
	call	intern
	mov	rsi, r12
	mov	rdi, rax
	call	cons
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	rbx, rax
	lea	rdi, fapply[rip]
	call	newsyntax
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	r12, rax
	lea	rdi, .LC56[rip]
	call	intern
	mov	rsi, r12
	mov	rdi, rax
	call	cons
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	rbx, rax
	lea	rdi, feval[rip]
	call	newprimop
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	r12, rax
	lea	rdi, .LC57[rip]
	call	intern
	mov	rsi, r12
	mov	rdi, rax
	call	cons
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	rbx, rax
	lea	rdi, fformat[rip]
	call	newprimop
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	r12, rax
	lea	rdi, .LC58[rip]
	call	intern
	mov	rsi, r12
	mov	rdi, rax
	call	cons
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	rbx, rax
	lea	rdi, fwriteobj[rip]
	call	newprimop
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	r12, rax
	lea	rdi, .LC59[rip]
	call	intern
	mov	rsi, r12
	mov	rdi, rax
	call	cons
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	rbx, rax
	lea	rdi, freadobj[rip]
	call	newprimop
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	r12, rax
	lea	rdi, .LC60[rip]
	call	intern
	mov	rsi, r12
	mov	rdi, rax
	call	cons
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	rbx, rax
	lea	rdi, fnull[rip]
	call	newprimop
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	r12, rax
	lea	rdi, .LC61[rip]
	call	intern
	mov	rsi, r12
	mov	rdi, rax
	call	cons
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	rbx, rax
	lea	rdi, fatom[rip]
	call	newprimop
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	r12, rax
	lea	rdi, .LC62[rip]
	call	intern
	mov	rsi, r12
	mov	rdi, rax
	call	cons
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	rbx, rax
	lea	rdi, fpair[rip]
	call	newprimop
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	r12, rax
	lea	rdi, .LC63[rip]
	call	intern
	mov	rsi, r12
	mov	rdi, rax
	call	cons
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	rbx, rax
	lea	rdi, fnot[rip]
	call	newprimop
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	r12, rax
	lea	rdi, .LC64[rip]
	call	intern
	mov	rsi, r12
	mov	rdi, rax
	call	cons
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	rbx, rax
	lea	rdi, feq[rip]
	call	newprimop
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	r12, rax
	lea	rdi, .LC65[rip]
	call	intern
	mov	rsi, r12
	mov	rdi, rax
	call	cons
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	rbx, rax
	lea	rdi, fcons[rip]
	call	newprimop
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	r12, rax
	lea	rdi, .LC66[rip]
	call	intern
	mov	rsi, r12
	mov	rdi, rax
	call	cons
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	rbx, rax
	lea	rdi, fcdr[rip]
	call	newprimop
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	r12, rax
	lea	rdi, .LC67[rip]
	call	intern
	mov	rsi, r12
	mov	rdi, rax
	call	cons
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	rbx, rax
	lea	rdi, fcar[rip]
	call	newprimop
	mov	esi, 0
	mov	rdi, rax
	call	cons
	mov	r12, rax
	lea	rdi, .LC68[rip]
	call	intern
	mov	rsi, r12
	mov	rdi, rax
	call	cons
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, env_src[rip]
	mov	rdi, rax
	call	extend_env
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR stdin[rip]
	mov	rdi, rax
	call	newport
	mov	QWORD PTR default_input_port[rip], rax
	mov	rax, QWORD PTR stdout[rip]
	mov	rdi, rax
	call	newport
	mov	QWORD PTR default_output_port[rip], rax
	mov	rax, QWORD PTR default_input_port[rip]
	mov	rdi, rax
	call	lookahead
	mov	rax, QWORD PTR default_input_port[rip]
	mov	rdi, rax
	call	gettokenobj
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	eval
	mov	rdx, rax
	mov	rax, QWORD PTR default_output_port[rip]
	mov	rsi, rdx
	mov	rdi, rax
	call	print_obj
	mov	rax, QWORD PTR default_output_port[rip]
	mov	rdi, rax
	call	newline
	mov	eax, 0
	add	rsp, 32
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE73:
	.size	main, .-main
	.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	"660953.c"
	.text
	.local	default_input_port
	.comm	default_input_port,4,4
	.local	default_output_port
	.comm	default_output_port,4,4
	.local	symbols
	.comm	symbols,4,4
	.local	look
	.comm	look,4,4
	.local	token
	.comm	token,32,4
	.align	2
	.global	is_space
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_space, %function
is_space:
	@ 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
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #32
	beq	.L2
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #10
	bne	.L3
.L2:
	mov	r3, #1
	b	.L5
.L3:
	mov	r3, #0
.L5:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	is_space, .-is_space
	.align	2
	.global	is_parens
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_parens, %function
is_parens:
	@ 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
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #40
	beq	.L7
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #41
	bne	.L8
.L7:
	mov	r3, #1
	b	.L10
.L8:
	mov	r3, #0
.L10:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	is_parens, .-is_parens
	.align	2
	.global	is_syntaxquote
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_syntaxquote, %function
is_syntaxquote:
	@ 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
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #39
	beq	.L12
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #96
	beq	.L12
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #44
	bne	.L13
.L12:
	mov	r3, #1
	b	.L15
.L13:
	mov	r3, #0
.L15:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	is_syntaxquote, .-is_syntaxquote
	.align	2
	.global	is_doublequote
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_doublequote, %function
is_doublequote:
	@ 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
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #34
	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_doublequote, .-is_doublequote
	.align	2
	.global	is_digit
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_digit, %function
is_digit:
	@ 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
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #47
	bls	.L19
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #57
	bhi	.L19
	mov	r3, #1
	b	.L21
.L19:
	mov	r3, #0
.L21:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	is_digit, .-is_digit
	.align	2
	.global	is_op
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_op, %function
is_op:
	@ 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
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #45
	beq	.L23
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #43
	beq	.L23
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #42
	beq	.L23
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #47
	beq	.L23
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #61
	beq	.L23
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #37
	beq	.L23
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #94
	beq	.L23
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #38
	beq	.L23
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #124
	beq	.L23
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #33
	bne	.L24
.L23:
	mov	r3, #1
	b	.L26
.L24:
	mov	r3, #0
.L26:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	is_op, .-is_op
	.align	2
	.global	freadmem
	.syntax unified
	.arm
	.fpu softvfp
	.type	freadmem, %function
freadmem:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #36
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L28
.L30:
	ldr	r2, [fp, #-16]
	add	r3, r2, #1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-28]
	add	r1, r3, #1
	str	r1, [fp, #-28]
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L28:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	bge	.L29
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L30
.L29:
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L31
	ldr	r3, [fp, #-28]
	add	r2, r3, #1
	str	r2, [fp, #-28]
	mvn	r2, #0
	strb	r2, [r3]
.L31:
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	freadmem, .-freadmem
	.align	2
	.global	fwritemem
	.syntax unified
	.arm
	.fpu softvfp
	.type	fwritemem, %function
fwritemem:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #36
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L34
.L36:
	ldr	r2, [fp, #-28]
	add	r3, r2, #1
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-16]
	add	r1, r3, #1
	str	r1, [fp, #-16]
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L34:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	bge	.L35
	ldr	r3, [fp, #-28]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L36
.L35:
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	fwritemem, .-fwritemem
	.align	2
	.global	lookahead
	.syntax unified
	.arm
	.fpu softvfp
	.type	lookahead, %function
lookahead:
	@ 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, #4]
	mov	r0, r3
	bl	getc
	mov	r3, r0
	ldr	r2, .L39
	str	r3, [r2]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L40:
	.align	2
.L39:
	.word	look
	.size	lookahead, .-lookahead
	.align	2
	.global	gettoken
	.syntax unified
	.arm
	.fpu softvfp
	.type	gettoken, %function
gettoken:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L42
.L43:
	ldr	r0, [fp, #-16]
	bl	lookahead
.L42:
	ldr	r3, .L58
	ldr	r3, [r3]
	and	r3, r3, #255
	mov	r0, r3
	bl	is_space
	mov	r3, r0
	cmp	r3, #0
	bne	.L43
	ldr	r3, .L58
	ldr	r3, [r3]
	and	r3, r3, #255
	mov	r0, r3
	bl	is_parens
	mov	r3, r0
	cmp	r3, #0
	bne	.L44
	ldr	r3, .L58
	ldr	r3, [r3]
	and	r3, r3, #255
	mov	r0, r3
	bl	is_syntaxquote
	mov	r3, r0
	cmp	r3, #0
	bne	.L44
	ldr	r3, .L58
	ldr	r3, [r3]
	and	r3, r3, #255
	mov	r0, r3
	bl	is_op
	mov	r3, r0
	cmp	r3, #0
	beq	.L45
.L44:
	ldr	r3, .L58
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r1, r3, #1
	str	r1, [fp, #-8]
	and	r1, r2, #255
	ldr	r2, .L58+4
	strb	r1, [r2, r3]
	ldr	r0, [fp, #-16]
	bl	lookahead
	ldr	r3, .L58+4
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #44
	bne	.L57
	ldr	r3, .L58
	ldr	r3, [r3]
	cmp	r3, #64
	bne	.L57
	ldr	r3, .L58
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r1, r3, #1
	str	r1, [fp, #-8]
	and	r1, r2, #255
	ldr	r2, .L58+4
	strb	r1, [r2, r3]
	ldr	r0, [fp, #-16]
	bl	lookahead
	b	.L57
.L45:
	ldr	r3, .L58
	ldr	r3, [r3]
	and	r3, r3, #255
	mov	r0, r3
	bl	is_doublequote
	mov	r3, r0
	cmp	r3, #0
	beq	.L48
	ldr	r3, .L58
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r1, r3, #1
	str	r1, [fp, #-8]
	and	r1, r2, #255
	ldr	r2, .L58+4
	strb	r1, [r2, r3]
	ldr	r0, [fp, #-16]
	bl	lookahead
	b	.L49
.L51:
	ldr	r3, .L58
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r1, r3, #1
	str	r1, [fp, #-8]
	and	r1, r2, #255
	ldr	r2, .L58+4
	strb	r1, [r2, r3]
	ldr	r0, [fp, #-16]
	bl	lookahead
.L49:
	ldr	r3, [fp, #-8]
	cmp	r3, #30
	bgt	.L50
	ldr	r3, .L58
	ldr	r3, [r3]
	cmn	r3, #1
	beq	.L50
	ldr	r3, .L58
	ldr	r3, [r3]
	and	r3, r3, #255
	mov	r0, r3
	bl	is_doublequote
	mov	r3, r0
	cmp	r3, #0
	beq	.L51
.L50:
	ldr	r0, [fp, #-16]
	bl	lookahead
	b	.L47
.L48:
	ldr	r3, .L58
	ldr	r3, [r3]
	and	r3, r3, #255
	mov	r0, r3
	bl	is_digit
	mov	r3, r0
	cmp	r3, #0
	beq	.L55
	b	.L53
.L54:
	ldr	r3, .L58
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r1, r3, #1
	str	r1, [fp, #-8]
	and	r1, r2, #255
	ldr	r2, .L58+4
	strb	r1, [r2, r3]
	ldr	r0, [fp, #-16]
	bl	lookahead
.L53:
	ldr	r3, [fp, #-8]
	cmp	r3, #30
	bgt	.L47
	ldr	r3, .L58
	ldr	r3, [r3]
	cmn	r3, #1
	beq	.L47
	ldr	r3, .L58
	ldr	r3, [r3]
	and	r3, r3, #255
	mov	r0, r3
	bl	is_digit
	mov	r3, r0
	cmp	r3, #0
	bne	.L54
	b	.L47
.L56:
	ldr	r3, .L58
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r1, r3, #1
	str	r1, [fp, #-8]
	and	r1, r2, #255
	ldr	r2, .L58+4
	strb	r1, [r2, r3]
	ldr	r0, [fp, #-16]
	bl	lookahead
.L55:
	ldr	r3, [fp, #-8]
	cmp	r3, #30
	bgt	.L47
	ldr	r3, .L58
	ldr	r3, [r3]
	cmn	r3, #1
	beq	.L47
	ldr	r3, .L58
	ldr	r3, [r3]
	and	r3, r3, #255
	mov	r0, r3
	bl	is_space
	mov	r3, r0
	cmp	r3, #0
	bne	.L47
	ldr	r3, .L58
	ldr	r3, [r3]
	and	r3, r3, #255
	mov	r0, r3
	bl	is_parens
	mov	r3, r0
	cmp	r3, #0
	beq	.L56
	b	.L47
.L57:
	nop
.L47:
	ldr	r2, .L58+4
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L59:
	.align	2
.L58:
	.word	look
	.word	token
	.size	gettoken, .-gettoken
	.align	2
	.global	tagalloc
	.syntax unified
	.arm
	.fpu softvfp
	.type	tagalloc, %function
tagalloc:
	@ 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, #16
	mov	r0, #1
	bl	calloc
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tagalloc, .-tagalloc
	.align	2
	.global	cons
	.syntax unified
	.arm
	.fpu softvfp
	.type	cons, %function
cons:
	@ 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	r0, #1
	bl	tagalloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-20]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	cons, .-cons
	.align	2
	.global	newsymbol
	.syntax unified
	.arm
	.fpu softvfp
	.type	newsymbol, %function
newsymbol:
	@ 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	r0, #0
	bl	tagalloc
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	strdup
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	newsymbol, .-newsymbol
	.align	2
	.global	newnumber
	.syntax unified
	.arm
	.fpu softvfp
	.type	newnumber, %function
newnumber:
	@ 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	r0, #8
	bl	tagalloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	newnumber, .-newnumber
	.align	2
	.global	newstring
	.syntax unified
	.arm
	.fpu softvfp
	.type	newstring, %function
newstring:
	@ 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	r0, #7
	bl	tagalloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	newstring, .-newstring
	.align	2
	.global	newprimop
	.syntax unified
	.arm
	.fpu softvfp
	.type	newprimop, %function
newprimop:
	@ 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	r0, #2
	bl	tagalloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	newprimop, .-newprimop
	.align	2
	.global	newclosure
	.syntax unified
	.arm
	.fpu softvfp
	.type	newclosure, %function
newclosure:
	@ 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	r0, #3
	bl	tagalloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-20]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-24]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	newclosure, .-newclosure
	.align	2
	.global	newsyntax
	.syntax unified
	.arm
	.fpu softvfp
	.type	newsyntax, %function
newsyntax:
	@ 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	r0, #5
	bl	tagalloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	newsyntax, .-newsyntax
	.align	2
	.global	newmacro
	.syntax unified
	.arm
	.fpu softvfp
	.type	newmacro, %function
newmacro:
	@ 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	r0, #4
	bl	tagalloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-20]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-24]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	newmacro, .-newmacro
	.align	2
	.global	newchar
	.syntax unified
	.arm
	.fpu softvfp
	.type	newchar, %function
newchar:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	mov	r3, r0
	strb	r3, [fp, #-13]
	mov	r0, #6
	bl	tagalloc
	str	r0, [fp, #-8]
	ldrb	r2, [fp, #-13]	@ zero_extendqisi2
	ldr	r3, [fp, #-8]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	newchar, .-newchar
	.align	2
	.global	newport
	.syntax unified
	.arm
	.fpu softvfp
	.type	newport, %function
newport:
	@ 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	r0, #9
	bl	tagalloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	newport, .-newport
	.align	2
	.global	car
	.syntax unified
	.arm
	.fpu softvfp
	.type	car, %function
car:
	@ 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]
	cmp	r3, #0
	beq	.L83
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	b	.L85
.L83:
	mov	r3, #0
.L85:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	car, .-car
	.align	2
	.global	cdr
	.syntax unified
	.arm
	.fpu softvfp
	.type	cdr, %function
cdr:
	@ 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]
	cmp	r3, #0
	beq	.L87
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	b	.L89
.L87:
	mov	r3, #0
.L89:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	cdr, .-cdr
	.align	2
	.global	intern
	.syntax unified
	.arm
	.fpu softvfp
	.type	intern, %function
intern:
	@ 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, .L95
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	b	.L91
.L94:
	ldr	r0, [fp, #-8]
	bl	car
	mov	r3, r0
	ldr	r3, [r3, #4]
	mov	r2, #32
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L92
	ldr	r0, [fp, #-8]
	bl	car
	mov	r3, r0
	b	.L93
.L92:
	ldr	r0, [fp, #-8]
	bl	cdr
	str	r0, [fp, #-8]
.L91:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L94
	ldr	r0, [fp, #-16]
	bl	newsymbol
	mov	r2, r0
	ldr	r3, .L95
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	cons
	mov	r3, r0
	ldr	r2, .L95
	str	r3, [r2]
	ldr	r3, .L95
	ldr	r3, [r3]
	mov	r0, r3
	bl	car
	mov	r3, r0
.L93:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L96:
	.align	2
.L95:
	.word	symbols
	.size	intern, .-intern
	.align	2
	.global	gettokenobj
	.syntax unified
	.arm
	.fpu softvfp
	.type	gettokenobj, %function
gettokenobj:
	@ 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	gettoken
	ldr	r0, [fp, #-8]
	bl	getobj
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	gettokenobj, .-gettokenobj
	.section	.rodata
	.align	2
.LC0:
	.ascii	"unquote-splicing\000"
	.align	2
.LC1:
	.ascii	"unquote\000"
	.align	2
.LC2:
	.ascii	"quasiquote\000"
	.align	2
.LC3:
	.ascii	"quote\000"
	.text
	.align	2
	.global	getobj
	.syntax unified
	.arm
	.fpu softvfp
	.type	getobj, %function
getobj:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #12
	str	r0, [fp, #-16]
	ldr	r3, .L108
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #44
	bne	.L100
	ldr	r3, .L108
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	cmp	r3, #64
	bne	.L100
	ldr	r0, .L108+4
	bl	intern
	mov	r4, r0
	ldr	r0, [fp, #-16]
	bl	gettokenobj
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	mov	r3, r0
	b	.L101
.L100:
	ldr	r3, .L108
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #44
	bne	.L102
	ldr	r0, .L108+8
	bl	intern
	mov	r4, r0
	ldr	r0, [fp, #-16]
	bl	gettokenobj
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	mov	r3, r0
	b	.L101
.L102:
	ldr	r3, .L108
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #96
	bne	.L103
	ldr	r0, .L108+12
	bl	intern
	mov	r4, r0
	ldr	r0, [fp, #-16]
	bl	gettokenobj
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	mov	r3, r0
	b	.L101
.L103:
	ldr	r3, .L108
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #39
	bne	.L104
	ldr	r0, .L108+16
	bl	intern
	mov	r4, r0
	ldr	r0, [fp, #-16]
	bl	gettokenobj
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	mov	r3, r0
	b	.L101
.L104:
	ldr	r3, .L108
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #40
	bne	.L105
	ldr	r0, [fp, #-16]
	bl	getlist
	mov	r3, r0
	b	.L101
.L105:
	ldr	r3, .L108
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	is_doublequote
	mov	r3, r0
	cmp	r3, #0
	beq	.L106
	ldr	r3, .L108+20
	mov	r0, r3
	bl	newstring
	mov	r3, r0
	b	.L101
.L106:
	ldr	r3, .L108
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	is_digit
	mov	r3, r0
	cmp	r3, #0
	beq	.L107
	ldr	r0, .L108
	bl	atoi
	mov	r3, r0
	mov	r0, r3
	bl	newnumber
	mov	r3, r0
	b	.L101
.L107:
	ldr	r0, .L108
	bl	intern
	mov	r3, r0
.L101:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L109:
	.align	2
.L108:
	.word	token
	.word	.LC0
	.word	.LC1
	.word	.LC2
	.word	.LC3
	.word	token+1
	.size	getobj, .-getobj
	.align	2
	.global	getlist
	.syntax unified
	.arm
	.fpu softvfp
	.type	getlist, %function
getlist:
	@ 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	gettoken
	ldr	r3, .L113
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #41
	bne	.L111
	mov	r3, #0
	b	.L112
.L111:
	ldr	r0, [fp, #-16]
	bl	getobj
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	getlist
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	cons
	mov	r3, r0
.L112:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L114:
	.align	2
.L113:
	.word	token
	.size	getlist, .-getlist
	.align	2
	.global	newline
	.syntax unified
	.arm
	.fpu softvfp
	.type	newline, %function
newline:
	@ 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, #4]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	newline, .-newline
	.align	2
	.global	err
	.syntax unified
	.arm
	.fpu softvfp
	.type	err, %function
err:
	@ 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, .L117
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	fputs
	ldr	r3, .L117
	ldr	r3, [r3]
	ldr	r1, [fp, #-12]
	mov	r0, r3
	bl	print_obj
	ldr	r3, .L117
	ldr	r3, [r3]
	mov	r0, r3
	bl	newline
	mov	r0, #1
	bl	exit
.L118:
	.align	2
.L117:
	.word	default_output_port
	.size	err, .-err
	.section	.rodata
	.align	2
.LC4:
	.ascii	" . \000"
	.text
	.align	2
	.global	print_obj_list
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_obj_list, %function
print_obj_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]
	str	r1, [fp, #-12]
	ldr	r0, [fp, #-12]
	bl	car
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	print_obj
	ldr	r0, [fp, #-12]
	bl	cdr
	mov	r3, r0
	cmp	r3, #0
	beq	.L122
	ldr	r0, [fp, #-12]
	bl	cdr
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L121
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	mov	r1, r3
	mov	r0, #32
	bl	fputc
	ldr	r0, [fp, #-12]
	bl	cdr
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	print_obj_list
	b	.L122
.L121:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	mov	r2, #3
	mov	r1, #1
	ldr	r0, .L123
	bl	fwrite
	ldr	r0, [fp, #-12]
	bl	cdr
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	print_obj
.L122:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L124:
	.align	2
.L123:
	.word	.LC4
	.size	print_obj_list, .-print_obj_list
	.section	.rodata
	.align	2
.LC5:
	.ascii	"()\000"
	.align	2
.LC6:
	.ascii	"<CLOSURE>\000"
	.align	2
.LC7:
	.ascii	"<PRIMOP>\000"
	.align	2
.LC8:
	.ascii	"<MACRO>\000"
	.align	2
.LC9:
	.ascii	"<SYNTAX>\000"
	.align	2
.LC10:
	.ascii	"\"%s\"\000"
	.align	2
.LC11:
	.ascii	"%ld\000"
	.text
	.align	2
	.global	print_obj
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_obj, %function
print_obj:
	@ 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]
	cmp	r3, #0
	bne	.L126
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	mov	r2, #2
	mov	r1, #1
	ldr	r0, .L137
	bl	fwrite
	b	.L136
.L126:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L128
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #4]
	mov	r1, r2
	mov	r0, r3
	bl	fputs
	b	.L136
.L128:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L129
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	mov	r1, r3
	mov	r0, #40
	bl	fputc
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	print_obj_list
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	mov	r1, r3
	mov	r0, #41
	bl	fputc
	b	.L136
.L129:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	cmp	r3, #3
	bne	.L130
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	mov	r2, #9
	mov	r1, #1
	ldr	r0, .L137+4
	bl	fwrite
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #4]
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	print_obj
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #8]
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	print_obj
	b	.L136
.L130:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	cmp	r3, #2
	bne	.L131
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	mov	r2, #8
	mov	r1, #1
	ldr	r0, .L137+8
	bl	fwrite
	b	.L136
.L131:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	cmp	r3, #4
	bne	.L132
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	mov	r2, #7
	mov	r1, #1
	ldr	r0, .L137+12
	bl	fwrite
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #4]
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	print_obj
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #8]
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	print_obj
	b	.L136
.L132:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	cmp	r3, #5
	bne	.L133
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	mov	r2, #8
	mov	r1, #1
	ldr	r0, .L137+16
	bl	fwrite
	b	.L136
.L133:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	cmp	r3, #6
	bne	.L134
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #4]
	mov	r1, r2
	mov	r0, r3
	bl	fputc
	b	.L136
.L134:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	cmp	r3, #7
	bne	.L135
	ldr	r3, [fp, #-8]
	ldr	r0, [r3, #4]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r1, .L137+20
	bl	fprintf
	b	.L136
.L135:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	cmp	r3, #8
	bne	.L136
	ldr	r3, [fp, #-8]
	ldr	r0, [r3, #4]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r1, .L137+24
	bl	fprintf
.L136:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L138:
	.align	2
.L137:
	.word	.LC5
	.word	.LC6
	.word	.LC7
	.word	.LC8
	.word	.LC9
	.word	.LC10
	.word	.LC11
	.size	print_obj, .-print_obj
	.section	.rodata
	.align	2
.LC12:
	.ascii	"#t\000"
	.text
	.align	2
	.global	format
	.syntax unified
	.arm
	.fpu softvfp
	.type	format, %function
format:
	@ 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, #4]
	str	r3, [fp, #-8]
	b	.L140
.L145:
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #126
	bne	.L141
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #115
	bne	.L142
	ldr	r0, [fp, #-24]
	bl	car
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	print_obj
	ldr	r0, [fp, #-24]
	bl	cdr
	str	r0, [fp, #-24]
	b	.L143
.L142:
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #37
	bne	.L144
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	b	.L143
.L144:
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #126
	bne	.L143
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	mov	r1, r3
	mov	r0, #126
	bl	fputc
.L143:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
	b	.L140
.L141:
	ldr	r3, [fp, #-8]
	add	r2, r3, #1
	str	r2, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	mov	r1, r3
	mov	r0, r2
	bl	fputc
.L140:
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L145
	ldr	r0, .L147
	bl	intern
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L148:
	.align	2
.L147:
	.word	.LC12
	.size	format, .-format
	.section	.rodata
	.align	2
.LC13:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	map_
	.syntax unified
	.arm
	.fpu softvfp
	.type	map_, %function
map_:
	@ 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, .L154
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-16]
	sub	r3, fp, #16
	str	r3, [fp, #-12]
	b	.L150
.L151:
	ldr	r0, [fp, #-24]
	bl	car
	mov	r2, r0
	ldr	r3, [fp, #-28]
	ldr	r1, [fp, #-32]
	mov	r0, r2
	blx	r3
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r2, r0
	ldr	r3, [fp, #-12]
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	add	r3, r3, #4
	str	r3, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	cdr
	str	r0, [fp, #-24]
.L150:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L151
	ldr	r3, [fp, #-16]
	ldr	r2, .L154
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L153
	bl	__stack_chk_fail
.L153:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L155:
	.align	2
.L154:
	.word	.LC13
	.size	map_, .-map_
	.align	2
	.global	fcons
	.syntax unified
	.arm
	.fpu softvfp
	.type	fcons, %function
fcons:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #12
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	car
	mov	r4, r0
	ldr	r0, [fp, #-16]
	bl	cdr
	mov	r3, r0
	mov	r0, r3
	bl	car
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	fcons, .-fcons
	.align	2
	.global	fcar
	.syntax unified
	.arm
	.fpu softvfp
	.type	fcar, %function
fcar:
	@ 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	car
	mov	r3, r0
	mov	r0, r3
	bl	car
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	fcar, .-fcar
	.align	2
	.global	fcdr
	.syntax unified
	.arm
	.fpu softvfp
	.type	fcdr, %function
fcdr:
	@ 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	car
	mov	r3, r0
	mov	r0, r3
	bl	cdr
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	fcdr, .-fcdr
	.align	2
	.global	feq
	.syntax unified
	.arm
	.fpu softvfp
	.type	feq, %function
feq:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #12
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	car
	mov	r4, r0
	ldr	r0, [fp, #-16]
	bl	cdr
	mov	r3, r0
	mov	r0, r3
	bl	car
	mov	r3, r0
	cmp	r4, r3
	bne	.L163
	ldr	r0, .L166
	bl	intern
	mov	r3, r0
	b	.L165
.L163:
	mov	r3, #0
.L165:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L167:
	.align	2
.L166:
	.word	.LC12
	.size	feq, .-feq
	.align	2
	.global	fnot
	.syntax unified
	.arm
	.fpu softvfp
	.type	fnot, %function
fnot:
	@ 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	car
	mov	r3, r0
	cmp	r3, #0
	bne	.L169
	ldr	r0, .L172
	bl	intern
	mov	r3, r0
	b	.L171
.L169:
	mov	r3, #0
.L171:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L173:
	.align	2
.L172:
	.word	.LC12
	.size	fnot, .-fnot
	.align	2
	.global	fpair
	.syntax unified
	.arm
	.fpu softvfp
	.type	fpair, %function
fpair:
	@ 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	car
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L175
	ldr	r0, .L178
	bl	intern
	mov	r3, r0
	b	.L177
.L175:
	mov	r3, #0
.L177:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L179:
	.align	2
.L178:
	.word	.LC12
	.size	fpair, .-fpair
	.align	2
	.global	fatom
	.syntax unified
	.arm
	.fpu softvfp
	.type	fatom, %function
fatom:
	@ 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	car
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L181
	ldr	r0, .L184
	bl	intern
	mov	r3, r0
	b	.L183
.L181:
	mov	r3, #0
.L183:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L185:
	.align	2
.L184:
	.word	.LC12
	.size	fatom, .-fatom
	.align	2
	.global	fnull
	.syntax unified
	.arm
	.fpu softvfp
	.type	fnull, %function
fnull:
	@ 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	car
	mov	r3, r0
	cmp	r3, #0
	bne	.L187
	ldr	r0, .L190
	bl	intern
	mov	r3, r0
	b	.L189
.L187:
	mov	r3, #0
.L189:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L191:
	.align	2
.L190:
	.word	.LC12
	.size	fnull, .-fnull
	.align	2
	.global	freadobj
	.syntax unified
	.arm
	.fpu softvfp
	.type	freadobj, %function
freadobj:
	@ 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, .L194
	ldr	r3, [r3]
	mov	r0, r3
	bl	gettokenobj
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L195:
	.align	2
.L194:
	.word	default_input_port
	.size	freadobj, .-freadobj
	.align	2
	.global	fwriteobj
	.syntax unified
	.arm
	.fpu softvfp
	.type	fwriteobj, %function
fwriteobj:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #12
	str	r0, [fp, #-16]
	ldr	r3, .L198
	ldr	r4, [r3]
	ldr	r0, [fp, #-16]
	bl	car
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	print_obj
	ldr	r3, .L198
	ldr	r3, [r3]
	mov	r0, r3
	bl	newline
	ldr	r0, .L198+4
	bl	intern
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L199:
	.align	2
.L198:
	.word	default_output_port
	.word	.LC12
	.size	fwriteobj, .-fwriteobj
	.align	2
	.global	fputch
	.syntax unified
	.arm
	.fpu softvfp
	.type	fputch, %function
fputch:
	@ 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	car
	mov	r3, r0
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	putchar
	ldr	r0, .L202
	bl	intern
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L203:
	.align	2
.L202:
	.word	.LC12
	.size	fputch, .-fputch
	.align	2
	.global	fgetch
	.syntax unified
	.arm
	.fpu softvfp
	.type	fgetch, %function
fgetch:
	@ 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]
	bl	getchar
	mov	r3, r0
	and	r3, r3, #255
	mov	r0, r3
	bl	newchar
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	fgetch, .-fgetch
	.align	2
	.global	fformat
	.syntax unified
	.arm
	.fpu softvfp
	.type	fformat, %function
fformat:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #8
	str	r0, [fp, #-16]
	ldr	r3, .L208
	ldr	r4, [r3]
	ldr	r0, [fp, #-16]
	bl	car
	mov	r5, r0
	ldr	r0, [fp, #-16]
	bl	cdr
	mov	r3, r0
	mov	r2, r3
	mov	r1, r5
	mov	r0, r4
	bl	format
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L209:
	.align	2
.L208:
	.word	default_output_port
	.size	fformat, .-fformat
	.align	2
	.global	feval
	.syntax unified
	.arm
	.fpu softvfp
	.type	feval, %function
feval:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #12
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	car
	mov	r4, r0
	ldr	r0, [fp, #-16]
	bl	cdr
	mov	r3, r0
	mov	r0, r3
	bl	car
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	eval
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	feval, .-feval
	.align	2
	.global	fquote
	.syntax unified
	.arm
	.fpu softvfp
	.type	fquote, %function
fquote:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	cdr
	mov	r3, r0
	mov	r0, r3
	bl	car
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	fquote, .-fquote
	.align	2
	.global	flambda
	.syntax unified
	.arm
	.fpu softvfp
	.type	flambda, %function
flambda:
	@ 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	r0, [fp, #-16]
	bl	cdr
	mov	r3, r0
	mov	r0, r3
	bl	car
	mov	r4, r0
	ldr	r0, [fp, #-16]
	bl	cdr
	mov	r3, r0
	mov	r0, r3
	bl	cdr
	mov	r3, r0
	mov	r0, r3
	bl	car
	mov	r3, r0
	ldr	r2, [fp, #-20]
	mov	r1, r3
	mov	r0, r4
	bl	newclosure
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	flambda, .-flambda
	.align	2
	.global	fenv
	.syntax unified
	.arm
	.fpu softvfp
	.type	fenv, %function
fenv:
	@ 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]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-12]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	fenv, .-fenv
	.align	2
	.global	fadd
	.syntax unified
	.arm
	.fpu softvfp
	.type	fadd, %function
fadd:
	@ 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]
	ldr	r0, [fp, #-24]
	bl	car
	mov	r3, r0
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	newnumber
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-24]
	bl	cdr
	str	r0, [fp, #-24]
	b	.L219
.L220:
	ldr	r3, [fp, #-16]
	ldr	r4, [r3, #4]
	ldr	r0, [fp, #-24]
	bl	car
	mov	r3, r0
	ldr	r3, [r3, #4]
	add	r2, r4, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r0, [fp, #-24]
	bl	cdr
	str	r0, [fp, #-24]
.L219:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L220
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	fadd, .-fadd
	.align	2
	.global	fsub
	.syntax unified
	.arm
	.fpu softvfp
	.type	fsub, %function
fsub:
	@ 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]
	ldr	r0, [fp, #-24]
	bl	car
	mov	r3, r0
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	newnumber
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-24]
	bl	cdr
	str	r0, [fp, #-24]
	b	.L223
.L224:
	ldr	r3, [fp, #-16]
	ldr	r4, [r3, #4]
	ldr	r0, [fp, #-24]
	bl	car
	mov	r3, r0
	ldr	r3, [r3, #4]
	sub	r2, r4, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r0, [fp, #-24]
	bl	cdr
	str	r0, [fp, #-24]
.L223:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L224
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	fsub, .-fsub
	.align	2
	.global	fmul
	.syntax unified
	.arm
	.fpu softvfp
	.type	fmul, %function
fmul:
	@ 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]
	ldr	r0, [fp, #-24]
	bl	car
	mov	r3, r0
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	newnumber
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-24]
	bl	cdr
	str	r0, [fp, #-24]
	b	.L227
.L228:
	ldr	r3, [fp, #-16]
	ldr	r4, [r3, #4]
	ldr	r0, [fp, #-24]
	bl	car
	mov	r3, r0
	ldr	r3, [r3, #4]
	mul	r2, r3, r4
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r0, [fp, #-24]
	bl	cdr
	str	r0, [fp, #-24]
.L227:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L228
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	fmul, .-fmul
	.global	__aeabi_idiv
	.align	2
	.global	fdiv
	.syntax unified
	.arm
	.fpu softvfp
	.type	fdiv, %function
fdiv:
	@ 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]
	ldr	r0, [fp, #-24]
	bl	car
	mov	r3, r0
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	newnumber
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-24]
	bl	cdr
	str	r0, [fp, #-24]
	b	.L231
.L232:
	ldr	r3, [fp, #-16]
	ldr	r4, [r3, #4]
	ldr	r0, [fp, #-24]
	bl	car
	mov	r3, r0
	ldr	r3, [r3, #4]
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_idiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r0, [fp, #-24]
	bl	cdr
	str	r0, [fp, #-24]
.L231:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L232
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	fdiv, .-fdiv
	.global	__aeabi_idivmod
	.align	2
	.global	fmodulo
	.syntax unified
	.arm
	.fpu softvfp
	.type	fmodulo, %function
fmodulo:
	@ 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]
	ldr	r0, [fp, #-24]
	bl	car
	mov	r3, r0
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	newnumber
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-24]
	bl	cdr
	str	r0, [fp, #-24]
	b	.L235
.L236:
	ldr	r3, [fp, #-16]
	ldr	r4, [r3, #4]
	ldr	r0, [fp, #-24]
	bl	car
	mov	r3, r0
	ldr	r3, [r3, #4]
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_idivmod
	mov	r3, r1
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r0, [fp, #-24]
	bl	cdr
	str	r0, [fp, #-24]
.L235:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L236
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	fmodulo, .-fmodulo
	.align	2
	.global	fexp
	.syntax unified
	.arm
	.fpu softvfp
	.type	fexp, %function
fexp:
	@ 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]
	ldr	r0, [fp, #-24]
	bl	car
	mov	r3, r0
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	newnumber
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-24]
	bl	cdr
	str	r0, [fp, #-24]
	b	.L239
.L240:
	ldr	r3, [fp, #-16]
	ldr	r4, [r3, #4]
	ldr	r0, [fp, #-24]
	bl	car
	mov	r3, r0
	ldr	r3, [r3, #4]
	eor	r2, r4, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r0, [fp, #-24]
	bl	cdr
	str	r0, [fp, #-24]
.L239:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L240
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	fexp, .-fexp
	.align	2
	.global	fmeq
	.syntax unified
	.arm
	.fpu softvfp
	.type	fmeq, %function
fmeq:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #12
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	car
	mov	r3, r0
	ldr	r4, [r3, #4]
	ldr	r0, [fp, #-16]
	bl	cdr
	mov	r3, r0
	mov	r0, r3
	bl	car
	mov	r3, r0
	ldr	r3, [r3, #4]
	cmp	r4, r3
	bne	.L243
	ldr	r0, .L246
	bl	intern
	mov	r3, r0
	b	.L245
.L243:
	mov	r3, #0
.L245:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L247:
	.align	2
.L246:
	.word	.LC12
	.size	fmeq, .-fmeq
	.section	.rodata
	.align	2
.LC14:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	fapply
	.syntax unified
	.arm
	.fpu softvfp
	.type	fapply, %function
fapply:
	@ 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, .L253
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-20]
	sub	r3, fp, #20
	str	r3, [fp, #-16]
	ldr	r0, [fp, #-24]
	bl	cdr
	mov	r3, r0
	mov	r0, r3
	bl	cdr
	str	r0, [fp, #-12]
	b	.L249
.L250:
	ldr	r0, [fp, #-12]
	bl	car
	mov	r3, r0
	ldr	r1, [fp, #-28]
	mov	r0, r3
	bl	eval
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	add	r3, r3, #4
	str	r3, [fp, #-16]
	ldr	r0, [fp, #-12]
	bl	cdr
	str	r0, [fp, #-12]
.L249:
	ldr	r0, [fp, #-12]
	bl	cdr
	mov	r3, r0
	cmp	r3, #0
	bne	.L250
	ldr	r0, [fp, #-12]
	bl	car
	mov	r3, r0
	ldr	r1, [fp, #-28]
	mov	r0, r3
	bl	eval
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	ldr	r0, [fp, #-24]
	bl	cdr
	mov	r3, r0
	mov	r0, r3
	bl	car
	mov	r3, r0
	ldr	r1, [fp, #-28]
	mov	r0, r3
	bl	eval
	mov	r2, r0
	ldr	r3, [fp, #-20]
	mov	r1, r3
	mov	r0, r2
	bl	apply
	mov	r3, r0
	ldr	r2, .L253
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L252
	bl	__stack_chk_fail
.L252:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L254:
	.align	2
.L253:
	.word	.LC14
	.size	fapply, .-fapply
	.section	.rodata
	.align	2
.LC15:
	.ascii	"cannot expand: \000"
	.text
	.align	2
	.global	fexpand
	.syntax unified
	.arm
	.fpu softvfp
	.type	fexpand, %function
fexpand:
	@ 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	cdr
	mov	r3, r0
	mov	r0, r3
	bl	car
	mov	r3, r0
	mov	r0, r3
	bl	car
	mov	r3, r0
	ldr	r1, [fp, #-20]
	mov	r0, r3
	bl	eval
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #4
	bne	.L256
	ldr	r0, [fp, #-16]
	bl	cdr
	mov	r3, r0
	mov	r0, r3
	bl	car
	mov	r3, r0
	mov	r0, r3
	bl	cdr
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	expand
	mov	r3, r0
	b	.L257
.L256:
	ldr	r1, [fp, #-16]
	ldr	r0, .L258
	bl	err
	mov	r3, #0
.L257:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L259:
	.align	2
.L258:
	.word	.LC15
	.size	fexpand, .-fexpand
	.section	.rodata
	.align	2
.LC16:
	.ascii	"cannot make macro from: \000"
	.text
	.align	2
	.global	fmacro
	.syntax unified
	.arm
	.fpu softvfp
	.type	fmacro, %function
fmacro:
	@ 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	cdr
	mov	r3, r0
	mov	r0, r3
	bl	car
	mov	r3, r0
	ldr	r1, [fp, #-20]
	mov	r0, r3
	bl	eval
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #3
	bne	.L261
	ldr	r3, [fp, #-8]
	ldr	r0, [r3, #4]
	ldr	r3, [fp, #-8]
	ldr	r1, [r3, #8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	mov	r2, r3
	bl	newmacro
	mov	r3, r0
	b	.L262
.L261:
	ldr	r1, [fp, #-16]
	ldr	r0, .L263
	bl	err
	mov	r3, #0
.L262:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L264:
	.align	2
.L263:
	.word	.LC16
	.size	fmacro, .-fmacro
	.align	2
	.global	fif
	.syntax unified
	.arm
	.fpu softvfp
	.type	fif, %function
fif:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	cdr
	mov	r3, r0
	mov	r0, r3
	bl	car
	mov	r3, r0
	ldr	r1, [fp, #-12]
	mov	r0, r3
	bl	eval
	mov	r3, r0
	cmp	r3, #0
	beq	.L266
	ldr	r0, [fp, #-8]
	bl	cdr
	mov	r3, r0
	mov	r0, r3
	bl	cdr
	mov	r3, r0
	mov	r0, r3
	bl	car
	mov	r3, r0
	ldr	r1, [fp, #-12]
	mov	r0, r3
	bl	eval
	mov	r3, r0
	b	.L267
.L266:
	ldr	r0, [fp, #-8]
	bl	cdr
	mov	r3, r0
	mov	r0, r3
	bl	cdr
	mov	r3, r0
	mov	r0, r3
	bl	cdr
	mov	r3, r0
	mov	r0, r3
	bl	car
	mov	r3, r0
	ldr	r1, [fp, #-12]
	mov	r0, r3
	bl	eval
	mov	r3, r0
.L267:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	fif, .-fif
	.section	.rodata
	.align	2
.LC17:
	.ascii	".\000"
	.align	2
.LC18:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	bind_append
	.syntax unified
	.arm
	.fpu softvfp
	.type	bind_append, %function
bind_append:
	@ 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, .L277
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-24]
	sub	r3, fp, #24
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	beq	.L271
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L271
	mov	r1, #0
	ldr	r0, [fp, #-36]
	bl	cons
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	cons
	mov	r3, r0
	ldr	r1, [fp, #-40]
	mov	r0, r3
	bl	cons
	mov	r3, r0
	b	.L275
.L274:
	ldr	r0, [fp, #-32]
	bl	car
	mov	r4, r0
	ldr	r0, .L277+4
	bl	intern
	mov	r3, r0
	cmp	r4, r3
	bne	.L272
	ldr	r0, [fp, #-32]
	bl	cdr
	mov	r3, r0
	mov	r0, r3
	bl	car
	mov	r4, r0
	mov	r1, #0
	ldr	r0, [fp, #-36]
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	mov	r3, r0
	ldr	r1, [fp, #-40]
	mov	r0, r3
	bl	cons
	mov	r2, r0
	ldr	r3, [fp, #-20]
	str	r2, [r3]
	b	.L273
.L272:
	ldr	r0, [fp, #-32]
	bl	car
	mov	r4, r0
	ldr	r0, [fp, #-36]
	bl	car
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	mov	r3, r0
	ldr	r1, [fp, #-40]
	mov	r0, r3
	bl	cons
	mov	r2, r0
	ldr	r3, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	add	r3, r3, #4
	str	r3, [fp, #-20]
	ldr	r0, [fp, #-36]
	bl	cdr
	str	r0, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	cdr
	str	r0, [fp, #-32]
.L271:
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	beq	.L273
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	bne	.L274
.L273:
	ldr	r3, [fp, #-24]
.L275:
	ldr	r2, .L277
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L276
	bl	__stack_chk_fail
.L276:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L278:
	.align	2
.L277:
	.word	.LC18
	.word	.LC17
	.size	bind_append, .-bind_append
	.align	2
	.global	expand
	.syntax unified
	.arm
	.fpu softvfp
	.type	expand, %function
expand:
	@ 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]
	cmp	r3, #4
	bne	.L280
	ldr	r3, [fp, #-16]
	ldr	r4, [r3, #8]
	ldr	r3, [fp, #-16]
	ldr	r0, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	bl	bind_append
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	eval
	mov	r3, r0
	b	.L281
.L280:
	ldr	r1, [fp, #-16]
	ldr	r0, .L282
	bl	err
	mov	r3, #0
.L281:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L283:
	.align	2
.L282:
	.word	.LC15
	.size	expand, .-expand
	.section	.rodata
	.align	2
.LC19:
	.ascii	"cannot apply: \000"
	.text
	.align	2
	.global	apply
	.syntax unified
	.arm
	.fpu softvfp
	.type	apply, %function
apply:
	@ 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]
	cmp	r3, #2
	bne	.L285
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	ldr	r0, [fp, #-20]
	blx	r3
	mov	r3, r0
	b	.L286
.L285:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	cmp	r3, #3
	bne	.L287
	ldr	r3, [fp, #-16]
	ldr	r4, [r3, #8]
	ldr	r3, [fp, #-16]
	ldr	r0, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	bl	bind_append
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	eval
	mov	r3, r0
	b	.L286
.L287:
	ldr	r1, [fp, #-16]
	ldr	r0, .L288
	bl	err
	mov	r3, #0
.L286:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L289:
	.align	2
.L288:
	.word	.LC19
	.size	apply, .-apply
	.section	.rodata
	.align	2
.LC20:
	.ascii	"cannot lookup: \000"
	.align	2
.LC21:
	.ascii	"cannot evaluate: \000"
	.text
	.align	2
	.global	eval
	.syntax unified
	.arm
	.fpu softvfp
	.type	eval, %function
eval:
	@ 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]
	cmp	r3, #0
	bne	.L291
	b	.L292
.L295:
	ldr	r0, [fp, #-20]
	bl	car
	mov	r3, r0
	mov	r0, r3
	bl	car
	mov	r2, r0
	ldr	r3, [fp, #-16]
	cmp	r3, r2
	bne	.L293
	ldr	r0, [fp, #-20]
	bl	car
	mov	r3, r0
	mov	r0, r3
	bl	cdr
	mov	r3, r0
	mov	r0, r3
	bl	car
	mov	r3, r0
	b	.L294
.L293:
	ldr	r0, [fp, #-20]
	bl	cdr
	str	r0, [fp, #-20]
.L292:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L295
	ldr	r1, [fp, #-16]
	ldr	r0, .L302
	bl	err
	mov	r3, #0
	b	.L294
.L291:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	cmp	r3, #8
	bne	.L296
	ldr	r3, [fp, #-16]
	b	.L294
.L296:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	cmp	r3, #7
	bne	.L297
	ldr	r3, [fp, #-16]
	b	.L294
.L297:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	cmp	r3, #3
	bne	.L298
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	ldr	r1, [fp, #-20]
	mov	r0, r3
	bl	eval
	mov	r3, r0
	b	.L294
.L298:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L299
	ldr	r0, [fp, #-16]
	bl	car
	mov	r3, r0
	ldr	r1, [fp, #-20]
	mov	r0, r3
	bl	eval
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #4
	bne	.L300
	ldr	r0, [fp, #-16]
	bl	cdr
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	expand
	mov	r3, r0
	ldr	r1, [fp, #-20]
	mov	r0, r3
	bl	eval
	mov	r3, r0
	b	.L294
.L300:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #5
	bne	.L301
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	blx	r3
	mov	r3, r0
	b	.L294
.L301:
	ldr	r0, [fp, #-16]
	bl	cdr
	mov	r3, r0
	ldr	r2, [fp, #-20]
	ldr	r1, .L302+4
	mov	r0, r3
	bl	map_
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	apply
	mov	r3, r0
	b	.L294
.L299:
	ldr	r1, [fp, #-16]
	ldr	r0, .L302+8
	bl	err
	mov	r3, #0
.L294:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L303:
	.align	2
.L302:
	.word	.LC20
	.word	eval
	.word	.LC21
	.size	eval, .-eval
	.section	.rodata
	.align	2
.LC22:
	.ascii	"Y\000"
	.align	2
.LC23:
	.ascii	"(lambda (fn) ((lambda (h) (h h)) (lambda (g) (fn (l"
	.ascii	"ambda args (apply (g g) args))))))\000"
	.align	2
.LC24:
	.ascii	"list\000"
	.align	2
.LC25:
	.ascii	"(lambda args args)\000"
	.align	2
.LC26:
	.ascii	"foldr\000"
	.align	2
.LC27:
	.ascii	"(lambda (fn0 acc0 lst0) ((Y (lambda (foldr0) (lambd"
	.ascii	"a (acc lst) (if (null? lst) acc (fn0 (car lst) (fol"
	.ascii	"dr0 acc (cdr lst))))))) acc0 lst0 ))\000"
	.align	2
.LC28:
	.ascii	"foldl\000"
	.align	2
.LC29:
	.ascii	"(lambda (fn0 acc0 lst0) ((Y (lambda (foldl0) (lambd"
	.ascii	"a (acc lst) (if (null? lst) acc (foldl0 (fn0 (car l"
	.ascii	"st) acc) (cdr lst)))))) acc0 lst0 ))\000"
	.align	2
.LC30:
	.ascii	"cond\000"
	.align	2
.LC31:
	.ascii	"(macro (lambda exp0 ((Y (lambda (condr) (lambda (ex"
	.ascii	"p) (if (null? exp) (quote (quote ())) (list (quote "
	.ascii	"if) (car (car exp)) (car (cdr (car exp))) (condr (c"
	.ascii	"dr exp))))))) exp0 )))\000"
	.align	2
.LC32:
	.ascii	"append\000"
	.align	2
.LC33:
	.ascii	"(Y (lambda (append0) (lambda (x y) (cond ((null? x)"
	.ascii	" y) ((quote #t) (cons (car x) (append0 (cdr x) y)))"
	.ascii	"))))\000"
	.align	2
.LC34:
	.ascii	"(macro (lambda (exp0) (cons (quote list) ((Y (lambd"
	.ascii	"a (expand-qq) (lambda (exp) (cond ((null? exp) (quo"
	.ascii	"te ())) ((pair? exp) (cond ((eq? (car exp) (quote u"
	.ascii	"nquote)) (car (cdr exp))) ((eq? (car exp) (quote un"
	.ascii	"quote-splicing)) (append (car (cdr exp)) (expand-qq"
	.ascii	" (cdr (cdr exp))))) ((quote #t) (cons (expand-qq (c"
	.ascii	"ar exp)) (expand-qq (cdr exp)))))) ((quote #t) (con"
	.ascii	"s (quote quote) (cons exp (quote ()) ))))))) exp0 )"
	.ascii	")))\000"
	.align	2
.LC35:
	.ascii	"map\000"
	.align	2
.LC36:
	.ascii	"(lambda (fn l0) ((Y (lambda (mapr) (lambda (l1 l2) "
	.ascii	"(if (null? l1) l2 (cons (fn (car l1)) (mapr (cdr l1"
	.ascii	") l2)))))) l0 (quote ()) ))\000"
	.align	2
.LC37:
	.ascii	"let\000"
	.align	2
.LC38:
	.ascii	"(macro (lambda (args body) (append (list (list (quo"
	.ascii	"te lambda) (map (lambda (x) (car x)) args) body)) ("
	.ascii	"map (lambda (x) (car (cdr x))) args))))\000"
	.align	2
.LC39:
	.ascii	"let*\000"
	.align	2
.LC40:
	.ascii	"(macro (lambda (args body) (foldr (lambda (x y) (li"
	.ascii	"st (quote let) (list x) y)) body args )))\000"
	.align	2
.LC41:
	.ascii	"letrec\000"
	.align	2
.LC42:
	.ascii	"(macro (lambda (args body) (list (quote let) (map ("
	.ascii	"lambda (x) (let ((var (car x)) (val (car (cdr x))))"
	.ascii	" (list var (list (quote Y) (list (quote lambda) (li"
	.ascii	"st var) val))))) args) body )))\000"
	.align	2
.LC43:
	.ascii	"letrec*\000"
	.align	2
.LC44:
	.ascii	"(macro (lambda (args body) (foldr (lambda (x y) (li"
	.ascii	"st (quote letrec) (list x) y)) body args )))\000"
	.align	2
.LC45:
	.ascii	"curry\000"
	.align	2
.LC46:
	.ascii	"(lambda (func arg1) (lambda (arg) (apply func (cons"
	.ascii	" arg1 (list arg)))))\000"
	.align	2
.LC47:
	.ascii	"compose\000"
	.align	2
.LC48:
	.ascii	"(lambda (f g) (lambda arg (f (apply g arg))))\000"
	.data
	.align	2
	.type	env_src, %object
	.size	env_src, 120
env_src:
	.word	.LC22
	.word	.LC23
	.word	.LC24
	.word	.LC25
	.word	.LC26
	.word	.LC27
	.word	.LC28
	.word	.LC29
	.word	.LC30
	.word	.LC31
	.word	.LC32
	.word	.LC33
	.word	.LC2
	.word	.LC34
	.word	.LC35
	.word	.LC36
	.word	.LC37
	.word	.LC38
	.word	.LC39
	.word	.LC40
	.word	.LC41
	.word	.LC42
	.word	.LC43
	.word	.LC44
	.word	.LC45
	.word	.LC46
	.word	.LC47
	.word	.LC48
	.word	0
	.word	0
	.text
	.align	2
	.global	eval_string
	.syntax unified
	.arm
	.fpu softvfp
	.type	eval_string, %function
eval_string:
	@ args = 0, pretend = 0, frame = 16
	@ 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]
	sub	r0, fp, #16
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #0
	ldr	r1, .L306
	bl	funopen
	mov	r3, r0
	mov	r0, r3
	bl	newport
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	lookahead
	ldr	r0, [fp, #-8]
	bl	gettokenobj
	mov	r3, r0
	ldr	r1, [fp, #-20]
	mov	r0, r3
	bl	eval
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L307:
	.align	2
.L306:
	.word	freadmem
	.size	eval_string, .-eval_string
	.align	2
	.global	extend_env
	.syntax unified
	.arm
	.fpu softvfp
	.type	extend_env, %function
extend_env:
	@ 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]
	b	.L309
.L310:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	mov	r0, r3
	bl	intern
	mov	r4, r0
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #4]
	ldr	r1, [fp, #-16]
	mov	r0, r3
	bl	eval_string
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	mov	r3, r0
	ldr	r1, [fp, #-16]
	mov	r0, r3
	bl	cons
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-20]
	add	r3, r3, #8
	str	r3, [fp, #-20]
.L309:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L310
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	extend_env, .-extend_env
	.section	.rodata
	.align	2
.LC49:
	.ascii	"car\000"
	.align	2
.LC50:
	.ascii	"cdr\000"
	.align	2
.LC51:
	.ascii	"cons\000"
	.align	2
.LC52:
	.ascii	"eq?\000"
	.align	2
.LC53:
	.ascii	"not\000"
	.align	2
.LC54:
	.ascii	"pair?\000"
	.align	2
.LC55:
	.ascii	"symbol?\000"
	.align	2
.LC56:
	.ascii	"null?\000"
	.align	2
.LC57:
	.ascii	"read\000"
	.align	2
.LC58:
	.ascii	"write\000"
	.align	2
.LC59:
	.ascii	"format\000"
	.align	2
.LC60:
	.ascii	"eval\000"
	.align	2
.LC61:
	.ascii	"apply\000"
	.align	2
.LC62:
	.ascii	"lambda\000"
	.align	2
.LC63:
	.ascii	"if\000"
	.align	2
.LC64:
	.ascii	"macro\000"
	.align	2
.LC65:
	.ascii	"expand\000"
	.align	2
.LC66:
	.ascii	"environment\000"
	.align	2
.LC67:
	.ascii	"+\000"
	.align	2
.LC68:
	.ascii	"-\000"
	.align	2
.LC69:
	.ascii	"*\000"
	.align	2
.LC70:
	.ascii	"/\000"
	.align	2
.LC71:
	.ascii	"=\000"
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 88
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	add	fp, sp, #32
	sub	sp, sp, #92
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	ldr	r0, .L314
	bl	intern
	mov	r4, r0
	ldr	r0, .L314+4
	bl	newprimop
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	str	r0, [fp, #-56]
	ldr	r0, .L314+8
	bl	intern
	mov	r4, r0
	ldr	r0, .L314+12
	bl	newprimop
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	str	r0, [fp, #-60]
	ldr	r0, .L314+16
	bl	intern
	mov	r4, r0
	ldr	r0, .L314+20
	bl	newprimop
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	str	r0, [fp, #-64]
	ldr	r0, .L314+24
	bl	intern
	mov	r4, r0
	ldr	r0, .L314+28
	bl	newprimop
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	str	r0, [fp, #-68]
	ldr	r0, .L314+32
	bl	intern
	mov	r4, r0
	ldr	r0, .L314+36
	bl	newprimop
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	str	r0, [fp, #-72]
	ldr	r0, .L314+40
	bl	intern
	mov	r4, r0
	ldr	r0, .L314+44
	bl	newprimop
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	str	r0, [fp, #-76]
	ldr	r0, .L314+48
	bl	intern
	mov	r4, r0
	ldr	r0, .L314+52
	bl	newprimop
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	str	r0, [fp, #-80]
	ldr	r0, .L314+56
	bl	intern
	mov	r4, r0
	ldr	r0, .L314+60
	bl	newprimop
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	str	r0, [fp, #-84]
	ldr	r0, .L314+64
	bl	intern
	mov	r4, r0
	ldr	r0, .L314+68
	bl	newprimop
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	str	r0, [fp, #-88]
	ldr	r0, .L314+72
	bl	intern
	mov	r4, r0
	ldr	r0, .L314+76
	bl	newprimop
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	str	r0, [fp, #-92]
	ldr	r0, .L314+80
	bl	intern
	mov	r4, r0
	ldr	r0, .L314+84
	bl	newprimop
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	str	r0, [fp, #-96]
	ldr	r0, .L314+88
	bl	intern
	mov	r4, r0
	ldr	r0, .L314+92
	bl	newprimop
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	str	r0, [fp, #-100]
	ldr	r0, .L314+96
	bl	intern
	mov	r4, r0
	ldr	r0, .L314+100
	bl	newsyntax
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	str	r0, [fp, #-104]
	ldr	r0, .L314+104
	bl	intern
	mov	r4, r0
	ldr	r0, .L314+108
	bl	newsyntax
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	str	r0, [fp, #-108]
	ldr	r0, .L314+112
	bl	intern
	mov	r4, r0
	ldr	r0, .L314+116
	bl	newsyntax
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	str	r0, [fp, #-112]
	ldr	r0, .L314+120
	bl	intern
	mov	r4, r0
	ldr	r0, .L314+124
	bl	newsyntax
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	str	r0, [fp, #-116]
	ldr	r0, .L314+128
	bl	intern
	mov	r4, r0
	ldr	r0, .L314+132
	bl	newsyntax
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	str	r0, [fp, #-120]
	ldr	r0, .L314+136
	bl	intern
	mov	r4, r0
	ldr	r0, .L314+140
	bl	newsyntax
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	mov	r10, r0
	ldr	r0, .L314+144
	bl	intern
	mov	r4, r0
	ldr	r0, .L314+148
	bl	newsyntax
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	mov	r9, r0
	ldr	r0, .L314+152
	bl	intern
	mov	r4, r0
	ldr	r0, .L314+156
	bl	newprimop
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	mov	r8, r0
	ldr	r0, .L314+160
	bl	intern
	mov	r4, r0
	ldr	r0, .L314+164
	bl	newprimop
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	mov	r7, r0
	ldr	r0, .L314+168
	bl	intern
	mov	r4, r0
	ldr	r0, .L314+172
	bl	newprimop
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	mov	r6, r0
	ldr	r0, .L314+176
	bl	intern
	mov	r4, r0
	ldr	r0, .L314+180
	bl	newprimop
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	mov	r5, r0
	ldr	r0, .L314+184
	bl	intern
	mov	r4, r0
	ldr	r0, .L314+188
	bl	newprimop
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r5
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r6
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r7
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r8
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r9
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r10
	bl	cons
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-120]
	bl	cons
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-116]
	bl	cons
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-112]
	bl	cons
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-108]
	bl	cons
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-104]
	bl	cons
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-100]
	bl	cons
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-96]
	bl	cons
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-92]
	bl	cons
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-88]
	bl	cons
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-84]
	bl	cons
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-80]
	bl	cons
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-76]
	bl	cons
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-72]
	bl	cons
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-68]
	bl	cons
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-64]
	bl	cons
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-60]
	bl	cons
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-56]
	bl	cons
	str	r0, [fp, #-40]
	ldr	r1, .L314+192
	ldr	r0, [fp, #-40]
	bl	extend_env
	str	r0, [fp, #-40]
	ldr	r3, .L314+196
	ldr	r3, [r3]
	mov	r0, r3
	bl	newport
	mov	r3, r0
	ldr	r2, .L314+200
	str	r3, [r2]
	ldr	r3, .L314+204
	ldr	r3, [r3]
	mov	r0, r3
	bl	newport
	mov	r3, r0
	ldr	r2, .L314+208
	str	r3, [r2]
	ldr	r3, .L314+200
	ldr	r3, [r3]
	mov	r0, r3
	bl	lookahead
	ldr	r3, .L314+208
	ldr	r4, [r3]
	ldr	r3, .L314+200
	ldr	r3, [r3]
	mov	r0, r3
	bl	gettokenobj
	mov	r3, r0
	ldr	r1, [fp, #-40]
	mov	r0, r3
	bl	eval
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	print_obj
	ldr	r3, .L314+208
	ldr	r3, [r3]
	mov	r0, r3
	bl	newline
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #32
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L315:
	.align	2
.L314:
	.word	.LC49
	.word	fcar
	.word	.LC50
	.word	fcdr
	.word	.LC51
	.word	fcons
	.word	.LC52
	.word	feq
	.word	.LC53
	.word	fnot
	.word	.LC54
	.word	fpair
	.word	.LC55
	.word	fatom
	.word	.LC56
	.word	fnull
	.word	.LC57
	.word	freadobj
	.word	.LC58
	.word	fwriteobj
	.word	.LC59
	.word	fformat
	.word	.LC60
	.word	feval
	.word	.LC61
	.word	fapply
	.word	.LC3
	.word	fquote
	.word	.LC62
	.word	flambda
	.word	.LC63
	.word	fif
	.word	.LC64
	.word	fmacro
	.word	.LC65
	.word	fexpand
	.word	.LC66
	.word	fenv
	.word	.LC67
	.word	fadd
	.word	.LC68
	.word	fsub
	.word	.LC69
	.word	fmul
	.word	.LC70
	.word	fdiv
	.word	.LC71
	.word	fmeq
	.word	env_src
	.word	stdin
	.word	default_input_port
	.word	stdout
	.word	default_output_port
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
