	.file	"29824433.c"
	.intel_syntax noprefix
	.text
	.globl	ffic_os
	.data
	.align 4
	.type	ffic_os, @object
	.size	ffic_os, 4
ffic_os:
	.long	1
	.globl	ffic_libcname
	.section	.rodata
.LC0:
	.string	"msvcrt"
	.section	.data.rel.local,"aw"
	.align 8
	.type	ffic_libcname, @object
	.size	ffic_libcname, 8
ffic_libcname:
	.quad	.LC0
	.globl	ffic_sosuffix
	.section	.rodata
.LC1:
	.string	".dll"
	.section	.data.rel.local
	.align 8
	.type	ffic_sosuffix, @object
	.size	ffic_sosuffix, 8
ffic_sosuffix:
	.quad	.LC1
	.globl	ffic_printf
	.bss
	.align 8
	.type	ffic_printf, @object
	.size	ffic_printf, 8
ffic_printf:
	.zero	8
	.text
	.globl	_ffic_strcat
	.type	_ffic_strcat, @function
_ffic_strcat:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L2
.L3:
	mov	rdx, QWORD PTR -32[rbp]
	lea	rax, 1[rdx]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rcx, 1[rax]
	mov	QWORD PTR -8[rbp], rcx
	movzx	edx, BYTE PTR [rdx]
	mov	BYTE PTR [rax], dl
.L2:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L3
	jmp	.L4
.L5:
	mov	rdx, QWORD PTR -40[rbp]
	lea	rax, 1[rdx]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rcx, 1[rax]
	mov	QWORD PTR -8[rbp], rcx
	movzx	edx, BYTE PTR [rdx]
	mov	BYTE PTR [rax], dl
.L4:
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L5
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR [rax], 0
	mov	rax, QWORD PTR -24[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	_ffic_strcat, .-_ffic_strcat
	.globl	ffic_void
	.type	ffic_void, @function
ffic_void:
.LFB1:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, 0
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	ffic_void, .-ffic_void
	.globl	ffic_core
	.type	ffic_core, @function
ffic_core:
.LFB2:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 24
	.cfi_offset 3, -24
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR ffic_dlsym.12[rip]
	test	rax, rax
	jne	.L10
	mov	rax, QWORD PTR GetProcAddress@GOTPCREL[rip]
	mov	QWORD PTR ffic_dlsym.12[rip], rax
.L10:
	mov	rax, QWORD PTR ffic_dlopen.11[rip]
	test	rax, rax
	jne	.L11
	mov	rax, QWORD PTR LoadLibraryA@GOTPCREL[rip]
	mov	QWORD PTR ffic_dlopen.11[rip], rax
.L11:
	mov	rbx, QWORD PTR ffic_dlsym.12[rip]
	mov	rdx, QWORD PTR ffic_dlopen.11[rip]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 257
	mov	rdi, rax
	mov	eax, 0
	call	rdx
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	mov	eax, 0
	call	rbx
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	ffic_core, .-ffic_core
	.section	.rodata
.LC2:
	.string	"WARN: 404 %s(%s).%s \n"
	.text
	.globl	ffic_raw
	.type	ffic_raw, @function
ffic_raw:
.LFB3:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 576
	mov	QWORD PTR -552[rbp], rdi
	mov	QWORD PTR -560[rbp], rsi
	mov	QWORD PTR -568[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rdx, -528[rbp]
	mov	eax, 0
	mov	ecx, 64
	mov	rdi, rdx
	rep stosq
	lea	rax, -528[rbp]
	mov	QWORD PTR -544[rbp], rax
	cmp	QWORD PTR -568[rbp], 0
	je	.L14
	mov	rdx, QWORD PTR -568[rbp]
	jmp	.L15
.L14:
	mov	rdx, QWORD PTR ffic_sosuffix[rip]
.L15:
	cmp	QWORD PTR -552[rbp], 0
	je	.L16
	mov	rax, QWORD PTR -552[rbp]
	jmp	.L17
.L16:
	mov	rax, QWORD PTR ffic_libcname[rip]
.L17:
	mov	rcx, QWORD PTR -544[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	call	_ffic_strcat
	mov	rdx, QWORD PTR -560[rbp]
	mov	rax, QWORD PTR -544[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	ffic_core
	mov	QWORD PTR -536[rbp], rax
	cmp	QWORD PTR -536[rbp], 0
	jne	.L18
	mov	rax, QWORD PTR ffic_printf[rip]
	test	rax, rax
	jne	.L19
	mov	rax, QWORD PTR printf@GOTPCREL[rip]
	mov	QWORD PTR ffic_printf[rip], rax
.L19:
	mov	r8, QWORD PTR ffic_printf[rip]
	mov	rcx, QWORD PTR -560[rbp]
	mov	rdx, QWORD PTR -544[rbp]
	mov	rax, QWORD PTR -552[rbp]
	mov	rsi, rax
	lea	rdi, .LC2[rip]
	mov	eax, 0
	call	r8
.L18:
	mov	rax, QWORD PTR -536[rbp]
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L21
	call	__stack_chk_fail@PLT
.L21:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE3:
	.size	ffic_raw, .-ffic_raw
	.globl	ffic_std
	.bss
	.align 16
	.type	ffic_std, @object
	.size	ffic_std, 24
ffic_std:
	.zero	24
	.section	.rodata
.LC3:
	.string	"_fdopen"
.LC4:
	.string	"fdopen"
.LC5:
	.string	"r"
.LC6:
	.string	"w"
.LC7:
	.string	"_dup"
.LC8:
	.string	"dup"
	.text
	.globl	ffic_os_std
	.type	ffic_os_std, @function
ffic_os_std:
.LFB4:
	.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, 16
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	mov	DWORD PTR -20[rbp], edi
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, ffic_std[rip]
	mov	rax, QWORD PTR [rdx+rax]
	test	rax, rax
	je	.L23
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, ffic_std[rip]
	mov	rax, QWORD PTR [rdx+rax]
	jmp	.L24
.L23:
	mov	eax, DWORD PTR ffic_os[rip]
	cmp	eax, 1
	jne	.L25
	lea	rax, .LC3[rip]
	jmp	.L26
.L25:
	lea	rax, .LC4[rip]
.L26:
	mov	edx, 0
	mov	rsi, rax
	mov	edi, 0
	call	ffic_raw
	mov	r12, rax
	cmp	DWORD PTR -20[rbp], 0
	jne	.L27
	lea	rbx, .LC5[rip]
	jmp	.L28
.L27:
	lea	rbx, .LC6[rip]
.L28:
	mov	eax, DWORD PTR ffic_os[rip]
	cmp	eax, 1
	jne	.L29
	lea	rax, .LC7[rip]
	jmp	.L30
.L29:
	lea	rax, .LC8[rip]
.L30:
	mov	edx, 0
	mov	rsi, rax
	mov	edi, 0
	call	ffic_raw
	mov	rdx, rax
	mov	eax, DWORD PTR -20[rbp]
	mov	edi, eax
	mov	eax, 0
	call	rdx
	mov	rsi, rbx
	mov	rdi, rax
	mov	eax, 0
	call	r12
	mov	edx, DWORD PTR -20[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*8]
	lea	rdx, ffic_std[rip]
	mov	QWORD PTR [rcx+rdx], rax
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, ffic_std[rip]
	mov	rax, QWORD PTR [rdx+rax]
.L24:
	add	rsp, 16
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	ffic_os_std, .-ffic_os_std
	.local	_ffic_os_sleep
	.comm	_ffic_os_sleep,8,8
	.globl	ffic_usleep
	.type	ffic_usleep, @function
ffic_usleep:
.LFB5:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	rdx, QWORD PTR _ffic_os_sleep[rip]
	mov	eax, DWORD PTR ffic_os[rip]
	cmp	eax, 1
	jne	.L32
	mov	eax, DWORD PTR -4[rbp]
	movsx	rcx, eax
	imul	rcx, rcx, 274877907
	shr	rcx, 32
	sar	ecx, 6
	sar	eax, 31
	mov	esi, eax
	mov	eax, ecx
	sub	eax, esi
	jmp	.L33
.L32:
	mov	eax, DWORD PTR -4[rbp]
.L33:
	mov	edi, eax
	mov	eax, 0
	call	rdx
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	ffic_usleep, .-ffic_usleep
	.globl	ffic_msleep
	.type	ffic_msleep, @function
ffic_msleep:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	rdx, QWORD PTR _ffic_os_sleep[rip]
	mov	eax, DWORD PTR ffic_os[rip]
	cmp	eax, 1
	je	.L36
	mov	eax, DWORD PTR -4[rbp]
	imul	eax, eax, 1000
	jmp	.L37
.L36:
	mov	eax, DWORD PTR -4[rbp]
.L37:
	mov	edi, eax
	mov	eax, 0
	call	rdx
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	ffic_msleep, .-ffic_msleep
	.globl	ffic_sleep
	.type	ffic_sleep, @function
ffic_sleep:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	rdx, QWORD PTR _ffic_os_sleep[rip]
	mov	eax, DWORD PTR ffic_os[rip]
	cmp	eax, 1
	jne	.L40
	mov	eax, DWORD PTR -4[rbp]
	imul	eax, eax, 1000
	jmp	.L41
.L40:
	mov	eax, DWORD PTR -4[rbp]
	imul	eax, eax, 1000000
.L41:
	mov	edi, eax
	mov	eax, 0
	call	rdx
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	ffic_sleep, .-ffic_sleep
	.section	.rodata
	.align 8
.LC9:
	.string	"GetSystemTimePreciseAsFileTime"
.LC10:
	.string	"kernel32"
.LC11:
	.string	"GetSystemTimeAsFileTime"
.LC12:
	.string	"gettimeofday"
	.text
	.globl	ffic_microtime
	.type	ffic_microtime, @function
ffic_microtime:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR ffic_os[rip]
	cmp	eax, 1
	jne	.L44
	mov	rax, QWORD PTR ffic_gettimeofday.10[rip]
	test	rax, rax
	jne	.L45
	mov	edx, 0
	lea	rsi, .LC9[rip]
	lea	rdi, .LC10[rip]
	call	ffic_raw
	mov	QWORD PTR ffic_gettimeofday.10[rip], rax
.L45:
	mov	rax, QWORD PTR ffic_gettimeofday.10[rip]
	test	rax, rax
	jne	.L46
	mov	edx, 0
	lea	rsi, .LC11[rip]
	lea	rdi, .LC10[rip]
	call	ffic_raw
	mov	QWORD PTR ffic_gettimeofday.10[rip], rax
.L46:
	mov	rdx, QWORD PTR ffic_gettimeofday.10[rip]
	lea	rax, -32[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	rdx
	mov	rax, QWORD PTR -24[rbp]
	sal	rax, 32
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	or	rax, rdx
	mov	QWORD PTR -72[rbp], rax
	mov	rdx, QWORD PTR epoch.9[rip]
	mov	rax, QWORD PTR -72[rbp]
	sub	rax, rdx
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	movabs	rdx, -3689348814741910323
	mul	rdx
	mov	rax, rdx
	shr	rax, 3
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	movabs	rdx, 4835703278458516699
	mul	rdx
	mov	rax, rdx
	shr	rax, 18
	mov	QWORD PTR -48[rbp], rax
	mov	rcx, QWORD PTR -56[rbp]
	movabs	rdx, 4835703278458516699
	mov	rax, rcx
	mul	rdx
	mov	rax, rdx
	shr	rax, 18
	imul	rdx, rax, 1000000
	mov	rax, rcx
	sub	rax, rdx
	mov	QWORD PTR -40[rbp], rax
	jmp	.L47
.L44:
	mov	rax, QWORD PTR ffic_gettimeofday.10[rip]
	test	rax, rax
	jne	.L48
	mov	edx, 0
	lea	rsi, .LC12[rip]
	mov	edi, 0
	call	ffic_raw
	mov	QWORD PTR ffic_gettimeofday.10[rip], rax
.L48:
	mov	rdx, QWORD PTR ffic_gettimeofday.10[rip]
	lea	rax, -48[rbp]
	mov	esi, 0
	mov	rdi, rax
	mov	eax, 0
	call	rdx
.L47:
	mov	rax, QWORD PTR -48[rbp]
	imul	rsi, rax, 1000
	mov	rax, QWORD PTR -40[rbp]
	shr	rax, 3
	movabs	rdx, 2361183241434822607
	mul	rdx
	mov	rcx, rdx
	shr	rcx, 4
	mov	rax, rcx
	shr	rax, 3
	movabs	rdx, 2361183241434822607
	mul	rdx
	mov	rax, rdx
	shr	rax, 4
	imul	rdx, rax, 1000
	mov	rax, rcx
	sub	rax, rdx
	add	rax, rsi
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L50
	call	__stack_chk_fail@PLT
.L50:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	ffic_microtime, .-ffic_microtime
	.section	.rodata
.LC13:
	.string	"Sleep"
.LC14:
	.string	"usleep"
.LC15:
	.string	"stderr"
.LC16:
	.string	"2"
.LC17:
	.string	"stdout"
.LC18:
	.string	"1"
.LC19:
	.string	"stdin"
.LC20:
	.string	"0"
.LC21:
	.string	"microtime"
.LC22:
	.string	"sleep"
.LC23:
	.string	"msleep"
.LC24:
	.string	"fileno"
.LC25:
	.string	"_fileno"
.LC26:
	.string	"void"
.LC27:
	.string	"setmode"
.LC28:
	.string	"_setmode"
.LC29:
	.string	"strdup"
.LC30:
	.string	"_strdup"
	.text
	.globl	ffic
	.type	ffic, @function
ffic:
.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, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -8[rbp], 0
	cmp	QWORD PTR -24[rbp], 0
	je	.L52
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 99
	jne	.L52
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L52
	mov	QWORD PTR -24[rbp], 0
.L52:
	cmp	QWORD PTR -24[rbp], 0
	jne	.L53
	mov	rax, QWORD PTR _ffic_os_sleep[rip]
	test	rax, rax
	jne	.L54
	mov	eax, DWORD PTR ffic_os[rip]
	cmp	eax, 1
	jne	.L55
	mov	edx, 0
	lea	rsi, .LC13[rip]
	lea	rdi, .LC10[rip]
	call	ffic_raw
	jmp	.L56
.L55:
	mov	rax, QWORD PTR ffic_libcname[rip]
	mov	edx, 0
	lea	rsi, .LC14[rip]
	mov	rdi, rax
	call	ffic_raw
.L56:
	mov	QWORD PTR _ffic_os_sleep[rip], rax
.L54:
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC15[rip]
	call	strcmp@PLT
	test	eax, eax
	je	.L57
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC16[rip]
	call	strcmp@PLT
	test	eax, eax
	jne	.L58
.L57:
	mov	edi, 2
	call	ffic_os_std
	jmp	.L59
.L58:
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC17[rip]
	call	strcmp@PLT
	test	eax, eax
	je	.L60
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC18[rip]
	call	strcmp@PLT
	test	eax, eax
	jne	.L61
.L60:
	mov	edi, 1
	call	ffic_os_std
	jmp	.L59
.L61:
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC19[rip]
	call	strcmp@PLT
	test	eax, eax
	je	.L62
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC20[rip]
	call	strcmp@PLT
	test	eax, eax
	jne	.L63
.L62:
	mov	edi, 0
	call	ffic_os_std
	jmp	.L59
.L63:
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC21[rip]
	call	strcmp@PLT
	test	eax, eax
	jne	.L64
	lea	rax, ffic_microtime[rip]
	jmp	.L59
.L64:
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC14[rip]
	call	strcmp@PLT
	test	eax, eax
	jne	.L65
	lea	rax, ffic_usleep[rip]
	jmp	.L59
.L65:
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC22[rip]
	call	strcmp@PLT
	test	eax, eax
	jne	.L66
	lea	rax, ffic_sleep[rip]
	jmp	.L59
.L66:
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC23[rip]
	call	strcmp@PLT
	test	eax, eax
	jne	.L67
	lea	rax, ffic_msleep[rip]
	jmp	.L59
.L67:
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC24[rip]
	call	strcmp@PLT
	test	eax, eax
	jne	.L68
	mov	eax, DWORD PTR ffic_os[rip]
	cmp	eax, 1
	jne	.L68
	lea	rax, .LC25[rip]
	mov	QWORD PTR -32[rbp], rax
	jmp	.L53
.L68:
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC26[rip]
	call	strcmp@PLT
	test	eax, eax
	jne	.L69
	lea	rax, ffic_void[rip]
	jmp	.L59
.L69:
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC27[rip]
	call	strcmp@PLT
	test	eax, eax
	jne	.L70
	mov	eax, DWORD PTR ffic_os[rip]
	cmp	eax, 1
	jne	.L71
	lea	rax, .LC28[rip]
	mov	QWORD PTR -32[rbp], rax
	jmp	.L53
.L71:
	lea	rax, ffic_void[rip]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L53
.L70:
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC29[rip]
	call	strcmp@PLT
	test	eax, eax
	jne	.L53
	mov	eax, DWORD PTR ffic_os[rip]
	cmp	eax, 1
	jne	.L53
	lea	rax, .LC30[rip]
	mov	QWORD PTR -32[rbp], rax
.L53:
	cmp	QWORD PTR -8[rbp], 0
	jne	.L72
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	ffic_raw
	mov	QWORD PTR -8[rbp], rax
.L72:
	mov	rax, QWORD PTR -8[rbp]
.L59:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	ffic, .-ffic
	.globl	libc_a
	.bss
	.align 32
	.type	libc_a, @object
	.size	libc_a, 312
libc_a:
	.zero	312
	.text
	.globl	libc_
	.type	libc_, @function
libc_:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	QWORD PTR -16[rbp], rsi
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, libc_a[rip]
	mov	rax, QWORD PTR [rdx+rax]
	test	rax, rax
	je	.L74
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, libc_a[rip]
	mov	rax, QWORD PTR [rdx+rax]
	jmp	.L76
.L74:
	mov	rax, QWORD PTR -16[rbp]
	mov	rsi, rax
	mov	edi, 0
	call	ffic
	mov	edx, DWORD PTR -4[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*8]
	lea	rdx, libc_a[rip]
	mov	QWORD PTR [rcx+rdx], rax
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, libc_a[rip]
	mov	rax, QWORD PTR [rdx+rax]
.L76:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	libc_, .-libc_
	.section	.rodata
.LC31:
	.string	"memset"
.LC32:
	.string	"malloc"
	.text
	.globl	sao_calloc
	.type	sao_calloc, @function
sao_calloc:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 24
	.cfi_offset 3, -24
	mov	QWORD PTR -24[rbp], rdi
	lea	rsi, .LC31[rip]
	mov	edi, 2
	call	libc_
	mov	rbx, rax
	lea	rsi, .LC32[rip]
	mov	edi, 1
	call	libc_
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	rdx
	mov	rcx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, rax
	mov	esi, 0
	mov	rdi, rcx
	mov	eax, 0
	call	rbx
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	sao_calloc, .-sao_calloc
	.globl	argt_names
	.section	.rodata
.LC33:
	.string	"i"
.LC34:
	.string	"p"
.LC35:
	.string	"d"
.LC36:
	.string	"v"
.LC37:
	.string	"e"
.LC38:
	.string	"s"
.LC39:
	.string	"l"
.LC40:
	.string	"h"
	.section	.data.rel.local
	.align 32
	.type	argt_names, @object
	.size	argt_names, 64
argt_names:
	.quad	.LC33
	.quad	.LC34
	.quad	.LC35
	.quad	.LC36
	.quad	.LC37
	.quad	.LC38
	.quad	.LC39
	.quad	.LC40
	.globl	argta
	.bss
	.align 32
	.type	argta, @object
	.size	argta, 32
argta:
	.zero	32
	.globl	stream_names
	.section	.rodata
.LC41:
	.string	"file"
.LC42:
	.string	"char"
	.section	.data.rel.local
	.align 16
	.type	stream_names, @object
	.size	stream_names, 16
stream_names:
	.quad	.LC41
	.quad	.LC42
	.globl	type_names
	.section	.rodata
.LC43:
	.string	"list"
.LC44:
	.string	"vector"
.LC45:
	.string	"long"
.LC46:
	.string	"double"
.LC47:
	.string	"symbol"
.LC48:
	.string	"string"
	.section	.data.rel.local
	.align 32
	.type	type_names, @object
	.size	type_names, 48
type_names:
	.quad	.LC43
	.quad	.LC44
	.quad	.LC45
	.quad	.LC46
	.quad	.LC47
	.quad	.LC48
	.section	.rodata
.LC49:
	.string	"memcpy"
	.text
	.globl	sao_new
	.type	sao_new, @function
sao_new:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 24
	.cfi_offset 3, -24
	lea	rsi, .LC49[rip]
	mov	edi, 3
	call	libc_
	mov	rbx, rax
	lea	rsi, .LC32[rip]
	mov	edi, 1
	call	libc_
	mov	rdx, rax
	mov	edi, 32
	mov	eax, 0
	call	rdx
	mov	edx, 32
	lea	rsi, 16[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	rbx
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	sub	eax, 4
	cmp	eax, 1
	ja	.L80
	lea	rsi, .LC29[rip]
	mov	edi, 6
	call	libc_
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rdi, rax
	mov	eax, 0
	call	rdx
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 16[rdx], rax
	nop
.L80:
	mov	rax, QWORD PTR -24[rbp]
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	sao_new, .-sao_new
	.globl	SAO_TAG_nil
	.bss
	.align 8
	.type	SAO_TAG_nil, @object
	.size	SAO_TAG_nil, 8
SAO_TAG_nil:
	.zero	8
	.globl	SAO_TAG_at
	.align 8
	.type	SAO_TAG_at, @object
	.size	SAO_TAG_at, 8
SAO_TAG_at:
	.zero	8
	.globl	SAO_TAG_vector
	.align 8
	.type	SAO_TAG_vector, @object
	.size	SAO_TAG_vector, 8
SAO_TAG_vector:
	.zero	8
	.globl	SAO_TAG_map
	.align 8
	.type	SAO_TAG_map, @object
	.size	SAO_TAG_map, 8
SAO_TAG_map:
	.zero	8
	.globl	SAO_TAG_argv
	.align 8
	.type	SAO_TAG_argv, @object
	.size	SAO_TAG_argv, 8
SAO_TAG_argv:
	.zero	8
	.globl	SAO_TAG_global
	.align 8
	.type	SAO_TAG_global, @object
	.size	SAO_TAG_global, 8
SAO_TAG_global:
	.zero	8
	.globl	SAO_TAG_begin
	.align 8
	.type	SAO_TAG_begin, @object
	.size	SAO_TAG_begin, 8
SAO_TAG_begin:
	.zero	8
	.globl	SAO_TAG_end
	.align 8
	.type	SAO_TAG_end, @object
	.size	SAO_TAG_end, 8
SAO_TAG_end:
	.zero	8
	.globl	SAO_TAG_quote
	.align 8
	.type	SAO_TAG_quote, @object
	.size	SAO_TAG_quote, 8
SAO_TAG_quote:
	.zero	8
	.globl	sao_atof
	.align 8
	.type	sao_atof, @object
	.size	sao_atof, 8
sao_atof:
	.zero	8
	.globl	sao_atol
	.align 8
	.type	sao_atol, @object
	.size	sao_atol, 8
sao_atol:
	.zero	8
	.globl	sao_strchr
	.align 8
	.type	sao_strchr, @object
	.size	sao_strchr, 8
sao_strchr:
	.zero	8
	.globl	sao_strcmp
	.align 8
	.type	sao_strcmp, @object
	.size	sao_strcmp, 8
sao_strcmp:
	.zero	8
	.text
	.globl	cons
	.type	cons, @function
cons:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -32[rbp], 0
	mov	QWORD PTR -24[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	QWORD PTR -8[rbp], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -8[rbp], rax
	push	QWORD PTR -8[rbp]
	push	QWORD PTR -16[rbp]
	push	QWORD PTR -24[rbp]
	push	QWORD PTR -32[rbp]
	call	sao_new
	add	rsp, 32
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	cons, .-cons
	.globl	car
	.type	car, @function
car:
.LFB14:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	cmp	QWORD PTR -8[rbp], 0
	je	.L85
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L85
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 16[rax]
	jmp	.L87
.L85:
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
.L87:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	car, .-car
	.globl	cdr
	.type	cdr, @function
cdr:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	cmp	QWORD PTR -8[rbp], 0
	je	.L89
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L89
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	jmp	.L91
.L89:
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
.L91:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	cdr, .-cdr
	.globl	caar
	.type	caar, @function
caar:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	cmp	QWORD PTR -8[rbp], 0
	je	.L93
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L93
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	je	.L93
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L93
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR 16[rax]
	jmp	.L95
.L93:
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
.L95:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	caar, .-caar
	.globl	cdar
	.type	cdar, @function
cdar:
.LFB17:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	cmp	QWORD PTR -8[rbp], 0
	je	.L97
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L97
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	je	.L97
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L97
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR 24[rax]
	jmp	.L99
.L97:
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
.L99:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	cdar, .-cdar
	.globl	cadr
	.type	cadr, @function
cadr:
.LFB18:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	cmp	QWORD PTR -8[rbp], 0
	je	.L101
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L101
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L101
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L101
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	jmp	.L103
.L101:
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
.L103:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	cadr, .-cadr
	.globl	cddr
	.type	cddr, @function
cddr:
.LFB19:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	cmp	QWORD PTR -8[rbp], 0
	je	.L105
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L105
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L105
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L105
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	jmp	.L107
.L105:
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
.L107:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	cddr, .-cddr
	.globl	cadar
	.type	cadar, @function
cadar:
.LFB20:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	cmp	QWORD PTR -8[rbp], 0
	je	.L109
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L109
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	je	.L109
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L109
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L109
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L109
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	jmp	.L111
.L109:
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
.L111:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	cadar, .-cadar
	.globl	caddr
	.type	caddr, @function
caddr:
.LFB21:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	cmp	QWORD PTR -8[rbp], 0
	je	.L113
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L113
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L113
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L113
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L113
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L113
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	jmp	.L115
.L113:
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
.L115:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	caddr, .-caddr
	.globl	cdddr
	.type	cdddr, @function
cdddr:
.LFB22:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	cmp	QWORD PTR -8[rbp], 0
	je	.L117
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L117
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L117
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L117
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L117
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L117
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	jmp	.L119
.L117:
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
.L119:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE22:
	.size	cdddr, .-cdddr
	.globl	cdadr
	.type	cdadr, @function
cdadr:
.LFB23:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	cmp	QWORD PTR -8[rbp], 0
	je	.L121
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L121
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L121
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L121
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	je	.L121
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L121
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rax, QWORD PTR 24[rax]
	jmp	.L123
.L121:
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
.L123:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE23:
	.size	cdadr, .-cdadr
	.globl	cadddr
	.type	cadddr, @function
cadddr:
.LFB24:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	cmp	QWORD PTR -8[rbp], 0
	je	.L125
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L125
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L125
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L125
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L125
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L125
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L125
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L125
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	jmp	.L127
.L125:
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
.L127:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE24:
	.size	cadddr, .-cadddr
	.local	sao_print
	.comm	sao_print,8,8
	.globl	sao_is_eq
	.type	sao_is_eq, @function
sao_is_eq:
.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, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -8[rbp]
	cmp	rax, QWORD PTR -16[rbp]
	jne	.L129
	mov	rax, QWORD PTR -8[rbp]
	jmp	.L130
.L129:
	cmp	QWORD PTR -8[rbp], 0
	je	.L131
	cmp	QWORD PTR -16[rbp], 0
	je	.L131
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	jne	.L135
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	je	.L133
	cmp	eax, 2
	jl	.L131
	sub	eax, 4
	cmp	eax, 1
	ja	.L131
	jmp	.L134
.L133:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rdx, rax
	jne	.L134
	mov	rax, QWORD PTR -8[rbp]
	jmp	.L130
.L134:
	mov	rcx, QWORD PTR sao_strcmp[rip]
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rsi, rdx
	mov	rdi, rax
	mov	eax, 0
	call	rcx
	test	eax, eax
	jne	.L131
	mov	rax, QWORD PTR -8[rbp]
	jmp	.L130
.L135:
	nop
.L131:
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
.L130:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE25:
	.size	sao_is_eq, .-sao_is_eq
	.globl	sao_append
	.type	sao_append, @function
sao_append:
.LFB26:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 24
	.cfi_offset 3, -24
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	cmp	QWORD PTR -24[rbp], 0
	je	.L137
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cdr
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	sao_append
	mov	rbx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	jmp	.L139
.L137:
	mov	rax, QWORD PTR -32[rbp]
.L139:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE26:
	.size	sao_append, .-sao_append
	.globl	sao_reverse
	.type	sao_reverse, @function
sao_reverse:
.LFB27:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 24
	.cfi_offset 3, -24
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	cmp	QWORD PTR -24[rbp], 0
	je	.L141
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	cons
	mov	rbx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cdr
	mov	rsi, rbx
	mov	rdi, rax
	call	sao_reverse
	jmp	.L143
.L141:
	mov	rax, QWORD PTR -32[rbp]
.L143:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE27:
	.size	sao_reverse, .-sao_reverse
	.globl	sao_list_len
	.type	sao_list_len, @function
sao_list_len:
.LFB28:
	.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
	cmp	QWORD PTR -8[rbp], 0
	je	.L145
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	cdr
	mov	rdi, rax
	call	sao_list_len
	add	eax, 1
	jmp	.L147
.L145:
	mov	eax, 0
.L147:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE28:
	.size	sao_list_len, .-sao_list_len
	.globl	sao_deq_c
	.type	sao_deq_c, @function
sao_deq_c:
.LFB29:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -12[rbp], 10
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	je	.L149
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 32[rax], rdx
.L149:
	mov	eax, DWORD PTR -12[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE29:
	.size	sao_deq_c, .-sao_deq_c
	.globl	sao_enq_c
	.type	sao_enq_c, @function
sao_enq_c:
.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, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	edi, 24
	call	sao_calloc
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -28[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	jne	.L152
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 24[rax], rdx
.L152:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 32[rax]
	test	rax, rax
	jne	.L153
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 32[rax], rdx
.L153:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 40[rax]
	test	rax, rax
	je	.L154
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 16[rax], rdx
.L154:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	eax, DWORD PTR -28[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE30:
	.size	sao_enq_c, .-sao_enq_c
	.section	.rodata
.LC50:
	.string	"feof"
.LC51:
	.string	"fprintf"
.LC52:
	.string	"FILE NOT FOUND?"
.LC53:
	.string	"\n"
.LC54:
	.string	"exit"
.LC55:
	.string	"DEBUG sao_read_line no pos??"
	.align 8
.LC56:
	.string	"DEBUG sao_read_line terminated??"
.LC57:
	.string	"putc"
.LC58:
	.string	"fgetc"
.LC59:
	.string	"printf"
.LC60:
	.string	"> "
	.text
	.globl	sao_read_line
	.type	sao_read_line, @function
sao_read_line:
.LFB31:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 72
	.cfi_offset 3, -24
	mov	QWORD PTR -72[rbp], rdi
	mov	DWORD PTR -52[rbp], 0
	lea	rsi, .LC50[rip]
	mov	edi, 21
	call	libc_
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L157
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	jne	.L158
	lea	rsi, .LC51[rip]
	mov	edi, 0
	call	libc_
	mov	rbx, rax
	lea	rsi, .LC15[rip]
	mov	edi, 36
	call	libc_
	lea	rsi, .LC52[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rbx
	lea	rsi, .LC51[rip]
	mov	edi, 0
	call	libc_
	mov	rbx, rax
	lea	rsi, .LC15[rip]
	mov	edi, 36
	call	libc_
	lea	rsi, .LC53[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rbx
	lea	rsi, .LC54[rip]
	mov	edi, 38
	call	libc_
	mov	rdx, rax
	mov	edi, 1
	mov	eax, 0
	call	rdx
.L158:
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	rdx
	test	rax, rax
	je	.L159
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, -1
	mov	rdi, rax
	call	sao_enq_c
	jmp	.L160
.L157:
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	jne	.L161
	lea	rsi, .LC51[rip]
	mov	edi, 0
	call	libc_
	mov	rbx, rax
	lea	rsi, .LC15[rip]
	mov	edi, 36
	call	libc_
	lea	rsi, .LC55[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rbx
.L161:
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 16[rax]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L159
	lea	rsi, .LC51[rip]
	mov	edi, 0
	call	libc_
	mov	rbx, rax
	lea	rsi, .LC15[rip]
	mov	edi, 36
	call	libc_
	lea	rsi, .LC56[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rbx
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, -1
	mov	rdi, rax
	call	sao_enq_c
	jmp	.L160
.L159:
	lea	rsi, .LC57[rip]
	mov	edi, 11
	call	libc_
	mov	QWORD PTR -32[rbp], rax
	lea	rsi, .LC58[rip]
	mov	edi, 19
	call	libc_
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L166
	mov	eax, DWORD PTR argta[rip]
	test	eax, eax
	je	.L165
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	lea	rdi, .LC60[rip]
	mov	eax, 0
	call	rdx
.L165:
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	rdx
	mov	DWORD PTR -48[rbp], eax
	mov	eax, DWORD PTR -48[rbp]
	mov	DWORD PTR -44[rbp], eax
	mov	edx, DWORD PTR -44[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	sao_enq_c
	cmp	DWORD PTR -48[rbp], 10
	jne	.L164
	add	DWORD PTR -52[rbp], 1
.L164:
	cmp	DWORD PTR -48[rbp], -1
	je	.L160
	cmp	DWORD PTR -48[rbp], 10
	je	.L160
	jmp	.L165
.L168:
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 16[rax]
	movzx	eax, BYTE PTR [rax]
	movsx	edx, al
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	sao_enq_c
	cmp	eax, 10
	jne	.L167
	add	DWORD PTR -52[rbp], 1
.L167:
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 16[rax]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR 16[rax], rdx
.L166:
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 16[rax]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L168
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, -1
	mov	rdi, rax
	call	sao_enq_c
.L160:
	mov	eax, DWORD PTR -52[rbp]
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE31:
	.size	sao_read_line, .-sao_read_line
	.section	.rodata
.LC61:
	.string	"sao_var(): need ctx"
.LC62:
	.string	"sao_var(): need ctx.car"
	.text
	.globl	sao_var
	.type	sao_var, @function
sao_var:
.LFB32:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 72
	.cfi_offset 3, -24
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	QWORD PTR -72[rbp], rdx
	cmp	QWORD PTR -72[rbp], 0
	jne	.L171
	lea	rsi, .LC51[rip]
	mov	edi, 0
	call	libc_
	mov	rbx, rax
	lea	rsi, .LC15[rip]
	mov	edi, 36
	call	libc_
	lea	rsi, .LC61[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rbx
	lea	rsi, .LC51[rip]
	mov	edi, 0
	call	libc_
	mov	rbx, rax
	lea	rsi, .LC15[rip]
	mov	edi, 36
	call	libc_
	lea	rsi, .LC53[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rbx
	lea	rsi, .LC54[rip]
	mov	edi, 38
	call	libc_
	mov	rdx, rax
	mov	edi, 1
	mov	eax, 0
	call	rdx
.L171:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	car
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	jne	.L172
	lea	rsi, .LC51[rip]
	mov	edi, 0
	call	libc_
	mov	rbx, rax
	lea	rsi, .LC15[rip]
	mov	edi, 36
	call	libc_
	lea	rsi, .LC62[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rbx
	lea	rsi, .LC51[rip]
	mov	edi, 0
	call	libc_
	mov	rbx, rax
	lea	rsi, .LC15[rip]
	mov	edi, 36
	call	libc_
	lea	rsi, .LC53[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rbx
	lea	rsi, .LC54[rip]
	mov	edi, 38
	call	libc_
	mov	rdx, rax
	mov	edi, 1
	mov	eax, 0
	call	rdx
.L172:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -32[rbp], rax
	jmp	.L173
.L176:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	car
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	sao_is_eq
	test	rax, rax
	je	.L174
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -64[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -64[rbp]
	jmp	.L175
.L174:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -32[rbp], rax
.L173:
	cmp	QWORD PTR -40[rbp], 0
	jne	.L176
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	cons
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 16[rdx], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cdr
	mov	rdx, rax
	mov	rax, QWORD PTR -64[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	cons
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 24[rdx], rax
	mov	rax, QWORD PTR -64[rbp]
.L175:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE32:
	.size	sao_var, .-sao_var
	.globl	sao_stream_new
	.type	sao_stream_new, @function
sao_stream_new:
.LFB33:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	edi, 48
	call	sao_calloc
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], rdx
	cmp	DWORD PTR -28[rbp], 1
	jne	.L178
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 16[rax], rdx
.L178:
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -28[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE33:
	.size	sao_stream_new, .-sao_stream_new
	.globl	sao_eps
	.data
	.align 8
	.type	sao_eps, @object
	.size	sao_eps, 8
sao_eps:
	.long	-1698910392
	.long	1048238066
	.section	.rodata
.LC63:
	.string	"isdigit"
	.text
	.globl	sao_convert_default
	.type	sao_convert_default, @function
sao_convert_default:
.LFB34:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 112
	mov	QWORD PTR -104[rbp], rdi
	cmp	QWORD PTR -104[rbp], 0
	je	.L181
	mov	rax, QWORD PTR -104[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 34
	jne	.L182
	mov	QWORD PTR -32[rbp], 0
	mov	QWORD PTR -24[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	QWORD PTR -8[rbp], 0
	mov	DWORD PTR -32[rbp], 5
	mov	rax, QWORD PTR -104[rbp]
	mov	QWORD PTR -16[rbp], rax
	push	QWORD PTR -8[rbp]
	push	QWORD PTR -16[rbp]
	push	QWORD PTR -24[rbp]
	push	QWORD PTR -32[rbp]
	call	sao_new
	add	rsp, 32
	jmp	.L183
.L182:
	mov	rax, QWORD PTR -104[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 45
	jne	.L184
	lea	rsi, .LC63[rip]
	mov	edi, 14
	call	libc_
	mov	rdx, rax
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	edi, eax
	mov	eax, 0
	call	rdx
	test	rax, rax
	jne	.L185
.L184:
	lea	rsi, .LC63[rip]
	mov	edi, 14
	call	libc_
	mov	rdx, rax
	mov	rax, QWORD PTR -104[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	edi, eax
	mov	eax, 0
	call	rdx
	test	rax, rax
	je	.L186
.L185:
	mov	rdx, QWORD PTR sao_atol[rip]
	mov	rax, QWORD PTR -104[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	rdx
	mov	QWORD PTR -96[rbp], rax
	mov	rdx, QWORD PTR sao_atof[rip]
	mov	rax, QWORD PTR -104[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	rdx
	movq	rax, xmm0
	mov	QWORD PTR -88[rbp], rax
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, QWORD PTR -96[rbp]
	movsd	xmm0, QWORD PTR -88[rbp]
	subsd	xmm0, xmm1
	movsd	QWORD PTR -80[rbp], xmm0
	movsd	xmm0, QWORD PTR sao_eps[rip]
	movq	xmm1, QWORD PTR .LC64[rip]
	xorpd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -80[rbp]
	comisd	xmm0, xmm1
	jb	.L187
	movsd	xmm0, QWORD PTR sao_eps[rip]
	comisd	xmm0, QWORD PTR -80[rbp]
	jb	.L187
	mov	QWORD PTR -64[rbp], 0
	mov	QWORD PTR -56[rbp], 0
	mov	QWORD PTR -48[rbp], 0
	mov	QWORD PTR -40[rbp], 0
	mov	DWORD PTR -64[rbp], 2
	mov	rax, QWORD PTR -96[rbp]
	mov	QWORD PTR -40[rbp], rax
	push	QWORD PTR -40[rbp]
	push	QWORD PTR -48[rbp]
	push	QWORD PTR -56[rbp]
	push	QWORD PTR -64[rbp]
	call	sao_new
	add	rsp, 32
	jmp	.L190
.L187:
	mov	QWORD PTR -32[rbp], 0
	mov	QWORD PTR -24[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	QWORD PTR -8[rbp], 0
	mov	DWORD PTR -32[rbp], 3
	movsd	xmm0, QWORD PTR -88[rbp]
	movsd	QWORD PTR -8[rbp], xmm0
	push	QWORD PTR -8[rbp]
	push	QWORD PTR -16[rbp]
	push	QWORD PTR -24[rbp]
	push	QWORD PTR -32[rbp]
	call	sao_new
	add	rsp, 32
.L190:
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR -104[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	jmp	.L183
.L186:
	mov	QWORD PTR -32[rbp], 0
	mov	QWORD PTR -24[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	QWORD PTR -8[rbp], 0
	mov	DWORD PTR -32[rbp], 4
	mov	rax, QWORD PTR -104[rbp]
	mov	QWORD PTR -16[rbp], rax
	push	QWORD PTR -8[rbp]
	push	QWORD PTR -16[rbp]
	push	QWORD PTR -24[rbp]
	push	QWORD PTR -32[rbp]
	call	sao_new
	add	rsp, 32
	jmp	.L183
.L181:
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
.L183:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE34:
	.size	sao_convert_default, .-sao_convert_default
	.section	.rodata
.LC65:
	.string	"nil"
.LC66:
	.string	"\"%s\""
.LC67:
	.string	"%s"
.LC68:
	.string	"()"
.LC69:
	.string	"%ld"
.LC70:
	.string	"%g"
.LC71:
	.string	"("
.LC72:
	.string	","
.LC73:
	.string	", "
.LC74:
	.string	")"
.LC75:
	.string	"<%d>"
	.text
	.globl	sao_print_default
	.type	sao_print_default, @function
sao_print_default:
.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, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	cmp	QWORD PTR -40[rbp], 0
	je	.L194
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	rdx
.L194:
	cmp	QWORD PTR -48[rbp], 0
	jne	.L195
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	lea	rdi, .LC65[rip]
	mov	eax, 0
	call	rdx
	jmp	.L193
.L195:
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 5
	ja	.L197
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L199[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L199[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L199:
	.long	.L203-.L199
	.long	.L197-.L199
	.long	.L202-.L199
	.long	.L201-.L199
	.long	.L200-.L199
	.long	.L198-.L199
	.text
.L198:
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rsi, rax
	lea	rdi, .LC66[rip]
	mov	eax, 0
	call	rdx
	jmp	.L193
.L200:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	je	.L204
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rsi, rax
	lea	rdi, .LC67[rip]
	mov	eax, 0
	call	rdx
	jmp	.L193
.L204:
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	lea	rdi, .LC68[rip]
	mov	eax, 0
	call	rdx
	jmp	.L193
.L202:
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rsi, rax
	lea	rdi, .LC69[rip]
	mov	eax, 0
	call	rdx
	jmp	.L193
.L201:
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	movq	xmm0, rax
	lea	rdi, .LC70[rip]
	mov	eax, 1
	call	rdx
	jmp	.L193
.L203:
	mov	DWORD PTR -24[rbp], 0
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	car
	mov	QWORD PTR -8[rbp], rax
	mov	rdx, QWORD PTR sao_print[rip]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rax
	mov	edi, 0
	call	rdx
	mov	DWORD PTR -24[rbp], 1
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	lea	rdi, .LC71[rip]
	mov	eax, 0
	call	rdx
	mov	DWORD PTR -20[rbp], 0
	jmp	.L206
.L213:
	cmp	DWORD PTR -20[rbp], 1
	jne	.L207
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	lea	rdi, .LC72[rip]
	mov	eax, 0
	call	rdx
.L207:
	cmp	DWORD PTR -24[rbp], 1
	jne	.L208
	mov	DWORD PTR -24[rbp], 0
	jmp	.L209
.L208:
	mov	rdx, QWORD PTR sao_print[rip]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rsi, rax
	mov	edi, 0
	call	rdx
	cmp	DWORD PTR -20[rbp], 0
	jne	.L209
	mov	DWORD PTR -20[rbp], 1
.L209:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L214
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L211
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -16[rbp], rax
	jmp	.L206
.L211:
	mov	rdx, QWORD PTR sao_print[rip]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rsi, rax
	lea	rdi, .LC73[rip]
	call	rdx
	jmp	.L212
.L206:
	cmp	QWORD PTR -16[rbp], 0
	jne	.L213
	jmp	.L212
.L214:
	nop
.L212:
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	lea	rdi, .LC74[rip]
	mov	eax, 0
	call	rdx
	jmp	.L193
.L197:
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	mov	esi, eax
	lea	rdi, .LC75[rip]
	mov	eax, 0
	call	rdx
	nop
.L193:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE35:
	.size	sao_print_default, .-sao_print_default
	.globl	sao_eval_default
	.type	sao_eval_default, @function
sao_eval_default:
.LFB36:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -8[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE36:
	.size	sao_eval_default, .-sao_eval_default
	.globl	sao_str_convert
	.section	.data.rel.local
	.align 8
	.type	sao_str_convert, @object
	.size	sao_str_convert, 8
sao_str_convert:
	.quad	sao_convert_default
	.globl	sao_eval
	.align 8
	.type	sao_eval, @object
	.size	sao_eval, 8
sao_eval:
	.quad	sao_eval_default
	.text
	.globl	sao_peek
	.type	sao_peek, @function
sao_peek:
.LFB37:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -12[rbp], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	je	.L218
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -12[rbp], eax
.L218:
	mov	eax, DWORD PTR -12[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE37:
	.size	sao_peek, .-sao_peek
	.globl	sao_read_list
	.type	sao_read_list, @function
sao_read_list:
.LFB38:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
	mov	QWORD PTR -16[rbp], rax
.L224:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	sao_load_expr
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	je	.L221
	mov	rax, QWORD PTR SAO_TAG_end[rip]
	cmp	QWORD PTR -8[rbp], rax
	jne	.L222
.L221:
	mov	rdx, QWORD PTR SAO_TAG_nil[rip]
	mov	rax, QWORD PTR -16[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	sao_reverse
	mov	QWORD PTR -24[rbp], rax
	nop
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
	cmp	QWORD PTR -24[rbp], rax
	jne	.L225
	jmp	.L227
.L222:
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	cons
	mov	QWORD PTR -16[rbp], rax
	jmp	.L224
.L227:
	mov	rdx, QWORD PTR SAO_TAG_nil[rip]
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
	mov	rsi, rdx
	mov	rdi, rax
	call	cons
	mov	QWORD PTR -24[rbp], rax
.L225:
	mov	rax, QWORD PTR -24[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE38:
	.size	sao_read_list, .-sao_read_list
	.section	.rodata
	.align 8
.LC76:
	.string	"String too long - maximum length %d characters"
	.align 8
.LC77:
	.string	"Symbol name too long - maximum length %d characters"
.LC78:
	.string	" \t,()[]{}\r\n"
.LC79:
	.string	" \t"
.LC80:
	.string	",({"
.LC81:
	.string	"\r\n,({"
	.text
	.globl	sao_load_expr
	.type	sao_load_expr, @function
sao_load_expr:
.LFB39:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 2168
	.cfi_offset 3, -24
	mov	QWORD PTR -2168[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
	mov	QWORD PTR -2136[rbp], rax
	jmp	.L229
.L264:
	cmp	DWORD PTR -2144[rbp], 125
	je	.L230
	cmp	DWORD PTR -2144[rbp], 125
	jg	.L231
	cmp	DWORD PTR -2144[rbp], 93
	jg	.L232
	cmp	DWORD PTR -2144[rbp], 0
	js	.L231
	cmp	DWORD PTR -2144[rbp], 93
	ja	.L231
	mov	eax, DWORD PTR -2144[rbp]
	lea	rdx, 0[0+rax*4]
	lea	rax, .L233[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L233[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L233:
	.long	.L236-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L236-.L233
	.long	.L239-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L239-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L236-.L233
	.long	.L231-.L233
	.long	.L238-.L233
	.long	.L235-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L237-.L233
	.long	.L230-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L236-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L235-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L231-.L233
	.long	.L234-.L233
	.long	.L231-.L233
	.long	.L230-.L233
	.text
.L232:
	cmp	DWORD PTR -2144[rbp], 123
	je	.L240
	jmp	.L231
.L239:
	mov	rax, QWORD PTR -2168[rbp]
	mov	rdi, rax
	call	sao_read_line
	jmp	.L229
.L236:
	cmp	QWORD PTR -2136[rbp], 0
	jne	.L268
	jmp	.L229
.L235:
	mov	DWORD PTR -2160[rbp], 0
	jmp	.L243
.L245:
	mov	rax, QWORD PTR -2168[rbp]
	mov	rdi, rax
	call	sao_deq_c
	mov	DWORD PTR -2160[rbp], eax
.L243:
	cmp	DWORD PTR -2160[rbp], 10
	je	.L229
	cmp	DWORD PTR -2160[rbp], -1
	jne	.L245
	jmp	.L229
.L238:
	mov	QWORD PTR -2080[rbp], 0
	mov	QWORD PTR -2072[rbp], 0
	lea	rdx, -2064[rbp]
	mov	eax, 0
	mov	ecx, 254
	mov	rdi, rdx
	rep stosq
	mov	DWORD PTR -2152[rbp], 0
.L252:
	cmp	DWORD PTR -2152[rbp], 2047
	jle	.L246
	lea	rsi, .LC51[rip]
	mov	edi, 0
	call	libc_
	mov	rbx, rax
	lea	rsi, .LC15[rip]
	mov	edi, 36
	call	libc_
	mov	edx, 2048
	lea	rsi, .LC76[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rbx
	lea	rsi, .LC51[rip]
	mov	edi, 0
	call	libc_
	mov	rbx, rax
	lea	rsi, .LC15[rip]
	mov	edi, 36
	call	libc_
	lea	rsi, .LC53[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rbx
	lea	rsi, .LC54[rip]
	mov	edi, 38
	call	libc_
	mov	rdx, rax
	mov	edi, 1
	mov	eax, 0
	call	rdx
.L246:
	mov	rax, QWORD PTR -2168[rbp]
	mov	rdi, rax
	call	sao_deq_c
	mov	DWORD PTR -2156[rbp], eax
	cmp	DWORD PTR -2156[rbp], -1
	jne	.L247
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
	jmp	.L253
.L247:
	cmp	DWORD PTR -2156[rbp], 34
	je	.L269
	cmp	DWORD PTR -2156[rbp], 92
	jne	.L251
	mov	rax, QWORD PTR -2168[rbp]
	mov	rdi, rax
	call	sao_peek
	cmp	eax, 34
	jne	.L251
	mov	rax, QWORD PTR -2168[rbp]
	mov	rdi, rax
	call	sao_deq_c
	mov	DWORD PTR -2156[rbp], eax
.L251:
	mov	eax, DWORD PTR -2152[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -2152[rbp], edx
	mov	edx, DWORD PTR -2156[rbp]
	cdqe
	mov	BYTE PTR -2080[rbp+rax], dl
	jmp	.L252
.L269:
	nop
	mov	QWORD PTR -2112[rbp], 0
	mov	QWORD PTR -2104[rbp], 0
	mov	QWORD PTR -2096[rbp], 0
	mov	QWORD PTR -2088[rbp], 0
	mov	DWORD PTR -2112[rbp], 5
	lea	rax, -2080[rbp]
	mov	QWORD PTR -2096[rbp], rax
	push	QWORD PTR -2088[rbp]
	push	QWORD PTR -2096[rbp]
	push	QWORD PTR -2104[rbp]
	push	QWORD PTR -2112[rbp]
	call	sao_new
	add	rsp, 32
	jmp	.L253
.L230:
	mov	rax, QWORD PTR SAO_TAG_end[rip]
	jmp	.L253
.L240:
	mov	rax, QWORD PTR -2168[rbp]
	mov	rdi, rax
	call	sao_read_list
	mov	rdx, rax
	mov	rax, QWORD PTR SAO_TAG_map[rip]
	mov	rsi, rdx
	mov	rdi, rax
	call	cons
	jmp	.L253
.L234:
	mov	rax, QWORD PTR -2168[rbp]
	mov	rdi, rax
	call	sao_read_list
	mov	rdx, rax
	mov	rax, QWORD PTR SAO_TAG_vector[rip]
	mov	rsi, rdx
	mov	rdi, rax
	call	cons
	jmp	.L253
.L237:
	mov	rax, QWORD PTR -2168[rbp]
	mov	rdi, rax
	call	sao_read_list
	mov	QWORD PTR -2128[rbp], rax
	cmp	QWORD PTR -2136[rbp], 0
	jne	.L254
	mov	rax, QWORD PTR -2128[rbp]
	jmp	.L253
.L254:
	mov	rdx, QWORD PTR -2128[rbp]
	mov	rax, QWORD PTR -2136[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	cons
	mov	QWORD PTR -2120[rbp], rax
	mov	rax, QWORD PTR -2120[rbp]
	jmp	.L253
.L231:
	lea	rdx, -2080[rbp]
	mov	eax, 0
	mov	ecx, 256
	mov	rdi, rdx
	rep stosq
	mov	eax, DWORD PTR -2144[rbp]
	mov	BYTE PTR -2080[rbp], al
	mov	DWORD PTR -2148[rbp], 1
	jmp	.L255
.L257:
	cmp	DWORD PTR -2148[rbp], 2047
	jle	.L256
	lea	rsi, .LC51[rip]
	mov	edi, 0
	call	libc_
	mov	rbx, rax
	lea	rsi, .LC15[rip]
	mov	edi, 36
	call	libc_
	mov	edx, 2048
	lea	rsi, .LC77[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rbx
	lea	rsi, .LC51[rip]
	mov	edi, 0
	call	libc_
	mov	rbx, rax
	lea	rsi, .LC15[rip]
	mov	edi, 36
	call	libc_
	lea	rsi, .LC53[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rbx
	lea	rsi, .LC54[rip]
	mov	edi, 38
	call	libc_
	mov	rdx, rax
	mov	edi, 1
	mov	eax, 0
	call	rdx
.L256:
	mov	rax, QWORD PTR -2168[rbp]
	mov	rdi, rax
	call	sao_deq_c
	mov	ecx, eax
	mov	eax, DWORD PTR -2148[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -2148[rbp], edx
	mov	edx, ecx
	cdqe
	mov	BYTE PTR -2080[rbp+rax], dl
.L255:
	mov	rax, QWORD PTR -2168[rbp]
	mov	rdi, rax
	call	sao_peek
	mov	DWORD PTR -2140[rbp], eax
	mov	rdx, QWORD PTR sao_strchr[rip]
	mov	eax, DWORD PTR -2140[rbp]
	mov	esi, eax
	lea	rdi, .LC78[rip]
	mov	eax, 0
	call	rdx
	test	eax, eax
	je	.L257
	mov	rdx, QWORD PTR sao_str_convert[rip]
	lea	rax, -2080[rbp]
	mov	rdi, rax
	call	rdx
	mov	QWORD PTR -2136[rbp], rax
	jmp	.L258
.L259:
	mov	rax, QWORD PTR -2168[rbp]
	mov	rdi, rax
	call	sao_deq_c
.L258:
	mov	rax, QWORD PTR -2168[rbp]
	mov	rdi, rax
	call	sao_peek
	mov	DWORD PTR -2140[rbp], eax
	mov	rdx, QWORD PTR sao_strchr[rip]
	mov	eax, DWORD PTR -2140[rbp]
	mov	esi, eax
	lea	rdi, .LC79[rip]
	mov	eax, 0
	call	rdx
	test	eax, eax
	jne	.L259
	mov	rbx, QWORD PTR sao_strchr[rip]
	mov	rax, QWORD PTR -2168[rbp]
	mov	rdi, rax
	call	sao_peek
	mov	edx, eax
	mov	eax, DWORD PTR argta[rip]
	test	eax, eax
	je	.L260
	lea	rax, .LC80[rip]
	jmp	.L261
.L260:
	lea	rax, .LC81[rip]
.L261:
	mov	esi, edx
	mov	rdi, rax
	mov	eax, 0
	call	rbx
	test	eax, eax
	je	.L270
	jmp	.L229
.L268:
	nop
	jmp	.L270
.L229:
	mov	rax, QWORD PTR -2168[rbp]
	mov	rdi, rax
	call	sao_deq_c
	mov	DWORD PTR -2144[rbp], eax
	cmp	DWORD PTR -2144[rbp], -1
	jne	.L264
	jmp	.L263
.L270:
	nop
.L263:
	mov	rax, QWORD PTR -2136[rbp]
.L253:
	mov	rcx, QWORD PTR -24[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L265
	call	__stack_chk_fail@PLT
.L265:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE39:
	.size	sao_load_expr, .-sao_load_expr
	.globl	ctype_names
	.section	.rodata
.LC82:
	.string	"int"
.LC83:
	.string	"float"
.LC84:
	.string	"i64"
.LC85:
	.string	"u64"
.LC86:
	.string	"struct"
.LC87:
	.string	"pointer"
	.section	.data.rel.local
	.align 32
	.type	ctype_names, @object
	.size	ctype_names, 72
ctype_names:
	.quad	.LC45
	.quad	.LC46
	.quad	.LC82
	.quad	.LC83
	.quad	.LC84
	.quad	.LC85
	.quad	.LC48
	.quad	.LC86
	.quad	.LC87
	.globl	SAO_TAG_true
	.bss
	.align 8
	.type	SAO_TAG_true, @object
	.size	SAO_TAG_true, 8
SAO_TAG_true:
	.zero	8
	.globl	SAO_TAG_false
	.align 8
	.type	SAO_TAG_false, @object
	.size	SAO_TAG_false, 8
SAO_TAG_false:
	.zero	8
	.globl	SAO_TAG_set
	.align 8
	.type	SAO_TAG_set, @object
	.size	SAO_TAG_set, 8
SAO_TAG_set:
	.zero	8
	.globl	SAO_TAG_if
	.align 8
	.type	SAO_TAG_if, @object
	.size	SAO_TAG_if, 8
SAO_TAG_if:
	.zero	8
	.globl	SAO_TAG_lambda
	.align 8
	.type	SAO_TAG_lambda, @object
	.size	SAO_TAG_lambda, 8
SAO_TAG_lambda:
	.zero	8
	.globl	SAO_TAG_procedure
	.align 8
	.type	SAO_TAG_procedure, @object
	.size	SAO_TAG_procedure, 8
SAO_TAG_procedure:
	.zero	8
	.globl	SAO_TAG_nilnil
	.align 8
	.type	SAO_TAG_nilnil, @object
	.size	SAO_TAG_nilnil, 8
SAO_TAG_nilnil:
	.zero	8
	.section	.rodata
.LC88:
	.string	"<closure>"
.LC89:
	.string	"["
.LC90:
	.string	"]"
.LC91:
	.string	"<ctype>"
.LC92:
	.string	"<native>"
.LC93:
	.string	"<TODO _%d>"
	.text
	.globl	_sao_print
	.type	_sao_print, @function
_sao_print:
.LFB40:
	.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
	cmp	QWORD PTR -48[rbp], 0
	jne	.L272
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	sao_print_default
	jmp	.L271
.L272:
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L274
	test	eax, eax
	js	.L275
	sub	eax, 2
	cmp	eax, 3
	ja	.L275
	jmp	.L276
.L274:
	mov	rbx, QWORD PTR SAO_TAG_procedure[rip]
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	car
	mov	rsi, rbx
	mov	rdi, rax
	call	sao_is_eq
	test	rax, rax
	je	.L276
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	lea	rdi, .LC88[rip]
	mov	eax, 0
	call	rdx
	jmp	.L271
.L276:
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	sao_print_default
	jmp	.L271
.L275:
	cmp	QWORD PTR -40[rbp], 0
	je	.L277
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	rdx
.L277:
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 7
	je	.L278
	cmp	eax, 7
	jg	.L279
	cmp	eax, 1
	je	.L280
	cmp	eax, 6
	je	.L281
	jmp	.L279
.L280:
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	lea	rdi, .LC89[rip]
	mov	eax, 0
	call	rdx
	mov	DWORD PTR -20[rbp], 0
	jmp	.L282
.L284:
	mov	rdx, QWORD PTR sao_print[rip]
	mov	rax, QWORD PTR -48[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 3
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	rsi, rax
	mov	edi, 0
	call	rdx
	mov	eax, DWORD PTR -20[rbp]
	add	eax, 1
	movsx	rdx, eax
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rdx, rax
	jge	.L283
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	lea	rdi, .LC72[rip]
	mov	eax, 0
	call	rdx
.L283:
	add	DWORD PTR -20[rbp], 1
.L282:
	mov	eax, DWORD PTR -20[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rdx, rax
	jl	.L284
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	lea	rdi, .LC90[rip]
	mov	eax, 0
	call	rdx
	jmp	.L271
.L281:
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	lea	rdi, .LC91[rip]
	mov	eax, 0
	call	rdx
	jmp	.L271
.L278:
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	lea	rdi, .LC92[rip]
	mov	eax, 0
	call	rdx
	jmp	.L271
.L279:
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	mov	esi, eax
	lea	rdi, .LC93[rip]
	mov	eax, 0
	call	rdx
.L271:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE40:
	.size	_sao_print, .-_sao_print
	.globl	sao_not_false
	.type	sao_not_false, @function
sao_not_false:
.LFB41:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	je	.L286
	mov	rdx, QWORD PTR SAO_TAG_false[rip]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	sao_is_eq
	test	rax, rax
	je	.L287
.L286:
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L288
.L287:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	jne	.L288
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	jne	.L288
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
	mov	QWORD PTR -8[rbp], rax
.L288:
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE41:
	.size	sao_not_false, .-sao_not_false
	.globl	sao_eval_list_r
	.type	sao_eval_list_r, @function
sao_eval_list_r:
.LFB42:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -24[rbp], rax
	jmp	.L291
.L292:
	mov	rbx, QWORD PTR sao_eval[rip]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	rbx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -24[rbp], rax
.L291:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cdr
	test	rax, rax
	jne	.L292
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE42:
	.size	sao_eval_list_r, .-sao_eval_list_r
	.globl	sao_eval_list
	.type	sao_eval_list, @function
sao_eval_list:
.LFB43:
	.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
	cmp	QWORD PTR -40[rbp], 0
	jne	.L295
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
	jmp	.L296
.L295:
	mov	rbx, QWORD PTR sao_eval[rip]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	car
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	rbx
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	cdr
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	sao_eval_list
	mov	QWORD PTR -24[rbp], rax
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	cons
.L296:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE43:
	.size	sao_eval_list, .-sao_eval_list
	.globl	sao_get_var
	.type	sao_get_var, @function
sao_get_var:
.LFB44:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	jmp	.L298
.L303:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	car
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	car
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -16[rbp], rax
	jmp	.L299
.L302:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	sao_is_eq
	test	rax, rax
	je	.L300
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	car
	jmp	.L301
.L300:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -16[rbp], rax
.L299:
	cmp	QWORD PTR -24[rbp], 0
	jne	.L302
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -48[rbp], rax
.L298:
	cmp	QWORD PTR -48[rbp], 0
	jne	.L303
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
.L301:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE44:
	.size	sao_get_var, .-sao_get_var
	.globl	sao_set
	.type	sao_set, @function
sao_set:
.LFB45:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -56[rbp], rdx
	jmp	.L305
.L310:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	car
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	car
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -16[rbp], rax
	jmp	.L306
.L309:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	sao_is_eq
	test	rax, rax
	je	.L307
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR -48[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	car
	jmp	.L308
.L307:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -16[rbp], rax
.L306:
	cmp	QWORD PTR -24[rbp], 0
	jne	.L309
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -56[rbp], rax
.L305:
	cmp	QWORD PTR -56[rbp], 0
	jne	.L310
	mov	rax, QWORD PTR -48[rbp]
.L308:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE45:
	.size	sao_set, .-sao_set
	.section	.rodata
.LC94:
	.string	"vector len > 512..."
.LC95:
	.string	"TODO map..."
	.text
	.globl	_sao_eval
	.type	_sao_eval, @function
_sao_eval:
.LFB46:
	.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, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 160
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	mov	QWORD PTR -4264[rbp], rdi
	mov	QWORD PTR -4272[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
.L312:
	cmp	QWORD PTR -4264[rbp], 0
	jne	.L313
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
	jmp	.L314
.L313:
	mov	rax, QWORD PTR -4264[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 5
	ja	.L315
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L317[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L317[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L317:
	.long	.L320-.L317
	.long	.L319-.L317
	.long	.L351-.L317
	.long	.L351-.L317
	.long	.L318-.L317
	.long	.L351-.L317
	.text
.L319:
	mov	QWORD PTR -4160[rbp], 0
	mov	QWORD PTR -4152[rbp], 0
	mov	QWORD PTR -4144[rbp], 0
	mov	QWORD PTR -4136[rbp], 0
	mov	DWORD PTR -4160[rbp], 1
	mov	rax, QWORD PTR -4264[rbp]
	mov	rax, QWORD PTR 24[rax]
	sal	rax, 3
	mov	rdi, rax
	call	sao_calloc
	mov	QWORD PTR -4144[rbp], rax
	mov	rax, QWORD PTR -4264[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -4136[rbp], rax
	push	QWORD PTR -4136[rbp]
	push	QWORD PTR -4144[rbp]
	push	QWORD PTR -4152[rbp]
	push	QWORD PTR -4160[rbp]
	call	sao_new
	add	rsp, 32
	mov	QWORD PTR -4216[rbp], rax
	mov	DWORD PTR -4244[rbp], 0
	jmp	.L321
.L322:
	mov	rcx, QWORD PTR sao_eval[rip]
	mov	rax, QWORD PTR -4264[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -4244[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR -4216[rbp]
	mov	rsi, QWORD PTR 16[rdx]
	mov	edx, DWORD PTR -4244[rbp]
	movsx	rdx, edx
	sal	rdx, 3
	lea	rbx, [rsi+rdx]
	mov	rdx, QWORD PTR -4272[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
	mov	QWORD PTR [rbx], rax
	add	DWORD PTR -4244[rbp], 1
.L321:
	mov	eax, DWORD PTR -4244[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -4264[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rdx, rax
	jl	.L322
	mov	rax, QWORD PTR -4216[rbp]
	jmp	.L314
.L318:
	mov	rdx, QWORD PTR -4272[rbp]
	mov	rax, QWORD PTR -4264[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	sao_get_var
	jmp	.L314
.L320:
	mov	rax, QWORD PTR -4264[rbp]
	mov	rdi, rax
	call	car
	mov	QWORD PTR -4208[rbp], rax
	mov	rdx, QWORD PTR SAO_TAG_nilnil[rip]
	mov	rax, QWORD PTR -4208[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	sao_is_eq
	test	rax, rax
	je	.L323
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
	jmp	.L314
.L323:
	mov	rax, QWORD PTR -4264[rbp]
	mov	rdi, rax
	call	cadr
	mov	QWORD PTR -4200[rbp], rax
	mov	rax, QWORD PTR -4264[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -4232[rbp], rax
	cmp	QWORD PTR -4208[rbp], 0
	jne	.L324
	mov	rdx, QWORD PTR -4272[rbp]
	mov	rax, QWORD PTR -4232[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	sao_eval_list
	mov	rdx, rax
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
	mov	rsi, rdx
	mov	rdi, rax
	call	cons
	jmp	.L314
.L324:
	mov	rdx, QWORD PTR SAO_TAG_quote[rip]
	mov	rax, QWORD PTR -4208[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	sao_is_eq
	test	rax, rax
	je	.L325
	mov	rax, QWORD PTR -4200[rbp]
	jmp	.L314
.L325:
	mov	rdx, QWORD PTR SAO_TAG_vector[rip]
	mov	rax, QWORD PTR -4208[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	sao_is_eq
	test	rax, rax
	je	.L326
	mov	DWORD PTR -4240[rbp], 0
.L330:
	mov	rax, QWORD PTR -4232[rbp]
	mov	rdi, rax
	call	car
	test	rax, rax
	je	.L352
	mov	ebx, DWORD PTR -4240[rbp]
	lea	eax, 1[rbx]
	mov	DWORD PTR -4240[rbp], eax
	mov	rax, QWORD PTR -4232[rbp]
	mov	rdi, rax
	call	car
	movsx	rdx, ebx
	mov	QWORD PTR -4128[rbp+rdx*8], rax
	cmp	DWORD PTR -4240[rbp], 511
	jle	.L329
	lea	rsi, .LC51[rip]
	mov	edi, 0
	call	libc_
	mov	rbx, rax
	lea	rsi, .LC15[rip]
	mov	edi, 36
	call	libc_
	lea	rsi, .LC94[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rbx
	lea	rsi, .LC51[rip]
	mov	edi, 0
	call	libc_
	mov	rbx, rax
	lea	rsi, .LC15[rip]
	mov	edi, 36
	call	libc_
	lea	rsi, .LC53[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rbx
	lea	rsi, .LC54[rip]
	mov	edi, 38
	call	libc_
	mov	rdx, rax
	mov	edi, 1
	mov	eax, 0
	call	rdx
.L329:
	mov	rax, QWORD PTR -4232[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -4232[rbp], rax
	jmp	.L330
.L352:
	nop
	mov	QWORD PTR -4160[rbp], 0
	mov	QWORD PTR -4152[rbp], 0
	mov	QWORD PTR -4144[rbp], 0
	mov	QWORD PTR -4136[rbp], 0
	mov	DWORD PTR -4160[rbp], 1
	mov	eax, DWORD PTR -4240[rbp]
	cdqe
	sal	rax, 3
	mov	rdi, rax
	call	sao_calloc
	mov	QWORD PTR -4144[rbp], rax
	mov	eax, DWORD PTR -4240[rbp]
	cdqe
	mov	QWORD PTR -4136[rbp], rax
	push	QWORD PTR -4136[rbp]
	push	QWORD PTR -4144[rbp]
	push	QWORD PTR -4152[rbp]
	push	QWORD PTR -4160[rbp]
	call	sao_new
	add	rsp, 32
	mov	QWORD PTR -4168[rbp], rax
	mov	DWORD PTR -4236[rbp], 0
	jmp	.L331
.L332:
	mov	rax, QWORD PTR -4168[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -4236[rbp]
	cdqe
	sal	rax, 3
	add	rdx, rax
	mov	eax, DWORD PTR -4236[rbp]
	cdqe
	mov	rax, QWORD PTR -4128[rbp+rax*8]
	mov	QWORD PTR [rdx], rax
	add	DWORD PTR -4236[rbp], 1
.L331:
	mov	eax, DWORD PTR -4236[rbp]
	cmp	eax, DWORD PTR -4240[rbp]
	jl	.L332
	mov	rax, QWORD PTR -4168[rbp]
	jmp	.L314
.L326:
	mov	rdx, QWORD PTR SAO_TAG_map[rip]
	mov	rax, QWORD PTR -4208[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	sao_is_eq
	test	rax, rax
	je	.L333
	lea	rsi, .LC51[rip]
	mov	edi, 0
	call	libc_
	mov	rbx, rax
	lea	rsi, .LC15[rip]
	mov	edi, 36
	call	libc_
	lea	rsi, .LC95[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rbx
	lea	rsi, .LC51[rip]
	mov	edi, 0
	call	libc_
	mov	rbx, rax
	lea	rsi, .LC15[rip]
	mov	edi, 36
	call	libc_
	lea	rsi, .LC53[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rbx
	lea	rsi, .LC54[rip]
	mov	edi, 38
	call	libc_
	mov	rdx, rax
	mov	edi, 1
	mov	eax, 0
	call	rdx
	jmp	.L315
.L333:
	mov	rdx, QWORD PTR SAO_TAG_lambda[rip]
	mov	rax, QWORD PTR -4208[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	sao_is_eq
	test	rax, rax
	je	.L334
	mov	rax, QWORD PTR -4264[rbp]
	mov	rdi, rax
	call	cddr
	mov	QWORD PTR -4176[rbp], rax
	mov	rdx, QWORD PTR SAO_TAG_nil[rip]
	mov	rax, QWORD PTR -4272[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	cons
	mov	rdx, rax
	mov	rax, QWORD PTR -4176[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	cons
	mov	rdx, rax
	mov	rax, QWORD PTR -4200[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	cons
	mov	rdx, rax
	mov	rax, QWORD PTR SAO_TAG_procedure[rip]
	mov	rsi, rdx
	mov	rdi, rax
	call	cons
	jmp	.L314
.L334:
	mov	rdx, QWORD PTR SAO_TAG_at[rip]
	mov	rax, QWORD PTR -4208[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	sao_is_eq
	test	rax, rax
	je	.L335
	cmp	QWORD PTR -4200[rbp], 0
	je	.L336
	mov	rax, QWORD PTR -4200[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L336
	mov	rbx, QWORD PTR sao_eval[rip]
	mov	rax, QWORD PTR -4264[rbp]
	mov	rdi, rax
	call	caddr
	mov	rdx, rax
	mov	rax, QWORD PTR -4272[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	rbx
	mov	rcx, rax
	mov	rdx, QWORD PTR -4272[rbp]
	mov	rax, QWORD PTR -4200[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	sao_var
	jmp	.L337
.L336:
	mov	rbx, QWORD PTR sao_eval[rip]
	mov	rax, QWORD PTR -4264[rbp]
	mov	rdi, rax
	call	cddr
	mov	r12, rax
	mov	rax, QWORD PTR -4200[rbp]
	mov	rdi, rax
	call	cdr
	mov	rsi, r12
	mov	rdi, rax
	call	cons
	mov	rdx, rax
	mov	rax, QWORD PTR SAO_TAG_lambda[rip]
	mov	rsi, rdx
	mov	rdi, rax
	call	cons
	mov	rdx, rax
	mov	rax, QWORD PTR -4272[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	rbx
	mov	rbx, rax
	mov	rax, QWORD PTR -4200[rbp]
	mov	rdi, rax
	call	car
	mov	rcx, rax
	mov	rax, QWORD PTR -4272[rbp]
	mov	rdx, rax
	mov	rsi, rbx
	mov	rdi, rcx
	call	sao_var
.L337:
	mov	rax, QWORD PTR SAO_TAG_true[rip]
	jmp	.L314
.L335:
	mov	rdx, QWORD PTR SAO_TAG_set[rip]
	mov	rax, QWORD PTR -4208[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	sao_is_eq
	test	rax, rax
	je	.L338
	cmp	QWORD PTR -4200[rbp], 0
	je	.L339
	mov	rax, QWORD PTR -4200[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L339
	mov	rbx, QWORD PTR sao_eval[rip]
	mov	rax, QWORD PTR -4264[rbp]
	mov	rdi, rax
	call	caddr
	mov	rdx, rax
	mov	rax, QWORD PTR -4272[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	rbx
	mov	rcx, rax
	mov	rdx, QWORD PTR -4272[rbp]
	mov	rax, QWORD PTR -4200[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	sao_set
	jmp	.L340
.L339:
	mov	rbx, QWORD PTR sao_eval[rip]
	mov	rax, QWORD PTR -4264[rbp]
	mov	rdi, rax
	call	cddr
	mov	r12, rax
	mov	rax, QWORD PTR -4200[rbp]
	mov	rdi, rax
	call	cdr
	mov	rsi, r12
	mov	rdi, rax
	call	cons
	mov	rdx, rax
	mov	rax, QWORD PTR SAO_TAG_lambda[rip]
	mov	rsi, rdx
	mov	rdi, rax
	call	cons
	mov	rdx, rax
	mov	rax, QWORD PTR -4272[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	rbx
	mov	rbx, rax
	mov	rax, QWORD PTR -4200[rbp]
	mov	rdi, rax
	call	car
	mov	rcx, rax
	mov	rax, QWORD PTR -4272[rbp]
	mov	rdx, rax
	mov	rsi, rbx
	mov	rdi, rcx
	call	sao_set
.L340:
	mov	rax, QWORD PTR SAO_TAG_true[rip]
	jmp	.L314
.L338:
	mov	rdx, QWORD PTR SAO_TAG_begin[rip]
	mov	rax, QWORD PTR -4208[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	sao_is_eq
	test	rax, rax
	je	.L341
	mov	rdx, QWORD PTR -4272[rbp]
	mov	rax, QWORD PTR -4264[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	sao_eval_list_r
	mov	QWORD PTR -4264[rbp], rax
	jmp	.L312
.L341:
	mov	rdx, QWORD PTR SAO_TAG_if[rip]
	mov	rax, QWORD PTR -4208[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	sao_is_eq
	test	rax, rax
	je	.L342
	mov	rcx, QWORD PTR sao_eval[rip]
	mov	rdx, QWORD PTR -4272[rbp]
	mov	rax, QWORD PTR -4200[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
	mov	rdi, rax
	call	sao_not_false
	test	rax, rax
	je	.L343
	mov	rax, QWORD PTR -4264[rbp]
	mov	rdi, rax
	call	caddr
	jmp	.L344
.L343:
	mov	rax, QWORD PTR -4264[rbp]
	mov	rdi, rax
	call	cadddr
.L344:
	mov	QWORD PTR -4264[rbp], rax
	jmp	.L312
.L342:
	mov	rcx, QWORD PTR sao_eval[rip]
	mov	rdx, QWORD PTR -4272[rbp]
	mov	rax, QWORD PTR -4208[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
	mov	QWORD PTR -4192[rbp], rax
	cmp	QWORD PTR -4192[rbp], 0
	je	.L353
	mov	rax, QWORD PTR -4264[rbp]
	mov	rdi, rax
	call	cdr
	mov	rdx, rax
	mov	rax, QWORD PTR -4272[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	sao_eval_list
	mov	QWORD PTR -4184[rbp], rax
	mov	rax, QWORD PTR -4192[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 7
	jne	.L346
	mov	rax, QWORD PTR -4192[rbp]
	mov	rcx, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR -4272[rbp]
	mov	rax, QWORD PTR -4184[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
	jmp	.L314
.L346:
	mov	rdx, QWORD PTR SAO_TAG_at[rip]
	mov	rax, QWORD PTR -4192[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	sao_is_eq
	test	rax, rax
	je	.L347
	mov	rax, QWORD PTR SAO_TAG_at[rip]
	mov	rdx, QWORD PTR -4232[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	cons
	mov	QWORD PTR -4264[rbp], rax
	jmp	.L312
.L347:
	mov	rbx, QWORD PTR SAO_TAG_procedure[rip]
	mov	rax, QWORD PTR -4192[rbp]
	mov	rdi, rax
	call	car
	mov	rsi, rbx
	mov	rdi, rax
	call	sao_is_eq
	test	rax, rax
	je	.L315
	mov	rax, QWORD PTR -4192[rbp]
	mov	rdi, rax
	call	cadr
	mov	QWORD PTR -4224[rbp], rax
	mov	rax, QWORD PTR -4224[rbp]
	mov	rdi, rax
	call	car
	test	rax, rax
	jne	.L348
	mov	rax, QWORD PTR -4224[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -4224[rbp], rax
.L348:
	mov	rax, QWORD PTR -4192[rbp]
	mov	rdi, rax
	call	cadddr
	mov	rbx, rax
	mov	rdx, QWORD PTR -4184[rbp]
	mov	rax, QWORD PTR -4224[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	cons
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	QWORD PTR -4272[rbp], rax
	mov	rax, QWORD PTR -4192[rbp]
	mov	rdi, rax
	call	caddr
	mov	rdx, rax
	mov	rax, QWORD PTR SAO_TAG_begin[rip]
	mov	rsi, rdx
	mov	rdi, rax
	call	cons
	mov	QWORD PTR -4264[rbp], rax
	jmp	.L312
.L351:
	nop
	jmp	.L315
.L353:
	nop
.L315:
	mov	rax, QWORD PTR -4264[rbp]
.L314:
	mov	rcx, QWORD PTR -24[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L349
	call	__stack_chk_fail@PLT
.L349:
	lea	rsp, -16[rbp]
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE46:
	.size	_sao_eval, .-_sao_eval
	.section	.rodata
	.align 8
.LC96:
	.string	"Invalid argument to function %s: SAO_TAG(nil)\n"
	.align 8
.LC97:
	.string	"ERR: function %s. expected %s got %s\n"
	.text
	.globl	sao_type_assert
	.type	sao_type_assert, @function
sao_type_assert:
.LFB47:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r13
	push	r12
	push	rbx
	sub	rsp, 40
	.cfi_offset 13, -24
	.cfi_offset 12, -32
	.cfi_offset 3, -40
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	DWORD PTR -52[rbp], edx
	cmp	QWORD PTR -48[rbp], 0
	jne	.L355
	lea	rsi, .LC51[rip]
	mov	edi, 0
	call	libc_
	mov	rbx, rax
	lea	rsi, .LC15[rip]
	mov	edi, 36
	call	libc_
	mov	rcx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, rax
	lea	rsi, .LC96[rip]
	mov	rdi, rcx
	mov	eax, 0
	call	rbx
	lea	rsi, .LC51[rip]
	mov	edi, 0
	call	libc_
	mov	rbx, rax
	lea	rsi, .LC15[rip]
	mov	edi, 36
	call	libc_
	lea	rsi, .LC53[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rbx
	lea	rsi, .LC54[rip]
	mov	edi, 38
	call	libc_
	mov	rdx, rax
	mov	edi, 1
	mov	eax, 0
	call	rdx
	jmp	.L356
.L355:
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -52[rbp], eax
	je	.L356
	lea	rsi, .LC51[rip]
	mov	edi, 0
	call	libc_
	mov	rbx, rax
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, type_names[rip]
	mov	r13, QWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, type_names[rip]
	mov	r12, QWORD PTR [rdx+rax]
	lea	rsi, .LC15[rip]
	mov	edi, 36
	call	libc_
	mov	rdi, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	r8, r13
	mov	rcx, r12
	mov	rdx, rax
	lea	rsi, .LC97[rip]
	mov	eax, 0
	call	rbx
	lea	rsi, .LC51[rip]
	mov	edi, 0
	call	libc_
	mov	rbx, rax
	lea	rsi, .LC15[rip]
	mov	edi, 36
	call	libc_
	lea	rsi, .LC53[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rbx
	lea	rsi, .LC54[rip]
	mov	edi, 38
	call	libc_
	mov	rdx, rax
	mov	edi, 1
	mov	eax, 0
	call	rdx
.L356:
	mov	rax, QWORD PTR -48[rbp]
	add	rsp, 40
	pop	rbx
	pop	r12
	pop	r13
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE47:
	.size	sao_type_assert, .-sao_type_assert
	.globl	native_type
	.type	native_type, @function
native_type:
.LFB48:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -32[rbp], 0
	mov	QWORD PTR -24[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	QWORD PTR -8[rbp], 0
	mov	DWORD PTR -32[rbp], 4
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	car
	mov	eax, DWORD PTR [rax]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, type_names[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	QWORD PTR -16[rbp], rax
	push	QWORD PTR -8[rbp]
	push	QWORD PTR -16[rbp]
	push	QWORD PTR -24[rbp]
	push	QWORD PTR -32[rbp]
	call	sao_new
	add	rsp, 32
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE48:
	.size	native_type, .-native_type
	.section	.rodata
.LC98:
	.string	"\nnative_debug.args="
.LC99:
	.string	"\nnative_debug.ctx="
.LC100:
	.string	"\nlong=%ld\n"
.LC101:
	.string	"\n native_debug TODO type(%d)"
.LC102:
	.string	"\n native_debug TODO no args"
	.text
	.globl	native_debug
	.type	native_debug, @function
native_debug:
.LFB49:
	.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	rdx, QWORD PTR sao_print[rip]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rax
	lea	rdi, .LC98[rip]
	call	rdx
	mov	rdx, QWORD PTR sao_print[rip]
	mov	rax, QWORD PTR -48[rbp]
	mov	rsi, rax
	lea	rdi, .LC99[rip]
	call	rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	car
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	je	.L361
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	jne	.L362
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rbx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	car
	mov	rax, QWORD PTR 24[rax]
	mov	rsi, rax
	lea	rdi, .LC100[rip]
	mov	eax, 0
	call	rbx
	jmp	.L363
.L362:
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	mov	esi, eax
	lea	rdi, .LC101[rip]
	mov	eax, 0
	call	rdx
	jmp	.L363
.L361:
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	lea	rdi, .LC102[rip]
	mov	eax, 0
	call	rdx
.L363:
	mov	rax, QWORD PTR SAO_TAG_true[rip]
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE49:
	.size	native_debug, .-native_debug
	.globl	native_list
	.type	native_list, @function
native_list:
.LFB50:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -8[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE50:
	.size	native_list, .-native_list
	.globl	native_cons
	.type	native_cons, @function
native_cons:
.LFB51:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 24
	.cfi_offset 3, -24
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cadr
	mov	rbx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE51:
	.size	native_cons, .-native_cons
	.globl	native_car
	.type	native_car, @function
native_car:
.LFB52:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	caar
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L370
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	QWORD PTR -8[rbp], rax
.L370:
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE52:
	.size	native_car, .-native_car
	.globl	native_cdr
	.type	native_cdr, @function
native_cdr:
.LFB53:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cdar
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L373
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -8[rbp], rax
.L373:
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE53:
	.size	native_cdr, .-native_cdr
	.globl	native_setcar
	.type	native_setcar, @function
native_setcar:
.LFB54:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 24
	.cfi_offset 3, -24
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	edx, 0
	mov	rsi, rax
	lea	rdi, __func__.8[rip]
	call	sao_type_assert
	mov	rax, QWORD PTR -24[rbp]
	mov	rbx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cadr
	mov	QWORD PTR 16[rbx], rax
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE54:
	.size	native_setcar, .-native_setcar
	.globl	native_setcdr
	.type	native_setcdr, @function
native_setcdr:
.LFB55:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 24
	.cfi_offset 3, -24
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	edx, 0
	mov	rsi, rax
	lea	rdi, __func__.7[rip]
	call	sao_type_assert
	mov	rax, QWORD PTR -24[rbp]
	mov	rbx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cadr
	mov	QWORD PTR 24[rbx], rax
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE55:
	.size	native_setcdr, .-native_setcdr
	.section	.rodata
.LC103:
	.string	"strlen"
.LC104:
	.string	"\n# DEBUG sao_is_empty="
.LC105:
	.string	"\n# DEBUG rt="
	.text
	.globl	sao_is_empty
	.type	sao_is_empty, @function
sao_is_empty:
.LFB56:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	jne	.L380
	mov	rax, QWORD PTR SAO_TAG_true[rip]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L381
.L380:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L382
	cmp	eax, 5
	je	.L383
	jmp	.L390
.L382:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	rdi, rax
	call	sao_is_empty
	test	rax, rax
	je	.L388
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cdr
	mov	rdi, rax
	call	sao_is_empty
	test	rax, rax
	je	.L389
	mov	rax, QWORD PTR SAO_TAG_true[rip]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L384
.L383:
	lea	rsi, .LC103[rip]
	mov	edi, 5
	call	libc_
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rdi, rax
	mov	eax, 0
	call	rdx
	test	rax, rax
	je	.L390
	mov	rax, QWORD PTR SAO_TAG_true[rip]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L390
.L388:
	nop
	jmp	.L390
.L389:
	nop
.L384:
.L390:
	nop
.L381:
	mov	rdx, QWORD PTR sao_print[rip]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rax
	lea	rdi, .LC104[rip]
	call	rdx
	mov	rdx, QWORD PTR sao_print[rip]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rax
	lea	rdi, .LC105[rip]
	call	rdx
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	lea	rdi, .LC53[rip]
	mov	eax, 0
	call	rdx
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE56:
	.size	sao_is_empty, .-sao_is_empty
	.section	.rodata
	.align 8
.LC106:
	.string	"native_is_empty.args must be list"
	.text
	.globl	native_is_empty
	.type	native_is_empty, @function
native_is_empty:
.LFB57:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 40
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	cmp	QWORD PTR -40[rbp], 0
	jne	.L392
	mov	rax, QWORD PTR SAO_TAG_true[rip]
	jmp	.L393
.L392:
	cmp	QWORD PTR -40[rbp], 0
	je	.L394
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L395
.L394:
	lea	rsi, .LC51[rip]
	mov	edi, 0
	call	libc_
	mov	rbx, rax
	lea	rsi, .LC15[rip]
	mov	edi, 36
	call	libc_
	lea	rsi, .LC106[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rbx
	lea	rsi, .LC51[rip]
	mov	edi, 0
	call	libc_
	mov	rbx, rax
	lea	rsi, .LC15[rip]
	mov	edi, 36
	call	libc_
	lea	rsi, .LC53[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rbx
	lea	rsi, .LC54[rip]
	mov	edi, 38
	call	libc_
	mov	rdx, rax
	mov	edi, 1
	mov	eax, 0
	call	rdx
.L395:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	car
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	sao_is_empty
	test	rax, rax
	jne	.L396
	mov	rax, QWORD PTR SAO_TAG_false[rip]
	jmp	.L393
.L396:
	mov	rax, QWORD PTR SAO_TAG_true[rip]
.L393:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE57:
	.size	native_is_empty, .-native_is_empty
	.globl	native__null
	.type	native__null, @function
native__null:
.LFB58:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE58:
	.size	native__null, .-native__null
	.globl	native__ctx
	.type	native__ctx, @function
native__ctx:
.LFB59:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -16[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE59:
	.size	native__ctx, .-native__ctx
	.globl	native_is_nil
	.type	native_is_nil, @function
native_is_nil:
.LFB60:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR SAO_TAG_false[rip]
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	jne	.L402
	mov	rax, QWORD PTR SAO_TAG_true[rip]
	mov	QWORD PTR -16[rbp], rax
	jmp	.L403
.L402:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L404
	mov	rax, QWORD PTR SAO_TAG_true[rip]
	mov	QWORD PTR -16[rbp], rax
	jmp	.L407
.L404:
	cmp	QWORD PTR -8[rbp], 0
	je	.L407
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L407
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	car
	test	rax, rax
	jne	.L407
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	cdr
	test	rax, rax
	jne	.L407
	mov	rax, QWORD PTR SAO_TAG_true[rip]
	mov	QWORD PTR -16[rbp], rax
.L407:
	nop
.L403:
	mov	rax, QWORD PTR -16[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE60:
	.size	native_is_nil, .-native_is_nil
	.globl	native_pairq
	.type	native_pairq, @function
native_pairq:
.LFB61:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	car
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L409
	mov	rax, QWORD PTR SAO_TAG_false[rip]
	jmp	.L410
.L409:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	caar
	test	rax, rax
	je	.L411
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	caar
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L411
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	cdar
	test	rax, rax
	je	.L411
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	cdar
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L411
	mov	rax, QWORD PTR SAO_TAG_true[rip]
	jmp	.L410
.L411:
	mov	rax, QWORD PTR SAO_TAG_false[rip]
.L410:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE61:
	.size	native_pairq, .-native_pairq
	.globl	native_is_list
	.type	native_is_list, @function
native_is_list:
.LFB62:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L414
	mov	rax, QWORD PTR SAO_TAG_false[rip]
	jmp	.L415
.L414:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	QWORD PTR -8[rbp], rax
	jmp	.L416
.L418:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L417
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L417
	mov	rax, QWORD PTR SAO_TAG_false[rip]
	jmp	.L415
.L417:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -8[rbp], rax
.L416:
	cmp	QWORD PTR -8[rbp], 0
	jne	.L418
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L419
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	native_pairq
	mov	rdx, QWORD PTR SAO_TAG_true[rip]
	cmp	rax, rdx
	je	.L419
	mov	rax, QWORD PTR SAO_TAG_true[rip]
	jmp	.L415
.L419:
	mov	rax, QWORD PTR SAO_TAG_false[rip]
.L415:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE62:
	.size	native_is_list, .-native_is_list
	.globl	native_atom
	.type	native_atom, @function
native_atom:
.LFB63:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	car
	test	rax, rax
	je	.L422
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	car
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L422
	mov	rax, QWORD PTR SAO_TAG_true[rip]
	jmp	.L424
.L422:
	mov	rax, QWORD PTR SAO_TAG_false[rip]
.L424:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE63:
	.size	native_atom, .-native_atom
	.section	.rodata
.LC107:
	.string	"<TODO native_cmp %d>"
	.text
	.globl	native_cmp
	.type	native_cmp, @function
native_cmp:
.LFB64:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	car
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	cadr
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -32[rbp], 0
	jne	.L426
	cmp	QWORD PTR -24[rbp], 0
	jne	.L427
	mov	rax, QWORD PTR SAO_TAG_true[rip]
	jmp	.L428
.L427:
	mov	rax, QWORD PTR SAO_TAG_false[rip]
	jmp	.L428
.L426:
	cmp	QWORD PTR -24[rbp], 0
	jne	.L429
	mov	rax, QWORD PTR SAO_TAG_false[rip]
	jmp	.L428
.L429:
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	je	.L430
	mov	rax, QWORD PTR SAO_TAG_false[rip]
	jmp	.L428
.L430:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	jne	.L431
	cmp	QWORD PTR -32[rbp], 0
	je	.L432
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	jmp	.L433
.L432:
	mov	eax, 0
.L433:
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	je	.L434
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	jmp	.L435
.L434:
	mov	eax, 0
.L435:
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rax, QWORD PTR -8[rbp]
	jne	.L436
	mov	rax, QWORD PTR SAO_TAG_true[rip]
	jmp	.L428
.L436:
	mov	rax, QWORD PTR SAO_TAG_false[rip]
	jmp	.L428
.L431:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 4
	jne	.L438
	mov	rcx, QWORD PTR sao_strcmp[rip]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rsi, rdx
	mov	rdi, rax
	mov	eax, 0
	call	rcx
	test	eax, eax
	jne	.L439
	mov	rax, QWORD PTR SAO_TAG_true[rip]
	jmp	.L428
.L439:
	mov	rax, QWORD PTR SAO_TAG_false[rip]
	jmp	.L428
.L438:
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	mov	esi, eax
	lea	rdi, .LC107[rip]
	mov	eax, 0
	call	rdx
	mov	rax, QWORD PTR SAO_TAG_false[rip]
.L428:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE64:
	.size	native_cmp, .-native_cmp
	.globl	native_same
	.type	native_same, @function
native_same:
.LFB65:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 72
	.cfi_offset 3, -24
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	cadr
	mov	rbx, rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	car
	mov	rsi, rbx
	mov	rdi, rax
	call	sao_is_eq
	test	rax, rax
	je	.L442
	mov	rax, QWORD PTR SAO_TAG_true[rip]
	jmp	.L443
.L442:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	car
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L444
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	cadr
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L444
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	car
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	cadr
	mov	QWORD PTR -40[rbp], rax
	jmp	.L445
.L448:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	car
	mov	rbx, rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	car
	mov	rsi, rbx
	mov	rdi, rax
	call	sao_is_eq
	test	rax, rax
	jne	.L446
	mov	rax, QWORD PTR SAO_TAG_false[rip]
	jmp	.L443
.L446:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -40[rbp], rax
.L445:
	cmp	QWORD PTR -48[rbp], 0
	je	.L447
	cmp	QWORD PTR -40[rbp], 0
	jne	.L448
.L447:
	mov	rax, QWORD PTR SAO_TAG_true[rip]
	jmp	.L443
.L444:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	car
	mov	eax, DWORD PTR [rax]
	cmp	eax, 1
	jne	.L449
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	cadr
	mov	eax, DWORD PTR [rax]
	cmp	eax, 1
	jne	.L449
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	car
	mov	rbx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	cadr
	mov	rax, QWORD PTR 24[rax]
	cmp	rbx, rax
	je	.L450
	mov	rax, QWORD PTR SAO_TAG_false[rip]
	jmp	.L443
.L450:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	car
	mov	rax, QWORD PTR 16[rax]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	cadr
	mov	rax, QWORD PTR 16[rax]
	mov	QWORD PTR -24[rbp], rax
	mov	DWORD PTR -52[rbp], 0
	mov	DWORD PTR -52[rbp], 0
	jmp	.L451
.L453:
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	lea	rcx, 0[0+rax*8]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	sao_is_eq
	test	rax, rax
	jne	.L452
	mov	rax, QWORD PTR SAO_TAG_false[rip]
	jmp	.L443
.L452:
	add	DWORD PTR -52[rbp], 1
.L451:
	mov	eax, DWORD PTR -52[rbp]
	movsx	rbx, eax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	car
	mov	rax, QWORD PTR 24[rax]
	cmp	rbx, rax
	jl	.L453
	mov	rax, QWORD PTR SAO_TAG_true[rip]
	jmp	.L443
.L449:
	mov	rax, QWORD PTR SAO_TAG_false[rip]
.L443:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE65:
	.size	native_same, .-native_same
	.globl	native_gt
	.type	native_gt, @function
native_gt:
.LFB66:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 24
	.cfi_offset 3, -24
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	edx, 2
	mov	rsi, rax
	lea	rdi, __func__.6[rip]
	call	sao_type_assert
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cadr
	mov	edx, 2
	mov	rsi, rax
	lea	rdi, __func__.6[rip]
	call	sao_type_assert
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	rbx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cadr
	mov	rax, QWORD PTR 24[rax]
	cmp	rbx, rax
	jle	.L455
	mov	rax, QWORD PTR SAO_TAG_true[rip]
	jmp	.L457
.L455:
	mov	rax, QWORD PTR SAO_TAG_false[rip]
.L457:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE66:
	.size	native_gt, .-native_gt
	.globl	native_lt
	.type	native_lt, @function
native_lt:
.LFB67:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 24
	.cfi_offset 3, -24
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	edx, 2
	mov	rsi, rax
	lea	rdi, __func__.5[rip]
	call	sao_type_assert
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cadr
	mov	edx, 2
	mov	rsi, rax
	lea	rdi, __func__.5[rip]
	call	sao_type_assert
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	rbx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cadr
	mov	rax, QWORD PTR 24[rax]
	cmp	rbx, rax
	jge	.L459
	mov	rax, QWORD PTR SAO_TAG_true[rip]
	jmp	.L461
.L459:
	mov	rax, QWORD PTR SAO_TAG_false[rip]
.L461:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE67:
	.size	native_lt, .-native_lt
	.globl	native_add
	.type	native_add, @function
native_add:
.LFB68:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	car
	mov	edx, 2
	mov	rsi, rax
	lea	rdi, __func__.4[rip]
	call	sao_type_assert
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	car
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -56[rbp], rax
	jmp	.L463
.L464:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	car
	mov	edx, 2
	mov	rsi, rax
	lea	rdi, __func__.4[rip]
	call	sao_type_assert
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	car
	mov	rax, QWORD PTR 24[rax]
	add	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -56[rbp], rax
.L463:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	car
	test	rax, rax
	jne	.L464
	mov	QWORD PTR -32[rbp], 0
	mov	QWORD PTR -24[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	QWORD PTR -8[rbp], 0
	mov	DWORD PTR -32[rbp], 2
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -8[rbp], rax
	push	QWORD PTR -8[rbp]
	push	QWORD PTR -16[rbp]
	push	QWORD PTR -24[rbp]
	push	QWORD PTR -32[rbp]
	call	sao_new
	add	rsp, 32
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE68:
	.size	native_add, .-native_add
	.globl	native_sub
	.type	native_sub, @function
native_sub:
.LFB69:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	car
	mov	edx, 2
	mov	rsi, rax
	lea	rdi, __func__.3[rip]
	call	sao_type_assert
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	car
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -56[rbp], rax
	jmp	.L467
.L468:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	car
	mov	edx, 2
	mov	rsi, rax
	lea	rdi, __func__.3[rip]
	call	sao_type_assert
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	car
	mov	rax, QWORD PTR 24[rax]
	sub	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -56[rbp], rax
.L467:
	cmp	QWORD PTR -56[rbp], 0
	jne	.L468
	mov	QWORD PTR -32[rbp], 0
	mov	QWORD PTR -24[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	QWORD PTR -8[rbp], 0
	mov	DWORD PTR -32[rbp], 2
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -8[rbp], rax
	push	QWORD PTR -8[rbp]
	push	QWORD PTR -16[rbp]
	push	QWORD PTR -24[rbp]
	push	QWORD PTR -32[rbp]
	call	sao_new
	add	rsp, 32
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE69:
	.size	native_sub, .-native_sub
	.globl	native_div
	.type	native_div, @function
native_div:
.LFB70:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	car
	mov	edx, 2
	mov	rsi, rax
	lea	rdi, __func__.2[rip]
	call	sao_type_assert
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	car
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -56[rbp], rax
	jmp	.L471
.L472:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	car
	mov	edx, 2
	mov	rsi, rax
	lea	rdi, __func__.2[rip]
	call	sao_type_assert
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	car
	mov	rcx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -40[rbp]
	cqo
	idiv	rcx
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -56[rbp], rax
.L471:
	cmp	QWORD PTR -56[rbp], 0
	jne	.L472
	mov	QWORD PTR -32[rbp], 0
	mov	QWORD PTR -24[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	QWORD PTR -8[rbp], 0
	mov	DWORD PTR -32[rbp], 2
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -8[rbp], rax
	push	QWORD PTR -8[rbp]
	push	QWORD PTR -16[rbp]
	push	QWORD PTR -24[rbp]
	push	QWORD PTR -32[rbp]
	call	sao_new
	add	rsp, 32
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE70:
	.size	native_div, .-native_div
	.section	.rodata
	.align 8
.LC108:
	.string	"WARN: mul() is not yet support type of (%d)\n"
	.align 8
.LC109:
	.string	"WARN: Matrix Calc is coming soon"
	.text
	.globl	native_mul
	.type	native_mul, @function
native_mul:
.LFB71:
	.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, 64
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	car
	mov	QWORD PTR -56[rbp], rax
	cmp	QWORD PTR -56[rbp], 0
	jne	.L475
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
	jmp	.L476
.L475:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	jne	.L477
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -72[rbp], rax
	jmp	.L478
.L482:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	car
	mov	QWORD PTR -56[rbp], rax
	cmp	QWORD PTR -56[rbp], 0
	je	.L485
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	je	.L481
	lea	rsi, .LC51[rip]
	mov	edi, 0
	call	libc_
	mov	rbx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	r12d, DWORD PTR [rax]
	lea	rsi, .LC15[rip]
	mov	edi, 36
	call	libc_
	mov	edx, r12d
	lea	rsi, .LC108[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rbx
	jmp	.L480
.L481:
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdx, QWORD PTR -64[rbp]
	imul	rax, rdx
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -72[rbp], rax
.L478:
	cmp	QWORD PTR -72[rbp], 0
	jne	.L482
	jmp	.L480
.L485:
	nop
.L480:
	mov	QWORD PTR -48[rbp], 0
	mov	QWORD PTR -40[rbp], 0
	mov	QWORD PTR -32[rbp], 0
	mov	QWORD PTR -24[rbp], 0
	mov	DWORD PTR -48[rbp], 2
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR -24[rbp], rax
	push	QWORD PTR -24[rbp]
	push	QWORD PTR -32[rbp]
	push	QWORD PTR -40[rbp]
	push	QWORD PTR -48[rbp]
	call	sao_new
	add	rsp, 32
	jmp	.L476
.L477:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 1
	jne	.L483
	lea	rsi, .LC51[rip]
	mov	edi, 0
	call	libc_
	mov	rbx, rax
	lea	rsi, .LC15[rip]
	mov	edi, 36
	call	libc_
	lea	rsi, .LC109[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rbx
	jmp	.L484
.L483:
	lea	rsi, .LC51[rip]
	mov	edi, 0
	call	libc_
	mov	rbx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	r12d, DWORD PTR [rax]
	lea	rsi, .LC15[rip]
	mov	edi, 36
	call	libc_
	mov	edx, r12d
	lea	rsi, .LC108[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rbx
.L484:
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
.L476:
	lea	rsp, -16[rbp]
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE71:
	.size	native_mul, .-native_mul
	.section	.rodata
.LC110:
	.string	"strcpy"
.LC111:
	.string	"strcat"
	.text
	.globl	sao_strcat
	.type	sao_strcat, @function
sao_strcat:
.LFB72:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r12
	push	rbx
	sub	rsp, 32
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	lea	rsi, .LC32[rip]
	mov	edi, 1
	call	libc_
	mov	rbx, rax
	lea	rsi, .LC103[rip]
	mov	edi, 5
	call	libc_
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	rdx
	mov	r12, rax
	lea	rsi, .LC103[rip]
	mov	edi, 5
	call	libc_
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	rdx
	add	rax, r12
	add	rax, 1
	mov	rdi, rax
	mov	eax, 0
	call	rbx
	mov	QWORD PTR -24[rbp], rax
	lea	rsi, .LC110[rip]
	mov	edi, 4
	call	libc_
	mov	rdx, rax
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	mov	eax, 0
	call	rdx
	lea	rsi, .LC111[rip]
	mov	edi, 9
	call	libc_
	mov	rdx, rax
	mov	rcx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	mov	eax, 0
	call	rdx
	mov	rax, QWORD PTR -24[rbp]
	add	rsp, 32
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE72:
	.size	sao_strcat, .-sao_strcat
	.section	.rodata
.LC112:
	.string	"system"
	.text
	.globl	native_shell
	.type	native_shell, @function
native_shell:
.LFB73:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -24[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	jmp	.L489
.L492:
	cmp	QWORD PTR -16[rbp], 0
	jne	.L490
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	QWORD PTR -16[rbp], rax
	jmp	.L491
.L490:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	sao_strcat
	mov	QWORD PTR -16[rbp], rax
.L491:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -24[rbp], rax
.L489:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L492
	cmp	QWORD PTR -16[rbp], 0
	je	.L493
	lea	rsi, .LC112[rip]
	mov	edi, 25
	call	libc_
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	rdx
.L493:
	mov	rax, QWORD PTR SAO_TAG_true[rip]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE73:
	.size	native_shell, .-native_shell
	.section	.rodata
.LC113:
	.string	"ffi todo"
	.text
	.globl	native_ffi
	.type	native_ffi, @function
native_ffi:
.LFB74:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rdx, QWORD PTR sao_print[rip]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rax
	lea	rdi, .LC113[rip]
	call	rdx
	mov	rax, QWORD PTR SAO_TAG_true[rip]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE74:
	.size	native_ffi, .-native_ffi
	.globl	native_exit
	.type	native_exit, @function
native_exit:
.LFB75:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	je	.L498
	mov	rdx, QWORD PTR sao_print[rip]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rax
	mov	edi, 0
	call	rdx
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	lea	rdi, .LC53[rip]
	mov	eax, 0
	call	rdx
.L498:
	lea	rsi, .LC54[rip]
	mov	edi, 38
	call	libc_
	mov	rdx, rax
	mov	edi, 0
	mov	eax, 0
	call	rdx
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE75:
	.size	native_exit, .-native_exit
	.globl	native_read
	.type	native_read, @function
native_read:
.LFB76:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	lea	rsi, .LC19[rip]
	mov	edi, 34
	call	libc_
	mov	esi, 0
	mov	rdi, rax
	call	sao_stream_new
	mov	rdi, rax
	call	sao_load_expr
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE76:
	.size	native_read, .-native_read
	.section	.rodata
.LC114:
	.string	"fopen"
.LC115:
	.string	"Error opening file %s\n"
.LC116:
	.string	"fclose"
	.text
	.globl	native_load
	.type	native_load, @function
native_load:
.LFB77:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 72
	.cfi_offset 3, -24
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	car
	mov	rax, QWORD PTR 16[rax]
	mov	QWORD PTR -48[rbp], rax
	lea	rsi, .LC114[rip]
	mov	edi, 16
	call	libc_
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	lea	rsi, .LC5[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rdx
	mov	QWORD PTR -40[rbp], rax
	cmp	QWORD PTR -40[rbp], 0
	jne	.L503
	lea	rsi, .LC51[rip]
	mov	edi, 0
	call	libc_
	mov	rbx, rax
	lea	rsi, .LC15[rip]
	mov	edi, 36
	call	libc_
	mov	rcx, rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, rax
	lea	rsi, .LC115[rip]
	mov	rdi, rcx
	mov	eax, 0
	call	rbx
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
	jmp	.L504
.L503:
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	sao_stream_new
	mov	QWORD PTR -32[rbp], rax
.L507:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	sao_load_expr
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	je	.L509
	mov	rcx, QWORD PTR sao_eval[rip]
	mov	rdx, QWORD PTR SAO_TAG_global[rip]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
	mov	QWORD PTR -56[rbp], rax
	jmp	.L507
.L509:
	nop
	lea	rsi, .LC116[rip]
	mov	edi, 20
	call	libc_
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	rdx
	mov	rax, QWORD PTR -56[rbp]
.L504:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE77:
	.size	native_load, .-native_load
	.globl	native_vget
	.type	native_vget, @function
native_vget:
.LFB78:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	edx, 1
	mov	rsi, rax
	lea	rdi, __func__.1[rip]
	call	sao_type_assert
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cadr
	mov	edx, 2
	mov	rsi, rax
	lea	rdi, __func__.1[rip]
	call	sao_type_assert
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rdx, rax
	jl	.L511
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
	jmp	.L512
.L511:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
.L512:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE78:
	.size	native_vget, .-native_vget
	.globl	native_vset
	.type	native_vset, @function
native_vset:
.LFB79:
	.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]
	mov	rdi, rax
	call	car
	mov	edx, 1
	mov	rsi, rax
	lea	rdi, __func__.0[rip]
	call	sao_type_assert
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	cadr
	mov	edx, 2
	mov	rsi, rax
	lea	rdi, __func__.0[rip]
	call	sao_type_assert
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	caddr
	test	rax, rax
	jne	.L514
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
	jmp	.L515
.L514:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 24[rax]
	cmp	rdx, rax
	jl	.L516
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
	jmp	.L515
.L516:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	car
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	sal	rax, 3
	lea	rbx, [rdx+rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	caddr
	mov	QWORD PTR [rbx], rax
	mov	rax, QWORD PTR SAO_TAG_true[rip]
.L515:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE79:
	.size	native_vset, .-native_vset
	.section	.rodata
.LC117:
	.string	" "
	.text
	.globl	native_print
	.type	native_print, @function
native_print:
.LFB80:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
	mov	QWORD PTR -16[rbp], rax
	mov	DWORD PTR -20[rbp], 0
.L522:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	car
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	je	.L525
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rcx, QWORD PTR sao_print[rip]
	cmp	DWORD PTR -20[rbp], 0
	je	.L520
	lea	rax, .LC117[rip]
	jmp	.L521
.L520:
	mov	eax, 0
.L521:
	mov	rdx, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
	mov	DWORD PTR -20[rbp], 1
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -40[rbp], rax
	jmp	.L522
.L525:
	nop
	mov	rax, QWORD PTR -16[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE80:
	.size	native_print, .-native_print
	.section	.rodata
.LC118:
	.string	"\n native_c_int=%s\n"
	.text
	.globl	native_c_int
	.type	native_c_int, @function
native_c_int:
.LFB81:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -24[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	jmp	.L527
.L530:
	cmp	QWORD PTR -16[rbp], 0
	jne	.L528
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	QWORD PTR -16[rbp], rax
	jmp	.L529
.L528:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	sao_strcat
	mov	QWORD PTR -16[rbp], rax
.L529:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -24[rbp], rax
.L527:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	car
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L530
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rsi, rax
	lea	rdi, .LC118[rip]
	mov	eax, 0
	call	rdx
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE81:
	.size	native_c_int, .-native_c_int
	.section	.rodata
.LC119:
	.string	"@@"
.LC120:
	.string	"@T"
.LC121:
	.string	"@F"
.LC122:
	.string	"@?"
.LC123:
	.string	"@L"
.LC124:
	.string	"@P"
.LC125:
	.string	"@:="
.LC126:
	.string	"@+"
.LC127:
	.string	"@-"
.LC128:
	.string	"@*"
.LC129:
	.string	"@/"
.LC130:
	.string	"@<"
.LC131:
	.string	"@>"
.LC132:
	.string	"@=="
.LC133:
	.string	"@==="
.LC134:
	.string	"@@?"
.LC135:
	.string	"@A"
.LC136:
	.string	"@C"
.LC137:
	.string	"@D"
.LC138:
	.string	"print"
.LC139:
	.string	"atom"
.LC140:
	.string	"shell"
.LC141:
	.string	"ffi"
.LC142:
	.string	"type"
.LC143:
	.string	"cons"
.LC144:
	.string	"setcar"
.LC145:
	.string	"setcdr"
.LC146:
	.string	"debug"
.LC147:
	.string	"load"
.LC148:
	.string	"read"
.LC149:
	.string	"is_empty"
.LC150:
	.string	"is_list"
.LC151:
	.string	"pairq"
.LC152:
	.string	"same"
.LC153:
	.string	"_null"
.LC154:
	.string	"_ctx"
.LC155:
	.string	"c_int"
	.text
	.globl	saolang_init
	.type	saolang_init, @function
saolang_init:
.LFB82:
	.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, 2400
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	mov	QWORD PTR -2416[rbp], 0
	mov	QWORD PTR -2408[rbp], 0
	mov	QWORD PTR -2400[rbp], 0
	mov	QWORD PTR -2392[rbp], 0
	mov	DWORD PTR -2416[rbp], 4
	lea	rax, .LC119[rip]
	mov	QWORD PTR -2400[rbp], rax
	push	QWORD PTR -2392[rbp]
	push	QWORD PTR -2400[rbp]
	push	QWORD PTR -2408[rbp]
	push	QWORD PTR -2416[rbp]
	call	sao_new
	add	rsp, 32
	mov	QWORD PTR SAO_TAG_nilnil[rip], rax
	mov	rdx, QWORD PTR SAO_TAG_global[rip]
	mov	rcx, QWORD PTR SAO_TAG_nil[rip]
	mov	rax, QWORD PTR SAO_TAG_nilnil[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	sao_var
	lea	rax, _sao_print[rip]
	mov	QWORD PTR sao_print[rip], rax
	lea	rax, _sao_eval[rip]
	mov	QWORD PTR sao_eval[rip], rax
	mov	QWORD PTR -2384[rbp], 0
	mov	QWORD PTR -2376[rbp], 0
	mov	QWORD PTR -2368[rbp], 0
	mov	QWORD PTR -2360[rbp], 0
	mov	DWORD PTR -2384[rbp], 4
	lea	rax, .LC120[rip]
	mov	QWORD PTR -2368[rbp], rax
	push	QWORD PTR -2360[rbp]
	push	QWORD PTR -2368[rbp]
	push	QWORD PTR -2376[rbp]
	push	QWORD PTR -2384[rbp]
	call	sao_new
	add	rsp, 32
	mov	QWORD PTR SAO_TAG_true[rip], rax
	mov	rdx, QWORD PTR SAO_TAG_global[rip]
	mov	rcx, QWORD PTR SAO_TAG_true[rip]
	mov	rax, QWORD PTR SAO_TAG_true[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	sao_var
	mov	QWORD PTR -2352[rbp], 0
	mov	QWORD PTR -2344[rbp], 0
	mov	QWORD PTR -2336[rbp], 0
	mov	QWORD PTR -2328[rbp], 0
	mov	DWORD PTR -2352[rbp], 4
	lea	rax, .LC121[rip]
	mov	QWORD PTR -2336[rbp], rax
	push	QWORD PTR -2328[rbp]
	push	QWORD PTR -2336[rbp]
	push	QWORD PTR -2344[rbp]
	push	QWORD PTR -2352[rbp]
	call	sao_new
	add	rsp, 32
	mov	QWORD PTR SAO_TAG_false[rip], rax
	mov	rdx, QWORD PTR SAO_TAG_global[rip]
	mov	rcx, QWORD PTR SAO_TAG_false[rip]
	mov	rax, QWORD PTR SAO_TAG_false[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	sao_var
	mov	QWORD PTR -2320[rbp], 0
	mov	QWORD PTR -2312[rbp], 0
	mov	QWORD PTR -2304[rbp], 0
	mov	QWORD PTR -2296[rbp], 0
	mov	DWORD PTR -2320[rbp], 4
	lea	rax, .LC122[rip]
	mov	QWORD PTR -2304[rbp], rax
	push	QWORD PTR -2296[rbp]
	push	QWORD PTR -2304[rbp]
	push	QWORD PTR -2312[rbp]
	push	QWORD PTR -2320[rbp]
	call	sao_new
	add	rsp, 32
	mov	QWORD PTR SAO_TAG_if[rip], rax
	mov	rdx, QWORD PTR SAO_TAG_global[rip]
	mov	rcx, QWORD PTR SAO_TAG_if[rip]
	mov	rax, QWORD PTR SAO_TAG_if[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	sao_var
	mov	QWORD PTR -2288[rbp], 0
	mov	QWORD PTR -2280[rbp], 0
	mov	QWORD PTR -2272[rbp], 0
	mov	QWORD PTR -2264[rbp], 0
	mov	DWORD PTR -2288[rbp], 4
	lea	rax, .LC123[rip]
	mov	QWORD PTR -2272[rbp], rax
	push	QWORD PTR -2264[rbp]
	push	QWORD PTR -2272[rbp]
	push	QWORD PTR -2280[rbp]
	push	QWORD PTR -2288[rbp]
	call	sao_new
	add	rsp, 32
	mov	QWORD PTR SAO_TAG_lambda[rip], rax
	mov	rdx, QWORD PTR SAO_TAG_global[rip]
	mov	rcx, QWORD PTR SAO_TAG_lambda[rip]
	mov	rax, QWORD PTR SAO_TAG_lambda[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	sao_var
	mov	QWORD PTR -2256[rbp], 0
	mov	QWORD PTR -2248[rbp], 0
	mov	QWORD PTR -2240[rbp], 0
	mov	QWORD PTR -2232[rbp], 0
	mov	DWORD PTR -2256[rbp], 4
	lea	rax, .LC124[rip]
	mov	QWORD PTR -2240[rbp], rax
	push	QWORD PTR -2232[rbp]
	push	QWORD PTR -2240[rbp]
	push	QWORD PTR -2248[rbp]
	push	QWORD PTR -2256[rbp]
	call	sao_new
	add	rsp, 32
	mov	QWORD PTR SAO_TAG_procedure[rip], rax
	mov	rdx, QWORD PTR SAO_TAG_global[rip]
	mov	rcx, QWORD PTR SAO_TAG_procedure[rip]
	mov	rax, QWORD PTR SAO_TAG_procedure[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	sao_var
	mov	QWORD PTR -2224[rbp], 0
	mov	QWORD PTR -2216[rbp], 0
	mov	QWORD PTR -2208[rbp], 0
	mov	QWORD PTR -2200[rbp], 0
	mov	DWORD PTR -2224[rbp], 4
	lea	rax, .LC125[rip]
	mov	QWORD PTR -2208[rbp], rax
	push	QWORD PTR -2200[rbp]
	push	QWORD PTR -2208[rbp]
	push	QWORD PTR -2216[rbp]
	push	QWORD PTR -2224[rbp]
	call	sao_new
	add	rsp, 32
	mov	QWORD PTR SAO_TAG_set[rip], rax
	mov	rdx, QWORD PTR SAO_TAG_global[rip]
	mov	rcx, QWORD PTR SAO_TAG_set[rip]
	mov	rax, QWORD PTR SAO_TAG_set[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -2160[rbp], 0
	mov	QWORD PTR -2152[rbp], 0
	mov	QWORD PTR -2144[rbp], 0
	mov	QWORD PTR -2136[rbp], 0
	mov	DWORD PTR -2160[rbp], 7
	lea	rax, .LC126[rip]
	mov	QWORD PTR -2144[rbp], rax
	lea	rax, native_add[rip]
	mov	QWORD PTR -2136[rbp], rax
	push	QWORD PTR -2136[rbp]
	push	QWORD PTR -2144[rbp]
	push	QWORD PTR -2152[rbp]
	push	QWORD PTR -2160[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -2192[rbp], 0
	mov	QWORD PTR -2184[rbp], 0
	mov	QWORD PTR -2176[rbp], 0
	mov	QWORD PTR -2168[rbp], 0
	mov	DWORD PTR -2192[rbp], 4
	lea	rax, .LC126[rip]
	mov	QWORD PTR -2176[rbp], rax
	push	QWORD PTR -2168[rbp]
	push	QWORD PTR -2176[rbp]
	push	QWORD PTR -2184[rbp]
	push	QWORD PTR -2192[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -2096[rbp], 0
	mov	QWORD PTR -2088[rbp], 0
	mov	QWORD PTR -2080[rbp], 0
	mov	QWORD PTR -2072[rbp], 0
	mov	DWORD PTR -2096[rbp], 7
	lea	rax, .LC127[rip]
	mov	QWORD PTR -2080[rbp], rax
	lea	rax, native_sub[rip]
	mov	QWORD PTR -2072[rbp], rax
	push	QWORD PTR -2072[rbp]
	push	QWORD PTR -2080[rbp]
	push	QWORD PTR -2088[rbp]
	push	QWORD PTR -2096[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -2128[rbp], 0
	mov	QWORD PTR -2120[rbp], 0
	mov	QWORD PTR -2112[rbp], 0
	mov	QWORD PTR -2104[rbp], 0
	mov	DWORD PTR -2128[rbp], 4
	lea	rax, .LC127[rip]
	mov	QWORD PTR -2112[rbp], rax
	push	QWORD PTR -2104[rbp]
	push	QWORD PTR -2112[rbp]
	push	QWORD PTR -2120[rbp]
	push	QWORD PTR -2128[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -2032[rbp], 0
	mov	QWORD PTR -2024[rbp], 0
	mov	QWORD PTR -2016[rbp], 0
	mov	QWORD PTR -2008[rbp], 0
	mov	DWORD PTR -2032[rbp], 7
	lea	rax, .LC128[rip]
	mov	QWORD PTR -2016[rbp], rax
	lea	rax, native_mul[rip]
	mov	QWORD PTR -2008[rbp], rax
	push	QWORD PTR -2008[rbp]
	push	QWORD PTR -2016[rbp]
	push	QWORD PTR -2024[rbp]
	push	QWORD PTR -2032[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -2064[rbp], 0
	mov	QWORD PTR -2056[rbp], 0
	mov	QWORD PTR -2048[rbp], 0
	mov	QWORD PTR -2040[rbp], 0
	mov	DWORD PTR -2064[rbp], 4
	lea	rax, .LC128[rip]
	mov	QWORD PTR -2048[rbp], rax
	push	QWORD PTR -2040[rbp]
	push	QWORD PTR -2048[rbp]
	push	QWORD PTR -2056[rbp]
	push	QWORD PTR -2064[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -1968[rbp], 0
	mov	QWORD PTR -1960[rbp], 0
	mov	QWORD PTR -1952[rbp], 0
	mov	QWORD PTR -1944[rbp], 0
	mov	DWORD PTR -1968[rbp], 7
	lea	rax, .LC129[rip]
	mov	QWORD PTR -1952[rbp], rax
	lea	rax, native_div[rip]
	mov	QWORD PTR -1944[rbp], rax
	push	QWORD PTR -1944[rbp]
	push	QWORD PTR -1952[rbp]
	push	QWORD PTR -1960[rbp]
	push	QWORD PTR -1968[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -2000[rbp], 0
	mov	QWORD PTR -1992[rbp], 0
	mov	QWORD PTR -1984[rbp], 0
	mov	QWORD PTR -1976[rbp], 0
	mov	DWORD PTR -2000[rbp], 4
	lea	rax, .LC129[rip]
	mov	QWORD PTR -1984[rbp], rax
	push	QWORD PTR -1976[rbp]
	push	QWORD PTR -1984[rbp]
	push	QWORD PTR -1992[rbp]
	push	QWORD PTR -2000[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -1904[rbp], 0
	mov	QWORD PTR -1896[rbp], 0
	mov	QWORD PTR -1888[rbp], 0
	mov	QWORD PTR -1880[rbp], 0
	mov	DWORD PTR -1904[rbp], 7
	lea	rax, .LC130[rip]
	mov	QWORD PTR -1888[rbp], rax
	lea	rax, native_lt[rip]
	mov	QWORD PTR -1880[rbp], rax
	push	QWORD PTR -1880[rbp]
	push	QWORD PTR -1888[rbp]
	push	QWORD PTR -1896[rbp]
	push	QWORD PTR -1904[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -1936[rbp], 0
	mov	QWORD PTR -1928[rbp], 0
	mov	QWORD PTR -1920[rbp], 0
	mov	QWORD PTR -1912[rbp], 0
	mov	DWORD PTR -1936[rbp], 4
	lea	rax, .LC130[rip]
	mov	QWORD PTR -1920[rbp], rax
	push	QWORD PTR -1912[rbp]
	push	QWORD PTR -1920[rbp]
	push	QWORD PTR -1928[rbp]
	push	QWORD PTR -1936[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -1840[rbp], 0
	mov	QWORD PTR -1832[rbp], 0
	mov	QWORD PTR -1824[rbp], 0
	mov	QWORD PTR -1816[rbp], 0
	mov	DWORD PTR -1840[rbp], 7
	lea	rax, .LC131[rip]
	mov	QWORD PTR -1824[rbp], rax
	lea	rax, native_gt[rip]
	mov	QWORD PTR -1816[rbp], rax
	push	QWORD PTR -1816[rbp]
	push	QWORD PTR -1824[rbp]
	push	QWORD PTR -1832[rbp]
	push	QWORD PTR -1840[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -1872[rbp], 0
	mov	QWORD PTR -1864[rbp], 0
	mov	QWORD PTR -1856[rbp], 0
	mov	QWORD PTR -1848[rbp], 0
	mov	DWORD PTR -1872[rbp], 4
	lea	rax, .LC131[rip]
	mov	QWORD PTR -1856[rbp], rax
	push	QWORD PTR -1848[rbp]
	push	QWORD PTR -1856[rbp]
	push	QWORD PTR -1864[rbp]
	push	QWORD PTR -1872[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -1776[rbp], 0
	mov	QWORD PTR -1768[rbp], 0
	mov	QWORD PTR -1760[rbp], 0
	mov	QWORD PTR -1752[rbp], 0
	mov	DWORD PTR -1776[rbp], 7
	lea	rax, .LC132[rip]
	mov	QWORD PTR -1760[rbp], rax
	lea	rax, native_cmp[rip]
	mov	QWORD PTR -1752[rbp], rax
	push	QWORD PTR -1752[rbp]
	push	QWORD PTR -1760[rbp]
	push	QWORD PTR -1768[rbp]
	push	QWORD PTR -1776[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -1808[rbp], 0
	mov	QWORD PTR -1800[rbp], 0
	mov	QWORD PTR -1792[rbp], 0
	mov	QWORD PTR -1784[rbp], 0
	mov	DWORD PTR -1808[rbp], 4
	lea	rax, .LC132[rip]
	mov	QWORD PTR -1792[rbp], rax
	push	QWORD PTR -1784[rbp]
	push	QWORD PTR -1792[rbp]
	push	QWORD PTR -1800[rbp]
	push	QWORD PTR -1808[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -1712[rbp], 0
	mov	QWORD PTR -1704[rbp], 0
	mov	QWORD PTR -1696[rbp], 0
	mov	QWORD PTR -1688[rbp], 0
	mov	DWORD PTR -1712[rbp], 7
	lea	rax, .LC133[rip]
	mov	QWORD PTR -1696[rbp], rax
	lea	rax, native_same[rip]
	mov	QWORD PTR -1688[rbp], rax
	push	QWORD PTR -1688[rbp]
	push	QWORD PTR -1696[rbp]
	push	QWORD PTR -1704[rbp]
	push	QWORD PTR -1712[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -1744[rbp], 0
	mov	QWORD PTR -1736[rbp], 0
	mov	QWORD PTR -1728[rbp], 0
	mov	QWORD PTR -1720[rbp], 0
	mov	DWORD PTR -1744[rbp], 4
	lea	rax, .LC133[rip]
	mov	QWORD PTR -1728[rbp], rax
	push	QWORD PTR -1720[rbp]
	push	QWORD PTR -1728[rbp]
	push	QWORD PTR -1736[rbp]
	push	QWORD PTR -1744[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -1648[rbp], 0
	mov	QWORD PTR -1640[rbp], 0
	mov	QWORD PTR -1632[rbp], 0
	mov	QWORD PTR -1624[rbp], 0
	mov	DWORD PTR -1648[rbp], 7
	lea	rax, .LC134[rip]
	mov	QWORD PTR -1632[rbp], rax
	lea	rax, native_is_nil[rip]
	mov	QWORD PTR -1624[rbp], rax
	push	QWORD PTR -1624[rbp]
	push	QWORD PTR -1632[rbp]
	push	QWORD PTR -1640[rbp]
	push	QWORD PTR -1648[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -1680[rbp], 0
	mov	QWORD PTR -1672[rbp], 0
	mov	QWORD PTR -1664[rbp], 0
	mov	QWORD PTR -1656[rbp], 0
	mov	DWORD PTR -1680[rbp], 4
	lea	rax, .LC134[rip]
	mov	QWORD PTR -1664[rbp], rax
	push	QWORD PTR -1656[rbp]
	push	QWORD PTR -1664[rbp]
	push	QWORD PTR -1672[rbp]
	push	QWORD PTR -1680[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -1584[rbp], 0
	mov	QWORD PTR -1576[rbp], 0
	mov	QWORD PTR -1568[rbp], 0
	mov	QWORD PTR -1560[rbp], 0
	mov	DWORD PTR -1584[rbp], 7
	lea	rax, .LC135[rip]
	mov	QWORD PTR -1568[rbp], rax
	lea	rax, native_car[rip]
	mov	QWORD PTR -1560[rbp], rax
	push	QWORD PTR -1560[rbp]
	push	QWORD PTR -1568[rbp]
	push	QWORD PTR -1576[rbp]
	push	QWORD PTR -1584[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -1616[rbp], 0
	mov	QWORD PTR -1608[rbp], 0
	mov	QWORD PTR -1600[rbp], 0
	mov	QWORD PTR -1592[rbp], 0
	mov	DWORD PTR -1616[rbp], 4
	lea	rax, .LC135[rip]
	mov	QWORD PTR -1600[rbp], rax
	push	QWORD PTR -1592[rbp]
	push	QWORD PTR -1600[rbp]
	push	QWORD PTR -1608[rbp]
	push	QWORD PTR -1616[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -1520[rbp], 0
	mov	QWORD PTR -1512[rbp], 0
	mov	QWORD PTR -1504[rbp], 0
	mov	QWORD PTR -1496[rbp], 0
	mov	DWORD PTR -1520[rbp], 7
	lea	rax, .LC136[rip]
	mov	QWORD PTR -1504[rbp], rax
	lea	rax, native_cons[rip]
	mov	QWORD PTR -1496[rbp], rax
	push	QWORD PTR -1496[rbp]
	push	QWORD PTR -1504[rbp]
	push	QWORD PTR -1512[rbp]
	push	QWORD PTR -1520[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -1552[rbp], 0
	mov	QWORD PTR -1544[rbp], 0
	mov	QWORD PTR -1536[rbp], 0
	mov	QWORD PTR -1528[rbp], 0
	mov	DWORD PTR -1552[rbp], 4
	lea	rax, .LC136[rip]
	mov	QWORD PTR -1536[rbp], rax
	push	QWORD PTR -1528[rbp]
	push	QWORD PTR -1536[rbp]
	push	QWORD PTR -1544[rbp]
	push	QWORD PTR -1552[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -1456[rbp], 0
	mov	QWORD PTR -1448[rbp], 0
	mov	QWORD PTR -1440[rbp], 0
	mov	QWORD PTR -1432[rbp], 0
	mov	DWORD PTR -1456[rbp], 7
	lea	rax, .LC137[rip]
	mov	QWORD PTR -1440[rbp], rax
	lea	rax, native_cdr[rip]
	mov	QWORD PTR -1432[rbp], rax
	push	QWORD PTR -1432[rbp]
	push	QWORD PTR -1440[rbp]
	push	QWORD PTR -1448[rbp]
	push	QWORD PTR -1456[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -1488[rbp], 0
	mov	QWORD PTR -1480[rbp], 0
	mov	QWORD PTR -1472[rbp], 0
	mov	QWORD PTR -1464[rbp], 0
	mov	DWORD PTR -1488[rbp], 4
	lea	rax, .LC137[rip]
	mov	QWORD PTR -1472[rbp], rax
	push	QWORD PTR -1464[rbp]
	push	QWORD PTR -1472[rbp]
	push	QWORD PTR -1480[rbp]
	push	QWORD PTR -1488[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -1392[rbp], 0
	mov	QWORD PTR -1384[rbp], 0
	mov	QWORD PTR -1376[rbp], 0
	mov	QWORD PTR -1368[rbp], 0
	mov	DWORD PTR -1392[rbp], 7
	lea	rax, .LC138[rip]
	mov	QWORD PTR -1376[rbp], rax
	lea	rax, native_print[rip]
	mov	QWORD PTR -1368[rbp], rax
	push	QWORD PTR -1368[rbp]
	push	QWORD PTR -1376[rbp]
	push	QWORD PTR -1384[rbp]
	push	QWORD PTR -1392[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -1424[rbp], 0
	mov	QWORD PTR -1416[rbp], 0
	mov	QWORD PTR -1408[rbp], 0
	mov	QWORD PTR -1400[rbp], 0
	mov	DWORD PTR -1424[rbp], 4
	lea	rax, .LC138[rip]
	mov	QWORD PTR -1408[rbp], rax
	push	QWORD PTR -1400[rbp]
	push	QWORD PTR -1408[rbp]
	push	QWORD PTR -1416[rbp]
	push	QWORD PTR -1424[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -1328[rbp], 0
	mov	QWORD PTR -1320[rbp], 0
	mov	QWORD PTR -1312[rbp], 0
	mov	QWORD PTR -1304[rbp], 0
	mov	DWORD PTR -1328[rbp], 7
	lea	rax, .LC54[rip]
	mov	QWORD PTR -1312[rbp], rax
	lea	rax, native_exit[rip]
	mov	QWORD PTR -1304[rbp], rax
	push	QWORD PTR -1304[rbp]
	push	QWORD PTR -1312[rbp]
	push	QWORD PTR -1320[rbp]
	push	QWORD PTR -1328[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -1360[rbp], 0
	mov	QWORD PTR -1352[rbp], 0
	mov	QWORD PTR -1344[rbp], 0
	mov	QWORD PTR -1336[rbp], 0
	mov	DWORD PTR -1360[rbp], 4
	lea	rax, .LC54[rip]
	mov	QWORD PTR -1344[rbp], rax
	push	QWORD PTR -1336[rbp]
	push	QWORD PTR -1344[rbp]
	push	QWORD PTR -1352[rbp]
	push	QWORD PTR -1360[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -1264[rbp], 0
	mov	QWORD PTR -1256[rbp], 0
	mov	QWORD PTR -1248[rbp], 0
	mov	QWORD PTR -1240[rbp], 0
	mov	DWORD PTR -1264[rbp], 7
	lea	rax, .LC139[rip]
	mov	QWORD PTR -1248[rbp], rax
	lea	rax, native_atom[rip]
	mov	QWORD PTR -1240[rbp], rax
	push	QWORD PTR -1240[rbp]
	push	QWORD PTR -1248[rbp]
	push	QWORD PTR -1256[rbp]
	push	QWORD PTR -1264[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -1296[rbp], 0
	mov	QWORD PTR -1288[rbp], 0
	mov	QWORD PTR -1280[rbp], 0
	mov	QWORD PTR -1272[rbp], 0
	mov	DWORD PTR -1296[rbp], 4
	lea	rax, .LC139[rip]
	mov	QWORD PTR -1280[rbp], rax
	push	QWORD PTR -1272[rbp]
	push	QWORD PTR -1280[rbp]
	push	QWORD PTR -1288[rbp]
	push	QWORD PTR -1296[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -1200[rbp], 0
	mov	QWORD PTR -1192[rbp], 0
	mov	QWORD PTR -1184[rbp], 0
	mov	QWORD PTR -1176[rbp], 0
	mov	DWORD PTR -1200[rbp], 7
	lea	rax, .LC54[rip]
	mov	QWORD PTR -1184[rbp], rax
	lea	rax, native_exit[rip]
	mov	QWORD PTR -1176[rbp], rax
	push	QWORD PTR -1176[rbp]
	push	QWORD PTR -1184[rbp]
	push	QWORD PTR -1192[rbp]
	push	QWORD PTR -1200[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -1232[rbp], 0
	mov	QWORD PTR -1224[rbp], 0
	mov	QWORD PTR -1216[rbp], 0
	mov	QWORD PTR -1208[rbp], 0
	mov	DWORD PTR -1232[rbp], 4
	lea	rax, .LC54[rip]
	mov	QWORD PTR -1216[rbp], rax
	push	QWORD PTR -1208[rbp]
	push	QWORD PTR -1216[rbp]
	push	QWORD PTR -1224[rbp]
	push	QWORD PTR -1232[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -1136[rbp], 0
	mov	QWORD PTR -1128[rbp], 0
	mov	QWORD PTR -1120[rbp], 0
	mov	QWORD PTR -1112[rbp], 0
	mov	DWORD PTR -1136[rbp], 7
	lea	rax, .LC140[rip]
	mov	QWORD PTR -1120[rbp], rax
	lea	rax, native_shell[rip]
	mov	QWORD PTR -1112[rbp], rax
	push	QWORD PTR -1112[rbp]
	push	QWORD PTR -1120[rbp]
	push	QWORD PTR -1128[rbp]
	push	QWORD PTR -1136[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -1168[rbp], 0
	mov	QWORD PTR -1160[rbp], 0
	mov	QWORD PTR -1152[rbp], 0
	mov	QWORD PTR -1144[rbp], 0
	mov	DWORD PTR -1168[rbp], 4
	lea	rax, .LC140[rip]
	mov	QWORD PTR -1152[rbp], rax
	push	QWORD PTR -1144[rbp]
	push	QWORD PTR -1152[rbp]
	push	QWORD PTR -1160[rbp]
	push	QWORD PTR -1168[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -1072[rbp], 0
	mov	QWORD PTR -1064[rbp], 0
	mov	QWORD PTR -1056[rbp], 0
	mov	QWORD PTR -1048[rbp], 0
	mov	DWORD PTR -1072[rbp], 7
	lea	rax, .LC141[rip]
	mov	QWORD PTR -1056[rbp], rax
	lea	rax, native_ffi[rip]
	mov	QWORD PTR -1048[rbp], rax
	push	QWORD PTR -1048[rbp]
	push	QWORD PTR -1056[rbp]
	push	QWORD PTR -1064[rbp]
	push	QWORD PTR -1072[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -1104[rbp], 0
	mov	QWORD PTR -1096[rbp], 0
	mov	QWORD PTR -1088[rbp], 0
	mov	QWORD PTR -1080[rbp], 0
	mov	DWORD PTR -1104[rbp], 4
	lea	rax, .LC141[rip]
	mov	QWORD PTR -1088[rbp], rax
	push	QWORD PTR -1080[rbp]
	push	QWORD PTR -1088[rbp]
	push	QWORD PTR -1096[rbp]
	push	QWORD PTR -1104[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -1008[rbp], 0
	mov	QWORD PTR -1000[rbp], 0
	mov	QWORD PTR -992[rbp], 0
	mov	QWORD PTR -984[rbp], 0
	mov	DWORD PTR -1008[rbp], 7
	lea	rax, .LC142[rip]
	mov	QWORD PTR -992[rbp], rax
	lea	rax, native_type[rip]
	mov	QWORD PTR -984[rbp], rax
	push	QWORD PTR -984[rbp]
	push	QWORD PTR -992[rbp]
	push	QWORD PTR -1000[rbp]
	push	QWORD PTR -1008[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -1040[rbp], 0
	mov	QWORD PTR -1032[rbp], 0
	mov	QWORD PTR -1024[rbp], 0
	mov	QWORD PTR -1016[rbp], 0
	mov	DWORD PTR -1040[rbp], 4
	lea	rax, .LC142[rip]
	mov	QWORD PTR -1024[rbp], rax
	push	QWORD PTR -1016[rbp]
	push	QWORD PTR -1024[rbp]
	push	QWORD PTR -1032[rbp]
	push	QWORD PTR -1040[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -944[rbp], 0
	mov	QWORD PTR -936[rbp], 0
	mov	QWORD PTR -928[rbp], 0
	mov	QWORD PTR -920[rbp], 0
	mov	DWORD PTR -944[rbp], 7
	lea	rax, .LC143[rip]
	mov	QWORD PTR -928[rbp], rax
	lea	rax, native_cons[rip]
	mov	QWORD PTR -920[rbp], rax
	push	QWORD PTR -920[rbp]
	push	QWORD PTR -928[rbp]
	push	QWORD PTR -936[rbp]
	push	QWORD PTR -944[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -976[rbp], 0
	mov	QWORD PTR -968[rbp], 0
	mov	QWORD PTR -960[rbp], 0
	mov	QWORD PTR -952[rbp], 0
	mov	DWORD PTR -976[rbp], 4
	lea	rax, .LC143[rip]
	mov	QWORD PTR -960[rbp], rax
	push	QWORD PTR -952[rbp]
	push	QWORD PTR -960[rbp]
	push	QWORD PTR -968[rbp]
	push	QWORD PTR -976[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -880[rbp], 0
	mov	QWORD PTR -872[rbp], 0
	mov	QWORD PTR -864[rbp], 0
	mov	QWORD PTR -856[rbp], 0
	mov	DWORD PTR -880[rbp], 7
	lea	rax, .LC144[rip]
	mov	QWORD PTR -864[rbp], rax
	lea	rax, native_setcar[rip]
	mov	QWORD PTR -856[rbp], rax
	push	QWORD PTR -856[rbp]
	push	QWORD PTR -864[rbp]
	push	QWORD PTR -872[rbp]
	push	QWORD PTR -880[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -912[rbp], 0
	mov	QWORD PTR -904[rbp], 0
	mov	QWORD PTR -896[rbp], 0
	mov	QWORD PTR -888[rbp], 0
	mov	DWORD PTR -912[rbp], 4
	lea	rax, .LC144[rip]
	mov	QWORD PTR -896[rbp], rax
	push	QWORD PTR -888[rbp]
	push	QWORD PTR -896[rbp]
	push	QWORD PTR -904[rbp]
	push	QWORD PTR -912[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -816[rbp], 0
	mov	QWORD PTR -808[rbp], 0
	mov	QWORD PTR -800[rbp], 0
	mov	QWORD PTR -792[rbp], 0
	mov	DWORD PTR -816[rbp], 7
	lea	rax, .LC145[rip]
	mov	QWORD PTR -800[rbp], rax
	lea	rax, native_setcdr[rip]
	mov	QWORD PTR -792[rbp], rax
	push	QWORD PTR -792[rbp]
	push	QWORD PTR -800[rbp]
	push	QWORD PTR -808[rbp]
	push	QWORD PTR -816[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -848[rbp], 0
	mov	QWORD PTR -840[rbp], 0
	mov	QWORD PTR -832[rbp], 0
	mov	QWORD PTR -824[rbp], 0
	mov	DWORD PTR -848[rbp], 4
	lea	rax, .LC145[rip]
	mov	QWORD PTR -832[rbp], rax
	push	QWORD PTR -824[rbp]
	push	QWORD PTR -832[rbp]
	push	QWORD PTR -840[rbp]
	push	QWORD PTR -848[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -752[rbp], 0
	mov	QWORD PTR -744[rbp], 0
	mov	QWORD PTR -736[rbp], 0
	mov	QWORD PTR -728[rbp], 0
	mov	DWORD PTR -752[rbp], 7
	lea	rax, .LC146[rip]
	mov	QWORD PTR -736[rbp], rax
	lea	rax, native_debug[rip]
	mov	QWORD PTR -728[rbp], rax
	push	QWORD PTR -728[rbp]
	push	QWORD PTR -736[rbp]
	push	QWORD PTR -744[rbp]
	push	QWORD PTR -752[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -784[rbp], 0
	mov	QWORD PTR -776[rbp], 0
	mov	QWORD PTR -768[rbp], 0
	mov	QWORD PTR -760[rbp], 0
	mov	DWORD PTR -784[rbp], 4
	lea	rax, .LC146[rip]
	mov	QWORD PTR -768[rbp], rax
	push	QWORD PTR -760[rbp]
	push	QWORD PTR -768[rbp]
	push	QWORD PTR -776[rbp]
	push	QWORD PTR -784[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -688[rbp], 0
	mov	QWORD PTR -680[rbp], 0
	mov	QWORD PTR -672[rbp], 0
	mov	QWORD PTR -664[rbp], 0
	mov	DWORD PTR -688[rbp], 7
	lea	rax, .LC43[rip]
	mov	QWORD PTR -672[rbp], rax
	lea	rax, native_list[rip]
	mov	QWORD PTR -664[rbp], rax
	push	QWORD PTR -664[rbp]
	push	QWORD PTR -672[rbp]
	push	QWORD PTR -680[rbp]
	push	QWORD PTR -688[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -720[rbp], 0
	mov	QWORD PTR -712[rbp], 0
	mov	QWORD PTR -704[rbp], 0
	mov	QWORD PTR -696[rbp], 0
	mov	DWORD PTR -720[rbp], 4
	lea	rax, .LC43[rip]
	mov	QWORD PTR -704[rbp], rax
	push	QWORD PTR -696[rbp]
	push	QWORD PTR -704[rbp]
	push	QWORD PTR -712[rbp]
	push	QWORD PTR -720[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -624[rbp], 0
	mov	QWORD PTR -616[rbp], 0
	mov	QWORD PTR -608[rbp], 0
	mov	QWORD PTR -600[rbp], 0
	mov	DWORD PTR -624[rbp], 7
	lea	rax, .LC147[rip]
	mov	QWORD PTR -608[rbp], rax
	lea	rax, native_load[rip]
	mov	QWORD PTR -600[rbp], rax
	push	QWORD PTR -600[rbp]
	push	QWORD PTR -608[rbp]
	push	QWORD PTR -616[rbp]
	push	QWORD PTR -624[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -656[rbp], 0
	mov	QWORD PTR -648[rbp], 0
	mov	QWORD PTR -640[rbp], 0
	mov	QWORD PTR -632[rbp], 0
	mov	DWORD PTR -656[rbp], 4
	lea	rax, .LC147[rip]
	mov	QWORD PTR -640[rbp], rax
	push	QWORD PTR -632[rbp]
	push	QWORD PTR -640[rbp]
	push	QWORD PTR -648[rbp]
	push	QWORD PTR -656[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -560[rbp], 0
	mov	QWORD PTR -552[rbp], 0
	mov	QWORD PTR -544[rbp], 0
	mov	QWORD PTR -536[rbp], 0
	mov	DWORD PTR -560[rbp], 7
	lea	rax, .LC138[rip]
	mov	QWORD PTR -544[rbp], rax
	lea	rax, native_print[rip]
	mov	QWORD PTR -536[rbp], rax
	push	QWORD PTR -536[rbp]
	push	QWORD PTR -544[rbp]
	push	QWORD PTR -552[rbp]
	push	QWORD PTR -560[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -592[rbp], 0
	mov	QWORD PTR -584[rbp], 0
	mov	QWORD PTR -576[rbp], 0
	mov	QWORD PTR -568[rbp], 0
	mov	DWORD PTR -592[rbp], 4
	lea	rax, .LC138[rip]
	mov	QWORD PTR -576[rbp], rax
	push	QWORD PTR -568[rbp]
	push	QWORD PTR -576[rbp]
	push	QWORD PTR -584[rbp]
	push	QWORD PTR -592[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -496[rbp], 0
	mov	QWORD PTR -488[rbp], 0
	mov	QWORD PTR -480[rbp], 0
	mov	QWORD PTR -472[rbp], 0
	mov	DWORD PTR -496[rbp], 7
	lea	rax, .LC148[rip]
	mov	QWORD PTR -480[rbp], rax
	lea	rax, native_read[rip]
	mov	QWORD PTR -472[rbp], rax
	push	QWORD PTR -472[rbp]
	push	QWORD PTR -480[rbp]
	push	QWORD PTR -488[rbp]
	push	QWORD PTR -496[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -528[rbp], 0
	mov	QWORD PTR -520[rbp], 0
	mov	QWORD PTR -512[rbp], 0
	mov	QWORD PTR -504[rbp], 0
	mov	DWORD PTR -528[rbp], 4
	lea	rax, .LC148[rip]
	mov	QWORD PTR -512[rbp], rax
	push	QWORD PTR -504[rbp]
	push	QWORD PTR -512[rbp]
	push	QWORD PTR -520[rbp]
	push	QWORD PTR -528[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -432[rbp], 0
	mov	QWORD PTR -424[rbp], 0
	mov	QWORD PTR -416[rbp], 0
	mov	QWORD PTR -408[rbp], 0
	mov	DWORD PTR -432[rbp], 7
	lea	rax, .LC149[rip]
	mov	QWORD PTR -416[rbp], rax
	lea	rax, native_is_empty[rip]
	mov	QWORD PTR -408[rbp], rax
	push	QWORD PTR -408[rbp]
	push	QWORD PTR -416[rbp]
	push	QWORD PTR -424[rbp]
	push	QWORD PTR -432[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -464[rbp], 0
	mov	QWORD PTR -456[rbp], 0
	mov	QWORD PTR -448[rbp], 0
	mov	QWORD PTR -440[rbp], 0
	mov	DWORD PTR -464[rbp], 4
	lea	rax, .LC149[rip]
	mov	QWORD PTR -448[rbp], rax
	push	QWORD PTR -440[rbp]
	push	QWORD PTR -448[rbp]
	push	QWORD PTR -456[rbp]
	push	QWORD PTR -464[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -368[rbp], 0
	mov	QWORD PTR -360[rbp], 0
	mov	QWORD PTR -352[rbp], 0
	mov	QWORD PTR -344[rbp], 0
	mov	DWORD PTR -368[rbp], 7
	lea	rax, .LC150[rip]
	mov	QWORD PTR -352[rbp], rax
	lea	rax, native_is_list[rip]
	mov	QWORD PTR -344[rbp], rax
	push	QWORD PTR -344[rbp]
	push	QWORD PTR -352[rbp]
	push	QWORD PTR -360[rbp]
	push	QWORD PTR -368[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -400[rbp], 0
	mov	QWORD PTR -392[rbp], 0
	mov	QWORD PTR -384[rbp], 0
	mov	QWORD PTR -376[rbp], 0
	mov	DWORD PTR -400[rbp], 4
	lea	rax, .LC150[rip]
	mov	QWORD PTR -384[rbp], rax
	push	QWORD PTR -376[rbp]
	push	QWORD PTR -384[rbp]
	push	QWORD PTR -392[rbp]
	push	QWORD PTR -400[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -304[rbp], 0
	mov	QWORD PTR -296[rbp], 0
	mov	QWORD PTR -288[rbp], 0
	mov	QWORD PTR -280[rbp], 0
	mov	DWORD PTR -304[rbp], 7
	lea	rax, .LC151[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, native_pairq[rip]
	mov	QWORD PTR -280[rbp], rax
	push	QWORD PTR -280[rbp]
	push	QWORD PTR -288[rbp]
	push	QWORD PTR -296[rbp]
	push	QWORD PTR -304[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -336[rbp], 0
	mov	QWORD PTR -328[rbp], 0
	mov	QWORD PTR -320[rbp], 0
	mov	QWORD PTR -312[rbp], 0
	mov	DWORD PTR -336[rbp], 4
	lea	rax, .LC151[rip]
	mov	QWORD PTR -320[rbp], rax
	push	QWORD PTR -312[rbp]
	push	QWORD PTR -320[rbp]
	push	QWORD PTR -328[rbp]
	push	QWORD PTR -336[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -240[rbp], 0
	mov	QWORD PTR -232[rbp], 0
	mov	QWORD PTR -224[rbp], 0
	mov	QWORD PTR -216[rbp], 0
	mov	DWORD PTR -240[rbp], 7
	lea	rax, .LC152[rip]
	mov	QWORD PTR -224[rbp], rax
	lea	rax, native_same[rip]
	mov	QWORD PTR -216[rbp], rax
	push	QWORD PTR -216[rbp]
	push	QWORD PTR -224[rbp]
	push	QWORD PTR -232[rbp]
	push	QWORD PTR -240[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -272[rbp], 0
	mov	QWORD PTR -264[rbp], 0
	mov	QWORD PTR -256[rbp], 0
	mov	QWORD PTR -248[rbp], 0
	mov	DWORD PTR -272[rbp], 4
	lea	rax, .LC152[rip]
	mov	QWORD PTR -256[rbp], rax
	push	QWORD PTR -248[rbp]
	push	QWORD PTR -256[rbp]
	push	QWORD PTR -264[rbp]
	push	QWORD PTR -272[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -176[rbp], 0
	mov	QWORD PTR -168[rbp], 0
	mov	QWORD PTR -160[rbp], 0
	mov	QWORD PTR -152[rbp], 0
	mov	DWORD PTR -176[rbp], 7
	lea	rax, .LC153[rip]
	mov	QWORD PTR -160[rbp], rax
	lea	rax, native__null[rip]
	mov	QWORD PTR -152[rbp], rax
	push	QWORD PTR -152[rbp]
	push	QWORD PTR -160[rbp]
	push	QWORD PTR -168[rbp]
	push	QWORD PTR -176[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -208[rbp], 0
	mov	QWORD PTR -200[rbp], 0
	mov	QWORD PTR -192[rbp], 0
	mov	QWORD PTR -184[rbp], 0
	mov	DWORD PTR -208[rbp], 4
	lea	rax, .LC153[rip]
	mov	QWORD PTR -192[rbp], rax
	push	QWORD PTR -184[rbp]
	push	QWORD PTR -192[rbp]
	push	QWORD PTR -200[rbp]
	push	QWORD PTR -208[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -112[rbp], 0
	mov	QWORD PTR -104[rbp], 0
	mov	QWORD PTR -96[rbp], 0
	mov	QWORD PTR -88[rbp], 0
	mov	DWORD PTR -112[rbp], 7
	lea	rax, .LC154[rip]
	mov	QWORD PTR -96[rbp], rax
	lea	rax, native__ctx[rip]
	mov	QWORD PTR -88[rbp], rax
	push	QWORD PTR -88[rbp]
	push	QWORD PTR -96[rbp]
	push	QWORD PTR -104[rbp]
	push	QWORD PTR -112[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -144[rbp], 0
	mov	QWORD PTR -136[rbp], 0
	mov	QWORD PTR -128[rbp], 0
	mov	QWORD PTR -120[rbp], 0
	mov	DWORD PTR -144[rbp], 4
	lea	rax, .LC154[rip]
	mov	QWORD PTR -128[rbp], rax
	push	QWORD PTR -120[rbp]
	push	QWORD PTR -128[rbp]
	push	QWORD PTR -136[rbp]
	push	QWORD PTR -144[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rbx, QWORD PTR SAO_TAG_global[rip]
	mov	QWORD PTR -48[rbp], 0
	mov	QWORD PTR -40[rbp], 0
	mov	QWORD PTR -32[rbp], 0
	mov	QWORD PTR -24[rbp], 0
	mov	DWORD PTR -48[rbp], 7
	lea	rax, .LC155[rip]
	mov	QWORD PTR -32[rbp], rax
	lea	rax, native_c_int[rip]
	mov	QWORD PTR -24[rbp], rax
	push	QWORD PTR -24[rbp]
	push	QWORD PTR -32[rbp]
	push	QWORD PTR -40[rbp]
	push	QWORD PTR -48[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -80[rbp], 0
	mov	QWORD PTR -72[rbp], 0
	mov	QWORD PTR -64[rbp], 0
	mov	QWORD PTR -56[rbp], 0
	mov	DWORD PTR -80[rbp], 4
	lea	rax, .LC155[rip]
	mov	QWORD PTR -64[rbp], rax
	push	QWORD PTR -56[rbp]
	push	QWORD PTR -64[rbp]
	push	QWORD PTR -72[rbp]
	push	QWORD PTR -80[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	rax, QWORD PTR SAO_TAG_global[rip]
	lea	rsp, -16[rbp]
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE82:
	.size	saolang_init, .-saolang_init
	.globl	sao_microtime
	.bss
	.align 8
	.type	sao_microtime, @object
	.size	sao_microtime, 8
sao_microtime:
	.zero	8
	.section	.rodata
.LC156:
	.string	"%llu: "
.LC157:
	.string	"<="
.LC158:
	.string	"=>"
.LC159:
	.string	"==>"
	.text
	.globl	sao_parse
	.type	sao_parse, @function
sao_parse:
.LFB83:
	.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]
	mov	rdi, rax
	call	sao_read_line
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
	mov	QWORD PTR -24[rbp], rax
	jmp	.L535
.L543:
	mov	eax, DWORD PTR argta[rip+8]
	test	eax, eax
	je	.L536
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rbx, rax
	mov	rdx, QWORD PTR sao_microtime[rip]
	mov	eax, 0
	call	rdx
	mov	rsi, rax
	lea	rdi, .LC156[rip]
	mov	eax, 0
	call	rbx
.L536:
	mov	eax, DWORD PTR argta[rip]
	test	eax, eax
	jne	.L537
	mov	eax, DWORD PTR argta[rip+8]
	test	eax, eax
	je	.L538
.L537:
	mov	rdx, QWORD PTR sao_print[rip]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rax
	lea	rdi, .LC157[rip]
	call	rdx
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	lea	rdi, .LC53[rip]
	mov	eax, 0
	call	rdx
.L538:
	cmp	QWORD PTR -48[rbp], 0
	je	.L539
	mov	rcx, QWORD PTR sao_eval[rip]
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
	mov	QWORD PTR -32[rbp], rax
	mov	eax, DWORD PTR argta[rip+8]
	test	eax, eax
	je	.L540
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rbx, rax
	mov	rdx, QWORD PTR sao_microtime[rip]
	mov	eax, 0
	call	rdx
	mov	rsi, rax
	lea	rdi, .LC156[rip]
	mov	eax, 0
	call	rbx
.L540:
	mov	eax, DWORD PTR argta[rip]
	test	eax, eax
	jne	.L541
	mov	eax, DWORD PTR argta[rip+8]
	test	eax, eax
	je	.L535
.L541:
	mov	rdx, QWORD PTR sao_print[rip]
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC158[rip]
	call	rdx
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	lea	rsi, .LC53[rip]
	lea	rdi, .LC67[rip]
	mov	eax, 0
	call	rdx
	jmp	.L535
.L539:
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	eax, DWORD PTR argta[rip]
	test	eax, eax
	jne	.L542
	mov	eax, DWORD PTR argta[rip+8]
	test	eax, eax
	je	.L535
.L542:
	mov	rdx, QWORD PTR sao_print[rip]
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC159[rip]
	call	rdx
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	lea	rdi, .LC53[rip]
	mov	eax, 0
	call	rdx
.L535:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	sao_load_expr
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	jne	.L543
	mov	rax, QWORD PTR -32[rbp]
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE83:
	.size	sao_parse, .-sao_parse
	.section	.rodata
	.align 8
.LC160:
	.string	" SaoLang (R) v0.0.9 - Wanjo Chan (c) 2020\n"
	.text
	.globl	print_version
	.type	print_version, @function
print_version:
.LFB84:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	lea	rdi, .LC160[rip]
	mov	eax, 0
	call	rdx
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE84:
	.size	print_version, .-print_version
	.section	.rodata
	.align 8
.LC161:
	.string	"Usage\t : sao [options] [script.sao | -]]\nOptions\t :\n\th:\tHelp\n\tv:\tVersion\n\ti:\tInteractive\n\tp:\tPrint final result\n\td:\tDev only\n\te:\tEval\n\ts:\tStrict mode\n\tl:\tLisp syntax\n"
	.text
	.globl	print_help
	.type	print_help, @function
print_help:
.LFB85:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	lea	rdi, .LC161[rip]
	mov	eax, 0
	call	rdx
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE85:
	.size	print_help, .-print_help
	.section	.rodata
.LC162:
	.string	"strcmp"
.LC163:
	.string	"atof"
.LC164:
	.string	"atol"
.LC165:
	.string	"strchr"
.LC166:
	.string	"@"
.LC167:
	.string	"@^"
.LC168:
	.string	"-"
.LC169:
	.string	"free"
.LC170:
	.string	"FILE NOT FOUND: %s"
	.text
	.globl	main
	.type	main, @function
main:
.LFB86:
	.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, 832
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	mov	DWORD PTR -820[rbp], edi
	mov	QWORD PTR -832[rbp], rsi
	mov	QWORD PTR -840[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	lea	rsi, .LC21[rip]
	mov	edi, 37
	call	libc_
	mov	QWORD PTR sao_microtime[rip], rax
	lea	rax, sao_print_default[rip]
	mov	QWORD PTR sao_print[rip], rax
	lea	rsi, .LC162[rip]
	mov	edi, 7
	call	libc_
	mov	QWORD PTR sao_strcmp[rip], rax
	lea	rsi, .LC163[rip]
	mov	edi, 28
	call	libc_
	mov	QWORD PTR sao_atof[rip], rax
	lea	rsi, .LC164[rip]
	mov	edi, 26
	call	libc_
	mov	QWORD PTR sao_atol[rip], rax
	lea	rsi, .LC165[rip]
	mov	edi, 8
	call	libc_
	mov	QWORD PTR sao_strchr[rip], rax
	lea	rsi, .LC27[rip]
	mov	edi, 32
	call	libc_
	mov	rbx, rax
	lea	rsi, .LC24[rip]
	mov	edi, 33
	call	libc_
	mov	r12, rax
	lea	rsi, .LC19[rip]
	mov	edi, 34
	call	libc_
	mov	rdi, rax
	mov	eax, 0
	call	r12
	mov	esi, 32768
	mov	rdi, rax
	mov	eax, 0
	call	rbx
	mov	rbx, QWORD PTR SAO_TAG_nil[rip]
	mov	rdx, QWORD PTR SAO_TAG_nil[rip]
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
	mov	rsi, rdx
	mov	rdi, rax
	call	cons
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	QWORD PTR SAO_TAG_global[rip], rax
	mov	rbx, QWORD PTR SAO_TAG_nil[rip]
	mov	rdx, QWORD PTR SAO_TAG_nil[rip]
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
	mov	rsi, rdx
	mov	rdi, rax
	call	cons
	mov	rsi, rbx
	mov	rdi, rax
	call	cons
	mov	QWORD PTR SAO_TAG_argv[rip], rax
	mov	QWORD PTR -672[rbp], 0
	mov	QWORD PTR -664[rbp], 0
	mov	QWORD PTR -656[rbp], 0
	mov	QWORD PTR -648[rbp], 0
	mov	DWORD PTR -672[rbp], 4
	lea	rax, .LC166[rip]
	mov	QWORD PTR -656[rbp], rax
	push	QWORD PTR -648[rbp]
	push	QWORD PTR -656[rbp]
	push	QWORD PTR -664[rbp]
	push	QWORD PTR -672[rbp]
	call	sao_new
	add	rsp, 32
	mov	QWORD PTR SAO_TAG_at[rip], rax
	mov	rdx, QWORD PTR SAO_TAG_global[rip]
	mov	rcx, QWORD PTR SAO_TAG_at[rip]
	mov	rax, QWORD PTR SAO_TAG_at[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	sao_var
	mov	QWORD PTR -640[rbp], 0
	mov	QWORD PTR -632[rbp], 0
	mov	QWORD PTR -624[rbp], 0
	mov	QWORD PTR -616[rbp], 0
	mov	DWORD PTR -640[rbp], 4
	lea	rax, .LC167[rip]
	mov	QWORD PTR -624[rbp], rax
	push	QWORD PTR -616[rbp]
	push	QWORD PTR -624[rbp]
	push	QWORD PTR -632[rbp]
	push	QWORD PTR -640[rbp]
	call	sao_new
	add	rsp, 32
	mov	QWORD PTR SAO_TAG_quote[rip], rax
	mov	rdx, QWORD PTR SAO_TAG_global[rip]
	mov	rcx, QWORD PTR SAO_TAG_quote[rip]
	mov	rax, QWORD PTR SAO_TAG_quote[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	sao_var
	lea	rax, .LC168[rip]
	mov	QWORD PTR -792[rbp], rax
	mov	DWORD PTR -808[rbp], 0
	cmp	DWORD PTR -820[rbp], 1
	jle	.L548
	mov	QWORD PTR -544[rbp], 40
	mov	QWORD PTR -536[rbp], 0
	lea	rdx, -528[rbp]
	mov	eax, 0
	mov	ecx, 62
	mov	rdi, rdx
	rep stosq
	lea	rax, -544[rbp]
	add	rax, 1
	mov	QWORD PTR -784[rbp], rax
	mov	DWORD PTR -804[rbp], 1
	jmp	.L549
.L552:
	mov	rax, QWORD PTR -784[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -784[rbp], rdx
	mov	BYTE PTR [rax], 32
	mov	eax, DWORD PTR -804[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -832[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -776[rbp], rax
	jmp	.L550
.L551:
	mov	rdx, QWORD PTR -776[rbp]
	lea	rax, 1[rdx]
	mov	QWORD PTR -776[rbp], rax
	mov	rax, QWORD PTR -784[rbp]
	lea	rcx, 1[rax]
	mov	QWORD PTR -784[rbp], rcx
	movzx	edx, BYTE PTR [rdx]
	mov	BYTE PTR [rax], dl
.L550:
	mov	rax, QWORD PTR -776[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L551
	add	DWORD PTR -804[rbp], 1
.L549:
	mov	eax, DWORD PTR -804[rbp]
	cmp	eax, DWORD PTR -820[rbp]
	jl	.L552
	mov	rax, QWORD PTR -784[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -784[rbp], rdx
	mov	BYTE PTR [rax], 41
	mov	rax, QWORD PTR -784[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -784[rbp], rdx
	mov	BYTE PTR [rax], 0
	lea	rax, -544[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	sao_stream_new
	mov	QWORD PTR -736[rbp], rax
	mov	rax, QWORD PTR -736[rbp]
	mov	rdi, rax
	call	sao_load_expr
	mov	QWORD PTR -728[rbp], rax
	mov	rax, QWORD PTR -728[rbp]
	mov	QWORD PTR -768[rbp], rax
	jmp	.L553
.L567:
	mov	rax, QWORD PTR -768[rbp]
	mov	rdi, rax
	call	car
	mov	QWORD PTR -720[rbp], rax
	mov	rax, QWORD PTR -768[rbp]
	mov	rdi, rax
	call	cdr
	mov	QWORD PTR -768[rbp], rax
	cmp	QWORD PTR -720[rbp], 0
	jne	.L554
	jmp	.L553
.L554:
	mov	QWORD PTR -760[rbp], 0
	mov	QWORD PTR -752[rbp], 1
	cmp	QWORD PTR -720[rbp], 0
	je	.L555
	mov	rax, QWORD PTR -720[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L555
	mov	rax, QWORD PTR -720[rbp]
	mov	rdi, rax
	call	car
	mov	QWORD PTR -712[rbp], rax
	cmp	QWORD PTR -712[rbp], 0
	je	.L556
	mov	rax, QWORD PTR -712[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	QWORD PTR -760[rbp], rax
.L556:
	mov	rax, QWORD PTR -720[rbp]
	mov	rdi, rax
	call	cadr
	mov	QWORD PTR -704[rbp], rax
	cmp	QWORD PTR -704[rbp], 0
	je	.L576
	mov	rax, QWORD PTR -704[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	jne	.L558
	mov	rax, QWORD PTR -704[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -752[rbp], rax
	jmp	.L576
.L558:
	mov	rdx, QWORD PTR sao_atol[rip]
	mov	rax, QWORD PTR -704[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rdi, rax
	mov	eax, 0
	call	rdx
	mov	QWORD PTR -752[rbp], rax
	jmp	.L576
.L555:
	cmp	QWORD PTR -720[rbp], 0
	je	.L559
	mov	rax, QWORD PTR -720[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	QWORD PTR -760[rbp], rax
	jmp	.L559
.L576:
	nop
.L559:
	cmp	QWORD PTR -760[rbp], 0
	je	.L553
	mov	rbx, QWORD PTR SAO_TAG_argv[rip]
	mov	QWORD PTR -576[rbp], 0
	mov	QWORD PTR -568[rbp], 0
	mov	QWORD PTR -560[rbp], 0
	mov	QWORD PTR -552[rbp], 0
	mov	DWORD PTR -576[rbp], 2
	mov	rax, QWORD PTR -752[rbp]
	mov	QWORD PTR -552[rbp], rax
	push	QWORD PTR -552[rbp]
	push	QWORD PTR -560[rbp]
	push	QWORD PTR -568[rbp]
	push	QWORD PTR -576[rbp]
	call	sao_new
	add	rsp, 32
	mov	r12, rax
	mov	QWORD PTR -608[rbp], 0
	mov	QWORD PTR -600[rbp], 0
	mov	QWORD PTR -592[rbp], 0
	mov	QWORD PTR -584[rbp], 0
	mov	DWORD PTR -608[rbp], 4
	mov	rax, QWORD PTR -760[rbp]
	mov	QWORD PTR -592[rbp], rax
	push	QWORD PTR -584[rbp]
	push	QWORD PTR -592[rbp]
	push	QWORD PTR -600[rbp]
	push	QWORD PTR -608[rbp]
	call	sao_new
	add	rsp, 32
	mov	rdx, rbx
	mov	rsi, r12
	mov	rdi, rax
	call	sao_var
	mov	DWORD PTR -800[rbp], 0
	mov	rdx, QWORD PTR sao_strcmp[rip]
	mov	rax, QWORD PTR -760[rbp]
	lea	rsi, .LC168[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rdx
	test	eax, eax
	jne	.L560
	add	DWORD PTR -808[rbp], 1
	jmp	.L561
.L560:
	mov	DWORD PTR -796[rbp], 0
	jmp	.L562
.L564:
	mov	rcx, QWORD PTR sao_strcmp[rip]
	mov	eax, DWORD PTR -796[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, argt_names[rip]
	mov	rdx, QWORD PTR [rdx+rax]
	mov	rax, QWORD PTR -760[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	mov	eax, 0
	call	rcx
	test	eax, eax
	jne	.L563
	mov	eax, DWORD PTR -796[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, argta[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, eax
	mov	rax, QWORD PTR -752[rbp]
	add	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -796[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, argta[rip]
	mov	DWORD PTR [rdx+rax], ecx
	add	DWORD PTR -800[rbp], 1
	jmp	.L561
.L563:
	add	DWORD PTR -796[rbp], 1
.L562:
	cmp	DWORD PTR -796[rbp], 7
	jle	.L564
.L561:
	cmp	DWORD PTR -800[rbp], 0
	jne	.L565
	mov	rax, QWORD PTR -760[rbp]
	mov	QWORD PTR -792[rbp], rax
	jmp	.L553
.L565:
	add	DWORD PTR -808[rbp], 1
.L553:
	cmp	QWORD PTR -768[rbp], 0
	jne	.L567
	lea	rsi, .LC169[rip]
	mov	edi, 24
	call	libc_
	mov	rdx, rax
	mov	rax, QWORD PTR -736[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	rdx
	mov	rdx, QWORD PTR SAO_TAG_global[rip]
	mov	rcx, QWORD PTR SAO_TAG_argv[rip]
	mov	rax, QWORD PTR SAO_TAG_argv[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	sao_var
.L548:
	mov	rdx, QWORD PTR sao_strcmp[rip]
	mov	rax, QWORD PTR -792[rbp]
	mov	rsi, rax
	lea	rdi, .LC168[rip]
	mov	eax, 0
	call	rdx
	test	eax, eax
	jne	.L568
	lea	rsi, .LC19[rip]
	mov	edi, 34
	call	libc_
	mov	QWORD PTR -744[rbp], rax
	cmp	DWORD PTR -808[rbp], 0
	jne	.L569
	mov	eax, 0
	call	print_help
	mov	eax, DWORD PTR argta[rip]
	add	eax, 1
	mov	DWORD PTR argta[rip], eax
	mov	eax, DWORD PTR argta[rip+12]
	add	eax, 1
	mov	DWORD PTR argta[rip+12], eax
	jmp	.L570
.L569:
	mov	eax, DWORD PTR argta[rip]
	test	eax, eax
	je	.L570
	mov	eax, DWORD PTR argta[rip+12]
	add	eax, 1
	mov	DWORD PTR argta[rip+12], eax
	add	DWORD PTR -808[rbp], 1
.L570:
	mov	eax, DWORD PTR argta[rip+12]
	test	eax, eax
	je	.L571
	mov	eax, 0
	call	print_version
	cmp	DWORD PTR -808[rbp], 1
	jne	.L571
	lea	rsi, .LC54[rip]
	mov	edi, 38
	call	libc_
	mov	rdx, rax
	mov	edi, 0
	mov	eax, 0
	call	rdx
.L571:
	mov	eax, DWORD PTR argta[rip+28]
	test	eax, eax
	je	.L572
	mov	eax, 0
	call	print_help
	lea	rsi, .LC54[rip]
	mov	edi, 38
	call	libc_
	mov	rdx, rax
	mov	edi, 0
	mov	eax, 0
	call	rdx
	jmp	.L572
.L568:
	lea	rsi, .LC114[rip]
	mov	edi, 16
	call	libc_
	mov	rdx, rax
	mov	rax, QWORD PTR -792[rbp]
	lea	rsi, .LC5[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rdx
	mov	QWORD PTR -744[rbp], rax
	cmp	QWORD PTR -744[rbp], 0
	jne	.L572
	lea	rsi, .LC51[rip]
	mov	edi, 0
	call	libc_
	mov	rbx, rax
	lea	rsi, .LC15[rip]
	mov	edi, 36
	call	libc_
	mov	rcx, rax
	mov	rax, QWORD PTR -792[rbp]
	mov	rdx, rax
	lea	rsi, .LC170[rip]
	mov	rdi, rcx
	mov	eax, 0
	call	rbx
	lea	rsi, .LC51[rip]
	mov	edi, 0
	call	libc_
	mov	rbx, rax
	lea	rsi, .LC15[rip]
	mov	edi, 36
	call	libc_
	lea	rsi, .LC53[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rbx
	lea	rsi, .LC54[rip]
	mov	edi, 38
	call	libc_
	mov	rdx, rax
	mov	edi, 1
	mov	eax, 0
	call	rdx
.L572:
	mov	rax, QWORD PTR -744[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	sao_stream_new
	mov	QWORD PTR -696[rbp], rax
	mov	rax, QWORD PTR SAO_TAG_nil[rip]
	mov	QWORD PTR -688[rbp], rax
	mov	eax, 0
	call	saolang_init
	mov	QWORD PTR -688[rbp], rax
	mov	rdx, QWORD PTR -688[rbp]
	mov	rax, QWORD PTR -696[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	sao_parse
	mov	QWORD PTR -680[rbp], rax
	mov	eax, DWORD PTR argta[rip+4]
	test	eax, eax
	je	.L573
	mov	rdx, QWORD PTR sao_print[rip]
	mov	rax, QWORD PTR -680[rbp]
	mov	rsi, rax
	mov	edi, 0
	call	rdx
	lea	rsi, .LC59[rip]
	mov	edi, 10
	call	libc_
	mov	rdx, rax
	lea	rdi, .LC53[rip]
	mov	eax, 0
	call	rdx
.L573:
	lea	rsi, .LC116[rip]
	mov	edi, 20
	call	libc_
	mov	rdx, rax
	mov	rax, QWORD PTR -744[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	rdx
	lea	rsi, .LC169[rip]
	mov	edi, 24
	call	libc_
	mov	rdx, rax
	mov	rax, QWORD PTR -696[rbp]
	mov	rdi, rax
	mov	eax, 0
	call	rdx
	mov	eax, 0
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L575
	call	__stack_chk_fail@PLT
.L575:
	lea	rsp, -16[rbp]
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE86:
	.size	main, .-main
	.local	ffic_dlsym.12
	.comm	ffic_dlsym.12,8,8
	.local	ffic_dlopen.11
	.comm	ffic_dlopen.11,8,8
	.local	ffic_gettimeofday.10
	.comm	ffic_gettimeofday.10,8,8
	.section	.rodata
	.align 8
	.type	epoch.9, @object
	.size	epoch.9, 8
epoch.9:
	.quad	116444736000000000
	.align 8
	.type	__func__.8, @object
	.size	__func__.8, 14
__func__.8:
	.string	"native_setcar"
	.align 8
	.type	__func__.7, @object
	.size	__func__.7, 14
__func__.7:
	.string	"native_setcdr"
	.align 8
	.type	__func__.6, @object
	.size	__func__.6, 10
__func__.6:
	.string	"native_gt"
	.align 8
	.type	__func__.5, @object
	.size	__func__.5, 10
__func__.5:
	.string	"native_lt"
	.align 8
	.type	__func__.4, @object
	.size	__func__.4, 11
__func__.4:
	.string	"native_add"
	.align 8
	.type	__func__.3, @object
	.size	__func__.3, 11
__func__.3:
	.string	"native_sub"
	.align 8
	.type	__func__.2, @object
	.size	__func__.2, 11
__func__.2:
	.string	"native_div"
	.align 8
	.type	__func__.1, @object
	.size	__func__.1, 12
__func__.1:
	.string	"native_vget"
	.align 8
	.type	__func__.0, @object
	.size	__func__.0, 12
__func__.0:
	.string	"native_vset"
	.align 16
.LC64:
	.long	0
	.long	-2147483648
	.long	0
	.long	0
	.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	"29824433.c"
	.text
	.global	ffic_os
	.data
	.align	2
	.type	ffic_os, %object
	.size	ffic_os, 4
ffic_os:
	.word	1
	.global	ffic_libcname
	.section	.rodata
	.align	2
.LC0:
	.ascii	"msvcrt\000"
	.data
	.align	2
	.type	ffic_libcname, %object
	.size	ffic_libcname, 4
ffic_libcname:
	.word	.LC0
	.global	ffic_sosuffix
	.section	.rodata
	.align	2
.LC1:
	.ascii	".dll\000"
	.data
	.align	2
	.type	ffic_sosuffix, %object
	.size	ffic_sosuffix, 4
ffic_sosuffix:
	.word	.LC1
	.comm	ffic_printf,4,4
	.text
	.align	2
	.global	_ffic_strcat
	.syntax unified
	.arm
	.fpu softvfp
	.type	_ffic_strcat, %function
_ffic_strcat:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #28
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-8]
	b	.L2
.L3:
	ldr	r2, [fp, #-20]
	add	r3, r2, #1
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-8]
	add	r1, r3, #1
	str	r1, [fp, #-8]
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
.L2:
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L3
	b	.L4
.L5:
	ldr	r2, [fp, #-24]
	add	r3, r2, #1
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-8]
	add	r1, r3, #1
	str	r1, [fp, #-8]
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
.L4:
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L5
	ldr	r3, [fp, #-8]
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	_ffic_strcat, .-_ffic_strcat
	.align	2
	.global	ffic_void
	.syntax unified
	.arm
	.fpu softvfp
	.type	ffic_void, %function
ffic_void:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	mov	r3, #0
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	ffic_void, .-ffic_void
	.align	2
	.global	ffic_core
	.syntax unified
	.arm
	.fpu softvfp
	.type	ffic_core, %function
ffic_core:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #12
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, .L13
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L10
	ldr	r3, .L13
	ldr	r2, .L13+4
	str	r2, [r3]
.L10:
	ldr	r3, .L13+8
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L11
	ldr	r3, .L13+8
	ldr	r2, .L13+12
	str	r2, [r3]
.L11:
	ldr	r3, .L13
	ldr	r4, [r3]
	ldr	r3, .L13+8
	ldr	r3, [r3]
	ldr	r1, .L13+16
	ldr	r0, [fp, #-16]
	blx	r3
	mov	r3, r0
	ldr	r1, [fp, #-20]
	mov	r0, r3
	blx	r4
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L14:
	.align	2
.L13:
	.word	ffic_dlsym.4285
	.word	GetProcAddress
	.word	ffic_dlopen.4286
	.word	LoadLibraryA
	.word	257
	.size	ffic_core, .-ffic_core
	.section	.rodata
	.align	2
.LC2:
	.ascii	"WARN: 404 %s(%s).%s \012\000"
	.align	2
.LC3:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	ffic_raw
	.syntax unified
	.arm
	.fpu softvfp
	.type	ffic_raw, %function
ffic_raw:
	@ args = 0, pretend = 0, frame = 544
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #548
	str	r0, [fp, #-544]
	str	r1, [fp, #-548]
	str	r2, [fp, #-552]
	ldr	r3, .L24
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	sub	r3, fp, #528
	mov	r2, #512
	mov	r1, #0
	mov	r0, r3
	bl	memset
	sub	r3, fp, #528
	str	r3, [fp, #-536]
	ldr	r3, [fp, #-544]
	cmp	r3, #0
	beq	.L16
	ldr	r3, [fp, #-544]
	b	.L17
.L16:
	ldr	r3, .L24+4
	ldr	r3, [r3]
.L17:
	ldr	r2, [fp, #-552]
	cmp	r2, #0
	beq	.L18
	ldr	r2, [fp, #-552]
	b	.L19
.L18:
	ldr	r2, .L24+8
	ldr	r2, [r2]
.L19:
	mov	r1, r3
	ldr	r0, [fp, #-536]
	bl	_ffic_strcat
	ldr	r1, [fp, #-548]
	ldr	r0, [fp, #-536]
	bl	ffic_core
	str	r0, [fp, #-532]
	ldr	r3, [fp, #-532]
	cmp	r3, #0
	bne	.L20
	ldr	r3, .L24+12
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L21
	ldr	r3, .L24+12
	ldr	r2, .L24+16
	str	r2, [r3]
.L21:
	ldr	r3, .L24+12
	ldr	r4, [r3]
	ldr	r3, [fp, #-548]
	ldr	r2, [fp, #-536]
	ldr	r1, [fp, #-544]
	ldr	r0, .L24+20
	blx	r4
.L20:
	ldr	r3, [fp, #-532]
	ldr	r2, .L24
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L23
	bl	__stack_chk_fail
.L23:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L25:
	.align	2
.L24:
	.word	.LC3
	.word	ffic_libcname
	.word	ffic_sosuffix
	.word	ffic_printf
	.word	printf
	.word	.LC2
	.size	ffic_raw, .-ffic_raw
	.comm	ffic_std,12,4
	.section	.rodata
	.align	2
.LC4:
	.ascii	"_fdopen\000"
	.align	2
.LC5:
	.ascii	"fdopen\000"
	.align	2
.LC6:
	.ascii	"_dup\000"
	.align	2
.LC7:
	.ascii	"dup\000"
	.align	2
.LC8:
	.ascii	"r\000"
	.align	2
.LC9:
	.ascii	"w\000"
	.text
	.align	2
	.global	ffic_os_std
	.syntax unified
	.arm
	.fpu softvfp
	.type	ffic_os_std, %function
ffic_os_std:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #12
	str	r0, [fp, #-16]
	ldr	r2, .L35
	ldr	r3, [fp, #-16]
	ldr	r3, [r2, r3, lsl #2]
	cmp	r3, #0
	beq	.L27
	ldr	r2, .L35
	ldr	r3, [fp, #-16]
	ldr	r3, [r2, r3, lsl #2]
	b	.L28
.L27:
	ldr	r3, .L35+4
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L29
	ldr	r3, .L35+8
	b	.L30
.L29:
	ldr	r3, .L35+12
.L30:
	mov	r2, #0
	mov	r1, r3
	mov	r0, #0
	bl	ffic_raw
	mov	r4, r0
	ldr	r3, .L35+4
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L31
	ldr	r3, .L35+16
	b	.L32
.L31:
	ldr	r3, .L35+20
.L32:
	mov	r2, #0
	mov	r1, r3
	mov	r0, #0
	bl	ffic_raw
	mov	r3, r0
	ldr	r0, [fp, #-16]
	blx	r3
	mov	r2, r0
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L33
	ldr	r3, .L35+24
	b	.L34
.L33:
	ldr	r3, .L35+28
.L34:
	mov	r1, r3
	mov	r0, r2
	blx	r4
	mov	r2, r0
	ldr	r1, .L35
	ldr	r3, [fp, #-16]
	str	r2, [r1, r3, lsl #2]
	ldr	r2, .L35
	ldr	r3, [fp, #-16]
	ldr	r3, [r2, r3, lsl #2]
.L28:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L36:
	.align	2
.L35:
	.word	ffic_std
	.word	ffic_os
	.word	.LC4
	.word	.LC5
	.word	.LC6
	.word	.LC7
	.word	.LC8
	.word	.LC9
	.size	ffic_os_std, .-ffic_os_std
	.local	_ffic_os_sleep
	.comm	_ffic_os_sleep,4,4
	.align	2
	.global	ffic_usleep
	.syntax unified
	.arm
	.fpu softvfp
	.type	ffic_usleep, %function
ffic_usleep:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, .L41
	ldr	r2, [r3]
	ldr	r3, .L41+4
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L38
	ldr	r3, [fp, #-8]
	ldr	r1, .L41+8
	smull	r0, r1, r3, r1
	asr	r1, r1, #6
	asr	r3, r3, #31
	sub	r3, r1, r3
	b	.L39
.L38:
	ldr	r3, [fp, #-8]
.L39:
	mov	r0, r3
	blx	r2
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L42:
	.align	2
.L41:
	.word	_ffic_os_sleep
	.word	ffic_os
	.word	274877907
	.size	ffic_usleep, .-ffic_usleep
	.align	2
	.global	ffic_msleep
	.syntax unified
	.arm
	.fpu softvfp
	.type	ffic_msleep, %function
ffic_msleep:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, .L47
	ldr	r1, [r3]
	ldr	r3, .L47+4
	ldr	r3, [r3]
	cmp	r3, #1
	beq	.L44
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #5
	sub	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	b	.L45
.L44:
	ldr	r3, [fp, #-8]
.L45:
	mov	r0, r3
	blx	r1
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L48:
	.align	2
.L47:
	.word	_ffic_os_sleep
	.word	ffic_os
	.size	ffic_msleep, .-ffic_msleep
	.align	2
	.global	ffic_sleep
	.syntax unified
	.arm
	.fpu softvfp
	.type	ffic_sleep, %function
ffic_sleep:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #12
	str	r0, [fp, #-16]
	ldr	r3, .L53
	ldr	r4, [r3]
	ldr	r3, .L53+4
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L50
	ldr	r2, [fp, #-16]
	mov	r3, r2
	lsl	r3, r3, #5
	sub	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	b	.L51
.L50:
	ldr	r1, [fp, #-16]
	mov	r2, r1
	lsl	r2, r2, #5
	sub	r2, r2, r1
	lsl	r3, r2, #6
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r1
	lsl	r3, r3, #6
.L51:
	mov	r0, r3
	blx	r4
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L54:
	.align	2
.L53:
	.word	_ffic_os_sleep
	.word	ffic_os
	.size	ffic_sleep, .-ffic_sleep
	.section	.rodata
	.align	2
.LC10:
	.ascii	"GetSystemTimePreciseAsFileTime\000"
	.align	2
.LC11:
	.ascii	"kernel32\000"
	.align	2
.LC12:
	.ascii	"GetSystemTimeAsFileTime\000"
	.global	__aeabi_uldivmod
	.align	2
.LC13:
	.ascii	"gettimeofday\000"
	.align	2
.LC14:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	ffic_microtime
	.syntax unified
	.arm
	.fpu softvfp
	.type	ffic_microtime, %function
ffic_microtime:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #48
	ldr	r3, .L63
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	mov	r3,#0
	ldr	r3, .L63+4
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L56
	ldr	r3, .L63+8
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L57
	mov	r2, #0
	ldr	r1, .L63+12
	ldr	r0, .L63+16
	bl	ffic_raw
	mov	r3, r0
	ldr	r2, .L63+8
	str	r3, [r2]
.L57:
	ldr	r3, .L63+8
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L58
	mov	r2, #0
	ldr	r1, .L63+20
	ldr	r0, .L63+16
	bl	ffic_raw
	mov	r3, r0
	ldr	r2, .L63+8
	str	r3, [r2]
.L58:
	ldr	r3, .L63+8
	ldr	r3, [r3]
	sub	r2, fp, #40
	mov	r0, r2
	blx	r3
	ldr	r3, [fp, #-36]
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	mov	r3, r0
	mov	r2, #0
	ldr	r1, [fp, #-40]
	mov	r0, r1
	mov	r1, #0
	orr	r6, r2, r0
	orr	r7, r3, r1
	str	r6, [fp, #-76]
	str	r7, [fp, #-72]
	ldr	r3, .L63+24
	ldmia	r3, {r2-r3}
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	subs	r4, r0, r2
	sbc	r5, r1, r3
	str	r4, [fp, #-68]
	str	r5, [fp, #-64]
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	mov	r2, #10
	mov	r3, #0
	bl	__aeabi_uldivmod
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	ldr	r2, .L63+28
	mov	r3, #0
	bl	__aeabi_uldivmod
	mov	r2, r0
	mov	r3, r1
	mov	r3, r2
	str	r3, [fp, #-48]
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	ldr	r2, .L63+28
	mov	r3, #0
	bl	__aeabi_uldivmod
	mov	r3, r2
	str	r3, [fp, #-44]
	b	.L59
.L56:
	ldr	r3, .L63+8
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L60
	mov	r2, #0
	ldr	r1, .L63+32
	mov	r0, #0
	bl	ffic_raw
	mov	r3, r0
	ldr	r2, .L63+8
	str	r3, [r2]
.L60:
	ldr	r3, .L63+8
	ldr	r3, [r3]
	sub	r2, fp, #48
	mov	r1, #0
	mov	r0, r2
	blx	r3
.L59:
	ldr	r3, [fp, #-48]
	mov	r0, r3
	asr	r1, r0, #31
	mov	r2, r0
	mov	r3, r1
	mov	r4, #0
	mov	r5, #0
	lsl	r5, r3, #5
	orr	r5, r5, r2, lsr #27
	lsl	r4, r2, #5
	mov	r2, r4
	mov	r3, r5
	subs	r2, r2, r0
	sbc	r3, r3, r1
	mov	r4, #0
	mov	r5, #0
	lsl	r5, r3, #2
	orr	r5, r5, r2, lsr #30
	lsl	r4, r2, #2
	mov	r2, r4
	mov	r3, r5
	adds	r2, r2, r0
	adc	r3, r3, r1
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #3
	orr	r1, r1, r2, lsr #29
	lsl	r0, r2, #3
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r3, [fp, #-44]
	mov	r0, r3
	asr	r1, r0, #31
	mov	r2, #1000
	mov	r3, #0
	bl	__aeabi_uldivmod
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #1000
	mov	r3, #0
	bl	__aeabi_uldivmod
	adds	r8, r4, r2
	adc	r9, r5, r3
	mov	r2, r8
	mov	r3, r9
	ldr	r1, .L63
	ldr	r0, [r1]
	ldr	r1, [fp, #-32]
	eors	r0, r1, r0
	mov	r1, #0
	beq	.L62
	bl	__stack_chk_fail
.L62:
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
.L64:
	.align	2
.L63:
	.word	.LC14
	.word	ffic_os
	.word	ffic_gettimeofday.4323
	.word	.LC10
	.word	.LC11
	.word	.LC12
	.word	epoch.4324
	.word	1000000
	.word	.LC13
	.size	ffic_microtime, .-ffic_microtime
	.section	.rodata
	.align	2
.LC15:
	.ascii	"Sleep\000"
	.align	2
.LC16:
	.ascii	"usleep\000"
	.align	2
.LC17:
	.ascii	"stderr\000"
	.align	2
.LC18:
	.ascii	"2\000"
	.align	2
.LC19:
	.ascii	"stdout\000"
	.align	2
.LC20:
	.ascii	"1\000"
	.align	2
.LC21:
	.ascii	"stdin\000"
	.align	2
.LC22:
	.ascii	"0\000"
	.align	2
.LC23:
	.ascii	"microtime\000"
	.align	2
.LC24:
	.ascii	"sleep\000"
	.align	2
.LC25:
	.ascii	"msleep\000"
	.align	2
.LC26:
	.ascii	"fileno\000"
	.align	2
.LC27:
	.ascii	"_fileno\000"
	.align	2
.LC28:
	.ascii	"void\000"
	.align	2
.LC29:
	.ascii	"setmode\000"
	.align	2
.LC30:
	.ascii	"_setmode\000"
	.align	2
.LC31:
	.ascii	"strdup\000"
	.align	2
.LC32:
	.ascii	"_strdup\000"
	.text
	.align	2
	.global	ffic
	.syntax unified
	.arm
	.fpu softvfp
	.type	ffic, %function
ffic:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L66
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #99
	bne	.L66
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L66
	mov	r3, #0
	str	r3, [fp, #-16]
.L66:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L67
	ldr	r3, .L87
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L68
	ldr	r3, .L87+4
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L69
	mov	r2, #0
	ldr	r1, .L87+8
	ldr	r0, .L87+12
	bl	ffic_raw
	mov	r3, r0
	b	.L70
.L69:
	ldr	r3, .L87+16
	ldr	r3, [r3]
	mov	r2, #0
	ldr	r1, .L87+20
	mov	r0, r3
	bl	ffic_raw
	mov	r3, r0
.L70:
	ldr	r2, .L87
	str	r3, [r2]
.L68:
	ldr	r1, [fp, #-20]
	ldr	r0, .L87+24
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L71
	ldr	r1, [fp, #-20]
	ldr	r0, .L87+28
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L72
.L71:
	mov	r0, #2
	bl	ffic_os_std
	mov	r3, r0
	b	.L73
.L72:
	ldr	r1, [fp, #-20]
	ldr	r0, .L87+32
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L74
	ldr	r1, [fp, #-20]
	ldr	r0, .L87+36
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L75
.L74:
	mov	r0, #1
	bl	ffic_os_std
	mov	r3, r0
	b	.L73
.L75:
	ldr	r1, [fp, #-20]
	ldr	r0, .L87+40
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L76
	ldr	r1, [fp, #-20]
	ldr	r0, .L87+44
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L77
.L76:
	mov	r0, #0
	bl	ffic_os_std
	mov	r3, r0
	b	.L73
.L77:
	ldr	r1, [fp, #-20]
	ldr	r0, .L87+48
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L78
	ldr	r3, .L87+52
	b	.L73
.L78:
	ldr	r1, [fp, #-20]
	ldr	r0, .L87+20
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L79
	ldr	r3, .L87+56
	b	.L73
.L79:
	ldr	r1, [fp, #-20]
	ldr	r0, .L87+60
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L80
	ldr	r3, .L87+64
	b	.L73
.L80:
	ldr	r1, [fp, #-20]
	ldr	r0, .L87+68
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L81
	ldr	r3, .L87+72
	b	.L73
.L81:
	ldr	r1, [fp, #-20]
	ldr	r0, .L87+76
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L82
	ldr	r3, .L87+4
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L82
	ldr	r3, .L87+80
	str	r3, [fp, #-20]
	b	.L67
.L82:
	ldr	r1, [fp, #-20]
	ldr	r0, .L87+84
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L83
	ldr	r3, .L87+88
	b	.L73
.L83:
	ldr	r1, [fp, #-20]
	ldr	r0, .L87+92
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L84
	ldr	r3, .L87+4
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L85
	ldr	r3, .L87+96
	str	r3, [fp, #-20]
	b	.L67
.L85:
	ldr	r3, .L87+88
	str	r3, [fp, #-8]
	b	.L67
.L84:
	ldr	r1, [fp, #-20]
	ldr	r0, .L87+100
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L67
	ldr	r3, .L87+4
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L67
	ldr	r3, .L87+104
	str	r3, [fp, #-20]
.L67:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L86
	mov	r2, #0
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	ffic_raw
	str	r0, [fp, #-8]
.L86:
	ldr	r3, [fp, #-8]
.L73:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L88:
	.align	2
.L87:
	.word	_ffic_os_sleep
	.word	ffic_os
	.word	.LC15
	.word	.LC11
	.word	ffic_libcname
	.word	.LC16
	.word	.LC17
	.word	.LC18
	.word	.LC19
	.word	.LC20
	.word	.LC21
	.word	.LC22
	.word	.LC23
	.word	ffic_microtime
	.word	ffic_usleep
	.word	.LC24
	.word	ffic_sleep
	.word	.LC25
	.word	ffic_msleep
	.word	.LC26
	.word	.LC27
	.word	.LC28
	.word	ffic_void
	.word	.LC29
	.word	.LC30
	.word	.LC31
	.word	.LC32
	.size	ffic, .-ffic
	.comm	libc_a,156,4
	.align	2
	.global	libc_
	.syntax unified
	.arm
	.fpu softvfp
	.type	libc_, %function
libc_:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r2, .L93
	ldr	r3, [fp, #-8]
	ldr	r3, [r2, r3, lsl #2]
	cmp	r3, #0
	beq	.L90
	ldr	r2, .L93
	ldr	r3, [fp, #-8]
	ldr	r3, [r2, r3, lsl #2]
	b	.L92
.L90:
	ldr	r1, [fp, #-12]
	mov	r0, #0
	bl	ffic
	mov	r2, r0
	ldr	r1, .L93
	ldr	r3, [fp, #-8]
	str	r2, [r1, r3, lsl #2]
	ldr	r2, .L93
	ldr	r3, [fp, #-8]
	ldr	r3, [r2, r3, lsl #2]
.L92:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L94:
	.align	2
.L93:
	.word	libc_a
	.size	libc_, .-libc_
	.section	.rodata
	.align	2
.LC33:
	.ascii	"memset\000"
	.align	2
.LC34:
	.ascii	"malloc\000"
	.text
	.align	2
	.global	sao_calloc
	.syntax unified
	.arm
	.fpu softvfp
	.type	sao_calloc, %function
sao_calloc:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #12
	str	r0, [fp, #-16]
	ldr	r1, .L97
	mov	r0, #2
	bl	libc_
	mov	r4, r0
	ldr	r1, .L97+4
	mov	r0, #1
	bl	libc_
	mov	r3, r0
	ldr	r0, [fp, #-16]
	blx	r3
	mov	r3, r0
	ldr	r2, [fp, #-16]
	mov	r1, #0
	mov	r0, r3
	blx	r4
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L98:
	.align	2
.L97:
	.word	.LC33
	.word	.LC34
	.size	sao_calloc, .-sao_calloc
	.global	argt_names
	.section	.rodata
	.align	2
.LC35:
	.ascii	"i\000"
	.align	2
.LC36:
	.ascii	"p\000"
	.align	2
.LC37:
	.ascii	"d\000"
	.align	2
.LC38:
	.ascii	"v\000"
	.align	2
.LC39:
	.ascii	"e\000"
	.align	2
.LC40:
	.ascii	"s\000"
	.align	2
.LC41:
	.ascii	"l\000"
	.align	2
.LC42:
	.ascii	"h\000"
	.data
	.align	2
	.type	argt_names, %object
	.size	argt_names, 32
argt_names:
	.word	.LC35
	.word	.LC36
	.word	.LC37
	.word	.LC38
	.word	.LC39
	.word	.LC40
	.word	.LC41
	.word	.LC42
	.comm	argta,32,4
	.global	stream_names
	.section	.rodata
	.align	2
.LC43:
	.ascii	"file\000"
	.align	2
.LC44:
	.ascii	"char\000"
	.data
	.align	2
	.type	stream_names, %object
	.size	stream_names, 8
stream_names:
	.word	.LC43
	.word	.LC44
	.global	type_names
	.section	.rodata
	.align	2
.LC45:
	.ascii	"list\000"
	.align	2
.LC46:
	.ascii	"vector\000"
	.align	2
.LC47:
	.ascii	"long\000"
	.align	2
.LC48:
	.ascii	"double\000"
	.align	2
.LC49:
	.ascii	"symbol\000"
	.align	2
.LC50:
	.ascii	"string\000"
	.data
	.align	2
	.type	type_names, %object
	.size	type_names, 24
type_names:
	.word	.LC45
	.word	.LC46
	.word	.LC47
	.word	.LC48
	.word	.LC49
	.word	.LC50
	.section	.rodata
	.align	2
.LC51:
	.ascii	"memcpy\000"
	.text
	.align	2
	.global	sao_new
	.syntax unified
	.arm
	.fpu softvfp
	.type	sao_new, %function
sao_new:
	@ args = 24, pretend = 16, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	sub	sp, sp, #16
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #12
	add	ip, fp, #4
	stm	ip, {r0, r1, r2, r3}
	ldr	r1, .L102
	mov	r0, #3
	bl	libc_
	mov	r4, r0
	ldr	r1, .L102+4
	mov	r0, #1
	bl	libc_
	mov	r3, r0
	mov	r0, #24
	blx	r3
	mov	r2, #24
	add	r3, fp, #4
	mov	r1, r3
	blx	r4
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	sub	r3, r3, #4
	cmp	r3, #1
	bhi	.L100
	ldr	r1, .L102+8
	mov	r0, #6
	bl	libc_
	mov	r2, r0
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	mov	r0, r3
	blx	r2
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #8]
	nop
.L100:
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, lr}
	add	sp, sp, #16
	bx	lr
.L103:
	.align	2
.L102:
	.word	.LC51
	.word	.LC34
	.word	.LC31
	.size	sao_new, .-sao_new
	.global	SAO_TAG_nil
	.bss
	.align	2
	.type	SAO_TAG_nil, %object
	.size	SAO_TAG_nil, 4
SAO_TAG_nil:
	.space	4
	.global	SAO_TAG_at
	.align	2
	.type	SAO_TAG_at, %object
	.size	SAO_TAG_at, 4
SAO_TAG_at:
	.space	4
	.global	SAO_TAG_vector
	.align	2
	.type	SAO_TAG_vector, %object
	.size	SAO_TAG_vector, 4
SAO_TAG_vector:
	.space	4
	.global	SAO_TAG_map
	.align	2
	.type	SAO_TAG_map, %object
	.size	SAO_TAG_map, 4
SAO_TAG_map:
	.space	4
	.global	SAO_TAG_argv
	.align	2
	.type	SAO_TAG_argv, %object
	.size	SAO_TAG_argv, 4
SAO_TAG_argv:
	.space	4
	.global	SAO_TAG_global
	.align	2
	.type	SAO_TAG_global, %object
	.size	SAO_TAG_global, 4
SAO_TAG_global:
	.space	4
	.global	SAO_TAG_begin
	.align	2
	.type	SAO_TAG_begin, %object
	.size	SAO_TAG_begin, 4
SAO_TAG_begin:
	.space	4
	.global	SAO_TAG_end
	.align	2
	.type	SAO_TAG_end, %object
	.size	SAO_TAG_end, 4
SAO_TAG_end:
	.space	4
	.global	SAO_TAG_quote
	.align	2
	.type	SAO_TAG_quote, %object
	.size	SAO_TAG_quote, 4
SAO_TAG_quote:
	.space	4
	.comm	sao_atof,4,4
	.comm	sao_atol,4,4
	.comm	sao_strchr,4,4
	.comm	sao_strcmp,4,4
	.text
	.align	2
	.global	cons
	.syntax unified
	.arm
	.fpu softvfp
	.type	cons, %function
cons:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	sub	r3, fp, #28
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-16]
	mov	r2, sp
	sub	r3, fp, #12
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #28
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	cons, .-cons
	.align	2
	.global	car
	.syntax unified
	.arm
	.fpu softvfp
	.type	car, %function
car:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L107
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L107
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	b	.L109
.L107:
	ldr	r3, .L110
	ldr	r3, [r3]
.L109:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L111:
	.align	2
.L110:
	.word	SAO_TAG_nil
	.size	car, .-car
	.align	2
	.global	cdr
	.syntax unified
	.arm
	.fpu softvfp
	.type	cdr, %function
cdr:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L113
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L113
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	b	.L115
.L113:
	ldr	r3, .L116
	ldr	r3, [r3]
.L115:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L117:
	.align	2
.L116:
	.word	SAO_TAG_nil
	.size	cdr, .-cdr
	.align	2
	.global	caar
	.syntax unified
	.arm
	.fpu softvfp
	.type	caar, %function
caar:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L119
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L119
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	beq	.L119
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L119
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	ldr	r3, [r3, #8]
	b	.L121
.L119:
	ldr	r3, .L122
	ldr	r3, [r3]
.L121:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L123:
	.align	2
.L122:
	.word	SAO_TAG_nil
	.size	caar, .-caar
	.align	2
	.global	cdar
	.syntax unified
	.arm
	.fpu softvfp
	.type	cdar, %function
cdar:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L125
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L125
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	beq	.L125
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L125
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	ldr	r3, [r3, #12]
	b	.L127
.L125:
	ldr	r3, .L128
	ldr	r3, [r3]
.L127:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L129:
	.align	2
.L128:
	.word	SAO_TAG_nil
	.size	cdar, .-cdar
	.align	2
	.global	cadr
	.syntax unified
	.arm
	.fpu softvfp
	.type	cadr, %function
cadr:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L131
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L131
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	beq	.L131
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L131
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #8]
	b	.L133
.L131:
	ldr	r3, .L134
	ldr	r3, [r3]
.L133:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L135:
	.align	2
.L134:
	.word	SAO_TAG_nil
	.size	cadr, .-cadr
	.align	2
	.global	cddr
	.syntax unified
	.arm
	.fpu softvfp
	.type	cddr, %function
cddr:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L137
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L137
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	beq	.L137
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L137
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #12]
	b	.L139
.L137:
	ldr	r3, .L140
	ldr	r3, [r3]
.L139:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L141:
	.align	2
.L140:
	.word	SAO_TAG_nil
	.size	cddr, .-cddr
	.align	2
	.global	cadar
	.syntax unified
	.arm
	.fpu softvfp
	.type	cadar, %function
cadar:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L143
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L143
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	beq	.L143
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L143
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	beq	.L143
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L143
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #8]
	b	.L145
.L143:
	ldr	r3, .L146
	ldr	r3, [r3]
.L145:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L147:
	.align	2
.L146:
	.word	SAO_TAG_nil
	.size	cadar, .-cadar
	.align	2
	.global	caddr
	.syntax unified
	.arm
	.fpu softvfp
	.type	caddr, %function
caddr:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L149
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L149
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	beq	.L149
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L149
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	beq	.L149
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L149
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #8]
	b	.L151
.L149:
	ldr	r3, .L152
	ldr	r3, [r3]
.L151:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L153:
	.align	2
.L152:
	.word	SAO_TAG_nil
	.size	caddr, .-caddr
	.align	2
	.global	cdddr
	.syntax unified
	.arm
	.fpu softvfp
	.type	cdddr, %function
cdddr:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L155
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L155
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	beq	.L155
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L155
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	beq	.L155
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L155
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #12]
	b	.L157
.L155:
	ldr	r3, .L158
	ldr	r3, [r3]
.L157:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L159:
	.align	2
.L158:
	.word	SAO_TAG_nil
	.size	cdddr, .-cdddr
	.align	2
	.global	cdadr
	.syntax unified
	.arm
	.fpu softvfp
	.type	cdadr, %function
cdadr:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L161
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L161
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	beq	.L161
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L161
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	beq	.L161
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #8]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L161
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #8]
	ldr	r3, [r3, #12]
	b	.L163
.L161:
	ldr	r3, .L164
	ldr	r3, [r3]
.L163:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L165:
	.align	2
.L164:
	.word	SAO_TAG_nil
	.size	cdadr, .-cdadr
	.align	2
	.global	cadddr
	.syntax unified
	.arm
	.fpu softvfp
	.type	cadddr, %function
cadddr:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L167
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L167
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	beq	.L167
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L167
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	beq	.L167
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L167
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	beq	.L167
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L167
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #12]
	ldr	r3, [r3, #8]
	b	.L169
.L167:
	ldr	r3, .L170
	ldr	r3, [r3]
.L169:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L171:
	.align	2
.L170:
	.word	SAO_TAG_nil
	.size	cadddr, .-cadddr
	.local	sao_print
	.comm	sao_print,4,4
	.align	2
	.global	sao_is_eq
	.syntax unified
	.arm
	.fpu softvfp
	.type	sao_is_eq, %function
sao_is_eq:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	bne	.L173
	ldr	r3, [fp, #-8]
	b	.L174
.L173:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L175
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L175
	ldr	r3, [fp, #-8]
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L179
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #2
	beq	.L177
	cmp	r3, #2
	blt	.L175
	sub	r3, r3, #4
	cmp	r3, #1
	bhi	.L175
	b	.L178
.L177:
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #16]
	cmp	r2, r3
	bne	.L178
	ldr	r3, [fp, #-8]
	b	.L174
.L178:
	ldr	r3, .L180
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	ldr	r0, [r2, #8]
	ldr	r2, [fp, #-12]
	ldr	r2, [r2, #8]
	mov	r1, r2
	blx	r3
	mov	r3, r0
	cmp	r3, #0
	bne	.L175
	ldr	r3, [fp, #-8]
	b	.L174
.L179:
	nop
.L175:
	ldr	r3, .L180+4
	ldr	r3, [r3]
.L174:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L181:
	.align	2
.L180:
	.word	sao_strcmp
	.word	SAO_TAG_nil
	.size	sao_is_eq, .-sao_is_eq
	.align	2
	.global	sao_append
	.syntax unified
	.arm
	.fpu softvfp
	.type	sao_append, %function
sao_append:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #12
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L183
	ldr	r0, [fp, #-16]
	bl	car
	mov	r4, r0
	ldr	r0, [fp, #-16]
	bl	cdr
	mov	r3, r0
	ldr	r1, [fp, #-20]
	mov	r0, r3
	bl	sao_append
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	mov	r3, r0
	b	.L185
.L183:
	ldr	r3, [fp, #-20]
.L185:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	sao_append, .-sao_append
	.align	2
	.global	sao_reverse
	.syntax unified
	.arm
	.fpu softvfp
	.type	sao_reverse, %function
sao_reverse:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #12
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L187
	ldr	r0, [fp, #-16]
	bl	cdr
	mov	r4, r0
	ldr	r0, [fp, #-16]
	bl	car
	mov	r3, r0
	ldr	r1, [fp, #-20]
	mov	r0, r3
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	sao_reverse
	mov	r3, r0
	b	.L189
.L187:
	ldr	r3, [fp, #-20]
.L189:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	sao_reverse, .-sao_reverse
	.align	2
	.global	sao_list_len
	.syntax unified
	.arm
	.fpu softvfp
	.type	sao_list_len, %function
sao_list_len:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L191
	ldr	r0, [fp, #-8]
	bl	cdr
	mov	r3, r0
	mov	r0, r3
	bl	sao_list_len
	mov	r3, r0
	add	r3, r3, #1
	b	.L193
.L191:
	mov	r3, #0
.L193:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	sao_list_len, .-sao_list_len
	.align	2
	.global	sao_deq_c
	.syntax unified
	.arm
	.fpu softvfp
	.type	sao_deq_c, %function
sao_deq_c:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	mov	r3, #10
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L195
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
.L195:
	ldr	r3, [fp, #-12]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	sao_deq_c, .-sao_deq_c
	.align	2
	.global	sao_enq_c
	.syntax unified
	.arm
	.fpu softvfp
	.type	sao_enq_c, %function
sao_enq_c:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	mov	r0, #12
	bl	sao_calloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	bne	.L198
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #12]
.L198:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L199
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #16]
.L199:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #20]
	cmp	r3, #0
	beq	.L200
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #20]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #8]
.L200:
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-20]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	sao_enq_c, .-sao_enq_c
	.section	.rodata
	.align	2
.LC52:
	.ascii	"feof\000"
	.align	2
.LC53:
	.ascii	"fprintf\000"
	.align	2
.LC54:
	.ascii	"FILE NOT FOUND?\000"
	.align	2
.LC55:
	.ascii	"\012\000"
	.align	2
.LC56:
	.ascii	"exit\000"
	.align	2
.LC57:
	.ascii	"DEBUG sao_read_line no pos??\000"
	.align	2
.LC58:
	.ascii	"DEBUG sao_read_line terminated??\000"
	.align	2
.LC59:
	.ascii	"putc\000"
	.align	2
.LC60:
	.ascii	"fgetc\000"
	.align	2
.LC61:
	.ascii	"printf\000"
	.align	2
.LC62:
	.ascii	"> \000"
	.text
	.align	2
	.global	sao_read_line
	.syntax unified
	.arm
	.fpu softvfp
	.type	sao_read_line, %function
sao_read_line:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #36
	str	r0, [fp, #-40]
	mov	r3, #0
	str	r3, [fp, #-36]
	ldr	r1, .L216
	mov	r0, #21
	bl	libc_
	str	r0, [fp, #-32]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L203
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L204
	ldr	r1, .L216+4
	mov	r0, #0
	bl	libc_
	mov	r4, r0
	ldr	r1, .L216+8
	mov	r0, #36
	bl	libc_
	mov	r3, r0
	ldr	r1, .L216+12
	mov	r0, r3
	blx	r4
	ldr	r1, .L216+4
	mov	r0, #0
	bl	libc_
	mov	r4, r0
	ldr	r1, .L216+8
	mov	r0, #36
	bl	libc_
	mov	r3, r0
	ldr	r1, .L216+16
	mov	r0, r3
	blx	r4
	ldr	r1, .L216+20
	mov	r0, #38
	bl	libc_
	mov	r3, r0
	mov	r0, #1
	blx	r3
.L204:
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-32]
	mov	r0, r2
	blx	r3
	mov	r3, r0
	cmp	r3, #0
	beq	.L205
	mvn	r1, #0
	ldr	r0, [fp, #-40]
	bl	sao_enq_c
	b	.L206
.L203:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	bne	.L207
	ldr	r1, .L216+4
	mov	r0, #0
	bl	libc_
	mov	r4, r0
	ldr	r1, .L216+8
	mov	r0, #36
	bl	libc_
	mov	r3, r0
	ldr	r1, .L216+24
	mov	r0, r3
	blx	r4
.L207:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L205
	ldr	r1, .L216+4
	mov	r0, #0
	bl	libc_
	mov	r4, r0
	ldr	r1, .L216+8
	mov	r0, #36
	bl	libc_
	mov	r3, r0
	ldr	r1, .L216+28
	mov	r0, r3
	blx	r4
	mvn	r1, #0
	ldr	r0, [fp, #-40]
	bl	sao_enq_c
	b	.L206
.L205:
	ldr	r1, .L216+32
	mov	r0, #11
	bl	libc_
	str	r0, [fp, #-28]
	ldr	r1, .L216+36
	mov	r0, #19
	bl	libc_
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L212
	ldr	r3, .L216+40
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L211
	ldr	r1, .L216+44
	mov	r0, #10
	bl	libc_
	mov	r3, r0
	ldr	r0, .L216+48
	blx	r3
.L211:
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-24]
	mov	r0, r2
	blx	r3
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-40]
	bl	sao_enq_c
	ldr	r3, [fp, #-20]
	cmp	r3, #10
	bne	.L210
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L210:
	ldr	r3, [fp, #-20]
	cmn	r3, #1
	beq	.L206
	ldr	r3, [fp, #-20]
	cmp	r3, #10
	beq	.L206
	b	.L211
.L214:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	sao_enq_c
	mov	r3, r0
	cmp	r3, #10
	bne	.L213
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L213:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #8]
	add	r2, r3, #1
	ldr	r3, [fp, #-40]
	str	r2, [r3, #8]
.L212:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L214
	mvn	r1, #0
	ldr	r0, [fp, #-40]
	bl	sao_enq_c
.L206:
	ldr	r3, [fp, #-36]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L217:
	.align	2
.L216:
	.word	.LC52
	.word	.LC53
	.word	.LC17
	.word	.LC54
	.word	.LC55
	.word	.LC56
	.word	.LC57
	.word	.LC58
	.word	.LC59
	.word	.LC60
	.word	argta
	.word	.LC61
	.word	.LC62
	.size	sao_read_line, .-sao_read_line
	.section	.rodata
	.align	2
.LC63:
	.ascii	"sao_var(): need ctx\000"
	.align	2
.LC64:
	.ascii	"sao_var(): need ctx.car\000"
	.text
	.align	2
	.global	sao_var
	.syntax unified
	.arm
	.fpu softvfp
	.type	sao_var, %function
sao_var:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #36
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	bne	.L219
	ldr	r1, .L225
	mov	r0, #0
	bl	libc_
	mov	r4, r0
	ldr	r1, .L225+4
	mov	r0, #36
	bl	libc_
	mov	r3, r0
	ldr	r1, .L225+8
	mov	r0, r3
	blx	r4
	ldr	r1, .L225
	mov	r0, #0
	bl	libc_
	mov	r4, r0
	ldr	r1, .L225+4
	mov	r0, #36
	bl	libc_
	mov	r3, r0
	ldr	r1, .L225+12
	mov	r0, r3
	blx	r4
	ldr	r1, .L225+16
	mov	r0, #38
	bl	libc_
	mov	r3, r0
	mov	r0, #1
	blx	r3
.L219:
	ldr	r0, [fp, #-40]
	bl	car
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L220
	ldr	r1, .L225
	mov	r0, #0
	bl	libc_
	mov	r4, r0
	ldr	r1, .L225+4
	mov	r0, #36
	bl	libc_
	mov	r3, r0
	ldr	r1, .L225+20
	mov	r0, r3
	blx	r4
	ldr	r1, .L225
	mov	r0, #0
	bl	libc_
	mov	r4, r0
	ldr	r1, .L225+4
	mov	r0, #36
	bl	libc_
	mov	r3, r0
	ldr	r1, .L225+12
	mov	r0, r3
	blx	r4
	ldr	r1, .L225+16
	mov	r0, #38
	bl	libc_
	mov	r3, r0
	mov	r0, #1
	blx	r3
.L220:
	ldr	r0, [fp, #-16]
	bl	car
	str	r0, [fp, #-24]
	ldr	r0, [fp, #-16]
	bl	cdr
	str	r0, [fp, #-20]
	b	.L221
.L224:
	ldr	r0, [fp, #-24]
	bl	car
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	sao_is_eq
	mov	r3, r0
	cmp	r3, #0
	beq	.L222
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-36]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-36]
	b	.L223
.L222:
	ldr	r0, [fp, #-24]
	bl	cdr
	str	r0, [fp, #-24]
	ldr	r0, [fp, #-20]
	bl	cdr
	str	r0, [fp, #-20]
.L221:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L224
	ldr	r0, [fp, #-16]
	bl	car
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	cons
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #8]
	ldr	r0, [fp, #-16]
	bl	cdr
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-36]
	bl	cons
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-36]
.L223:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L226:
	.align	2
.L225:
	.word	.LC53
	.word	.LC17
	.word	.LC63
	.word	.LC55
	.word	.LC56
	.word	.LC64
	.size	sao_var, .-sao_var
	.align	2
	.global	sao_stream_new
	.syntax unified
	.arm
	.fpu softvfp
	.type	sao_stream_new, %function
sao_stream_new:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	mov	r0, #24
	bl	sao_calloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-20]
	cmp	r3, #1
	bne	.L228
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	str	r2, [r3, #8]
.L228:
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	sao_stream_new, .-sao_stream_new
	.global	sao_eps
	.data
	.align	3
	.type	sao_eps, %object
	.size	sao_eps, 8
sao_eps:
	.word	2596056904
	.word	1048238066
	.section	.rodata
	.align	2
.LC65:
	.ascii	"isdigit\000"
	.global	__aeabi_i2d
	.global	__aeabi_dsub
	.global	__aeabi_dcmpge
	.global	__aeabi_dcmple
	.text
	.align	2
	.global	sao_convert_default
	.syntax unified
	.arm
	.fpu softvfp
	.type	sao_convert_default, %function
sao_convert_default:
	@ args = 0, pretend = 0, frame = 80
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #88
	str	r0, [fp, #-88]
	ldr	r3, [fp, #-88]
	cmp	r3, #0
	beq	.L231
	ldr	r3, [fp, #-88]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #34
	bne	.L232
	sub	r3, fp, #36
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #5
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-88]
	str	r3, [fp, #-28]
	mov	r2, sp
	sub	r3, fp, #20
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #36
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r3, r0
	b	.L233
.L232:
	ldr	r3, [fp, #-88]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #45
	bne	.L234
	ldr	r1, .L243
	mov	r0, #14
	bl	libc_
	mov	r2, r0
	ldr	r3, [fp, #-88]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	blx	r2
	mov	r3, r0
	cmp	r3, #0
	bne	.L235
.L234:
	ldr	r1, .L243
	mov	r0, #14
	bl	libc_
	mov	r2, r0
	ldr	r3, [fp, #-88]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	blx	r2
	mov	r3, r0
	cmp	r3, #0
	beq	.L236
.L235:
	ldr	r3, .L243+4
	ldr	r3, [r3]
	ldr	r0, [fp, #-88]
	blx	r3
	str	r0, [fp, #-84]
	ldr	r3, .L243+8
	ldr	r3, [r3]
	ldr	r0, [fp, #-88]
	blx	r3
	str	r0, [fp, #-76]
	str	r1, [fp, #-72]
	ldr	r0, [fp, #-84]
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	ldr	r3, .L243+12
	ldmia	r3, {r2-r3}
	mov	r4, r2
	eor	r5, r3, #-2147483648
	mov	r2, r4
	mov	r3, r5
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpge
	mov	r3, r0
	cmp	r3, #0
	beq	.L237
	ldr	r3, .L243+12
	ldmia	r3, {r2-r3}
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmple
	mov	r3, r0
	cmp	r3, #0
	beq	.L237
	sub	r3, fp, #60
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #2
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-84]
	str	r3, [fp, #-44]
	mov	r2, sp
	sub	r3, fp, #44
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #60
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r3, r0
	b	.L240
.L237:
	sub	r3, fp, #36
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #3
	str	r3, [fp, #-36]
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	mov	r2, sp
	sub	r3, fp, #20
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #36
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r3, r0
.L240:
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-80]
	ldr	r2, [fp, #-88]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-80]
	b	.L233
.L236:
	sub	r3, fp, #36
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-88]
	str	r3, [fp, #-28]
	mov	r2, sp
	sub	r3, fp, #20
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #36
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r3, r0
	b	.L233
.L231:
	ldr	r3, .L243+16
	ldr	r3, [r3]
.L233:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L244:
	.align	2
.L243:
	.word	.LC65
	.word	sao_atol
	.word	sao_atof
	.word	sao_eps
	.word	SAO_TAG_nil
	.size	sao_convert_default, .-sao_convert_default
	.section	.rodata
	.align	2
.LC66:
	.ascii	"nil\000"
	.align	2
.LC67:
	.ascii	"\"%s\"\000"
	.align	2
.LC68:
	.ascii	"%s\000"
	.align	2
.LC69:
	.ascii	"()\000"
	.align	2
.LC70:
	.ascii	"%ld\000"
	.align	2
.LC71:
	.ascii	"%g\000"
	.align	2
.LC72:
	.ascii	"(\000"
	.align	2
.LC73:
	.ascii	",\000"
	.align	2
.LC74:
	.ascii	", \000"
	.align	2
.LC75:
	.ascii	")\000"
	.align	2
.LC76:
	.ascii	"<%d>\000"
	.text
	.align	2
	.global	sao_print_default
	.syntax unified
	.arm
	.fpu softvfp
	.type	sao_print_default, %function
sao_print_default:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L246
	ldr	r1, .L267
	mov	r0, #10
	bl	libc_
	mov	r3, r0
	ldr	r0, [fp, #-24]
	blx	r3
.L246:
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bne	.L247
	ldr	r1, .L267
	mov	r0, #10
	bl	libc_
	mov	r3, r0
	ldr	r0, .L267+4
	blx	r3
	b	.L245
.L247:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	cmp	r3, #5
	ldrls	pc, [pc, r3, asl #2]
	b	.L249
.L251:
	.word	.L255
	.word	.L249
	.word	.L254
	.word	.L253
	.word	.L252
	.word	.L250
.L250:
	ldr	r1, .L267
	mov	r0, #10
	bl	libc_
	mov	r2, r0
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #8]
	mov	r1, r3
	ldr	r0, .L267+8
	blx	r2
	b	.L245
.L252:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	beq	.L256
	ldr	r1, .L267
	mov	r0, #10
	bl	libc_
	mov	r2, r0
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #8]
	mov	r1, r3
	ldr	r0, .L267+12
	blx	r2
	b	.L245
.L256:
	ldr	r1, .L267
	mov	r0, #10
	bl	libc_
	mov	r3, r0
	ldr	r0, .L267+16
	blx	r3
	b	.L245
.L254:
	ldr	r1, .L267
	mov	r0, #10
	bl	libc_
	mov	r2, r0
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, .L267+20
	blx	r2
	b	.L245
.L253:
	ldr	r1, .L267
	mov	r0, #10
	bl	libc_
	mov	r1, r0
	ldr	r3, [fp, #-28]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	ldr	r0, .L267+24
	blx	r1
	b	.L245
.L255:
	mov	r3, #0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	car
	str	r0, [fp, #-8]
	ldr	r3, .L267+28
	ldr	r3, [r3]
	ldr	r1, [fp, #-8]
	mov	r0, #0
	blx	r3
	mov	r3, #1
	str	r3, [fp, #-20]
	ldr	r1, .L267
	mov	r0, #10
	bl	libc_
	mov	r3, r0
	ldr	r0, .L267+32
	blx	r3
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L258
.L265:
	ldr	r3, [fp, #-12]
	cmp	r3, #1
	bne	.L259
	ldr	r1, .L267
	mov	r0, #10
	bl	libc_
	mov	r3, r0
	ldr	r0, .L267+36
	blx	r3
.L259:
	ldr	r3, [fp, #-20]
	cmp	r3, #1
	bne	.L260
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L261
.L260:
	ldr	r3, .L267+28
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	ldr	r2, [r2, #8]
	mov	r1, r2
	mov	r0, #0
	blx	r3
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L261
	mov	r3, #1
	str	r3, [fp, #-12]
.L261:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	beq	.L266
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L263
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-16]
	b	.L258
.L263:
	ldr	r3, .L267+28
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	ldr	r2, [r2, #12]
	mov	r1, r2
	ldr	r0, .L267+40
	blx	r3
	b	.L264
.L258:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L265
	b	.L264
.L266:
	nop
.L264:
	ldr	r1, .L267
	mov	r0, #10
	bl	libc_
	mov	r3, r0
	ldr	r0, .L267+44
	blx	r3
	b	.L245
.L249:
	ldr	r1, .L267
	mov	r0, #10
	bl	libc_
	mov	r2, r0
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L267+48
	blx	r2
	nop
.L245:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L268:
	.align	2
.L267:
	.word	.LC61
	.word	.LC66
	.word	.LC67
	.word	.LC68
	.word	.LC69
	.word	.LC70
	.word	.LC71
	.word	sao_print
	.word	.LC72
	.word	.LC73
	.word	.LC74
	.word	.LC75
	.word	.LC76
	.size	sao_print_default, .-sao_print_default
	.align	2
	.global	sao_eval_default
	.syntax unified
	.arm
	.fpu softvfp
	.type	sao_eval_default, %function
sao_eval_default:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	sao_eval_default, .-sao_eval_default
	.global	sao_str_convert
	.data
	.align	2
	.type	sao_str_convert, %object
	.size	sao_str_convert, 4
sao_str_convert:
	.word	sao_convert_default
	.global	sao_eval
	.align	2
	.type	sao_eval, %object
	.size	sao_eval, 4
sao_eval:
	.word	sao_eval_default
	.text
	.align	2
	.global	sao_peek
	.syntax unified
	.arm
	.fpu softvfp
	.type	sao_peek, %function
sao_peek:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L272
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
.L272:
	ldr	r3, [fp, #-12]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	sao_peek, .-sao_peek
	.align	2
	.global	sao_read_list
	.syntax unified
	.arm
	.fpu softvfp
	.type	sao_read_list, %function
sao_read_list:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	ldr	r3, .L282
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r3, .L282
	ldr	r3, [r3]
	str	r3, [fp, #-12]
.L278:
	ldr	r0, [fp, #-24]
	bl	sao_load_expr
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L275
	ldr	r3, .L282+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	bne	.L276
.L275:
	ldr	r3, .L282
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-12]
	bl	sao_reverse
	str	r0, [fp, #-16]
	nop
	ldr	r3, .L282
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bne	.L279
	b	.L281
.L276:
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	cons
	str	r0, [fp, #-12]
	b	.L278
.L281:
	ldr	r3, .L282
	ldr	r3, [r3]
	ldr	r2, .L282
	ldr	r2, [r2]
	mov	r1, r2
	mov	r0, r3
	bl	cons
	str	r0, [fp, #-16]
.L279:
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L283:
	.align	2
.L282:
	.word	SAO_TAG_nil
	.word	SAO_TAG_end
	.size	sao_read_list, .-sao_read_list
	.section	.rodata
	.align	2
.LC77:
	.ascii	"String too long - maximum length %d characters\000"
	.align	2
.LC78:
	.ascii	"Symbol name too long - maximum length %d characters"
	.ascii	"\000"
	.align	2
.LC79:
	.ascii	" \011,()[]{}\015\012\000"
	.align	2
.LC80:
	.ascii	" \011\000"
	.align	2
.LC81:
	.ascii	",({\000"
	.align	2
.LC82:
	.ascii	"\015\012,({\000"
	.align	2
.LC83:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	sao_load_expr
	.syntax unified
	.arm
	.fpu softvfp
	.type	sao_load_expr, %function
sao_load_expr:
	@ args = 0, pretend = 0, frame = 2128
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #2128
	sub	sp, sp, #8
	str	r0, [fp, #-2136]
	ldr	r3, .L327
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, .L327+4
	ldr	r3, [r3]
	str	r3, [fp, #-2128]
	b	.L285
.L320:
	ldr	r3, [fp, #-2108]
	cmp	r3, #125
	beq	.L286
	ldr	r3, [fp, #-2108]
	cmp	r3, #125
	bgt	.L287
	ldr	r3, [fp, #-2108]
	cmp	r3, #93
	bgt	.L288
	ldr	r3, [fp, #-2108]
	cmp	r3, #0
	blt	.L287
	ldr	r3, [fp, #-2108]
	cmp	r3, #93
	ldrls	pc, [pc, r3, asl #2]
	b	.L287
.L289:
	.word	.L292
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L292
	.word	.L295
	.word	.L287
	.word	.L287
	.word	.L295
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L292
	.word	.L287
	.word	.L294
	.word	.L291
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L293
	.word	.L286
	.word	.L287
	.word	.L287
	.word	.L292
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L291
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L287
	.word	.L290
	.word	.L287
	.word	.L286
.L288:
	ldr	r3, [fp, #-2108]
	cmp	r3, #123
	beq	.L296
	b	.L287
.L295:
	ldr	r0, [fp, #-2136]
	bl	sao_read_line
	b	.L285
.L292:
	ldr	r3, [fp, #-2128]
	cmp	r3, #0
	bne	.L324
	b	.L285
.L291:
	mov	r3, #0
	str	r3, [fp, #-2124]
	b	.L299
.L301:
	ldr	r0, [fp, #-2136]
	bl	sao_deq_c
	str	r0, [fp, #-2124]
.L299:
	ldr	r3, [fp, #-2124]
	cmp	r3, #10
	beq	.L285
	ldr	r3, [fp, #-2124]
	cmn	r3, #1
	bne	.L301
	b	.L285
.L294:
	mov	r3, #0
	str	r3, [fp, #-2064]
	sub	r3, fp, #2048
	sub	r3, r3, #12
	ldr	r2, .L327+8
	mov	r1, #0
	mov	r0, r3
	bl	memset
	mov	r3, #0
	str	r3, [fp, #-2116]
.L308:
	ldr	r3, [fp, #-2116]
	cmp	r3, #2048
	blt	.L302
	ldr	r1, .L327+12
	mov	r0, #0
	bl	libc_
	mov	r4, r0
	ldr	r1, .L327+16
	mov	r0, #36
	bl	libc_
	mov	r3, r0
	mov	r2, #2048
	ldr	r1, .L327+20
	mov	r0, r3
	blx	r4
	ldr	r1, .L327+12
	mov	r0, #0
	bl	libc_
	mov	r4, r0
	ldr	r1, .L327+16
	mov	r0, #36
	bl	libc_
	mov	r3, r0
	ldr	r1, .L327+24
	mov	r0, r3
	blx	r4
	ldr	r1, .L327+28
	mov	r0, #38
	bl	libc_
	mov	r3, r0
	mov	r0, #1
	blx	r3
.L302:
	ldr	r0, [fp, #-2136]
	bl	sao_deq_c
	str	r0, [fp, #-2120]
	ldr	r3, [fp, #-2120]
	cmn	r3, #1
	bne	.L303
	ldr	r3, .L327+4
	ldr	r3, [r3]
	b	.L309
.L303:
	ldr	r3, [fp, #-2120]
	cmp	r3, #34
	beq	.L325
	ldr	r3, [fp, #-2120]
	cmp	r3, #92
	bne	.L307
	ldr	r0, [fp, #-2136]
	bl	sao_peek
	mov	r3, r0
	cmp	r3, #34
	bne	.L307
	ldr	r0, [fp, #-2136]
	bl	sao_deq_c
	str	r0, [fp, #-2120]
.L307:
	ldr	r3, [fp, #-2116]
	add	r2, r3, #1
	str	r2, [fp, #-2116]
	ldr	r2, [fp, #-2120]
	and	r2, r2, #255
	sub	r1, fp, #12
	add	r3, r1, r3
	strb	r2, [r3, #-2052]
	b	.L308
.L325:
	nop
	sub	r3, fp, #2080
	sub	r3, r3, #12
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #5
	str	r3, [fp, #-2092]
	sub	r3, fp, #2048
	sub	r3, r3, #12
	sub	r3, r3, #4
	str	r3, [fp, #-2084]
	mov	r2, sp
	sub	r3, fp, #2064
	sub	r3, r3, #12
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #2080
	sub	r3, r3, #12
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r3, r0
	b	.L309
.L286:
	ldr	r3, .L327+32
	ldr	r3, [r3]
	b	.L309
.L296:
	ldr	r3, .L327+36
	ldr	r4, [r3]
	ldr	r0, [fp, #-2136]
	bl	sao_read_list
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	mov	r3, r0
	b	.L309
.L290:
	ldr	r3, .L327+40
	ldr	r4, [r3]
	ldr	r0, [fp, #-2136]
	bl	sao_read_list
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	mov	r3, r0
	b	.L309
.L293:
	ldr	r0, [fp, #-2136]
	bl	sao_read_list
	str	r0, [fp, #-2104]
	ldr	r3, [fp, #-2128]
	cmp	r3, #0
	bne	.L310
	ldr	r3, [fp, #-2104]
	b	.L309
.L310:
	ldr	r1, [fp, #-2104]
	ldr	r0, [fp, #-2128]
	bl	cons
	str	r0, [fp, #-2100]
	ldr	r3, [fp, #-2100]
	b	.L309
.L287:
	sub	r3, fp, #2048
	sub	r3, r3, #12
	sub	r3, r3, #4
	mov	r2, #2048
	mov	r1, #0
	mov	r0, r3
	bl	memset
	ldr	r3, [fp, #-2108]
	and	r3, r3, #255
	strb	r3, [fp, #-2064]
	mov	r3, #1
	str	r3, [fp, #-2112]
	b	.L311
.L313:
	ldr	r3, [fp, #-2112]
	cmp	r3, #2048
	blt	.L312
	ldr	r1, .L327+12
	mov	r0, #0
	bl	libc_
	mov	r4, r0
	ldr	r1, .L327+16
	mov	r0, #36
	bl	libc_
	mov	r3, r0
	mov	r2, #2048
	ldr	r1, .L327+44
	mov	r0, r3
	blx	r4
	ldr	r1, .L327+12
	mov	r0, #0
	bl	libc_
	mov	r4, r0
	ldr	r1, .L327+16
	mov	r0, #36
	bl	libc_
	mov	r3, r0
	ldr	r1, .L327+24
	mov	r0, r3
	blx	r4
	ldr	r1, .L327+28
	mov	r0, #38
	bl	libc_
	mov	r3, r0
	mov	r0, #1
	blx	r3
.L312:
	ldr	r0, [fp, #-2136]
	bl	sao_deq_c
	mov	r1, r0
	ldr	r3, [fp, #-2112]
	add	r2, r3, #1
	str	r2, [fp, #-2112]
	and	r2, r1, #255
	sub	r1, fp, #12
	add	r3, r1, r3
	strb	r2, [r3, #-2052]
.L311:
	ldr	r0, [fp, #-2136]
	bl	sao_peek
	str	r0, [fp, #-2096]
	ldr	r3, .L327+48
	ldr	r3, [r3]
	ldr	r1, [fp, #-2096]
	ldr	r0, .L327+52
	blx	r3
	mov	r3, r0
	cmp	r3, #0
	beq	.L313
	ldr	r3, .L327+56
	ldr	r2, [r3]
	sub	r3, fp, #2048
	sub	r3, r3, #12
	sub	r3, r3, #4
	mov	r0, r3
	blx	r2
	str	r0, [fp, #-2128]
	b	.L314
.L315:
	ldr	r0, [fp, #-2136]
	bl	sao_deq_c
.L314:
	ldr	r0, [fp, #-2136]
	bl	sao_peek
	str	r0, [fp, #-2096]
	ldr	r3, .L327+48
	ldr	r3, [r3]
	ldr	r1, [fp, #-2096]
	ldr	r0, .L327+60
	blx	r3
	mov	r3, r0
	cmp	r3, #0
	bne	.L315
	ldr	r3, .L327+48
	ldr	r4, [r3]
	ldr	r3, .L327+64
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L316
	ldr	r5, .L327+68
	b	.L317
.L316:
	ldr	r5, .L327+72
.L317:
	ldr	r0, [fp, #-2136]
	bl	sao_peek
	mov	r3, r0
	mov	r1, r3
	mov	r0, r5
	blx	r4
	mov	r3, r0
	cmp	r3, #0
	beq	.L326
	b	.L285
.L324:
	nop
	b	.L326
.L285:
	ldr	r0, [fp, #-2136]
	bl	sao_deq_c
	str	r0, [fp, #-2108]
	ldr	r3, [fp, #-2108]
	cmn	r3, #1
	bne	.L320
	b	.L319
.L326:
	nop
.L319:
	ldr	r3, [fp, #-2128]
.L309:
	ldr	r2, .L327
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L321
	bl	__stack_chk_fail
.L321:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L328:
	.align	2
.L327:
	.word	.LC83
	.word	SAO_TAG_nil
	.word	2044
	.word	.LC53
	.word	.LC17
	.word	.LC77
	.word	.LC55
	.word	.LC56
	.word	SAO_TAG_end
	.word	SAO_TAG_map
	.word	SAO_TAG_vector
	.word	.LC78
	.word	sao_strchr
	.word	.LC79
	.word	sao_str_convert
	.word	.LC80
	.word	argta
	.word	.LC81
	.word	.LC82
	.size	sao_load_expr, .-sao_load_expr
	.global	ctype_names
	.section	.rodata
	.align	2
.LC84:
	.ascii	"int\000"
	.align	2
.LC85:
	.ascii	"float\000"
	.align	2
.LC86:
	.ascii	"i64\000"
	.align	2
.LC87:
	.ascii	"u64\000"
	.align	2
.LC88:
	.ascii	"struct\000"
	.align	2
.LC89:
	.ascii	"pointer\000"
	.data
	.align	2
	.type	ctype_names, %object
	.size	ctype_names, 36
ctype_names:
	.word	.LC47
	.word	.LC48
	.word	.LC84
	.word	.LC85
	.word	.LC86
	.word	.LC87
	.word	.LC50
	.word	.LC88
	.word	.LC89
	.global	SAO_TAG_true
	.bss
	.align	2
	.type	SAO_TAG_true, %object
	.size	SAO_TAG_true, 4
SAO_TAG_true:
	.space	4
	.global	SAO_TAG_false
	.align	2
	.type	SAO_TAG_false, %object
	.size	SAO_TAG_false, 4
SAO_TAG_false:
	.space	4
	.global	SAO_TAG_set
	.align	2
	.type	SAO_TAG_set, %object
	.size	SAO_TAG_set, 4
SAO_TAG_set:
	.space	4
	.global	SAO_TAG_if
	.align	2
	.type	SAO_TAG_if, %object
	.size	SAO_TAG_if, 4
SAO_TAG_if:
	.space	4
	.global	SAO_TAG_lambda
	.align	2
	.type	SAO_TAG_lambda, %object
	.size	SAO_TAG_lambda, 4
SAO_TAG_lambda:
	.space	4
	.global	SAO_TAG_procedure
	.align	2
	.type	SAO_TAG_procedure, %object
	.size	SAO_TAG_procedure, 4
SAO_TAG_procedure:
	.space	4
	.global	SAO_TAG_nilnil
	.align	2
	.type	SAO_TAG_nilnil, %object
	.size	SAO_TAG_nilnil, 4
SAO_TAG_nilnil:
	.space	4
	.section	.rodata
	.align	2
.LC90:
	.ascii	"<closure>\000"
	.align	2
.LC91:
	.ascii	"[\000"
	.align	2
.LC92:
	.ascii	"]\000"
	.align	2
.LC93:
	.ascii	"<ctype>\000"
	.align	2
.LC94:
	.ascii	"<native>\000"
	.align	2
.LC95:
	.ascii	"<TODO _%d>\000"
	.text
	.align	2
	.global	_sao_print
	.syntax unified
	.arm
	.fpu softvfp
	.type	_sao_print, %function
_sao_print:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L330
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	sao_print_default
	b	.L329
.L330:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L332
	cmp	r3, #0
	blt	.L333
	sub	r3, r3, #2
	cmp	r3, #3
	bhi	.L333
	b	.L334
.L332:
	ldr	r0, [fp, #-20]
	bl	car
	mov	r2, r0
	ldr	r3, .L343
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	sao_is_eq
	mov	r3, r0
	cmp	r3, #0
	beq	.L334
	ldr	r1, .L343+4
	mov	r0, #10
	bl	libc_
	mov	r3, r0
	ldr	r0, .L343+8
	blx	r3
	b	.L329
.L334:
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	sao_print_default
	b	.L329
.L333:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L335
	ldr	r1, .L343+4
	mov	r0, #10
	bl	libc_
	mov	r3, r0
	ldr	r0, [fp, #-16]
	blx	r3
.L335:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	cmp	r3, #7
	beq	.L336
	cmp	r3, #7
	bgt	.L337
	cmp	r3, #1
	beq	.L338
	cmp	r3, #6
	beq	.L339
	b	.L337
.L338:
	ldr	r1, .L343+4
	mov	r0, #10
	bl	libc_
	mov	r3, r0
	ldr	r0, .L343+12
	blx	r3
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L340
.L342:
	ldr	r3, .L343+16
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	ldr	r1, [r2, #8]
	ldr	r2, [fp, #-8]
	lsl	r2, r2, #2
	add	r2, r1, r2
	ldr	r2, [r2]
	mov	r1, r2
	mov	r0, #0
	blx	r3
	ldr	r3, [fp, #-8]
	add	r2, r3, #1
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	cmp	r2, r3
	bge	.L341
	ldr	r1, .L343+4
	mov	r0, #10
	bl	libc_
	mov	r3, r0
	ldr	r0, .L343+20
	blx	r3
.L341:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L340:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	blt	.L342
	ldr	r1, .L343+4
	mov	r0, #10
	bl	libc_
	mov	r3, r0
	ldr	r0, .L343+24
	blx	r3
	b	.L329
.L339:
	ldr	r1, .L343+4
	mov	r0, #10
	bl	libc_
	mov	r3, r0
	ldr	r0, .L343+28
	blx	r3
	b	.L329
.L336:
	ldr	r1, .L343+4
	mov	r0, #10
	bl	libc_
	mov	r3, r0
	ldr	r0, .L343+32
	blx	r3
	b	.L329
.L337:
	ldr	r1, .L343+4
	mov	r0, #10
	bl	libc_
	mov	r2, r0
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L343+36
	blx	r2
.L329:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L344:
	.align	2
.L343:
	.word	SAO_TAG_procedure
	.word	.LC61
	.word	.LC90
	.word	.LC91
	.word	sao_print
	.word	.LC73
	.word	.LC92
	.word	.LC93
	.word	.LC94
	.word	.LC95
	.size	_sao_print, .-_sao_print
	.align	2
	.global	sao_not_false
	.syntax unified
	.arm
	.fpu softvfp
	.type	sao_not_false, %function
sao_not_false:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L346
	ldr	r3, .L350
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	sao_is_eq
	mov	r3, r0
	cmp	r3, #0
	beq	.L347
.L346:
	ldr	r3, .L350+4
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	b	.L348
.L347:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	cmp	r3, #2
	bne	.L348
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L348
	ldr	r3, .L350+4
	ldr	r3, [r3]
	str	r3, [fp, #-8]
.L348:
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L351:
	.align	2
.L350:
	.word	SAO_TAG_false
	.word	SAO_TAG_nil
	.size	sao_not_false, .-sao_not_false
	.align	2
	.global	sao_eval_list_r
	.syntax unified
	.arm
	.fpu softvfp
	.type	sao_eval_list_r, %function
sao_eval_list_r:
	@ 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	r0, [fp, #-24]
	bl	cdr
	str	r0, [fp, #-16]
	b	.L353
.L354:
	ldr	r3, .L356
	ldr	r4, [r3]
	ldr	r0, [fp, #-16]
	bl	car
	mov	r3, r0
	ldr	r1, [fp, #-28]
	mov	r0, r3
	blx	r4
	ldr	r0, [fp, #-16]
	bl	cdr
	str	r0, [fp, #-16]
.L353:
	ldr	r0, [fp, #-16]
	bl	cdr
	mov	r3, r0
	cmp	r3, #0
	bne	.L354
	ldr	r0, [fp, #-16]
	bl	car
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L357:
	.align	2
.L356:
	.word	sao_eval
	.size	sao_eval_list_r, .-sao_eval_list_r
	.align	2
	.global	sao_eval_list
	.syntax unified
	.arm
	.fpu softvfp
	.type	sao_eval_list, %function
sao_eval_list:
	@ 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]
	cmp	r3, #0
	bne	.L359
	ldr	r3, .L361
	ldr	r3, [r3]
	b	.L360
.L359:
	ldr	r3, .L361+4
	ldr	r4, [r3]
	ldr	r0, [fp, #-24]
	bl	car
	mov	r3, r0
	ldr	r1, [fp, #-28]
	mov	r0, r3
	blx	r4
	str	r0, [fp, #-20]
	ldr	r0, [fp, #-24]
	bl	cdr
	mov	r3, r0
	ldr	r1, [fp, #-28]
	mov	r0, r3
	bl	sao_eval_list
	str	r0, [fp, #-16]
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-20]
	bl	cons
	mov	r3, r0
.L360:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L362:
	.align	2
.L361:
	.word	SAO_TAG_nil
	.word	sao_eval
	.size	sao_eval_list, .-sao_eval_list
	.align	2
	.global	sao_get_var
	.syntax unified
	.arm
	.fpu softvfp
	.type	sao_get_var, %function
sao_get_var:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	b	.L364
.L369:
	ldr	r0, [fp, #-28]
	bl	car
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	car
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-8]
	bl	cdr
	str	r0, [fp, #-12]
	b	.L365
.L368:
	ldr	r0, [fp, #-16]
	bl	car
	mov	r3, r0
	ldr	r1, [fp, #-24]
	mov	r0, r3
	bl	sao_is_eq
	mov	r3, r0
	cmp	r3, #0
	beq	.L366
	ldr	r0, [fp, #-12]
	bl	car
	mov	r3, r0
	b	.L367
.L366:
	ldr	r0, [fp, #-16]
	bl	cdr
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-12]
	bl	cdr
	str	r0, [fp, #-12]
.L365:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L368
	ldr	r0, [fp, #-28]
	bl	cdr
	str	r0, [fp, #-28]
.L364:
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bne	.L369
	ldr	r3, .L370
	ldr	r3, [r3]
.L367:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L371:
	.align	2
.L370:
	.word	SAO_TAG_nil
	.size	sao_get_var, .-sao_get_var
	.align	2
	.global	sao_set
	.syntax unified
	.arm
	.fpu softvfp
	.type	sao_set, %function
sao_set:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	b	.L373
.L378:
	ldr	r0, [fp, #-32]
	bl	car
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	car
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-8]
	bl	cdr
	str	r0, [fp, #-12]
	b	.L374
.L377:
	ldr	r0, [fp, #-16]
	bl	car
	mov	r3, r0
	ldr	r1, [fp, #-24]
	mov	r0, r3
	bl	sao_is_eq
	mov	r3, r0
	cmp	r3, #0
	beq	.L375
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-28]
	str	r2, [r3, #8]
	ldr	r0, [fp, #-12]
	bl	car
	mov	r3, r0
	b	.L376
.L375:
	ldr	r0, [fp, #-16]
	bl	cdr
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-12]
	bl	cdr
	str	r0, [fp, #-12]
.L374:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L377
	ldr	r0, [fp, #-32]
	bl	cdr
	str	r0, [fp, #-32]
.L373:
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	bne	.L378
	ldr	r3, [fp, #-28]
.L376:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	sao_set, .-sao_set
	.section	.rodata
	.align	2
.LC96:
	.ascii	"vector len > 512...\000"
	.align	2
.LC97:
	.ascii	"TODO map...\000"
	.align	2
.LC98:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	_sao_eval
	.syntax unified
	.arm
	.fpu softvfp
	.type	_sao_eval, %function
_sao_eval:
	@ args = 0, pretend = 0, frame = 2136
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	sub	sp, sp, #2144
	str	r0, [fp, #-2152]
	str	r1, [fp, #-2156]
	ldr	r3, .L421
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
.L380:
	ldr	r3, [fp, #-2152]
	cmp	r3, #0
	bne	.L381
	ldr	r3, .L421+4
	ldr	r3, [r3]
	b	.L382
.L381:
	ldr	r3, [fp, #-2152]
	ldr	r3, [r3]
	cmp	r3, #5
	ldrls	pc, [pc, r3, asl #2]
	b	.L383
.L385:
	.word	.L388
	.word	.L387
	.word	.L383
	.word	.L383
	.word	.L386
	.word	.L383
.L387:
	sub	r3, fp, #2096
	sub	r3, r3, #4
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #1
	str	r3, [fp, #-2100]
	ldr	r3, [fp, #-2152]
	ldr	r3, [r3, #16]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	sao_calloc
	mov	r3, r0
	str	r3, [fp, #-2092]
	ldr	r3, [fp, #-2152]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-2084]
	mov	r2, sp
	sub	r3, fp, #2080
	sub	r3, r3, #4
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #2096
	sub	r3, r3, #4
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	str	r0, [fp, #-2128]
	mov	r3, #0
	str	r3, [fp, #-2148]
	b	.L389
.L390:
	ldr	r3, .L421+8
	ldr	r3, [r3]
	ldr	r2, [fp, #-2152]
	ldr	r1, [r2, #8]
	ldr	r2, [fp, #-2148]
	lsl	r2, r2, #2
	add	r2, r1, r2
	ldr	r0, [r2]
	ldr	r2, [fp, #-2128]
	ldr	r1, [r2, #8]
	ldr	r2, [fp, #-2148]
	lsl	r2, r2, #2
	add	r4, r1, r2
	ldr	r1, [fp, #-2156]
	blx	r3
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, [fp, #-2148]
	add	r3, r3, #1
	str	r3, [fp, #-2148]
.L389:
	ldr	r3, [fp, #-2152]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-2148]
	cmp	r2, r3
	blt	.L390
	ldr	r3, [fp, #-2128]
	b	.L382
.L386:
	ldr	r1, [fp, #-2156]
	ldr	r0, [fp, #-2152]
	bl	sao_get_var
	mov	r3, r0
	b	.L382
.L388:
	ldr	r0, [fp, #-2152]
	bl	car
	str	r0, [fp, #-2124]
	ldr	r3, .L421+12
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-2124]
	bl	sao_is_eq
	mov	r3, r0
	cmp	r3, #0
	beq	.L391
	ldr	r3, .L421+4
	ldr	r3, [r3]
	b	.L382
.L391:
	ldr	r0, [fp, #-2152]
	bl	cadr
	str	r0, [fp, #-2120]
	ldr	r0, [fp, #-2152]
	bl	cdr
	str	r0, [fp, #-2144]
	ldr	r3, [fp, #-2124]
	cmp	r3, #0
	bne	.L392
	ldr	r3, .L421+4
	ldr	r4, [r3]
	ldr	r1, [fp, #-2156]
	ldr	r0, [fp, #-2144]
	bl	sao_eval_list
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	mov	r3, r0
	b	.L382
.L392:
	ldr	r3, .L421+16
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-2124]
	bl	sao_is_eq
	mov	r3, r0
	cmp	r3, #0
	beq	.L393
	ldr	r3, [fp, #-2120]
	b	.L382
.L393:
	ldr	r3, .L421+20
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-2124]
	bl	sao_is_eq
	mov	r3, r0
	cmp	r3, #0
	beq	.L394
	mov	r3, #0
	str	r3, [fp, #-2140]
.L398:
	ldr	r0, [fp, #-2144]
	bl	car
	mov	r3, r0
	cmp	r3, #0
	beq	.L419
	ldr	r4, [fp, #-2140]
	add	r3, r4, #1
	str	r3, [fp, #-2140]
	ldr	r0, [fp, #-2144]
	bl	car
	mov	r2, r0
	lsl	r3, r4, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	str	r2, [r3, #-2052]
	ldr	r3, [fp, #-2140]
	cmp	r3, #512
	blt	.L397
	ldr	r1, .L421+24
	mov	r0, #0
	bl	libc_
	mov	r4, r0
	ldr	r1, .L421+28
	mov	r0, #36
	bl	libc_
	mov	r3, r0
	ldr	r1, .L421+32
	mov	r0, r3
	blx	r4
	ldr	r1, .L421+24
	mov	r0, #0
	bl	libc_
	mov	r4, r0
	ldr	r1, .L421+28
	mov	r0, #36
	bl	libc_
	mov	r3, r0
	ldr	r1, .L421+36
	mov	r0, r3
	blx	r4
	ldr	r1, .L421+40
	mov	r0, #38
	bl	libc_
	mov	r3, r0
	mov	r0, #1
	blx	r3
.L397:
	ldr	r0, [fp, #-2144]
	bl	cdr
	str	r0, [fp, #-2144]
	b	.L398
.L419:
	nop
	sub	r3, fp, #2096
	sub	r3, r3, #4
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #1
	str	r3, [fp, #-2100]
	ldr	r3, [fp, #-2140]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	sao_calloc
	mov	r3, r0
	str	r3, [fp, #-2092]
	ldr	r3, [fp, #-2140]
	str	r3, [fp, #-2084]
	mov	r2, sp
	sub	r3, fp, #2080
	sub	r3, r3, #4
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #2096
	sub	r3, r3, #4
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	str	r0, [fp, #-2104]
	mov	r3, #0
	str	r3, [fp, #-2136]
	b	.L399
.L400:
	ldr	r3, [fp, #-2104]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-2136]
	lsl	r3, r3, #2
	add	r2, r2, r3
	ldr	r3, [fp, #-2136]
	lsl	r3, r3, #2
	sub	r1, fp, #20
	add	r3, r1, r3
	ldr	r3, [r3, #-2052]
	str	r3, [r2]
	ldr	r3, [fp, #-2136]
	add	r3, r3, #1
	str	r3, [fp, #-2136]
.L399:
	ldr	r2, [fp, #-2136]
	ldr	r3, [fp, #-2140]
	cmp	r2, r3
	blt	.L400
	ldr	r3, [fp, #-2104]
	b	.L382
.L394:
	ldr	r3, .L421+44
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-2124]
	bl	sao_is_eq
	mov	r3, r0
	cmp	r3, #0
	beq	.L401
	ldr	r1, .L421+24
	mov	r0, #0
	bl	libc_
	mov	r4, r0
	ldr	r1, .L421+28
	mov	r0, #36
	bl	libc_
	mov	r3, r0
	ldr	r1, .L421+48
	mov	r0, r3
	blx	r4
	ldr	r1, .L421+24
	mov	r0, #0
	bl	libc_
	mov	r4, r0
	ldr	r1, .L421+28
	mov	r0, #36
	bl	libc_
	mov	r3, r0
	ldr	r1, .L421+36
	mov	r0, r3
	blx	r4
	ldr	r1, .L421+40
	mov	r0, #38
	bl	libc_
	mov	r3, r0
	mov	r0, #1
	blx	r3
	b	.L383
.L401:
	ldr	r3, .L421+52
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-2124]
	bl	sao_is_eq
	mov	r3, r0
	cmp	r3, #0
	beq	.L402
	ldr	r0, [fp, #-2152]
	bl	cddr
	str	r0, [fp, #-2108]
	ldr	r3, .L421+56
	ldr	r4, [r3]
	ldr	r3, .L421+4
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-2156]
	bl	cons
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-2108]
	bl	cons
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-2120]
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	mov	r3, r0
	b	.L382
.L402:
	ldr	r3, .L421+60
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-2124]
	bl	sao_is_eq
	mov	r3, r0
	cmp	r3, #0
	beq	.L403
	ldr	r3, [fp, #-2120]
	cmp	r3, #0
	beq	.L404
	ldr	r3, [fp, #-2120]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L404
	ldr	r3, .L421+8
	ldr	r4, [r3]
	ldr	r0, [fp, #-2152]
	bl	caddr
	mov	r3, r0
	ldr	r1, [fp, #-2156]
	mov	r0, r3
	blx	r4
	mov	r3, r0
	ldr	r2, [fp, #-2156]
	mov	r1, r3
	ldr	r0, [fp, #-2120]
	bl	sao_var
	b	.L405
.L404:
	ldr	r0, [fp, #-2120]
	bl	car
	mov	r6, r0
	ldr	r3, .L421+8
	ldr	r4, [r3]
	ldr	r3, .L421+52
	ldr	r5, [r3]
	ldr	r0, [fp, #-2120]
	bl	cdr
	mov	r7, r0
	ldr	r0, [fp, #-2152]
	bl	cddr
	mov	r3, r0
	mov	r1, r3
	mov	r0, r7
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r5
	bl	cons
	mov	r3, r0
	ldr	r1, [fp, #-2156]
	mov	r0, r3
	blx	r4
	mov	r3, r0
	ldr	r2, [fp, #-2156]
	mov	r1, r3
	mov	r0, r6
	bl	sao_var
.L405:
	ldr	r3, .L421+64
	ldr	r3, [r3]
	b	.L382
.L403:
	ldr	r3, .L421+68
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-2124]
	bl	sao_is_eq
	mov	r3, r0
	cmp	r3, #0
	beq	.L406
	ldr	r3, [fp, #-2120]
	cmp	r3, #0
	beq	.L407
	ldr	r3, [fp, #-2120]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L407
	ldr	r3, .L421+8
	ldr	r4, [r3]
	ldr	r0, [fp, #-2152]
	bl	caddr
	mov	r3, r0
	ldr	r1, [fp, #-2156]
	mov	r0, r3
	blx	r4
	mov	r3, r0
	ldr	r2, [fp, #-2156]
	mov	r1, r3
	ldr	r0, [fp, #-2120]
	bl	sao_set
	b	.L408
.L407:
	ldr	r0, [fp, #-2120]
	bl	car
	mov	r6, r0
	ldr	r3, .L421+8
	ldr	r4, [r3]
	ldr	r3, .L421+52
	ldr	r5, [r3]
	ldr	r0, [fp, #-2120]
	bl	cdr
	mov	r7, r0
	ldr	r0, [fp, #-2152]
	bl	cddr
	mov	r3, r0
	mov	r1, r3
	mov	r0, r7
	bl	cons
	mov	r3, r0
	mov	r1, r3
	mov	r0, r5
	bl	cons
	mov	r3, r0
	ldr	r1, [fp, #-2156]
	mov	r0, r3
	blx	r4
	mov	r3, r0
	ldr	r2, [fp, #-2156]
	mov	r1, r3
	mov	r0, r6
	bl	sao_set
.L408:
	ldr	r3, .L421+64
	ldr	r3, [r3]
	b	.L382
.L406:
	ldr	r3, .L421+72
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-2124]
	bl	sao_is_eq
	mov	r3, r0
	cmp	r3, #0
	beq	.L409
	ldr	r1, [fp, #-2156]
	ldr	r0, [fp, #-2152]
	bl	sao_eval_list_r
	str	r0, [fp, #-2152]
	b	.L380
.L409:
	ldr	r3, .L421+76
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-2124]
	bl	sao_is_eq
	mov	r3, r0
	cmp	r3, #0
	beq	.L410
	ldr	r3, .L421+8
	ldr	r3, [r3]
	ldr	r1, [fp, #-2156]
	ldr	r0, [fp, #-2120]
	blx	r3
	mov	r3, r0
	mov	r0, r3
	bl	sao_not_false
	mov	r3, r0
	cmp	r3, #0
	beq	.L411
	ldr	r0, [fp, #-2152]
	bl	caddr
	mov	r3, r0
	b	.L412
.L411:
	ldr	r0, [fp, #-2152]
	bl	cadddr
	mov	r3, r0
.L412:
	str	r3, [fp, #-2152]
	b	.L380
.L410:
	ldr	r3, .L421+8
	ldr	r3, [r3]
	ldr	r1, [fp, #-2156]
	ldr	r0, [fp, #-2124]
	blx	r3
	str	r0, [fp, #-2116]
	ldr	r3, [fp, #-2116]
	cmp	r3, #0
	beq	.L420
	ldr	r0, [fp, #-2152]
	bl	cdr
	mov	r3, r0
	ldr	r1, [fp, #-2156]
	mov	r0, r3
	bl	sao_eval_list
	str	r0, [fp, #-2112]
	ldr	r3, [fp, #-2116]
	ldr	r3, [r3]
	cmp	r3, #7
	bne	.L414
	ldr	r3, [fp, #-2116]
	ldr	r3, [r3, #16]
	ldr	r1, [fp, #-2156]
	ldr	r0, [fp, #-2112]
	blx	r3
	mov	r3, r0
	b	.L382
.L414:
	ldr	r3, .L421+60
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-2116]
	bl	sao_is_eq
	mov	r3, r0
	cmp	r3, #0
	beq	.L415
	ldr	r3, .L421+60
	ldr	r3, [r3]
	ldr	r1, [fp, #-2144]
	mov	r0, r3
	bl	cons
	str	r0, [fp, #-2152]
	b	.L380
.L415:
	ldr	r0, [fp, #-2116]
	bl	car
	mov	r2, r0
	ldr	r3, .L421+56
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	sao_is_eq
	mov	r3, r0
	cmp	r3, #0
	beq	.L383
	ldr	r0, [fp, #-2116]
	bl	cadr
	str	r0, [fp, #-2132]
	ldr	r0, [fp, #-2132]
	bl	car
	mov	r3, r0
	cmp	r3, #0
	bne	.L416
	ldr	r0, [fp, #-2132]
	bl	cdr
	str	r0, [fp, #-2132]
.L416:
	ldr	r1, [fp, #-2112]
	ldr	r0, [fp, #-2132]
	bl	cons
	mov	r4, r0
	ldr	r0, [fp, #-2116]
	bl	cadddr
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	str	r0, [fp, #-2156]
	ldr	r3, .L421+72
	ldr	r4, [r3]
	ldr	r0, [fp, #-2116]
	bl	caddr
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	str	r0, [fp, #-2152]
	b	.L380
.L420:
	nop
.L383:
	ldr	r3, [fp, #-2152]
.L382:
	ldr	r2, .L421
	ldr	r1, [r2]
	ldr	r2, [fp, #-24]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L417
	bl	__stack_chk_fail
.L417:
	mov	r0, r3
	sub	sp, fp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, fp, pc}
.L422:
	.align	2
.L421:
	.word	.LC98
	.word	SAO_TAG_nil
	.word	sao_eval
	.word	SAO_TAG_nilnil
	.word	SAO_TAG_quote
	.word	SAO_TAG_vector
	.word	.LC53
	.word	.LC17
	.word	.LC96
	.word	.LC55
	.word	.LC56
	.word	SAO_TAG_map
	.word	.LC97
	.word	SAO_TAG_lambda
	.word	SAO_TAG_procedure
	.word	SAO_TAG_at
	.word	SAO_TAG_true
	.word	SAO_TAG_set
	.word	SAO_TAG_begin
	.word	SAO_TAG_if
	.size	_sao_eval, .-_sao_eval
	.section	.rodata
	.align	2
.LC99:
	.ascii	"Invalid argument to function %s: SAO_TAG(nil)\012\000"
	.align	2
.LC100:
	.ascii	"ERR: function %s. expected %s got %s\012\000"
	.text
	.align	2
	.global	sao_type_assert
	.syntax unified
	.arm
	.fpu softvfp
	.type	sao_type_assert, %function
sao_type_assert:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L424
	ldr	r1, .L427
	mov	r0, #0
	bl	libc_
	mov	r4, r0
	ldr	r1, .L427+4
	mov	r0, #36
	bl	libc_
	mov	r3, r0
	ldr	r2, [fp, #-16]
	ldr	r1, .L427+8
	mov	r0, r3
	blx	r4
	ldr	r1, .L427
	mov	r0, #0
	bl	libc_
	mov	r4, r0
	ldr	r1, .L427+4
	mov	r0, #36
	bl	libc_
	mov	r3, r0
	ldr	r1, .L427+12
	mov	r0, r3
	blx	r4
	ldr	r1, .L427+16
	mov	r0, #38
	bl	libc_
	mov	r3, r0
	mov	r0, #1
	blx	r3
	b	.L425
.L424:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	beq	.L425
	ldr	r1, .L427
	mov	r0, #0
	bl	libc_
	mov	r4, r0
	ldr	r1, .L427+4
	mov	r0, #36
	bl	libc_
	ldr	r2, .L427+20
	ldr	r3, [fp, #-24]
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	ldr	r1, .L427+20
	ldr	r3, [r1, r3, lsl #2]
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #-16]
	ldr	r1, .L427+24
	blx	r4
	ldr	r1, .L427
	mov	r0, #0
	bl	libc_
	mov	r4, r0
	ldr	r1, .L427+4
	mov	r0, #36
	bl	libc_
	mov	r3, r0
	ldr	r1, .L427+12
	mov	r0, r3
	blx	r4
	ldr	r1, .L427+16
	mov	r0, #38
	bl	libc_
	mov	r3, r0
	mov	r0, #1
	blx	r3
.L425:
	ldr	r3, [fp, #-20]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L428:
	.align	2
.L427:
	.word	.LC53
	.word	.LC17
	.word	.LC99
	.word	.LC55
	.word	.LC56
	.word	type_names
	.word	.LC100
	.size	sao_type_assert, .-sao_type_assert
	.align	2
	.global	native_type
	.syntax unified
	.arm
	.fpu softvfp
	.type	native_type, %function
native_type:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	sub	r3, fp, #28
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-28]
	ldr	r0, [fp, #-32]
	bl	car
	mov	r3, r0
	ldr	r3, [r3]
	ldr	r2, .L431
	ldr	r3, [r2, r3, lsl #2]
	str	r3, [fp, #-20]
	mov	r2, sp
	sub	r3, fp, #12
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #28
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L432:
	.align	2
.L431:
	.word	type_names
	.size	native_type, .-native_type
	.section	.rodata
	.align	2
.LC101:
	.ascii	"\012native_debug.args=\000"
	.align	2
.LC102:
	.ascii	"\012native_debug.ctx=\000"
	.align	2
.LC103:
	.ascii	"\012long=%ld\012\000"
	.align	2
.LC104:
	.ascii	"\012 native_debug TODO type(%d)\000"
	.align	2
.LC105:
	.ascii	"\012 native_debug TODO no args\000"
	.text
	.align	2
	.global	native_debug
	.syntax unified
	.arm
	.fpu softvfp
	.type	native_debug, %function
native_debug:
	@ 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, .L438
	ldr	r3, [r3]
	ldr	r1, [fp, #-24]
	ldr	r0, .L438+4
	blx	r3
	ldr	r3, .L438
	ldr	r3, [r3]
	ldr	r1, [fp, #-28]
	ldr	r0, .L438+8
	blx	r3
	ldr	r0, [fp, #-24]
	bl	car
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L434
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	cmp	r3, #2
	bne	.L435
	ldr	r1, .L438+12
	mov	r0, #10
	bl	libc_
	mov	r4, r0
	ldr	r0, [fp, #-24]
	bl	car
	mov	r3, r0
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, .L438+16
	blx	r4
	b	.L436
.L435:
	ldr	r1, .L438+12
	mov	r0, #10
	bl	libc_
	mov	r2, r0
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L438+20
	blx	r2
	b	.L436
.L434:
	ldr	r1, .L438+12
	mov	r0, #10
	bl	libc_
	mov	r3, r0
	ldr	r0, .L438+24
	blx	r3
.L436:
	ldr	r3, .L438+28
	ldr	r3, [r3]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L439:
	.align	2
.L438:
	.word	sao_print
	.word	.LC101
	.word	.LC102
	.word	.LC61
	.word	.LC103
	.word	.LC104
	.word	.LC105
	.word	SAO_TAG_true
	.size	native_debug, .-native_debug
	.align	2
	.global	native_list
	.syntax unified
	.arm
	.fpu softvfp
	.type	native_list, %function
native_list:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	native_list, .-native_list
	.align	2
	.global	native_cons
	.syntax unified
	.arm
	.fpu softvfp
	.type	native_cons, %function
native_cons:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #12
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	car
	mov	r4, r0
	ldr	r0, [fp, #-16]
	bl	cadr
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	cons
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	native_cons, .-native_cons
	.align	2
	.global	native_car
	.syntax unified
	.arm
	.fpu softvfp
	.type	native_car, %function
native_car:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	caar
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L445
	ldr	r0, [fp, #-16]
	bl	car
	str	r0, [fp, #-8]
.L445:
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	native_car, .-native_car
	.align	2
	.global	native_cdr
	.syntax unified
	.arm
	.fpu softvfp
	.type	native_cdr, %function
native_cdr:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	cdar
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L448
	ldr	r0, [fp, #-16]
	bl	cdr
	str	r0, [fp, #-8]
.L448:
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	native_cdr, .-native_cdr
	.align	2
	.global	native_setcar
	.syntax unified
	.arm
	.fpu softvfp
	.type	native_setcar, %function
native_setcar:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #12
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	car
	mov	r3, r0
	mov	r2, #0
	mov	r1, r3
	ldr	r0, .L452
	bl	sao_type_assert
	ldr	r3, [fp, #-16]
	ldr	r4, [r3, #8]
	ldr	r0, [fp, #-16]
	bl	cadr
	mov	r3, r0
	str	r3, [r4, #8]
	ldr	r3, .L452+4
	ldr	r3, [r3]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L453:
	.align	2
.L452:
	.word	__func__.4817
	.word	SAO_TAG_nil
	.size	native_setcar, .-native_setcar
	.align	2
	.global	native_setcdr
	.syntax unified
	.arm
	.fpu softvfp
	.type	native_setcdr, %function
native_setcdr:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #12
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	car
	mov	r3, r0
	mov	r2, #0
	mov	r1, r3
	ldr	r0, .L456
	bl	sao_type_assert
	ldr	r3, [fp, #-16]
	ldr	r4, [r3, #8]
	ldr	r0, [fp, #-16]
	bl	cadr
	mov	r3, r0
	str	r3, [r4, #12]
	ldr	r3, .L456+4
	ldr	r3, [r3]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L457:
	.align	2
.L456:
	.word	__func__.4822
	.word	SAO_TAG_nil
	.size	native_setcdr, .-native_setcdr
	.section	.rodata
	.align	2
.LC106:
	.ascii	"strlen\000"
	.align	2
.LC107:
	.ascii	"\012# DEBUG sao_is_empty=\000"
	.align	2
.LC108:
	.ascii	"\012# DEBUG rt=\000"
	.text
	.align	2
	.global	sao_is_empty
	.syntax unified
	.arm
	.fpu softvfp
	.type	sao_is_empty, %function
sao_is_empty:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, .L470
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L459
	ldr	r3, .L470+4
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	b	.L460
.L459:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L461
	cmp	r3, #5
	beq	.L462
	b	.L469
.L461:
	ldr	r0, [fp, #-16]
	bl	car
	mov	r3, r0
	mov	r0, r3
	bl	sao_is_empty
	mov	r3, r0
	cmp	r3, #0
	beq	.L467
	ldr	r0, [fp, #-16]
	bl	cdr
	mov	r3, r0
	mov	r0, r3
	bl	sao_is_empty
	mov	r3, r0
	cmp	r3, #0
	beq	.L468
	ldr	r3, .L470+4
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	b	.L463
.L462:
	ldr	r1, .L470+8
	mov	r0, #5
	bl	libc_
	mov	r2, r0
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	mov	r0, r3
	blx	r2
	mov	r3, r0
	cmp	r3, #0
	beq	.L469
	ldr	r3, .L470+4
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	b	.L469
.L467:
	nop
	b	.L469
.L468:
	nop
.L463:
.L469:
	nop
.L460:
	ldr	r3, .L470+12
	ldr	r3, [r3]
	ldr	r1, [fp, #-16]
	ldr	r0, .L470+16
	blx	r3
	ldr	r3, .L470+12
	ldr	r3, [r3]
	ldr	r1, [fp, #-8]
	ldr	r0, .L470+20
	blx	r3
	ldr	r1, .L470+24
	mov	r0, #10
	bl	libc_
	mov	r3, r0
	ldr	r0, .L470+28
	blx	r3
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L471:
	.align	2
.L470:
	.word	SAO_TAG_nil
	.word	SAO_TAG_true
	.word	.LC106
	.word	sao_print
	.word	.LC107
	.word	.LC108
	.word	.LC61
	.word	.LC55
	.size	sao_is_empty, .-sao_is_empty
	.section	.rodata
	.align	2
.LC109:
	.ascii	"native_is_empty.args must be list\000"
	.text
	.align	2
	.global	native_is_empty
	.syntax unified
	.arm
	.fpu softvfp
	.type	native_is_empty, %function
native_is_empty:
	@ 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]
	cmp	r3, #0
	bne	.L473
	ldr	r3, .L478
	ldr	r3, [r3]
	b	.L474
.L473:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L475
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L476
.L475:
	ldr	r1, .L478+4
	mov	r0, #0
	bl	libc_
	mov	r4, r0
	ldr	r1, .L478+8
	mov	r0, #36
	bl	libc_
	mov	r3, r0
	ldr	r1, .L478+12
	mov	r0, r3
	blx	r4
	ldr	r1, .L478+4
	mov	r0, #0
	bl	libc_
	mov	r4, r0
	ldr	r1, .L478+8
	mov	r0, #36
	bl	libc_
	mov	r3, r0
	ldr	r1, .L478+16
	mov	r0, r3
	blx	r4
	ldr	r1, .L478+20
	mov	r0, #38
	bl	libc_
	mov	r3, r0
	mov	r0, #1
	blx	r3
.L476:
	ldr	r0, [fp, #-24]
	bl	car
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	sao_is_empty
	mov	r3, r0
	cmp	r3, #0
	bne	.L477
	ldr	r3, .L478+24
	ldr	r3, [r3]
	b	.L474
.L477:
	ldr	r3, .L478
	ldr	r3, [r3]
.L474:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L479:
	.align	2
.L478:
	.word	SAO_TAG_true
	.word	.LC53
	.word	.LC17
	.word	.LC109
	.word	.LC55
	.word	.LC56
	.word	SAO_TAG_false
	.size	native_is_empty, .-native_is_empty
	.align	2
	.global	native__null
	.syntax unified
	.arm
	.fpu softvfp
	.type	native__null, %function
native__null:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, .L482
	ldr	r3, [r3]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L483:
	.align	2
.L482:
	.word	SAO_TAG_nil
	.size	native__null, .-native__null
	.align	2
	.global	native__ctx
	.syntax unified
	.arm
	.fpu softvfp
	.type	native__ctx, %function
native__ctx:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-12]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	native__ctx, .-native__ctx
	.align	2
	.global	native_is_nil
	.syntax unified
	.arm
	.fpu softvfp
	.type	native_is_nil, %function
native_is_nil:
	@ 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, .L493
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L487
	ldr	r3, .L493+4
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	b	.L488
.L487:
	ldr	r0, [fp, #-16]
	bl	car
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L489
	ldr	r3, .L493+4
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	b	.L492
.L489:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L492
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L492
	ldr	r0, [fp, #-8]
	bl	car
	mov	r3, r0
	cmp	r3, #0
	bne	.L492
	ldr	r0, [fp, #-8]
	bl	cdr
	mov	r3, r0
	cmp	r3, #0
	bne	.L492
	ldr	r3, .L493+4
	ldr	r3, [r3]
	str	r3, [fp, #-12]
.L492:
	nop
.L488:
	ldr	r3, [fp, #-12]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L494:
	.align	2
.L493:
	.word	SAO_TAG_false
	.word	SAO_TAG_true
	.size	native_is_nil, .-native_is_nil
	.align	2
	.global	native_pairq
	.syntax unified
	.arm
	.fpu softvfp
	.type	native_pairq, %function
native_pairq:
	@ 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	car
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L496
	ldr	r3, .L500
	ldr	r3, [r3]
	b	.L497
.L496:
	ldr	r0, [fp, #-8]
	bl	caar
	mov	r3, r0
	cmp	r3, #0
	beq	.L498
	ldr	r0, [fp, #-8]
	bl	caar
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L498
	ldr	r0, [fp, #-8]
	bl	cdar
	mov	r3, r0
	cmp	r3, #0
	beq	.L498
	ldr	r0, [fp, #-8]
	bl	cdar
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L498
	ldr	r3, .L500+4
	ldr	r3, [r3]
	b	.L497
.L498:
	ldr	r3, .L500
	ldr	r3, [r3]
.L497:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L501:
	.align	2
.L500:
	.word	SAO_TAG_false
	.word	SAO_TAG_true
	.size	native_pairq, .-native_pairq
	.align	2
	.global	native_is_list
	.syntax unified
	.arm
	.fpu softvfp
	.type	native_is_list, %function
native_is_list:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	car
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L503
	ldr	r3, .L510
	ldr	r3, [r3]
	b	.L504
.L503:
	ldr	r0, [fp, #-16]
	bl	car
	str	r0, [fp, #-8]
	b	.L505
.L507:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	beq	.L506
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L506
	ldr	r3, .L510
	ldr	r3, [r3]
	b	.L504
.L506:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-8]
.L505:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L507
	ldr	r0, [fp, #-16]
	bl	car
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L508
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	native_pairq
	mov	r2, r0
	ldr	r3, .L510+4
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L508
	ldr	r3, .L510+4
	ldr	r3, [r3]
	b	.L504
.L508:
	ldr	r3, .L510
	ldr	r3, [r3]
.L504:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L511:
	.align	2
.L510:
	.word	SAO_TAG_false
	.word	SAO_TAG_true
	.size	native_is_list, .-native_is_list
	.align	2
	.global	native_atom
	.syntax unified
	.arm
	.fpu softvfp
	.type	native_atom, %function
native_atom:
	@ 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	car
	mov	r3, r0
	cmp	r3, #0
	beq	.L513
	ldr	r0, [fp, #-8]
	bl	car
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L513
	ldr	r3, .L516
	ldr	r3, [r3]
	b	.L515
.L513:
	ldr	r3, .L516+4
	ldr	r3, [r3]
.L515:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L517:
	.align	2
.L516:
	.word	SAO_TAG_true
	.word	SAO_TAG_false
	.size	native_atom, .-native_atom
	.section	.rodata
	.align	2
.LC110:
	.ascii	"<TODO native_cmp %d>\000"
	.text
	.align	2
	.global	native_cmp
	.syntax unified
	.arm
	.fpu softvfp
	.type	native_cmp, %function
native_cmp:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r0, [fp, #-24]
	bl	car
	str	r0, [fp, #-20]
	ldr	r0, [fp, #-24]
	bl	cadr
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L519
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L520
	ldr	r3, .L534
	ldr	r3, [r3]
	b	.L521
.L520:
	ldr	r3, .L534+4
	ldr	r3, [r3]
	b	.L521
.L519:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L522
	ldr	r3, .L534+4
	ldr	r3, [r3]
	b	.L521
.L522:
	ldr	r3, [fp, #-20]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L523
	ldr	r3, .L534+4
	ldr	r3, [r3]
	b	.L521
.L523:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	cmp	r3, #2
	bne	.L524
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L525
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	b	.L526
.L525:
	mov	r3, #0
.L526:
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L527
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #16]
	b	.L528
.L527:
	mov	r3, #0
.L528:
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	bne	.L529
	ldr	r3, .L534
	ldr	r3, [r3]
	b	.L521
.L529:
	ldr	r3, .L534+4
	ldr	r3, [r3]
	b	.L521
.L524:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	cmp	r3, #4
	bne	.L531
	ldr	r3, .L534+8
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	ldr	r0, [r2, #8]
	ldr	r2, [fp, #-16]
	ldr	r2, [r2, #8]
	mov	r1, r2
	blx	r3
	mov	r3, r0
	cmp	r3, #0
	bne	.L532
	ldr	r3, .L534
	ldr	r3, [r3]
	b	.L521
.L532:
	ldr	r3, .L534+4
	ldr	r3, [r3]
	b	.L521
.L531:
	ldr	r1, .L534+12
	mov	r0, #10
	bl	libc_
	mov	r2, r0
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L534+16
	blx	r2
	ldr	r3, .L534+4
	ldr	r3, [r3]
.L521:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L535:
	.align	2
.L534:
	.word	SAO_TAG_true
	.word	SAO_TAG_false
	.word	sao_strcmp
	.word	.LC61
	.word	.LC110
	.size	native_cmp, .-native_cmp
	.align	2
	.global	native_same
	.syntax unified
	.arm
	.fpu softvfp
	.type	native_same, %function
native_same:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #36
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	ldr	r0, [fp, #-40]
	bl	car
	mov	r4, r0
	ldr	r0, [fp, #-40]
	bl	cadr
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	sao_is_eq
	mov	r3, r0
	cmp	r3, #0
	beq	.L537
	ldr	r3, .L549
	ldr	r3, [r3]
	b	.L538
.L537:
	ldr	r0, [fp, #-40]
	bl	car
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L539
	ldr	r0, [fp, #-40]
	bl	cadr
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L539
	ldr	r0, [fp, #-40]
	bl	car
	str	r0, [fp, #-32]
	ldr	r0, [fp, #-40]
	bl	cadr
	str	r0, [fp, #-28]
	b	.L540
.L543:
	ldr	r0, [fp, #-32]
	bl	car
	mov	r4, r0
	ldr	r0, [fp, #-28]
	bl	car
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	sao_is_eq
	mov	r3, r0
	cmp	r3, #0
	bne	.L541
	ldr	r3, .L549+4
	ldr	r3, [r3]
	b	.L538
.L541:
	ldr	r0, [fp, #-32]
	bl	cdr
	str	r0, [fp, #-32]
	ldr	r0, [fp, #-28]
	bl	cdr
	str	r0, [fp, #-28]
.L540:
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	beq	.L542
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bne	.L543
.L542:
	ldr	r3, .L549
	ldr	r3, [r3]
	b	.L538
.L539:
	ldr	r0, [fp, #-40]
	bl	car
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L544
	ldr	r0, [fp, #-40]
	bl	cadr
	mov	r3, r0
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L544
	ldr	r0, [fp, #-40]
	bl	car
	mov	r3, r0
	ldr	r4, [r3, #16]
	ldr	r0, [fp, #-40]
	bl	cadr
	mov	r3, r0
	ldr	r3, [r3, #16]
	cmp	r4, r3
	beq	.L545
	ldr	r3, .L549+4
	ldr	r3, [r3]
	b	.L538
.L545:
	ldr	r0, [fp, #-40]
	bl	car
	mov	r3, r0
	ldr	r3, [r3, #8]
	str	r3, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	cadr
	mov	r3, r0
	ldr	r3, [r3, #8]
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L546
.L548:
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r1, r3
	bl	sao_is_eq
	mov	r3, r0
	cmp	r3, #0
	bne	.L547
	ldr	r3, .L549+4
	ldr	r3, [r3]
	b	.L538
.L547:
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L546:
	ldr	r0, [fp, #-40]
	bl	car
	mov	r3, r0
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	blt	.L548
	ldr	r3, .L549
	ldr	r3, [r3]
	b	.L538
.L544:
	ldr	r3, .L549+4
	ldr	r3, [r3]
.L538:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L550:
	.align	2
.L549:
	.word	SAO_TAG_true
	.word	SAO_TAG_false
	.size	native_same, .-native_same
	.align	2
	.global	native_gt
	.syntax unified
	.arm
	.fpu softvfp
	.type	native_gt, %function
native_gt:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #12
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	car
	mov	r3, r0
	mov	r2, #2
	mov	r1, r3
	ldr	r0, .L555
	bl	sao_type_assert
	ldr	r0, [fp, #-16]
	bl	cadr
	mov	r3, r0
	mov	r2, #2
	mov	r1, r3
	ldr	r0, .L555
	bl	sao_type_assert
	ldr	r0, [fp, #-16]
	bl	car
	mov	r3, r0
	ldr	r4, [r3, #16]
	ldr	r0, [fp, #-16]
	bl	cadr
	mov	r3, r0
	ldr	r3, [r3, #16]
	cmp	r4, r3
	ble	.L552
	ldr	r3, .L555+4
	ldr	r3, [r3]
	b	.L554
.L552:
	ldr	r3, .L555+8
	ldr	r3, [r3]
.L554:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L556:
	.align	2
.L555:
	.word	__func__.4896
	.word	SAO_TAG_true
	.word	SAO_TAG_false
	.size	native_gt, .-native_gt
	.align	2
	.global	native_lt
	.syntax unified
	.arm
	.fpu softvfp
	.type	native_lt, %function
native_lt:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #12
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	car
	mov	r3, r0
	mov	r2, #2
	mov	r1, r3
	ldr	r0, .L561
	bl	sao_type_assert
	ldr	r0, [fp, #-16]
	bl	cadr
	mov	r3, r0
	mov	r2, #2
	mov	r1, r3
	ldr	r0, .L561
	bl	sao_type_assert
	ldr	r0, [fp, #-16]
	bl	car
	mov	r3, r0
	ldr	r4, [r3, #16]
	ldr	r0, [fp, #-16]
	bl	cadr
	mov	r3, r0
	ldr	r3, [r3, #16]
	cmp	r4, r3
	bge	.L558
	ldr	r3, .L561+4
	ldr	r3, [r3]
	b	.L560
.L558:
	ldr	r3, .L561+8
	ldr	r3, [r3]
.L560:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L562:
	.align	2
.L561:
	.word	__func__.4901
	.word	SAO_TAG_true
	.word	SAO_TAG_false
	.size	native_lt, .-native_lt
	.align	2
	.global	native_add
	.syntax unified
	.arm
	.fpu softvfp
	.type	native_add, %function
native_add:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	ldr	r0, [fp, #-40]
	bl	car
	mov	r3, r0
	mov	r2, #2
	mov	r1, r3
	ldr	r0, .L567
	bl	sao_type_assert
	ldr	r0, [fp, #-40]
	bl	car
	mov	r3, r0
	ldr	r3, [r3, #16]
	str	r3, [fp, #-32]
	ldr	r0, [fp, #-40]
	bl	cdr
	str	r0, [fp, #-40]
	b	.L564
.L565:
	ldr	r0, [fp, #-40]
	bl	car
	mov	r3, r0
	mov	r2, #2
	mov	r1, r3
	ldr	r0, .L567
	bl	sao_type_assert
	ldr	r0, [fp, #-40]
	bl	car
	mov	r3, r0
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-32]
	ldr	r0, [fp, #-40]
	bl	cdr
	str	r0, [fp, #-40]
.L564:
	ldr	r0, [fp, #-40]
	bl	car
	mov	r3, r0
	cmp	r3, #0
	bne	.L565
	sub	r3, fp, #28
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #2
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-12]
	mov	r2, sp
	sub	r3, fp, #12
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #28
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L568:
	.align	2
.L567:
	.word	__func__.4906
	.size	native_add, .-native_add
	.align	2
	.global	native_sub
	.syntax unified
	.arm
	.fpu softvfp
	.type	native_sub, %function
native_sub:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	ldr	r0, [fp, #-40]
	bl	car
	mov	r3, r0
	mov	r2, #2
	mov	r1, r3
	ldr	r0, .L573
	bl	sao_type_assert
	ldr	r0, [fp, #-40]
	bl	car
	mov	r3, r0
	ldr	r3, [r3, #16]
	str	r3, [fp, #-32]
	ldr	r0, [fp, #-40]
	bl	cdr
	str	r0, [fp, #-40]
	b	.L570
.L571:
	ldr	r0, [fp, #-40]
	bl	car
	mov	r3, r0
	mov	r2, #2
	mov	r1, r3
	ldr	r0, .L573
	bl	sao_type_assert
	ldr	r0, [fp, #-40]
	bl	car
	mov	r3, r0
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-32]
	sub	r3, r2, r3
	str	r3, [fp, #-32]
	ldr	r0, [fp, #-40]
	bl	cdr
	str	r0, [fp, #-40]
.L570:
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	bne	.L571
	sub	r3, fp, #28
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #2
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-12]
	mov	r2, sp
	sub	r3, fp, #12
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #28
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L574:
	.align	2
.L573:
	.word	__func__.4916
	.size	native_sub, .-native_sub
	.global	__aeabi_idiv
	.align	2
	.global	native_div
	.syntax unified
	.arm
	.fpu softvfp
	.type	native_div, %function
native_div:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	ldr	r0, [fp, #-40]
	bl	car
	mov	r3, r0
	mov	r2, #2
	mov	r1, r3
	ldr	r0, .L579
	bl	sao_type_assert
	ldr	r0, [fp, #-40]
	bl	car
	mov	r3, r0
	ldr	r3, [r3, #16]
	str	r3, [fp, #-32]
	ldr	r0, [fp, #-40]
	bl	cdr
	str	r0, [fp, #-40]
	b	.L576
.L577:
	ldr	r0, [fp, #-40]
	bl	car
	mov	r3, r0
	mov	r2, #2
	mov	r1, r3
	ldr	r0, .L579
	bl	sao_type_assert
	ldr	r0, [fp, #-40]
	bl	car
	mov	r3, r0
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	__aeabi_idiv
	mov	r3, r0
	str	r3, [fp, #-32]
	ldr	r0, [fp, #-40]
	bl	cdr
	str	r0, [fp, #-40]
.L576:
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	bne	.L577
	sub	r3, fp, #28
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #2
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-12]
	mov	r2, sp
	sub	r3, fp, #12
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #28
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L580:
	.align	2
.L579:
	.word	__func__.4926
	.size	native_div, .-native_div
	.section	.rodata
	.align	2
.LC111:
	.ascii	"WARN: mul() is not yet support type of (%d)\012\000"
	.align	2
.LC112:
	.ascii	"WARN: Matrix Calc is coming soon\000"
	.text
	.align	2
	.global	native_mul
	.syntax unified
	.arm
	.fpu softvfp
	.type	native_mul, %function
native_mul:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #52
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	ldr	r0, [fp, #-48]
	bl	car
	str	r0, [fp, #-40]
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	bne	.L582
	ldr	r3, .L593
	ldr	r3, [r3]
	b	.L583
.L582:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	cmp	r3, #2
	bne	.L584
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-44]
	ldr	r0, [fp, #-48]
	bl	cdr
	str	r0, [fp, #-48]
	b	.L585
.L589:
	ldr	r0, [fp, #-48]
	bl	car
	str	r0, [fp, #-40]
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	beq	.L592
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	cmp	r3, #2
	beq	.L588
	ldr	r1, .L593+4
	mov	r0, #0
	bl	libc_
	mov	r4, r0
	ldr	r1, .L593+8
	mov	r0, #36
	bl	libc_
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L593+12
	blx	r4
	b	.L587
.L588:
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-44]
	mul	r3, r2, r3
	str	r3, [fp, #-44]
	ldr	r0, [fp, #-48]
	bl	cdr
	str	r0, [fp, #-48]
.L585:
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bne	.L589
	b	.L587
.L592:
	nop
.L587:
	sub	r3, fp, #36
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #2
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-20]
	mov	r2, sp
	sub	r3, fp, #20
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #36
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r3, r0
	b	.L583
.L584:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L590
	ldr	r1, .L593+4
	mov	r0, #0
	bl	libc_
	mov	r4, r0
	ldr	r1, .L593+8
	mov	r0, #36
	bl	libc_
	mov	r3, r0
	ldr	r1, .L593+16
	mov	r0, r3
	blx	r4
	b	.L591
.L590:
	ldr	r1, .L593+4
	mov	r0, #0
	bl	libc_
	mov	r4, r0
	ldr	r1, .L593+8
	mov	r0, #36
	bl	libc_
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L593+12
	blx	r4
.L591:
	ldr	r3, .L593
	ldr	r3, [r3]
.L583:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L594:
	.align	2
.L593:
	.word	SAO_TAG_nil
	.word	.LC53
	.word	.LC17
	.word	.LC111
	.word	.LC112
	.size	native_mul, .-native_mul
	.section	.rodata
	.align	2
.LC113:
	.ascii	"strcpy\000"
	.align	2
.LC114:
	.ascii	"strcat\000"
	.text
	.align	2
	.global	sao_strcat
	.syntax unified
	.arm
	.fpu softvfp
	.type	sao_strcat, %function
sao_strcat:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #16
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r1, .L597
	mov	r0, #1
	bl	libc_
	mov	r4, r0
	ldr	r1, .L597+4
	mov	r0, #5
	bl	libc_
	mov	r3, r0
	ldr	r0, [fp, #-24]
	blx	r3
	mov	r3, r0
	mov	r5, r3
	ldr	r1, .L597+4
	mov	r0, #5
	bl	libc_
	mov	r3, r0
	ldr	r0, [fp, #-28]
	blx	r3
	mov	r3, r0
	add	r3, r5, r3
	add	r3, r3, #1
	mov	r0, r3
	blx	r4
	str	r0, [fp, #-16]
	ldr	r1, .L597+8
	mov	r0, #4
	bl	libc_
	mov	r3, r0
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-16]
	blx	r3
	ldr	r1, .L597+12
	mov	r0, #9
	bl	libc_
	mov	r3, r0
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-16]
	blx	r3
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L598:
	.align	2
.L597:
	.word	.LC34
	.word	.LC106
	.word	.LC113
	.word	.LC114
	.size	sao_strcat, .-sao_strcat
	.section	.rodata
	.align	2
.LC115:
	.ascii	"system\000"
	.text
	.align	2
	.global	native_shell
	.syntax unified
	.arm
	.fpu softvfp
	.type	native_shell, %function
native_shell:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L600
.L603:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L601
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-12]
	b	.L602
.L601:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	mov	r1, r3
	ldr	r0, [fp, #-12]
	bl	sao_strcat
	str	r0, [fp, #-12]
.L602:
	ldr	r0, [fp, #-16]
	bl	cdr
	str	r0, [fp, #-16]
.L600:
	ldr	r0, [fp, #-16]
	bl	car
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L603
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L604
	ldr	r1, .L606
	mov	r0, #25
	bl	libc_
	mov	r3, r0
	ldr	r0, [fp, #-12]
	blx	r3
.L604:
	ldr	r3, .L606+4
	ldr	r3, [r3]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L607:
	.align	2
.L606:
	.word	.LC115
	.word	SAO_TAG_true
	.size	native_shell, .-native_shell
	.section	.rodata
	.align	2
.LC116:
	.ascii	"ffi todo\000"
	.text
	.align	2
	.global	native_ffi
	.syntax unified
	.arm
	.fpu softvfp
	.type	native_ffi, %function
native_ffi:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, .L610
	ldr	r3, [r3]
	ldr	r1, [fp, #-8]
	ldr	r0, .L610+4
	blx	r3
	ldr	r3, .L610+8
	ldr	r3, [r3]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L611:
	.align	2
.L610:
	.word	sao_print
	.word	.LC116
	.word	SAO_TAG_true
	.size	native_ffi, .-native_ffi
	.align	2
	.global	native_exit
	.syntax unified
	.arm
	.fpu softvfp
	.type	native_exit, %function
native_exit:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	car
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L613
	ldr	r3, .L615
	ldr	r3, [r3]
	ldr	r1, [fp, #-8]
	mov	r0, #0
	blx	r3
	ldr	r1, .L615+4
	mov	r0, #10
	bl	libc_
	mov	r3, r0
	ldr	r0, .L615+8
	blx	r3
.L613:
	ldr	r1, .L615+12
	mov	r0, #38
	bl	libc_
	mov	r3, r0
	mov	r0, #0
	blx	r3
	ldr	r3, .L615+16
	ldr	r3, [r3]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L616:
	.align	2
.L615:
	.word	sao_print
	.word	.LC61
	.word	.LC55
	.word	.LC56
	.word	SAO_TAG_nil
	.size	native_exit, .-native_exit
	.align	2
	.global	native_read
	.syntax unified
	.arm
	.fpu softvfp
	.type	native_read, %function
native_read:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r1, .L619
	mov	r0, #34
	bl	libc_
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	sao_stream_new
	mov	r3, r0
	mov	r0, r3
	bl	sao_load_expr
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L620:
	.align	2
.L619:
	.word	.LC21
	.size	native_read, .-native_read
	.section	.rodata
	.align	2
.LC117:
	.ascii	"fopen\000"
	.align	2
.LC118:
	.ascii	"Error opening file %s\012\000"
	.align	2
.LC119:
	.ascii	"fclose\000"
	.text
	.align	2
	.global	native_load
	.syntax unified
	.arm
	.fpu softvfp
	.type	native_load, %function
native_load:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #36
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	ldr	r3, .L629
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	ldr	r0, [fp, #-40]
	bl	car
	mov	r3, r0
	ldr	r3, [r3, #8]
	str	r3, [fp, #-28]
	ldr	r1, .L629+4
	mov	r0, #16
	bl	libc_
	mov	r3, r0
	ldr	r1, .L629+8
	ldr	r0, [fp, #-28]
	blx	r3
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L622
	ldr	r1, .L629+12
	mov	r0, #0
	bl	libc_
	mov	r4, r0
	ldr	r1, .L629+16
	mov	r0, #36
	bl	libc_
	mov	r3, r0
	ldr	r2, [fp, #-28]
	ldr	r1, .L629+20
	mov	r0, r3
	blx	r4
	ldr	r3, .L629
	ldr	r3, [r3]
	b	.L623
.L622:
	mov	r1, #0
	ldr	r0, [fp, #-24]
	bl	sao_stream_new
	str	r0, [fp, #-20]
.L626:
	ldr	r0, [fp, #-20]
	bl	sao_load_expr
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L628
	ldr	r3, .L629+24
	ldr	r3, [r3]
	ldr	r2, .L629+28
	ldr	r2, [r2]
	mov	r1, r2
	ldr	r0, [fp, #-16]
	blx	r3
	str	r0, [fp, #-32]
	b	.L626
.L628:
	nop
	ldr	r1, .L629+32
	mov	r0, #20
	bl	libc_
	mov	r3, r0
	ldr	r0, [fp, #-24]
	blx	r3
	ldr	r3, [fp, #-32]
.L623:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L630:
	.align	2
.L629:
	.word	SAO_TAG_nil
	.word	.LC117
	.word	.LC8
	.word	.LC53
	.word	.LC17
	.word	.LC118
	.word	sao_eval
	.word	SAO_TAG_global
	.word	.LC119
	.size	native_load, .-native_load
	.align	2
	.global	native_vget
	.syntax unified
	.arm
	.fpu softvfp
	.type	native_vget, %function
native_vget:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	car
	mov	r3, r0
	mov	r2, #1
	mov	r1, r3
	ldr	r0, .L634
	bl	sao_type_assert
	str	r0, [fp, #-12]
	ldr	r0, [fp, #-16]
	bl	cadr
	mov	r3, r0
	mov	r2, #2
	mov	r1, r3
	ldr	r0, .L634
	bl	sao_type_assert
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #16]
	cmp	r2, r3
	blt	.L632
	ldr	r3, .L634+4
	ldr	r3, [r3]
	b	.L633
.L632:
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
.L633:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L635:
	.align	2
.L634:
	.word	__func__.4986
	.word	SAO_TAG_nil
	.size	native_vget, .-native_vget
	.align	2
	.global	native_vset
	.syntax unified
	.arm
	.fpu softvfp
	.type	native_vset, %function
native_vset:
	@ 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	r0, [fp, #-24]
	bl	car
	mov	r3, r0
	mov	r2, #1
	mov	r1, r3
	ldr	r0, .L640
	bl	sao_type_assert
	str	r0, [fp, #-20]
	ldr	r0, [fp, #-24]
	bl	cadr
	mov	r3, r0
	mov	r2, #2
	mov	r1, r3
	ldr	r0, .L640
	bl	sao_type_assert
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-24]
	bl	caddr
	mov	r3, r0
	cmp	r3, #0
	bne	.L637
	ldr	r3, .L640+4
	ldr	r3, [r3]
	b	.L638
.L637:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	cmp	r2, r3
	blt	.L639
	ldr	r3, .L640+4
	ldr	r3, [r3]
	b	.L638
.L639:
	ldr	r0, [fp, #-24]
	bl	car
	mov	r3, r0
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #16]
	lsl	r3, r3, #2
	add	r4, r2, r3
	ldr	r0, [fp, #-24]
	bl	caddr
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, .L640+8
	ldr	r3, [r3]
.L638:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L641:
	.align	2
.L640:
	.word	__func__.4993
	.word	SAO_TAG_nil
	.word	SAO_TAG_true
	.size	native_vset, .-native_vset
	.section	.rodata
	.align	2
.LC120:
	.ascii	" \000"
	.text
	.align	2
	.global	native_print
	.syntax unified
	.arm
	.fpu softvfp
	.type	native_print, %function
native_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]
	str	r1, [fp, #-28]
	ldr	r3, .L651
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-12]
.L647:
	ldr	r0, [fp, #-24]
	bl	car
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L650
	ldr	r3, [fp, #-8]
	str	r3, [fp, #-16]
	ldr	r3, .L651+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	cmp	r2, #0
	beq	.L645
	ldr	r2, .L651+8
	b	.L646
.L645:
	mov	r2, #0
.L646:
	ldr	r1, [fp, #-8]
	mov	r0, r2
	blx	r3
	mov	r3, #1
	str	r3, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	cdr
	str	r0, [fp, #-24]
	b	.L647
.L650:
	nop
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L652:
	.align	2
.L651:
	.word	SAO_TAG_nil
	.word	sao_print
	.word	.LC120
	.size	native_print, .-native_print
	.section	.rodata
	.align	2
.LC121:
	.ascii	"\012 native_c_int=%s\012\000"
	.text
	.align	2
	.global	native_c_int
	.syntax unified
	.arm
	.fpu softvfp
	.type	native_c_int, %function
native_c_int:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L654
.L657:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L655
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-12]
	b	.L656
.L655:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	mov	r1, r3
	ldr	r0, [fp, #-12]
	bl	sao_strcat
	str	r0, [fp, #-12]
.L656:
	ldr	r0, [fp, #-16]
	bl	cdr
	str	r0, [fp, #-16]
.L654:
	ldr	r0, [fp, #-16]
	bl	car
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L657
	ldr	r1, .L659
	mov	r0, #10
	bl	libc_
	mov	r3, r0
	ldr	r1, [fp, #-12]
	ldr	r0, .L659+4
	blx	r3
	ldr	r3, .L659+8
	ldr	r3, [r3]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L660:
	.align	2
.L659:
	.word	.LC61
	.word	.LC121
	.word	SAO_TAG_nil
	.size	native_c_int, .-native_c_int
	.section	.rodata
	.align	2
.LC122:
	.ascii	"@@\000"
	.align	2
.LC123:
	.ascii	"@T\000"
	.align	2
.LC124:
	.ascii	"@F\000"
	.align	2
.LC125:
	.ascii	"@?\000"
	.align	2
.LC126:
	.ascii	"@L\000"
	.align	2
.LC127:
	.ascii	"@P\000"
	.align	2
.LC128:
	.ascii	"@:=\000"
	.align	2
.LC129:
	.ascii	"@+\000"
	.align	2
.LC130:
	.ascii	"@-\000"
	.align	2
.LC131:
	.ascii	"@*\000"
	.align	2
.LC132:
	.ascii	"@/\000"
	.align	2
.LC133:
	.ascii	"@<\000"
	.align	2
.LC134:
	.ascii	"@>\000"
	.align	2
.LC135:
	.ascii	"@==\000"
	.align	2
.LC136:
	.ascii	"@===\000"
	.align	2
.LC137:
	.ascii	"@@?\000"
	.align	2
.LC138:
	.ascii	"@A\000"
	.align	2
.LC139:
	.ascii	"@C\000"
	.align	2
.LC140:
	.ascii	"@D\000"
	.align	2
.LC141:
	.ascii	"print\000"
	.align	2
.LC142:
	.ascii	"atom\000"
	.align	2
.LC143:
	.ascii	"shell\000"
	.align	2
.LC144:
	.ascii	"ffi\000"
	.align	2
.LC145:
	.ascii	"type\000"
	.align	2
.LC146:
	.ascii	"cons\000"
	.align	2
.LC147:
	.ascii	"setcar\000"
	.align	2
.LC148:
	.ascii	"setcdr\000"
	.align	2
.LC149:
	.ascii	"debug\000"
	.align	2
.LC150:
	.ascii	"load\000"
	.align	2
.LC151:
	.ascii	"read\000"
	.align	2
.LC152:
	.ascii	"is_empty\000"
	.align	2
.LC153:
	.ascii	"is_list\000"
	.align	2
.LC154:
	.ascii	"pairq\000"
	.align	2
.LC155:
	.ascii	"same\000"
	.align	2
.LC156:
	.ascii	"_null\000"
	.align	2
.LC157:
	.ascii	"_ctx\000"
	.align	2
.LC158:
	.ascii	"c_int\000"
	.text
	.align	2
	.global	saolang_init
	.syntax unified
	.arm
	.fpu softvfp
	.type	saolang_init, %function
saolang_init:
	@ args = 0, pretend = 0, frame = 1800
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #1808
	sub	sp, sp, #4
	sub	r3, fp, #1792
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-1812]
	ldr	r3, .L663
	str	r3, [fp, #-1804]
	mov	r2, sp
	sub	r3, fp, #1776
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1792
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r3, r0
	ldr	r2, .L663+4
	str	r3, [r2]
	ldr	r3, .L663+4
	ldr	r3, [r3]
	ldr	r2, .L663+8
	ldr	r1, [r2]
	ldr	r2, .L663+12
	ldr	r2, [r2]
	mov	r0, r3
	bl	sao_var
	ldr	r3, .L663+16
	ldr	r2, .L663+20
	str	r2, [r3]
	ldr	r3, .L663+24
	ldr	r2, .L663+28
	str	r2, [r3]
	sub	r3, fp, #1776
	sub	r3, r3, #12
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-1788]
	ldr	r3, .L663+32
	str	r3, [fp, #-1780]
	mov	r2, sp
	sub	r3, fp, #1760
	sub	r3, r3, #12
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1776
	sub	r3, r3, #12
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r3, r0
	ldr	r2, .L663+36
	str	r3, [r2]
	ldr	r3, .L663+36
	ldr	r3, [r3]
	ldr	r2, .L663+36
	ldr	r1, [r2]
	ldr	r2, .L663+12
	ldr	r2, [r2]
	mov	r0, r3
	bl	sao_var
	sub	r3, fp, #1744
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-1764]
	ldr	r3, .L663+40
	str	r3, [fp, #-1756]
	mov	r2, sp
	sub	r3, fp, #1728
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1744
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r3, r0
	ldr	r2, .L663+44
	str	r3, [r2]
	ldr	r3, .L663+44
	ldr	r3, [r3]
	ldr	r2, .L663+44
	ldr	r1, [r2]
	ldr	r2, .L663+12
	ldr	r2, [r2]
	mov	r0, r3
	bl	sao_var
	sub	r3, fp, #1728
	sub	r3, r3, #12
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-1740]
	ldr	r3, .L663+48
	str	r3, [fp, #-1732]
	mov	r2, sp
	sub	r3, fp, #1712
	sub	r3, r3, #12
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1728
	sub	r3, r3, #12
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r3, r0
	ldr	r2, .L663+52
	str	r3, [r2]
	ldr	r3, .L663+52
	ldr	r3, [r3]
	ldr	r2, .L663+52
	ldr	r1, [r2]
	ldr	r2, .L663+12
	ldr	r2, [r2]
	mov	r0, r3
	bl	sao_var
	sub	r3, fp, #1696
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-1716]
	ldr	r3, .L663+56
	str	r3, [fp, #-1708]
	mov	r2, sp
	sub	r3, fp, #1680
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1696
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r3, r0
	ldr	r2, .L663+60
	str	r3, [r2]
	ldr	r3, .L663+60
	ldr	r3, [r3]
	ldr	r2, .L663+60
	ldr	r1, [r2]
	ldr	r2, .L663+12
	ldr	r2, [r2]
	mov	r0, r3
	bl	sao_var
	sub	r3, fp, #1680
	sub	r3, r3, #12
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-1692]
	ldr	r3, .L663+64
	str	r3, [fp, #-1684]
	mov	r2, sp
	sub	r3, fp, #1664
	sub	r3, r3, #12
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1680
	sub	r3, r3, #12
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r3, r0
	ldr	r2, .L663+68
	str	r3, [r2]
	ldr	r3, .L663+68
	ldr	r3, [r3]
	ldr	r2, .L663+68
	ldr	r1, [r2]
	ldr	r2, .L663+12
	ldr	r2, [r2]
	mov	r0, r3
	bl	sao_var
	sub	r3, fp, #1648
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-1668]
	ldr	r3, .L663+72
	str	r3, [fp, #-1660]
	mov	r2, sp
	sub	r3, fp, #1632
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1648
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r3, r0
	ldr	r2, .L663+76
	str	r3, [r2]
	ldr	r3, .L663+76
	ldr	r3, [r3]
	ldr	r2, .L663+76
	ldr	r1, [r2]
	ldr	r2, .L663+12
	ldr	r2, [r2]
	mov	r0, r3
	bl	sao_var
	sub	r3, fp, #1632
	sub	r3, r3, #12
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-1644]
	ldr	r3, .L663+80
	str	r3, [fp, #-1636]
	mov	r2, sp
	sub	r3, fp, #1616
	sub	r3, r3, #12
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1632
	sub	r3, r3, #12
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #1600
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-1620]
	ldr	r3, .L663+80
	str	r3, [fp, #-1612]
	ldr	r3, .L663+84
	str	r3, [fp, #-1604]
	mov	r2, sp
	sub	r3, fp, #1584
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1600
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+12
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #1584
	sub	r3, r3, #12
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-1596]
	ldr	r3, .L663+88
	str	r3, [fp, #-1588]
	mov	r2, sp
	sub	r3, fp, #1568
	sub	r3, r3, #12
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1584
	sub	r3, r3, #12
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #1552
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-1572]
	ldr	r3, .L663+88
	str	r3, [fp, #-1564]
	ldr	r3, .L663+92
	str	r3, [fp, #-1556]
	mov	r2, sp
	sub	r3, fp, #1536
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1552
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+12
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #1536
	sub	r3, r3, #12
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-1548]
	ldr	r3, .L663+96
	str	r3, [fp, #-1540]
	mov	r2, sp
	sub	r3, fp, #1520
	sub	r3, r3, #12
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1536
	sub	r3, r3, #12
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #1504
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-1524]
	ldr	r3, .L663+96
	str	r3, [fp, #-1516]
	ldr	r3, .L663+100
	str	r3, [fp, #-1508]
	mov	r2, sp
	sub	r3, fp, #1488
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1504
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+12
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #1488
	sub	r3, r3, #12
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-1500]
	ldr	r3, .L663+104
	str	r3, [fp, #-1492]
	mov	r2, sp
	sub	r3, fp, #1472
	sub	r3, r3, #12
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1488
	sub	r3, r3, #12
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #1456
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-1476]
	ldr	r3, .L663+104
	str	r3, [fp, #-1468]
	ldr	r3, .L663+108
	str	r3, [fp, #-1460]
	mov	r2, sp
	sub	r3, fp, #1440
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1456
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+12
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #1440
	sub	r3, r3, #12
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-1452]
	ldr	r3, .L663+112
	str	r3, [fp, #-1444]
	mov	r2, sp
	sub	r3, fp, #1424
	sub	r3, r3, #12
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1440
	sub	r3, r3, #12
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #1408
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-1428]
	ldr	r3, .L663+112
	str	r3, [fp, #-1420]
	ldr	r3, .L663+116
	str	r3, [fp, #-1412]
	mov	r2, sp
	sub	r3, fp, #1392
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1408
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+12
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #1392
	sub	r3, r3, #12
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-1404]
	ldr	r3, .L663+120
	str	r3, [fp, #-1396]
	mov	r2, sp
	sub	r3, fp, #1376
	sub	r3, r3, #12
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1392
	sub	r3, r3, #12
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #1360
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-1380]
	ldr	r3, .L663+120
	str	r3, [fp, #-1372]
	ldr	r3, .L663+124
	str	r3, [fp, #-1364]
	mov	r2, sp
	sub	r3, fp, #1344
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1360
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+12
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #1344
	sub	r3, r3, #12
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-1356]
	ldr	r3, .L663+128
	str	r3, [fp, #-1348]
	mov	r2, sp
	sub	r3, fp, #1328
	sub	r3, r3, #12
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1344
	sub	r3, r3, #12
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #1312
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-1332]
	ldr	r3, .L663+128
	str	r3, [fp, #-1324]
	ldr	r3, .L663+132
	str	r3, [fp, #-1316]
	mov	r2, sp
	sub	r3, fp, #1296
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1312
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+12
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #1296
	sub	r3, r3, #12
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-1308]
	ldr	r3, .L663+136
	str	r3, [fp, #-1300]
	mov	r2, sp
	sub	r3, fp, #1280
	sub	r3, r3, #12
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1296
	sub	r3, r3, #12
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #1264
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-1284]
	ldr	r3, .L663+136
	str	r3, [fp, #-1276]
	ldr	r3, .L663+300
	str	r3, [fp, #-1268]
	mov	r2, sp
	sub	r3, fp, #1248
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1264
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+12
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #1248
	sub	r3, r3, #12
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-1260]
	ldr	r3, .L663+140
	str	r3, [fp, #-1252]
	mov	r2, sp
	sub	r3, fp, #1232
	sub	r3, r3, #12
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1248
	sub	r3, r3, #12
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #1216
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-1236]
	ldr	r3, .L663+140
	str	r3, [fp, #-1228]
	ldr	r3, .L663+144
	str	r3, [fp, #-1220]
	mov	r2, sp
	sub	r3, fp, #1200
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1216
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+12
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #1200
	sub	r3, r3, #12
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-1212]
	ldr	r3, .L663+148
	str	r3, [fp, #-1204]
	mov	r2, sp
	sub	r3, fp, #1184
	sub	r3, r3, #12
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1200
	sub	r3, r3, #12
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #1168
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-1188]
	ldr	r3, .L663+148
	str	r3, [fp, #-1180]
	ldr	r3, .L663+152
	str	r3, [fp, #-1172]
	mov	r2, sp
	sub	r3, fp, #1152
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1168
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+12
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #1152
	sub	r3, r3, #12
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-1164]
	ldr	r3, .L663+156
	str	r3, [fp, #-1156]
	mov	r2, sp
	sub	r3, fp, #1136
	sub	r3, r3, #12
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1152
	sub	r3, r3, #12
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #1120
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-1140]
	ldr	r3, .L663+156
	str	r3, [fp, #-1132]
	ldr	r3, .L663+212
	str	r3, [fp, #-1124]
	mov	r2, sp
	sub	r3, fp, #1104
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1120
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+12
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #1104
	sub	r3, r3, #12
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-1116]
	ldr	r3, .L663+160
	str	r3, [fp, #-1108]
	mov	r2, sp
	sub	r3, fp, #1088
	sub	r3, r3, #12
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1104
	sub	r3, r3, #12
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #1072
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-1092]
	ldr	r3, .L663+160
	str	r3, [fp, #-1084]
	ldr	r3, .L663+164
	str	r3, [fp, #-1076]
	mov	r2, sp
	sub	r3, fp, #1056
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1072
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+12
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #1056
	sub	r3, r3, #12
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-1068]
	ldr	r3, .L663+256
	str	r3, [fp, #-1060]
	mov	r2, sp
	sub	r3, fp, #1040
	sub	r3, r3, #12
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1056
	sub	r3, r3, #12
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #1024
	sub	r3, r3, #12
	sub	r3, r3, #8
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-1044]
	ldr	r3, .L663+256
	str	r3, [fp, #-1036]
	ldr	r3, .L663+260
	str	r3, [fp, #-1028]
	mov	r2, sp
	sub	r3, fp, #1024
	sub	r3, r3, #4
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1024
	sub	r3, r3, #12
	sub	r3, r3, #8
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+12
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #1020
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-1020]
	ldr	r3, .L663+176
	str	r3, [fp, #-1012]
	mov	r2, sp
	sub	r3, fp, #1004
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #1020
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #996
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-996]
	ldr	r3, .L663+176
	str	r3, [fp, #-988]
	ldr	r3, .L663+180
	str	r3, [fp, #-980]
	mov	r2, sp
	sub	r3, fp, #980
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #996
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+12
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #972
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-972]
	ldr	r3, .L663+168
	str	r3, [fp, #-964]
	b	.L664
.L665:
	.align	2
.L663:
	.word	.LC122
	.word	SAO_TAG_nilnil
	.word	SAO_TAG_nil
	.word	SAO_TAG_global
	.word	sao_print
	.word	_sao_print
	.word	sao_eval
	.word	_sao_eval
	.word	.LC123
	.word	SAO_TAG_true
	.word	.LC124
	.word	SAO_TAG_false
	.word	.LC125
	.word	SAO_TAG_if
	.word	.LC126
	.word	SAO_TAG_lambda
	.word	.LC127
	.word	SAO_TAG_procedure
	.word	.LC128
	.word	SAO_TAG_set
	.word	.LC129
	.word	native_add
	.word	.LC130
	.word	native_sub
	.word	.LC131
	.word	native_mul
	.word	.LC132
	.word	native_div
	.word	.LC133
	.word	native_lt
	.word	.LC134
	.word	native_gt
	.word	.LC135
	.word	native_cmp
	.word	.LC136
	.word	.LC137
	.word	native_is_nil
	.word	.LC138
	.word	native_car
	.word	.LC139
	.word	.LC140
	.word	native_cdr
	.word	.LC142
	.word	native_atom
	.word	.LC56
	.word	native_exit
	.word	.LC143
	.word	native_shell
	.word	.LC144
	.word	native_ffi
	.word	.LC145
	.word	native_type
	.word	.LC146
	.word	native_cons
	.word	.LC147
	.word	native_setcar
	.word	.LC148
	.word	native_setcdr
	.word	.LC149
	.word	native_debug
	.word	.LC45
	.word	native_list
	.word	.LC150
	.word	native_load
	.word	.LC141
	.word	native_print
	.word	.LC151
	.word	native_read
	.word	.LC152
	.word	native_is_empty
	.word	.LC153
	.word	native_is_list
	.word	.LC154
	.word	native_pairq
	.word	.LC155
	.word	native_same
	.word	.LC156
	.word	native__null
	.word	.LC157
	.word	native__ctx
	.word	.LC158
	.word	native_c_int
	.word	SAO_TAG_global
.L664:
	mov	r2, sp
	sub	r3, fp, #956
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #972
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #948
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-948]
	ldr	r3, .L663+168
	str	r3, [fp, #-940]
	ldr	r3, .L663+172
	str	r3, [fp, #-932]
	mov	r2, sp
	sub	r3, fp, #932
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #948
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+328
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #924
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-924]
	ldr	r3, .L663+176
	str	r3, [fp, #-916]
	mov	r2, sp
	sub	r3, fp, #908
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #924
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #900
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-900]
	ldr	r3, .L663+176
	str	r3, [fp, #-892]
	ldr	r3, .L663+180
	str	r3, [fp, #-884]
	mov	r2, sp
	sub	r3, fp, #884
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #900
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+328
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #876
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-876]
	ldr	r3, .L663+184
	str	r3, [fp, #-868]
	mov	r2, sp
	sub	r3, fp, #860
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #876
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #852
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-852]
	ldr	r3, .L663+184
	str	r3, [fp, #-844]
	ldr	r3, .L663+188
	str	r3, [fp, #-836]
	mov	r2, sp
	sub	r3, fp, #836
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #852
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+328
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #828
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-828]
	ldr	r3, .L663+192
	str	r3, [fp, #-820]
	mov	r2, sp
	sub	r3, fp, #812
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #828
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #804
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-804]
	ldr	r3, .L663+192
	str	r3, [fp, #-796]
	ldr	r3, .L663+196
	str	r3, [fp, #-788]
	mov	r2, sp
	sub	r3, fp, #788
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #804
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+328
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #780
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-780]
	ldr	r3, .L663+200
	str	r3, [fp, #-772]
	mov	r2, sp
	sub	r3, fp, #764
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #780
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #756
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-756]
	ldr	r3, .L663+200
	str	r3, [fp, #-748]
	ldr	r3, .L663+204
	str	r3, [fp, #-740]
	mov	r2, sp
	sub	r3, fp, #740
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #756
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+328
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #732
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-732]
	ldr	r3, .L663+208
	str	r3, [fp, #-724]
	mov	r2, sp
	sub	r3, fp, #716
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #732
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #708
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-708]
	ldr	r3, .L663+208
	str	r3, [fp, #-700]
	ldr	r3, .L663+212
	str	r3, [fp, #-692]
	mov	r2, sp
	sub	r3, fp, #692
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #708
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+328
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #684
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-684]
	ldr	r3, .L663+216
	str	r3, [fp, #-676]
	mov	r2, sp
	sub	r3, fp, #668
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #684
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #660
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-660]
	ldr	r3, .L663+216
	str	r3, [fp, #-652]
	ldr	r3, .L663+220
	str	r3, [fp, #-644]
	mov	r2, sp
	sub	r3, fp, #644
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #660
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+328
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #636
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-636]
	ldr	r3, .L663+224
	str	r3, [fp, #-628]
	mov	r2, sp
	sub	r3, fp, #620
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #636
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #612
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-612]
	ldr	r3, .L663+224
	str	r3, [fp, #-604]
	ldr	r3, .L663+228
	str	r3, [fp, #-596]
	mov	r2, sp
	sub	r3, fp, #596
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #612
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+328
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #588
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-588]
	ldr	r3, .L663+232
	str	r3, [fp, #-580]
	mov	r2, sp
	sub	r3, fp, #572
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #588
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #564
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-564]
	ldr	r3, .L663+232
	str	r3, [fp, #-556]
	ldr	r3, .L663+236
	str	r3, [fp, #-548]
	mov	r2, sp
	sub	r3, fp, #548
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #564
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+328
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #540
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-540]
	ldr	r3, .L663+240
	str	r3, [fp, #-532]
	mov	r2, sp
	sub	r3, fp, #524
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #540
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #516
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-516]
	ldr	r3, .L663+240
	str	r3, [fp, #-508]
	ldr	r3, .L663+244
	str	r3, [fp, #-500]
	mov	r2, sp
	sub	r3, fp, #500
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #516
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+328
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #492
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-492]
	ldr	r3, .L663+248
	str	r3, [fp, #-484]
	mov	r2, sp
	sub	r3, fp, #476
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #492
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #468
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-468]
	ldr	r3, .L663+248
	str	r3, [fp, #-460]
	ldr	r3, .L663+252
	str	r3, [fp, #-452]
	mov	r2, sp
	sub	r3, fp, #452
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #468
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+328
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #444
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-444]
	ldr	r3, .L663+256
	str	r3, [fp, #-436]
	mov	r2, sp
	sub	r3, fp, #428
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #444
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #420
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-420]
	ldr	r3, .L663+256
	str	r3, [fp, #-412]
	ldr	r3, .L663+260
	str	r3, [fp, #-404]
	mov	r2, sp
	sub	r3, fp, #404
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #420
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+328
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #396
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-396]
	ldr	r3, .L663+264
	str	r3, [fp, #-388]
	mov	r2, sp
	sub	r3, fp, #380
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #396
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #372
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-372]
	ldr	r3, .L663+264
	str	r3, [fp, #-364]
	ldr	r3, .L663+268
	str	r3, [fp, #-356]
	mov	r2, sp
	sub	r3, fp, #356
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #372
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+328
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #348
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-348]
	ldr	r3, .L663+272
	str	r3, [fp, #-340]
	mov	r2, sp
	sub	r3, fp, #332
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #348
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #324
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-324]
	ldr	r3, .L663+272
	str	r3, [fp, #-316]
	ldr	r3, .L663+276
	str	r3, [fp, #-308]
	mov	r2, sp
	sub	r3, fp, #308
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #324
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+328
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #300
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-300]
	ldr	r3, .L663+280
	str	r3, [fp, #-292]
	mov	r2, sp
	sub	r3, fp, #284
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #300
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #276
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-276]
	ldr	r3, .L663+280
	str	r3, [fp, #-268]
	ldr	r3, .L663+284
	str	r3, [fp, #-260]
	mov	r2, sp
	sub	r3, fp, #260
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #276
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+328
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #252
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-252]
	ldr	r3, .L663+288
	str	r3, [fp, #-244]
	mov	r2, sp
	sub	r3, fp, #236
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #252
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #228
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-228]
	ldr	r3, .L663+288
	str	r3, [fp, #-220]
	ldr	r3, .L663+292
	str	r3, [fp, #-212]
	mov	r2, sp
	sub	r3, fp, #212
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #228
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+328
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #204
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-204]
	ldr	r3, .L663+296
	str	r3, [fp, #-196]
	mov	r2, sp
	sub	r3, fp, #188
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #204
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #180
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-180]
	ldr	r3, .L663+296
	str	r3, [fp, #-172]
	ldr	r3, .L663+300
	str	r3, [fp, #-164]
	mov	r2, sp
	sub	r3, fp, #164
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #180
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+328
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #156
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-156]
	ldr	r3, .L663+304
	str	r3, [fp, #-148]
	mov	r2, sp
	sub	r3, fp, #140
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #156
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #132
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-132]
	ldr	r3, .L663+304
	str	r3, [fp, #-124]
	ldr	r3, .L663+308
	str	r3, [fp, #-116]
	mov	r2, sp
	sub	r3, fp, #116
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #132
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+328
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #108
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-108]
	ldr	r3, .L663+312
	str	r3, [fp, #-100]
	mov	r2, sp
	sub	r3, fp, #92
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #108
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #84
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-84]
	ldr	r3, .L663+312
	str	r3, [fp, #-76]
	ldr	r3, .L663+316
	str	r3, [fp, #-68]
	mov	r2, sp
	sub	r3, fp, #68
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #84
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+328
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	sub	r3, fp, #60
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-60]
	ldr	r3, .L663+320
	str	r3, [fp, #-52]
	mov	r2, sp
	sub	r3, fp, #44
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #60
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #36
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #7
	str	r3, [fp, #-36]
	ldr	r3, .L663+320
	str	r3, [fp, #-28]
	ldr	r3, .L663+324
	str	r3, [fp, #-20]
	mov	r2, sp
	sub	r3, fp, #20
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #36
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L663+328
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	ldr	r3, .L663+328
	ldr	r3, [r3]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	saolang_init, .-saolang_init
	.comm	sao_microtime,4,4
	.section	.rodata
	.align	2
.LC159:
	.ascii	"%llu: \000"
	.align	2
.LC160:
	.ascii	"<=\000"
	.align	2
.LC161:
	.ascii	"=>\000"
	.align	2
.LC162:
	.ascii	"==>\000"
	.text
	.align	2
	.global	sao_parse
	.syntax unified
	.arm
	.fpu softvfp
	.type	sao_parse, %function
sao_parse:
	@ 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	r0, [fp, #-24]
	bl	sao_read_line
	ldr	r3, .L677
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, .L677
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	b	.L667
.L675:
	ldr	r3, .L677+4
	ldr	r3, [r3, #8]
	cmp	r3, #0
	beq	.L668
	ldr	r1, .L677+8
	mov	r0, #10
	bl	libc_
	mov	r4, r0
	ldr	r3, .L677+12
	ldr	r3, [r3]
	blx	r3
	mov	r2, r0
	mov	r3, r1
	ldr	r0, .L677+16
	blx	r4
.L668:
	ldr	r3, .L677+4
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L669
	ldr	r3, .L677+4
	ldr	r3, [r3, #8]
	cmp	r3, #0
	beq	.L670
.L669:
	ldr	r3, .L677+20
	ldr	r3, [r3]
	ldr	r1, [fp, #-16]
	ldr	r0, .L677+24
	blx	r3
	ldr	r1, .L677+8
	mov	r0, #10
	bl	libc_
	mov	r3, r0
	ldr	r0, .L677+28
	blx	r3
.L670:
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	beq	.L671
	ldr	r3, .L677+32
	ldr	r3, [r3]
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-16]
	blx	r3
	str	r0, [fp, #-20]
	ldr	r3, .L677+4
	ldr	r3, [r3, #8]
	cmp	r3, #0
	beq	.L672
	ldr	r1, .L677+8
	mov	r0, #10
	bl	libc_
	mov	r4, r0
	ldr	r3, .L677+12
	ldr	r3, [r3]
	blx	r3
	mov	r2, r0
	mov	r3, r1
	ldr	r0, .L677+16
	blx	r4
.L672:
	ldr	r3, .L677+4
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L673
	ldr	r3, .L677+4
	ldr	r3, [r3, #8]
	cmp	r3, #0
	beq	.L667
.L673:
	ldr	r3, .L677+20
	ldr	r3, [r3]
	ldr	r1, [fp, #-20]
	ldr	r0, .L677+36
	blx	r3
	ldr	r1, .L677+8
	mov	r0, #10
	bl	libc_
	mov	r3, r0
	ldr	r1, .L677+28
	ldr	r0, .L677+40
	blx	r3
	b	.L667
.L671:
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-20]
	ldr	r3, .L677+4
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L674
	ldr	r3, .L677+4
	ldr	r3, [r3, #8]
	cmp	r3, #0
	beq	.L667
.L674:
	ldr	r3, .L677+20
	ldr	r3, [r3]
	ldr	r1, [fp, #-20]
	ldr	r0, .L677+44
	blx	r3
	ldr	r1, .L677+8
	mov	r0, #10
	bl	libc_
	mov	r3, r0
	ldr	r0, .L677+28
	blx	r3
.L667:
	ldr	r0, [fp, #-24]
	bl	sao_load_expr
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L675
	ldr	r3, [fp, #-20]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L678:
	.align	2
.L677:
	.word	SAO_TAG_nil
	.word	argta
	.word	.LC61
	.word	sao_microtime
	.word	.LC159
	.word	sao_print
	.word	.LC160
	.word	.LC55
	.word	sao_eval
	.word	.LC161
	.word	.LC68
	.word	.LC162
	.size	sao_parse, .-sao_parse
	.section	.rodata
	.align	2
.LC163:
	.ascii	" SaoLang (R) v0.0.9 - Wanjo Chan (c) 2020\012\000"
	.text
	.align	2
	.global	print_version
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_version, %function
print_version:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r1, .L680
	mov	r0, #10
	bl	libc_
	mov	r3, r0
	ldr	r0, .L680+4
	blx	r3
	nop
	pop	{fp, pc}
.L681:
	.align	2
.L680:
	.word	.LC61
	.word	.LC163
	.size	print_version, .-print_version
	.section	.rodata
	.align	2
.LC164:
	.ascii	"Usage\011 : sao [options] [script.sao | -]]\012Opti"
	.ascii	"ons\011 :\012\011h:\011Help\012\011v:\011Version\012"
	.ascii	"\011i:\011Interactive\012\011p:\011Print final resu"
	.ascii	"lt\012\011d:\011Dev only\012\011e:\011Eval\012\011s"
	.ascii	":\011Strict mode\012\011l:\011Lisp syntax\012\000"
	.text
	.align	2
	.global	print_help
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_help, %function
print_help:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r1, .L683
	mov	r0, #10
	bl	libc_
	mov	r3, r0
	ldr	r0, .L683+4
	blx	r3
	nop
	pop	{fp, pc}
.L684:
	.align	2
.L683:
	.word	.LC61
	.word	.LC164
	.size	print_help, .-print_help
	.section	.rodata
	.align	2
.LC165:
	.ascii	"strcmp\000"
	.align	2
.LC166:
	.ascii	"atof\000"
	.align	2
.LC167:
	.ascii	"atol\000"
	.align	2
.LC168:
	.ascii	"strchr\000"
	.align	2
.LC169:
	.ascii	"@\000"
	.align	2
.LC170:
	.ascii	"@^\000"
	.align	2
.LC171:
	.ascii	"-\000"
	.align	2
.LC172:
	.ascii	"free\000"
	.align	2
.LC173:
	.ascii	"FILE NOT FOUND: %s\000"
	.align	2
.LC174:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 712
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #720
	str	r0, [fp, #-712]
	str	r1, [fp, #-716]
	str	r2, [fp, #-720]
	ldr	r3, .L715
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r1, .L715+4
	mov	r0, #37
	bl	libc_
	mov	r3, r0
	ldr	r2, .L715+8
	str	r3, [r2]
	ldr	r3, .L715+12
	ldr	r2, .L715+16
	str	r2, [r3]
	ldr	r1, .L715+20
	mov	r0, #7
	bl	libc_
	mov	r3, r0
	ldr	r2, .L715+24
	str	r3, [r2]
	ldr	r1, .L715+28
	mov	r0, #28
	bl	libc_
	mov	r3, r0
	ldr	r2, .L715+32
	str	r3, [r2]
	ldr	r1, .L715+36
	mov	r0, #26
	bl	libc_
	mov	r3, r0
	ldr	r2, .L715+40
	str	r3, [r2]
	ldr	r1, .L715+44
	mov	r0, #8
	bl	libc_
	mov	r3, r0
	ldr	r2, .L715+48
	str	r3, [r2]
	ldr	r1, .L715+52
	mov	r0, #32
	bl	libc_
	mov	r4, r0
	ldr	r1, .L715+56
	mov	r0, #33
	bl	libc_
	mov	r5, r0
	ldr	r1, .L715+60
	mov	r0, #34
	bl	libc_
	mov	r3, r0
	mov	r0, r3
	blx	r5
	mov	r3, r0
	mov	r1, #32768
	mov	r0, r3
	blx	r4
	ldr	r3, .L715+64
	ldr	r3, [r3]
	ldr	r2, .L715+64
	ldr	r2, [r2]
	mov	r1, r2
	mov	r0, r3
	bl	cons
	mov	r2, r0
	ldr	r3, .L715+64
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	cons
	mov	r3, r0
	ldr	r2, .L715+68
	str	r3, [r2]
	ldr	r3, .L715+64
	ldr	r3, [r3]
	ldr	r2, .L715+64
	ldr	r2, [r2]
	mov	r1, r2
	mov	r0, r3
	bl	cons
	mov	r2, r0
	ldr	r3, .L715+64
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	cons
	mov	r3, r0
	ldr	r2, .L715+72
	str	r3, [r2]
	sub	r3, fp, #628
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-628]
	ldr	r3, .L715+76
	str	r3, [fp, #-620]
	mov	r2, sp
	sub	r3, fp, #612
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #628
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r3, r0
	ldr	r2, .L715+80
	str	r3, [r2]
	ldr	r3, .L715+80
	ldr	r3, [r3]
	ldr	r2, .L715+80
	ldr	r1, [r2]
	ldr	r2, .L715+68
	ldr	r2, [r2]
	mov	r0, r3
	bl	sao_var
	sub	r3, fp, #604
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-604]
	ldr	r3, .L715+84
	str	r3, [fp, #-596]
	mov	r2, sp
	sub	r3, fp, #588
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #604
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r3, r0
	ldr	r2, .L715+88
	str	r3, [r2]
	ldr	r3, .L715+88
	ldr	r3, [r3]
	ldr	r2, .L715+88
	ldr	r1, [r2]
	ldr	r2, .L715+68
	ldr	r2, [r2]
	mov	r0, r3
	bl	sao_var
	ldr	r3, .L715+92
	str	r3, [fp, #-704]
	mov	r3, #0
	str	r3, [fp, #-700]
	ldr	r3, [fp, #-712]
	cmp	r3, #1
	ble	.L686
	mov	r3, #40
	str	r3, [fp, #-528]
	sub	r3, fp, #524
	mov	r2, #508
	mov	r1, #0
	mov	r0, r3
	bl	memset
	sub	r3, fp, #528
	add	r3, r3, #1
	str	r3, [fp, #-696]
	mov	r3, #1
	str	r3, [fp, #-692]
	b	.L687
.L690:
	ldr	r3, [fp, #-696]
	add	r2, r3, #1
	str	r2, [fp, #-696]
	mov	r2, #32
	strb	r2, [r3]
	ldr	r3, [fp, #-692]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-716]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-688]
	b	.L688
.L689:
	ldr	r2, [fp, #-688]
	add	r3, r2, #1
	str	r3, [fp, #-688]
	ldr	r3, [fp, #-696]
	add	r1, r3, #1
	str	r1, [fp, #-696]
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
.L688:
	ldr	r3, [fp, #-688]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L689
	ldr	r3, [fp, #-692]
	add	r3, r3, #1
	str	r3, [fp, #-692]
.L687:
	ldr	r2, [fp, #-692]
	ldr	r3, [fp, #-712]
	cmp	r2, r3
	blt	.L690
	ldr	r3, [fp, #-696]
	add	r2, r3, #1
	str	r2, [fp, #-696]
	mov	r2, #41
	strb	r2, [r3]
	ldr	r3, [fp, #-696]
	add	r2, r3, #1
	str	r2, [fp, #-696]
	mov	r2, #0
	strb	r2, [r3]
	sub	r3, fp, #528
	mov	r1, #1
	mov	r0, r3
	bl	sao_stream_new
	str	r0, [fp, #-660]
	ldr	r0, [fp, #-660]
	bl	sao_load_expr
	str	r0, [fp, #-656]
	ldr	r3, [fp, #-656]
	str	r3, [fp, #-684]
	b	.L691
.L705:
	ldr	r0, [fp, #-684]
	bl	car
	str	r0, [fp, #-652]
	ldr	r0, [fp, #-684]
	bl	cdr
	str	r0, [fp, #-684]
	ldr	r3, [fp, #-652]
	cmp	r3, #0
	bne	.L692
	b	.L691
.L692:
	mov	r3, #0
	str	r3, [fp, #-680]
	mov	r3, #1
	str	r3, [fp, #-676]
	ldr	r3, [fp, #-652]
	cmp	r3, #0
	beq	.L693
	ldr	r3, [fp, #-652]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L693
	ldr	r0, [fp, #-652]
	bl	car
	str	r0, [fp, #-648]
	ldr	r3, [fp, #-648]
	cmp	r3, #0
	beq	.L694
	ldr	r3, [fp, #-648]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-680]
.L694:
	ldr	r0, [fp, #-652]
	bl	cadr
	str	r0, [fp, #-644]
	ldr	r3, [fp, #-644]
	cmp	r3, #0
	beq	.L714
	ldr	r3, [fp, #-644]
	ldr	r3, [r3]
	cmp	r3, #2
	bne	.L696
	ldr	r3, [fp, #-644]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-676]
	b	.L714
.L696:
	ldr	r3, .L715+40
	ldr	r3, [r3]
	ldr	r2, [fp, #-644]
	ldr	r2, [r2, #8]
	mov	r0, r2
	blx	r3
	str	r0, [fp, #-676]
	b	.L714
.L693:
	ldr	r3, [fp, #-652]
	cmp	r3, #0
	beq	.L697
	ldr	r3, [fp, #-652]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-680]
	b	.L697
.L714:
	nop
.L697:
	ldr	r3, [fp, #-680]
	cmp	r3, #0
	beq	.L691
	sub	r3, fp, #580
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #4
	str	r3, [fp, #-580]
	ldr	r3, [fp, #-680]
	str	r3, [fp, #-572]
	mov	r2, sp
	sub	r3, fp, #564
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #580
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r4, r0
	sub	r3, fp, #556
	mov	r2, #0
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	str	r2, [r3, #16]
	str	r2, [r3, #20]
	mov	r3, #2
	str	r3, [fp, #-556]
	ldr	r3, [fp, #-676]
	str	r3, [fp, #-540]
	mov	r2, sp
	sub	r3, fp, #540
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	sub	r3, fp, #556
	ldm	r3, {r0, r1, r2, r3}
	bl	sao_new
	mov	r1, r0
	ldr	r3, .L715+72
	ldr	r3, [r3]
	mov	r2, r3
	mov	r0, r4
	bl	sao_var
	mov	r3, #0
	str	r3, [fp, #-672]
	ldr	r3, .L715+24
	ldr	r3, [r3]
	ldr	r1, .L715+92
	ldr	r0, [fp, #-680]
	blx	r3
	mov	r3, r0
	cmp	r3, #0
	bne	.L698
	ldr	r3, [fp, #-700]
	add	r3, r3, #1
	str	r3, [fp, #-700]
	b	.L699
.L698:
	mov	r3, #0
	str	r3, [fp, #-668]
	b	.L700
.L702:
	ldr	r3, .L715+24
	ldr	r3, [r3]
	ldr	r1, .L715+96
	ldr	r2, [fp, #-668]
	ldr	r2, [r1, r2, lsl #2]
	mov	r1, r2
	ldr	r0, [fp, #-680]
	blx	r3
	mov	r3, r0
	cmp	r3, #0
	bne	.L701
	ldr	r2, .L715+100
	ldr	r3, [fp, #-668]
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-676]
	add	r2, r2, r3
	ldr	r1, .L715+100
	ldr	r3, [fp, #-668]
	str	r2, [r1, r3, lsl #2]
	ldr	r3, [fp, #-672]
	add	r3, r3, #1
	str	r3, [fp, #-672]
	b	.L699
.L701:
	ldr	r3, [fp, #-668]
	add	r3, r3, #1
	str	r3, [fp, #-668]
.L700:
	ldr	r3, [fp, #-668]
	cmp	r3, #7
	ble	.L702
.L699:
	ldr	r3, [fp, #-672]
	cmp	r3, #0
	bne	.L703
	ldr	r3, [fp, #-680]
	str	r3, [fp, #-704]
	b	.L691
.L703:
	ldr	r3, [fp, #-700]
	add	r3, r3, #1
	str	r3, [fp, #-700]
.L691:
	ldr	r3, [fp, #-684]
	cmp	r3, #0
	bne	.L705
	ldr	r1, .L715+104
	mov	r0, #24
	bl	libc_
	mov	r3, r0
	ldr	r0, [fp, #-660]
	blx	r3
	ldr	r3, .L715+72
	ldr	r3, [r3]
	ldr	r2, .L715+72
	ldr	r1, [r2]
	ldr	r2, .L715+68
	ldr	r2, [r2]
	mov	r0, r3
	bl	sao_var
.L686:
	ldr	r3, .L715+24
	ldr	r3, [r3]
	ldr	r1, [fp, #-704]
	ldr	r0, .L715+92
	blx	r3
	mov	r3, r0
	cmp	r3, #0
	bne	.L706
	ldr	r1, .L715+60
	mov	r0, #34
	bl	libc_
	str	r0, [fp, #-664]
	ldr	r3, [fp, #-700]
	cmp	r3, #0
	bne	.L707
	bl	print_help
	ldr	r3, .L715+100
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L715+100
	str	r3, [r2]
	ldr	r3, .L715+100
	ldr	r3, [r3, #12]
	add	r3, r3, #1
	ldr	r2, .L715+100
	str	r3, [r2, #12]
	b	.L708
.L707:
	ldr	r3, .L715+100
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L708
	ldr	r3, .L715+100
	ldr	r3, [r3, #12]
	add	r3, r3, #1
	ldr	r2, .L715+100
	str	r3, [r2, #12]
	ldr	r3, [fp, #-700]
	add	r3, r3, #1
	str	r3, [fp, #-700]
.L708:
	ldr	r3, .L715+100
	ldr	r3, [r3, #12]
	cmp	r3, #0
	beq	.L709
	bl	print_version
	ldr	r3, [fp, #-700]
	cmp	r3, #1
	bne	.L709
	ldr	r1, .L715+108
	mov	r0, #38
	bl	libc_
	mov	r3, r0
	mov	r0, #0
	blx	r3
.L709:
	ldr	r3, .L715+100
	ldr	r3, [r3, #28]
	cmp	r3, #0
	beq	.L710
	bl	print_help
	ldr	r1, .L715+108
	mov	r0, #38
	bl	libc_
	mov	r3, r0
	mov	r0, #0
	blx	r3
	b	.L710
.L706:
	ldr	r1, .L715+112
	mov	r0, #16
	bl	libc_
	mov	r3, r0
	ldr	r1, .L715+116
	ldr	r0, [fp, #-704]
	blx	r3
	str	r0, [fp, #-664]
	ldr	r3, [fp, #-664]
	cmp	r3, #0
	bne	.L710
	ldr	r1, .L715+120
	mov	r0, #0
	bl	libc_
	mov	r4, r0
	ldr	r1, .L715+124
	mov	r0, #36
	bl	libc_
	mov	r3, r0
	ldr	r2, [fp, #-704]
	ldr	r1, .L715+128
	mov	r0, r3
	blx	r4
	ldr	r1, .L715+120
	mov	r0, #0
	bl	libc_
	mov	r4, r0
	ldr	r1, .L715+124
	mov	r0, #36
	bl	libc_
	mov	r3, r0
	ldr	r1, .L715+132
	mov	r0, r3
	blx	r4
	ldr	r1, .L715+108
	mov	r0, #38
	bl	libc_
	mov	r3, r0
	mov	r0, #1
	blx	r3
.L710:
	mov	r1, #0
	ldr	r0, [fp, #-664]
	bl	sao_stream_new
	str	r0, [fp, #-640]
	ldr	r3, .L715+64
	ldr	r3, [r3]
	str	r3, [fp, #-636]
	bl	saolang_init
	str	r0, [fp, #-636]
	ldr	r1, [fp, #-636]
	ldr	r0, [fp, #-640]
	bl	sao_parse
	str	r0, [fp, #-632]
	ldr	r3, .L715+100
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L711
	ldr	r3, .L715+12
	ldr	r3, [r3]
	ldr	r1, [fp, #-632]
	mov	r0, #0
	blx	r3
	ldr	r1, .L715+136
	mov	r0, #10
	bl	libc_
	mov	r3, r0
	ldr	r0, .L715+132
	blx	r3
.L711:
	ldr	r1, .L715+140
	mov	r0, #20
	bl	libc_
	mov	r3, r0
	ldr	r0, [fp, #-664]
	blx	r3
	ldr	r1, .L715+104
	mov	r0, #24
	bl	libc_
	mov	r3, r0
	ldr	r0, [fp, #-640]
	blx	r3
	mov	r3, #0
	ldr	r2, .L715
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L713
	bl	__stack_chk_fail
.L713:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L716:
	.align	2
.L715:
	.word	.LC174
	.word	.LC23
	.word	sao_microtime
	.word	sao_print
	.word	sao_print_default
	.word	.LC165
	.word	sao_strcmp
	.word	.LC166
	.word	sao_atof
	.word	.LC167
	.word	sao_atol
	.word	.LC168
	.word	sao_strchr
	.word	.LC29
	.word	.LC26
	.word	.LC21
	.word	SAO_TAG_nil
	.word	SAO_TAG_global
	.word	SAO_TAG_argv
	.word	.LC169
	.word	SAO_TAG_at
	.word	.LC170
	.word	SAO_TAG_quote
	.word	.LC171
	.word	argt_names
	.word	argta
	.word	.LC172
	.word	.LC56
	.word	.LC117
	.word	.LC8
	.word	.LC53
	.word	.LC17
	.word	.LC173
	.word	.LC55
	.word	.LC61
	.word	.LC119
	.size	main, .-main
	.local	ffic_dlsym.4285
	.comm	ffic_dlsym.4285,4,4
	.local	ffic_dlopen.4286
	.comm	ffic_dlopen.4286,4,4
	.local	ffic_gettimeofday.4323
	.comm	ffic_gettimeofday.4323,4,4
	.section	.rodata
	.align	3
	.type	epoch.4324, %object
	.size	epoch.4324, 8
epoch.4324:
	.word	-717324288
	.word	27111902
	.align	2
	.type	__func__.4817, %object
	.size	__func__.4817, 14
__func__.4817:
	.ascii	"native_setcar\000"
	.align	2
	.type	__func__.4822, %object
	.size	__func__.4822, 14
__func__.4822:
	.ascii	"native_setcdr\000"
	.align	2
	.type	__func__.4896, %object
	.size	__func__.4896, 10
__func__.4896:
	.ascii	"native_gt\000"
	.align	2
	.type	__func__.4901, %object
	.size	__func__.4901, 10
__func__.4901:
	.ascii	"native_lt\000"
	.align	2
	.type	__func__.4906, %object
	.size	__func__.4906, 11
__func__.4906:
	.ascii	"native_add\000"
	.align	2
	.type	__func__.4916, %object
	.size	__func__.4916, 11
__func__.4916:
	.ascii	"native_sub\000"
	.align	2
	.type	__func__.4926, %object
	.size	__func__.4926, 11
__func__.4926:
	.ascii	"native_div\000"
	.align	2
	.type	__func__.4986, %object
	.size	__func__.4986, 12
__func__.4986:
	.ascii	"native_vget\000"
	.align	2
	.type	__func__.4993, %object
	.size	__func__.4993, 12
__func__.4993:
	.ascii	"native_vset\000"
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
