	.file	"334762.c"
	.intel_syntax noprefix
	.text
	.globl	t_cons_free
	.bss
	.align 4
	.type	t_cons_free, @object
	.size	t_cons_free, 4
t_cons_free:
	.zero	4
	.globl	t_cons_car
	.align 32
	.type	t_cons_car, @object
	.size	t_cons_car, 8192
t_cons_car:
	.zero	8192
	.globl	t_cons_cdr
	.align 32
	.type	t_cons_cdr, @object
	.size	t_cons_cdr, 8192
t_cons_cdr:
	.zero	8192
	.globl	t_symb_free
	.align 4
	.type	t_symb_free, @object
	.size	t_symb_free, 4
t_symb_free:
	.zero	4
	.globl	t_symb_pname
	.align 32
	.type	t_symb_pname, @object
	.size	t_symb_pname, 1360
t_symb_pname:
	.zero	1360
	.globl	t_symb_val
	.align 32
	.type	t_symb_val, @object
	.size	t_symb_val, 1360
t_symb_val:
	.zero	1360
	.globl	t_symb_fval
	.align 32
	.type	t_symb_fval, @object
	.size	t_symb_fval, 1360
t_symb_fval:
	.zero	1360
	.globl	t_symb_ftype
	.align 32
	.type	t_symb_ftype, @object
	.size	t_symb_ftype, 680
t_symb_ftype:
	.zero	680
	.globl	t_pnames_free
	.align 4
	.type	t_pnames_free, @object
	.size	t_pnames_free, 4
t_pnames_free:
	.zero	4
	.globl	t_pnames
	.align 32
	.type	t_pnames, @object
	.size	t_pnames, 512
t_pnames:
	.zero	512
	.globl	t_stack
	.align 32
	.type	t_stack, @object
	.size	t_stack, 1600
t_stack:
	.zero	1600
	.globl	t_stack_ptr
	.align 4
	.type	t_stack_ptr, @object
	.size	t_stack_ptr, 4
t_stack_ptr:
	.zero	4
	.globl	funcs
	.section	.rodata
.LC0:
	.string	"read"
.LC1:
	.string	"eval"
.LC2:
	.string	"gc"
.LC3:
	.string	"cons"
.LC4:
	.string	"car"
.LC5:
	.string	"cdr"
.LC6:
	.string	"quit"
.LC7:
	.string	"defun"
.LC8:
	.string	"quote"
.LC9:
	.string	"setq"
.LC10:
	.string	"eq"
.LC11:
	.string	"null"
.LC12:
	.string	"consp"
.LC13:
	.string	"symbolp"
.LC14:
	.string	"numberp"
.LC15:
	.string	"princ"
.LC16:
	.string	"terpri"
.LC17:
	.string	"rplaca"
.LC18:
	.string	"rplacd"
.LC19:
	.string	"progn"
.LC20:
	.string	"cond"
.LC21:
	.string	"or"
.LC22:
	.string	"not"
.LC23:
	.string	"if"
.LC24:
	.string	"list"
.LC25:
	.string	"+"
.LC26:
	.string	"-"
.LC27:
	.string	"*"
.LC28:
	.string	"/"
.LC29:
	.string	">"
.LC30:
	.string	"<"
.LC31:
	.string	"and"
.LC32:
	.string	"divide"
.LC33:
	.string	"lambda"
.LC34:
	.string	"while"
.LC35:
	.string	">="
.LC36:
	.string	"<="
.LC37:
	.string	"comment"
.LC38:
	.string	"zerop"
.LC39:
	.string	"atom"
.LC40:
	.string	"random"
.LC41:
	.string	"rem"
.LC42:
	.string	"1+"
.LC43:
	.string	"1-"
.LC44:
	.string	"equal"
.LC45:
	.string	"="
	.section	.data.rel.local,"aw"
	.align 32
	.type	funcs, @object
	.size	funcs, 752
funcs:
	.quad	.LC0
	.long	1024
	.byte	0
	.zero	3
	.quad	.LC1
	.long	1025
	.byte	1
	.zero	3
	.quad	.LC2
	.long	1024
	.byte	2
	.zero	3
	.quad	.LC3
	.long	1026
	.byte	3
	.zero	3
	.quad	.LC4
	.long	1025
	.byte	4
	.zero	3
	.quad	.LC5
	.long	1025
	.byte	5
	.zero	3
	.quad	.LC6
	.long	1024
	.byte	6
	.zero	3
	.quad	.LC7
	.long	3071
	.byte	7
	.zero	3
	.quad	.LC8
	.long	3071
	.byte	8
	.zero	3
	.quad	.LC9
	.long	2050
	.byte	9
	.zero	3
	.quad	.LC10
	.long	1026
	.byte	10
	.zero	3
	.quad	.LC11
	.long	1025
	.byte	11
	.zero	3
	.quad	.LC12
	.long	1025
	.byte	12
	.zero	3
	.quad	.LC13
	.long	1025
	.byte	13
	.zero	3
	.quad	.LC14
	.long	1025
	.byte	14
	.zero	3
	.quad	.LC15
	.long	1025
	.byte	15
	.zero	3
	.quad	.LC16
	.long	1024
	.byte	16
	.zero	3
	.quad	.LC17
	.long	1026
	.byte	17
	.zero	3
	.quad	.LC18
	.long	1026
	.byte	18
	.zero	3
	.quad	.LC19
	.long	3071
	.byte	19
	.zero	3
	.quad	.LC20
	.long	3071
	.byte	20
	.zero	3
	.quad	.LC21
	.long	3071
	.byte	21
	.zero	3
	.quad	.LC22
	.long	1025
	.byte	22
	.zero	3
	.quad	.LC23
	.long	3071
	.byte	23
	.zero	3
	.quad	.LC24
	.long	2047
	.byte	24
	.zero	3
	.quad	.LC25
	.long	2047
	.byte	25
	.zero	3
	.quad	.LC26
	.long	2047
	.byte	26
	.zero	3
	.quad	.LC27
	.long	2047
	.byte	27
	.zero	3
	.quad	.LC28
	.long	2047
	.byte	28
	.zero	3
	.quad	.LC29
	.long	1026
	.byte	29
	.zero	3
	.quad	.LC30
	.long	1026
	.byte	30
	.zero	3
	.quad	.LC31
	.long	3071
	.byte	31
	.zero	3
	.quad	.LC32
	.long	1026
	.byte	32
	.zero	3
	.quad	.LC33
	.long	2047
	.byte	33
	.zero	3
	.quad	.LC34
	.long	3071
	.byte	34
	.zero	3
	.quad	.LC35
	.long	1026
	.byte	35
	.zero	3
	.quad	.LC36
	.long	1026
	.byte	36
	.zero	3
	.quad	.LC37
	.long	3071
	.byte	37
	.zero	3
	.quad	.LC38
	.long	1025
	.byte	38
	.zero	3
	.quad	.LC39
	.long	1025
	.byte	39
	.zero	3
	.quad	.LC40
	.long	1025
	.byte	40
	.zero	3
	.quad	.LC41
	.long	1026
	.byte	41
	.zero	3
	.quad	.LC42
	.long	1025
	.byte	42
	.zero	3
	.quad	.LC43
	.long	1025
	.byte	43
	.zero	3
	.quad	.LC44
	.long	1026
	.byte	44
	.zero	3
	.quad	.LC45
	.long	1026
	.byte	45
	.zero	3
	.quad	0
	.long	-1
	.byte	-1
	.zero	3
	.globl	errmsg_sym_undef
	.section	.rodata
.LC46:
	.string	"SYMBOL UNDEFINED: "
	.section	.data.rel.local
	.align 8
	.type	errmsg_sym_undef, @object
	.size	errmsg_sym_undef, 8
errmsg_sym_undef:
	.quad	.LC46
	.globl	errmsg_func_undef
	.section	.rodata
.LC47:
	.string	"FUNCTION UNDEFINED: "
	.section	.data.rel.local
	.align 8
	.type	errmsg_func_undef, @object
	.size	errmsg_func_undef, 8
errmsg_func_undef:
	.quad	.LC47
	.globl	errmsg_ill_nargs
	.section	.rodata
.LC48:
	.string	"ILLEGAL NUMBER OF ARGUMENTS: "
	.section	.data.rel.local
	.align 8
	.type	errmsg_ill_nargs, @object
	.size	errmsg_ill_nargs, 8
errmsg_ill_nargs:
	.quad	.LC48
	.globl	errmsg_ill_type
	.section	.rodata
.LC49:
	.string	"ILLEGAL ARGUMENT TYPE: "
	.section	.data.rel.local
	.align 8
	.type	errmsg_ill_type, @object
	.size	errmsg_ill_type, 8
errmsg_ill_type:
	.quad	.LC49
	.globl	errmsg_ill_call
	.section	.rodata
.LC50:
	.string	"ILLEGAL FUNCTION CALL: "
	.section	.data.rel.local
	.align 8
	.type	errmsg_ill_call, @object
	.size	errmsg_ill_call, 8
errmsg_ill_call:
	.quad	.LC50
	.globl	errmsg_ill_syntax
	.section	.rodata
.LC51:
	.string	"ILLEGAL SYNTAX: "
	.section	.data.rel.local
	.align 8
	.type	errmsg_ill_syntax, @object
	.size	errmsg_ill_syntax, 8
errmsg_ill_syntax:
	.quad	.LC51
	.globl	errmsg_eof
	.section	.rodata
.LC52:
	.string	"END OF FILE"
	.section	.data.rel.local
	.align 8
	.type	errmsg_eof, @object
	.size	errmsg_eof, 8
errmsg_eof:
	.quad	.LC52
	.globl	errmsg_stack_of
	.section	.rodata
.LC53:
	.string	"STACK OVERFLOW"
	.section	.data.rel.local
	.align 8
	.type	errmsg_stack_of, @object
	.size	errmsg_stack_of, 8
errmsg_stack_of:
	.quad	.LC53
	.globl	errmsg_zero_div
	.section	.rodata
.LC54:
	.string	"DIVISION BY ZERO: "
	.section	.data.rel.local
	.align 8
	.type	errmsg_zero_div, @object
	.size	errmsg_zero_div, 8
errmsg_zero_div:
	.quad	.LC54
	.globl	errmsg_no_memory
	.section	.rodata
.LC55:
	.string	"\nno memory. abort.\n"
	.section	.data.rel.local
	.align 8
	.type	errmsg_no_memory, @object
	.size	errmsg_no_memory, 8
errmsg_no_memory:
	.quad	.LC55
	.text
	.globl	D_GET_TAG
	.type	D_GET_TAG, @function
D_GET_TAG:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	movabs	rax, -2415919104
	and	rax, QWORD PTR -8[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	D_GET_TAG, .-D_GET_TAG
	.globl	D_GET_DATA
	.type	D_GET_DATA, @function
D_GET_DATA:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	and	eax, 268435455
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	D_GET_DATA, .-D_GET_DATA
	.globl	gchar
	.type	gchar, @function
gchar:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	rax, QWORD PTR stdin[rip]
	mov	rdi, rax
	call	fgetc@PLT
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	gchar, .-gchar
	.globl	ugchar
	.type	ugchar, @function
ugchar:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	mov	rdx, QWORD PTR stdin[rip]
	movsx	eax, BYTE PTR -4[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	ungetc@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	ugchar, .-ugchar
	.section	.rodata
	.align 8
.LC56:
	.string	"%cCAMPUS LIsP\nLemon version,\nz88dk variant\n"
	.text
	.globl	main
	.type	main, @function
main:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	call	init
	mov	esi, 12
	lea	rdi, .LC56[rip]
	mov	eax, 0
	call	printf@PLT
	call	toplevel
	call	quit
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	main, .-main
	.section	.rodata
.LC57:
	.string	"function install error: %s\n"
	.text
	.globl	init
	.type	init, @function
init:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	edi, 0
	call	time@PLT
	mov	edi, eax
	call	srand@PLT
	mov	DWORD PTR t_stack_ptr[rip], 0
	mov	DWORD PTR t_cons_free[rip], 0
	mov	DWORD PTR -4[rbp], 0
	jmp	.L10
.L11:
	mov	eax, DWORD PTR -4[rbp]
	add	eax, 1
	cdqe
	mov	edx, DWORD PTR -4[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*8]
	lea	rdx, t_cons_car[rip]
	mov	QWORD PTR [rcx+rdx], rax
	add	DWORD PTR -4[rbp], 1
.L10:
	cmp	DWORD PTR -4[rbp], 1023
	jne	.L11
	mov	QWORD PTR t_cons_car[rip+8184], 1023
	mov	DWORD PTR t_symb_free[rip], 0
	mov	DWORD PTR -4[rbp], 0
	jmp	.L12
.L13:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, t_symb_pname[rip]
	mov	QWORD PTR [rdx+rax], 0
	add	DWORD PTR -4[rbp], 1
.L12:
	cmp	DWORD PTR -4[rbp], 170
	jne	.L13
	mov	DWORD PTR t_pnames_free[rip], 0
	mov	DWORD PTR -4[rbp], 0
	jmp	.L14
.L16:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	lea	rax, funcs[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rdi, rax
	call	symb_make
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	lea	rax, funcs[rip+8]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -4[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, t_symb_ftype[rip]
	mov	DWORD PTR [rcx+rdx], eax
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	lea	rax, funcs[rip+12]
	movzx	eax, BYTE PTR [rdx+rax]
	movsx	eax, al
	cmp	DWORD PTR -4[rbp], eax
	je	.L15
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	lea	rax, funcs[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rsi, rax
	lea	rdi, .LC57[rip]
	mov	eax, 0
	call	printf@PLT
	call	quit
.L15:
	add	DWORD PTR -4[rbp], 1
.L14:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	lea	rax, funcs[rip]
	mov	rax, QWORD PTR [rdx+rax]
	test	rax, rax
	jne	.L16
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	init, .-init
	.section	.rodata
.LC58:
	.string	"\n] "
	.text
	.globl	toplevel
	.type	toplevel, @function
toplevel:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
.L24:
	mov	DWORD PTR t_stack_ptr[rip], 0
	lea	rdi, .LC58[rip]
	mov	eax, 0
	call	printf@PLT
	call	l_read
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	js	.L25
	cmp	QWORD PTR -16[rbp], 1342177280
	je	.L26
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	gc_protect
	test	al, al
	js	.L27
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	l_eval
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	js	.L28
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	gc_unprotect
	mov	edi, 10
	call	putchar@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	l_print
	jmp	.L24
.L25:
	nop
	jmp	.L24
.L28:
	nop
	jmp	.L24
.L26:
	nop
	jmp	.L29
.L27:
	nop
.L29:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	toplevel, .-toplevel
	.section	.rodata
.LC59:
	.string	"nil"
.LC60:
	.string	"t"
	.text
	.globl	l_read
	.type	l_read, @function
l_read:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	call	skip_space
	mov	BYTE PTR -73[rbp], al
	cmp	BYTE PTR -73[rbp], 0
	jns	.L31
	mov	eax, 1342177280
	jmp	.L63
.L31:
	cmp	BYTE PTR -73[rbp], 59
	jne	.L33
	nop
.L34:
	mov	eax, 0
	call	gchar
	cmp	al, 10
	jne	.L34
	mov	rax, -1
	jmp	.L63
.L33:
	cmp	BYTE PTR -73[rbp], 39
	jne	.L35
	call	l_read
	mov	QWORD PTR -56[rbp], rax
	cmp	QWORD PTR -56[rbp], 0
	jns	.L36
	mov	rax, -1
	jmp	.L63
.L36:
	cmp	QWORD PTR -56[rbp], 1342177280
	jne	.L37
	mov	rax, QWORD PTR errmsg_eof[rip]
	mov	edx, 0
	mov	esi, 0
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L63
.L37:
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	l_cons
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rax
	mov	edi, 805306376
	call	l_cons
	mov	QWORD PTR -72[rbp], rax
	jmp	.L38
.L35:
	cmp	BYTE PTR -73[rbp], 40
	je	.L39
	movzx	eax, BYTE PTR -73[rbp]
	mov	BYTE PTR -48[rbp], al
	mov	BYTE PTR -74[rbp], 1
.L50:
	mov	eax, 0
	call	gchar
	mov	BYTE PTR -73[rbp], al
	call	__ctype_b_loc@PLT
	mov	rdx, QWORD PTR [rax]
	movsx	rax, BYTE PTR -73[rbp]
	add	rax, rax
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 8192
	test	eax, eax
	jne	.L40
	call	__ctype_b_loc@PLT
	mov	rdx, QWORD PTR [rax]
	movsx	rax, BYTE PTR -73[rbp]
	add	rax, rax
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 2
	test	eax, eax
	jne	.L40
	cmp	BYTE PTR -73[rbp], 0
	js	.L40
	cmp	BYTE PTR -73[rbp], 59
	je	.L40
	cmp	BYTE PTR -73[rbp], 40
	je	.L40
	cmp	BYTE PTR -73[rbp], 41
	jne	.L41
.L40:
	movsx	eax, BYTE PTR -73[rbp]
	mov	edi, eax
	call	ugchar
	movsx	eax, BYTE PTR -74[rbp]
	cdqe
	mov	BYTE PTR -48[rbp+rax], 0
	call	__ctype_b_loc@PLT
	mov	rdx, QWORD PTR [rax]
	movzx	eax, BYTE PTR -48[rbp]
	movsx	rax, al
	add	rax, rax
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 2048
	test	eax, eax
	je	.L42
	movzx	eax, BYTE PTR -47[rbp]
	cmp	al, 43
	je	.L42
	movzx	eax, BYTE PTR -47[rbp]
	cmp	al, 45
	jne	.L43
.L42:
	movzx	eax, BYTE PTR -48[rbp]
	cmp	al, 45
	jne	.L44
	call	__ctype_b_loc@PLT
	mov	rdx, QWORD PTR [rax]
	movzx	eax, BYTE PTR -47[rbp]
	movsx	rax, al
	add	rax, rax
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 2048
	test	eax, eax
	jne	.L43
.L44:
	movzx	eax, BYTE PTR -48[rbp]
	cmp	al, 43
	jne	.L45
	call	__ctype_b_loc@PLT
	mov	rdx, QWORD PTR [rax]
	movzx	eax, BYTE PTR -47[rbp]
	movsx	rax, al
	add	rax, rax
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 2048
	test	eax, eax
	je	.L45
.L43:
	lea	rax, -48[rbp]
	mov	rdi, rax
	call	atol@PLT
	mov	rdi, rax
	call	int_make_l
	mov	QWORD PTR -72[rbp], rax
	nop
	jmp	.L38
.L45:
	lea	rax, -48[rbp]
	lea	rsi, .LC59[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L47
	mov	QWORD PTR -72[rbp], 0
	jmp	.L38
.L47:
	lea	rax, -48[rbp]
	lea	rsi, .LC60[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L48
	mov	QWORD PTR -72[rbp], 268435456
	jmp	.L38
.L48:
	lea	rax, -48[rbp]
	mov	rdi, rax
	call	symb_make
	or	rax, 805306368
	mov	QWORD PTR -72[rbp], rax
	jmp	.L38
.L41:
	movsx	eax, BYTE PTR -74[rbp]
	cdqe
	movzx	edx, BYTE PTR -73[rbp]
	mov	BYTE PTR -48[rbp+rax], dl
	movzx	eax, BYTE PTR -74[rbp]
	add	eax, 1
	mov	BYTE PTR -74[rbp], al
	jmp	.L50
.L39:
	call	skip_space
	mov	BYTE PTR -73[rbp], al
	cmp	BYTE PTR -73[rbp], 0
	jns	.L51
	mov	rax, QWORD PTR errmsg_eof[rip]
	mov	edx, 0
	mov	esi, 0
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L63
.L51:
	cmp	BYTE PTR -73[rbp], 41
	jne	.L52
	mov	QWORD PTR -72[rbp], 0
	jmp	.L38
.L52:
	movsx	eax, BYTE PTR -73[rbp]
	mov	edi, eax
	call	ugchar
	call	l_read
	mov	QWORD PTR -56[rbp], rax
	cmp	QWORD PTR -56[rbp], 0
	jns	.L53
	mov	rax, QWORD PTR errmsg_eof[rip]
	mov	edx, 0
	mov	esi, 0
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L63
.L53:
	cmp	QWORD PTR -56[rbp], 1342177280
	jne	.L54
	mov	rax, -1
	jmp	.L63
.L54:
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	l_cons
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR -72[rbp], rax
	cmp	QWORD PTR -72[rbp], 0
	jns	.L55
	mov	rax, -1
	jmp	.L63
.L55:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	gc_protect
	test	al, al
	jns	.L56
	mov	rax, -1
	jmp	.L63
.L56:
	call	skip_space
	mov	BYTE PTR -73[rbp], al
	cmp	BYTE PTR -73[rbp], 0
	jns	.L57
	mov	rax, QWORD PTR errmsg_eof[rip]
	mov	edx, 0
	mov	esi, 0
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L63
.L57:
	cmp	BYTE PTR -73[rbp], 41
	je	.L66
	movsx	eax, BYTE PTR -73[rbp]
	mov	edi, eax
	call	ugchar
	call	l_read
	mov	QWORD PTR -56[rbp], rax
	cmp	QWORD PTR -56[rbp], 0
	jns	.L60
	mov	rax, -1
	jmp	.L63
.L60:
	cmp	QWORD PTR -56[rbp], 1342177280
	jne	.L61
	mov	rax, QWORD PTR errmsg_eof[rip]
	mov	edx, 0
	mov	esi, 0
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L63
.L61:
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	l_cons
	mov	QWORD PTR -56[rbp], rax
	cmp	QWORD PTR -56[rbp], 0
	jns	.L62
	mov	rax, -1
	jmp	.L63
.L62:
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rplacd
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	QWORD PTR -64[rbp], rax
	jmp	.L56
.L66:
	nop
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	gc_unprotect
.L38:
	mov	rax, QWORD PTR -72[rbp]
.L63:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L64
	call	__stack_chk_fail@PLT
.L64:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	l_read, .-l_read
	.globl	skip_space
	.type	skip_space, @function
skip_space:
.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
.L72:
	mov	eax, 0
	call	gchar
	mov	BYTE PTR -1[rbp], al
	cmp	BYTE PTR -1[rbp], 0
	jns	.L68
	mov	eax, -1
	jmp	.L69
.L68:
	call	__ctype_b_loc@PLT
	mov	rdx, QWORD PTR [rax]
	movsx	rax, BYTE PTR -1[rbp]
	add	rax, rax
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 8192
	test	eax, eax
	jne	.L72
	call	__ctype_b_loc@PLT
	mov	rdx, QWORD PTR [rax]
	movsx	rax, BYTE PTR -1[rbp]
	add	rax, rax
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 2
	test	eax, eax
	je	.L74
	jmp	.L72
.L74:
	nop
	movzx	eax, BYTE PTR -1[rbp]
.L69:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	skip_space, .-skip_space
	.globl	l_equal
	.type	l_equal, @function
l_equal:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR -40[rbp]
	and	eax, 268435455
	mov	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR -48[rbp]
	and	eax, 268435455
	mov	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	mov	rbx, rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rbx, rax
	je	.L76
	mov	eax, 0
	jmp	.L77
.L76:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 1073741824
	jne	.L78
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	l_car
	mov	rbx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	l_car
	mov	rsi, rbx
	mov	rdi, rax
	call	l_equal
	test	rax, rax
	jne	.L79
	mov	eax, 0
	jmp	.L77
.L79:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	l_car
	mov	rbx, rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	l_car
	mov	rsi, rbx
	mov	rdi, rax
	call	l_equal
	jmp	.L77
.L78:
	mov	rax, QWORD PTR -40[rbp]
	cmp	rax, QWORD PTR -48[rbp]
	jne	.L80
	mov	eax, 268435456
	jmp	.L77
.L80:
	mov	eax, 0
.L77:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	l_equal, .-l_equal
	.section	.rodata
.LC61:
	.string	"%ld"
.LC62:
	.string	"%s"
.LC63:
	.string	"<eof>"
.LC64:
	.string	"<undefined>"
.LC65:
	.string	" . "
	.text
	.globl	l_print
	.type	l_print, @function
l_print:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 1610612736
	je	.L83
	cmp	rax, 1610612736
	jg	.L84
	cmp	rax, 1342177280
	je	.L85
	cmp	rax, 1342177280
	jg	.L84
	cmp	rax, 1073741824
	je	.L86
	cmp	rax, 1073741824
	jg	.L84
	cmp	rax, 805306368
	je	.L87
	cmp	rax, 805306368
	jg	.L84
	cmp	rax, 536870912
	je	.L88
	cmp	rax, 536870912
	jg	.L84
	test	rax, rax
	je	.L89
	cmp	rax, 268435456
	je	.L90
	jmp	.L84
.L89:
	lea	rdi, .LC59[rip]
	mov	eax, 0
	call	printf@PLT
	jmp	.L84
.L90:
	mov	edi, 116
	call	putchar@PLT
	jmp	.L84
.L88:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	int_get_c
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rax
	lea	rdi, .LC61[rip]
	mov	eax, 0
	call	printf@PLT
	jmp	.L84
.L87:
	mov	rax, QWORD PTR -40[rbp]
	and	eax, 268435455
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, t_symb_pname[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rsi, rax
	lea	rdi, .LC62[rip]
	mov	eax, 0
	call	printf@PLT
	jmp	.L84
.L85:
	lea	rdi, .LC63[rip]
	mov	eax, 0
	call	printf@PLT
	jmp	.L84
.L83:
	lea	rdi, .LC64[rip]
	mov	eax, 0
	call	printf@PLT
	jmp	.L84
.L86:
	mov	edi, 40
	call	putchar@PLT
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	l_print
	jmp	.L91
.L92:
	mov	edi, 32
	call	putchar@PLT
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	l_print
.L91:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 1073741824
	je	.L92
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	rdi, rax
	call	D_GET_TAG
	test	rax, rax
	je	.L93
	lea	rdi, .LC65[rip]
	mov	eax, 0
	call	printf@PLT
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	rdi, rax
	call	l_print
.L93:
	mov	edi, 41
	call	putchar@PLT
	nop
.L84:
	mov	eax, 268435456
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	l_print, .-l_print
	.globl	l_eval
	.type	l_eval, @function
l_eval:
.LFB17:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r12
	push	rbx
	sub	rsp, 80
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	mov	QWORD PTR -88[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 1073741824
	je	.L96
	cmp	rax, 1073741824
	jg	.L97
	cmp	rax, 805306368
	je	.L98
	cmp	rax, 805306368
	jg	.L97
	cmp	rax, 536870912
	je	.L99
	cmp	rax, 536870912
	jg	.L97
	test	rax, rax
	je	.L99
	cmp	rax, 268435456
	jne	.L97
.L99:
	mov	rax, QWORD PTR -88[rbp]
	mov	QWORD PTR -72[rbp], rax
	jmp	.L97
.L98:
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	D_GET_DATA
	lea	rdx, 0[0+rax*8]
	lea	rax, t_symb_val[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	QWORD PTR -72[rbp], rax
	cmp	QWORD PTR -72[rbp], 1610612736
	jne	.L115
	mov	rax, QWORD PTR errmsg_sym_undef[rip]
	mov	rdx, QWORD PTR -88[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L113
.L96:
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	l_car
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 1073741824
	jne	.L102
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 805306368
	jne	.L102
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	D_GET_DATA
	cmp	rax, 33
	jne	.L102
	lea	rdx, -48[rbp]
	mov	rsi, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	ecx, 1023
	mov	rdi, rax
	call	eval_args
	test	rax, rax
	jns	.L103
	mov	rax, -1
	jmp	.L113
.L103:
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	list_len
	mov	r12d, eax
	mov	rbx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	edx, r12d
	mov	rsi, rbx
	mov	rdi, rax
	call	apply
	mov	QWORD PTR -72[rbp], rax
	jmp	.L104
.L102:
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 805306368
	jne	.L105
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, rax
	call	D_GET_DATA
	lea	rdx, 0[0+rax*4]
	lea	rax, t_symb_ftype[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdq
	shr	edx, 22
	add	eax, edx
	and	eax, 1023
	sub	eax, edx
	mov	DWORD PTR -76[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, rax
	call	D_GET_DATA
	lea	rdx, 0[0+rax*4]
	lea	rax, t_symb_ftype[rip]
	mov	eax, DWORD PTR [rdx+rax]
	lea	edx, 1023[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 10
	cmp	eax, 3
	je	.L106
	cmp	eax, 3
	jg	.L116
	cmp	eax, 2
	je	.L108
	cmp	eax, 2
	jg	.L116
	test	eax, eax
	je	.L109
	cmp	eax, 1
	je	.L110
	jmp	.L116
.L109:
	mov	rax, QWORD PTR errmsg_func_undef[rip]
	mov	rdx, QWORD PTR -64[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L113
.L108:
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	special
	mov	QWORD PTR -72[rbp], rax
	jmp	.L104
.L110:
	mov	ecx, DWORD PTR -76[rbp]
	lea	rdx, -48[rbp]
	mov	rsi, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, rax
	call	eval_args
	test	rax, rax
	jns	.L111
	mov	rax, -1
	jmp	.L113
.L111:
	lea	rdx, -48[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	fcall
	mov	QWORD PTR -72[rbp], rax
	jmp	.L104
.L106:
	lea	rdx, -48[rbp]
	mov	rsi, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	ecx, 1023
	mov	rdi, rax
	call	eval_args
	test	rax, rax
	jns	.L112
	mov	rax, -1
	jmp	.L113
.L112:
	mov	rcx, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR -76[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	apply
	mov	QWORD PTR -72[rbp], rax
	jmp	.L116
.L105:
	mov	rax, QWORD PTR errmsg_ill_call[rip]
	mov	rdx, QWORD PTR -88[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L113
.L104:
	jmp	.L116
.L115:
	nop
	jmp	.L97
.L116:
	nop
.L97:
	mov	rax, QWORD PTR -72[rbp]
.L113:
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L114
	call	__stack_chk_fail@PLT
.L114:
	add	rsp, 80
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	l_eval, .-l_eval
	.globl	special
	.type	special, @function
special:
.LFB18:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	D_GET_DATA
	sub	rax, 7
	cmp	rax, 30
	ja	.L118
	lea	rdx, 0[0+rax*4]
	lea	rax, .L120[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L120[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L120:
	.long	.L129-.L120
	.long	.L128-.L120
	.long	.L127-.L120
	.long	.L118-.L120
	.long	.L118-.L120
	.long	.L118-.L120
	.long	.L118-.L120
	.long	.L118-.L120
	.long	.L118-.L120
	.long	.L118-.L120
	.long	.L118-.L120
	.long	.L118-.L120
	.long	.L126-.L120
	.long	.L125-.L120
	.long	.L124-.L120
	.long	.L118-.L120
	.long	.L123-.L120
	.long	.L118-.L120
	.long	.L118-.L120
	.long	.L118-.L120
	.long	.L118-.L120
	.long	.L118-.L120
	.long	.L118-.L120
	.long	.L118-.L120
	.long	.L122-.L120
	.long	.L118-.L120
	.long	.L118-.L120
	.long	.L121-.L120
	.long	.L118-.L120
	.long	.L118-.L120
	.long	.L119-.L120
	.text
.L129:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	list_len
	cmp	eax, 1
	jg	.L130
	mov	rax, QWORD PTR errmsg_ill_syntax[rip]
	mov	rdx, QWORD PTR -40[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L131
.L130:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	l_car
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 805306368
	je	.L132
	mov	rax, QWORD PTR errmsg_ill_syntax[rip]
	mov	rdx, QWORD PTR -40[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L131
.L132:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	list_len
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	D_GET_DATA
	mov	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	lea	rcx, 0[0+rax*8]
	lea	rdx, t_symb_fval[rip]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rcx+rdx], rax
	mov	eax, DWORD PTR -32[rbp]
	lea	ecx, 3072[rax]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, t_symb_ftype[rip]
	mov	DWORD PTR [rdx+rax], ecx
	jmp	.L118
.L127:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	l_car
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 805306368
	je	.L133
	mov	rax, QWORD PTR errmsg_ill_type[rip]
	mov	rdx, QWORD PTR -40[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L131
.L133:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	l_eval
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jns	.L134
	mov	rax, -1
	jmp	.L131
.L134:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	D_GET_DATA
	lea	rcx, 0[0+rax*8]
	lea	rdx, t_symb_val[rip]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR [rcx+rdx], rax
	jmp	.L118
.L128:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	l_car
	mov	QWORD PTR -16[rbp], rax
	jmp	.L118
.L126:
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -24[rbp], rax
	jmp	.L135
.L137:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	l_eval
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jns	.L136
	mov	rax, -1
	jmp	.L131
.L136:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	QWORD PTR -24[rbp], rax
.L135:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 1073741824
	je	.L137
	jmp	.L118
.L121:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 1073741824
	je	.L138
	mov	rax, QWORD PTR errmsg_ill_syntax[rip]
	mov	rdx, QWORD PTR -40[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L131
.L138:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	l_eval
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jns	.L140
	mov	rax, -1
	jmp	.L131
.L144:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	QWORD PTR -24[rbp], rax
	jmp	.L141
.L143:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	l_eval
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jns	.L142
	mov	rax, -1
	jmp	.L131
.L142:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	QWORD PTR -24[rbp], rax
.L141:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 1073741824
	je	.L143
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	l_eval
	mov	QWORD PTR -16[rbp], rax
.L140:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	test	rax, rax
	jne	.L144
	jmp	.L118
.L122:
	mov	QWORD PTR -16[rbp], 268435456
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -24[rbp], rax
	jmp	.L145
.L149:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	l_eval
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jns	.L146
	mov	rax, -1
	jmp	.L131
.L146:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	test	rax, rax
	je	.L175
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	QWORD PTR -24[rbp], rax
.L145:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 1073741824
	je	.L149
	jmp	.L118
.L175:
	nop
	jmp	.L118
.L124:
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -24[rbp], rax
	jmp	.L150
.L154:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	l_eval
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jns	.L151
	mov	rax, -1
	jmp	.L131
.L151:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	test	rax, rax
	jne	.L176
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	QWORD PTR -24[rbp], rax
.L150:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 1073741824
	je	.L154
	jmp	.L118
.L176:
	nop
	jmp	.L118
.L125:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 1073741824
	je	.L155
	mov	rax, QWORD PTR errmsg_ill_syntax[rip]
	mov	rdx, QWORD PTR -40[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L131
.L155:
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -24[rbp], rax
	jmp	.L156
.L164:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	l_car
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 1073741824
	je	.L157
	mov	rax, QWORD PTR errmsg_ill_syntax[rip]
	mov	rdx, QWORD PTR -40[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L131
.L157:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	l_eval
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jns	.L158
	mov	rax, -1
	jmp	.L131
.L158:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	test	rax, rax
	je	.L159
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	QWORD PTR -8[rbp], rax
	jmp	.L160
.L162:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	l_eval
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jns	.L161
	mov	rax, -1
	jmp	.L131
.L161:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	QWORD PTR -8[rbp], rax
.L160:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 1073741824
	je	.L162
	jmp	.L174
.L159:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	QWORD PTR -24[rbp], rax
.L156:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 1073741824
	je	.L164
	jmp	.L118
.L174:
	jmp	.L118
.L119:
	mov	QWORD PTR -16[rbp], 268435456
	jmp	.L118
.L123:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 1073741824
	je	.L165
	mov	rax, QWORD PTR errmsg_ill_syntax[rip]
	mov	rdx, QWORD PTR -40[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L131
.L165:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	list_len
	mov	DWORD PTR -32[rbp], eax
	cmp	DWORD PTR -32[rbp], 2
	je	.L166
	cmp	DWORD PTR -32[rbp], 3
	jne	.L167
.L166:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	l_eval
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jns	.L168
	mov	rax, -1
	jmp	.L131
.L168:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	test	rax, rax
	je	.L169
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	l_eval
	jmp	.L131
.L169:
	cmp	DWORD PTR -32[rbp], 2
	je	.L170
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	rdi, rax
	call	l_cdr
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	l_eval
	jmp	.L131
.L170:
	mov	eax, 0
	jmp	.L131
.L167:
	mov	rax, QWORD PTR errmsg_ill_syntax[rip]
	mov	rdx, QWORD PTR -40[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L131
.L118:
	mov	rax, QWORD PTR -16[rbp]
.L131:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	special, .-special
	.globl	eval_args
	.type	eval_args, @function
eval_args:
.LFB19:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 56
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -56[rbp], rdx
	mov	DWORD PTR -60[rbp], ecx
	cmp	DWORD PTR -60[rbp], 1023
	je	.L178
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	list_len
	cmp	DWORD PTR -60[rbp], eax
	je	.L178
	mov	rax, QWORD PTR errmsg_ill_nargs[rip]
	mov	rdx, QWORD PTR -40[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L179
.L178:
	cmp	DWORD PTR -60[rbp], 1023
	je	.L180
	cmp	DWORD PTR -60[rbp], 1023
	jg	.L181
	cmp	DWORD PTR -60[rbp], 2
	je	.L182
	cmp	DWORD PTR -60[rbp], 2
	jg	.L181
	cmp	DWORD PTR -60[rbp], 0
	je	.L183
	cmp	DWORD PTR -60[rbp], 1
	je	.L184
	jmp	.L181
.L183:
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR [rax], 0
	jmp	.L181
.L184:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	l_eval
	mov	rdx, QWORD PTR -56[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jns	.L196
	mov	rax, -1
	jmp	.L179
.L182:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	l_eval
	mov	rdx, QWORD PTR -56[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jns	.L186
	mov	rax, -1
	jmp	.L179
.L186:
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	gc_protect
	test	al, al
	jns	.L187
	mov	rax, -1
	jmp	.L179
.L187:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	rdi, rax
	call	l_car
	mov	rdx, QWORD PTR -56[rbp]
	lea	rbx, 8[rdx]
	mov	rdi, rax
	call	l_eval
	mov	QWORD PTR [rbx], rax
	mov	rax, QWORD PTR [rbx]
	test	rax, rax
	jns	.L188
	mov	rax, -1
	jmp	.L179
.L188:
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	gc_unprotect
	jmp	.L181
.L180:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 1073741824
	je	.L189
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR [rax], 0
	jmp	.L181
.L189:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	l_eval
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	jns	.L190
	mov	rax, -1
	jmp	.L179
.L190:
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	l_cons
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jns	.L191
	mov	rax, -1
	jmp	.L179
.L191:
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	gc_protect
	test	al, al
	jns	.L192
	mov	rax, -1
	jmp	.L179
.L192:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	QWORD PTR -48[rbp], rax
	jmp	.L193
.L195:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	l_eval
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	jns	.L194
	mov	rax, -1
	jmp	.L179
.L194:
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	l_cons
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rplacd
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	QWORD PTR -48[rbp], rax
.L193:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 1073741824
	je	.L195
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	gc_unprotect
	jmp	.L181
.L196:
	nop
.L181:
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR [rax]
.L179:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	eval_args, .-eval_args
	.globl	fcall
	.type	fcall, @function
fcall:
.LFB20:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 56
	.cfi_offset 3, -24
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	D_GET_DATA
	sub	rax, 4
	cmp	rax, 39
	ja	.L198
	lea	rdx, 0[0+rax*4]
	lea	rax, .L200[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L200[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L200:
	.long	.L202-.L200
	.long	.L202-.L200
	.long	.L198-.L200
	.long	.L198-.L200
	.long	.L198-.L200
	.long	.L198-.L200
	.long	.L198-.L200
	.long	.L198-.L200
	.long	.L198-.L200
	.long	.L198-.L200
	.long	.L198-.L200
	.long	.L198-.L200
	.long	.L198-.L200
	.long	.L202-.L200
	.long	.L202-.L200
	.long	.L198-.L200
	.long	.L198-.L200
	.long	.L198-.L200
	.long	.L198-.L200
	.long	.L198-.L200
	.long	.L198-.L200
	.long	.L198-.L200
	.long	.L198-.L200
	.long	.L198-.L200
	.long	.L198-.L200
	.long	.L201-.L200
	.long	.L201-.L200
	.long	.L198-.L200
	.long	.L198-.L200
	.long	.L198-.L200
	.long	.L198-.L200
	.long	.L201-.L200
	.long	.L201-.L200
	.long	.L198-.L200
	.long	.L199-.L200
	.long	.L198-.L200
	.long	.L199-.L200
	.long	.L201-.L200
	.long	.L199-.L200
	.long	.L199-.L200
	.text
.L202:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 1073741824
	je	.L293
	mov	rax, QWORD PTR errmsg_ill_type[rip]
	mov	rdx, QWORD PTR -56[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L204
.L201:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 536870912
	jne	.L205
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 536870912
	je	.L294
.L205:
	mov	rax, QWORD PTR errmsg_ill_type[rip]
	mov	rdx, QWORD PTR -56[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L204
.L199:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 536870912
	je	.L295
	mov	rax, QWORD PTR errmsg_ill_type[rip]
	mov	rdx, QWORD PTR -56[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L204
.L293:
	nop
	jmp	.L198
.L294:
	nop
	jmp	.L198
.L295:
	nop
.L198:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	D_GET_DATA
	cmp	rax, 45
	ja	.L208
	lea	rdx, 0[0+rax*4]
	lea	rax, .L210[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L210[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L210:
	.long	.L244-.L210
	.long	.L243-.L210
	.long	.L242-.L210
	.long	.L241-.L210
	.long	.L240-.L210
	.long	.L239-.L210
	.long	.L238-.L210
	.long	.L208-.L210
	.long	.L208-.L210
	.long	.L208-.L210
	.long	.L209-.L210
	.long	.L237-.L210
	.long	.L236-.L210
	.long	.L235-.L210
	.long	.L234-.L210
	.long	.L233-.L210
	.long	.L232-.L210
	.long	.L231-.L210
	.long	.L230-.L210
	.long	.L208-.L210
	.long	.L208-.L210
	.long	.L208-.L210
	.long	.L229-.L210
	.long	.L208-.L210
	.long	.L228-.L210
	.long	.L227-.L210
	.long	.L226-.L210
	.long	.L225-.L210
	.long	.L224-.L210
	.long	.L223-.L210
	.long	.L222-.L210
	.long	.L208-.L210
	.long	.L221-.L210
	.long	.L220-.L210
	.long	.L208-.L210
	.long	.L219-.L210
	.long	.L218-.L210
	.long	.L208-.L210
	.long	.L217-.L210
	.long	.L216-.L210
	.long	.L215-.L210
	.long	.L214-.L210
	.long	.L213-.L210
	.long	.L212-.L210
	.long	.L211-.L210
	.long	.L209-.L210
	.text
.L220:
	mov	rax, QWORD PTR errmsg_ill_call[rip]
	mov	rdx, QWORD PTR -56[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L204
.L238:
	call	quit
	jmp	.L208
.L209:
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	cmp	rdx, rax
	jne	.L245
	mov	eax, 268435456
	jmp	.L246
.L245:
	mov	eax, 0
.L246:
	mov	QWORD PTR -48[rbp], rax
	jmp	.L208
.L211:
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 8
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	l_equal
	jmp	.L204
.L241:
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 8
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	l_cons
	mov	QWORD PTR -48[rbp], rax
	jmp	.L208
.L231:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	D_GET_DATA
	mov	rdx, QWORD PTR -64[rbp]
	mov	rcx, QWORD PTR 8[rdx]
	lea	rdx, 0[0+rax*8]
	lea	rsi, t_cons_car[rip]
	mov	QWORD PTR [rdx+rsi], rcx
	lea	rdx, 0[0+rax*8]
	lea	rax, t_cons_car[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	QWORD PTR -48[rbp], rax
	jmp	.L208
.L230:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	D_GET_DATA
	mov	rdx, QWORD PTR -64[rbp]
	mov	rcx, QWORD PTR 8[rdx]
	lea	rdx, 0[0+rax*8]
	lea	rsi, t_cons_cdr[rip]
	mov	QWORD PTR [rdx+rsi], rcx
	lea	rdx, 0[0+rax*8]
	lea	rax, t_cons_cdr[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	QWORD PTR -48[rbp], rax
	jmp	.L208
.L240:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	l_car
	mov	QWORD PTR -48[rbp], rax
	jmp	.L208
.L239:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	l_cdr
	mov	QWORD PTR -48[rbp], rax
	jmp	.L208
.L237:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	D_GET_TAG
	test	rax, rax
	jne	.L247
	mov	eax, 268435456
	jmp	.L248
.L247:
	mov	eax, 0
.L248:
	mov	QWORD PTR -48[rbp], rax
	jmp	.L208
.L236:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 1073741824
	jne	.L249
	mov	eax, 268435456
	jmp	.L204
.L249:
	mov	eax, 0
	jmp	.L204
.L235:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 805306368
	jne	.L251
	mov	eax, 268435456
	jmp	.L204
.L251:
	mov	eax, 0
	jmp	.L204
.L234:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 536870912
	jne	.L253
	mov	eax, 268435456
	jmp	.L254
.L253:
	mov	eax, 0
.L254:
	mov	QWORD PTR -48[rbp], rax
	jmp	.L208
.L228:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -48[rbp], rax
	jmp	.L208
.L229:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	D_GET_TAG
	test	rax, rax
	jne	.L255
	mov	eax, 268435456
	jmp	.L256
.L255:
	mov	eax, 0
.L256:
	mov	QWORD PTR -48[rbp], rax
	jmp	.L208
.L244:
	call	l_read
	mov	QWORD PTR -48[rbp], rax
	jmp	.L208
.L243:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	l_eval
	mov	QWORD PTR -48[rbp], rax
	jmp	.L208
.L233:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	l_print
	mov	QWORD PTR -48[rbp], rax
	jmp	.L208
.L232:
	mov	edi, 10
	call	putchar@PLT
	mov	QWORD PTR -48[rbp], 0
	jmp	.L208
.L242:
	call	gcollect
	mov	QWORD PTR -48[rbp], 268435456
	jmp	.L208
.L227:
	mov	QWORD PTR -32[rbp], 0
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -40[rbp], rax
	jmp	.L257
.L259:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 536870912
	je	.L258
	mov	rax, QWORD PTR errmsg_ill_type[rip]
	mov	rdx, QWORD PTR -56[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L204
.L258:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	int_get_c
	add	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	QWORD PTR -40[rbp], rax
.L257:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 1073741824
	je	.L259
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	int_make_l
	mov	QWORD PTR -48[rbp], rax
	jmp	.L208
.L225:
	mov	QWORD PTR -32[rbp], 1
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -40[rbp], rax
	jmp	.L260
.L262:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 536870912
	je	.L261
	mov	rax, QWORD PTR errmsg_ill_type[rip]
	mov	rdx, QWORD PTR -56[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L204
.L261:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	int_get_c
	mov	rdx, QWORD PTR -32[rbp]
	imul	rax, rdx
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	QWORD PTR -40[rbp], rax
.L260:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 1073741824
	je	.L262
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	int_make_l
	mov	QWORD PTR -48[rbp], rax
	jmp	.L208
.L226:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	D_GET_TAG
	test	rax, rax
	jne	.L263
	mov	QWORD PTR -32[rbp], 0
	jmp	.L264
.L263:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 536870912
	je	.L265
	mov	rax, QWORD PTR errmsg_ill_type[rip]
	mov	rdx, QWORD PTR -56[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L204
.L265:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	l_cdr
	mov	rdi, rax
	call	D_GET_TAG
	test	rax, rax
	jne	.L266
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	int_get_c
	neg	rax
	mov	QWORD PTR -32[rbp], rax
	jmp	.L264
.L266:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	int_get_c
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	l_cdr
	mov	QWORD PTR -40[rbp], rax
	jmp	.L267
.L269:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 536870912
	je	.L268
	mov	rax, QWORD PTR errmsg_ill_type[rip]
	mov	rdx, QWORD PTR -56[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L204
.L268:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	int_get_c
	sub	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	QWORD PTR -40[rbp], rax
.L267:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 1073741824
	je	.L269
.L264:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	int_make_l
	mov	QWORD PTR -48[rbp], rax
	jmp	.L208
.L224:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	D_GET_TAG
	test	rax, rax
	jne	.L270
	mov	QWORD PTR -32[rbp], 1
	jmp	.L271
.L270:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 536870912
	je	.L272
	mov	rax, QWORD PTR errmsg_ill_type[rip]
	mov	rdx, QWORD PTR -56[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L204
.L272:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	int_get_c
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	jne	.L271
	mov	rax, QWORD PTR errmsg_zero_div[rip]
	mov	rdx, QWORD PTR -56[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L204
.L271:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	l_cdr
	mov	rdi, rax
	call	D_GET_TAG
	test	rax, rax
	jne	.L273
	mov	eax, 1
	cqo
	idiv	QWORD PTR -24[rbp]
	mov	QWORD PTR -32[rbp], rax
	jmp	.L274
.L273:
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	l_cdr
	mov	QWORD PTR -40[rbp], rax
	jmp	.L275
.L278:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 536870912
	je	.L276
	mov	rax, QWORD PTR errmsg_ill_type[rip]
	mov	rdx, QWORD PTR -56[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L204
.L276:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	int_get_c
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	jne	.L277
	mov	rax, QWORD PTR errmsg_zero_div[rip]
	mov	rdx, QWORD PTR -56[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L204
.L277:
	mov	rax, QWORD PTR -32[rbp]
	cqo
	idiv	QWORD PTR -24[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	QWORD PTR -40[rbp], rax
.L275:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 1073741824
	je	.L278
.L274:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	int_make_l
	mov	QWORD PTR -48[rbp], rax
	jmp	.L208
.L223:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	int_get_c
	mov	rbx, rax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	int_get_c
	cmp	rbx, rax
	jle	.L279
	mov	eax, 268435456
	jmp	.L280
.L279:
	mov	eax, 0
.L280:
	mov	QWORD PTR -48[rbp], rax
	jmp	.L208
.L221:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	int_get_c
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	int_get_c
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	jne	.L281
	mov	rax, QWORD PTR errmsg_zero_div[rip]
	mov	rdx, QWORD PTR -56[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L204
.L281:
	mov	rax, QWORD PTR -32[rbp]
	cqo
	idiv	QWORD PTR -24[rbp]
	mov	rax, rdx
	mov	rdi, rax
	call	int_make_l
	mov	rbx, rax
	mov	rax, QWORD PTR -32[rbp]
	cqo
	idiv	QWORD PTR -24[rbp]
	mov	rdi, rax
	call	int_make_l
	mov	rsi, rbx
	mov	rdi, rax
	call	l_cons
	mov	QWORD PTR -48[rbp], rax
	jmp	.L208
.L222:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	int_get_c
	mov	rbx, rax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	int_get_c
	cmp	rbx, rax
	jge	.L282
	mov	eax, 268435456
	jmp	.L283
.L282:
	mov	eax, 0
.L283:
	mov	QWORD PTR -48[rbp], rax
	jmp	.L208
.L216:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 1073741824
	je	.L284
	mov	eax, 268435456
	jmp	.L285
.L284:
	mov	eax, 0
.L285:
	mov	QWORD PTR -48[rbp], rax
	jmp	.L208
.L219:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	int_get_c
	mov	rbx, rax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	int_get_c
	cmp	rbx, rax
	jl	.L286
	mov	eax, 268435456
	jmp	.L287
.L286:
	mov	eax, 0
.L287:
	mov	QWORD PTR -48[rbp], rax
	jmp	.L208
.L218:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	int_get_c
	mov	rbx, rax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	int_get_c
	cmp	rbx, rax
	jg	.L288
	mov	eax, 268435456
	jmp	.L289
.L288:
	mov	eax, 0
.L289:
	mov	QWORD PTR -48[rbp], rax
	jmp	.L208
.L217:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	int_get_c
	test	rax, rax
	jne	.L290
	mov	eax, 268435456
	jmp	.L291
.L290:
	mov	eax, 0
.L291:
	mov	QWORD PTR -48[rbp], rax
	jmp	.L208
.L215:
	call	rand@PLT
	movsx	rbx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	int_get_c
	mov	rcx, rax
	mov	rax, rbx
	cqo
	idiv	rcx
	mov	rcx, rdx
	mov	rax, rcx
	mov	rdi, rax
	call	int_make_l
	mov	QWORD PTR -48[rbp], rax
	jmp	.L208
.L213:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	int_get_c
	add	rax, 1
	mov	rdi, rax
	call	int_make_l
	mov	QWORD PTR -48[rbp], rax
	jmp	.L208
.L212:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	int_get_c
	sub	rax, 1
	mov	rdi, rax
	call	int_make_l
	mov	QWORD PTR -48[rbp], rax
	jmp	.L208
.L214:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	int_get_c
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	int_get_c
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	jne	.L292
	mov	rax, QWORD PTR errmsg_zero_div[rip]
	mov	rdx, QWORD PTR -56[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L204
.L292:
	mov	rax, QWORD PTR -32[rbp]
	cqo
	idiv	QWORD PTR -24[rbp]
	mov	rax, rdx
	mov	rdi, rax
	call	int_make_l
	mov	QWORD PTR -48[rbp], rax
	nop
.L208:
	mov	rax, QWORD PTR -48[rbp]
.L204:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	fcall, .-fcall
	.globl	apply
	.type	apply, @function
apply:
.LFB21:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 104
	.cfi_offset 3, -24
	mov	QWORD PTR -88[rbp], rdi
	mov	QWORD PTR -96[rbp], rsi
	mov	DWORD PTR -100[rbp], edx
	mov	edx, DWORD PTR t_stack_ptr[rip]
	mov	eax, DWORD PTR -100[rbp]
	add	eax, edx
	cmp	eax, 200
	jbe	.L297
	mov	rax, QWORD PTR errmsg_stack_of[rip]
	mov	edx, 0
	mov	esi, 0
	mov	rdi, rax
	call	err_msg
	movsx	rax, al
	jmp	.L298
.L297:
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 805306368
	jne	.L299
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	D_GET_DATA
	lea	rdx, 0[0+rax*8]
	lea	rax, t_symb_fval[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	QWORD PTR -64[rbp], rax
	jmp	.L300
.L299:
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 1073741824
	jne	.L300
	mov	rax, QWORD PTR -88[rbp]
	mov	QWORD PTR -64[rbp], rax
.L300:
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, rax
	call	l_car
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	edx, DWORD PTR t_stack_ptr[rip]
	mov	eax, DWORD PTR -100[rbp]
	add	eax, edx
	mov	DWORD PTR t_stack_ptr[rip], eax
	mov	DWORD PTR -68[rbp], 0
	jmp	.L301
.L302:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	l_car
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	D_GET_DATA
	mov	edx, DWORD PTR t_stack_ptr[rip]
	mov	ecx, DWORD PTR -68[rbp]
	sub	edx, ecx
	lea	ecx, -1[rdx]
	lea	rdx, 0[0+rax*8]
	lea	rax, t_symb_val[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	edx, ecx
	lea	rcx, 0[0+rdx*8]
	lea	rdx, t_stack[rip]
	mov	QWORD PTR [rcx+rdx], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	D_GET_DATA
	mov	rbx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	l_car
	lea	rcx, 0[0+rbx*8]
	lea	rdx, t_symb_val[rip]
	mov	QWORD PTR [rcx+rdx], rax
	add	DWORD PTR -68[rbp], 1
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	QWORD PTR -40[rbp], rax
.L301:
	mov	eax, DWORD PTR -68[rbp]
	cmp	eax, DWORD PTR -100[rbp]
	jl	.L302
	mov	rax, QWORD PTR -96[rbp]
	mov	rdi, rax
	call	gc_protect
	test	al, al
	jns	.L303
	mov	rax, -1
	jmp	.L298
.L303:
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	QWORD PTR -56[rbp], rax
	mov	QWORD PTR -32[rbp], 0
	jmp	.L304
.L307:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	l_eval
	mov	QWORD PTR -32[rbp], rax
	cmp	QWORD PTR -32[rbp], 0
	js	.L312
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	QWORD PTR -56[rbp], rax
.L304:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 1073741824
	je	.L307
	jmp	.L308
.L312:
	nop
	jmp	.L308
.L309:
	mov	eax, DWORD PTR t_stack_ptr[rip]
	sub	eax, 1
	mov	DWORD PTR t_stack_ptr[rip], eax
.L308:
	mov	eax, DWORD PTR t_stack_ptr[rip]
	sub	eax, 1
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, t_stack[rip]
	mov	rax, QWORD PTR [rdx+rax]
	and	eax, 2147483648
	test	rax, rax
	jne	.L309
	mov	DWORD PTR -68[rbp], 0
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, rax
	call	l_car
	mov	QWORD PTR -48[rbp], rax
	jmp	.L310
.L311:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	l_car
	mov	QWORD PTR -24[rbp], rax
	mov	eax, DWORD PTR t_stack_ptr[rip]
	mov	edx, DWORD PTR -68[rbp]
	sub	eax, edx
	lea	ebx, -1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	D_GET_DATA
	mov	rdx, rax
	mov	eax, ebx
	lea	rcx, 0[0+rax*8]
	lea	rax, t_stack[rip]
	mov	rax, QWORD PTR [rcx+rax]
	lea	rcx, 0[0+rdx*8]
	lea	rdx, t_symb_val[rip]
	mov	QWORD PTR [rcx+rdx], rax
	add	DWORD PTR -68[rbp], 1
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	QWORD PTR -48[rbp], rax
.L310:
	mov	eax, DWORD PTR -68[rbp]
	cmp	eax, DWORD PTR -100[rbp]
	jl	.L311
	mov	eax, DWORD PTR t_stack_ptr[rip]
	mov	edx, DWORD PTR -100[rbp]
	sub	eax, edx
	mov	DWORD PTR t_stack_ptr[rip], eax
	mov	rax, QWORD PTR -32[rbp]
.L298:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	apply, .-apply
	.section	.rodata
.LC66:
	.string	"\nERROR. \n%s"
	.text
	.globl	err_msg
	.type	err_msg, @function
err_msg:
.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, 32
	mov	QWORD PTR -8[rbp], rdi
	mov	eax, esi
	mov	QWORD PTR -24[rbp], rdx
	mov	BYTE PTR -12[rbp], al
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rax
	lea	rdi, .LC66[rip]
	mov	eax, 0
	call	printf@PLT
	cmp	BYTE PTR -12[rbp], 0
	je	.L314
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	l_print
.L314:
	mov	edi, 10
	call	putchar@PLT
	mov	eax, -1
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE22:
	.size	err_msg, .-err_msg
	.globl	list_len
	.type	list_len, @function
list_len:
.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	DWORD PTR -4[rbp], 0
	jmp	.L317
.L318:
	add	DWORD PTR -4[rbp], 1
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	QWORD PTR -24[rbp], rax
.L317:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 1073741824
	je	.L318
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE23:
	.size	list_len, .-list_len
	.globl	rplacd
	.type	rplacd, @function
rplacd:
.LFB24:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	D_GET_DATA
	lea	rcx, 0[0+rax*8]
	lea	rdx, t_cons_cdr[rip]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR [rcx+rdx], rax
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE24:
	.size	rplacd, .-rplacd
	.globl	l_cons
	.type	l_cons, @function
l_cons:
.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	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	eax, DWORD PTR t_cons_free[rip]
	test	eax, eax
	jns	.L322
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	gc_protect
	test	al, al
	jns	.L323
	mov	rax, -1
	jmp	.L324
.L323:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	gc_protect
	test	al, al
	jns	.L325
	mov	rax, -1
	jmp	.L324
.L325:
	call	gcollect
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	gc_unprotect
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	gc_unprotect
.L322:
	mov	eax, DWORD PTR t_cons_free[rip]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR t_cons_free[rip]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, t_cons_car[rip]
	mov	rdx, QWORD PTR [rdx+rax]
	mov	eax, DWORD PTR t_cons_free[rip]
	cdqe
	cmp	rdx, rax
	je	.L326
	mov	eax, DWORD PTR t_cons_free[rip]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, t_cons_car[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	DWORD PTR t_cons_free[rip], eax
	jmp	.L327
.L326:
	mov	DWORD PTR t_cons_free[rip], -1
.L327:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rcx, 0[0+rax*8]
	lea	rdx, t_cons_car[rip]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rcx+rdx], rax
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rcx, 0[0+rax*8]
	lea	rdx, t_cons_cdr[rip]
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR [rcx+rdx], rax
	mov	eax, DWORD PTR -4[rbp]
	or	eax, 1073741824
	cdqe
.L324:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE25:
	.size	l_cons, .-l_cons
	.globl	l_car
	.type	l_car, @function
l_car:
.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, 8
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	D_GET_DATA
	lea	rdx, 0[0+rax*8]
	lea	rax, t_cons_car[rip]
	mov	rax, QWORD PTR [rdx+rax]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE26:
	.size	l_car, .-l_car
	.globl	l_cdr
	.type	l_cdr, @function
l_cdr:
.LFB27:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 8
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	D_GET_DATA
	lea	rdx, 0[0+rax*8]
	lea	rax, t_cons_cdr[rip]
	mov	rax, QWORD PTR [rdx+rax]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE27:
	.size	l_cdr, .-l_cdr
	.section	.rodata
.LC67:
	.string	"\nBYE"
	.text
	.globl	quit
	.type	quit, @function
quit:
.LFB28:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	rdi, .LC67[rip]
	call	puts@PLT
	mov	edi, 0
	call	exit@PLT
	.cfi_endproc
.LFE28:
	.size	quit, .-quit
	.globl	gcollect
	.type	gcollect, @function
gcollect:
.LFB29:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -12[rbp], 0
	jmp	.L334
.L335:
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, t_symb_val[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rdi, rax
	call	gc_mark
	add	DWORD PTR -12[rbp], 1
.L334:
	mov	eax, DWORD PTR t_symb_free[rip]
	cmp	DWORD PTR -12[rbp], eax
	jl	.L335
	mov	DWORD PTR -12[rbp], 0
	jmp	.L336
.L337:
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, t_symb_fval[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rdi, rax
	call	gc_mark
	add	DWORD PTR -12[rbp], 1
.L336:
	mov	eax, DWORD PTR t_symb_free[rip]
	cmp	DWORD PTR -12[rbp], eax
	jl	.L337
	mov	DWORD PTR -12[rbp], 0
	jmp	.L338
.L339:
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, t_stack[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rdi, rax
	call	gc_mark
	add	DWORD PTR -12[rbp], 1
.L338:
	mov	edx, DWORD PTR -12[rbp]
	mov	eax, DWORD PTR t_stack_ptr[rip]
	cmp	edx, eax
	jb	.L339
	mov	DWORD PTR t_cons_free[rip], -1
	mov	DWORD PTR -12[rbp], 0
	mov	DWORD PTR -8[rbp], 0
	jmp	.L340
.L344:
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, t_cons_car[rip]
	mov	rax, QWORD PTR [rdx+rax]
	and	eax, 2147483648
	test	rax, rax
	jne	.L341
	add	DWORD PTR -8[rbp], 1
	mov	eax, DWORD PTR t_cons_free[rip]
	cmp	eax, -1
	jne	.L342
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR t_cons_free[rip], eax
	jmp	.L343
.L342:
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	mov	edx, DWORD PTR -4[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*8]
	lea	rdx, t_cons_car[rip]
	mov	QWORD PTR [rcx+rdx], rax
.L343:
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	mov	edx, DWORD PTR -12[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*8]
	lea	rdx, t_cons_car[rip]
	mov	QWORD PTR [rcx+rdx], rax
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR -4[rbp], eax
.L341:
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, t_cons_car[rip]
	mov	rax, QWORD PTR [rdx+rax]
	movabs	rdx, -2147483649
	and	rax, rdx
	mov	rcx, rax
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, t_cons_car[rip]
	mov	QWORD PTR [rdx+rax], rcx
	add	DWORD PTR -12[rbp], 1
.L340:
	cmp	DWORD PTR -12[rbp], 1024
	jne	.L344
	cmp	DWORD PTR -8[rbp], 0
	jne	.L346
	mov	rax, QWORD PTR errmsg_no_memory[rip]
	mov	rdi, rax
	mov	eax, 0
	call	printf@PLT
	call	quit
.L346:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE29:
	.size	gcollect, .-gcollect
	.globl	gc_mark
	.type	gc_mark, @function
gc_mark:
.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
	jmp	.L348
.L351:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	D_GET_DATA
	lea	rdx, 0[0+rax*8]
	lea	rax, t_cons_car[rip]
	mov	rax, QWORD PTR [rdx+rax]
	and	eax, 2147483648
	test	rax, rax
	jne	.L352
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	D_GET_DATA
	lea	rdx, 0[0+rax*8]
	lea	rcx, t_cons_car[rip]
	mov	rdx, QWORD PTR [rdx+rcx]
	mov	rcx, rdx
	mov	edx, 2147483648
	or	rdx, rcx
	mov	rcx, rdx
	lea	rdx, 0[0+rax*8]
	lea	rax, t_cons_car[rip]
	mov	QWORD PTR [rdx+rax], rcx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	l_car
	mov	rdi, rax
	call	gc_mark
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	l_cdr
	mov	QWORD PTR -8[rbp], rax
.L348:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 1073741824
	je	.L351
	jmp	.L347
.L352:
	nop
.L347:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE30:
	.size	gc_mark, .-gc_mark
	.globl	gc_protect
	.type	gc_protect, @function
gc_protect:
.LFB31:
	.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	D_GET_TAG
	cmp	rax, 1073741824
	jne	.L354
	mov	eax, DWORD PTR t_stack_ptr[rip]
	cmp	eax, 199
	jbe	.L355
	mov	rax, QWORD PTR errmsg_stack_of[rip]
	mov	edx, 0
	mov	esi, 0
	mov	rdi, rax
	call	err_msg
	jmp	.L356
.L355:
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, 2147483648
	or	rax, rdx
	mov	rcx, rax
	mov	eax, DWORD PTR t_stack_ptr[rip]
	lea	edx, 1[rax]
	mov	DWORD PTR t_stack_ptr[rip], edx
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, t_stack[rip]
	mov	QWORD PTR [rdx+rax], rcx
.L354:
	mov	eax, 0
.L356:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE31:
	.size	gc_protect, .-gc_protect
	.globl	gc_unprotect
	.type	gc_unprotect, @function
gc_unprotect:
.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, 8
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	D_GET_TAG
	cmp	rax, 1073741824
	jne	.L359
	mov	eax, DWORD PTR t_stack_ptr[rip]
	sub	eax, 1
	mov	DWORD PTR t_stack_ptr[rip], eax
.L359:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE32:
	.size	gc_unprotect, .-gc_unprotect
	.globl	int_make_l
	.type	int_make_l, @function
int_make_l:
.LFB33:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	and	eax, 268435455
	or	rax, 536870912
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE33:
	.size	int_make_l, .-int_make_l
	.globl	int_get_c
	.type	int_get_c, @function
int_get_c:
.LFB34:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	and	eax, 134217728
	test	rax, rax
	jne	.L363
	mov	rax, QWORD PTR -8[rbp]
	and	eax, 268435455
	jmp	.L364
.L363:
	mov	rax, QWORD PTR -8[rbp]
	or	rax, -268435456
.L364:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE34:
	.size	int_get_c, .-int_get_c
	.globl	symb_make
	.type	symb_make, @function
symb_make:
.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, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -8[rbp], 0
	jmp	.L366
.L369:
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, t_symb_pname[rip]
	mov	rax, QWORD PTR [rdx+rax]
	test	rax, rax
	je	.L367
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, t_symb_pname[rip]
	mov	rdx, QWORD PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L367
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	jmp	.L368
.L367:
	add	DWORD PTR -8[rbp], 1
.L366:
	cmp	DWORD PTR -8[rbp], 169
	jne	.L369
	mov	eax, DWORD PTR t_symb_free[rip]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR t_symb_free[rip]
	add	eax, 1
	mov	DWORD PTR t_symb_free[rip], eax
	mov	eax, DWORD PTR t_symb_free[rip]
	cmp	eax, 170
	jne	.L370
	mov	rax, QWORD PTR errmsg_no_memory[rip]
	mov	rdi, rax
	mov	eax, 0
	call	printf@PLT
	call	quit
.L370:
	mov	eax, DWORD PTR t_pnames_free[rip]
	cdqe
	lea	rdx, t_pnames[rip]
	lea	rcx, [rax+rdx]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, t_symb_pname[rip]
	mov	QWORD PTR [rdx+rax], rcx
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, t_symb_val[rip]
	mov	QWORD PTR [rdx+rax], 1610612736
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, t_symb_fval[rip]
	mov	QWORD PTR [rdx+rax], 1610612736
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, t_symb_ftype[rip]
	mov	DWORD PTR [rdx+rax], 0
.L372:
	mov	eax, DWORD PTR t_pnames_free[rip]
	cmp	eax, 512
	jne	.L371
	mov	rax, QWORD PTR errmsg_no_memory[rip]
	mov	rdi, rax
	mov	eax, 0
	call	printf@PLT
	call	quit
.L371:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	edi, eax
	call	tolower@PLT
	mov	edx, eax
	mov	eax, DWORD PTR t_pnames_free[rip]
	mov	ecx, edx
	cdqe
	lea	rdx, t_pnames[rip]
	mov	BYTE PTR [rax+rdx], cl
	mov	eax, DWORD PTR t_pnames_free[rip]
	add	eax, 1
	mov	DWORD PTR t_pnames_free[rip], eax
	add	QWORD PTR -24[rbp], 1
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L372
	mov	eax, DWORD PTR t_pnames_free[rip]
	cdqe
	lea	rdx, t_pnames[rip]
	mov	BYTE PTR [rax+rdx], 0
	mov	eax, DWORD PTR t_pnames_free[rip]
	add	eax, 1
	mov	DWORD PTR t_pnames_free[rip], eax
	mov	eax, DWORD PTR -4[rbp]
	or	eax, 805306368
	cdqe
.L368:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE35:
	.size	symb_make, .-symb_make
	.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	"334762.c"
	.text
	.comm	t_cons_free,4,4
	.comm	t_cons_car,4096,4
	.comm	t_cons_cdr,4096,4
	.comm	t_symb_free,4,4
	.comm	t_symb_pname,680,4
	.comm	t_symb_val,680,4
	.comm	t_symb_fval,680,4
	.comm	t_symb_ftype,680,4
	.comm	t_pnames_free,4,4
	.comm	t_pnames,512,4
	.comm	t_stack,800,4
	.comm	t_stack_ptr,4,4
	.global	funcs
	.section	.rodata
	.align	2
.LC0:
	.ascii	"read\000"
	.align	2
.LC1:
	.ascii	"eval\000"
	.align	2
.LC2:
	.ascii	"gc\000"
	.align	2
.LC3:
	.ascii	"cons\000"
	.align	2
.LC4:
	.ascii	"car\000"
	.align	2
.LC5:
	.ascii	"cdr\000"
	.align	2
.LC6:
	.ascii	"quit\000"
	.align	2
.LC7:
	.ascii	"defun\000"
	.align	2
.LC8:
	.ascii	"quote\000"
	.align	2
.LC9:
	.ascii	"setq\000"
	.align	2
.LC10:
	.ascii	"eq\000"
	.align	2
.LC11:
	.ascii	"null\000"
	.align	2
.LC12:
	.ascii	"consp\000"
	.align	2
.LC13:
	.ascii	"symbolp\000"
	.align	2
.LC14:
	.ascii	"numberp\000"
	.align	2
.LC15:
	.ascii	"princ\000"
	.align	2
.LC16:
	.ascii	"terpri\000"
	.align	2
.LC17:
	.ascii	"rplaca\000"
	.align	2
.LC18:
	.ascii	"rplacd\000"
	.align	2
.LC19:
	.ascii	"progn\000"
	.align	2
.LC20:
	.ascii	"cond\000"
	.align	2
.LC21:
	.ascii	"or\000"
	.align	2
.LC22:
	.ascii	"not\000"
	.align	2
.LC23:
	.ascii	"if\000"
	.align	2
.LC24:
	.ascii	"list\000"
	.align	2
.LC25:
	.ascii	"+\000"
	.align	2
.LC26:
	.ascii	"-\000"
	.align	2
.LC27:
	.ascii	"*\000"
	.align	2
.LC28:
	.ascii	"/\000"
	.align	2
.LC29:
	.ascii	">\000"
	.align	2
.LC30:
	.ascii	"<\000"
	.align	2
.LC31:
	.ascii	"and\000"
	.align	2
.LC32:
	.ascii	"divide\000"
	.align	2
.LC33:
	.ascii	"lambda\000"
	.align	2
.LC34:
	.ascii	"while\000"
	.align	2
.LC35:
	.ascii	">=\000"
	.align	2
.LC36:
	.ascii	"<=\000"
	.align	2
.LC37:
	.ascii	"comment\000"
	.align	2
.LC38:
	.ascii	"zerop\000"
	.align	2
.LC39:
	.ascii	"atom\000"
	.align	2
.LC40:
	.ascii	"random\000"
	.align	2
.LC41:
	.ascii	"rem\000"
	.align	2
.LC42:
	.ascii	"1+\000"
	.align	2
.LC43:
	.ascii	"1-\000"
	.align	2
.LC44:
	.ascii	"equal\000"
	.align	2
.LC45:
	.ascii	"=\000"
	.data
	.align	2
	.type	funcs, %object
	.size	funcs, 564
funcs:
	.word	.LC0
	.word	1024
	.byte	0
	.space	3
	.word	.LC1
	.word	1025
	.byte	1
	.space	3
	.word	.LC2
	.word	1024
	.byte	2
	.space	3
	.word	.LC3
	.word	1026
	.byte	3
	.space	3
	.word	.LC4
	.word	1025
	.byte	4
	.space	3
	.word	.LC5
	.word	1025
	.byte	5
	.space	3
	.word	.LC6
	.word	1024
	.byte	6
	.space	3
	.word	.LC7
	.word	3071
	.byte	7
	.space	3
	.word	.LC8
	.word	3071
	.byte	8
	.space	3
	.word	.LC9
	.word	2050
	.byte	9
	.space	3
	.word	.LC10
	.word	1026
	.byte	10
	.space	3
	.word	.LC11
	.word	1025
	.byte	11
	.space	3
	.word	.LC12
	.word	1025
	.byte	12
	.space	3
	.word	.LC13
	.word	1025
	.byte	13
	.space	3
	.word	.LC14
	.word	1025
	.byte	14
	.space	3
	.word	.LC15
	.word	1025
	.byte	15
	.space	3
	.word	.LC16
	.word	1024
	.byte	16
	.space	3
	.word	.LC17
	.word	1026
	.byte	17
	.space	3
	.word	.LC18
	.word	1026
	.byte	18
	.space	3
	.word	.LC19
	.word	3071
	.byte	19
	.space	3
	.word	.LC20
	.word	3071
	.byte	20
	.space	3
	.word	.LC21
	.word	3071
	.byte	21
	.space	3
	.word	.LC22
	.word	1025
	.byte	22
	.space	3
	.word	.LC23
	.word	3071
	.byte	23
	.space	3
	.word	.LC24
	.word	2047
	.byte	24
	.space	3
	.word	.LC25
	.word	2047
	.byte	25
	.space	3
	.word	.LC26
	.word	2047
	.byte	26
	.space	3
	.word	.LC27
	.word	2047
	.byte	27
	.space	3
	.word	.LC28
	.word	2047
	.byte	28
	.space	3
	.word	.LC29
	.word	1026
	.byte	29
	.space	3
	.word	.LC30
	.word	1026
	.byte	30
	.space	3
	.word	.LC31
	.word	3071
	.byte	31
	.space	3
	.word	.LC32
	.word	1026
	.byte	32
	.space	3
	.word	.LC33
	.word	2047
	.byte	33
	.space	3
	.word	.LC34
	.word	3071
	.byte	34
	.space	3
	.word	.LC35
	.word	1026
	.byte	35
	.space	3
	.word	.LC36
	.word	1026
	.byte	36
	.space	3
	.word	.LC37
	.word	3071
	.byte	37
	.space	3
	.word	.LC38
	.word	1025
	.byte	38
	.space	3
	.word	.LC39
	.word	1025
	.byte	39
	.space	3
	.word	.LC40
	.word	1025
	.byte	40
	.space	3
	.word	.LC41
	.word	1026
	.byte	41
	.space	3
	.word	.LC42
	.word	1025
	.byte	42
	.space	3
	.word	.LC43
	.word	1025
	.byte	43
	.space	3
	.word	.LC44
	.word	1026
	.byte	44
	.space	3
	.word	.LC45
	.word	1026
	.byte	45
	.space	3
	.word	0
	.word	-1
	.byte	-1
	.space	3
	.global	errmsg_sym_undef
	.section	.rodata
	.align	2
.LC46:
	.ascii	"SYMBOL UNDEFINED: \000"
	.data
	.align	2
	.type	errmsg_sym_undef, %object
	.size	errmsg_sym_undef, 4
errmsg_sym_undef:
	.word	.LC46
	.global	errmsg_func_undef
	.section	.rodata
	.align	2
.LC47:
	.ascii	"FUNCTION UNDEFINED: \000"
	.data
	.align	2
	.type	errmsg_func_undef, %object
	.size	errmsg_func_undef, 4
errmsg_func_undef:
	.word	.LC47
	.global	errmsg_ill_nargs
	.section	.rodata
	.align	2
.LC48:
	.ascii	"ILLEGAL NUMBER OF ARGUMENTS: \000"
	.data
	.align	2
	.type	errmsg_ill_nargs, %object
	.size	errmsg_ill_nargs, 4
errmsg_ill_nargs:
	.word	.LC48
	.global	errmsg_ill_type
	.section	.rodata
	.align	2
.LC49:
	.ascii	"ILLEGAL ARGUMENT TYPE: \000"
	.data
	.align	2
	.type	errmsg_ill_type, %object
	.size	errmsg_ill_type, 4
errmsg_ill_type:
	.word	.LC49
	.global	errmsg_ill_call
	.section	.rodata
	.align	2
.LC50:
	.ascii	"ILLEGAL FUNCTION CALL: \000"
	.data
	.align	2
	.type	errmsg_ill_call, %object
	.size	errmsg_ill_call, 4
errmsg_ill_call:
	.word	.LC50
	.global	errmsg_ill_syntax
	.section	.rodata
	.align	2
.LC51:
	.ascii	"ILLEGAL SYNTAX: \000"
	.data
	.align	2
	.type	errmsg_ill_syntax, %object
	.size	errmsg_ill_syntax, 4
errmsg_ill_syntax:
	.word	.LC51
	.global	errmsg_eof
	.section	.rodata
	.align	2
.LC52:
	.ascii	"END OF FILE\000"
	.data
	.align	2
	.type	errmsg_eof, %object
	.size	errmsg_eof, 4
errmsg_eof:
	.word	.LC52
	.global	errmsg_stack_of
	.section	.rodata
	.align	2
.LC53:
	.ascii	"STACK OVERFLOW\000"
	.data
	.align	2
	.type	errmsg_stack_of, %object
	.size	errmsg_stack_of, 4
errmsg_stack_of:
	.word	.LC53
	.global	errmsg_zero_div
	.section	.rodata
	.align	2
.LC54:
	.ascii	"DIVISION BY ZERO: \000"
	.data
	.align	2
	.type	errmsg_zero_div, %object
	.size	errmsg_zero_div, 4
errmsg_zero_div:
	.word	.LC54
	.global	errmsg_no_memory
	.section	.rodata
	.align	2
.LC55:
	.ascii	"\012no memory. abort.\012\000"
	.data
	.align	2
	.type	errmsg_no_memory, %object
	.size	errmsg_no_memory, 4
errmsg_no_memory:
	.word	.LC55
	.text
	.align	2
	.global	D_GET_TAG
	.syntax unified
	.arm
	.fpu softvfp
	.type	D_GET_TAG, %function
D_GET_TAG:
	@ 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]
	and	r3, r3, #1879048192
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	D_GET_TAG, .-D_GET_TAG
	.align	2
	.global	D_GET_DATA
	.syntax unified
	.arm
	.fpu softvfp
	.type	D_GET_DATA, %function
D_GET_DATA:
	@ 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]
	bic	r3, r3, #-268435456
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	D_GET_DATA, .-D_GET_DATA
	.align	2
	.global	gchar
	.syntax unified
	.arm
	.fpu softvfp
	.type	gchar, %function
gchar:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L7
	ldr	r3, [r3]
	mov	r0, r3
	bl	fgetc
	mov	r3, r0
	and	r3, r3, #255
	mov	r0, r3
	pop	{fp, pc}
.L8:
	.align	2
.L7:
	.word	stdin
	.size	gchar, .-gchar
	.align	2
	.global	ugchar
	.syntax unified
	.arm
	.fpu softvfp
	.type	ugchar, %function
ugchar:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	ldr	r2, .L10
	ldr	r2, [r2]
	mov	r1, r2
	mov	r0, r3
	bl	ungetc
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L11:
	.align	2
.L10:
	.word	stdin
	.size	ugchar, .-ugchar
	.section	.rodata
	.align	2
.LC56:
	.ascii	"%cCAMPUS LIsP\012Lemon version,\012z88dk variant\012"
	.ascii	"\000"
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	bl	init
	mov	r1, #12
	ldr	r0, .L13
	bl	printf
	bl	toplevel
	bl	quit
	nop
	pop	{fp, pc}
.L14:
	.align	2
.L13:
	.word	.LC56
	.size	main, .-main
	.section	.rodata
	.align	2
.LC57:
	.ascii	"function install error: %s\012\000"
	.text
	.align	2
	.global	init
	.syntax unified
	.arm
	.fpu softvfp
	.type	init, %function
init:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r0, #0
	bl	time
	mov	r3, r0
	mov	r0, r3
	bl	srand
	ldr	r3, .L23
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L23+4
	mov	r2, #0
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L16
.L17:
	ldr	r3, [fp, #-8]
	add	r2, r3, #1
	ldr	r1, .L23+8
	ldr	r3, [fp, #-8]
	str	r2, [r1, r3, lsl #2]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L16:
	ldr	r3, [fp, #-8]
	ldr	r2, .L23+12
	cmp	r3, r2
	bne	.L17
	ldr	r3, .L23+8
	ldr	r2, .L23+12
	str	r2, [r3, #4092]
	ldr	r3, .L23+16
	mov	r2, #0
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L18
.L19:
	ldr	r2, .L23+20
	ldr	r3, [fp, #-8]
	mov	r1, #0
	str	r1, [r2, r3, lsl #2]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L18:
	ldr	r3, [fp, #-8]
	cmp	r3, #170
	bne	.L19
	ldr	r3, .L23+24
	mov	r2, #0
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L20
.L22:
	ldr	r1, .L23+28
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	symb_make
	ldr	r1, .L23+28
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r1, .L23+32
	ldr	r3, [fp, #-8]
	str	r2, [r1, r3, lsl #2]
	ldr	r1, .L23+28
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	add	r3, r3, #8
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-8]
	cmp	r3, r2
	beq	.L21
	ldr	r1, .L23+28
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L23+36
	bl	printf
	bl	quit
.L21:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L20:
	ldr	r1, .L23+28
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L22
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L24:
	.align	2
.L23:
	.word	t_stack_ptr
	.word	t_cons_free
	.word	t_cons_car
	.word	1023
	.word	t_symb_free
	.word	t_symb_pname
	.word	t_pnames_free
	.word	funcs
	.word	t_symb_ftype
	.word	.LC57
	.size	init, .-init
	.section	.rodata
	.align	2
.LC58:
	.ascii	"\012] \000"
	.text
	.align	2
	.global	toplevel
	.syntax unified
	.arm
	.fpu softvfp
	.type	toplevel, %function
toplevel:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
.L31:
	ldr	r3, .L36
	mov	r2, #0
	str	r2, [r3]
	ldr	r0, .L36+4
	bl	printf
	bl	l_read
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	blt	.L33
	ldr	r3, [fp, #-12]
	cmp	r3, #1342177280
	beq	.L34
	ldr	r0, [fp, #-12]
	bl	gc_protect
	ldr	r0, [fp, #-12]
	bl	l_eval
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	blt	.L35
	ldr	r0, [fp, #-12]
	bl	gc_unprotect
	mov	r0, #10
	bl	putchar
	ldr	r0, [fp, #-8]
	bl	l_print
	b	.L31
.L33:
	nop
	b	.L31
.L35:
	nop
	b	.L31
.L34:
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L37:
	.align	2
.L36:
	.word	t_stack_ptr
	.word	.LC58
	.size	toplevel, .-toplevel
	.section	.rodata
	.align	2
.LC59:
	.ascii	"nil\000"
	.align	2
.LC60:
	.ascii	"t\000"
	.align	2
.LC61:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	l_read
	.syntax unified
	.arm
	.fpu softvfp
	.type	l_read, %function
l_read:
	@ args = 0, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #56
	ldr	r3, .L72
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	bl	skip_space
	mov	r3, r0
	strb	r3, [fp, #-53]
	ldrb	r3, [fp, #-53]	@ zero_extendqisi2
	cmp	r3, #59
	bne	.L39
	nop
.L40:
	bl	gchar
	mov	r3, r0
	cmp	r3, #10
	bne	.L40
	mvn	r3, #0
	b	.L68
.L39:
	ldrb	r3, [fp, #-53]	@ zero_extendqisi2
	cmp	r3, #39
	bne	.L42
	bl	l_read
	str	r0, [fp, #-44]
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	bge	.L43
	mvn	r3, #0
	b	.L68
.L43:
	ldr	r3, [fp, #-44]
	cmp	r3, #1342177280
	bne	.L44
	ldr	r3, .L72+4
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #0
	mov	r0, r3
	bl	err_msg
	mov	r3, r0
	b	.L68
.L44:
	mov	r1, #0
	ldr	r0, [fp, #-44]
	bl	l_cons
	str	r0, [fp, #-44]
	ldr	r1, [fp, #-44]
	mov	r0, #805306376
	bl	l_cons
	str	r0, [fp, #-48]
	b	.L45
.L42:
	ldrb	r3, [fp, #-53]	@ zero_extendqisi2
	cmp	r3, #40
	beq	.L46
	ldrb	r3, [fp, #-53]
	strb	r3, [fp, #-40]
	mov	r3, #1
	strb	r3, [fp, #-54]
.L57:
	bl	gchar
	mov	r3, r0
	strb	r3, [fp, #-53]
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r2, [r3]
	ldrb	r3, [fp, #-53]	@ zero_extendqisi2
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #8192
	cmp	r3, #0
	bne	.L47
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r2, [r3]
	ldrb	r3, [fp, #-53]	@ zero_extendqisi2
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #2
	cmp	r3, #0
	bne	.L47
	ldrb	r3, [fp, #-53]	@ zero_extendqisi2
	cmp	r3, #59
	beq	.L47
	ldrb	r3, [fp, #-53]	@ zero_extendqisi2
	cmp	r3, #40
	beq	.L47
	ldrb	r3, [fp, #-53]	@ zero_extendqisi2
	cmp	r3, #41
	bne	.L48
.L47:
	ldrb	r3, [fp, #-53]	@ zero_extendqisi2
	mov	r0, r3
	bl	ugchar
	ldrb	r3, [fp, #-54]	@ zero_extendqisi2
	sub	r2, fp, #4
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3, #-36]
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r2, [r3]
	ldrb	r3, [fp, #-40]	@ zero_extendqisi2
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #2048
	cmp	r3, #0
	beq	.L49
	ldrb	r3, [fp, #-39]	@ zero_extendqisi2
	cmp	r3, #43
	beq	.L49
	ldrb	r3, [fp, #-39]	@ zero_extendqisi2
	cmp	r3, #45
	bne	.L50
.L49:
	ldrb	r3, [fp, #-40]	@ zero_extendqisi2
	cmp	r3, #45
	bne	.L51
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r2, [r3]
	ldrb	r3, [fp, #-39]	@ zero_extendqisi2
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #2048
	cmp	r3, #0
	bne	.L50
.L51:
	ldrb	r3, [fp, #-40]	@ zero_extendqisi2
	cmp	r3, #43
	bne	.L52
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r2, [r3]
	ldrb	r3, [fp, #-39]	@ zero_extendqisi2
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #2048
	cmp	r3, #0
	beq	.L52
.L50:
	sub	r3, fp, #40
	mov	r0, r3
	bl	atol
	mov	r3, r0
	mov	r0, r3
	bl	int_make_l
	str	r0, [fp, #-48]
	nop
	b	.L45
.L52:
	sub	r3, fp, #40
	ldr	r1, .L72+8
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L54
	mov	r3, #0
	str	r3, [fp, #-48]
	b	.L45
.L54:
	sub	r3, fp, #40
	ldr	r1, .L72+12
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L55
	mov	r3, #268435456
	str	r3, [fp, #-48]
	b	.L45
.L55:
	sub	r3, fp, #40
	mov	r0, r3
	bl	symb_make
	mov	r3, r0
	orr	r3, r3, #805306368
	str	r3, [fp, #-48]
	b	.L45
.L48:
	ldrb	r3, [fp, #-54]	@ zero_extendqisi2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldrb	r2, [fp, #-53]
	strb	r2, [r3, #-36]
	ldrb	r3, [fp, #-54]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-54]
	b	.L57
.L46:
	bl	skip_space
	mov	r3, r0
	strb	r3, [fp, #-53]
	ldrb	r3, [fp, #-53]	@ zero_extendqisi2
	cmp	r3, #41
	bne	.L58
	mov	r3, #0
	str	r3, [fp, #-48]
	b	.L45
.L58:
	ldrb	r3, [fp, #-53]	@ zero_extendqisi2
	mov	r0, r3
	bl	ugchar
	bl	l_read
	str	r0, [fp, #-44]
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	bge	.L59
	ldr	r3, .L72+4
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #0
	mov	r0, r3
	bl	err_msg
	mov	r3, r0
	b	.L68
.L59:
	ldr	r3, [fp, #-44]
	cmp	r3, #1342177280
	bne	.L60
	mvn	r3, #0
	b	.L68
.L60:
	mov	r1, #0
	ldr	r0, [fp, #-44]
	bl	l_cons
	str	r0, [fp, #-52]
	ldr	r3, [fp, #-52]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bge	.L61
	mvn	r3, #0
	b	.L68
.L61:
	ldr	r0, [fp, #-48]
	bl	gc_protect
.L67:
	bl	skip_space
	mov	r3, r0
	strb	r3, [fp, #-53]
	ldrb	r3, [fp, #-53]	@ zero_extendqisi2
	cmp	r3, #41
	beq	.L71
	ldrb	r3, [fp, #-53]	@ zero_extendqisi2
	mov	r0, r3
	bl	ugchar
	bl	l_read
	str	r0, [fp, #-44]
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	bge	.L64
	mvn	r3, #0
	b	.L68
.L64:
	ldr	r3, [fp, #-44]
	cmp	r3, #1342177280
	bne	.L65
	ldr	r3, .L72+4
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #0
	mov	r0, r3
	bl	err_msg
	mov	r3, r0
	b	.L68
.L65:
	mov	r1, #0
	ldr	r0, [fp, #-44]
	bl	l_cons
	str	r0, [fp, #-44]
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	bge	.L66
	mvn	r3, #0
	b	.L68
.L66:
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-52]
	bl	rplacd
	ldr	r0, [fp, #-52]
	bl	l_cdr
	str	r0, [fp, #-52]
	b	.L67
.L71:
	nop
	ldr	r0, [fp, #-48]
	bl	gc_unprotect
.L45:
	ldr	r3, [fp, #-48]
.L68:
	ldr	r2, .L72
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L69
	bl	__stack_chk_fail
.L69:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L73:
	.align	2
.L72:
	.word	.LC61
	.word	errmsg_eof
	.word	.LC59
	.word	.LC60
	.size	l_read, .-l_read
	.align	2
	.global	skip_space
	.syntax unified
	.arm
	.fpu softvfp
	.type	skip_space, %function
skip_space:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
.L77:
	bl	gchar
	mov	r3, r0
	strb	r3, [fp, #-5]
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r2, [r3]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #8192
	cmp	r3, #0
	bne	.L77
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r2, [r3]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #2
	cmp	r3, #0
	beq	.L80
	b	.L77
.L80:
	nop
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	skip_space, .-skip_space
	.align	2
	.global	l_equal
	.syntax unified
	.arm
	.fpu softvfp
	.type	l_equal, %function
l_equal:
	@ 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]
	str	r1, [fp, #-28]
	ldr	r3, [fp, #-24]
	bic	r3, r3, #-268435456
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-28]
	bic	r3, r3, #-268435456
	str	r3, [fp, #-16]
	ldr	r0, [fp, #-24]
	bl	D_GET_TAG
	mov	r4, r0
	ldr	r0, [fp, #-28]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r4, r3
	beq	.L82
	mov	r3, #0
	b	.L83
.L82:
	ldr	r0, [fp, #-24]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #1073741824
	bne	.L84
	ldr	r0, [fp, #-24]
	bl	l_car
	mov	r4, r0
	ldr	r0, [fp, #-24]
	bl	l_car
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	l_equal
	mov	r3, r0
	cmp	r3, #0
	bne	.L85
	mov	r3, #0
	b	.L83
.L85:
	ldr	r0, [fp, #-28]
	bl	l_car
	mov	r4, r0
	ldr	r0, [fp, #-28]
	bl	l_car
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	l_equal
	mov	r3, r0
	b	.L83
.L84:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	bne	.L86
	mov	r3, #268435456
	b	.L83
.L86:
	mov	r3, #0
.L83:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	l_equal, .-l_equal
	.section	.rodata
	.align	2
.LC62:
	.ascii	"%ld\000"
	.align	2
.LC63:
	.ascii	"%s\000"
	.align	2
.LC64:
	.ascii	"<eof>\000"
	.align	2
.LC65:
	.ascii	"<undefined>\000"
	.align	2
.LC66:
	.ascii	" . \000"
	.text
	.align	2
	.global	l_print
	.syntax unified
	.arm
	.fpu softvfp
	.type	l_print, %function
l_print:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	ldr	r0, [fp, #-24]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #1610612736
	beq	.L89
	cmp	r3, #1610612736
	bgt	.L90
	cmp	r3, #1342177280
	beq	.L91
	cmp	r3, #1342177280
	bgt	.L90
	cmp	r3, #1073741824
	beq	.L92
	cmp	r3, #1073741824
	bgt	.L90
	cmp	r3, #805306368
	beq	.L93
	cmp	r3, #805306368
	bgt	.L90
	cmp	r3, #536870912
	beq	.L94
	cmp	r3, #536870912
	bgt	.L90
	cmp	r3, #0
	beq	.L95
	cmp	r3, #268435456
	beq	.L96
	b	.L90
.L95:
	ldr	r0, .L101
	bl	printf
	b	.L90
.L96:
	mov	r0, #116
	bl	putchar
	b	.L90
.L94:
	ldr	r0, [fp, #-24]
	bl	int_get_c
	str	r0, [fp, #-8]
	ldr	r1, [fp, #-8]
	ldr	r0, .L101+4
	bl	printf
	b	.L90
.L93:
	ldr	r3, [fp, #-24]
	bic	r3, r3, #-268435456
	str	r3, [fp, #-12]
	ldr	r2, .L101+8
	ldr	r3, [fp, #-12]
	ldr	r3, [r2, r3, lsl #2]
	mov	r1, r3
	ldr	r0, .L101+12
	bl	printf
	b	.L90
.L91:
	ldr	r0, .L101+16
	bl	printf
	b	.L90
.L89:
	ldr	r0, .L101+20
	bl	printf
	b	.L90
.L92:
	mov	r0, #40
	bl	putchar
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	l_print
	b	.L97
.L98:
	mov	r0, #32
	bl	putchar
	ldr	r0, [fp, #-16]
	bl	l_cdr
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	l_print
.L97:
	ldr	r0, [fp, #-16]
	bl	l_cdr
	mov	r3, r0
	mov	r0, r3
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #1073741824
	beq	.L98
	ldr	r0, [fp, #-16]
	bl	l_cdr
	mov	r3, r0
	mov	r0, r3
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #0
	beq	.L99
	ldr	r0, .L101+24
	bl	printf
	ldr	r0, [fp, #-16]
	bl	l_cdr
	mov	r3, r0
	mov	r0, r3
	bl	l_print
.L99:
	mov	r0, #41
	bl	putchar
	nop
.L90:
	mov	r3, #268435456
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L102:
	.align	2
.L101:
	.word	.LC59
	.word	.LC62
	.word	t_symb_pname
	.word	.LC63
	.word	.LC64
	.word	.LC65
	.word	.LC66
	.size	l_print, .-l_print
	.section	.rodata
	.align	2
.LC67:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	l_eval
	.syntax unified
	.arm
	.fpu softvfp
	.type	l_eval, %function
l_eval:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #40
	str	r0, [fp, #-48]
	ldr	r3, .L126
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r0, [fp, #-48]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #1073741824
	beq	.L104
	cmp	r3, #1073741824
	bgt	.L105
	cmp	r3, #805306368
	beq	.L106
	cmp	r3, #805306368
	bgt	.L105
	cmp	r3, #536870912
	beq	.L107
	cmp	r3, #536870912
	bgt	.L105
	cmp	r3, #0
	beq	.L107
	cmp	r3, #268435456
	bne	.L105
.L107:
	ldr	r3, [fp, #-48]
	str	r3, [fp, #-40]
	b	.L105
.L106:
	ldr	r0, [fp, #-48]
	bl	D_GET_DATA
	mov	r3, r0
	ldr	r2, .L126+4
	ldr	r3, [r2, r3, lsl #2]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	cmp	r3, #1610612736
	bne	.L124
	ldr	r3, .L126+8
	ldr	r3, [r3]
	ldr	r2, [fp, #-48]
	mov	r1, #1
	mov	r0, r3
	bl	err_msg
	mov	r3, r0
	b	.L122
.L104:
	ldr	r0, [fp, #-48]
	bl	l_car
	str	r0, [fp, #-36]
	ldr	r0, [fp, #-48]
	bl	l_cdr
	str	r0, [fp, #-32]
	ldr	r0, [fp, #-36]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #1073741824
	bne	.L110
	ldr	r0, [fp, #-36]
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #805306368
	bne	.L110
	ldr	r0, [fp, #-36]
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	D_GET_DATA
	mov	r3, r0
	cmp	r3, #33
	bne	.L110
	sub	r2, fp, #24
	ldr	r3, .L126+12
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-36]
	bl	eval_args
	mov	r3, r0
	cmp	r3, #0
	bge	.L111
	mvn	r3, #0
	b	.L122
.L111:
	ldr	r0, [fp, #-36]
	bl	l_cdr
	mov	r5, r0
	ldr	r4, [fp, #-24]
	ldr	r0, [fp, #-36]
	bl	l_cdr
	mov	r3, r0
	mov	r0, r3
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	list_len
	mov	r3, r0
	mov	r2, r3
	mov	r1, r4
	mov	r0, r5
	bl	apply
	str	r0, [fp, #-40]
	b	.L112
.L110:
	ldr	r0, [fp, #-36]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #805306368
	bne	.L113
	ldr	r0, [fp, #-36]
	bl	D_GET_DATA
	mov	r3, r0
	ldr	r2, .L126+16
	ldr	r3, [r2, r3, lsl #2]
	rsbs	r2, r3, #0
	lsl	r3, r3, #22
	lsr	r3, r3, #22
	lsl	r2, r2, #22
	lsr	r2, r2, #22
	rsbpl	r3, r2, #0
	str	r3, [fp, #-28]
	ldr	r0, [fp, #-36]
	bl	D_GET_DATA
	mov	r3, r0
	ldr	r2, .L126+16
	ldr	r3, [r2, r3, lsl #2]
	add	r2, r3, #1020
	add	r2, r2, #3
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #10
	cmp	r3, #3
	ldrls	pc, [pc, r3, asl #2]
	b	.L125
.L116:
	.word	.L119
	.word	.L118
	.word	.L117
	.word	.L115
.L119:
	ldr	r3, .L126+20
	ldr	r3, [r3]
	ldr	r2, [fp, #-36]
	mov	r1, #1
	mov	r0, r3
	bl	err_msg
	mov	r3, r0
	b	.L122
.L117:
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-36]
	bl	special
	str	r0, [fp, #-40]
	b	.L112
.L118:
	sub	r2, fp, #24
	ldr	r3, [fp, #-28]
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-36]
	bl	eval_args
	mov	r3, r0
	cmp	r3, #0
	bge	.L120
	mvn	r3, #0
	b	.L122
.L120:
	sub	r3, fp, #24
	mov	r1, r3
	ldr	r0, [fp, #-36]
	bl	fcall
	str	r0, [fp, #-40]
	b	.L112
.L115:
	sub	r2, fp, #24
	ldr	r3, .L126+12
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-36]
	bl	eval_args
	mov	r3, r0
	cmp	r3, #0
	bge	.L121
	mvn	r3, #0
	b	.L122
.L121:
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-28]
	mov	r1, r3
	ldr	r0, [fp, #-36]
	bl	apply
	str	r0, [fp, #-40]
	b	.L125
.L113:
	ldr	r3, .L126+24
	ldr	r3, [r3]
	ldr	r2, [fp, #-48]
	mov	r1, #1
	mov	r0, r3
	bl	err_msg
	mov	r3, r0
	b	.L122
.L112:
	b	.L125
.L124:
	nop
	b	.L105
.L125:
	nop
.L105:
	ldr	r3, [fp, #-40]
.L122:
	ldr	r2, .L126
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L123
	bl	__stack_chk_fail
.L123:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L127:
	.align	2
.L126:
	.word	.LC67
	.word	t_symb_val
	.word	errmsg_sym_undef
	.word	1023
	.word	t_symb_ftype
	.word	errmsg_func_undef
	.word	errmsg_ill_call
	.size	l_eval, .-l_eval
	.align	2
	.global	special
	.syntax unified
	.arm
	.fpu softvfp
	.type	special, %function
special:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	D_GET_DATA
	mov	r3, r0
	sub	r3, r3, #7
	cmp	r3, #30
	ldrls	pc, [pc, r3, asl #2]
	b	.L129
.L131:
	.word	.L140
	.word	.L139
	.word	.L138
	.word	.L129
	.word	.L129
	.word	.L129
	.word	.L129
	.word	.L129
	.word	.L129
	.word	.L129
	.word	.L129
	.word	.L129
	.word	.L137
	.word	.L136
	.word	.L135
	.word	.L129
	.word	.L134
	.word	.L129
	.word	.L129
	.word	.L129
	.word	.L129
	.word	.L129
	.word	.L129
	.word	.L129
	.word	.L133
	.word	.L129
	.word	.L129
	.word	.L132
	.word	.L129
	.word	.L129
	.word	.L130
.L140:
	ldr	r0, [fp, #-36]
	bl	list_len
	mov	r3, r0
	cmp	r3, #1
	bgt	.L141
	ldr	r3, .L188
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	mov	r1, #1
	mov	r0, r3
	bl	err_msg
	mov	r3, r0
	b	.L142
.L141:
	ldr	r0, [fp, #-36]
	bl	l_car
	str	r0, [fp, #-20]
	ldr	r0, [fp, #-20]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #805306368
	beq	.L143
	ldr	r3, .L188
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	mov	r1, #1
	mov	r0, r3
	bl	err_msg
	mov	r3, r0
	b	.L142
.L143:
	ldr	r0, [fp, #-36]
	bl	l_cdr
	str	r0, [fp, #-24]
	ldr	r0, [fp, #-24]
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	list_len
	str	r0, [fp, #-12]
	ldr	r0, [fp, #-20]
	bl	D_GET_DATA
	str	r0, [fp, #-8]
	ldr	r1, .L188+4
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-24]
	str	r2, [r1, r3, lsl #2]
	ldr	r3, [fp, #-12]
	add	r2, r3, #3072
	ldr	r1, .L188+8
	ldr	r3, [fp, #-8]
	str	r2, [r1, r3, lsl #2]
	b	.L129
.L138:
	ldr	r0, [fp, #-36]
	bl	l_car
	str	r0, [fp, #-24]
	ldr	r0, [fp, #-24]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #805306368
	beq	.L144
	ldr	r3, .L188+12
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	mov	r1, #1
	mov	r0, r3
	bl	err_msg
	mov	r3, r0
	b	.L142
.L144:
	ldr	r0, [fp, #-36]
	bl	l_cdr
	mov	r3, r0
	mov	r0, r3
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	l_eval
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bge	.L145
	mvn	r3, #0
	b	.L142
.L145:
	ldr	r0, [fp, #-24]
	bl	D_GET_DATA
	mov	r2, r0
	ldr	r1, .L188+16
	ldr	r3, [fp, #-20]
	str	r3, [r1, r2, lsl #2]
	b	.L129
.L139:
	ldr	r0, [fp, #-36]
	bl	l_car
	str	r0, [fp, #-20]
	b	.L129
.L137:
	mov	r3, #0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-24]
	b	.L146
.L148:
	ldr	r0, [fp, #-24]
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	l_eval
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bge	.L147
	mvn	r3, #0
	b	.L142
.L147:
	ldr	r0, [fp, #-24]
	bl	l_cdr
	str	r0, [fp, #-24]
.L146:
	ldr	r0, [fp, #-24]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #1073741824
	beq	.L148
	b	.L129
.L132:
	ldr	r0, [fp, #-36]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #1073741824
	beq	.L149
	ldr	r3, .L188
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	mov	r1, #1
	mov	r0, r3
	bl	err_msg
	mov	r3, r0
	b	.L142
.L149:
	ldr	r0, [fp, #-36]
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	l_eval
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bge	.L151
	mvn	r3, #0
	b	.L142
.L155:
	ldr	r0, [fp, #-36]
	bl	l_cdr
	str	r0, [fp, #-24]
	b	.L152
.L154:
	ldr	r0, [fp, #-24]
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	l_eval
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bge	.L153
	mvn	r3, #0
	b	.L142
.L153:
	ldr	r0, [fp, #-24]
	bl	l_cdr
	str	r0, [fp, #-24]
.L152:
	ldr	r0, [fp, #-24]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #1073741824
	beq	.L154
	ldr	r0, [fp, #-36]
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	l_eval
	str	r0, [fp, #-20]
.L151:
	ldr	r0, [fp, #-20]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #0
	bne	.L155
	b	.L129
.L133:
	mov	r3, #268435456
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-24]
	b	.L156
.L160:
	ldr	r0, [fp, #-24]
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	l_eval
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bge	.L157
	mvn	r3, #0
	b	.L142
.L157:
	ldr	r0, [fp, #-24]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #0
	beq	.L186
	ldr	r0, [fp, #-24]
	bl	l_cdr
	str	r0, [fp, #-24]
.L156:
	ldr	r0, [fp, #-24]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #1073741824
	beq	.L160
	b	.L129
.L186:
	nop
	b	.L129
.L135:
	mov	r3, #0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-24]
	b	.L161
.L165:
	ldr	r0, [fp, #-24]
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	l_eval
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bge	.L162
	mvn	r3, #0
	b	.L142
.L162:
	ldr	r0, [fp, #-20]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #0
	bne	.L187
	ldr	r0, [fp, #-24]
	bl	l_cdr
	str	r0, [fp, #-24]
.L161:
	ldr	r0, [fp, #-24]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #1073741824
	beq	.L165
	b	.L129
.L187:
	nop
	b	.L129
.L136:
	ldr	r0, [fp, #-36]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #1073741824
	beq	.L166
	ldr	r3, .L188
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	mov	r1, #1
	mov	r0, r3
	bl	err_msg
	mov	r3, r0
	b	.L142
.L166:
	mov	r3, #0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-24]
	b	.L167
.L175:
	ldr	r0, [fp, #-24]
	bl	l_car
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #1073741824
	beq	.L168
	ldr	r3, .L188
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	mov	r1, #1
	mov	r0, r3
	bl	err_msg
	mov	r3, r0
	b	.L142
.L168:
	ldr	r0, [fp, #-16]
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	l_eval
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bge	.L169
	mvn	r3, #0
	b	.L142
.L169:
	ldr	r0, [fp, #-20]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #0
	beq	.L170
	ldr	r0, [fp, #-16]
	bl	l_cdr
	str	r0, [fp, #-16]
	b	.L171
.L173:
	ldr	r0, [fp, #-16]
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	l_eval
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bge	.L172
	mvn	r3, #0
	b	.L142
.L172:
	ldr	r0, [fp, #-16]
	bl	l_cdr
	str	r0, [fp, #-16]
.L171:
	ldr	r0, [fp, #-16]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #1073741824
	beq	.L173
	b	.L185
.L170:
	ldr	r0, [fp, #-24]
	bl	l_cdr
	str	r0, [fp, #-24]
.L167:
	ldr	r0, [fp, #-24]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #1073741824
	beq	.L175
	b	.L129
.L185:
	b	.L129
.L130:
	mov	r3, #268435456
	str	r3, [fp, #-20]
	b	.L129
.L134:
	ldr	r0, [fp, #-36]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #1073741824
	beq	.L176
	ldr	r3, .L188
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	mov	r1, #1
	mov	r0, r3
	bl	err_msg
	mov	r3, r0
	b	.L142
.L176:
	ldr	r0, [fp, #-36]
	bl	list_len
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #2
	beq	.L177
	ldr	r3, [fp, #-12]
	cmp	r3, #3
	bne	.L178
.L177:
	ldr	r0, [fp, #-36]
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	l_eval
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bge	.L179
	mvn	r3, #0
	b	.L142
.L179:
	ldr	r0, [fp, #-20]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #0
	beq	.L180
	ldr	r0, [fp, #-36]
	bl	l_cdr
	mov	r3, r0
	mov	r0, r3
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	l_eval
	mov	r3, r0
	b	.L142
.L180:
	ldr	r3, [fp, #-12]
	cmp	r3, #2
	beq	.L181
	ldr	r0, [fp, #-36]
	bl	l_cdr
	mov	r3, r0
	mov	r0, r3
	bl	l_cdr
	mov	r3, r0
	mov	r0, r3
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	l_eval
	mov	r3, r0
	b	.L142
.L181:
	mov	r3, #0
	b	.L142
.L178:
	ldr	r3, .L188
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	mov	r1, #1
	mov	r0, r3
	bl	err_msg
	mov	r3, r0
	b	.L142
.L129:
	ldr	r3, [fp, #-20]
.L142:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L189:
	.align	2
.L188:
	.word	errmsg_ill_syntax
	.word	t_symb_fval
	.word	t_symb_ftype
	.word	errmsg_ill_type
	.word	t_symb_val
	.size	special, .-special
	.align	2
	.global	eval_args
	.syntax unified
	.arm
	.fpu softvfp
	.type	eval_args, %function
eval_args:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	ldr	r2, .L208
	cmp	r3, r2
	beq	.L191
	ldr	r0, [fp, #-28]
	bl	list_len
	mov	r2, r0
	ldr	r3, [fp, #-36]
	cmp	r3, r2
	beq	.L191
	ldr	r3, .L208+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	mov	r1, #1
	mov	r0, r3
	bl	err_msg
	mov	r3, r0
	b	.L192
.L191:
	ldr	r3, [fp, #-36]
	ldr	r2, .L208
	cmp	r3, r2
	beq	.L193
	ldr	r3, [fp, #-36]
	cmp	r3, #1024
	bge	.L194
	ldr	r3, [fp, #-36]
	cmp	r3, #2
	beq	.L195
	ldr	r3, [fp, #-36]
	cmp	r3, #2
	bgt	.L194
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L196
	ldr	r3, [fp, #-36]
	cmp	r3, #1
	beq	.L197
	b	.L194
.L196:
	ldr	r3, [fp, #-32]
	mov	r2, #0
	str	r2, [r3]
	b	.L194
.L197:
	ldr	r0, [fp, #-28]
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	l_eval
	mov	r2, r0
	ldr	r3, [fp, #-32]
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L207
	mvn	r3, #0
	b	.L192
.L195:
	ldr	r0, [fp, #-28]
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	l_eval
	mov	r2, r0
	ldr	r3, [fp, #-32]
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L199
	mvn	r3, #0
	b	.L192
.L199:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	mov	r0, r3
	bl	gc_protect
	ldr	r0, [fp, #-28]
	bl	l_cdr
	mov	r3, r0
	mov	r0, r3
	bl	l_car
	mov	r2, r0
	ldr	r3, [fp, #-32]
	add	r4, r3, #4
	mov	r0, r2
	bl	l_eval
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, [r4]
	cmp	r3, #0
	bge	.L200
	mvn	r3, #0
	b	.L192
.L200:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	mov	r0, r3
	bl	gc_unprotect
	b	.L194
.L193:
	ldr	r0, [fp, #-28]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #1073741824
	beq	.L201
	ldr	r3, [fp, #-32]
	mov	r2, #0
	str	r2, [r3]
	b	.L194
.L201:
	ldr	r0, [fp, #-28]
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	l_eval
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bge	.L202
	mvn	r3, #0
	b	.L192
.L202:
	mov	r1, #0
	ldr	r0, [fp, #-16]
	bl	l_cons
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L203
	mvn	r3, #0
	b	.L192
.L203:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	mov	r0, r3
	bl	gc_protect
	ldr	r0, [fp, #-28]
	bl	l_cdr
	str	r0, [fp, #-28]
	b	.L204
.L206:
	ldr	r0, [fp, #-28]
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	l_eval
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bge	.L205
	mvn	r3, #0
	b	.L192
.L205:
	mov	r1, #0
	ldr	r0, [fp, #-16]
	bl	l_cons
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-20]
	bl	rplacd
	ldr	r0, [fp, #-20]
	bl	l_cdr
	str	r0, [fp, #-20]
	ldr	r0, [fp, #-28]
	bl	l_cdr
	str	r0, [fp, #-28]
.L204:
	ldr	r0, [fp, #-28]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #1073741824
	beq	.L206
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	mov	r0, r3
	bl	gc_unprotect
	b	.L194
.L207:
	nop
.L194:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
.L192:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L209:
	.align	2
.L208:
	.word	1023
	.word	errmsg_ill_nargs
	.size	eval_args, .-eval_args
	.global	__aeabi_idiv
	.global	__aeabi_idivmod
	.align	2
	.global	fcall
	.syntax unified
	.arm
	.fpu softvfp
	.type	fcall, %function
fcall:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	D_GET_DATA
	mov	r3, r0
	sub	r3, r3, #4
	cmp	r3, #39
	ldrls	pc, [pc, r3, asl #2]
	b	.L211
.L213:
	.word	.L215
	.word	.L215
	.word	.L211
	.word	.L211
	.word	.L211
	.word	.L211
	.word	.L211
	.word	.L211
	.word	.L211
	.word	.L211
	.word	.L211
	.word	.L211
	.word	.L211
	.word	.L215
	.word	.L215
	.word	.L211
	.word	.L211
	.word	.L211
	.word	.L211
	.word	.L211
	.word	.L211
	.word	.L211
	.word	.L211
	.word	.L211
	.word	.L211
	.word	.L214
	.word	.L214
	.word	.L211
	.word	.L211
	.word	.L211
	.word	.L211
	.word	.L214
	.word	.L214
	.word	.L211
	.word	.L212
	.word	.L211
	.word	.L212
	.word	.L214
	.word	.L212
	.word	.L212
.L215:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #1073741824
	beq	.L306
	ldr	r3, .L309
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	mov	r1, #1
	mov	r0, r3
	bl	err_msg
	mov	r3, r0
	b	.L217
.L214:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #536870912
	bne	.L218
	ldr	r3, [fp, #-36]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #536870912
	beq	.L307
.L218:
	ldr	r3, .L309
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	mov	r1, #1
	mov	r0, r3
	bl	err_msg
	mov	r3, r0
	b	.L217
.L212:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #536870912
	beq	.L308
	ldr	r3, .L309
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	mov	r1, #1
	mov	r0, r3
	bl	err_msg
	mov	r3, r0
	b	.L217
.L306:
	nop
	b	.L211
.L307:
	nop
	b	.L211
.L308:
	nop
.L211:
	ldr	r0, [fp, #-32]
	bl	D_GET_DATA
	mov	r3, r0
	cmp	r3, #45
	ldrls	pc, [pc, r3, asl #2]
	b	.L221
.L223:
	.word	.L257
	.word	.L256
	.word	.L255
	.word	.L254
	.word	.L253
	.word	.L252
	.word	.L251
	.word	.L221
	.word	.L221
	.word	.L221
	.word	.L222
	.word	.L250
	.word	.L249
	.word	.L248
	.word	.L247
	.word	.L246
	.word	.L245
	.word	.L244
	.word	.L243
	.word	.L221
	.word	.L221
	.word	.L221
	.word	.L242
	.word	.L221
	.word	.L241
	.word	.L240
	.word	.L239
	.word	.L238
	.word	.L237
	.word	.L236
	.word	.L235
	.word	.L221
	.word	.L234
	.word	.L233
	.word	.L221
	.word	.L232
	.word	.L231
	.word	.L221
	.word	.L230
	.word	.L229
	.word	.L228
	.word	.L227
	.word	.L226
	.word	.L225
	.word	.L224
	.word	.L222
.L233:
	ldr	r3, .L309+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	mov	r1, #1
	mov	r0, r3
	bl	err_msg
	mov	r3, r0
	b	.L217
.L251:
	bl	quit
	b	.L221
.L222:
	ldr	r3, [fp, #-36]
	ldr	r2, [r3]
	ldr	r3, [fp, #-36]
	add	r3, r3, #4
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L258
	mov	r3, #268435456
	b	.L259
.L258:
	mov	r3, #0
.L259:
	str	r3, [fp, #-28]
	b	.L221
.L224:
	ldr	r3, [fp, #-36]
	ldr	r2, [r3]
	ldr	r3, [fp, #-36]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	l_equal
	mov	r3, r0
	b	.L217
.L254:
	ldr	r3, [fp, #-36]
	ldr	r2, [r3]
	ldr	r3, [fp, #-36]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	l_cons
	str	r0, [fp, #-28]
	b	.L221
.L244:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	D_GET_DATA
	mov	r3, r0
	ldr	r2, [fp, #-36]
	ldr	r2, [r2, #4]
	ldr	r1, .L309+8
	str	r2, [r1, r3, lsl #2]
	ldr	r2, .L309+8
	ldr	r3, [r2, r3, lsl #2]
	str	r3, [fp, #-28]
	b	.L221
.L243:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	D_GET_DATA
	mov	r3, r0
	ldr	r2, [fp, #-36]
	ldr	r2, [r2, #4]
	ldr	r1, .L309+12
	str	r2, [r1, r3, lsl #2]
	ldr	r2, .L309+12
	ldr	r3, [r2, r3, lsl #2]
	str	r3, [fp, #-28]
	b	.L221
.L253:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	l_car
	str	r0, [fp, #-28]
	b	.L221
.L252:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	l_cdr
	str	r0, [fp, #-28]
	b	.L221
.L250:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #0
	bne	.L260
	mov	r3, #268435456
	b	.L261
.L260:
	mov	r3, #0
.L261:
	str	r3, [fp, #-28]
	b	.L221
.L249:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #1073741824
	bne	.L262
	mov	r3, #268435456
	b	.L217
.L262:
	mov	r3, #0
	b	.L217
.L248:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #805306368
	bne	.L264
	mov	r3, #268435456
	b	.L217
.L264:
	mov	r3, #0
	b	.L217
.L247:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #536870912
	bne	.L266
	mov	r3, #268435456
	b	.L267
.L266:
	mov	r3, #0
.L267:
	str	r3, [fp, #-28]
	b	.L221
.L241:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	b	.L221
.L242:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #0
	bne	.L268
	mov	r3, #268435456
	b	.L269
.L268:
	mov	r3, #0
.L269:
	str	r3, [fp, #-28]
	b	.L221
.L257:
	bl	l_read
	str	r0, [fp, #-28]
	b	.L221
.L256:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	l_eval
	str	r0, [fp, #-28]
	b	.L221
.L246:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	l_print
	str	r0, [fp, #-28]
	b	.L221
.L245:
	mov	r0, #10
	bl	putchar
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L221
.L255:
	bl	gcollect
	mov	r3, #268435456
	str	r3, [fp, #-28]
	b	.L221
.L240:
	mov	r3, #0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	b	.L270
.L272:
	ldr	r0, [fp, #-24]
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #536870912
	beq	.L271
	ldr	r3, .L309
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	mov	r1, #1
	mov	r0, r3
	bl	err_msg
	mov	r3, r0
	b	.L217
.L271:
	ldr	r0, [fp, #-24]
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	int_get_c
	mov	r2, r0
	ldr	r3, [fp, #-20]
	add	r3, r3, r2
	str	r3, [fp, #-20]
	ldr	r0, [fp, #-24]
	bl	l_cdr
	str	r0, [fp, #-24]
.L270:
	ldr	r0, [fp, #-24]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #1073741824
	beq	.L272
	ldr	r0, [fp, #-20]
	bl	int_make_l
	str	r0, [fp, #-28]
	b	.L221
.L238:
	mov	r3, #1
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	b	.L273
.L275:
	ldr	r0, [fp, #-24]
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #536870912
	beq	.L274
	ldr	r3, .L309
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	mov	r1, #1
	mov	r0, r3
	bl	err_msg
	mov	r3, r0
	b	.L217
.L274:
	ldr	r0, [fp, #-24]
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	int_get_c
	mov	r2, r0
	ldr	r3, [fp, #-20]
	mul	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r0, [fp, #-24]
	bl	l_cdr
	str	r0, [fp, #-24]
.L273:
	ldr	r0, [fp, #-24]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #1073741824
	beq	.L275
	ldr	r0, [fp, #-20]
	bl	int_make_l
	str	r0, [fp, #-28]
	b	.L221
.L239:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #0
	bne	.L276
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L277
.L276:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #536870912
	beq	.L278
	ldr	r3, .L309
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	mov	r1, #1
	mov	r0, r3
	bl	err_msg
	mov	r3, r0
	b	.L217
.L278:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	l_cdr
	mov	r3, r0
	mov	r0, r3
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #0
	bne	.L279
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	int_get_c
	mov	r3, r0
	rsb	r3, r3, #0
	str	r3, [fp, #-20]
	b	.L277
.L279:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	int_get_c
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	l_cdr
	str	r0, [fp, #-24]
	b	.L280
.L282:
	ldr	r0, [fp, #-24]
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #536870912
	beq	.L281
	ldr	r3, .L309
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	mov	r1, #1
	mov	r0, r3
	bl	err_msg
	mov	r3, r0
	b	.L217
.L281:
	ldr	r0, [fp, #-24]
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	int_get_c
	mov	r2, r0
	ldr	r3, [fp, #-20]
	sub	r3, r3, r2
	str	r3, [fp, #-20]
	ldr	r0, [fp, #-24]
	bl	l_cdr
	str	r0, [fp, #-24]
.L280:
	ldr	r0, [fp, #-24]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #1073741824
	beq	.L282
.L277:
	ldr	r0, [fp, #-20]
	bl	int_make_l
	str	r0, [fp, #-28]
	b	.L221
.L237:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #0
	bne	.L283
	mov	r3, #1
	str	r3, [fp, #-20]
	b	.L284
.L283:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #536870912
	beq	.L285
	ldr	r3, .L309
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	mov	r1, #1
	mov	r0, r3
	bl	err_msg
	mov	r3, r0
	b	.L217
.L285:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	int_get_c
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L284
	ldr	r3, .L309+16
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	mov	r1, #1
	mov	r0, r3
	bl	err_msg
	mov	r3, r0
	b	.L217
.L284:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	l_cdr
	mov	r3, r0
	mov	r0, r3
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #0
	bne	.L286
	ldr	r1, [fp, #-16]
	mov	r0, #1
	bl	__aeabi_idiv
	mov	r3, r0
	str	r3, [fp, #-20]
	b	.L287
.L286:
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	l_cdr
	str	r0, [fp, #-24]
	b	.L288
.L291:
	ldr	r0, [fp, #-24]
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #536870912
	beq	.L289
	ldr	r3, .L309
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	mov	r1, #1
	mov	r0, r3
	bl	err_msg
	mov	r3, r0
	b	.L217
.L289:
	ldr	r0, [fp, #-24]
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	int_get_c
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L290
	ldr	r3, .L309+16
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	mov	r1, #1
	mov	r0, r3
	bl	err_msg
	mov	r3, r0
	b	.L217
.L290:
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-20]
	bl	__aeabi_idiv
	mov	r3, r0
	str	r3, [fp, #-20]
	ldr	r0, [fp, #-24]
	bl	l_cdr
	str	r0, [fp, #-24]
.L288:
	ldr	r0, [fp, #-24]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #1073741824
	beq	.L291
.L287:
	ldr	r0, [fp, #-20]
	bl	int_make_l
	str	r0, [fp, #-28]
	b	.L221
.L236:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	int_get_c
	mov	r4, r0
	ldr	r3, [fp, #-36]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	int_get_c
	mov	r3, r0
	cmp	r4, r3
	ble	.L292
	mov	r3, #268435456
	b	.L293
.L292:
	mov	r3, #0
.L293:
	str	r3, [fp, #-28]
	b	.L221
.L234:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	int_get_c
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-36]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	int_get_c
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L294
	ldr	r3, .L309+16
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	mov	r1, #1
	mov	r0, r3
	bl	err_msg
	mov	r3, r0
	b	.L217
.L294:
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-20]
	bl	__aeabi_idiv
	mov	r3, r0
	mov	r0, r3
	bl	int_make_l
	mov	r4, r0
	ldr	r3, [fp, #-20]
	ldr	r1, [fp, #-16]
	mov	r0, r3
	bl	__aeabi_idivmod
	mov	r3, r1
	mov	r0, r3
	bl	int_make_l
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	l_cons
	str	r0, [fp, #-28]
	b	.L221
.L235:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	int_get_c
	mov	r4, r0
	ldr	r3, [fp, #-36]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	int_get_c
	mov	r3, r0
	cmp	r4, r3
	bge	.L295
	mov	r3, #268435456
	b	.L296
.L295:
	mov	r3, #0
.L296:
	str	r3, [fp, #-28]
	b	.L221
.L229:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #1073741824
	beq	.L297
	mov	r3, #268435456
	b	.L298
.L297:
	mov	r3, #0
.L298:
	str	r3, [fp, #-28]
	b	.L221
.L232:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	int_get_c
	mov	r4, r0
	ldr	r3, [fp, #-36]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	int_get_c
	mov	r3, r0
	cmp	r4, r3
	blt	.L299
	mov	r3, #268435456
	b	.L300
.L299:
	mov	r3, #0
.L300:
	str	r3, [fp, #-28]
	b	.L221
.L231:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	int_get_c
	mov	r4, r0
	ldr	r3, [fp, #-36]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	int_get_c
	mov	r3, r0
	cmp	r4, r3
	bgt	.L301
	mov	r3, #268435456
	b	.L302
.L301:
	mov	r3, #0
.L302:
	str	r3, [fp, #-28]
	b	.L221
.L230:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	int_get_c
	mov	r3, r0
	cmp	r3, #0
	bne	.L303
	mov	r3, #268435456
	b	.L304
.L303:
	mov	r3, #0
.L304:
	str	r3, [fp, #-28]
	b	.L221
.L228:
	bl	rand
	mov	r4, r0
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	int_get_c
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_idivmod
	mov	r3, r1
	mov	r0, r3
	bl	int_make_l
	str	r0, [fp, #-28]
	b	.L221
.L226:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	int_get_c
	mov	r3, r0
	add	r3, r3, #1
	mov	r0, r3
	bl	int_make_l
	str	r0, [fp, #-28]
	b	.L221
.L225:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	int_get_c
	mov	r3, r0
	sub	r3, r3, #1
	mov	r0, r3
	bl	int_make_l
	str	r0, [fp, #-28]
	b	.L221
.L227:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r0, r3
	bl	int_get_c
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-36]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	int_get_c
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L305
	ldr	r3, .L309+16
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	mov	r1, #1
	mov	r0, r3
	bl	err_msg
	mov	r3, r0
	b	.L217
.L305:
	ldr	r3, [fp, #-20]
	ldr	r1, [fp, #-16]
	mov	r0, r3
	bl	__aeabi_idivmod
	mov	r3, r1
	mov	r0, r3
	bl	int_make_l
	str	r0, [fp, #-28]
	nop
.L221:
	ldr	r3, [fp, #-28]
.L217:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L310:
	.align	2
.L309:
	.word	errmsg_ill_type
	.word	errmsg_ill_call
	.word	t_cons_car
	.word	t_cons_cdr
	.word	errmsg_zero_div
	.size	fcall, .-fcall
	.align	2
	.global	apply
	.syntax unified
	.arm
	.fpu softvfp
	.type	apply, %function
apply:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #52
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	str	r2, [fp, #-56]
	ldr	r3, .L327
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r2, r3
	cmp	r3, #200
	bls	.L312
	ldr	r3, .L327+4
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #0
	mov	r0, r3
	bl	err_msg
	mov	r3, r0
	b	.L313
.L312:
	ldr	r0, [fp, #-48]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #805306368
	bne	.L314
	ldr	r0, [fp, #-48]
	bl	D_GET_DATA
	mov	r3, r0
	ldr	r2, .L327+8
	ldr	r3, [r2, r3, lsl #2]
	str	r3, [fp, #-40]
	b	.L315
.L314:
	ldr	r0, [fp, #-48]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #1073741824
	bne	.L315
	ldr	r3, [fp, #-48]
	str	r3, [fp, #-40]
.L315:
	ldr	r0, [fp, #-40]
	bl	l_car
	str	r0, [fp, #-32]
	ldr	r3, [fp, #-52]
	str	r3, [fp, #-28]
	ldr	r3, .L327
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r2, r3
	ldr	r2, .L327
	str	r3, [r2]
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L316
.L317:
	ldr	r0, [fp, #-32]
	bl	l_car
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	D_GET_DATA
	mov	r1, r0
	ldr	r3, .L327
	ldr	r2, [r3]
	ldr	r3, [fp, #-20]
	sub	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, .L327+12
	ldr	r2, [r2, r1, lsl #2]
	ldr	r1, .L327+16
	str	r2, [r1, r3, lsl #2]
	ldr	r0, [fp, #-16]
	bl	D_GET_DATA
	mov	r4, r0
	ldr	r0, [fp, #-28]
	bl	l_car
	mov	r3, r0
	ldr	r2, .L327+12
	str	r3, [r2, r4, lsl #2]
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
	ldr	r0, [fp, #-32]
	bl	l_cdr
	str	r0, [fp, #-32]
	ldr	r0, [fp, #-28]
	bl	l_cdr
	str	r0, [fp, #-28]
.L316:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-56]
	cmp	r2, r3
	blt	.L317
	ldr	r0, [fp, #-52]
	bl	gc_protect
	ldr	r0, [fp, #-40]
	bl	l_cdr
	str	r0, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L318
.L321:
	ldr	r0, [fp, #-36]
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	l_eval
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	blt	.L326
	ldr	r0, [fp, #-36]
	bl	l_cdr
	str	r0, [fp, #-36]
.L318:
	ldr	r0, [fp, #-36]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #1073741824
	beq	.L321
	b	.L322
.L326:
	nop
	b	.L322
.L323:
	ldr	r3, .L327
	ldr	r3, [r3]
	sub	r3, r3, #1
	ldr	r2, .L327
	str	r3, [r2]
.L322:
	ldr	r3, .L327
	ldr	r3, [r3]
	sub	r3, r3, #1
	ldr	r2, .L327+16
	ldr	r3, [r2, r3, lsl #2]
	cmp	r3, #0
	blt	.L323
	mov	r3, #0
	str	r3, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	l_car
	str	r0, [fp, #-32]
	b	.L324
.L325:
	ldr	r0, [fp, #-32]
	bl	l_car
	str	r0, [fp, #-16]
	ldr	r3, .L327
	ldr	r2, [r3]
	ldr	r3, [fp, #-20]
	sub	r3, r2, r3
	sub	r4, r3, #1
	ldr	r0, [fp, #-16]
	bl	D_GET_DATA
	mov	r2, r0
	ldr	r3, .L327+16
	ldr	r3, [r3, r4, lsl #2]
	ldr	r1, .L327+12
	str	r3, [r1, r2, lsl #2]
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
	ldr	r0, [fp, #-32]
	bl	l_cdr
	str	r0, [fp, #-32]
.L324:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-56]
	cmp	r2, r3
	blt	.L325
	ldr	r3, .L327
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	sub	r3, r2, r3
	ldr	r2, .L327
	str	r3, [r2]
	ldr	r3, [fp, #-24]
.L313:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L328:
	.align	2
.L327:
	.word	t_stack_ptr
	.word	errmsg_stack_of
	.word	t_symb_fval
	.word	t_symb_val
	.word	t_stack
	.size	apply, .-apply
	.section	.rodata
	.align	2
.LC68:
	.ascii	"\012ERROR. \012%s\000"
	.text
	.align	2
	.global	err_msg
	.syntax unified
	.arm
	.fpu softvfp
	.type	err_msg, %function
err_msg:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-8]
	mov	r3, r1
	str	r2, [fp, #-16]
	strb	r3, [fp, #-9]
	ldr	r1, [fp, #-8]
	ldr	r0, .L332
	bl	printf
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L330
	ldr	r0, [fp, #-16]
	bl	l_print
.L330:
	mov	r0, #10
	bl	putchar
	mov	r3, #255
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L333:
	.align	2
.L332:
	.word	.LC68
	.size	err_msg, .-err_msg
	.align	2
	.global	list_len
	.syntax unified
	.arm
	.fpu softvfp
	.type	list_len, %function
list_len:
	@ 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	.L335
.L336:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	l_cdr
	str	r0, [fp, #-16]
.L335:
	ldr	r0, [fp, #-16]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #1073741824
	beq	.L336
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	list_len, .-list_len
	.align	2
	.global	rplacd
	.syntax unified
	.arm
	.fpu softvfp
	.type	rplacd, %function
rplacd:
	@ 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	D_GET_DATA
	mov	r2, r0
	ldr	r1, .L339
	ldr	r3, [fp, #-12]
	str	r3, [r1, r2, lsl #2]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L340:
	.align	2
.L339:
	.word	t_cons_cdr
	.size	rplacd, .-rplacd
	.align	2
	.global	l_cons
	.syntax unified
	.arm
	.fpu softvfp
	.type	l_cons, %function
l_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]
	ldr	r3, .L346
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L342
	ldr	r0, [fp, #-16]
	bl	gc_protect
	ldr	r0, [fp, #-20]
	bl	gc_protect
	bl	gcollect
	ldr	r0, [fp, #-20]
	bl	gc_unprotect
	ldr	r0, [fp, #-16]
	bl	gc_unprotect
.L342:
	ldr	r3, .L346
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, .L346
	ldr	r3, [r3]
	ldr	r2, .L346+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, .L346
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L343
	ldr	r3, .L346
	ldr	r3, [r3]
	ldr	r2, .L346+4
	ldr	r3, [r2, r3, lsl #2]
	ldr	r2, .L346
	str	r3, [r2]
	b	.L344
.L343:
	ldr	r3, .L346
	mvn	r2, #0
	str	r2, [r3]
.L344:
	ldr	r1, .L346+4
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	str	r2, [r1, r3, lsl #2]
	ldr	r1, .L346+8
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-20]
	str	r2, [r1, r3, lsl #2]
	ldr	r3, [fp, #-8]
	orr	r3, r3, #1073741824
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L347:
	.align	2
.L346:
	.word	t_cons_free
	.word	t_cons_car
	.word	t_cons_cdr
	.size	l_cons, .-l_cons
	.align	2
	.global	l_car
	.syntax unified
	.arm
	.fpu softvfp
	.type	l_car, %function
l_car:
	@ 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	D_GET_DATA
	mov	r3, r0
	ldr	r2, .L350
	ldr	r3, [r2, r3, lsl #2]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L351:
	.align	2
.L350:
	.word	t_cons_car
	.size	l_car, .-l_car
	.align	2
	.global	l_cdr
	.syntax unified
	.arm
	.fpu softvfp
	.type	l_cdr, %function
l_cdr:
	@ 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	D_GET_DATA
	mov	r3, r0
	ldr	r2, .L354
	ldr	r3, [r2, r3, lsl #2]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L355:
	.align	2
.L354:
	.word	t_cons_cdr
	.size	l_cdr, .-l_cdr
	.section	.rodata
	.align	2
.LC69:
	.ascii	"\012BYE\000"
	.text
	.align	2
	.global	quit
	.syntax unified
	.arm
	.fpu softvfp
	.type	quit, %function
quit:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r0, .L357
	bl	puts
	mov	r0, #0
	bl	exit
.L358:
	.align	2
.L357:
	.word	.LC69
	.size	quit, .-quit
	.align	2
	.global	gcollect
	.syntax unified
	.arm
	.fpu softvfp
	.type	gcollect, %function
gcollect:
	@ 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, #0
	str	r3, [fp, #-16]
	b	.L360
.L361:
	ldr	r2, .L373
	ldr	r3, [fp, #-16]
	ldr	r3, [r2, r3, lsl #2]
	mov	r0, r3
	bl	gc_mark
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L360:
	ldr	r3, .L373+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L361
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L362
.L363:
	ldr	r2, .L373+8
	ldr	r3, [fp, #-16]
	ldr	r3, [r2, r3, lsl #2]
	mov	r0, r3
	bl	gc_mark
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L362:
	ldr	r3, .L373+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L363
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L364
.L365:
	ldr	r2, .L373+12
	ldr	r3, [fp, #-16]
	ldr	r3, [r2, r3, lsl #2]
	mov	r0, r3
	bl	gc_mark
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L364:
	ldr	r2, [fp, #-16]
	ldr	r3, .L373+16
	ldr	r3, [r3]
	cmp	r2, r3
	bcc	.L365
	ldr	r3, .L373+20
	mvn	r2, #0
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L366
.L370:
	ldr	r2, .L373+24
	ldr	r3, [fp, #-16]
	ldr	r3, [r2, r3, lsl #2]
	cmp	r3, #0
	blt	.L367
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
	ldr	r3, .L373+20
	ldr	r3, [r3]
	cmn	r3, #1
	bne	.L368
	ldr	r2, .L373+20
	ldr	r3, [fp, #-16]
	str	r3, [r2]
	b	.L369
.L368:
	ldr	r1, .L373+24
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	str	r2, [r1, r3, lsl #2]
.L369:
	ldr	r1, .L373+24
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-16]
	str	r2, [r1, r3, lsl #2]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-8]
.L367:
	ldr	r2, .L373+24
	ldr	r3, [fp, #-16]
	ldr	r3, [r2, r3, lsl #2]
	bic	r2, r3, #-2147483648
	ldr	r1, .L373+24
	ldr	r3, [fp, #-16]
	str	r2, [r1, r3, lsl #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L366:
	ldr	r3, [fp, #-16]
	cmp	r3, #1024
	bne	.L370
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L372
	ldr	r3, .L373+28
	ldr	r3, [r3]
	mov	r0, r3
	bl	printf
	bl	quit
.L372:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L374:
	.align	2
.L373:
	.word	t_symb_val
	.word	t_symb_free
	.word	t_symb_fval
	.word	t_stack
	.word	t_stack_ptr
	.word	t_cons_free
	.word	t_cons_car
	.word	errmsg_no_memory
	.size	gcollect, .-gcollect
	.align	2
	.global	gc_mark
	.syntax unified
	.arm
	.fpu softvfp
	.type	gc_mark, %function
gc_mark:
	@ 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]
	b	.L376
.L379:
	ldr	r0, [fp, #-8]
	bl	D_GET_DATA
	mov	r3, r0
	ldr	r2, .L381
	ldr	r3, [r2, r3, lsl #2]
	cmp	r3, #0
	blt	.L380
	ldr	r0, [fp, #-8]
	bl	D_GET_DATA
	mov	r3, r0
	ldr	r2, .L381
	ldr	r2, [r2, r3, lsl #2]
	orr	r2, r2, #-2147483648
	mov	r1, r2
	ldr	r2, .L381
	str	r1, [r2, r3, lsl #2]
	ldr	r0, [fp, #-8]
	bl	l_car
	mov	r3, r0
	mov	r0, r3
	bl	gc_mark
	ldr	r0, [fp, #-8]
	bl	l_cdr
	str	r0, [fp, #-8]
.L376:
	ldr	r0, [fp, #-8]
	bl	D_GET_TAG
	mov	r3, r0
	cmp	r3, #1073741824
	beq	.L379
	b	.L375
.L380:
	nop
.L375:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L382:
	.align	2
.L381:
	.word	t_cons_car
	.size	gc_mark, .-gc_mark
	.align	2
	.global	gc_protect
	.syntax unified
	.arm
	.fpu softvfp
	.type	gc_protect, %function
gc_protect:
	@ 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	D_GET_TAG
	mov	r3, r0
	cmp	r3, #1073741824
	bne	.L384
	ldr	r3, .L387
	ldr	r3, [r3]
	cmp	r3, #199
	bls	.L385
	ldr	r3, .L387+4
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #0
	mov	r0, r3
	bl	err_msg
	mov	r3, r0
	b	.L386
.L385:
	ldr	r3, [fp, #-8]
	orr	r0, r3, #-2147483648
	ldr	r3, .L387
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L387
	str	r2, [r1]
	mov	r1, r0
	ldr	r2, .L387+8
	str	r1, [r2, r3, lsl #2]
.L384:
	mov	r3, #0
.L386:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L388:
	.align	2
.L387:
	.word	t_stack_ptr
	.word	errmsg_stack_of
	.word	t_stack
	.size	gc_protect, .-gc_protect
	.align	2
	.global	gc_unprotect
	.syntax unified
	.arm
	.fpu softvfp
	.type	gc_unprotect, %function
gc_unprotect:
	@ 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	D_GET_TAG
	mov	r3, r0
	cmp	r3, #1073741824
	bne	.L391
	ldr	r3, .L392
	ldr	r3, [r3]
	sub	r3, r3, #1
	ldr	r2, .L392
	str	r3, [r2]
.L391:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L393:
	.align	2
.L392:
	.word	t_stack_ptr
	.size	gc_unprotect, .-gc_unprotect
	.align	2
	.global	int_make_l
	.syntax unified
	.arm
	.fpu softvfp
	.type	int_make_l, %function
int_make_l:
	@ 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]
	bic	r3, r3, #-268435456
	orr	r3, r3, #536870912
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	int_make_l, .-int_make_l
	.align	2
	.global	int_get_c
	.syntax unified
	.arm
	.fpu softvfp
	.type	int_get_c, %function
int_get_c:
	@ 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]
	and	r3, r3, #134217728
	cmp	r3, #0
	bne	.L397
	ldr	r3, [fp, #-8]
	bic	r3, r3, #-268435456
	b	.L398
.L397:
	ldr	r3, [fp, #-8]
	orr	r3, r3, #-268435456
.L398:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	int_get_c, .-int_get_c
	.align	2
	.global	symb_make
	.syntax unified
	.arm
	.fpu softvfp
	.type	symb_make, %function
symb_make:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L400
.L403:
	ldr	r2, .L407
	ldr	r3, [fp, #-12]
	ldr	r3, [r2, r3, lsl #2]
	cmp	r3, #0
	beq	.L401
	ldr	r2, .L407
	ldr	r3, [fp, #-12]
	ldr	r3, [r2, r3, lsl #2]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L401
	ldr	r3, [fp, #-12]
	b	.L402
.L401:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L400:
	ldr	r3, [fp, #-12]
	cmp	r3, #169
	bne	.L403
	ldr	r3, .L407+4
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, .L407+4
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L407+4
	str	r3, [r2]
	ldr	r3, .L407+4
	ldr	r3, [r3]
	cmp	r3, #170
	bne	.L404
	ldr	r3, .L407+8
	ldr	r3, [r3]
	mov	r0, r3
	bl	printf
	bl	quit
.L404:
	ldr	r3, .L407+12
	ldr	r3, [r3]
	ldr	r2, .L407+16
	add	r2, r3, r2
	ldr	r1, .L407
	ldr	r3, [fp, #-8]
	str	r2, [r1, r3, lsl #2]
	ldr	r2, .L407+20
	ldr	r3, [fp, #-8]
	mov	r1, #1610612736
	str	r1, [r2, r3, lsl #2]
	ldr	r2, .L407+24
	ldr	r3, [fp, #-8]
	mov	r1, #1610612736
	str	r1, [r2, r3, lsl #2]
	ldr	r2, .L407+28
	ldr	r3, [fp, #-8]
	mov	r1, #0
	str	r1, [r2, r3, lsl #2]
.L406:
	ldr	r3, .L407+12
	ldr	r3, [r3]
	cmp	r3, #512
	bne	.L405
	ldr	r3, .L407+8
	ldr	r3, [r3]
	mov	r0, r3
	bl	printf
	bl	quit
.L405:
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	tolower
	mov	r2, r0
	ldr	r3, .L407+12
	ldr	r3, [r3]
	and	r1, r2, #255
	ldr	r2, .L407+16
	strb	r1, [r2, r3]
	ldr	r3, .L407+12
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L407+12
	str	r3, [r2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L406
	ldr	r3, .L407+12
	ldr	r3, [r3]
	ldr	r2, .L407+16
	mov	r1, #0
	strb	r1, [r2, r3]
	ldr	r3, .L407+12
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L407+12
	str	r3, [r2]
	ldr	r3, [fp, #-8]
	orr	r3, r3, #805306368
.L402:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L408:
	.align	2
.L407:
	.word	t_symb_pname
	.word	t_symb_free
	.word	errmsg_no_memory
	.word	t_pnames_free
	.word	t_pnames
	.word	t_symb_val
	.word	t_symb_fval
	.word	t_symb_ftype
	.size	symb_make, .-symb_make
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
