	.file	"1087615.c"
	.intel_syntax noprefix
	.text
	.globl	dummy_char_star
	.bss
	.align 8
	.type	dummy_char_star, @object
	.size	dummy_char_star, 8
dummy_char_star:
	.zero	8
	.globl	dummy_size_t
	.align 8
	.type	dummy_size_t, @object
	.size	dummy_size_t, 8
dummy_size_t:
	.zero	8
	.local	file
	.comm	file,8,8
	.local	ch
	.comm	ch,4,4
	.local	tok
	.comm	tok,4,4
	.local	tokc
	.comm	tokc,16,16
	.local	tokcstr
	.comm	tokcstr,32,32
	.local	tok_flags
	.comm	tok_flags,4,4
	.local	macro_ptr
	.comm	macro_ptr,8,8
	.local	macro_ptr_allocated
	.comm	macro_ptr_allocated,8,8
	.local	unget_saved_macro_ptr
	.comm	unget_saved_macro_ptr,8,8
	.local	unget_saved_buffer
	.comm	unget_saved_buffer,20,16
	.local	unget_buffer_enabled
	.comm	unget_buffer_enabled,4,4
	.local	parse_flags
	.comm	parse_flags,4,4
	.local	text_section
	.comm	text_section,8,8
	.local	data_section
	.comm	data_section,8,8
	.local	bss_section
	.comm	bss_section,8,8
	.local	cur_text_section
	.comm	cur_text_section,8,8
	.local	last_text_section
	.comm	last_text_section,8,8
	.local	bounds_section
	.comm	bounds_section,8,8
	.local	lbounds_section
	.comm	lbounds_section,8,8
	.local	symtab_section
	.comm	symtab_section,8,8
	.local	strtab_section
	.comm	strtab_section,8,8
	.local	stab_section
	.comm	stab_section,8,8
	.local	stabstr_section
	.comm	stabstr_section,8,8
	.local	rsym
	.comm	rsym,8,8
	.local	anon_sym
	.comm	anon_sym,8,8
	.local	ind
	.comm	ind,8,8
	.local	loc
	.comm	loc,8,8
	.local	const_wanted
	.comm	const_wanted,4,4
	.local	nocode_wanted
	.comm	nocode_wanted,4,4
	.local	global_expr
	.comm	global_expr,4,4
	.local	func_vt
	.comm	func_vt,16,16
	.local	func_vc
	.comm	func_vc,4,4
	.local	last_line_num
	.comm	last_line_num,8,8
	.local	last_ind
	.comm	last_ind,8,8
	.local	func_ind
	.comm	func_ind,8,8
	.local	tok_ident
	.comm	tok_ident,4,4
	.local	table_ident
	.comm	table_ident,8,8
	.local	hash_ident
	.comm	hash_ident,65536,32
	.local	token_buf
	.comm	token_buf,1025,32
	.local	funcname
	.comm	funcname,8,8
	.local	global_stack
	.comm	global_stack,8,8
	.local	local_stack
	.comm	local_stack,8,8
	.local	define_stack
	.comm	define_stack,8,8
	.local	global_label_stack
	.comm	global_label_stack,8,8
	.local	local_label_stack
	.comm	local_label_stack,8,8
	.local	sym_free_first
	.comm	sym_free_first,8,8
	.local	vstack
	.comm	vstack,16384,32
	.local	vtop
	.comm	vtop,8,8
	.local	char_pointer_type
	.comm	char_pointer_type,16,16
	.local	func_old_type
	.comm	func_old_type,16,16
	.local	int_type
	.comm	int_type,16,16
	.local	isidnum_table
	.comm	isidnum_table,256,32
	.local	do_debug
	.comm	do_debug,4,4
	.local	do_bounds_check
	.comm	do_bounds_check,4,4
	.local	do_bench
	.comm	do_bench,4,4
	.local	total_lines
	.comm	total_lines,4,4
	.local	total_bytes
	.comm	total_bytes,4,4
	.data
	.align 4
	.type	gnu_ext, @object
	.size	gnu_ext, 4
gnu_ext:
	.long	1
	.align 4
	.type	tcc_ext, @object
	.size	tcc_ext, 4
tcc_ext:
	.long	1
	.align 4
	.type	num_callers, @object
	.size	num_callers, 4
num_callers:
	.long	6
	.local	rt_bound_error_msg
	.comm	rt_bound_error_msg,8,8
	.local	tcc_state
	.comm	tcc_state,8,8
	.section	.rodata
.LC0:
	.string	"tinycc-extras"
	.section	.data.rel.local,"aw"
	.align 8
	.type	tcc_lib_path, @object
	.size	tcc_lib_path, 8
tcc_lib_path:
	.quad	.LC0
	.data
	.align 32
	.type	tok_two_chars, @object
	.size	tok_two_chars, 64
tok_two_chars:
	.string	"<=\236>=\235!=\225&&\240||\241++\244--\242==\224<<\001>>\002+=\253-=\255*=\252/=\257%=\245&=\246^=\336|=\374->\313..\250##\266"
	.section	.rodata
	.align 32
	.type	tcc_keywords, @object
	.size	tcc_keywords, 4934
tcc_keywords:
	.string	"int"
	.string	"void"
	.string	"char"
	.string	"if"
	.string	"else"
	.string	"while"
	.string	"break"
	.string	"return"
	.string	"for"
	.string	"extern"
	.string	"static"
	.string	"unsigned"
	.string	"goto"
	.string	"do"
	.string	"continue"
	.string	"switch"
	.string	"case"
	.string	"const"
	.string	"__const"
	.string	"__const__"
	.string	"volatile"
	.string	"__volatile"
	.string	"__volatile__"
	.string	"long"
	.string	"register"
	.string	"signed"
	.string	"__signed"
	.string	"__signed__"
	.string	"auto"
	.string	"inline"
	.string	"__inline"
	.string	"__inline__"
	.string	"restrict"
	.string	"__restrict"
	.string	"__restrict__"
	.string	"__extension__"
	.string	"float"
	.string	"double"
	.string	"_Bool"
	.string	"short"
	.string	"struct"
	.string	"union"
	.string	"typedef"
	.string	"default"
	.string	"enum"
	.string	"sizeof"
	.string	"__attribute"
	.string	"__attribute__"
	.string	"__alignof"
	.string	"__alignof__"
	.string	"typeof"
	.string	"__typeof"
	.string	"__typeof__"
	.string	"__label__"
	.string	"asm"
	.string	"__asm"
	.string	"__asm__"
	.string	"define"
	.string	"include"
	.string	"include_next"
	.string	"ifdef"
	.string	"ifndef"
	.string	"elif"
	.string	"endif"
	.string	"defined"
	.string	"undef"
	.string	"error"
	.string	"warning"
	.string	"line"
	.string	"pragma"
	.string	"__LINE__"
	.string	"__FILE__"
	.string	"__DATE__"
	.string	"__TIME__"
	.string	"__FUNCTION__"
	.string	"__VA_ARGS__"
	.string	"__func__"
	.string	"section"
	.string	"__section__"
	.string	"aligned"
	.string	"__aligned__"
	.string	"packed"
	.string	"__packed__"
	.string	"unused"
	.string	"__unused__"
	.string	"cdecl"
	.string	"__cdecl"
	.string	"__cdecl__"
	.string	"stdcall"
	.string	"__stdcall"
	.string	"__stdcall__"
	.string	"dllexport"
	.string	"noreturn"
	.string	"__noreturn__"
	.string	"__builtin_types_compatible_p"
	.string	"__builtin_constant_p"
	.string	"regparm"
	.string	"__regparm__"
	.string	"pack"
	.string	"memcpy"
	.string	"memset"
	.string	"alloca"
	.string	"__divdi3"
	.string	"__moddi3"
	.string	"__udivdi3"
	.string	"__umoddi3"
	.string	"__sardi3"
	.string	"__shrdi3"
	.string	"__shldi3"
	.string	"__tcc_int_fpu_control"
	.string	"__tcc_fpu_control"
	.string	"__ulltof"
	.string	"__ulltod"
	.string	"__ulltold"
	.string	"__fixunssfdi"
	.string	"__fixunsdfdi"
	.string	"__fixunsxfdi"
	.string	"__chkstk"
	.string	"__bound_ptr_add"
	.string	"__bound_ptr_indir1"
	.string	"__bound_ptr_indir2"
	.string	"__bound_ptr_indir4"
	.string	"__bound_ptr_indir8"
	.string	"__bound_ptr_indir12"
	.string	"__bound_ptr_indir16"
	.string	"__bound_local_new"
	.string	"__bound_local_delete"
	.string	"malloc"
	.string	"free"
	.string	"realloc"
	.string	"memalign"
	.string	"calloc"
	.string	"memmove"
	.string	"strlen"
	.string	"strcpy"
	.string	"byte"
	.string	"align"
	.string	"skip"
	.string	"space"
	.string	"string"
	.string	"asciz"
	.string	"ascii"
	.string	"globl"
	.string	"global"
	.string	"text"
	.string	"data"
	.string	"bss"
	.string	"previous"
	.string	"fill"
	.string	"org"
	.string	"quad"
	.string	"al"
	.string	"cl"
	.string	"dl"
	.string	"bl"
	.string	"ah"
	.string	"ch"
	.string	"dh"
	.string	"bh"
	.string	"ax"
	.string	"cx"
	.string	"dx"
	.string	"bx"
	.string	"sp"
	.string	"bp"
	.string	"si"
	.string	"di"
	.string	"eax"
	.string	"ecx"
	.string	"edx"
	.string	"ebx"
	.string	"esp"
	.string	"ebp"
	.string	"esi"
	.string	"edi"
	.string	"mm0"
	.string	"mm1"
	.string	"mm2"
	.string	"mm3"
	.string	"mm4"
	.string	"mm5"
	.string	"mm6"
	.string	"mm7"
	.string	"xmm0"
	.string	"xmm1"
	.string	"xmm2"
	.string	"xmm3"
	.string	"xmm4"
	.string	"xmm5"
	.string	"xmm6"
	.string	"xmm7"
	.string	"cr0"
	.string	"cr1"
	.string	"cr2"
	.string	"cr3"
	.string	"cr4"
	.string	"cr5"
	.string	"cr6"
	.string	"cr7"
	.string	"tr0"
	.string	"tr1"
	.string	"tr2"
	.string	"tr3"
	.string	"tr4"
	.string	"tr5"
	.string	"tr6"
	.string	"tr7"
	.string	"db0"
	.string	"db1"
	.string	"db2"
	.string	"db3"
	.string	"db4"
	.string	"db5"
	.string	"db6"
	.string	"db7"
	.string	"dr0"
	.string	"dr1"
	.string	"dr2"
	.string	"dr3"
	.string	"dr4"
	.string	"dr5"
	.string	"dr6"
	.string	"dr7"
	.string	"es"
	.string	"cs"
	.string	"ss"
	.string	"ds"
	.string	"fs"
	.string	"gs"
	.string	"st"
	.string	"movb"
	.string	"movw"
	.string	"movl"
	.string	"mov"
	.string	"addb"
	.string	"addw"
	.string	"addl"
	.string	"add"
	.string	"orb"
	.string	"orw"
	.string	"orl"
	.string	"or"
	.string	"adcb"
	.string	"adcw"
	.string	"adcl"
	.string	"adc"
	.string	"sbbb"
	.string	"sbbw"
	.string	"sbbl"
	.string	"sbb"
	.string	"andb"
	.string	"andw"
	.string	"andl"
	.string	"and"
	.string	"subb"
	.string	"subw"
	.string	"subl"
	.string	"sub"
	.string	"xorb"
	.string	"xorw"
	.string	"xorl"
	.string	"xor"
	.string	"cmpb"
	.string	"cmpw"
	.string	"cmpl"
	.string	"cmp"
	.string	"incb"
	.string	"incw"
	.string	"incl"
	.string	"inc"
	.string	"decb"
	.string	"decw"
	.string	"decl"
	.string	"dec"
	.string	"notb"
	.string	"notw"
	.string	"notl"
	.string	"not"
	.string	"negb"
	.string	"negw"
	.string	"negl"
	.string	"neg"
	.string	"mulb"
	.string	"mulw"
	.string	"mull"
	.string	"mul"
	.string	"imulb"
	.string	"imulw"
	.string	"imull"
	.string	"imul"
	.string	"divb"
	.string	"divw"
	.string	"divl"
	.string	"div"
	.string	"idivb"
	.string	"idivw"
	.string	"idivl"
	.string	"idiv"
	.string	"xchgb"
	.ascii	"xc"
	.string	"hgw"
	.string	"xchgl"
	.string	"xchg"
	.string	"testb"
	.string	"testw"
	.string	"testl"
	.string	"test"
	.string	"rolb"
	.string	"rolw"
	.string	"roll"
	.string	"rol"
	.string	"rorb"
	.string	"rorw"
	.string	"rorl"
	.string	"ror"
	.string	"rclb"
	.string	"rclw"
	.string	"rcll"
	.string	"rcl"
	.string	"rcrb"
	.string	"rcrw"
	.string	"rcrl"
	.string	"rcr"
	.string	"shlb"
	.string	"shlw"
	.string	"shll"
	.string	"shl"
	.string	"shrb"
	.string	"shrw"
	.string	"shrl"
	.string	"shr"
	.string	"sarb"
	.string	"sarw"
	.string	"sarl"
	.string	"sar"
	.string	"shldw"
	.string	"shldl"
	.string	"shld"
	.string	"shrdw"
	.string	"shrdl"
	.string	"shrd"
	.string	"pushw"
	.string	"pushl"
	.string	"push"
	.string	"popw"
	.string	"popl"
	.string	"pop"
	.string	"inb"
	.string	"inw"
	.string	"inl"
	.string	"in"
	.string	"outb"
	.string	"outw"
	.string	"outl"
	.string	"out"
	.string	"movzbw"
	.string	"movzbl"
	.string	"movzb"
	.string	"movzwl"
	.string	"movsbw"
	.string	"movsbl"
	.string	"movswl"
	.string	"leaw"
	.string	"leal"
	.string	"lea"
	.string	"les"
	.string	"lds"
	.string	"lss"
	.string	"lfs"
	.string	"lgs"
	.string	"call"
	.string	"jmp"
	.string	"lcall"
	.string	"ljmp"
	.string	"jo"
	.string	"jno"
	.string	"jb"
	.string	"jc"
	.string	"jnae"
	.string	"jnb"
	.string	"jnc"
	.string	"jae"
	.string	"je"
	.string	"jz"
	.string	"jne"
	.string	"jnz"
	.string	"jbe"
	.string	"jna"
	.string	"jnbe"
	.string	"ja"
	.string	"js"
	.string	"jns"
	.string	"jp"
	.string	"jpe"
	.string	"jnp"
	.string	"jpo"
	.string	"jl"
	.string	"jnge"
	.string	"jnl"
	.string	"jge"
	.string	"jle"
	.string	"jng"
	.string	"jnle"
	.string	"jg"
	.string	"seto"
	.string	"setno"
	.string	"setb"
	.string	"setc"
	.string	"setnae"
	.string	"setnb"
	.string	"setnc"
	.string	"setae"
	.string	"sete"
	.string	"setz"
	.string	"setne"
	.string	"setnz"
	.string	"setbe"
	.string	"setna"
	.string	"setnbe"
	.string	"seta"
	.string	"sets"
	.string	"setns"
	.string	"setp"
	.string	"setpe"
	.string	"setnp"
	.string	"setpo"
	.string	"setl"
	.string	"setnge"
	.string	"setnl"
	.string	"setge"
	.string	"setle"
	.string	"setng"
	.string	"setnle"
	.string	"setg"
	.string	"cmovo"
	.string	"cmovno"
	.string	"cmovb"
	.string	"cmovc"
	.string	"cmovnae"
	.string	"cmovnb"
	.string	"cmovnc"
	.string	"cmovae"
	.string	"cmove"
	.string	"cmovz"
	.string	"cmovne"
	.string	"cmovnz"
	.string	"cmovbe"
	.string	"cmovna"
	.string	"cmovnbe"
	.string	"cmova"
	.string	"cmovs"
	.string	"cmovns"
	.string	"cmovp"
	.string	"cmovpe"
	.string	"cmovnp"
	.string	"cmovpo"
	.string	"cmovl"
	.string	"cmovnge"
	.string	"cmovnl"
	.string	"cmovge"
	.string	"cmovle"
	.string	"cmovng"
	.string	"cmovnle"
	.string	"cmovg"
	.string	"bsfw"
	.string	"bsfl"
	.string	"bsf"
	.string	"bsrw"
	.string	"bsrl"
	.string	"bsr"
	.string	"btw"
	.string	"btl"
	.string	"bt"
	.string	"btsw"
	.string	"btsl"
	.string	"bts"
	.string	"btrw"
	.string	"btrl"
	.string	"btr"
	.string	"btcw"
	.string	"btcl"
	.string	"btc"
	.string	"lslw"
	.string	"lsll"
	.string	"lsl"
	.string	"fadd"
	.string	"faddp"
	.string	"fadds"
	.string	"fiaddl"
	.string	"faddl"
	.string	"fiadds"
	.string	"fmul"
	.string	"fmulp"
	.string	"fmuls"
	.string	"fimull"
	.string	"fmull"
	.string	"fimuls"
	.string	"fcom"
	.string	"fcom_1"
	.string	"fcoms"
	.string	"ficoml"
	.string	"fcoml"
	.string	"ficoms"
	.string	"fcomp"
	.string	"fcompp"
	.string	"fcomps"
	.string	"ficompl"
	.string	"fcompl"
	.string	"ficomps"
	.string	"fsub"
	.string	"fsubp"
	.string	"fsubs"
	.string	"fisubl"
	.string	"fsubl"
	.string	"fisubs"
	.string	"fsubr"
	.string	"fsubrp"
	.string	"fsubrs"
	.string	"fisubrl"
	.string	"fsubrl"
	.string	"fisubrs"
	.string	"fdiv"
	.string	"fdivp"
	.string	"fdivs"
	.string	"fidivl"
	.string	"fdivl"
	.string	"fidivs"
	.string	"fdivr"
	.string	"fdivrp"
	.string	"fdivrs"
	.string	"fidivrl"
	.string	"fdivrl"
	.string	"fidivrs"
	.string	"xaddb"
	.string	"xaddw"
	.string	"xaddl"
	.string	"xadd"
	.string	"cmpxchgb"
	.string	"cmpxchgw"
	.string	"cmpxchgl"
	.string	"cmpxchg"
	.string	"cmpsb"
	.string	"cmpsw"
	.string	"cmpsl"
	.string	"cmps"
	.string	"scmpb"
	.string	"scmpw"
	.string	"scmpl"
	.string	"scmp"
	.string	"insb"
	.string	"insw"
	.string	"insl"
	.string	"ins"
	.string	"outsb"
	.string	"outsw"
	.string	"outsl"
	.string	"outs"
	.string	"lodsb"
	.string	"lodsw"
	.string	"lodsl"
	.string	"lods"
	.string	"slodb"
	.string	"slodw"
	.string	"slodl"
	.string	"slod"
	.string	"movsb"
	.string	"movsw"
	.string	"movsl"
	.string	"movs"
	.string	"smovb"
	.string	"smovw"
	.string	"smovl"
	.string	"smov"
	.string	"scasb"
	.string	"scasw"
	.string	"scasl"
	.string	"scas"
	.string	"sscab"
	.string	"sscaw"
	.string	"sscal"
	.string	"ssca"
	.string	"stosb"
	.string	"stosw"
	.string	"stosl"
	.string	"stos"
	.string	"sstob"
	.string	"sstow"
	.string	"sstol"
	.string	"ssto"
	.string	"pusha"
	.string	"popa"
	.string	"clc"
	.string	"cld"
	.string	"cli"
	.string	"clts"
	.string	"cmc"
	.string	"lahf"
	.string	"sahf"
	.string	"pushfl"
	.string	"popfl"
	.string	"pushf"
	.string	"popf"
	.string	"stc"
	.string	"std"
	.string	"sti"
	.string	"aaa"
	.string	"aas"
	.string	"daa"
	.string	"das"
	.string	"aad"
	.string	"aam"
	.string	"cbw"
	.string	"cwd"
	.string	"cwde"
	.string	"cdq"
	.string	"cbtw"
	.string	"cwtl"
	.string	"cwtd"
	.string	"cltd"
	.string	"int3"
	.string	"into"
	.string	"iret"
	.string	"rsm"
	.string	"hlt"
	.string	"wait"
	.string	"nop"
	.string	"xlat"
	.string	"aword"
	.string	"addr16"
	.string	"word"
	.string	"data16"
	.string	"lock"
	.string	"rep"
	.string	"repe"
	.string	"repz"
	.string	"repne"
	.string	"repnz"
	.string	"invd"
	.string	"wbinvd"
	.string	"cpuid"
	.string	"wrmsr"
	.string	"rdtsc"
	.string	"rdmsr"
	.string	"rdpmc"
	.string	"ud2"
	.string	"leave"
	.string	"ret"
	.string	"lret"
	.string	"fucompp"
	.string	"ftst"
	.string	"fxam"
	.string	"fld1"
	.string	"fldl2t"
	.string	"fldl2e"
	.string	"fldpi"
	.string	"fldlg2"
	.string	"fldln2"
	.string	"fldz"
	.string	"f2xm1"
	.string	"fyl2x"
	.string	"fptan"
	.string	"fpatan"
	.string	"fxtract"
	.string	"fprem1"
	.ascii	"f"
	.string	"decstp"
	.string	"fincstp"
	.string	"fprem"
	.string	"fyl2xp1"
	.string	"fsqrt"
	.string	"fsincos"
	.string	"frndint"
	.string	"fscale"
	.string	"fsin"
	.string	"fcos"
	.string	"fchs"
	.string	"fabs"
	.string	"fninit"
	.string	"fnclex"
	.string	"fnop"
	.string	"fwait"
	.string	"fxch"
	.string	"fnstsw"
	.string	"emms"
	.string	"enter"
	.string	"loopne"
	.string	"loopnz"
	.string	"loope"
	.string	"loopz"
	.string	"loop"
	.string	"jecxz"
	.string	"fld"
	.string	"fldl"
	.string	"flds"
	.string	"fildl"
	.string	"fildq"
	.string	"fildll"
	.string	"fldt"
	.string	"fbld"
	.string	"fst"
	.string	"fstl"
	.string	"fsts"
	.string	"fstps"
	.string	"fstpl"
	.string	"fist"
	.string	"fistp"
	.string	"fistl"
	.string	"fistpl"
	.string	"fstp"
	.string	"fistpq"
	.string	"fistpll"
	.string	"fstpt"
	.string	"fbstp"
	.string	"fucom"
	.string	"fucomp"
	.string	"finit"
	.string	"fldcw"
	.string	"fnstcw"
	.string	"fstcw"
	.string	"fstsw"
	.string	"fclex"
	.string	"fnstenv"
	.string	"fstenv"
	.string	"fldenv"
	.string	"fnsave"
	.string	"fsave"
	.string	"frstor"
	.string	"ffree"
	.string	"ffreep"
	.string	"fxsave"
	.string	"fxrstor"
	.string	"arpl"
	.string	"lar"
	.string	"lgdt"
	.string	"lidt"
	.string	"lldt"
	.string	"lmsw"
	.string	"ltr"
	.string	"sgdt"
	.string	"sidt"
	.string	"sldt"
	.string	"smsw"
	.string	"str"
	.string	"verr"
	.string	"verw"
	.string	"bswap"
	.string	"invlpg"
	.string	"boundl"
	.string	"boundw"
	.string	"cmpxchg8b"
	.string	"fcmovb"
	.string	"fcmove"
	.string	"fcmovbe"
	.string	"fcmovu"
	.string	"fcmovnb"
	.string	"fcmovne"
	.string	"fcmovnbe"
	.string	"fcmovnu"
	.string	"fucomi"
	.string	"fcomi"
	.string	"fucomip"
	.string	"fcomip"
	.string	"movd"
	.string	"movq"
	.string	"packssdw"
	.string	"packsswb"
	.string	"packuswb"
	.string	"paddb"
	.string	"paddw"
	.string	"paddd"
	.string	"paddsb"
	.string	"paddsw"
	.string	"paddusb"
	.string	"paddusw"
	.string	"pand"
	.string	"pandn"
	.string	"pcmpeqb"
	.string	"pcmpeqw"
	.string	"pcmpeqd"
	.string	"pcmpgtb"
	.string	"pcmpgtw"
	.string	"pcmpgtd"
	.string	"pmaddwd"
	.string	"pmulhw"
	.string	"pmullw"
	.string	"por"
	.string	"psllw"
	.string	"pslld"
	.string	"psllq"
	.string	"psraw"
	.string	"psrad"
	.string	"psrlw"
	.string	"psrld"
	.string	"psrlq"
	.string	"psubb"
	.string	"psubw"
	.string	"psubd"
	.string	"psubsb"
	.string	"psubsw"
	.string	"psubusb"
	.string	"psubusw"
	.string	"punpckhbw"
	.string	"punpckhwd"
	.string	"punpckhdq"
	.string	"punpcklbw"
	.string	"punpcklwd"
	.string	"punpckldq"
	.string	"pxor"
	.string	""
	.text
	.type	is_float, @function
is_float:
.LFB6:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -20[rbp], edi
	mov	eax, DWORD PTR -20[rbp]
	and	eax, 15
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 10
	je	.L2
	cmp	DWORD PTR -4[rbp], 9
	je	.L2
	cmp	DWORD PTR -4[rbp], 8
	jne	.L3
.L2:
	mov	eax, 1
	jmp	.L5
.L3:
	mov	eax, 0
.L5:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	is_float, .-is_float
	.globl	reg_classes
	.data
	.align 16
	.type	reg_classes, @object
	.size	reg_classes, 16
reg_classes:
	.long	5
	.long	17
	.long	33
	.long	10
	.local	func_sub_sp_offset
	.comm	func_sub_sp_offset,8,8
	.local	func_bound_offset
	.comm	func_bound_offset,8,8
	.local	func_ret_sub
	.comm	func_ret_sub,4,4
	.text
	.globl	g
	.type	g, @function
g:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	rax, QWORD PTR ind[rip]
	add	eax, 1
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	rax, QWORD PTR 16[rax]
	cmp	rdx, rax
	jbe	.L7
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	rsi, rdx
	mov	rdi, rax
	call	section_realloc
.L7:
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR ind[rip]
	add	rax, rdx
	mov	edx, DWORD PTR -20[rbp]
	mov	BYTE PTR [rax], dl
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	mov	QWORD PTR ind[rip], rax
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	g, .-g
	.globl	o
	.type	o, @function
o:
.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, 16
	mov	DWORD PTR -4[rbp], edi
	jmp	.L9
.L10:
	mov	eax, DWORD PTR -4[rbp]
	mov	edi, eax
	call	g
	shr	DWORD PTR -4[rbp], 8
.L9:
	cmp	DWORD PTR -4[rbp], 0
	jne	.L10
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	o, .-o
	.globl	gen_le32
	.type	gen_le32, @function
gen_le32:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	eax, DWORD PTR -4[rbp]
	mov	edi, eax
	call	g
	mov	eax, DWORD PTR -4[rbp]
	sar	eax, 8
	mov	edi, eax
	call	g
	mov	eax, DWORD PTR -4[rbp]
	sar	eax, 16
	mov	edi, eax
	call	g
	mov	eax, DWORD PTR -4[rbp]
	sar	eax, 24
	mov	edi, eax
	call	g
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	gen_le32, .-gen_le32
	.globl	gsym_addr
	.type	gsym_addr, @function
gsym_addr:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	jmp	.L13
.L14:
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	sub	eax, DWORD PTR -20[rbp]
	lea	edx, -4[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR -20[rbp], eax
.L13:
	cmp	DWORD PTR -20[rbp], 0
	jne	.L14
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	gsym_addr, .-gsym_addr
	.globl	gsym
	.type	gsym, @function
gsym:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 8
	mov	DWORD PTR -4[rbp], edi
	mov	rax, QWORD PTR ind[rip]
	mov	edx, eax
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, edx
	mov	edi, eax
	call	gsym_addr
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	gsym, .-gsym
	.type	oad, @function
oad:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	eax, DWORD PTR -20[rbp]
	mov	edi, eax
	call	o
	mov	rax, QWORD PTR ind[rip]
	add	eax, 4
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	rax, QWORD PTR 16[rax]
	cmp	rdx, rax
	jbe	.L17
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	rsi, rdx
	mov	rdi, rax
	call	section_realloc
.L17:
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR ind[rip]
	add	rdx, rax
	mov	eax, DWORD PTR -24[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR ind[rip]
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	mov	QWORD PTR ind[rip], rax
	mov	eax, DWORD PTR -24[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	oad, .-oad
	.type	gen_addr32, @function
gen_addr32:
.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, 16
	mov	DWORD PTR -4[rbp], edi
	mov	QWORD PTR -16[rbp], rsi
	mov	DWORD PTR -8[rbp], edx
	mov	eax, DWORD PTR -4[rbp]
	and	eax, 512
	test	eax, eax
	je	.L20
	mov	rax, QWORD PTR ind[rip]
	mov	rdx, rax
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	rsi, QWORD PTR -16[rbp]
	mov	ecx, 1
	mov	rdi, rax
	call	greloc
.L20:
	mov	eax, DWORD PTR -8[rbp]
	mov	edi, eax
	call	gen_le32
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	gen_addr32, .-gen_addr32
	.type	gen_modrm, @function
gen_modrm:
.LFB14:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -4[rbp], edi
	mov	DWORD PTR -8[rbp], esi
	mov	QWORD PTR -16[rbp], rdx
	mov	DWORD PTR -20[rbp], ecx
	sal	DWORD PTR -4[rbp], 3
	mov	eax, DWORD PTR -8[rbp]
	movzx	eax, al
	cmp	eax, 240
	jne	.L22
	mov	eax, DWORD PTR -4[rbp]
	or	eax, 5
	mov	edi, eax
	call	o
	mov	edx, DWORD PTR -20[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR -8[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	gen_addr32
	jmp	.L26
.L22:
	mov	eax, DWORD PTR -8[rbp]
	movzx	eax, al
	cmp	eax, 242
	jne	.L24
	mov	eax, DWORD PTR -20[rbp]
	movsx	eax, al
	cmp	DWORD PTR -20[rbp], eax
	jne	.L25
	mov	eax, DWORD PTR -4[rbp]
	or	eax, 69
	mov	edi, eax
	call	o
	mov	eax, DWORD PTR -20[rbp]
	mov	edi, eax
	call	g
	jmp	.L26
.L25:
	mov	eax, DWORD PTR -4[rbp]
	or	al, -123
	mov	edx, eax
	mov	eax, DWORD PTR -20[rbp]
	mov	esi, eax
	mov	edi, edx
	call	oad
	jmp	.L26
.L24:
	mov	eax, DWORD PTR -8[rbp]
	movzx	eax, al
	or	eax, DWORD PTR -4[rbp]
	mov	edi, eax
	call	g
.L26:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	gen_modrm, .-gen_modrm
	.globl	load
	.type	load, @function
load:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	add	rsp, -128
	mov	DWORD PTR -116[rbp], edi
	mov	QWORD PTR -128[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -128[rbp]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	mov	DWORD PTR -100[rbp], eax
	mov	rax, QWORD PTR -128[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -96[rbp], eax
	mov	rax, QWORD PTR -128[rbp]
	mov	eax, DWORD PTR 32[rax]
	mov	DWORD PTR -92[rbp], eax
	mov	eax, DWORD PTR -100[rbp]
	movzx	eax, al
	mov	DWORD PTR -88[rbp], eax
	mov	eax, DWORD PTR -100[rbp]
	and	eax, 256
	test	eax, eax
	je	.L28
	cmp	DWORD PTR -88[rbp], 241
	jne	.L29
	mov	DWORD PTR -80[rbp], 0
	mov	WORD PTR -64[rbp], 498
	mov	eax, DWORD PTR -92[rbp]
	mov	DWORD PTR -48[rbp], eax
	lea	rdx, -80[rbp]
	mov	eax, DWORD PTR -116[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	load
	mov	eax, DWORD PTR -116[rbp]
	mov	DWORD PTR -100[rbp], eax
.L29:
	mov	eax, DWORD PTR -96[rbp]
	and	eax, 15
	cmp	eax, 8
	jne	.L30
	mov	edi, 217
	call	o
	mov	DWORD PTR -116[rbp], 0
	jmp	.L31
.L30:
	mov	eax, DWORD PTR -96[rbp]
	and	eax, 15
	cmp	eax, 9
	jne	.L32
	mov	edi, 221
	call	o
	mov	DWORD PTR -116[rbp], 0
	jmp	.L31
.L32:
	mov	eax, DWORD PTR -96[rbp]
	and	eax, 15
	cmp	eax, 10
	jne	.L33
	mov	edi, 219
	call	o
	mov	DWORD PTR -116[rbp], 5
	jmp	.L31
.L33:
	mov	eax, DWORD PTR -96[rbp]
	and	eax, -1921
	cmp	eax, 1
	jne	.L34
	mov	edi, 48655
	call	o
	jmp	.L31
.L34:
	mov	eax, DWORD PTR -96[rbp]
	and	eax, -1921
	cmp	eax, 17
	jne	.L35
	mov	edi, 46607
	call	o
	jmp	.L31
.L35:
	mov	eax, DWORD PTR -96[rbp]
	and	eax, -1921
	cmp	eax, 2
	jne	.L36
	mov	edi, 48911
	call	o
	jmp	.L31
.L36:
	mov	eax, DWORD PTR -96[rbp]
	and	eax, -1921
	cmp	eax, 18
	jne	.L37
	mov	edi, 46863
	call	o
	jmp	.L31
.L37:
	mov	edi, 139
	call	o
.L31:
	mov	rax, QWORD PTR -128[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	ecx, DWORD PTR -92[rbp]
	mov	esi, DWORD PTR -100[rbp]
	mov	eax, DWORD PTR -116[rbp]
	mov	edi, eax
	call	gen_modrm
	jmp	.L45
.L28:
	cmp	DWORD PTR -88[rbp], 240
	jne	.L39
	mov	eax, DWORD PTR -116[rbp]
	add	eax, 184
	mov	edi, eax
	call	o
	mov	rax, QWORD PTR -128[rbp]
	mov	rcx, QWORD PTR 48[rax]
	mov	edx, DWORD PTR -92[rbp]
	mov	eax, DWORD PTR -100[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	gen_addr32
	jmp	.L45
.L39:
	cmp	DWORD PTR -88[rbp], 242
	jne	.L40
	mov	edi, 141
	call	o
	mov	rax, QWORD PTR -128[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	ecx, DWORD PTR -92[rbp]
	mov	eax, DWORD PTR -116[rbp]
	mov	esi, 242
	mov	edi, eax
	call	gen_modrm
	jmp	.L45
.L40:
	cmp	DWORD PTR -88[rbp], 243
	jne	.L41
	mov	eax, DWORD PTR -116[rbp]
	add	eax, 184
	mov	esi, 0
	mov	edi, eax
	call	oad
	mov	edi, 15
	call	o
	mov	eax, DWORD PTR -92[rbp]
	mov	edi, eax
	call	o
	mov	eax, DWORD PTR -116[rbp]
	add	eax, 192
	mov	edi, eax
	call	o
	jmp	.L45
.L41:
	cmp	DWORD PTR -88[rbp], 244
	je	.L42
	cmp	DWORD PTR -88[rbp], 245
	jne	.L43
.L42:
	mov	eax, DWORD PTR -88[rbp]
	and	eax, 1
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -116[rbp]
	lea	edx, 184[rax]
	mov	eax, DWORD PTR -84[rbp]
	mov	esi, eax
	mov	edi, edx
	call	oad
	mov	edi, 1515
	call	o
	mov	eax, DWORD PTR -92[rbp]
	mov	edi, eax
	call	gsym
	mov	eax, DWORD PTR -84[rbp]
	xor	eax, 1
	mov	edx, eax
	mov	eax, DWORD PTR -116[rbp]
	add	eax, 184
	mov	esi, edx
	mov	edi, eax
	call	oad
	jmp	.L45
.L43:
	mov	eax, DWORD PTR -88[rbp]
	cmp	eax, DWORD PTR -116[rbp]
	je	.L45
	mov	edi, 137
	call	o
	mov	eax, DWORD PTR -116[rbp]
	lea	edx, 192[rax]
	mov	eax, DWORD PTR -88[rbp]
	sal	eax, 3
	add	eax, edx
	mov	edi, eax
	call	o
.L45:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L44
	call	__stack_chk_fail@PLT
.L44:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	load, .-load
	.globl	store
	.type	store, @function
store:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -16[rbp], eax
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 32[rax]
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 255
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	and	eax, 15
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 8
	jne	.L47
	mov	edi, 217
	call	o
	mov	DWORD PTR -20[rbp], 2
	jmp	.L48
.L47:
	cmp	DWORD PTR -4[rbp], 9
	jne	.L49
	mov	edi, 221
	call	o
	mov	DWORD PTR -20[rbp], 2
	jmp	.L48
.L49:
	cmp	DWORD PTR -4[rbp], 10
	jne	.L50
	mov	edi, 49369
	call	o
	mov	edi, 219
	call	o
	mov	DWORD PTR -20[rbp], 7
	jmp	.L48
.L50:
	cmp	DWORD PTR -4[rbp], 2
	jne	.L51
	mov	edi, 102
	call	o
.L51:
	cmp	DWORD PTR -4[rbp], 1
	je	.L52
	cmp	DWORD PTR -4[rbp], 11
	jne	.L53
.L52:
	mov	edi, 136
	call	o
	jmp	.L48
.L53:
	mov	edi, 137
	call	o
.L48:
	cmp	DWORD PTR -8[rbp], 240
	je	.L54
	cmp	DWORD PTR -8[rbp], 242
	je	.L54
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 256
	test	eax, eax
	je	.L55
.L54:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, WORD PTR 16[rax]
	movzx	esi, ax
	mov	ecx, DWORD PTR -12[rbp]
	mov	eax, DWORD PTR -20[rbp]
	mov	edi, eax
	call	gen_modrm
	jmp	.L57
.L55:
	mov	eax, DWORD PTR -8[rbp]
	cmp	eax, DWORD PTR -20[rbp]
	je	.L57
	mov	eax, DWORD PTR -8[rbp]
	lea	edx, 192[rax]
	mov	eax, DWORD PTR -20[rbp]
	sal	eax, 3
	add	eax, edx
	mov	edi, eax
	call	o
.L57:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	store, .-store
	.type	gadd_sp, @function
gadd_sp:
.LFB17:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	eax, DWORD PTR -4[rbp]
	movsx	eax, al
	cmp	DWORD PTR -4[rbp], eax
	jne	.L59
	mov	edi, 50307
	call	o
	mov	eax, DWORD PTR -4[rbp]
	mov	edi, eax
	call	g
	jmp	.L61
.L59:
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, eax
	mov	edi, 50305
	call	oad
.L61:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	gadd_sp, .-gadd_sp
	.type	gcall_or_jmp, @function
gcall_or_jmp:
.LFB18:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 511
	cmp	eax, 240
	jne	.L63
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 512
	test	eax, eax
	je	.L64
	mov	rax, QWORD PTR ind[rip]
	add	rax, 1
	mov	rdx, rax
	mov	rax, QWORD PTR vtop[rip]
	mov	rsi, QWORD PTR 48[rax]
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	ecx, 2
	mov	rdi, rax
	call	greloc
	jmp	.L65
.L64:
	mov	rax, QWORD PTR ind[rip]
	add	rax, 1
	mov	rdx, rax
	mov	rsi, QWORD PTR cur_text_section[rip]
	mov	rax, QWORD PTR symtab_section[rip]
	mov	r8d, 0
	mov	ecx, 2
	mov	rdi, rax
	call	put_elf_reloc
.L65:
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR 32[rax]
	sub	eax, 4
	mov	edx, eax
	mov	eax, DWORD PTR -20[rbp]
	add	eax, 232
	mov	esi, edx
	mov	edi, eax
	call	oad
	jmp	.L67
.L63:
	mov	edi, 1
	call	gv
	mov	DWORD PTR -4[rbp], eax
	mov	edi, 255
	call	o
	mov	eax, DWORD PTR -4[rbp]
	lea	edx, 208[rax]
	mov	eax, DWORD PTR -20[rbp]
	sal	eax, 4
	add	eax, edx
	mov	edi, eax
	call	o
.L67:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	gcall_or_jmp, .-gcall_or_jmp
	.data
	.type	fastcall_regs, @object
	.size	fastcall_regs, 3
fastcall_regs:
	.string	""
	.ascii	"\002\001"
	.text
	.globl	gfunc_call
	.type	gfunc_call, @function
gfunc_call:
.LFB19:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	DWORD PTR -52[rbp], edi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -36[rbp], 0
	mov	DWORD PTR -32[rbp], 0
	jmp	.L69
.L80:
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 7
	jne	.L70
	mov	rax, QWORD PTR vtop[rip]
	mov	rdx, rax
	lea	rax, -44[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	type_size
	mov	DWORD PTR -40[rbp], eax
	mov	eax, DWORD PTR -40[rbp]
	add	eax, 3
	and	eax, -4
	mov	DWORD PTR -40[rbp], eax
	mov	eax, DWORD PTR -40[rbp]
	mov	esi, eax
	mov	edi, 60545
	call	oad
	mov	edi, 1
	call	get_reg
	mov	DWORD PTR -20[rbp], eax
	mov	edi, 137
	call	o
	mov	eax, DWORD PTR -20[rbp]
	add	eax, 224
	mov	edi, eax
	call	o
	mov	eax, DWORD PTR -20[rbp]
	or	ah, 1
	mov	rdx, QWORD PTR vtop[rip]
	mov	rcx, rdx
	mov	edx, 0
	mov	esi, eax
	mov	rdi, rcx
	call	vset
	call	vswap
	call	vstore
	mov	eax, DWORD PTR -40[rbp]
	add	DWORD PTR -36[rbp], eax
	jmp	.L71
.L70:
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	is_float
	test	eax, eax
	je	.L72
	mov	edi, 2
	call	gv
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 8
	jne	.L73
	mov	DWORD PTR -40[rbp], 4
	jmp	.L74
.L73:
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 9
	jne	.L75
	mov	DWORD PTR -40[rbp], 8
	jmp	.L74
.L75:
	mov	DWORD PTR -40[rbp], 12
.L74:
	mov	eax, DWORD PTR -40[rbp]
	mov	esi, eax
	mov	edi, 60545
	call	oad
	cmp	DWORD PTR -40[rbp], 12
	jne	.L76
	mov	edi, 31963
	call	o
	jmp	.L77
.L76:
	mov	eax, DWORD PTR -40[rbp]
	add	eax, 23765
	mov	edi, eax
	call	o
.L77:
	mov	edi, 36
	call	g
	mov	edi, 0
	call	g
	mov	eax, DWORD PTR -40[rbp]
	add	DWORD PTR -36[rbp], eax
	jmp	.L71
.L72:
	mov	edi, 1
	call	gv
	mov	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 12
	jne	.L78
	mov	DWORD PTR -40[rbp], 8
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 18[rax]
	movzx	eax, ax
	add	eax, 80
	mov	edi, eax
	call	o
	jmp	.L79
.L78:
	mov	DWORD PTR -40[rbp], 4
.L79:
	mov	eax, DWORD PTR -20[rbp]
	add	eax, 80
	mov	edi, eax
	call	o
	mov	eax, DWORD PTR -40[rbp]
	add	DWORD PTR -36[rbp], eax
.L71:
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	QWORD PTR vtop[rip], rax
	add	DWORD PTR -32[rbp], 1
.L69:
	mov	eax, DWORD PTR -32[rbp]
	cmp	eax, DWORD PTR -52[rbp]
	jl	.L80
	mov	edi, 0
	call	save_regs
	mov	rax, QWORD PTR vtop[rip]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	DWORD PTR -28[rbp], eax
	cmp	DWORD PTR -28[rbp], 1
	jle	.L81
	cmp	DWORD PTR -28[rbp], 4
	jg	.L81
	mov	eax, DWORD PTR -28[rbp]
	sub	eax, 1
	mov	DWORD PTR -24[rbp], eax
	mov	DWORD PTR -32[rbp], 0
	jmp	.L82
.L84:
	cmp	DWORD PTR -36[rbp], 0
	jle	.L87
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	lea	rdx, fastcall_regs[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	eax, al
	add	eax, 88
	mov	edi, eax
	call	o
	sub	DWORD PTR -36[rbp], 4
	add	DWORD PTR -32[rbp], 1
.L82:
	mov	eax, DWORD PTR -32[rbp]
	cmp	eax, DWORD PTR -24[rbp]
	jl	.L84
	jmp	.L81
.L87:
	nop
.L81:
	mov	edi, 0
	call	gcall_or_jmp
	cmp	DWORD PTR -36[rbp], 0
	je	.L85
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 8[rax]
	cmp	rax, 1
	je	.L85
	mov	eax, DWORD PTR -36[rbp]
	mov	edi, eax
	call	gadd_sp
.L85:
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	QWORD PTR vtop[rip], rax
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L86
	call	__stack_chk_fail@PLT
.L86:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	gfunc_call, .-gfunc_call
	.globl	gfunc_prolog
	.type	gfunc_prolog, @function
gfunc_prolog:
.LFB20:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -72[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	DWORD PTR -32[rbp], eax
	mov	DWORD PTR -48[rbp], 8
	mov	QWORD PTR loc[rip], 0
	cmp	DWORD PTR -32[rbp], 1
	jle	.L89
	cmp	DWORD PTR -32[rbp], 4
	jg	.L89
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 1
	mov	DWORD PTR -44[rbp], eax
	jmp	.L90
.L89:
	mov	DWORD PTR -44[rbp], 0
.L90:
	mov	DWORD PTR -40[rbp], 0
	mov	rax, QWORD PTR ind[rip]
	add	rax, 9
	mov	QWORD PTR ind[rip], rax
	mov	rax, QWORD PTR ind[rip]
	mov	QWORD PTR func_sub_sp_offset[rip], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR func_vt[rip], rax
	mov	QWORD PTR func_vt[rip+8], rdx
	mov	eax, DWORD PTR func_vt[rip]
	and	eax, 15
	cmp	eax, 7
	jne	.L92
	mov	eax, DWORD PTR -48[rbp]
	mov	DWORD PTR func_vc[rip], eax
	add	DWORD PTR -48[rbp], 4
	add	DWORD PTR -40[rbp], 1
	jmp	.L92
.L95:
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 24
	mov	QWORD PTR -16[rbp], rax
	lea	rdx, -52[rbp]
	mov	rax, QWORD PTR -16[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	type_size
	mov	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, 3
	and	eax, -4
	mov	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -40[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jge	.L93
	mov	rax, QWORD PTR loc[rip]
	sub	rax, 4
	mov	QWORD PTR loc[rip], rax
	mov	edi, 137
	call	o
	mov	rax, QWORD PTR loc[rip]
	mov	ecx, eax
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	lea	rdx, fastcall_regs[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	eax, al
	mov	edx, 0
	mov	esi, 242
	mov	edi, eax
	call	gen_modrm
	mov	rax, QWORD PTR loc[rip]
	mov	DWORD PTR -36[rbp], eax
	jmp	.L94
.L93:
	mov	eax, DWORD PTR -48[rbp]
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	add	DWORD PTR -48[rbp], eax
.L94:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	and	eax, -536870913
	mov	edi, eax
	mov	edx, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -16[rbp]
	mov	ecx, edx
	mov	edx, 498
	mov	rsi, rax
	call	sym_push
	add	DWORD PTR -40[rbp], 1
.L92:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	jne	.L95
	mov	DWORD PTR func_ret_sub[rip], 0
	cmp	DWORD PTR -32[rbp], 1
	jne	.L96
	mov	eax, DWORD PTR -48[rbp]
	sub	eax, 8
	mov	DWORD PTR func_ret_sub[rip], eax
.L96:
	mov	eax, DWORD PTR do_bounds_check[rip]
	test	eax, eax
	je	.L99
	mov	esi, 0
	mov	edi, 184
	call	oad
	mov	esi, 0
	mov	edi, 184
	call	oad
	mov	rax, QWORD PTR lbounds_section[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR func_bound_offset[rip], rax
.L99:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L98
	call	__stack_chk_fail@PLT
.L98:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	gfunc_prolog, .-gfunc_prolog
	.globl	gfunc_epilog
	.type	gfunc_epilog, @function
gfunc_epilog:
.LFB21:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	eax, DWORD PTR do_bounds_check[rip]
	test	eax, eax
	je	.L101
	mov	rax, QWORD PTR lbounds_section[rip]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR func_bound_offset[rip]
	cmp	rdx, rax
	je	.L101
	mov	rax, QWORD PTR lbounds_section[rip]
	mov	esi, 4
	mov	rdi, rax
	call	section_ptr_add
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR ind[rip]
	mov	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR func_sub_sp_offset[rip]
	mov	QWORD PTR ind[rip], rax
	mov	rax, QWORD PTR lbounds_section[rip]
	mov	rcx, QWORD PTR [rax]
	mov	rdx, QWORD PTR func_bound_offset[rip]
	mov	rax, QWORD PTR lbounds_section[rip]
	mov	rsi, rax
	lea	rdi, char_pointer_type[rip]
	call	get_sym_ref
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR ind[rip]
	add	rax, 1
	mov	rdx, rax
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	rsi, QWORD PTR -16[rbp]
	mov	ecx, 1
	mov	rdi, rax
	call	greloc
	mov	esi, 0
	mov	edi, 184
	call	oad
	mov	edx, 0
	lea	rsi, func_old_type[rip]
	mov	edi, 381
	call	external_global_sym
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR ind[rip]
	add	rax, 1
	mov	rdx, rax
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	rsi, QWORD PTR -8[rbp]
	mov	ecx, 2
	mov	rdi, rax
	call	greloc
	mov	esi, -4
	mov	edi, 232
	call	oad
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	mov	QWORD PTR ind[rip], rax
	mov	edi, 21072
	call	o
	mov	rax, QWORD PTR ind[rip]
	add	rax, 1
	mov	rdx, rax
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	rsi, QWORD PTR -16[rbp]
	mov	ecx, 1
	mov	rdi, rax
	call	greloc
	mov	esi, 0
	mov	edi, 184
	call	oad
	mov	edx, 0
	lea	rsi, func_old_type[rip]
	mov	edi, 382
	call	external_global_sym
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR ind[rip]
	add	rax, 1
	mov	rdx, rax
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	rsi, QWORD PTR -8[rbp]
	mov	ecx, 2
	mov	rdi, rax
	call	greloc
	mov	esi, -4
	mov	edi, 232
	call	oad
	mov	edi, 22618
	call	o
.L101:
	mov	edi, 201
	call	o
	mov	eax, DWORD PTR func_ret_sub[rip]
	test	eax, eax
	jne	.L102
	mov	edi, 195
	call	o
	jmp	.L103
.L102:
	mov	edi, 194
	call	o
	mov	eax, DWORD PTR func_ret_sub[rip]
	mov	edi, eax
	call	g
	mov	eax, DWORD PTR func_ret_sub[rip]
	sar	eax, 8
	mov	edi, eax
	call	g
.L103:
	mov	rax, QWORD PTR loc[rip]
	mov	edx, eax
	mov	eax, 3
	sub	eax, edx
	and	eax, -4
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR ind[rip]
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR func_sub_sp_offset[rip]
	sub	rax, 9
	mov	QWORD PTR ind[rip], rax
	mov	edi, 15042901
	call	o
	mov	edi, 60545
	call	o
	mov	eax, DWORD PTR -32[rbp]
	mov	edi, eax
	call	gen_le32
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	mov	QWORD PTR ind[rip], rax
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	gfunc_epilog, .-gfunc_epilog
	.globl	gjmp
	.type	gjmp, @function
gjmp:
.LFB22:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, eax
	mov	edi, 233
	call	oad
	cdqe
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE22:
	.size	gjmp, .-gjmp
	.globl	gjmp_addr
	.type	gjmp_addr, @function
gjmp_addr:
.LFB23:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	eax, DWORD PTR -20[rbp]
	mov	rdx, QWORD PTR ind[rip]
	sub	eax, edx
	sub	eax, 2
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	movsx	eax, al
	cmp	DWORD PTR -4[rbp], eax
	jne	.L107
	mov	edi, 235
	call	g
	mov	eax, DWORD PTR -4[rbp]
	mov	edi, eax
	call	g
	jmp	.L109
.L107:
	mov	eax, DWORD PTR -20[rbp]
	mov	rdx, QWORD PTR ind[rip]
	sub	eax, edx
	sub	eax, 5
	mov	esi, eax
	mov	edi, 233
	call	oad
.L109:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE23:
	.size	gjmp_addr, .-gjmp_addr
	.globl	gtst
	.type	gtst, @function
gtst:
.LFB24:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 255
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 243
	jne	.L111
	mov	edi, 15
	call	g
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR 32[rax]
	sub	eax, 16
	xor	eax, DWORD PTR -20[rbp]
	mov	edx, DWORD PTR -24[rbp]
	mov	esi, edx
	mov	edi, eax
	call	oad
	mov	DWORD PTR -24[rbp], eax
	jmp	.L112
.L111:
	cmp	DWORD PTR -12[rbp], 244
	je	.L113
	cmp	DWORD PTR -12[rbp], 245
	jne	.L114
.L113:
	mov	eax, DWORD PTR -12[rbp]
	and	eax, 1
	cmp	DWORD PTR -20[rbp], eax
	jne	.L115
	mov	rax, QWORD PTR vtop[rip]
	add	rax, 32
	mov	QWORD PTR -8[rbp], rax
	jmp	.L116
.L117:
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
.L116:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L117
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR 32[rax]
	mov	DWORD PTR -24[rbp], eax
	jmp	.L112
.L115:
	mov	eax, DWORD PTR -24[rbp]
	mov	edi, eax
	call	gjmp
	mov	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR 32[rax]
	mov	edi, eax
	call	gsym
	jmp	.L112
.L114:
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	is_float
	test	eax, eax
	je	.L119
	mov	edi, 0
	call	vpushi
	mov	edi, 149
	call	gen_op
.L119:
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 1023
	cmp	eax, 240
	jne	.L120
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR 32[rax]
	test	eax, eax
	setne	al
	movzx	eax, al
	cmp	DWORD PTR -20[rbp], eax
	je	.L112
	mov	eax, DWORD PTR -24[rbp]
	mov	edi, eax
	call	gjmp
	mov	DWORD PTR -24[rbp], eax
	jmp	.L112
.L120:
	mov	edi, 1
	call	gv
	mov	DWORD PTR -12[rbp], eax
	mov	edi, 133
	call	o
	mov	edx, DWORD PTR -12[rbp]
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	add	eax, 192
	mov	edi, eax
	call	o
	mov	edi, 15
	call	g
	mov	eax, DWORD PTR -20[rbp]
	xor	al, -123
	mov	edx, eax
	mov	eax, DWORD PTR -24[rbp]
	mov	esi, eax
	mov	edi, edx
	call	oad
	mov	DWORD PTR -24[rbp], eax
.L112:
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	QWORD PTR vtop[rip], rax
	mov	eax, DWORD PTR -24[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE24:
	.size	gtst, .-gtst
	.globl	gen_opi
	.type	gen_opi, @function
gen_opi:
.LFB25:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	cmp	DWORD PTR -20[rbp], 205
	jg	.L123
	cmp	DWORD PTR -20[rbp], 176
	jge	.L124
	cmp	DWORD PTR -20[rbp], 124
	je	.L125
	cmp	DWORD PTR -20[rbp], 124
	jg	.L123
	cmp	DWORD PTR -20[rbp], 47
	jg	.L126
	cmp	DWORD PTR -20[rbp], 0
	jg	.L127
	jmp	.L123
.L124:
	mov	eax, DWORD PTR -20[rbp]
	sub	eax, 176
	cmp	eax, 29
	ja	.L123
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L129[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L129[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L129:
	.long	.L134-.L129
	.long	.L134-.L129
	.long	.L134-.L129
	.long	.L123-.L129
	.long	.L123-.L129
	.long	.L123-.L129
	.long	.L123-.L129
	.long	.L123-.L129
	.long	.L123-.L129
	.long	.L123-.L129
	.long	.L123-.L129
	.long	.L123-.L129
	.long	.L123-.L129
	.long	.L123-.L129
	.long	.L123-.L129
	.long	.L123-.L129
	.long	.L123-.L129
	.long	.L123-.L129
	.long	.L134-.L129
	.long	.L133-.L129
	.long	.L132-.L129
	.long	.L131-.L129
	.long	.L130-.L129
	.long	.L123-.L129
	.long	.L123-.L129
	.long	.L123-.L129
	.long	.L123-.L129
	.long	.L123-.L129
	.long	.L123-.L129
	.long	.L128-.L129
	.text
.L127:
	cmp	DWORD PTR -20[rbp], 47
	ja	.L123
	mov	eax, DWORD PTR -20[rbp]
	lea	rdx, 0[0+rax*4]
	lea	rax, .L135[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L135[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L135:
	.long	.L123-.L135
	.long	.L139-.L135
	.long	.L138-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L134-.L135
	.long	.L137-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L123-.L135
	.long	.L136-.L135
	.long	.L133-.L135
	.long	.L123-.L135
	.long	.L131-.L135
	.long	.L123-.L135
	.long	.L134-.L135
	.text
.L126:
	cmp	DWORD PTR -20[rbp], 94
	je	.L140
	jmp	.L123
.L133:
	mov	DWORD PTR -12[rbp], 0
.L141:
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 1023
	cmp	eax, 240
	jne	.L142
	call	vswap
	mov	edi, 1
	call	gv
	mov	DWORD PTR -16[rbp], eax
	call	vswap
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR 32[rax]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	movsx	eax, al
	cmp	DWORD PTR -4[rbp], eax
	jne	.L143
	mov	edi, 131
	call	o
	mov	eax, DWORD PTR -12[rbp]
	sal	eax, 3
	or	al, -64
	or	eax, DWORD PTR -16[rbp]
	mov	edi, eax
	call	o
	mov	eax, DWORD PTR -4[rbp]
	mov	edi, eax
	call	g
	jmp	.L144
.L143:
	mov	edi, 129
	call	o
	mov	eax, DWORD PTR -12[rbp]
	sal	eax, 3
	or	al, -64
	or	eax, DWORD PTR -16[rbp]
	mov	edx, DWORD PTR -4[rbp]
	mov	esi, edx
	mov	edi, eax
	call	oad
	jmp	.L144
.L142:
	mov	esi, 1
	mov	edi, 1
	call	gv2
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	mov	DWORD PTR -16[rbp], eax
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	sal	eax, 3
	or	eax, 1
	mov	edi, eax
	call	o
	mov	eax, DWORD PTR -16[rbp]
	lea	edx, 192[rax]
	mov	eax, DWORD PTR -8[rbp]
	sal	eax, 3
	add	eax, edx
	mov	edi, eax
	call	o
.L144:
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	QWORD PTR vtop[rip], rax
	cmp	DWORD PTR -20[rbp], 145
	jle	.L157
	cmp	DWORD PTR -20[rbp], 159
	jg	.L157
	mov	rax, QWORD PTR vtop[rip]
	mov	WORD PTR 16[rax], 243
	mov	rax, QWORD PTR vtop[rip]
	mov	edx, DWORD PTR -20[rbp]
	mov	DWORD PTR 32[rax], edx
	jmp	.L157
.L131:
	mov	DWORD PTR -12[rbp], 5
	jmp	.L141
.L132:
	mov	DWORD PTR -12[rbp], 2
	jmp	.L141
.L130:
	mov	DWORD PTR -12[rbp], 3
	jmp	.L141
.L137:
	mov	DWORD PTR -12[rbp], 4
	jmp	.L141
.L140:
	mov	DWORD PTR -12[rbp], 6
	jmp	.L141
.L125:
	mov	DWORD PTR -12[rbp], 1
	jmp	.L141
.L136:
	mov	esi, 1
	mov	edi, 1
	call	gv2
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	mov	DWORD PTR -16[rbp], eax
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	mov	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	QWORD PTR vtop[rip], rax
	mov	edi, 44815
	call	o
	mov	eax, DWORD PTR -8[rbp]
	lea	edx, 192[rax]
	mov	eax, DWORD PTR -16[rbp]
	sal	eax, 3
	add	eax, edx
	mov	edi, eax
	call	o
	jmp	.L146
.L139:
	mov	DWORD PTR -12[rbp], 4
	jmp	.L147
.L128:
	mov	DWORD PTR -12[rbp], 5
	jmp	.L147
.L138:
	mov	DWORD PTR -12[rbp], 7
.L147:
	mov	eax, DWORD PTR -12[rbp]
	sal	eax, 3
	or	al, -64
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 1023
	cmp	eax, 240
	jne	.L148
	call	vswap
	mov	edi, 1
	call	gv
	mov	DWORD PTR -16[rbp], eax
	call	vswap
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR 32[rax]
	and	eax, 31
	mov	DWORD PTR -4[rbp], eax
	mov	edi, 193
	call	o
	mov	eax, DWORD PTR -12[rbp]
	or	eax, DWORD PTR -16[rbp]
	mov	edi, eax
	call	o
	mov	eax, DWORD PTR -4[rbp]
	mov	edi, eax
	call	g
	jmp	.L149
.L148:
	mov	esi, 16
	mov	edi, 1
	call	gv2
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	mov	DWORD PTR -16[rbp], eax
	mov	edi, 211
	call	o
	mov	eax, DWORD PTR -12[rbp]
	or	eax, DWORD PTR -16[rbp]
	mov	edi, eax
	call	o
.L149:
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	QWORD PTR vtop[rip], rax
	jmp	.L146
.L134:
	mov	esi, 16
	mov	edi, 4
	call	gv2
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	mov	DWORD PTR -16[rbp], eax
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	mov	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	QWORD PTR vtop[rip], rax
	mov	edi, 2
	call	save_reg
	cmp	DWORD PTR -20[rbp], 194
	jne	.L150
	mov	edi, 247
	call	o
	mov	eax, DWORD PTR -8[rbp]
	add	eax, 224
	mov	edi, eax
	call	o
	mov	rax, QWORD PTR vtop[rip]
	mov	WORD PTR 18[rax], 2
	mov	DWORD PTR -16[rbp], 0
	jmp	.L151
.L150:
	cmp	DWORD PTR -20[rbp], 176
	je	.L152
	cmp	DWORD PTR -20[rbp], 177
	jne	.L153
.L152:
	mov	edi, 16241201
	call	o
	mov	eax, DWORD PTR -8[rbp]
	add	eax, 240
	mov	edi, eax
	call	o
	jmp	.L154
.L153:
	mov	edi, 63385
	call	o
	mov	eax, DWORD PTR -8[rbp]
	add	eax, 248
	mov	edi, eax
	call	o
.L154:
	cmp	DWORD PTR -20[rbp], 37
	je	.L155
	cmp	DWORD PTR -20[rbp], 177
	jne	.L156
.L155:
	mov	DWORD PTR -16[rbp], 2
	jmp	.L151
.L156:
	mov	DWORD PTR -16[rbp], 0
.L151:
	mov	rax, QWORD PTR vtop[rip]
	mov	edx, DWORD PTR -16[rbp]
	mov	WORD PTR 16[rax], dx
	jmp	.L146
.L123:
	mov	DWORD PTR -12[rbp], 7
	jmp	.L141
.L157:
	nop
.L146:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE25:
	.size	gen_opi, .-gen_opi
	.globl	gen_opf
	.type	gen_opf, @function
gen_opf:
.LFB26:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	add	rsp, -128
	mov	DWORD PTR -116[rbp], edi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 511
	cmp	eax, 240
	jne	.L159
	call	vswap
	mov	edi, 2
	call	gv
	call	vswap
.L159:
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 511
	cmp	eax, 240
	jne	.L160
	mov	edi, 2
	call	gv
.L160:
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 256
	test	eax, eax
	je	.L161
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 256
	test	eax, eax
	je	.L161
	call	vswap
	mov	edi, 2
	call	gv
	call	vswap
.L161:
	mov	DWORD PTR -92[rbp], 0
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 256
	test	eax, eax
	je	.L162
	call	vswap
	mov	DWORD PTR -92[rbp], 1
.L162:
	cmp	DWORD PTR -116[rbp], 145
	jle	.L163
	cmp	DWORD PTR -116[rbp], 159
	jg	.L163
	mov	rax, QWORD PTR vtop[rip]
	mov	rsi, rax
	mov	edi, 3
	call	load
	mov	edi, 0
	call	save_reg
	cmp	DWORD PTR -116[rbp], 157
	je	.L164
	cmp	DWORD PTR -116[rbp], 159
	jne	.L165
.L164:
	cmp	DWORD PTR -92[rbp], 0
	sete	al
	movzx	eax, al
	mov	DWORD PTR -92[rbp], eax
	jmp	.L166
.L165:
	cmp	DWORD PTR -116[rbp], 148
	je	.L167
	cmp	DWORD PTR -116[rbp], 149
	jne	.L166
.L167:
	mov	DWORD PTR -92[rbp], 0
.L166:
	cmp	DWORD PTR -92[rbp], 0
	je	.L168
	mov	edi, 51673
	call	o
.L168:
	mov	edi, 59866
	call	o
	mov	edi, 57567
	call	o
	cmp	DWORD PTR -116[rbp], 148
	jne	.L169
	mov	edi, 4580480
	call	o
	mov	edi, 4258944
	call	o
	jmp	.L170
.L169:
	cmp	DWORD PTR -116[rbp], 149
	jne	.L171
	mov	edi, 4580480
	call	o
	mov	edi, 4256896
	call	o
	mov	DWORD PTR -116[rbp], 149
	jmp	.L170
.L171:
	cmp	DWORD PTR -116[rbp], 157
	je	.L172
	cmp	DWORD PTR -116[rbp], 158
	jne	.L173
.L172:
	mov	edi, 378102
	call	o
	mov	DWORD PTR -116[rbp], 148
	jmp	.L170
.L173:
	mov	edi, 4572406
	call	o
	mov	DWORD PTR -116[rbp], 148
.L170:
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	QWORD PTR vtop[rip], rax
	mov	rax, QWORD PTR vtop[rip]
	mov	WORD PTR 16[rax], 243
	mov	rax, QWORD PTR vtop[rip]
	mov	edx, DWORD PTR -116[rbp]
	mov	DWORD PTR 32[rax], edx
	jmp	.L174
.L163:
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 10
	jne	.L175
	mov	rax, QWORD PTR vtop[rip]
	mov	rsi, rax
	mov	edi, 3
	call	load
	cmp	DWORD PTR -92[rbp], 0
	sete	al
	movzx	eax, al
	mov	DWORD PTR -92[rbp], eax
.L175:
	cmp	DWORD PTR -116[rbp], 47
	je	.L176
	cmp	DWORD PTR -116[rbp], 47
	jg	.L177
	cmp	DWORD PTR -116[rbp], 42
	je	.L178
	cmp	DWORD PTR -116[rbp], 45
	je	.L179
.L177:
	mov	DWORD PTR -100[rbp], 0
	jmp	.L180
.L179:
	mov	DWORD PTR -100[rbp], 4
	cmp	DWORD PTR -92[rbp], 0
	je	.L189
	add	DWORD PTR -100[rbp], 1
	jmp	.L189
.L178:
	mov	DWORD PTR -100[rbp], 1
	jmp	.L180
.L176:
	mov	DWORD PTR -100[rbp], 6
	cmp	DWORD PTR -92[rbp], 0
	je	.L190
	add	DWORD PTR -100[rbp], 1
	jmp	.L190
.L189:
	nop
	jmp	.L180
.L190:
	nop
.L180:
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -84[rbp], eax
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR 32[rax]
	mov	DWORD PTR -96[rbp], eax
	mov	eax, DWORD PTR -84[rbp]
	and	eax, 15
	cmp	eax, 10
	jne	.L183
	mov	edi, 222
	call	o
	mov	eax, DWORD PTR -100[rbp]
	sal	eax, 3
	add	eax, 193
	mov	edi, eax
	call	o
	jmp	.L184
.L183:
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	mov	DWORD PTR -88[rbp], eax
	mov	eax, DWORD PTR -88[rbp]
	movzx	eax, al
	cmp	eax, 241
	jne	.L185
	mov	edi, 1
	call	get_reg
	mov	DWORD PTR -88[rbp], eax
	mov	DWORD PTR -80[rbp], 0
	mov	WORD PTR -64[rbp], 498
	mov	eax, DWORD PTR -96[rbp]
	mov	DWORD PTR -48[rbp], eax
	lea	rdx, -80[rbp]
	mov	eax, DWORD PTR -88[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	load
	mov	DWORD PTR -96[rbp], 0
.L185:
	mov	eax, DWORD PTR -84[rbp]
	and	eax, 15
	cmp	eax, 9
	jne	.L186
	mov	edi, 220
	call	o
	jmp	.L187
.L186:
	mov	edi, 216
	call	o
.L187:
	mov	rax, QWORD PTR vtop[rip]
	mov	rdx, QWORD PTR 48[rax]
	mov	ecx, DWORD PTR -96[rbp]
	mov	esi, DWORD PTR -88[rbp]
	mov	eax, DWORD PTR -100[rbp]
	mov	edi, eax
	call	gen_modrm
.L184:
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	QWORD PTR vtop[rip], rax
.L174:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L188
	call	__stack_chk_fail@PLT
.L188:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE26:
	.size	gen_opf, .-gen_opf
	.globl	gen_cvt_itof
	.type	gen_cvt_itof, @function
gen_cvt_itof:
.LFB27:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	edi, 3
	call	save_reg
	mov	edi, 1
	call	gv
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 12
	jne	.L192
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 18[rax]
	movzx	eax, ax
	add	eax, 80
	mov	edi, eax
	call	o
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	movzx	eax, al
	add	eax, 80
	mov	edi, eax
	call	o
	mov	edi, 2370783
	call	o
	mov	edi, 574595
	call	o
	jmp	.L193
.L192:
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	and	eax, 31
	cmp	eax, 16
	jne	.L194
	mov	edi, 106
	call	o
	mov	edi, 0
	call	g
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	movzx	eax, al
	add	eax, 80
	mov	edi, eax
	call	o
	mov	edi, 2370783
	call	o
	mov	edi, 574595
	call	o
	jmp	.L193
.L194:
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	movzx	eax, al
	add	eax, 80
	mov	edi, eax
	call	o
	mov	edi, 2360539
	call	o
	mov	edi, 312451
	call	o
.L193:
	mov	rax, QWORD PTR vtop[rip]
	mov	WORD PTR 16[rax], 3
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE27:
	.size	gen_cvt_itof, .-gen_cvt_itof
	.globl	gen_cvt_ftoi
	.type	gen_cvt_ftoi, @function
gen_cvt_ftoi:
.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, 80
	mov	DWORD PTR -68[rbp], edi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -32[rbp], 18
	mov	edi, 2
	call	gv
	cmp	DWORD PTR -68[rbp], 0
	je	.L196
	mov	DWORD PTR -52[rbp], 8
	jmp	.L197
.L196:
	mov	DWORD PTR -52[rbp], 4
.L197:
	mov	edi, 11737
	call	o
	lea	rax, -32[rbp]
	mov	edx, 256
	mov	rsi, rax
	mov	edi, 365
	call	external_global_sym
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR ind[rip]
	mov	rdx, rax
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	rsi, QWORD PTR -40[rbp]
	mov	ecx, 1
	mov	rdi, rax
	call	greloc
	mov	edi, 0
	call	gen_le32
	mov	eax, DWORD PTR -52[rbp]
	mov	esi, eax
	mov	edi, 60545
	call	oad
	cmp	DWORD PTR -52[rbp], 4
	jne	.L198
	mov	edi, 7387
	call	o
	jmp	.L199
.L198:
	mov	edi, 15583
	call	o
.L199:
	mov	edi, 36
	call	o
	mov	edi, 11737
	call	o
	lea	rax, -32[rbp]
	mov	edx, 256
	mov	rsi, rax
	mov	edi, 366
	call	external_global_sym
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR ind[rip]
	mov	rdx, rax
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	rsi, QWORD PTR -40[rbp]
	mov	ecx, 1
	mov	rdi, rax
	call	greloc
	mov	edi, 0
	call	gen_le32
	mov	edi, 1
	call	get_reg
	mov	DWORD PTR -48[rbp], eax
	mov	eax, DWORD PTR -48[rbp]
	add	eax, 88
	mov	edi, eax
	call	o
	cmp	DWORD PTR -52[rbp], 8
	jne	.L200
	cmp	DWORD PTR -68[rbp], 12
	jne	.L201
	mov	rax, QWORD PTR vtop[rip]
	mov	edx, DWORD PTR -48[rbp]
	mov	WORD PTR 16[rax], dx
	mov	edi, 1
	call	get_reg
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -44[rbp]
	add	eax, 88
	mov	edi, eax
	call	o
	mov	rax, QWORD PTR vtop[rip]
	mov	edx, DWORD PTR -44[rbp]
	mov	WORD PTR 18[rax], dx
	jmp	.L200
.L201:
	mov	edi, 312451
	call	o
.L200:
	mov	rax, QWORD PTR vtop[rip]
	mov	edx, DWORD PTR -48[rbp]
	mov	WORD PTR 16[rax], dx
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L202
	call	__stack_chk_fail@PLT
.L202:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE28:
	.size	gen_cvt_ftoi, .-gen_cvt_ftoi
	.globl	gen_cvt_ftof
	.type	gen_cvt_ftof, @function
gen_cvt_ftof:
.LFB29:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	edi, 2
	call	gv
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE29:
	.size	gen_cvt_ftof, .-gen_cvt_ftof
	.globl	ggoto
	.type	ggoto, @function
ggoto:
.LFB30:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	edi, 1
	call	gcall_or_jmp
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	QWORD PTR vtop[rip], rax
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE30:
	.size	ggoto, .-ggoto
	.globl	gen_bounded_ptr_add
	.type	gen_bounded_ptr_add, @function
gen_bounded_ptr_add:
.LFB31:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	esi, 32
	mov	edi, 4
	call	gv2
	mov	rax, QWORD PTR vtop[rip]
	add	rax, -128
	mov	QWORD PTR vtop[rip], rax
	mov	edi, 0
	call	save_regs
	mov	edx, 0
	lea	rsi, func_old_type[rip]
	mov	edi, 374
	call	external_global_sym
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR ind[rip]
	add	rax, 1
	mov	rdx, rax
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	rsi, QWORD PTR -8[rbp]
	mov	ecx, 2
	mov	rdi, rax
	call	greloc
	mov	esi, -4
	mov	edi, 232
	call	oad
	mov	rax, QWORD PTR vtop[rip]
	add	rax, 64
	mov	QWORD PTR vtop[rip], rax
	mov	rax, QWORD PTR vtop[rip]
	mov	WORD PTR 16[rax], -32768
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	rax, QWORD PTR 96[rax]
	mov	rax, QWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR vtop[rip]
	sub	edx, 8
	mov	DWORD PTR 32[rax], edx
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE31:
	.size	gen_bounded_ptr_add, .-gen_bounded_ptr_add
	.section	.rodata
	.align 8
.LC1:
	.string	"unhandled size when derefencing bounded pointer"
	.text
	.globl	gen_bounded_ptr_deref
	.type	gen_bounded_ptr_deref, @function
gen_bounded_ptr_deref:
.LFB32:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -28[rbp], 0
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	is_float
	test	eax, eax
	jne	.L207
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 4096
	test	eax, eax
	je	.L208
	mov	DWORD PTR -28[rbp], 1
	jmp	.L207
.L208:
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 8192
	test	eax, eax
	je	.L207
	mov	DWORD PTR -28[rbp], 2
.L207:
	cmp	DWORD PTR -28[rbp], 0
	jne	.L209
	mov	rax, QWORD PTR vtop[rip]
	mov	rdx, rax
	lea	rax, -36[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	type_size
	mov	DWORD PTR -28[rbp], eax
.L209:
	cmp	DWORD PTR -28[rbp], 16
	ja	.L210
	mov	eax, DWORD PTR -28[rbp]
	lea	rdx, 0[0+rax*4]
	lea	rax, .L212[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L212[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L212:
	.long	.L210-.L212
	.long	.L217-.L212
	.long	.L216-.L212
	.long	.L210-.L212
	.long	.L215-.L212
	.long	.L210-.L212
	.long	.L210-.L212
	.long	.L210-.L212
	.long	.L214-.L212
	.long	.L210-.L212
	.long	.L210-.L212
	.long	.L210-.L212
	.long	.L213-.L212
	.long	.L210-.L212
	.long	.L210-.L212
	.long	.L210-.L212
	.long	.L211-.L212
	.text
.L217:
	mov	DWORD PTR -32[rbp], 375
	jmp	.L218
.L216:
	mov	DWORD PTR -32[rbp], 376
	jmp	.L218
.L215:
	mov	DWORD PTR -32[rbp], 377
	jmp	.L218
.L214:
	mov	DWORD PTR -32[rbp], 378
	jmp	.L218
.L213:
	mov	DWORD PTR -32[rbp], 379
	jmp	.L218
.L211:
	mov	DWORD PTR -32[rbp], 380
	jmp	.L218
.L210:
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	error
	mov	DWORD PTR -32[rbp], 0
	nop
.L218:
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	rax, QWORD PTR 96[rax]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR 32[rax]
	mov	eax, eax
	add	rax, rdx
	mov	QWORD PTR -24[rbp], rax
	mov	eax, DWORD PTR -32[rbp]
	mov	edx, 0
	lea	rsi, func_old_type[rip]
	mov	edi, eax
	call	external_global_sym
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	jne	.L219
	mov	rax, QWORD PTR -16[rbp]
	mov	ecx, 0
	mov	edx, 0
	mov	esi, 0
	mov	rdi, rax
	call	put_extern_sym
.L219:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 16[rax]
	sal	eax, 8
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	movzx	eax, al
	add	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 4[rax], edx
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L220
	call	__stack_chk_fail@PLT
.L220:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE32:
	.size	gen_bounded_ptr_deref, .-gen_bounded_ptr_deref
	.section	.rodata
.LC2:
	.string	"the_stack_data/1087615.c"
.LC3:
	.string	"0"
	.text
	.globl	resolve_sym
	.type	resolve_sym, @function
resolve_sym:
.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 -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	DWORD PTR -20[rbp], edx
	lea	rcx, __PRETTY_FUNCTION__.4[rip]
	mov	edx, 6631
	lea	rsi, .LC2[rip]
	lea	rdi, .LC3[rip]
	call	__assert_fail@PLT
	.cfi_endproc
.LFE33:
	.size	resolve_sym, .-resolve_sym
	.globl	ieee_finite
	.type	ieee_finite, @function
ieee_finite:
.LFB34:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	movsd	QWORD PTR -24[rbp], xmm0
	lea	rax, -24[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	or	eax, -2146435073
	add	eax, 1
	shr	eax, 31
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE34:
	.size	ieee_finite, .-ieee_finite
	.type	pstrcpy, @function
pstrcpy:
.LFB35:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	QWORD PTR -56[rbp], rdx
	cmp	DWORD PTR -44[rbp], 0
	jle	.L225
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	jmp	.L226
.L229:
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -56[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -20[rbp], eax
	cmp	DWORD PTR -20[rbp], 0
	je	.L231
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	mov	edx, DWORD PTR -20[rbp]
	mov	BYTE PTR [rax], dl
.L226:
	mov	rax, QWORD PTR -16[rbp]
	cmp	rax, QWORD PTR -8[rbp]
	jb	.L229
	jmp	.L228
.L231:
	nop
.L228:
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR [rax], 0
.L225:
	mov	rax, QWORD PTR -40[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE35:
	.size	pstrcpy, .-pstrcpy
	.type	pstrcat, @function
pstrcat:
.LFB36:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	jge	.L233
	mov	eax, DWORD PTR -28[rbp]
	sub	eax, DWORD PTR -4[rbp]
	mov	edx, DWORD PTR -4[rbp]
	movsx	rcx, edx
	mov	rdx, QWORD PTR -24[rbp]
	add	rcx, rdx
	mov	rdx, QWORD PTR -40[rbp]
	mov	esi, eax
	mov	rdi, rcx
	call	pstrcpy
.L233:
	mov	rax, QWORD PTR -24[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE36:
	.size	pstrcat, .-pstrcat
	.type	strstart, @function
strstart:
.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	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L236
.L239:
	mov	rax, QWORD PTR -16[rbp]
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	dl, al
	je	.L237
	mov	eax, 0
	jmp	.L238
.L237:
	add	QWORD PTR -16[rbp], 1
	add	QWORD PTR -8[rbp], 1
.L236:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L239
	cmp	QWORD PTR -40[rbp], 0
	je	.L240
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR [rax], rdx
.L240:
	mov	eax, 1
.L238:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE37:
	.size	strstart, .-strstart
	.type	tcc_free, @function
tcc_free:
.LFB38:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	free@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE38:
	.size	tcc_free, .-tcc_free
	.section	.rodata
.LC4:
	.string	"memory full"
	.text
	.type	tcc_malloc, @function
tcc_malloc:
.LFB39:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L243
	cmp	QWORD PTR -24[rbp], 0
	je	.L243
	lea	rdi, .LC4[rip]
	mov	eax, 0
	call	error
.L243:
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE39:
	.size	tcc_malloc, .-tcc_malloc
	.type	tcc_mallocz, @function
tcc_mallocz:
.LFB40:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	tcc_malloc
	mov	QWORD PTR -8[rbp], rax
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE40:
	.size	tcc_mallocz, .-tcc_mallocz
	.type	tcc_realloc, @function
tcc_realloc:
.LFB41:
	.cfi_startproc
	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	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	realloc@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE41:
	.size	tcc_realloc, .-tcc_realloc
	.type	tcc_strdup, @function
tcc_strdup:
.LFB42:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	strlen@PLT
	add	rax, 1
	mov	rdi, rax
	call	tcc_malloc
	mov	QWORD PTR -8[rbp], rax
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcpy@PLT
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE42:
	.size	tcc_strdup, .-tcc_strdup
	.type	dynarray_add, @function
dynarray_add:
.LFB43:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -12[rbp]
	sub	eax, 1
	and	eax, DWORD PTR -12[rbp]
	test	eax, eax
	jne	.L252
	cmp	DWORD PTR -12[rbp], 0
	jne	.L253
	mov	DWORD PTR -16[rbp], 1
	jmp	.L254
.L253:
	mov	eax, DWORD PTR -12[rbp]
	add	eax, eax
	mov	DWORD PTR -16[rbp], eax
.L254:
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	tcc_realloc
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L255
	lea	rdi, .LC4[rip]
	mov	eax, 0
	call	error
.L255:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
.L252:
	mov	eax, DWORD PTR -12[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -12[rbp], edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -8[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	DWORD PTR [rax], edx
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE43:
	.size	dynarray_add, .-dynarray_add
	.type	__sym_malloc, @function
__sym_malloc:
.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, 32
	mov	edi, 8192
	call	tcc_malloc
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR sym_free_first[rip]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR -24[rbp], rax
	mov	DWORD PTR -28[rbp], 0
	jmp	.L257
.L258:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -16[rbp], rax
	add	QWORD PTR -24[rbp], 64
	add	DWORD PTR -28[rbp], 1
.L257:
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, 127
	jbe	.L258
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR sym_free_first[rip], rax
	mov	rax, QWORD PTR -16[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE44:
	.size	__sym_malloc, .-__sym_malloc
	.type	sym_malloc, @function
sym_malloc:
.LFB45:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	rax, QWORD PTR sym_free_first[rip]
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L261
	call	__sym_malloc
	mov	QWORD PTR -8[rbp], rax
.L261:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	QWORD PTR sym_free_first[rip], rax
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE45:
	.size	sym_malloc, .-sym_malloc
	.type	sym_free, @function
sym_free:
.LFB46:
	.cfi_startproc
	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	rdx, QWORD PTR sym_free_first[rip]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR sym_free_first[rip], rax
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE46:
	.size	sym_free, .-sym_free
	.globl	new_section
	.type	new_section, @function
new_section:
.LFB47:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -36[rbp], edx
	mov	DWORD PTR -40[rbp], ecx
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	strlen@PLT
	sub	rax, -128
	mov	rdi, rax
	call	tcc_mallocz
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 120[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	strcpy@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -36[rbp]
	mov	DWORD PTR 32[rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -40[rbp]
	mov	DWORD PTR 36[rax], edx
	cmp	DWORD PTR -36[rbp], 11
	ja	.L265
	mov	eax, DWORD PTR -36[rbp]
	lea	rdx, 0[0+rax*4]
	lea	rax, .L267[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L267[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L267:
	.long	.L265-.L267
	.long	.L265-.L267
	.long	.L266-.L267
	.long	.L268-.L267
	.long	.L265-.L267
	.long	.L266-.L267
	.long	.L266-.L267
	.long	.L265-.L267
	.long	.L265-.L267
	.long	.L266-.L267
	.long	.L265-.L267
	.long	.L266-.L267
	.text
.L266:
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 44[rax], 4
	jmp	.L269
.L268:
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 44[rax], 1
	jmp	.L269
.L265:
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 44[rax], 32
	nop
.L269:
	cmp	DWORD PTR -40[rbp], 0
	js	.L270
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 112[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 28[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, 112[rax]
	mov	rax, QWORD PTR -24[rbp]
	lea	rcx, 104[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, rax
	mov	rdi, rcx
	call	dynarray_add
.L270:
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE47:
	.size	new_section, .-new_section
	.type	free_section, @function
free_section:
.LFB48:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdi, rax
	call	tcc_free
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	tcc_free
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE48:
	.size	free_section, .-free_section
	.type	section_realloc, @function
section_realloc:
.LFB49:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jne	.L275
	mov	QWORD PTR -16[rbp], 1
	jmp	.L275
.L276:
	sal	QWORD PTR -16[rbp]
.L275:
	mov	rax, QWORD PTR -16[rbp]
	cmp	rax, QWORD PTR -32[rbp]
	jb	.L276
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdx, QWORD PTR -16[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	tcc_realloc
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L277
	lea	rdi, .LC4[rip]
	mov	eax, 0
	call	error
.L277:
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rcx
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 16[rax], rdx
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE49:
	.size	section_realloc, .-section_realloc
	.type	section_ptr_add, @function
section_ptr_add:
.LFB50:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 16[rax]
	cmp	QWORD PTR -8[rbp], rax
	jbe	.L279
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	section_realloc
.L279:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE50:
	.size	section_ptr_add, .-section_ptr_add
	.globl	find_section
	.type	find_section, @function
find_section:
.LFB51:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -12[rbp], 1
	jmp	.L282
.L285:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 104[rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 120[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L283
	mov	rax, QWORD PTR -8[rbp]
	jmp	.L284
.L283:
	add	DWORD PTR -12[rbp], 1
.L282:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 112[rax]
	cmp	DWORD PTR -12[rbp], eax
	jl	.L285
	mov	rsi, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	ecx, 2
	mov	edx, 1
	mov	rdi, rax
	call	new_section
.L284:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE51:
	.size	find_section, .-find_section
	.type	put_extern_sym2, @function
put_extern_sym2:
.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, 352
	mov	QWORD PTR -312[rbp], rdi
	mov	QWORD PTR -320[rbp], rsi
	mov	QWORD PTR -328[rbp], rdx
	mov	QWORD PTR -336[rbp], rcx
	mov	DWORD PTR -340[rbp], r8d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	cmp	QWORD PTR -320[rbp], 0
	jne	.L287
	mov	DWORD PTR -296[rbp], 0
	jmp	.L288
.L287:
	cmp	QWORD PTR -320[rbp], 1
	jne	.L289
	mov	DWORD PTR -296[rbp], 65521
	jmp	.L288
.L289:
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR 28[rax]
	mov	DWORD PTR -296[rbp], eax
.L288:
	mov	rax, QWORD PTR -312[rbp]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	jne	.L290
	mov	rax, QWORD PTR -312[rbp]
	mov	eax, DWORD PTR 24[rax]
	and	eax, 15
	cmp	eax, 6
	jne	.L291
	mov	DWORD PTR -304[rbp], 2
	jmp	.L292
.L291:
	mov	DWORD PTR -304[rbp], 1
.L292:
	mov	rax, QWORD PTR -312[rbp]
	mov	eax, DWORD PTR 24[rax]
	and	eax, 256
	test	eax, eax
	je	.L293
	mov	DWORD PTR -300[rbp], 0
	jmp	.L294
.L293:
	mov	DWORD PTR -300[rbp], 1
.L294:
	mov	rax, QWORD PTR -312[rbp]
	mov	rax, QWORD PTR [rax]
	mov	esi, 0
	mov	edi, eax
	call	get_tok_str
	mov	QWORD PTR -288[rbp], rax
	mov	eax, DWORD PTR do_bounds_check[rip]
	test	eax, eax
	je	.L295
	mov	rax, QWORD PTR -312[rbp]
	mov	rax, QWORD PTR [rax]
	cmp	rax, 356
	jg	.L296
	cmp	rax, 355
	jge	.L297
	jmp	.L295
.L296:
	sub	rax, 388
	cmp	rax, 2
	ja	.L295
.L297:
	lea	rax, -272[rbp]
	movabs	rcx, 6873740381933166431
	mov	QWORD PTR [rax], rcx
	mov	BYTE PTR 8[rax], 0
	mov	rdx, QWORD PTR -288[rbp]
	lea	rax, -272[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcat@PLT
	lea	rax, -272[rbp]
	mov	QWORD PTR -288[rbp], rax
	nop
.L295:
	mov	rax, QWORD PTR tcc_state[rip]
	mov	eax, DWORD PTR 220[rax]
	test	eax, eax
	je	.L299
	cmp	DWORD PTR -340[rbp], 0
	je	.L299
	mov	BYTE PTR -272[rbp], 95
	lea	rax, -272[rbp]
	add	rax, 1
	mov	rdx, QWORD PTR -288[rbp]
	mov	esi, 255
	mov	rdi, rax
	call	pstrcpy
	lea	rax, -272[rbp]
	mov	QWORD PTR -288[rbp], rax
.L299:
	mov	eax, DWORD PTR -300[rbp]
	sal	eax, 4
	mov	edx, eax
	mov	eax, DWORD PTR -304[rbp]
	and	eax, 15
	add	eax, edx
	mov	DWORD PTR -292[rbp], eax
	mov	rax, QWORD PTR symtab_section[rip]
	mov	edi, DWORD PTR -296[rbp]
	mov	ecx, DWORD PTR -292[rbp]
	mov	rdx, QWORD PTR -336[rbp]
	mov	rsi, QWORD PTR -328[rbp]
	sub	rsp, 8
	push	QWORD PTR -288[rbp]
	mov	r9d, edi
	mov	r8d, 0
	mov	rdi, rax
	call	add_elf_sym
	add	rsp, 16
	movsx	rdx, eax
	mov	rax, QWORD PTR -312[rbp]
	mov	QWORD PTR 16[rax], rdx
	jmp	.L302
.L290:
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -312[rbp]
	mov	rax, QWORD PTR 16[rax]
	sal	rax, 4
	add	rax, rdx
	mov	QWORD PTR -280[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -280[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -336[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -280[rbp]
	mov	DWORD PTR 8[rax], edx
	mov	eax, DWORD PTR -296[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -280[rbp]
	mov	WORD PTR 14[rax], dx
.L302:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L301
	call	__stack_chk_fail@PLT
.L301:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE52:
	.size	put_extern_sym2, .-put_extern_sym2
	.type	put_extern_sym, @function
put_extern_sym:
.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 -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	QWORD PTR -32[rbp], rcx
	mov	rcx, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rsi, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	r8d, 1
	mov	rdi, rax
	call	put_extern_sym2
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE53:
	.size	put_extern_sym, .-put_extern_sym
	.type	greloc, @function
greloc:
.LFB54:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	DWORD PTR -28[rbp], ecx
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	jne	.L305
	mov	rax, QWORD PTR -16[rbp]
	mov	ecx, 0
	mov	edx, 0
	mov	esi, 0
	mov	rdi, rax
	call	put_extern_sym
.L305:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	edi, eax
	mov	rax, QWORD PTR symtab_section[rip]
	mov	ecx, DWORD PTR -28[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rsi, QWORD PTR -8[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	put_elf_reloc
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE54:
	.size	greloc, .-greloc
	.type	isid, @function
isid:
.LFB55:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -4[rbp], edi
	cmp	DWORD PTR -4[rbp], 96
	jle	.L307
	cmp	DWORD PTR -4[rbp], 122
	jle	.L308
.L307:
	cmp	DWORD PTR -4[rbp], 64
	jle	.L309
	cmp	DWORD PTR -4[rbp], 90
	jle	.L308
.L309:
	cmp	DWORD PTR -4[rbp], 95
	jne	.L310
.L308:
	mov	eax, 1
	jmp	.L312
.L310:
	mov	eax, 0
.L312:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE55:
	.size	isid, .-isid
	.type	isnum, @function
isnum:
.LFB56:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -4[rbp], edi
	cmp	DWORD PTR -4[rbp], 47
	jle	.L314
	cmp	DWORD PTR -4[rbp], 57
	jg	.L314
	mov	eax, 1
	jmp	.L316
.L314:
	mov	eax, 0
.L316:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE56:
	.size	isnum, .-isnum
	.type	isoct, @function
isoct:
.LFB57:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -4[rbp], edi
	cmp	DWORD PTR -4[rbp], 47
	jle	.L318
	cmp	DWORD PTR -4[rbp], 55
	jg	.L318
	mov	eax, 1
	jmp	.L320
.L318:
	mov	eax, 0
.L320:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE57:
	.size	isoct, .-isoct
	.type	toup, @function
toup:
.LFB58:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -4[rbp], edi
	cmp	DWORD PTR -4[rbp], 96
	jle	.L322
	cmp	DWORD PTR -4[rbp], 122
	jg	.L322
	mov	eax, DWORD PTR -4[rbp]
	sub	eax, 32
	jmp	.L323
.L322:
	mov	eax, DWORD PTR -4[rbp]
.L323:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE58:
	.size	toup, .-toup
	.type	strcat_vprintf, @function
strcat_vprintf:
.LFB59:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -48[rbp], rcx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	sub	eax, DWORD PTR -4[rbp]
	cdqe
	mov	edx, DWORD PTR -4[rbp]
	movsx	rcx, edx
	mov	rdx, QWORD PTR -24[rbp]
	lea	rdi, [rcx+rdx]
	mov	rcx, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, rax
	call	vsnprintf@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE59:
	.size	strcat_vprintf, .-strcat_vprintf
	.type	strcat_printf, @function
strcat_printf:
.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, 240
	mov	QWORD PTR -216[rbp], rdi
	mov	DWORD PTR -220[rbp], esi
	mov	QWORD PTR -232[rbp], rdx
	mov	QWORD PTR -152[rbp], rcx
	mov	QWORD PTR -144[rbp], r8
	mov	QWORD PTR -136[rbp], r9
	test	al, al
	je	.L326
	movaps	XMMWORD PTR -128[rbp], xmm0
	movaps	XMMWORD PTR -112[rbp], xmm1
	movaps	XMMWORD PTR -96[rbp], xmm2
	movaps	XMMWORD PTR -80[rbp], xmm3
	movaps	XMMWORD PTR -64[rbp], xmm4
	movaps	XMMWORD PTR -48[rbp], xmm5
	movaps	XMMWORD PTR -32[rbp], xmm6
	movaps	XMMWORD PTR -16[rbp], xmm7
.L326:
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -184[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -208[rbp], 24
	mov	DWORD PTR -204[rbp], 48
	lea	rax, 16[rbp]
	mov	QWORD PTR -200[rbp], rax
	lea	rax, -176[rbp]
	mov	QWORD PTR -192[rbp], rax
	lea	rcx, -208[rbp]
	mov	rdx, QWORD PTR -232[rbp]
	mov	esi, DWORD PTR -220[rbp]
	mov	rax, QWORD PTR -216[rbp]
	mov	rdi, rax
	call	strcat_vprintf
	nop
	mov	rax, QWORD PTR -184[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L327
	call	__stack_chk_fail@PLT
.L327:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE60:
	.size	strcat_printf, .-strcat_printf
	.section	.rodata
.LC5:
	.string	"In file included from %s:%d:\n"
.LC6:
	.string	"%s:%d: "
.LC7:
	.string	"%s: "
.LC8:
	.string	"tcc: "
.LC9:
	.string	"warning: "
.LC10:
	.string	"%s\n"
	.text
	.globl	error1
	.type	error1, @function
error1:
.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, 2112
	mov	QWORD PTR -2088[rbp], rdi
	mov	DWORD PTR -2092[rbp], esi
	mov	QWORD PTR -2104[rbp], rdx
	mov	QWORD PTR -2112[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	BYTE PTR -2064[rbp], 0
	mov	rax, QWORD PTR file[rip]
	test	rax, rax
	je	.L329
	mov	rax, QWORD PTR -2088[rbp]
	add	rax, 488
	mov	QWORD PTR -2072[rbp], rax
	jmp	.L330
.L331:
	mov	rax, QWORD PTR -2072[rbp]
	mov	rax, QWORD PTR [rax]
	mov	ecx, DWORD PTR 20[rax]
	mov	rax, QWORD PTR -2072[rbp]
	mov	rax, QWORD PTR [rax]
	lea	rdx, 553[rax]
	lea	rax, -2064[rbp]
	mov	r8d, ecx
	mov	rcx, rdx
	lea	rdx, .LC5[rip]
	mov	esi, 2048
	mov	rdi, rax
	mov	eax, 0
	call	strcat_printf
	add	QWORD PTR -2072[rbp], 8
.L330:
	mov	rax, QWORD PTR -2088[rbp]
	mov	rax, QWORD PTR 8[rax]
	cmp	QWORD PTR -2072[rbp], rax
	jb	.L331
	mov	rax, QWORD PTR file[rip]
	mov	eax, DWORD PTR 20[rax]
	test	eax, eax
	jle	.L332
	mov	rax, QWORD PTR file[rip]
	mov	ecx, DWORD PTR 20[rax]
	mov	rax, QWORD PTR file[rip]
	lea	rdx, 553[rax]
	lea	rax, -2064[rbp]
	mov	r8d, ecx
	mov	rcx, rdx
	lea	rdx, .LC6[rip]
	mov	esi, 2048
	mov	rdi, rax
	mov	eax, 0
	call	strcat_printf
	jmp	.L333
.L332:
	mov	rax, QWORD PTR file[rip]
	lea	rdx, 553[rax]
	lea	rax, -2064[rbp]
	mov	rcx, rdx
	lea	rdx, .LC7[rip]
	mov	esi, 2048
	mov	rdi, rax
	mov	eax, 0
	call	strcat_printf
	jmp	.L333
.L329:
	lea	rax, -2064[rbp]
	lea	rdx, .LC8[rip]
	mov	esi, 2048
	mov	rdi, rax
	mov	eax, 0
	call	strcat_printf
.L333:
	cmp	DWORD PTR -2092[rbp], 0
	je	.L334
	lea	rax, -2064[rbp]
	lea	rdx, .LC9[rip]
	mov	esi, 2048
	mov	rdi, rax
	mov	eax, 0
	call	strcat_printf
.L334:
	mov	rcx, QWORD PTR -2112[rbp]
	mov	rdx, QWORD PTR -2104[rbp]
	lea	rax, -2064[rbp]
	mov	esi, 2048
	mov	rdi, rax
	call	strcat_vprintf
	mov	rax, QWORD PTR -2088[rbp]
	mov	rax, QWORD PTR 256[rax]
	test	rax, rax
	jne	.L335
	mov	rax, QWORD PTR stderr[rip]
	lea	rdx, -2064[rbp]
	lea	rsi, .LC10[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	jmp	.L336
.L335:
	mov	rax, QWORD PTR -2088[rbp]
	mov	rcx, QWORD PTR 256[rax]
	mov	rax, QWORD PTR -2088[rbp]
	mov	rax, QWORD PTR 248[rax]
	lea	rdx, -2064[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
.L336:
	cmp	DWORD PTR -2092[rbp], 0
	je	.L337
	mov	rax, QWORD PTR -2088[rbp]
	mov	eax, DWORD PTR 232[rax]
	test	eax, eax
	je	.L340
.L337:
	mov	rax, QWORD PTR -2088[rbp]
	mov	eax, DWORD PTR 472[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -2088[rbp]
	mov	DWORD PTR 472[rax], edx
.L340:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L339
	call	__stack_chk_fail@PLT
.L339:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE61:
	.size	error1, .-error1
	.globl	error_noabort
	.type	error_noabort, @function
error_noabort:
.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, 240
	mov	QWORD PTR -232[rbp], rdi
	mov	QWORD PTR -168[rbp], rsi
	mov	QWORD PTR -160[rbp], rdx
	mov	QWORD PTR -152[rbp], rcx
	mov	QWORD PTR -144[rbp], r8
	mov	QWORD PTR -136[rbp], r9
	test	al, al
	je	.L342
	movaps	XMMWORD PTR -128[rbp], xmm0
	movaps	XMMWORD PTR -112[rbp], xmm1
	movaps	XMMWORD PTR -96[rbp], xmm2
	movaps	XMMWORD PTR -80[rbp], xmm3
	movaps	XMMWORD PTR -64[rbp], xmm4
	movaps	XMMWORD PTR -48[rbp], xmm5
	movaps	XMMWORD PTR -32[rbp], xmm6
	movaps	XMMWORD PTR -16[rbp], xmm7
.L342:
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -184[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR tcc_state[rip]
	mov	QWORD PTR -216[rbp], rax
	mov	DWORD PTR -208[rbp], 8
	mov	DWORD PTR -204[rbp], 48
	lea	rax, 16[rbp]
	mov	QWORD PTR -200[rbp], rax
	lea	rax, -176[rbp]
	mov	QWORD PTR -192[rbp], rax
	lea	rcx, -208[rbp]
	mov	rdx, QWORD PTR -232[rbp]
	mov	rax, QWORD PTR -216[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	error1
	nop
	mov	rax, QWORD PTR -184[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L343
	call	__stack_chk_fail@PLT
.L343:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE62:
	.size	error_noabort, .-error_noabort
	.globl	error
	.type	error, @function
error:
.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, 240
	mov	QWORD PTR -232[rbp], rdi
	mov	QWORD PTR -168[rbp], rsi
	mov	QWORD PTR -160[rbp], rdx
	mov	QWORD PTR -152[rbp], rcx
	mov	QWORD PTR -144[rbp], r8
	mov	QWORD PTR -136[rbp], r9
	test	al, al
	je	.L345
	movaps	XMMWORD PTR -128[rbp], xmm0
	movaps	XMMWORD PTR -112[rbp], xmm1
	movaps	XMMWORD PTR -96[rbp], xmm2
	movaps	XMMWORD PTR -80[rbp], xmm3
	movaps	XMMWORD PTR -64[rbp], xmm4
	movaps	XMMWORD PTR -48[rbp], xmm5
	movaps	XMMWORD PTR -32[rbp], xmm6
	movaps	XMMWORD PTR -16[rbp], xmm7
.L345:
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -184[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR tcc_state[rip]
	mov	QWORD PTR -216[rbp], rax
	mov	DWORD PTR -208[rbp], 8
	mov	DWORD PTR -204[rbp], 48
	lea	rax, 16[rbp]
	mov	QWORD PTR -200[rbp], rax
	lea	rax, -176[rbp]
	mov	QWORD PTR -192[rbp], rax
	lea	rcx, -208[rbp]
	mov	rdx, QWORD PTR -232[rbp]
	mov	rax, QWORD PTR -216[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	error1
	mov	rax, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR 264[rax]
	test	eax, eax
	je	.L346
	mov	rax, QWORD PTR -216[rbp]
	add	rax, 272
	mov	esi, 1
	mov	rdi, rax
	call	longjmp@PLT
.L346:
	mov	edi, 1
	call	exit@PLT
	.cfi_endproc
.LFE63:
	.size	error, .-error
	.section	.rodata
.LC11:
	.string	"%s expected"
	.text
	.globl	expect
	.type	expect, @function
expect:
.LFB64:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rax
	lea	rdi, .LC11[rip]
	mov	eax, 0
	call	error
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE64:
	.size	expect, .-expect
	.globl	warning
	.type	warning, @function
warning:
.LFB65:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 240
	mov	QWORD PTR -232[rbp], rdi
	mov	QWORD PTR -168[rbp], rsi
	mov	QWORD PTR -160[rbp], rdx
	mov	QWORD PTR -152[rbp], rcx
	mov	QWORD PTR -144[rbp], r8
	mov	QWORD PTR -136[rbp], r9
	test	al, al
	je	.L350
	movaps	XMMWORD PTR -128[rbp], xmm0
	movaps	XMMWORD PTR -112[rbp], xmm1
	movaps	XMMWORD PTR -96[rbp], xmm2
	movaps	XMMWORD PTR -80[rbp], xmm3
	movaps	XMMWORD PTR -64[rbp], xmm4
	movaps	XMMWORD PTR -48[rbp], xmm5
	movaps	XMMWORD PTR -32[rbp], xmm6
	movaps	XMMWORD PTR -16[rbp], xmm7
.L350:
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -184[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR tcc_state[rip]
	mov	QWORD PTR -216[rbp], rax
	mov	rax, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR 236[rax]
	test	eax, eax
	jne	.L354
	mov	DWORD PTR -208[rbp], 8
	mov	DWORD PTR -204[rbp], 48
	lea	rax, 16[rbp]
	mov	QWORD PTR -200[rbp], rax
	lea	rax, -176[rbp]
	mov	QWORD PTR -192[rbp], rax
	lea	rcx, -208[rbp]
	mov	rdx, QWORD PTR -232[rbp]
	mov	rax, QWORD PTR -216[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	error1
	jmp	.L349
.L354:
	nop
.L349:
	mov	rax, QWORD PTR -184[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L353
	call	__stack_chk_fail@PLT
.L353:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE65:
	.size	warning, .-warning
	.section	.rodata
.LC12:
	.string	"'%c' expected"
	.text
	.globl	skip
	.type	skip, @function
skip:
.LFB66:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	eax, DWORD PTR tok[rip]
	cmp	DWORD PTR -4[rbp], eax
	je	.L356
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, eax
	lea	rdi, .LC12[rip]
	mov	eax, 0
	call	error
.L356:
	call	next
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE66:
	.size	skip, .-skip
	.section	.rodata
.LC13:
	.string	"lvalue"
	.text
	.type	test_lvalue, @function
test_lvalue:
.LFB67:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 256
	test	eax, eax
	jne	.L359
	lea	rdi, .LC13[rip]
	call	expect
.L359:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE67:
	.size	test_lvalue, .-test_lvalue
	.type	tok_alloc_new, @function
tok_alloc_new:
.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 -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	DWORD PTR -52[rbp], edx
	mov	eax, DWORD PTR tok_ident[rip]
	cmp	eax, 268435455
	jle	.L361
	lea	rdi, .LC4[rip]
	mov	eax, 0
	call	error
.L361:
	mov	eax, DWORD PTR tok_ident[rip]
	sub	eax, 256
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	and	eax, 511
	test	eax, eax
	jne	.L362
	mov	eax, DWORD PTR -20[rbp]
	add	eax, 512
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR table_ident[rip]
	mov	rsi, rdx
	mov	rdi, rax
	call	tcc_realloc
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jne	.L363
	lea	rdi, .LC4[rip]
	mov	eax, 0
	call	error
.L363:
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR table_ident[rip], rax
.L362:
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	add	rax, 56
	mov	rdi, rax
	call	tcc_malloc
	mov	QWORD PTR -8[rbp], rax
	mov	rdx, QWORD PTR table_ident[rip]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 3
	add	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR [rdx], rax
	mov	eax, DWORD PTR tok_ident[rip]
	lea	edx, 1[rax]
	mov	DWORD PTR tok_ident[rip], edx
	mov	rdx, QWORD PTR -8[rbp]
	mov	DWORD PTR 40[rdx], eax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 16[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 24[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 32[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -52[rbp]
	mov	DWORD PTR 44[rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], 0
	mov	eax, DWORD PTR -52[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rcx, 48[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	call	memcpy@PLT
	mov	rdx, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	mov	BYTE PTR 48[rdx+rax], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE68:
	.size	tok_alloc_new, .-tok_alloc_new
	.type	tok_alloc, @function
tok_alloc:
.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, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	DWORD PTR -20[rbp], 1
	mov	DWORD PTR -24[rbp], 0
	jmp	.L366
.L367:
	mov	eax, DWORD PTR -20[rbp]
	imul	edx, eax, 263
	mov	eax, DWORD PTR -24[rbp]
	movsx	rcx, eax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	eax, edx
	mov	DWORD PTR -20[rbp], eax
	add	DWORD PTR -24[rbp], 1
.L366:
	mov	eax, DWORD PTR -24[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jl	.L367
	and	DWORD PTR -20[rbp], 8191
	mov	eax, DWORD PTR -20[rbp]
	lea	rdx, 0[0+rax*8]
	lea	rax, hash_ident[rip]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
.L372:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	je	.L374
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 44[rax]
	cmp	DWORD PTR -44[rbp], eax
	jne	.L370
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rcx, 48[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	call	memcmp@PLT
	test	eax, eax
	jne	.L370
	mov	rax, QWORD PTR -8[rbp]
	jmp	.L371
.L370:
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR -16[rbp], rax
	jmp	.L372
.L374:
	nop
	mov	edx, DWORD PTR -44[rbp]
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -16[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	tok_alloc_new
.L371:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE69:
	.size	tok_alloc, .-tok_alloc
	.type	cstr_realloc, @function
cstr_realloc:
.LFB70:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 16[rax]
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 0
	jne	.L377
	mov	DWORD PTR -12[rbp], 8
	jmp	.L377
.L378:
	sal	DWORD PTR -12[rbp]
.L377:
	mov	eax, DWORD PTR -12[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	jl	.L378
	mov	eax, DWORD PTR -12[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	tcc_realloc
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L379
	lea	rdi, .LC4[rip]
	mov	eax, 0
	call	error
.L379:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	DWORD PTR 16[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], rdx
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE70:
	.size	cstr_realloc, .-cstr_realloc
	.type	cstr_ccat, @function
cstr_ccat:
.LFB71:
	.cfi_startproc
	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	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, 1
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	DWORD PTR -4[rbp], eax
	jle	.L381
	mov	edx, DWORD PTR -4[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	cstr_realloc
.L381:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sub	rax, 1
	add	rax, rdx
	mov	edx, DWORD PTR -28[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -4[rbp]
	mov	DWORD PTR [rax], edx
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE71:
	.size	cstr_ccat, .-cstr_ccat
	.type	cstr_cat, @function
cstr_cat:
.LFB72:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
.L385:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	je	.L387
	mov	edx, DWORD PTR -4[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	cstr_ccat
	add	QWORD PTR -32[rbp], 1
	jmp	.L385
.L387:
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE72:
	.size	cstr_cat, .-cstr_cat
	.type	cstr_wccat, @function
cstr_wccat:
.LFB73:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, 4
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	DWORD PTR -4[rbp], eax
	jle	.L389
	mov	edx, DWORD PTR -4[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	cstr_realloc
.L389:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sub	rax, 4
	add	rdx, rax
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -4[rbp]
	mov	DWORD PTR [rax], edx
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE73:
	.size	cstr_wccat, .-cstr_wccat
	.type	cstr_new, @function
cstr_new:
.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	rax, QWORD PTR -8[rbp]
	mov	edx, 32
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE74:
	.size	cstr_new, .-cstr_new
	.type	cstr_free, @function
cstr_free:
.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, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdi, rax
	call	tcc_free
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	cstr_new
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE75:
	.size	cstr_free, .-cstr_free
	.type	add_char, @function
add_char:
.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	DWORD PTR -12[rbp], esi
	cmp	DWORD PTR -12[rbp], 39
	je	.L393
	cmp	DWORD PTR -12[rbp], 34
	je	.L393
	cmp	DWORD PTR -12[rbp], 92
	jne	.L394
.L393:
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, 92
	mov	rdi, rax
	call	cstr_ccat
.L394:
	cmp	DWORD PTR -12[rbp], 31
	jle	.L395
	cmp	DWORD PTR -12[rbp], 126
	jg	.L395
	mov	edx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	cstr_ccat
	jmp	.L398
.L395:
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, 92
	mov	rdi, rax
	call	cstr_ccat
	cmp	DWORD PTR -12[rbp], 10
	jne	.L397
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, 110
	mov	rdi, rax
	call	cstr_ccat
	jmp	.L398
.L397:
	mov	eax, DWORD PTR -12[rbp]
	sar	eax, 6
	and	eax, 7
	lea	edx, 48[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	cstr_ccat
	mov	eax, DWORD PTR -12[rbp]
	sar	eax, 3
	and	eax, 7
	lea	edx, 48[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	cstr_ccat
	mov	eax, DWORD PTR -12[rbp]
	and	eax, 7
	lea	edx, 48[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	cstr_ccat
.L398:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE76:
	.size	add_char, .-add_char
	.section	.rodata
.LC14:
	.string	"%u"
.LC15:
	.string	"%llu"
.LC16:
	.string	"L.%u"
	.text
	.globl	get_tok_str
	.type	get_tok_str, @function
get_tok_str:
.LFB77:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	DWORD PTR -36[rbp], edi
	mov	QWORD PTR -48[rbp], rsi
	lea	rdi, cstr_buf.3[rip]
	call	cstr_free
	lea	rax, buf.2[rip]
	mov	QWORD PTR cstr_buf.3[rip+8], rax
	mov	DWORD PTR cstr_buf.3[rip+16], 1025
	lea	rax, buf.2[rip]
	mov	QWORD PTR -16[rbp], rax
	mov	eax, DWORD PTR -36[rbp]
	sub	eax, 129
	cmp	eax, 77
	ja	.L400
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L402[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L402[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L402:
	.long	.L410-.L402
	.long	.L409-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L408-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L407-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L404-.L402
	.long	.L406-.L402
	.long	.L405-.L402
	.long	.L400-.L402
	.long	.L406-.L402
	.long	.L405-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L404-.L402
	.long	.L403-.L402
	.long	.L403-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L400-.L402
	.long	.L401-.L402
	.text
.L404:
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	lea	rsi, .LC14[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	jmp	.L411
.L403:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	lea	rsi, .LC15[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	jmp	.L411
.L406:
	mov	esi, 39
	lea	rdi, cstr_buf.3[rip]
	call	cstr_ccat
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	mov	esi, eax
	lea	rdi, cstr_buf.3[rip]
	call	add_char
	mov	esi, 39
	lea	rdi, cstr_buf.3[rip]
	call	cstr_ccat
	mov	esi, 0
	lea	rdi, cstr_buf.3[rip]
	call	cstr_ccat
	jmp	.L411
.L401:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	sub	eax, 1
	mov	DWORD PTR -28[rbp], eax
	mov	DWORD PTR -32[rbp], 0
	jmp	.L412
.L413:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	esi, eax
	lea	rdi, cstr_buf.3[rip]
	call	add_char
	add	DWORD PTR -32[rbp], 1
.L412:
	mov	eax, DWORD PTR -32[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	jl	.L413
	mov	esi, 0
	lea	rdi, cstr_buf.3[rip]
	call	cstr_ccat
	jmp	.L411
.L405:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	esi, 34
	lea	rdi, cstr_buf.3[rip]
	call	cstr_ccat
	cmp	DWORD PTR -36[rbp], 181
	jne	.L414
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	sub	eax, 1
	mov	DWORD PTR -28[rbp], eax
	mov	DWORD PTR -32[rbp], 0
	jmp	.L415
.L416:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	esi, eax
	lea	rdi, cstr_buf.3[rip]
	call	add_char
	add	DWORD PTR -32[rbp], 1
.L415:
	mov	eax, DWORD PTR -32[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	jl	.L416
	jmp	.L417
.L414:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	shr	rax, 2
	sub	eax, 1
	mov	DWORD PTR -28[rbp], eax
	mov	DWORD PTR -32[rbp], 0
	jmp	.L418
.L419:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	esi, eax
	lea	rdi, cstr_buf.3[rip]
	call	add_char
	add	DWORD PTR -32[rbp], 1
.L418:
	mov	eax, DWORD PTR -32[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	jl	.L419
.L417:
	mov	esi, 34
	lea	rdi, cstr_buf.3[rip]
	call	cstr_ccat
	mov	esi, 0
	lea	rdi, cstr_buf.3[rip]
	call	cstr_ccat
	jmp	.L411
.L408:
	mov	DWORD PTR -36[rbp], 60
	jmp	.L420
.L407:
	mov	DWORD PTR -36[rbp], 62
	jmp	.L420
.L410:
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR [rax], 4013116
	jmp	.L421
.L409:
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR [rax], 4013630
	jmp	.L421
.L400:
	cmp	DWORD PTR -36[rbp], 255
	jg	.L422
	lea	rax, tok_two_chars[rip]
	mov	QWORD PTR -24[rbp], rax
	jmp	.L423
.L425:
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cmp	DWORD PTR -36[rbp], eax
	jne	.L424
	mov	rax, QWORD PTR -24[rbp]
	movzx	ecx, BYTE PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	mov	edx, ecx
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 1
	movzx	ecx, BYTE PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	mov	edx, ecx
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR [rax], 0
	lea	rax, buf.2[rip]
	jmp	.L421
.L424:
	add	QWORD PTR -24[rbp], 3
.L423:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L425
	nop
.L420:
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	mov	edx, DWORD PTR -36[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR [rax], 0
	jmp	.L411
.L422:
	mov	eax, DWORD PTR tok_ident[rip]
	cmp	DWORD PTR -36[rbp], eax
	jge	.L427
	mov	rdx, QWORD PTR table_ident[rip]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	sal	rax, 3
	sub	rax, 2048
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	add	rax, 48
	jmp	.L421
.L427:
	cmp	DWORD PTR -36[rbp], 268435455
	jle	.L428
	mov	eax, DWORD PTR -36[rbp]
	lea	edx, -268435456[rax]
	mov	rax, QWORD PTR -16[rbp]
	lea	rsi, .LC16[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	jmp	.L411
.L428:
	mov	eax, 0
	jmp	.L421
.L411:
	mov	rax, QWORD PTR cstr_buf.3[rip+8]
.L421:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE77:
	.size	get_tok_str, .-get_tok_str
	.type	sym_push2, @function
sym_push2:
.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, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -48[rbp], rcx
	call	sym_malloc
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 24[rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -48[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 40[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE78:
	.size	sym_push2, .-sym_push2
	.type	sym_find2, @function
sym_find2:
.LFB79:
	.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	DWORD PTR -12[rbp], esi
	jmp	.L432
.L435:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	cmp	rdx, rax
	jne	.L433
	mov	rax, QWORD PTR -8[rbp]
	jmp	.L434
.L433:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 48[rax]
	mov	QWORD PTR -8[rbp], rax
.L432:
	cmp	QWORD PTR -8[rbp], 0
	jne	.L435
	mov	eax, 0
.L434:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE79:
	.size	sym_find2, .-sym_find2
	.type	struct_find, @function
struct_find:
.LFB80:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -4[rbp], edi
	sub	DWORD PTR -4[rbp], 256
	mov	eax, DWORD PTR tok_ident[rip]
	sub	eax, 256
	mov	edx, eax
	mov	eax, DWORD PTR -4[rbp]
	cmp	edx, eax
	ja	.L437
	mov	eax, 0
	jmp	.L438
.L437:
	mov	rdx, QWORD PTR table_ident[rip]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 24[rax]
.L438:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE80:
	.size	struct_find, .-struct_find
	.type	sym_find, @function
sym_find:
.LFB81:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -4[rbp], edi
	sub	DWORD PTR -4[rbp], 256
	mov	eax, DWORD PTR tok_ident[rip]
	sub	eax, 256
	mov	edx, eax
	mov	eax, DWORD PTR -4[rbp]
	cmp	edx, eax
	ja	.L440
	mov	eax, 0
	jmp	.L441
.L440:
	mov	rdx, QWORD PTR table_ident[rip]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 32[rax]
.L441:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE81:
	.size	sym_find, .-sym_find
	.type	sym_push, @function
sym_push:
.LFB82:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	DWORD PTR -36[rbp], edi
	mov	QWORD PTR -48[rbp], rsi
	mov	DWORD PTR -40[rbp], edx
	mov	DWORD PTR -52[rbp], ecx
	mov	rax, QWORD PTR local_stack[rip]
	test	rax, rax
	je	.L443
	lea	rax, local_stack[rip]
	mov	QWORD PTR -24[rbp], rax
	jmp	.L444
.L443:
	lea	rax, global_stack[rip]
	mov	QWORD PTR -24[rbp], rax
.L444:
	mov	eax, DWORD PTR -52[rbp]
	movsx	rcx, eax
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	movsx	rdx, eax
	mov	eax, DWORD PTR -36[rbp]
	movsx	rsi, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	sym_push2
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	eax, DWORD PTR -40[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	eax, DWORD PTR -36[rbp]
	and	eax, 536870912
	test	eax, eax
	jne	.L445
	mov	eax, DWORD PTR -36[rbp]
	and	eax, -1073741825
	cmp	eax, 268435455
	jg	.L445
	mov	rdx, QWORD PTR table_ident[rip]
	mov	eax, DWORD PTR -36[rbp]
	and	eax, -1073741825
	cdqe
	sal	rax, 3
	sub	rax, 2048
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -36[rbp]
	and	eax, 1073741824
	test	eax, eax
	je	.L446
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 24
	mov	QWORD PTR -24[rbp], rax
	jmp	.L447
.L446:
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 32
	mov	QWORD PTR -24[rbp], rax
.L447:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 56[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR [rax], rdx
.L445:
	mov	rax, QWORD PTR -16[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE82:
	.size	sym_push, .-sym_push
	.type	global_identifier_push, @function
global_identifier_push:
.LFB83:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	DWORD PTR -28[rbp], edx
	mov	eax, DWORD PTR -28[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -24[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	mov	rsi, rax
	lea	rdi, global_stack[rip]
	call	sym_push2
	mov	QWORD PTR -8[rbp], rax
	cmp	DWORD PTR -20[rbp], 268435455
	jg	.L450
	mov	rdx, QWORD PTR table_ident[rip]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 3
	sub	rax, 2048
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	add	rax, 32
	mov	QWORD PTR -16[rbp], rax
	jmp	.L451
.L452:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	add	rax, 56
	mov	QWORD PTR -16[rbp], rax
.L451:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L452
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 56[rax], 0
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
.L450:
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE83:
	.size	global_identifier_push, .-global_identifier_push
	.type	sym_pop, @function
sym_pop:
.LFB84:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -32[rbp], rax
	jmp	.L455
.L459:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 48[rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR [rax]
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	and	eax, 536870912
	test	eax, eax
	jne	.L456
	mov	eax, DWORD PTR -36[rbp]
	and	eax, -1073741825
	cmp	eax, 268435455
	jg	.L456
	mov	rdx, QWORD PTR table_ident[rip]
	mov	eax, DWORD PTR -36[rbp]
	and	eax, -1073741825
	cdqe
	sal	rax, 3
	sub	rax, 2048
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -36[rbp]
	and	eax, 1073741824
	test	eax, eax
	je	.L457
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 24
	mov	QWORD PTR -24[rbp], rax
	jmp	.L458
.L457:
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 32
	mov	QWORD PTR -24[rbp], rax
.L458:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
.L456:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	sym_free
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR -32[rbp], rax
.L455:
	mov	rax, QWORD PTR -32[rbp]
	cmp	rax, QWORD PTR -64[rbp]
	jne	.L459
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR -64[rbp]
	mov	QWORD PTR [rax], rdx
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE84:
	.size	sym_pop, .-sym_pop
	.globl	tcc_open
	.type	tcc_open, @function
tcc_open:
.LFB85:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -32[rbp]
	mov	esi, 0
	mov	rdi, rax
	mov	eax, 0
	call	open@PLT
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 0
	jns	.L461
	mov	eax, 0
	jmp	.L462
.L461:
	mov	edi, 9776
	call	tcc_malloc
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L463
	mov	eax, DWORD PTR -12[rbp]
	mov	edi, eax
	call	close@PLT
	mov	eax, 0
	jmp	.L462
.L463:
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	DWORD PTR 16[rax], edx
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1577[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 1577[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 1577[rax], 92
	mov	rax, QWORD PTR -8[rbp]
	lea	rcx, 553[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, rax
	mov	esi, 1024
	mov	rdi, rcx
	call	pstrcpy
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 20[rax], 1
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 24[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
.L462:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE85:
	.size	tcc_open, .-tcc_open
	.globl	tcc_close
	.type	tcc_close, @function
tcc_close:
.LFB86:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR 20[rax]
	mov	eax, DWORD PTR total_lines[rip]
	add	eax, edx
	mov	DWORD PTR total_lines[rip], eax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 16[rax]
	mov	edi, eax
	call	close@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	tcc_free
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE86:
	.size	tcc_close, .-tcc_close
	.type	tcc_peekc_slow, @function
tcc_peekc_slow:
.LFB87:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	cmp	rdx, rax
	jb	.L466
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	eax, -1
	je	.L467
	mov	DWORD PTR -4[rbp], 8192
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	lea	rcx, 1577[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 16[rax]
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jns	.L468
	mov	DWORD PTR -4[rbp], 0
	jmp	.L468
.L467:
	mov	DWORD PTR -4[rbp], 0
.L468:
	mov	edx, DWORD PTR total_bytes[rip]
	mov	eax, DWORD PTR -4[rbp]
	add	eax, edx
	mov	DWORD PTR total_bytes[rip], eax
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 1577[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 1577[rax]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	add	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	BYTE PTR [rax], 92
.L466:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	cmp	rdx, rax
	jnb	.L469
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	jmp	.L470
.L469:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, -1
.L470:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE87:
	.size	tcc_peekc_slow, .-tcc_peekc_slow
	.type	handle_eob, @function
handle_eob:
.LFB88:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	rax, QWORD PTR file[rip]
	mov	rdi, rax
	call	tcc_peekc_slow
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE88:
	.size	handle_eob, .-handle_eob
	.type	inp, @function
inp:
.LFB89:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	rax, QWORD PTR file[rip]
	mov	rdx, QWORD PTR [rax]
	add	rdx, 1
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR ch[rip], eax
	mov	eax, DWORD PTR ch[rip]
	cmp	eax, 92
	jne	.L475
	call	handle_eob
	mov	DWORD PTR ch[rip], eax
.L475:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE89:
	.size	inp, .-inp
	.section	.rodata
.LC17:
	.string	"stray '\\' in program"
	.text
	.type	handle_stray, @function
handle_stray:
.LFB90:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	jmp	.L477
.L481:
	call	inp
	mov	eax, DWORD PTR ch[rip]
	cmp	eax, 10
	jne	.L478
	mov	rax, QWORD PTR file[rip]
	mov	edx, DWORD PTR 20[rax]
	add	edx, 1
	mov	DWORD PTR 20[rax], edx
	call	inp
	jmp	.L477
.L478:
	mov	eax, DWORD PTR ch[rip]
	cmp	eax, 13
	jne	.L482
	call	inp
	mov	eax, DWORD PTR ch[rip]
	cmp	eax, 10
	jne	.L483
	mov	rax, QWORD PTR file[rip]
	mov	edx, DWORD PTR 20[rax]
	add	edx, 1
	mov	DWORD PTR 20[rax], edx
	call	inp
	jmp	.L477
.L482:
	nop
	jmp	.L479
.L483:
	nop
.L479:
	lea	rdi, .LC17[rip]
	mov	eax, 0
	call	error
.L477:
	mov	eax, DWORD PTR ch[rip]
	cmp	eax, 92
	je	.L481
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE90:
	.size	handle_stray, .-handle_stray
	.type	handle_stray1, @function
handle_stray1:
.LFB91:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR 8[rax]
	cmp	QWORD PTR -24[rbp], rax
	jb	.L488
	mov	rax, QWORD PTR file[rip]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	call	handle_eob
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	cmp	DWORD PTR -4[rbp], 92
	jne	.L486
	jmp	.L485
.L488:
	nop
.L485:
	mov	rax, QWORD PTR file[rip]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR ch[rip], eax
	call	handle_stray
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
.L486:
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE91:
	.size	handle_stray1, .-handle_stray1
	.type	minp, @function
minp:
.LFB92:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	call	inp
	mov	eax, DWORD PTR ch[rip]
	cmp	eax, 92
	jne	.L491
	call	handle_stray
.L491:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE92:
	.size	minp, .-minp
	.type	parse_line_comment, @function
parse_line_comment:
.LFB93:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	add	QWORD PTR -24[rbp], 1
.L501:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
.L493:
	cmp	DWORD PTR -4[rbp], 10
	je	.L494
	cmp	DWORD PTR -4[rbp], -1
	je	.L494
	cmp	DWORD PTR -4[rbp], 92
	jne	.L495
	mov	rax, QWORD PTR file[rip]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	call	handle_eob
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	cmp	DWORD PTR -4[rbp], 92
	jne	.L493
	add	QWORD PTR -24[rbp], 1
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 92
	jne	.L497
	mov	rax, QWORD PTR file[rip]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	call	handle_eob
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
.L497:
	cmp	DWORD PTR -4[rbp], 10
	jne	.L498
	mov	rax, QWORD PTR file[rip]
	mov	edx, DWORD PTR 20[rax]
	add	edx, 1
	mov	DWORD PTR 20[rax], edx
	add	QWORD PTR -24[rbp], 1
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 92
	jne	.L501
	mov	rax, QWORD PTR file[rip]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	call	handle_eob
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	jmp	.L501
.L498:
	cmp	DWORD PTR -4[rbp], 13
	jne	.L501
	add	QWORD PTR -24[rbp], 1
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 92
	jne	.L500
	mov	rax, QWORD PTR file[rip]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	call	handle_eob
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
.L500:
	cmp	DWORD PTR -4[rbp], 10
	jne	.L501
	mov	rax, QWORD PTR file[rip]
	mov	edx, DWORD PTR 20[rax]
	add	edx, 1
	mov	DWORD PTR 20[rax], edx
	add	QWORD PTR -24[rbp], 1
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 92
	jne	.L501
	mov	rax, QWORD PTR file[rip]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	call	handle_eob
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	jmp	.L501
.L495:
	add	QWORD PTR -24[rbp], 1
	jmp	.L501
.L494:
	mov	rax, QWORD PTR -24[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE93:
	.size	parse_line_comment, .-parse_line_comment
	.section	.rodata
	.align 8
.LC18:
	.string	"unexpected end of file in comment"
	.text
	.type	parse_comment, @function
parse_comment:
.LFB94:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	add	QWORD PTR -24[rbp], 1
.L505:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 10
	je	.L504
	cmp	DWORD PTR -4[rbp], 42
	je	.L504
	cmp	DWORD PTR -4[rbp], 92
	je	.L504
	add	QWORD PTR -24[rbp], 1
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 10
	je	.L504
	cmp	DWORD PTR -4[rbp], 42
	je	.L504
	cmp	DWORD PTR -4[rbp], 92
	je	.L504
	add	QWORD PTR -24[rbp], 1
	jmp	.L505
.L504:
	cmp	DWORD PTR -4[rbp], 10
	jne	.L506
	mov	rax, QWORD PTR file[rip]
	mov	edx, DWORD PTR 20[rax]
	add	edx, 1
	mov	DWORD PTR 20[rax], edx
	add	QWORD PTR -24[rbp], 1
	jmp	.L505
.L506:
	cmp	DWORD PTR -4[rbp], 42
	jne	.L508
	add	QWORD PTR -24[rbp], 1
.L521:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 42
	jne	.L509
	add	QWORD PTR -24[rbp], 1
	jmp	.L521
.L509:
	cmp	DWORD PTR -4[rbp], 47
	je	.L525
	cmp	DWORD PTR -4[rbp], 92
	jne	.L526
	mov	rax, QWORD PTR file[rip]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	call	handle_eob
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	cmp	DWORD PTR -4[rbp], 92
	jne	.L521
	jmp	.L514
.L520:
	add	QWORD PTR -24[rbp], 1
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 92
	jne	.L515
	mov	rax, QWORD PTR file[rip]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	call	handle_eob
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
.L515:
	cmp	DWORD PTR -4[rbp], 10
	jne	.L516
	mov	rax, QWORD PTR file[rip]
	mov	edx, DWORD PTR 20[rax]
	add	edx, 1
	mov	DWORD PTR 20[rax], edx
	add	QWORD PTR -24[rbp], 1
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 92
	jne	.L514
	mov	rax, QWORD PTR file[rip]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	call	handle_eob
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	jmp	.L514
.L516:
	cmp	DWORD PTR -4[rbp], 13
	jne	.L527
	add	QWORD PTR -24[rbp], 1
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 92
	jne	.L518
	mov	rax, QWORD PTR file[rip]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	call	handle_eob
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
.L518:
	cmp	DWORD PTR -4[rbp], 10
	jne	.L514
	mov	rax, QWORD PTR file[rip]
	mov	edx, DWORD PTR 20[rax]
	add	edx, 1
	mov	DWORD PTR 20[rax], edx
	add	QWORD PTR -24[rbp], 1
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 92
	jne	.L514
	mov	rax, QWORD PTR file[rip]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	call	handle_eob
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
.L514:
	cmp	DWORD PTR -4[rbp], 92
	je	.L520
	jmp	.L521
.L519:
.L508:
	mov	rax, QWORD PTR file[rip]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	call	handle_eob
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	cmp	DWORD PTR -4[rbp], -1
	jne	.L522
	lea	rdi, .LC18[rip]
	mov	eax, 0
	call	error
	jmp	.L505
.L522:
	cmp	DWORD PTR -4[rbp], 92
	jne	.L505
	add	QWORD PTR -24[rbp], 1
	jmp	.L505
.L526:
	nop
	jmp	.L505
.L527:
	nop
	jmp	.L505
.L525:
	nop
.L512:
	add	QWORD PTR -24[rbp], 1
	mov	rax, QWORD PTR -24[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE94:
	.size	parse_comment, .-parse_comment
	.type	is_space, @function
is_space:
.LFB95:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -4[rbp], edi
	cmp	DWORD PTR -4[rbp], 32
	je	.L529
	cmp	DWORD PTR -4[rbp], 9
	je	.L529
	cmp	DWORD PTR -4[rbp], 11
	je	.L529
	cmp	DWORD PTR -4[rbp], 12
	je	.L529
	cmp	DWORD PTR -4[rbp], 13
	jne	.L530
.L529:
	mov	eax, 1
	jmp	.L532
.L530:
	mov	eax, 0
.L532:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE95:
	.size	is_space, .-is_space
	.type	skip_spaces, @function
skip_spaces:
.LFB96:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	jmp	.L534
.L535:
	call	minp
.L534:
	mov	eax, DWORD PTR ch[rip]
	mov	edi, eax
	call	is_space
	test	eax, eax
	jne	.L535
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE96:
	.size	skip_spaces, .-skip_spaces
	.section	.rodata
	.align 8
.LC19:
	.string	"missing terminating %c character"
.LC20:
	.string	"'\n' after '\r'"
	.text
	.type	parse_pp_string, @function
parse_pp_string:
.LFB97:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	QWORD PTR -40[rbp], rdx
	add	QWORD PTR -24[rbp], 1
.L555:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	je	.L558
	cmp	DWORD PTR -4[rbp], 92
	jne	.L539
	mov	rax, QWORD PTR file[rip]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	call	handle_eob
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	cmp	DWORD PTR -4[rbp], -1
	jne	.L540
	nop
	jmp	.L541
.L559:
	nop
.L541:
	mov	eax, DWORD PTR -28[rbp]
	mov	esi, eax
	lea	rdi, .LC19[rip]
	mov	eax, 0
	call	error
	jmp	.L555
.L540:
	cmp	DWORD PTR -4[rbp], 92
	jne	.L555
	add	QWORD PTR -24[rbp], 1
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 92
	jne	.L543
	mov	rax, QWORD PTR file[rip]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	call	handle_eob
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
.L543:
	cmp	DWORD PTR -4[rbp], 10
	jne	.L544
	mov	rax, QWORD PTR file[rip]
	mov	edx, DWORD PTR 20[rax]
	add	edx, 1
	mov	DWORD PTR 20[rax], edx
	add	QWORD PTR -24[rbp], 1
	jmp	.L555
.L544:
	cmp	DWORD PTR -4[rbp], 13
	jne	.L545
	add	QWORD PTR -24[rbp], 1
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 92
	jne	.L546
	mov	rax, QWORD PTR file[rip]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	call	handle_eob
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
.L546:
	cmp	DWORD PTR -4[rbp], 10
	je	.L547
	lea	rdi, .LC20[rip]
	call	expect
.L547:
	mov	rax, QWORD PTR file[rip]
	mov	edx, DWORD PTR 20[rax]
	add	edx, 1
	mov	DWORD PTR 20[rax], edx
	add	QWORD PTR -24[rbp], 1
	jmp	.L555
.L545:
	cmp	DWORD PTR -4[rbp], -1
	je	.L559
	cmp	QWORD PTR -40[rbp], 0
	je	.L549
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 92
	mov	rdi, rax
	call	cstr_ccat
	mov	edx, DWORD PTR -4[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	cstr_ccat
.L549:
	add	QWORD PTR -24[rbp], 1
	jmp	.L555
.L539:
	cmp	DWORD PTR -4[rbp], 10
	jne	.L550
	mov	rax, QWORD PTR file[rip]
	mov	edx, DWORD PTR 20[rax]
	add	edx, 1
	mov	DWORD PTR 20[rax], edx
	jmp	.L551
.L550:
	cmp	DWORD PTR -4[rbp], 13
	jne	.L560
	add	QWORD PTR -24[rbp], 1
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 92
	jne	.L552
	mov	rax, QWORD PTR file[rip]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	call	handle_eob
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
.L552:
	cmp	DWORD PTR -4[rbp], 10
	je	.L553
	cmp	QWORD PTR -40[rbp], 0
	je	.L555
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 13
	mov	rdi, rax
	call	cstr_ccat
	jmp	.L555
.L553:
	mov	rax, QWORD PTR file[rip]
	mov	edx, DWORD PTR 20[rax]
	add	edx, 1
	mov	DWORD PTR 20[rax], edx
	jmp	.L551
.L560:
	nop
.L551:
	cmp	QWORD PTR -40[rbp], 0
	je	.L554
	mov	edx, DWORD PTR -4[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	cstr_ccat
.L554:
	add	QWORD PTR -24[rbp], 1
	jmp	.L555
.L558:
	nop
	add	QWORD PTR -24[rbp], 1
	mov	rax, QWORD PTR -24[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE97:
	.size	parse_pp_string, .-parse_pp_string
	.section	.rodata
.LC21:
	.string	"#endif"
	.text
	.globl	preprocess_skip
	.type	preprocess_skip, @function
preprocess_skip:
.LFB98:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -16[rbp], 1
	mov	DWORD PTR -20[rbp], 0
.L562:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 47
	jg	.L563
	cmp	DWORD PTR -12[rbp], 9
	jl	.L564
	mov	eax, DWORD PTR -12[rbp]
	sub	eax, 9
	cmp	eax, 38
	ja	.L564
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L566[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L566[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L566:
	.long	.L569-.L566
	.long	.L570-.L566
	.long	.L569-.L566
	.long	.L569-.L566
	.long	.L569-.L566
	.long	.L564-.L566
	.long	.L564-.L566
	.long	.L564-.L566
	.long	.L564-.L566
	.long	.L564-.L566
	.long	.L564-.L566
	.long	.L564-.L566
	.long	.L564-.L566
	.long	.L564-.L566
	.long	.L564-.L566
	.long	.L564-.L566
	.long	.L564-.L566
	.long	.L564-.L566
	.long	.L564-.L566
	.long	.L564-.L566
	.long	.L564-.L566
	.long	.L564-.L566
	.long	.L564-.L566
	.long	.L569-.L566
	.long	.L564-.L566
	.long	.L567-.L566
	.long	.L568-.L566
	.long	.L564-.L566
	.long	.L564-.L566
	.long	.L564-.L566
	.long	.L567-.L566
	.long	.L564-.L566
	.long	.L564-.L566
	.long	.L564-.L566
	.long	.L564-.L566
	.long	.L564-.L566
	.long	.L564-.L566
	.long	.L564-.L566
	.long	.L565-.L566
	.text
.L563:
	cmp	DWORD PTR -12[rbp], 92
	je	.L571
	jmp	.L564
.L569:
	add	QWORD PTR -8[rbp], 1
	jmp	.L562
.L570:
	mov	DWORD PTR -16[rbp], 1
	mov	rax, QWORD PTR file[rip]
	mov	edx, DWORD PTR 20[rax]
	add	edx, 1
	mov	DWORD PTR 20[rax], edx
	add	QWORD PTR -8[rbp], 1
	jmp	.L562
.L571:
	mov	rax, QWORD PTR file[rip]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	call	handle_eob
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], -1
	jne	.L572
	lea	rdi, .LC21[rip]
	call	expect
	jmp	.L573
.L572:
	cmp	DWORD PTR -12[rbp], 92
	jne	.L573
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR ch[rip], eax
	call	handle_stray
.L573:
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L562
.L567:
	mov	ecx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, 0
	mov	esi, ecx
	mov	rdi, rax
	call	parse_pp_string
	mov	QWORD PTR -8[rbp], rax
	jmp	.L574
.L565:
	mov	rax, QWORD PTR file[rip]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR ch[rip], eax
	call	minp
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR ch[rip]
	cmp	eax, 42
	jne	.L575
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	parse_comment
	mov	QWORD PTR -8[rbp], rax
	jmp	.L583
.L575:
	mov	eax, DWORD PTR ch[rip]
	cmp	eax, 47
	jne	.L583
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	parse_line_comment
	mov	QWORD PTR -8[rbp], rax
	jmp	.L583
.L568:
	add	QWORD PTR -8[rbp], 1
	cmp	DWORD PTR -16[rbp], 0
	je	.L584
	mov	rax, QWORD PTR file[rip]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	call	next_nomacro
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	cmp	DWORD PTR -20[rbp], 0
	jne	.L578
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 260
	je	.L585
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 318
	je	.L585
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 319
	je	.L585
.L578:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 259
	je	.L581
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 316
	je	.L581
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 317
	jne	.L582
.L581:
	add	DWORD PTR -20[rbp], 1
	jmp	.L584
.L582:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 319
	jne	.L584
	sub	DWORD PTR -20[rbp], 1
	jmp	.L584
.L564:
	add	QWORD PTR -8[rbp], 1
	jmp	.L574
.L583:
	nop
	jmp	.L574
.L584:
	nop
.L574:
	mov	DWORD PTR -16[rbp], 0
	jmp	.L562
.L585:
	nop
.L580:
	mov	rax, QWORD PTR file[rip]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE98:
	.size	preprocess_skip, .-preprocess_skip
	.globl	save_parse_state
	.type	save_parse_state, @function
save_parse_state:
.LFB99:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR file[rip]
	mov	edx, DWORD PTR 20[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 8[rax], edx
	mov	rdx, QWORD PTR macro_ptr[rip]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	mov	edx, DWORD PTR tok[rip]
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 12[rax], edx
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR tokc[rip]
	mov	rdx, QWORD PTR tokc[rip+8]
	mov	QWORD PTR 16[rcx], rax
	mov	QWORD PTR 24[rcx], rdx
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE99:
	.size	save_parse_state, .-save_parse_state
	.globl	restore_parse_state
	.type	restore_parse_state, @function
restore_parse_state:
.LFB100:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR file[rip]
	mov	rdx, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR 8[rdx]
	mov	DWORD PTR 20[rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR macro_ptr[rip], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 12[rax]
	mov	DWORD PTR tok[rip], eax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	QWORD PTR tokc[rip], rax
	mov	QWORD PTR tokc[rip+8], rdx
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE100:
	.size	restore_parse_state, .-restore_parse_state
	.section	.rodata
.LC22:
	.string	"unsupported token"
	.text
	.type	tok_ext_size, @function
tok_ext_size:
.LFB101:
	.cfi_startproc
	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	eax, DWORD PTR -4[rbp]
	sub	eax, 179
	cmp	eax, 27
	ja	.L589
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L591[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L591[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L591:
	.long	.L593-.L591
	.long	.L593-.L591
	.long	.L590-.L591
	.long	.L589-.L591
	.long	.L593-.L591
	.long	.L590-.L591
	.long	.L593-.L591
	.long	.L593-.L591
	.long	.L589-.L591
	.long	.L589-.L591
	.long	.L589-.L591
	.long	.L589-.L591
	.long	.L589-.L591
	.long	.L592-.L591
	.long	.L594-.L591
	.long	.L589-.L591
	.long	.L589-.L591
	.long	.L589-.L591
	.long	.L589-.L591
	.long	.L589-.L591
	.long	.L589-.L591
	.long	.L593-.L591
	.long	.L592-.L591
	.long	.L592-.L591
	.long	.L589-.L591
	.long	.L589-.L591
	.long	.L589-.L591
	.long	.L590-.L591
	.text
.L593:
	mov	eax, 1
	jmp	.L595
.L590:
	lea	rdi, .LC22[rip]
	mov	eax, 0
	call	error
	mov	eax, 1
	jmp	.L595
.L592:
	mov	eax, 2
	jmp	.L595
.L594:
	mov	eax, 3
	jmp	.L595
.L589:
	mov	eax, 0
.L595:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE101:
	.size	tok_ext_size, .-tok_ext_size
	.type	tok_str_new, @function
tok_str_new:
.LFB102:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 8[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 12[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 16[rax], -1
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE102:
	.size	tok_str_new, .-tok_str_new
	.type	tok_str_free, @function
tok_str_free:
.LFB103:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	tcc_free
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE103:
	.size	tok_str_free, .-tok_str_free
	.type	tok_str_realloc, @function
tok_str_realloc:
.LFB104:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 12[rax]
	test	eax, eax
	jne	.L599
	mov	DWORD PTR -12[rbp], 8
	jmp	.L600
.L599:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 12[rax]
	add	eax, eax
	mov	DWORD PTR -12[rbp], eax
.L600:
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	tcc_realloc
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L601
	lea	rdi, .LC4[rip]
	mov	eax, 0
	call	error
.L601:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	DWORD PTR 12[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE104:
	.size	tok_str_realloc, .-tok_str_realloc
	.type	tok_str_add, @function
tok_str_add:
.LFB105:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 12[rax]
	cmp	DWORD PTR -12[rbp], eax
	jl	.L604
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	tok_str_realloc
	mov	QWORD PTR -8[rbp], rax
.L604:
	mov	eax, DWORD PTR -12[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -12[rbp], edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -8[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	DWORD PTR 8[rax], edx
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE105:
	.size	tok_str_add, .-tok_str_add
	.type	tok_str_add2, @function
tok_str_add2:
.LFB106:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	QWORD PTR -56[rbp], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	eax, DWORD PTR -24[rbp]
	lea	edx, 3[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 12[rax]
	cmp	edx, eax
	jl	.L606
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tok_str_realloc
	mov	QWORD PTR -16[rbp], rax
.L606:
	mov	eax, DWORD PTR -24[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -24[rbp], edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -16[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -44[rbp]
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -44[rbp]
	sub	eax, 179
	cmp	eax, 27
	ja	.L616
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L609[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L609[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L609:
	.long	.L611-.L609
	.long	.L611-.L609
	.long	.L608-.L609
	.long	.L616-.L609
	.long	.L611-.L609
	.long	.L608-.L609
	.long	.L611-.L609
	.long	.L611-.L609
	.long	.L616-.L609
	.long	.L616-.L609
	.long	.L616-.L609
	.long	.L616-.L609
	.long	.L616-.L609
	.long	.L610-.L609
	.long	.L612-.L609
	.long	.L616-.L609
	.long	.L616-.L609
	.long	.L616-.L609
	.long	.L616-.L609
	.long	.L616-.L609
	.long	.L616-.L609
	.long	.L611-.L609
	.long	.L610-.L609
	.long	.L610-.L609
	.long	.L616-.L609
	.long	.L616-.L609
	.long	.L616-.L609
	.long	.L608-.L609
	.text
.L611:
	mov	eax, DWORD PTR -24[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -24[rbp], edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -16[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR [rdx], eax
	jmp	.L613
.L608:
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR [rax]
	cdqe
	add	rax, 35
	shr	rax, 2
	mov	DWORD PTR -20[rbp], eax
	jmp	.L614
.L615:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tok_str_realloc
	mov	QWORD PTR -16[rbp], rax
.L614:
	mov	edx, DWORD PTR -24[rbp]
	mov	eax, DWORD PTR -20[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 12[rax]
	cmp	edx, eax
	jg	.L615
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], 0
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 24[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 16[rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	movsx	rdx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 8[rax]
	mov	rcx, QWORD PTR -8[rbp]
	add	rcx, 32
	mov	rsi, rax
	mov	rdi, rcx
	call	memcpy@PLT
	mov	eax, DWORD PTR -20[rbp]
	add	DWORD PTR -24[rbp], eax
	jmp	.L613
.L610:
	mov	eax, DWORD PTR -24[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -24[rbp], edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -16[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -24[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -24[rbp], edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -16[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR [rdx], eax
	jmp	.L613
.L612:
	mov	eax, DWORD PTR -24[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -24[rbp], edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -16[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -24[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -24[rbp], edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -16[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -24[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -24[rbp], edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -16[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR [rdx], eax
	jmp	.L613
.L616:
	nop
.L613:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -24[rbp]
	mov	DWORD PTR 8[rax], edx
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE106:
	.size	tok_str_add2, .-tok_str_add2
	.type	tok_str_add_tok, @function
tok_str_add_tok:
.LFB107:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR file[rip]
	mov	edx, DWORD PTR 20[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	edx, eax
	je	.L618
	mov	rax, QWORD PTR file[rip]
	mov	edx, DWORD PTR 20[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 16[rax], edx
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 16[rax]
	mov	DWORD PTR -32[rbp], eax
	lea	rdx, -32[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 186
	mov	rdi, rax
	call	tok_str_add2
.L618:
	mov	ecx, DWORD PTR tok[rip]
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, tokc[rip]
	mov	esi, ecx
	mov	rdi, rax
	call	tok_str_add2
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L619
	call	__stack_chk_fail@PLT
.L619:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE107:
	.size	tok_str_add_tok, .-tok_str_add_tok
	.type	define_push, @function
define_push:
.LFB108:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	QWORD PTR -32[rbp], rdx
	mov	QWORD PTR -40[rbp], rcx
	mov	rcx, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR -24[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	mov	rsi, rax
	lea	rdi, define_stack[rip]
	call	sym_push2
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rdx, QWORD PTR table_ident[rip]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 3
	sub	rax, 2048
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], rdx
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE108:
	.size	define_push, .-define_push
	.type	define_undef, @function
define_undef:
.LFB109:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 255
	jle	.L622
	mov	eax, DWORD PTR tok_ident[rip]
	cmp	DWORD PTR -4[rbp], eax
	jge	.L622
	mov	rdx, QWORD PTR table_ident[rip]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sal	rax, 3
	sub	rax, 2048
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR 8[rax], 0
.L622:
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], 0
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE109:
	.size	define_undef, .-define_undef
	.type	define_find, @function
define_find:
.LFB110:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -4[rbp], edi
	sub	DWORD PTR -4[rbp], 256
	mov	eax, DWORD PTR tok_ident[rip]
	sub	eax, 256
	mov	edx, eax
	mov	eax, DWORD PTR -4[rbp]
	cmp	edx, eax
	ja	.L624
	mov	eax, 0
	jmp	.L625
.L624:
	mov	rdx, QWORD PTR table_ident[rip]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 8[rax]
.L625:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE110:
	.size	define_find, .-define_find
	.type	free_defines, @function
free_defines:
.LFB111:
	.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 define_stack[rip]
	mov	QWORD PTR -16[rbp], rax
	jmp	.L627
.L630:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 48[rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	je	.L628
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rdi, rax
	call	tok_str_free
.L628:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	mov	DWORD PTR -20[rbp], eax
	cmp	DWORD PTR -20[rbp], 255
	jle	.L629
	mov	eax, DWORD PTR tok_ident[rip]
	cmp	DWORD PTR -20[rbp], eax
	jge	.L629
	mov	rdx, QWORD PTR table_ident[rip]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 3
	sub	rax, 2048
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR 8[rax], 0
.L629:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	sym_free
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR -16[rbp], rax
.L627:
	mov	rax, QWORD PTR -16[rbp]
	cmp	rax, QWORD PTR -40[rbp]
	jne	.L630
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR define_stack[rip], rax
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE111:
	.size	free_defines, .-free_defines
	.type	label_find, @function
label_find:
.LFB112:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -4[rbp], edi
	sub	DWORD PTR -4[rbp], 256
	mov	eax, DWORD PTR tok_ident[rip]
	sub	eax, 256
	mov	edx, eax
	mov	eax, DWORD PTR -4[rbp]
	cmp	edx, eax
	ja	.L632
	mov	eax, 0
	jmp	.L633
.L632:
	mov	rdx, QWORD PTR table_ident[rip]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 16[rax]
.L633:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE112:
	.size	label_find, .-label_find
	.type	label_push, @function
label_push:
.LFB113:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	DWORD PTR -32[rbp], edx
	mov	eax, DWORD PTR -28[rbp]
	movsx	rsi, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	ecx, 0
	mov	edx, 0
	mov	rdi, rax
	call	sym_push2
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -32[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rdx, QWORD PTR table_ident[rip]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	sal	rax, 3
	sub	rax, 2048
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	add	rax, 16
	mov	QWORD PTR -16[rbp], rax
	lea	rax, global_label_stack[rip]
	cmp	QWORD PTR -24[rbp], rax
	jne	.L635
	jmp	.L636
.L637:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	add	rax, 56
	mov	QWORD PTR -16[rbp], rax
.L636:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L637
.L635:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 56[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE113:
	.size	label_push, .-label_push
	.section	.rodata
	.align 8
.LC23:
	.string	"label '%s' declared but not used"
	.align 8
.LC24:
	.string	"label '%s' used but not defined"
	.text
	.type	label_pop, @function
label_pop:
.LFB114:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	jmp	.L640
.L644:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 48[rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 8[rax]
	cmp	rax, 2
	jne	.L641
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	mov	esi, 0
	mov	edi, eax
	call	get_tok_str
	mov	rsi, rax
	lea	rdi, .LC23[rip]
	mov	eax, 0
	call	warning
	jmp	.L642
.L641:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 8[rax]
	cmp	rax, 1
	jne	.L643
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	mov	esi, 0
	mov	edi, eax
	call	get_tok_str
	mov	rsi, rax
	lea	rdi, .LC24[rip]
	mov	eax, 0
	call	error
	jmp	.L642
.L643:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	je	.L642
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	rdx, rax
	mov	rsi, QWORD PTR cur_text_section[rip]
	mov	rax, QWORD PTR -16[rbp]
	mov	ecx, 1
	mov	rdi, rax
	call	put_extern_sym
.L642:
	mov	rdx, QWORD PTR table_ident[rip]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	sal	rax, 3
	sub	rax, 2048
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 56[rdx]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	sym_free
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR -16[rbp], rax
.L640:
	mov	rax, QWORD PTR -16[rbp]
	cmp	rax, QWORD PTR -32[rbp]
	jne	.L644
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR [rax], rdx
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE114:
	.size	label_pop, .-label_pop
	.type	expr_preprocess, @function
expr_preprocess:
.LFB115:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	tok_str_new
	jmp	.L646
.L652:
	call	next
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 320
	jne	.L647
	call	next_nomacro
	mov	eax, DWORD PTR tok[rip]
	mov	DWORD PTR -40[rbp], eax
	cmp	DWORD PTR -40[rbp], 40
	jne	.L648
	call	next_nomacro
.L648:
	mov	eax, DWORD PTR tok[rip]
	mov	edi, eax
	call	define_find
	test	rax, rax
	setne	al
	movzx	eax, al
	mov	DWORD PTR -36[rbp], eax
	cmp	DWORD PTR -40[rbp], 40
	jne	.L649
	call	next_nomacro
.L649:
	mov	DWORD PTR tok[rip], 179
	mov	eax, DWORD PTR -36[rbp]
	mov	DWORD PTR tokc[rip], eax
	jmp	.L650
.L647:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 255
	jle	.L650
	mov	DWORD PTR tok[rip], 179
	mov	DWORD PTR tokc[rip], 0
.L650:
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	tok_str_add_tok
.L646:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 10
	je	.L651
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, -1
	jne	.L652
.L651:
	lea	rax, -32[rbp]
	mov	esi, -1
	mov	rdi, rax
	call	tok_str_add
	lea	rax, -32[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	tok_str_add
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR macro_ptr[rip], rax
	call	next
	call	expr_const
	mov	DWORD PTR -36[rbp], eax
	mov	QWORD PTR macro_ptr[rip], 0
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	tok_str_free
	cmp	DWORD PTR -36[rbp], 0
	setne	al
	movzx	eax, al
	mov	rdx, QWORD PTR -8[rbp]
	sub	rdx, QWORD PTR fs:40
	je	.L654
	call	__stack_chk_fail@PLT
.L654:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE115:
	.size	expr_preprocess, .-expr_preprocess
	.section	.rodata
.LC25:
	.string	"invalid macro name '%s'"
	.align 8
.LC26:
	.string	"badly punctuated parameter list"
	.text
	.type	parse_define, @function
parse_define:
.LFB116:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR tok[rip]
	mov	DWORD PTR -60[rbp], eax
	cmp	DWORD PTR -60[rbp], 255
	jg	.L656
	mov	eax, DWORD PTR tok[rip]
	lea	rsi, tokc[rip]
	mov	edi, eax
	call	get_tok_str
	mov	rsi, rax
	lea	rdi, .LC25[rip]
	mov	eax, 0
	call	error
.L656:
	mov	QWORD PTR -56[rbp], 0
	mov	DWORD PTR -76[rbp], 0
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -64[rbp], eax
	cmp	DWORD PTR -64[rbp], 92
	jne	.L657
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	handle_stray1
	mov	DWORD PTR -64[rbp], eax
.L657:
	cmp	DWORD PTR -64[rbp], 40
	jne	.L658
	call	next_nomacro
	call	next_nomacro
	lea	rax, -56[rbp]
	mov	QWORD PTR -48[rbp], rax
	jmp	.L659
.L665:
	mov	eax, DWORD PTR tok[rip]
	mov	DWORD PTR -72[rbp], eax
	call	next_nomacro
	mov	DWORD PTR -68[rbp], 0
	cmp	DWORD PTR -72[rbp], 204
	jne	.L660
	mov	DWORD PTR -72[rbp], 331
	mov	DWORD PTR -68[rbp], 1
	jmp	.L661
.L660:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 204
	jne	.L661
	mov	eax, DWORD PTR gnu_ext[rip]
	test	eax, eax
	je	.L661
	mov	DWORD PTR -68[rbp], 1
	call	next_nomacro
.L661:
	cmp	DWORD PTR -72[rbp], 255
	jg	.L662
	lea	rdi, .LC26[rip]
	mov	eax, 0
	call	error
.L662:
	mov	eax, DWORD PTR -68[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -72[rbp]
	or	eax, 536870912
	cdqe
	mov	ecx, 0
	mov	rsi, rax
	lea	rdi, define_stack[rip]
	call	sym_push2
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 40
	mov	QWORD PTR -48[rbp], rax
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 44
	jne	.L670
	call	next_nomacro
.L659:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 41
	jne	.L665
	jmp	.L664
.L670:
	nop
.L664:
	mov	DWORD PTR -76[rbp], 1
.L658:
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	tok_str_new
	call	next_nomacro
	jmp	.L666
.L668:
	mov	ecx, DWORD PTR tok[rip]
	lea	rax, -32[rbp]
	lea	rdx, tokc[rip]
	mov	esi, ecx
	mov	rdi, rax
	call	tok_str_add2
	call	next_nomacro
.L666:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 10
	je	.L667
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, -1
	jne	.L668
.L667:
	lea	rax, -32[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	tok_str_add
	mov	rcx, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	esi, DWORD PTR -76[rbp]
	mov	eax, DWORD PTR -60[rbp]
	mov	edi, eax
	call	define_push
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L669
	call	__stack_chk_fail@PLT
.L669:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE116:
	.size	parse_define, .-parse_define
	.type	hash_cached_include, @function
hash_cached_include:
.LFB117:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -20[rbp], edi
	mov	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -12[rbp], 1
	mov	eax, DWORD PTR -12[rbp]
	imul	edx, eax, 263
	mov	eax, DWORD PTR -20[rbp]
	add	eax, edx
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L672
.L673:
	mov	eax, DWORD PTR -12[rbp]
	imul	edx, eax, 263
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	eax, edx
	mov	DWORD PTR -12[rbp], eax
	add	QWORD PTR -8[rbp], 1
.L672:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L673
	and	DWORD PTR -12[rbp], 511
	mov	eax, DWORD PTR -12[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE117:
	.size	hash_cached_include, .-hash_cached_include
	.type	search_cached_include, @function
search_cached_include:
.LFB118:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	QWORD PTR -40[rbp], rdx
	mov	rdx, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR -28[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	hash_cached_include
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -12[rbp]
	movsx	rdx, edx
	add	rdx, 248
	mov	eax, DWORD PTR 8[rax+rdx*4]
	mov	DWORD PTR -16[rbp], eax
.L680:
	cmp	DWORD PTR -16[rbp], 0
	je	.L682
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	sal	rax, 3
	sub	rax, 8
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 8[rax]
	movsx	eax, al
	cmp	DWORD PTR -28[rbp], eax
	jne	.L678
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 9[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	strcmp@PLT
	test	eax, eax
	jne	.L678
	mov	rax, QWORD PTR -8[rbp]
	jmp	.L679
.L678:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -16[rbp], eax
	jmp	.L680
.L682:
	nop
	mov	eax, 0
.L679:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE118:
	.size	search_cached_include, .-search_cached_include
	.type	add_cached_include, @function
add_cached_include:
.LFB119:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	QWORD PTR -40[rbp], rdx
	mov	DWORD PTR -32[rbp], ecx
	mov	rdx, QWORD PTR -40[rbp]
	mov	ecx, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	search_cached_include
	test	rax, rax
	jne	.L687
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	strlen@PLT
	add	rax, 12
	mov	rdi, rax
	call	tcc_malloc
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	je	.L688
	mov	eax, DWORD PTR -28[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 8[rax], dl
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 9[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	strcpy@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, 64[rax]
	mov	rax, QWORD PTR -24[rbp]
	lea	rcx, 56[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, rax
	mov	rdi, rcx
	call	dynarray_add
	mov	rdx, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR -28[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	hash_cached_include
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -12[rbp]
	movsx	rdx, edx
	add	rdx, 248
	mov	edx, DWORD PTR 8[rax+rdx*4]
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 64[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	ecx, DWORD PTR -12[rbp]
	movsx	rcx, ecx
	add	rcx, 248
	mov	DWORD PTR 8[rax+rcx*4], edx
	jmp	.L683
.L687:
	nop
	jmp	.L683
.L688:
	nop
.L683:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE119:
	.size	add_cached_include, .-add_cached_include
	.section	.rodata
.LC27:
	.string	"out of pack stack"
.LC28:
	.string	"invalid pack pragma"
	.text
	.type	pragma_parse, @function
pragma_parse:
.LFB120:
	.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
	call	next
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 354
	jne	.L701
	call	next
	mov	edi, 40
	call	skip
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 601
	jne	.L691
	call	next
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 3080[rax]
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, 3048
	cmp	rax, rdx
	ja	.L692
	nop
	jmp	.L693
.L702:
	nop
.L693:
	lea	rdi, .LC27[rip]
	mov	eax, 0
	call	error
.L692:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 3080[rax]
	lea	rdx, -4[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 3080[rax], rdx
	jmp	.L701
.L691:
	mov	DWORD PTR -4[rbp], 0
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 41
	je	.L694
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 598
	jne	.L695
	call	next
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 3080[rax]
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, 3048
	add	rdx, 28
	cmp	rax, rdx
	jnb	.L702
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 3080[rax]
	lea	rdx, 4[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 3080[rax], rdx
	mov	edi, 44
	call	skip
.L695:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 179
	je	.L697
	nop
	jmp	.L698
.L703:
	nop
.L698:
	lea	rdi, .LC28[rip]
	mov	eax, 0
	call	error
.L697:
	mov	eax, DWORD PTR tokc[rip]
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jle	.L703
	cmp	DWORD PTR -4[rbp], 16
	jg	.L703
	mov	eax, DWORD PTR -4[rbp]
	sub	eax, 1
	and	eax, DWORD PTR -4[rbp]
	test	eax, eax
	jne	.L703
	call	next
.L694:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 3080[rax]
	mov	edx, DWORD PTR -4[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 41
	call	skip
.L701:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE120:
	.size	pragma_parse, .-pragma_parse
	.section	.rodata
	.align 8
.LC29:
	.string	"'#include' expects \"FILENAME\" or <FILENAME>"
.LC30:
	.string	"#include recursion too deep"
.LC31:
	.string	"/"
.LC32:
	.string	"include file '%s' not found"
.LC33:
	.string	"n"
.LC34:
	.string	""
	.align 8
.LC35:
	.string	"invalid argument for '#if%sdef'"
.LC36:
	.string	"#else without matching #if"
.LC37:
	.string	"#else after #else"
.LC38:
	.string	"#elif without matching #if"
.LC39:
	.string	"#elif after #else"
.LC40:
	.string	"#endif without matching #if"
.LC41:
	.string	"#line"
.LC42:
	.string	"#error %s"
.LC43:
	.string	"#warning %s"
	.align 8
.LC44:
	.string	"invalid preprocessing directive #%s"
	.text
	.type	preprocess, @function
preprocess:
.LFB121:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 2160
	mov	DWORD PTR -2148[rbp], edi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR tcc_state[rip]
	mov	QWORD PTR -2096[rbp], rax
	mov	eax, DWORD PTR parse_flags[rip]
	mov	DWORD PTR -2132[rbp], eax
	mov	DWORD PTR parse_flags[rip], 7
	call	next_nomacro
.L705:
	mov	eax, DWORD PTR tok[rip]
	sub	eax, 259
	cmp	eax, 66
	ja	.L706
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L708[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L708[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L708:
	.long	.L719-.L708
	.long	.L718-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L706-.L708
	.long	.L717-.L708
	.long	.L716-.L708
	.long	.L716-.L708
	.long	.L715-.L708
	.long	.L714-.L708
	.long	.L713-.L708
	.long	.L712-.L708
	.long	.L706-.L708
	.long	.L711-.L708
	.long	.L710-.L708
	.long	.L710-.L708
	.long	.L709-.L708
	.long	.L707-.L708
	.text
.L717:
	call	next_nomacro
	call	parse_define
	jmp	.L720
.L711:
	call	next_nomacro
	mov	eax, DWORD PTR tok[rip]
	mov	edi, eax
	call	define_find
	mov	QWORD PTR -2088[rbp], rax
	cmp	QWORD PTR -2088[rbp], 0
	je	.L788
	mov	rax, QWORD PTR -2088[rbp]
	mov	rdi, rax
	call	define_undef
	jmp	.L788
.L716:
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR ch[rip], eax
	call	skip_spaces
	mov	eax, DWORD PTR ch[rip]
	cmp	eax, 60
	jne	.L722
	mov	DWORD PTR -2136[rbp], 62
	jmp	.L723
.L722:
	mov	eax, DWORD PTR ch[rip]
	cmp	eax, 34
	jne	.L724
	mov	eax, DWORD PTR ch[rip]
	mov	DWORD PTR -2136[rbp], eax
.L723:
	call	minp
	lea	rax, -2064[rbp]
	mov	QWORD PTR -2120[rbp], rax
	jmp	.L725
.L728:
	lea	rdx, -2064[rbp]
	mov	rax, QWORD PTR -2120[rbp]
	sub	rax, rdx
	cmp	rax, 1022
	ja	.L726
	mov	ecx, DWORD PTR ch[rip]
	mov	rax, QWORD PTR -2120[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -2120[rbp], rdx
	mov	edx, ecx
	mov	BYTE PTR [rax], dl
.L726:
	call	minp
.L725:
	mov	eax, DWORD PTR ch[rip]
	cmp	DWORD PTR -2136[rbp], eax
	je	.L727
	mov	eax, DWORD PTR ch[rip]
	cmp	eax, 10
	je	.L727
	mov	eax, DWORD PTR ch[rip]
	cmp	eax, -1
	jne	.L728
.L727:
	mov	rax, QWORD PTR -2120[rbp]
	mov	BYTE PTR [rax], 0
	call	minp
	jmp	.L729
.L724:
	call	next
	mov	BYTE PTR -2064[rbp], 0
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 181
	jne	.L735
	jmp	.L731
.L734:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 181
	je	.L732
	nop
	jmp	.L733
.L789:
	nop
.L733:
	lea	rdi, .LC29[rip]
	mov	eax, 0
	call	error
.L732:
	mov	rax, QWORD PTR tokc[rip]
	mov	rdx, QWORD PTR 8[rax]
	lea	rax, -2064[rbp]
	mov	esi, 1024
	mov	rdi, rax
	call	pstrcat
	call	next
.L731:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 10
	jne	.L734
	mov	DWORD PTR -2136[rbp], 34
	jmp	.L729
.L736:
	mov	eax, DWORD PTR tok[rip]
	lea	rsi, tokc[rip]
	mov	edi, eax
	call	get_tok_str
	mov	rdx, rax
	lea	rax, -2064[rbp]
	mov	esi, 1024
	mov	rdi, rax
	call	pstrcat
	call	next
.L735:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 10
	jne	.L736
	lea	rax, -2064[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	DWORD PTR -2128[rbp], eax
	cmp	DWORD PTR -2128[rbp], 1
	jle	.L789
	movzx	eax, BYTE PTR -2064[rbp]
	cmp	al, 60
	jne	.L789
	mov	eax, DWORD PTR -2128[rbp]
	sub	eax, 1
	cdqe
	movzx	eax, BYTE PTR -2064[rbp+rax]
	cmp	al, 62
	jne	.L789
	mov	eax, DWORD PTR -2128[rbp]
	sub	eax, 2
	movsx	rdx, eax
	lea	rax, -2064[rbp]
	add	rax, 1
	lea	rcx, -2064[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	call	memmove@PLT
	mov	eax, DWORD PTR -2128[rbp]
	sub	eax, 2
	cdqe
	mov	BYTE PTR -2064[rbp+rax], 0
	mov	DWORD PTR -2136[rbp], 62
.L729:
	lea	rdx, -2064[rbp]
	mov	ecx, DWORD PTR -2136[rbp]
	mov	rax, QWORD PTR -2096[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	search_cached_include
	mov	QWORD PTR -2080[rbp], rax
	cmp	QWORD PTR -2080[rbp], 0
	je	.L739
	mov	rax, QWORD PTR -2080[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	define_find
	test	rax, rax
	jne	.L787
.L739:
	cmp	DWORD PTR -2136[rbp], 34
	jne	.L741
	mov	DWORD PTR -2144[rbp], 0
	mov	rax, QWORD PTR file[rip]
	add	rax, 553
	mov	esi, 47
	mov	rdi, rax
	call	strrchr@PLT
	mov	QWORD PTR -2072[rbp], rax
	cmp	QWORD PTR -2072[rbp], 0
	je	.L742
	mov	rax, QWORD PTR -2072[rbp]
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR file[rip]
	lea	rcx, 553[rax]
	mov	rax, rdx
	sub	rax, rcx
	mov	DWORD PTR -2144[rbp], eax
.L742:
	mov	eax, DWORD PTR -2144[rbp]
	cmp	eax, 1023
	jbe	.L743
	mov	DWORD PTR -2144[rbp], 1023
.L743:
	mov	eax, DWORD PTR -2144[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR file[rip]
	lea	rcx, 553[rax]
	lea	rax, -1040[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	memcpy@PLT
	mov	eax, DWORD PTR -2144[rbp]
	cdqe
	mov	BYTE PTR -1040[rbp+rax], 0
	lea	rdx, -2064[rbp]
	lea	rax, -1040[rbp]
	mov	esi, 1024
	mov	rdi, rax
	call	pstrcat
	lea	rdx, -1040[rbp]
	mov	rax, QWORD PTR -2096[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	tcc_open
	mov	QWORD PTR -2112[rbp], rax
	cmp	QWORD PTR -2112[rbp], 0
	je	.L741
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 315
	jne	.L790
	mov	DWORD PTR tok[rip], 314
.L741:
	mov	rax, QWORD PTR -2096[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdx, QWORD PTR -2096[rbp]
	add	rdx, 488
	add	rdx, 256
	cmp	rax, rdx
	jb	.L746
	lea	rdi, .LC30[rip]
	mov	eax, 0
	call	error
.L746:
	mov	rax, QWORD PTR -2096[rbp]
	mov	edx, DWORD PTR 32[rax]
	mov	rax, QWORD PTR -2096[rbp]
	mov	eax, DWORD PTR 48[rax]
	add	eax, edx
	mov	DWORD PTR -2124[rbp], eax
	mov	DWORD PTR -2140[rbp], 0
	jmp	.L747
.L752:
	mov	rax, QWORD PTR -2096[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	DWORD PTR -2140[rbp], eax
	jge	.L748
	mov	rax, QWORD PTR -2096[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -2140[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -2104[rbp], rax
	jmp	.L749
.L748:
	mov	rax, QWORD PTR -2096[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -2096[rbp]
	mov	ecx, DWORD PTR 32[rax]
	mov	eax, DWORD PTR -2140[rbp]
	sub	eax, ecx
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -2104[rbp], rax
.L749:
	mov	rdx, QWORD PTR -2104[rbp]
	lea	rax, -1040[rbp]
	mov	esi, 1024
	mov	rdi, rax
	call	pstrcpy
	lea	rax, -1040[rbp]
	lea	rdx, .LC31[rip]
	mov	esi, 1024
	mov	rdi, rax
	call	pstrcat
	lea	rdx, -2064[rbp]
	lea	rax, -1040[rbp]
	mov	esi, 1024
	mov	rdi, rax
	call	pstrcat
	lea	rdx, -1040[rbp]
	mov	rax, QWORD PTR -2096[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	tcc_open
	mov	QWORD PTR -2112[rbp], rax
	cmp	QWORD PTR -2112[rbp], 0
	je	.L750
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 315
	jne	.L791
	mov	DWORD PTR tok[rip], 314
.L750:
	add	DWORD PTR -2140[rbp], 1
.L747:
	mov	eax, DWORD PTR -2140[rbp]
	cmp	eax, DWORD PTR -2124[rbp]
	jl	.L752
	lea	rax, -2064[rbp]
	mov	rsi, rax
	lea	rdi, .LC32[rip]
	mov	eax, 0
	call	error
	mov	QWORD PTR -2112[rbp], 0
	jmp	.L745
.L790:
	nop
	jmp	.L745
.L791:
	nop
.L745:
	mov	eax, DWORD PTR -2136[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -2112[rbp]
	mov	BYTE PTR 40[rax], dl
	mov	rax, QWORD PTR -2112[rbp]
	lea	rcx, 41[rax]
	lea	rax, -2064[rbp]
	mov	rdx, rax
	mov	esi, 512
	mov	rdi, rcx
	call	pstrcpy
	mov	rax, QWORD PTR -2096[rbp]
	mov	rax, QWORD PTR 8[rax]
	lea	rcx, 8[rax]
	mov	rdx, QWORD PTR -2096[rbp]
	mov	QWORD PTR 8[rdx], rcx
	mov	rdx, QWORD PTR file[rip]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -2112[rbp]
	mov	QWORD PTR file[rip], rax
	mov	eax, DWORD PTR do_debug[rip]
	test	eax, eax
	je	.L753
	mov	rax, QWORD PTR file[rip]
	add	rax, 553
	mov	r8d, 0
	mov	ecx, 0
	mov	edx, 0
	mov	esi, 130
	mov	rdi, rax
	call	put_stabs
.L753:
	mov	eax, DWORD PTR tok_flags[rip]
	or	eax, 3
	mov	DWORD PTR tok_flags[rip], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR ch[rip], eax
	jmp	.L754
.L787:
	jmp	.L720
.L714:
	mov	DWORD PTR -2136[rbp], 1
	jmp	.L755
.L719:
	call	expr_preprocess
	mov	DWORD PTR -2136[rbp], eax
	jmp	.L756
.L715:
	mov	DWORD PTR -2136[rbp], 0
.L755:
	call	next_nomacro
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 255
	jg	.L757
	cmp	DWORD PTR -2136[rbp], 0
	je	.L758
	lea	rax, .LC33[rip]
	jmp	.L759
.L758:
	lea	rax, .LC34[rip]
.L759:
	mov	rsi, rax
	lea	rdi, .LC35[rip]
	mov	eax, 0
	call	error
.L757:
	cmp	DWORD PTR -2148[rbp], 0
	je	.L760
	cmp	DWORD PTR -2136[rbp], 0
	je	.L760
	mov	rax, QWORD PTR file[rip]
	mov	edx, DWORD PTR tok[rip]
	mov	DWORD PTR 24[rax], edx
.L760:
	mov	eax, DWORD PTR tok[rip]
	mov	edi, eax
	call	define_find
	test	rax, rax
	setne	al
	movzx	eax, al
	xor	DWORD PTR -2136[rbp], eax
.L756:
	mov	rax, QWORD PTR -2096[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rdx, QWORD PTR -2096[rbp]
	add	rdx, 744
	add	rdx, 256
	cmp	rax, rdx
	jb	.L761
	lea	rdi, .LC4[rip]
	mov	eax, 0
	call	error
.L761:
	mov	rax, QWORD PTR -2096[rbp]
	mov	rax, QWORD PTR 16[rax]
	lea	rcx, 4[rax]
	mov	rdx, QWORD PTR -2096[rbp]
	mov	QWORD PTR 16[rdx], rcx
	mov	edx, DWORD PTR -2136[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L762
.L718:
	mov	rax, QWORD PTR -2096[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rdx, QWORD PTR -2096[rbp]
	add	rdx, 744
	cmp	rax, rdx
	jne	.L763
	lea	rdi, .LC36[rip]
	mov	eax, 0
	call	error
.L763:
	mov	rax, QWORD PTR -2096[rbp]
	mov	rax, QWORD PTR 16[rax]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	and	eax, 2
	test	eax, eax
	je	.L764
	lea	rdi, .LC37[rip]
	mov	eax, 0
	call	error
.L764:
	mov	rax, QWORD PTR -2096[rbp]
	mov	rax, QWORD PTR 16[rax]
	sub	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -2096[rbp]
	mov	rax, QWORD PTR 16[rax]
	sub	rax, 4
	xor	edx, 3
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2136[rbp], eax
	jmp	.L762
.L713:
	mov	rax, QWORD PTR -2096[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rdx, QWORD PTR -2096[rbp]
	add	rdx, 744
	cmp	rax, rdx
	jne	.L765
	lea	rdi, .LC38[rip]
	mov	eax, 0
	call	error
.L765:
	mov	rax, QWORD PTR -2096[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -4[rax]
	mov	DWORD PTR -2136[rbp], eax
	cmp	DWORD PTR -2136[rbp], 1
	jle	.L766
	lea	rdi, .LC39[rip]
	mov	eax, 0
	call	error
.L766:
	cmp	DWORD PTR -2136[rbp], 1
	je	.L792
	call	expr_preprocess
	mov	DWORD PTR -2136[rbp], eax
	mov	rax, QWORD PTR -2096[rbp]
	mov	rax, QWORD PTR 16[rax]
	lea	rdx, -4[rax]
	mov	eax, DWORD PTR -2136[rbp]
	mov	DWORD PTR [rdx], eax
.L762:
	mov	eax, DWORD PTR -2136[rbp]
	and	eax, 1
	test	eax, eax
	jne	.L793
	jmp	.L768
.L792:
	nop
.L768:
	call	preprocess_skip
	mov	DWORD PTR -2148[rbp], 0
	jmp	.L705
.L712:
	mov	rax, QWORD PTR -2096[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR 32[rax]
	cmp	rdx, rax
	ja	.L770
	lea	rdi, .LC40[rip]
	mov	eax, 0
	call	error
.L770:
	mov	rax, QWORD PTR -2096[rbp]
	mov	rax, QWORD PTR 16[rax]
	lea	rdx, -4[rax]
	mov	rax, QWORD PTR -2096[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR file[rip]
	mov	eax, DWORD PTR 24[rax]
	test	eax, eax
	je	.L794
	mov	rax, QWORD PTR -2096[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR 32[rax]
	cmp	rdx, rax
	jne	.L794
	mov	rdx, QWORD PTR file[rip]
	mov	rax, QWORD PTR file[rip]
	mov	edx, DWORD PTR 24[rdx]
	mov	DWORD PTR 28[rax], edx
	mov	rax, QWORD PTR file[rip]
	mov	DWORD PTR 24[rax], 0
	jmp	.L772
.L773:
	call	next_nomacro
.L772:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 10
	jne	.L773
	mov	eax, DWORD PTR tok_flags[rip]
	or	eax, 4
	mov	DWORD PTR tok_flags[rip], eax
	jmp	.L754
.L709:
	call	next
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 179
	je	.L774
	lea	rdi, .LC41[rip]
	mov	eax, 0
	call	error
.L774:
	mov	edx, DWORD PTR tokc[rip]
	mov	rax, QWORD PTR file[rip]
	sub	edx, 1
	mov	DWORD PTR 20[rax], edx
	call	next
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 10
	je	.L795
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 181
	je	.L776
	lea	rdi, .LC41[rip]
	mov	eax, 0
	call	error
.L776:
	mov	rax, QWORD PTR tokc[rip]
	mov	rax, QWORD PTR 8[rax]
	mov	rdx, QWORD PTR file[rip]
	lea	rcx, 553[rdx]
	mov	rdx, rax
	mov	esi, 1024
	mov	rdi, rcx
	call	pstrcpy
	jmp	.L795
.L710:
	mov	eax, DWORD PTR tok[rip]
	mov	DWORD PTR -2136[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR ch[rip], eax
	call	skip_spaces
	lea	rax, -2064[rbp]
	mov	QWORD PTR -2120[rbp], rax
	jmp	.L777
.L780:
	lea	rdx, -2064[rbp]
	mov	rax, QWORD PTR -2120[rbp]
	sub	rax, rdx
	cmp	rax, 1022
	ja	.L778
	mov	ecx, DWORD PTR ch[rip]
	mov	rax, QWORD PTR -2120[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -2120[rbp], rdx
	mov	edx, ecx
	mov	BYTE PTR [rax], dl
.L778:
	call	minp
.L777:
	mov	eax, DWORD PTR ch[rip]
	cmp	eax, 10
	je	.L779
	mov	eax, DWORD PTR ch[rip]
	cmp	eax, -1
	jne	.L780
.L779:
	mov	rax, QWORD PTR -2120[rbp]
	mov	BYTE PTR [rax], 0
	cmp	DWORD PTR -2136[rbp], 322
	jne	.L781
	lea	rax, -2064[rbp]
	mov	rsi, rax
	lea	rdi, .LC42[rip]
	mov	eax, 0
	call	error
	jmp	.L720
.L781:
	lea	rax, -2064[rbp]
	mov	rsi, rax
	lea	rdi, .LC43[rip]
	mov	eax, 0
	call	warning
	jmp	.L720
.L707:
	mov	rax, QWORD PTR -2096[rbp]
	mov	rdi, rax
	call	pragma_parse
	jmp	.L720
.L706:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 10
	je	.L796
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 33
	je	.L796
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 179
	je	.L796
	mov	eax, DWORD PTR -2132[rbp]
	and	eax, 8
	test	eax, eax
	jne	.L796
	mov	eax, DWORD PTR tok[rip]
	lea	rsi, tokc[rip]
	mov	edi, eax
	call	get_tok_str
	mov	rsi, rax
	lea	rdi, .LC44[rip]
	mov	eax, 0
	call	error
	jmp	.L796
.L788:
	nop
	jmp	.L784
.L793:
	nop
	jmp	.L784
.L794:
	nop
	jmp	.L784
.L795:
	nop
	jmp	.L784
.L796:
	nop
.L720:
	jmp	.L784
.L785:
	call	next_nomacro
.L784:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 10
	jne	.L785
	nop
.L754:
	mov	eax, DWORD PTR -2132[rbp]
	mov	DWORD PTR parse_flags[rip], eax
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L786
	call	__stack_chk_fail@PLT
.L786:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE121:
	.size	preprocess, .-preprocess
	.section	.rodata
	.align 8
.LC45:
	.string	"unknown escape sequence: '\\%c'"
	.align 8
.LC46:
	.string	"unknown escape sequence: '\\x%x'"
	.text
	.type	parse_escape_string, @function
parse_escape_string:
.LFB122:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -36[rbp], edx
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR -8[rbp], rax
.L827:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -16[rbp], eax
	cmp	DWORD PTR -16[rbp], 0
	je	.L831
	cmp	DWORD PTR -16[rbp], 92
	jne	.L832
	add	QWORD PTR -8[rbp], 1
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	sub	eax, 34
	cmp	eax, 86
	ja	.L801
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L803[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L803[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L803:
	.long	.L833-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L833-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L813-.L803
	.long	.L813-.L803
	.long	.L813-.L803
	.long	.L813-.L803
	.long	.L813-.L803
	.long	.L813-.L803
	.long	.L813-.L803
	.long	.L813-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L833-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L833-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L811-.L803
	.long	.L810-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L809-.L803
	.long	.L808-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L807-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L801-.L803
	.long	.L806-.L803
	.long	.L801-.L803
	.long	.L805-.L803
	.long	.L801-.L803
	.long	.L804-.L803
	.long	.L801-.L803
	.long	.L802-.L803
	.text
.L813:
	mov	eax, DWORD PTR -16[rbp]
	sub	eax, 48
	mov	DWORD PTR -12[rbp], eax
	add	QWORD PTR -8[rbp], 1
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	mov	edi, eax
	call	isoct
	test	eax, eax
	je	.L814
	mov	eax, DWORD PTR -12[rbp]
	lea	edx, 0[0+rax*8]
	mov	eax, DWORD PTR -16[rbp]
	add	eax, edx
	sub	eax, 48
	mov	DWORD PTR -12[rbp], eax
	add	QWORD PTR -8[rbp], 1
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	mov	edi, eax
	call	isoct
	test	eax, eax
	je	.L814
	mov	eax, DWORD PTR -12[rbp]
	lea	edx, 0[0+rax*8]
	mov	eax, DWORD PTR -16[rbp]
	add	eax, edx
	sub	eax, 48
	mov	DWORD PTR -12[rbp], eax
	add	QWORD PTR -8[rbp], 1
.L814:
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR -16[rbp], eax
	jmp	.L815
.L802:
	add	QWORD PTR -8[rbp], 1
	mov	DWORD PTR -12[rbp], 0
.L821:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -16[rbp], eax
	cmp	DWORD PTR -16[rbp], 96
	jle	.L816
	cmp	DWORD PTR -16[rbp], 102
	jg	.L816
	sub	DWORD PTR -16[rbp], 87
	jmp	.L817
.L816:
	cmp	DWORD PTR -16[rbp], 64
	jle	.L818
	cmp	DWORD PTR -16[rbp], 70
	jg	.L818
	sub	DWORD PTR -16[rbp], 55
	jmp	.L817
.L818:
	mov	eax, DWORD PTR -16[rbp]
	mov	edi, eax
	call	isnum
	test	eax, eax
	je	.L834
	sub	DWORD PTR -16[rbp], 48
.L817:
	mov	eax, DWORD PTR -12[rbp]
	sal	eax, 4
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	add	eax, edx
	mov	DWORD PTR -12[rbp], eax
	add	QWORD PTR -8[rbp], 1
	jmp	.L821
.L834:
	nop
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR -16[rbp], eax
	jmp	.L815
.L811:
	mov	DWORD PTR -16[rbp], 7
	jmp	.L800
.L810:
	mov	DWORD PTR -16[rbp], 8
	jmp	.L800
.L808:
	mov	DWORD PTR -16[rbp], 12
	jmp	.L800
.L807:
	mov	DWORD PTR -16[rbp], 10
	jmp	.L800
.L806:
	mov	DWORD PTR -16[rbp], 13
	jmp	.L800
.L805:
	mov	DWORD PTR -16[rbp], 9
	jmp	.L800
.L804:
	mov	DWORD PTR -16[rbp], 11
	jmp	.L800
.L809:
	mov	eax, DWORD PTR gnu_ext[rip]
	test	eax, eax
	je	.L835
	mov	DWORD PTR -16[rbp], 27
	jmp	.L800
.L835:
	nop
.L801:
	cmp	DWORD PTR -16[rbp], 32
	jle	.L823
	cmp	DWORD PTR -16[rbp], 126
	jg	.L823
	mov	eax, DWORD PTR -16[rbp]
	mov	esi, eax
	lea	rdi, .LC45[rip]
	mov	eax, 0
	call	warning
	jmp	.L800
.L823:
	mov	eax, DWORD PTR -16[rbp]
	mov	esi, eax
	lea	rdi, .LC46[rip]
	mov	eax, 0
	call	warning
	jmp	.L800
.L832:
	nop
	jmp	.L800
.L833:
	nop
.L800:
	add	QWORD PTR -8[rbp], 1
.L815:
	cmp	DWORD PTR -36[rbp], 0
	jne	.L825
	mov	edx, DWORD PTR -16[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	cstr_ccat
	jmp	.L827
.L825:
	mov	edx, DWORD PTR -16[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	cstr_wccat
	jmp	.L827
.L831:
	nop
	cmp	DWORD PTR -36[rbp], 0
	jne	.L828
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	cstr_ccat
	jmp	.L836
.L828:
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	cstr_wccat
.L836:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE122:
	.size	parse_escape_string, .-parse_escape_string
	.globl	bn_lshift
	.type	bn_lshift, @function
bn_lshift:
.LFB123:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	DWORD PTR -32[rbp], edx
	mov	DWORD PTR -8[rbp], 0
	jmp	.L838
.L839:
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	mov	edx, DWORD PTR -4[rbp]
	mov	ecx, eax
	sal	edx, cl
	mov	ecx, edx
	mov	edx, DWORD PTR -32[rbp]
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rsi, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rsi
	or	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	eax, 32
	sub	eax, DWORD PTR -28[rbp]
	mov	edx, DWORD PTR -4[rbp]
	mov	ecx, eax
	shr	edx, cl
	mov	eax, edx
	mov	DWORD PTR -32[rbp], eax
	add	DWORD PTR -8[rbp], 1
.L838:
	cmp	DWORD PTR -8[rbp], 1
	jle	.L839
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE123:
	.size	bn_lshift, .-bn_lshift
	.globl	bn_zero
	.type	bn_zero, @function
bn_zero:
.LFB124:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -4[rbp], 0
	jmp	.L841
.L842:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	DWORD PTR [rax], 0
	add	DWORD PTR -4[rbp], 1
.L841:
	cmp	DWORD PTR -4[rbp], 1
	jle	.L842
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE124:
	.size	bn_zero, .-bn_zero
	.section	.rodata
.LC47:
	.string	"number too long"
.LC48:
	.string	"invalid digit"
.LC49:
	.string	"exponent"
.LC50:
	.string	"exponent digits"
.LC52:
	.string	"integer constant overflow"
	.align 8
.LC53:
	.string	"three 'l's in integer constant"
.LC54:
	.string	"two 'u's in integer constant"
	.text
	.globl	parse_number
	.type	parse_number, @function
parse_number:
.LFB125:
	.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
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rax, token_buf[rip]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -104[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -60[rbp], eax
	mov	eax, DWORD PTR -60[rbp]
	mov	DWORD PTR -80[rbp], eax
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -104[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -60[rbp], eax
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -48[rbp], rdx
	mov	edx, DWORD PTR -80[rbp]
	mov	BYTE PTR [rax], dl
	mov	DWORD PTR -84[rbp], 10
	cmp	DWORD PTR -80[rbp], 46
	je	.L940
	cmp	DWORD PTR -80[rbp], 48
	jne	.L846
	cmp	DWORD PTR -60[rbp], 120
	je	.L847
	cmp	DWORD PTR -60[rbp], 88
	jne	.L848
.L847:
	sub	QWORD PTR -48[rbp], 1
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -104[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -60[rbp], eax
	mov	DWORD PTR -84[rbp], 16
	jmp	.L846
.L848:
	mov	eax, DWORD PTR tcc_ext[rip]
	test	eax, eax
	je	.L846
	cmp	DWORD PTR -60[rbp], 98
	je	.L849
	cmp	DWORD PTR -60[rbp], 66
	jne	.L846
.L849:
	sub	QWORD PTR -48[rbp], 1
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -104[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -60[rbp], eax
	mov	DWORD PTR -84[rbp], 2
.L846:
	cmp	DWORD PTR -60[rbp], 96
	jle	.L850
	cmp	DWORD PTR -60[rbp], 102
	jg	.L850
	mov	eax, DWORD PTR -60[rbp]
	sub	eax, 87
	mov	DWORD PTR -80[rbp], eax
	jmp	.L851
.L850:
	cmp	DWORD PTR -60[rbp], 64
	jle	.L852
	cmp	DWORD PTR -60[rbp], 70
	jg	.L852
	mov	eax, DWORD PTR -60[rbp]
	sub	eax, 55
	mov	DWORD PTR -80[rbp], eax
	jmp	.L851
.L852:
	mov	eax, DWORD PTR -60[rbp]
	mov	edi, eax
	call	isnum
	test	eax, eax
	je	.L941
	mov	eax, DWORD PTR -60[rbp]
	sub	eax, 48
	mov	DWORD PTR -80[rbp], eax
.L851:
	mov	eax, DWORD PTR -80[rbp]
	cmp	eax, DWORD PTR -84[rbp]
	jge	.L942
	lea	rax, token_buf[rip+1024]
	cmp	QWORD PTR -48[rbp], rax
	jb	.L856
	nop
	jmp	.L857
.L944:
	nop
	jmp	.L857
.L945:
	nop
	jmp	.L857
.L946:
	nop
	jmp	.L857
.L947:
	nop
	jmp	.L857
.L948:
	nop
.L857:
	lea	rdi, .LC47[rip]
	mov	eax, 0
	call	error
.L856:
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -48[rbp], rdx
	mov	edx, DWORD PTR -60[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -104[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -60[rbp], eax
	jmp	.L846
.L941:
	nop
	jmp	.L854
.L942:
	nop
.L854:
	cmp	DWORD PTR -60[rbp], 46
	je	.L858
	cmp	DWORD PTR -60[rbp], 101
	je	.L859
	cmp	DWORD PTR -60[rbp], 69
	jne	.L860
.L859:
	cmp	DWORD PTR -84[rbp], 10
	je	.L858
.L860:
	cmp	DWORD PTR -60[rbp], 112
	je	.L861
	cmp	DWORD PTR -60[rbp], 80
	jne	.L862
.L861:
	cmp	DWORD PTR -84[rbp], 16
	je	.L858
	cmp	DWORD PTR -84[rbp], 2
	jne	.L862
.L858:
	cmp	DWORD PTR -84[rbp], 10
	je	.L863
	mov	rax, QWORD PTR -48[rbp]
	mov	BYTE PTR [rax], 0
	cmp	DWORD PTR -84[rbp], 16
	jne	.L864
	mov	DWORD PTR -76[rbp], 4
	jmp	.L865
.L864:
	mov	DWORD PTR -76[rbp], 2
.L865:
	lea	rax, -16[rbp]
	mov	rdi, rax
	call	bn_zero
	lea	rax, token_buf[rip]
	mov	QWORD PTR -48[rbp], rax
.L871:
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -48[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -80[rbp], eax
	cmp	DWORD PTR -80[rbp], 0
	je	.L943
	cmp	DWORD PTR -80[rbp], 96
	jle	.L868
	sub	DWORD PTR -80[rbp], 87
	jmp	.L869
.L868:
	cmp	DWORD PTR -80[rbp], 64
	jle	.L870
	sub	DWORD PTR -80[rbp], 55
	jmp	.L869
.L870:
	sub	DWORD PTR -80[rbp], 48
.L869:
	mov	edx, DWORD PTR -80[rbp]
	mov	ecx, DWORD PTR -76[rbp]
	lea	rax, -16[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	bn_lshift
	jmp	.L871
.L943:
	nop
	mov	DWORD PTR -72[rbp], 0
	cmp	DWORD PTR -60[rbp], 46
	jne	.L872
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -104[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -60[rbp], eax
.L877:
	mov	eax, DWORD PTR -60[rbp]
	mov	DWORD PTR -80[rbp], eax
	cmp	DWORD PTR -80[rbp], 96
	jle	.L873
	cmp	DWORD PTR -80[rbp], 102
	jg	.L873
	sub	DWORD PTR -80[rbp], 87
	jmp	.L874
.L873:
	cmp	DWORD PTR -80[rbp], 64
	jle	.L875
	cmp	DWORD PTR -80[rbp], 70
	jg	.L875
	sub	DWORD PTR -80[rbp], 55
	jmp	.L874
.L875:
	cmp	DWORD PTR -80[rbp], 47
	jle	.L872
	cmp	DWORD PTR -80[rbp], 57
	jg	.L872
	sub	DWORD PTR -80[rbp], 48
.L874:
	mov	eax, DWORD PTR -80[rbp]
	cmp	eax, DWORD PTR -84[rbp]
	jl	.L876
	lea	rdi, .LC48[rip]
	mov	eax, 0
	call	error
.L876:
	mov	edx, DWORD PTR -80[rbp]
	mov	ecx, DWORD PTR -76[rbp]
	lea	rax, -16[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	bn_lshift
	mov	eax, DWORD PTR -76[rbp]
	add	DWORD PTR -72[rbp], eax
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -104[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -60[rbp], eax
	jmp	.L877
.L872:
	cmp	DWORD PTR -60[rbp], 112
	je	.L878
	cmp	DWORD PTR -60[rbp], 80
	je	.L878
	lea	rdi, .LC49[rip]
	call	expect
.L878:
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -104[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -60[rbp], eax
	mov	DWORD PTR -68[rbp], 1
	mov	DWORD PTR -64[rbp], 0
	cmp	DWORD PTR -60[rbp], 43
	jne	.L879
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -104[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -60[rbp], eax
	jmp	.L880
.L879:
	cmp	DWORD PTR -60[rbp], 45
	jne	.L880
	mov	DWORD PTR -68[rbp], -1
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -104[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -60[rbp], eax
.L880:
	cmp	DWORD PTR -60[rbp], 47
	jle	.L881
	cmp	DWORD PTR -60[rbp], 57
	jle	.L883
.L881:
	lea	rdi, .LC50[rip]
	call	expect
	jmp	.L883
.L885:
	mov	edx, DWORD PTR -64[rbp]
	mov	eax, edx
	sal	eax, 2
	add	eax, edx
	add	eax, eax
	mov	edx, eax
	mov	eax, DWORD PTR -60[rbp]
	add	eax, edx
	sub	eax, 48
	mov	DWORD PTR -64[rbp], eax
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -104[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -60[rbp], eax
.L883:
	cmp	DWORD PTR -60[rbp], 47
	jle	.L884
	cmp	DWORD PTR -60[rbp], 57
	jle	.L885
.L884:
	mov	eax, DWORD PTR -64[rbp]
	imul	eax, DWORD PTR -68[rbp]
	mov	DWORD PTR -64[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	mov	eax, eax
	test	rax, rax
	js	.L886
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	jmp	.L887
.L886:
	mov	rdx, rax
	shr	rdx
	and	eax, 1
	or	rdx, rax
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rdx
	addsd	xmm0, xmm0
.L887:
	movsd	xmm1, QWORD PTR .LC51[rip]
	mulsd	xmm1, xmm0
	mov	eax, DWORD PTR -16[rbp]
	mov	eax, eax
	test	rax, rax
	js	.L888
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	jmp	.L889
.L888:
	mov	rdx, rax
	shr	rdx
	and	eax, 1
	or	rdx, rax
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rdx
	addsd	xmm0, xmm0
.L889:
	addsd	xmm0, xmm1
	movsd	QWORD PTR -24[rbp], xmm0
	mov	eax, DWORD PTR -64[rbp]
	sub	eax, DWORD PTR -72[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	edi, edx
	movq	xmm0, rax
	call	ldexp@PLT
	movq	rax, xmm0
	mov	QWORD PTR -24[rbp], rax
	mov	eax, DWORD PTR -60[rbp]
	mov	edi, eax
	call	toup
	mov	DWORD PTR -80[rbp], eax
	cmp	DWORD PTR -80[rbp], 70
	jne	.L890
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -104[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -60[rbp], eax
	mov	DWORD PTR tok[rip], 185
	pxor	xmm0, xmm0
	cvtsd2ss	xmm0, QWORD PTR -24[rbp]
	movss	DWORD PTR tokc[rip], xmm0
	jmp	.L911
.L890:
	cmp	DWORD PTR -80[rbp], 76
	jne	.L892
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -104[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -60[rbp], eax
	mov	DWORD PTR tok[rip], 193
	fld	QWORD PTR -24[rbp]
	fstp	TBYTE PTR tokc[rip]
	jmp	.L911
.L892:
	mov	DWORD PTR tok[rip], 192
	movsd	xmm0, QWORD PTR -24[rbp]
	movsd	QWORD PTR tokc[rip], xmm0
	jmp	.L911
.L863:
	cmp	DWORD PTR -60[rbp], 46
	jne	.L893
	lea	rax, token_buf[rip+1024]
	cmp	QWORD PTR -48[rbp], rax
	jnb	.L944
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -48[rbp], rdx
	mov	edx, DWORD PTR -60[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -104[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -60[rbp], eax
	jmp	.L895
.L940:
	nop
.L845:
	jmp	.L895
.L897:
	lea	rax, token_buf[rip+1024]
	cmp	QWORD PTR -48[rbp], rax
	jnb	.L945
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -48[rbp], rdx
	mov	edx, DWORD PTR -60[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -104[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -60[rbp], eax
.L895:
	cmp	DWORD PTR -60[rbp], 47
	jle	.L893
	cmp	DWORD PTR -60[rbp], 57
	jle	.L897
.L893:
	cmp	DWORD PTR -60[rbp], 101
	je	.L898
	cmp	DWORD PTR -60[rbp], 69
	jne	.L899
.L898:
	lea	rax, token_buf[rip+1024]
	cmp	QWORD PTR -48[rbp], rax
	jnb	.L946
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -48[rbp], rdx
	mov	edx, DWORD PTR -60[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -104[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -60[rbp], eax
	cmp	DWORD PTR -60[rbp], 45
	je	.L901
	cmp	DWORD PTR -60[rbp], 43
	jne	.L902
.L901:
	lea	rax, token_buf[rip+1024]
	cmp	QWORD PTR -48[rbp], rax
	jnb	.L947
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -48[rbp], rdx
	mov	edx, DWORD PTR -60[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -104[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -60[rbp], eax
.L902:
	cmp	DWORD PTR -60[rbp], 47
	jle	.L904
	cmp	DWORD PTR -60[rbp], 57
	jle	.L906
.L904:
	lea	rdi, .LC50[rip]
	call	expect
	jmp	.L906
.L908:
	lea	rax, token_buf[rip+1024]
	cmp	QWORD PTR -48[rbp], rax
	jnb	.L948
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -48[rbp], rdx
	mov	edx, DWORD PTR -60[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -104[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -60[rbp], eax
.L906:
	cmp	DWORD PTR -60[rbp], 47
	jle	.L899
	cmp	DWORD PTR -60[rbp], 57
	jle	.L908
.L899:
	mov	rax, QWORD PTR -48[rbp]
	mov	BYTE PTR [rax], 0
	mov	eax, DWORD PTR -60[rbp]
	mov	edi, eax
	call	toup
	mov	DWORD PTR -80[rbp], eax
	call	__errno_location@PLT
	mov	DWORD PTR [rax], 0
	cmp	DWORD PTR -80[rbp], 70
	jne	.L909
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -104[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -60[rbp], eax
	mov	DWORD PTR tok[rip], 185
	mov	esi, 0
	lea	rdi, token_buf[rip]
	call	strtof@PLT
	movd	eax, xmm0
	mov	DWORD PTR tokc[rip], eax
	jmp	.L911
.L909:
	cmp	DWORD PTR -80[rbp], 76
	jne	.L910
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -104[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -60[rbp], eax
	mov	DWORD PTR tok[rip], 193
	mov	esi, 0
	lea	rdi, token_buf[rip]
	call	strtold@PLT
	fstp	TBYTE PTR tokc[rip]
	jmp	.L911
.L910:
	mov	DWORD PTR tok[rip], 192
	mov	esi, 0
	lea	rdi, token_buf[rip]
	call	strtod@PLT
	movq	rax, xmm0
	mov	QWORD PTR tokc[rip], rax
	jmp	.L911
.L862:
	mov	rax, QWORD PTR -48[rbp]
	mov	BYTE PTR [rax], 0
	lea	rax, token_buf[rip]
	mov	QWORD PTR -48[rbp], rax
	cmp	DWORD PTR -84[rbp], 10
	jne	.L912
	mov	rax, QWORD PTR -48[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 48
	jne	.L912
	mov	DWORD PTR -84[rbp], 8
	add	QWORD PTR -48[rbp], 1
.L912:
	mov	QWORD PTR -40[rbp], 0
.L919:
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -48[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -80[rbp], eax
	cmp	DWORD PTR -80[rbp], 0
	je	.L949
	cmp	DWORD PTR -80[rbp], 96
	jle	.L915
	sub	DWORD PTR -80[rbp], 87
	jmp	.L916
.L915:
	cmp	DWORD PTR -80[rbp], 64
	jle	.L917
	sub	DWORD PTR -80[rbp], 55
	jmp	.L916
.L917:
	sub	DWORD PTR -80[rbp], 48
	mov	eax, DWORD PTR -80[rbp]
	cmp	eax, DWORD PTR -84[rbp]
	jl	.L916
	lea	rdi, .LC48[rip]
	mov	eax, 0
	call	error
.L916:
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	eax, DWORD PTR -84[rbp]
	cdqe
	imul	rax, QWORD PTR -40[rbp]
	mov	rdx, rax
	mov	eax, DWORD PTR -80[rbp]
	cdqe
	add	rax, rdx
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	cmp	rax, QWORD PTR -32[rbp]
	jnb	.L919
	lea	rdi, .LC52[rip]
	mov	eax, 0
	call	error
	jmp	.L919
.L949:
	nop
	movabs	rax, -4294967296
	and	rax, QWORD PTR -40[rbp]
	test	rax, rax
	je	.L920
	mov	rax, QWORD PTR -40[rbp]
	test	rax, rax
	jns	.L921
	mov	DWORD PTR tok[rip], 202
	jmp	.L922
.L921:
	mov	DWORD PTR tok[rip], 201
	jmp	.L922
.L920:
	mov	eax, 2147483648
	cmp	QWORD PTR -40[rbp], rax
	jb	.L923
	mov	DWORD PTR tok[rip], 200
	jmp	.L922
.L923:
	mov	DWORD PTR tok[rip], 179
.L922:
	mov	DWORD PTR -56[rbp], 0
	mov	DWORD PTR -52[rbp], 0
.L934:
	mov	eax, DWORD PTR -60[rbp]
	mov	edi, eax
	call	toup
	mov	DWORD PTR -80[rbp], eax
	cmp	DWORD PTR -80[rbp], 76
	jne	.L924
	cmp	DWORD PTR -56[rbp], 1
	jle	.L925
	lea	rdi, .LC53[rip]
	mov	eax, 0
	call	error
.L925:
	add	DWORD PTR -56[rbp], 1
	cmp	DWORD PTR -56[rbp], 2
	jne	.L926
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 179
	jne	.L927
	mov	DWORD PTR tok[rip], 201
	jmp	.L926
.L927:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 200
	jne	.L926
	mov	DWORD PTR tok[rip], 202
.L926:
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -104[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -60[rbp], eax
	jmp	.L934
.L924:
	cmp	DWORD PTR -80[rbp], 85
	jne	.L950
	cmp	DWORD PTR -52[rbp], 0
	jle	.L930
	lea	rdi, .LC54[rip]
	mov	eax, 0
	call	error
.L930:
	add	DWORD PTR -52[rbp], 1
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 179
	jne	.L931
	mov	DWORD PTR tok[rip], 200
	jmp	.L932
.L931:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 201
	jne	.L932
	mov	DWORD PTR tok[rip], 202
.L932:
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -104[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -60[rbp], eax
	jmp	.L934
.L950:
	nop
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 179
	je	.L935
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 200
	jne	.L936
.L935:
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR tokc[rip], eax
	jmp	.L911
.L936:
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR tokc[rip], rax
.L911:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L937
	call	__stack_chk_fail@PLT
.L937:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE125:
	.size	parse_number, .-parse_number
	.section	.rodata
.LC56:
	.string	"'.'"
.LC57:
	.string	"empty character constant"
	.align 8
.LC58:
	.string	"multi-character character constant"
.LC59:
	.string	"unrecognized character \\x%02x"
	.text
	.type	next_nomacro1, @function
next_nomacro1:
.LFB126:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	add	rsp, -128
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
.L952:
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -116[rbp], eax
	mov	eax, DWORD PTR -116[rbp]
	sub	eax, 9
	cmp	eax, 117
	ja	.L953
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L955[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L955[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L955:
	.long	.L975-.L955
	.long	.L976-.L955
	.long	.L975-.L955
	.long	.L975-.L955
	.long	.L975-.L955
	.long	.L953-.L955
	.long	.L953-.L955
	.long	.L953-.L955
	.long	.L953-.L955
	.long	.L953-.L955
	.long	.L953-.L955
	.long	.L953-.L955
	.long	.L953-.L955
	.long	.L953-.L955
	.long	.L953-.L955
	.long	.L953-.L955
	.long	.L953-.L955
	.long	.L953-.L955
	.long	.L953-.L955
	.long	.L953-.L955
	.long	.L953-.L955
	.long	.L953-.L955
	.long	.L953-.L955
	.long	.L975-.L955
	.long	.L974-.L955
	.long	.L970-.L955
	.long	.L973-.L955
	.long	.L954-.L955
	.long	.L972-.L955
	.long	.L971-.L955
	.long	.L970-.L955
	.long	.L954-.L955
	.long	.L954-.L955
	.long	.L969-.L955
	.long	.L968-.L955
	.long	.L954-.L955
	.long	.L967-.L955
	.long	.L966-.L955
	.long	.L965-.L955
	.long	.L964-.L955
	.long	.L964-.L955
	.long	.L964-.L955
	.long	.L964-.L955
	.long	.L964-.L955
	.long	.L964-.L955
	.long	.L964-.L955
	.long	.L964-.L955
	.long	.L964-.L955
	.long	.L964-.L955
	.long	.L954-.L955
	.long	.L954-.L955
	.long	.L963-.L955
	.long	.L962-.L955
	.long	.L961-.L955
	.long	.L954-.L955
	.long	.L954-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L960-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L954-.L955
	.long	.L959-.L955
	.long	.L954-.L955
	.long	.L958-.L955
	.long	.L957-.L955
	.long	.L953-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L957-.L955
	.long	.L954-.L955
	.long	.L956-.L955
	.long	.L954-.L955
	.long	.L954-.L955
	.text
.L975:
	add	QWORD PTR -80[rbp], 1
	jmp	.L952
.L959:
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR 8[rax]
	cmp	QWORD PTR -80[rbp], rax
	jb	.L977
	mov	rax, QWORD PTR file[rip]
	mov	rdx, QWORD PTR -80[rbp]
	mov	QWORD PTR [rax], rdx
	call	handle_eob
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR 8[rax]
	cmp	QWORD PTR -80[rbp], rax
	jnb	.L1088
	jmp	.L952
.L977:
	mov	rax, QWORD PTR file[rip]
	mov	rdx, QWORD PTR -80[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR ch[rip], eax
	call	handle_stray
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
	jmp	.L952
.L1088:
	nop
.L979:
	mov	rax, QWORD PTR tcc_state[rip]
	mov	QWORD PTR -56[rbp], rax
	mov	eax, DWORD PTR parse_flags[rip]
	and	eax, 4
	test	eax, eax
	je	.L980
	mov	DWORD PTR tok[rip], 10
	jmp	.L986
.L980:
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdx, QWORD PTR -56[rbp]
	add	rdx, 488
	cmp	rax, rdx
	je	.L982
	mov	eax, DWORD PTR parse_flags[rip]
	and	eax, 1
	test	eax, eax
	jne	.L983
.L982:
	mov	DWORD PTR tok[rip], -1
	jmp	.L986
.L983:
	mov	eax, DWORD PTR tok_flags[rip]
	and	eax, 4
	test	eax, eax
	je	.L984
	mov	rax, QWORD PTR file[rip]
	mov	edx, DWORD PTR 28[rax]
	mov	rax, QWORD PTR file[rip]
	lea	rdi, 41[rax]
	mov	rax, QWORD PTR file[rip]
	movzx	eax, BYTE PTR 40[rax]
	movsx	esi, al
	mov	rax, QWORD PTR -56[rbp]
	mov	ecx, edx
	mov	rdx, rdi
	mov	rdi, rax
	call	add_cached_include
.L984:
	mov	eax, DWORD PTR do_debug[rip]
	test	eax, eax
	je	.L985
	mov	edx, 0
	mov	esi, 0
	mov	edi, 162
	call	put_stabd
.L985:
	mov	rax, QWORD PTR file[rip]
	mov	rdi, rax
	call	tcc_close
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 8[rax]
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR file[rip], rax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
	jmp	.L952
.L976:
	mov	eax, DWORD PTR parse_flags[rip]
	and	eax, 4
	test	eax, eax
	je	.L987
	mov	DWORD PTR tok[rip], 10
	jmp	.L986
.L987:
	mov	rax, QWORD PTR file[rip]
	mov	edx, DWORD PTR 20[rax]
	add	edx, 1
	mov	DWORD PTR 20[rax], edx
	mov	eax, DWORD PTR tok_flags[rip]
	or	eax, 1
	mov	DWORD PTR tok_flags[rip], eax
	add	QWORD PTR -80[rbp], 1
	jmp	.L952
.L973:
	add	QWORD PTR -80[rbp], 1
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -116[rbp], eax
	cmp	DWORD PTR -116[rbp], 92
	jne	.L989
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	handle_stray1
	mov	DWORD PTR -116[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
.L989:
	mov	eax, DWORD PTR tok_flags[rip]
	and	eax, 1
	test	eax, eax
	je	.L990
	mov	eax, DWORD PTR parse_flags[rip]
	and	eax, 1
	test	eax, eax
	je	.L990
	mov	rax, QWORD PTR file[rip]
	mov	rdx, QWORD PTR -80[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, DWORD PTR tok_flags[rip]
	and	eax, 2
	mov	edi, eax
	call	preprocess
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
	jmp	.L952
.L990:
	cmp	DWORD PTR -116[rbp], 35
	jne	.L991
	add	QWORD PTR -80[rbp], 1
	mov	DWORD PTR tok[rip], 182
	jmp	.L986
.L991:
	mov	eax, DWORD PTR parse_flags[rip]
	and	eax, 8
	test	eax, eax
	je	.L993
	mov	rax, QWORD PTR -80[rbp]
	sub	rax, 1
	mov	rdi, rax
	call	parse_line_comment
	mov	QWORD PTR -80[rbp], rax
	jmp	.L952
.L993:
	mov	DWORD PTR tok[rip], 35
	jmp	.L986
.L1093:
	nop
.L957:
	mov	rax, QWORD PTR -80[rbp]
	mov	QWORD PTR -72[rbp], rax
	mov	DWORD PTR -108[rbp], 1
	mov	eax, DWORD PTR -108[rbp]
	imul	edx, eax, 263
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	mov	DWORD PTR -108[rbp], eax
	add	QWORD PTR -80[rbp], 1
.L996:
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -116[rbp], eax
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	lea	rdx, isidnum_table[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	test	al, al
	je	.L1089
	mov	eax, DWORD PTR -108[rbp]
	imul	edx, eax, 263
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	mov	DWORD PTR -108[rbp], eax
	add	QWORD PTR -80[rbp], 1
	jmp	.L996
.L1089:
	nop
	cmp	DWORD PTR -116[rbp], 92
	je	.L997
	mov	rax, QWORD PTR -80[rbp]
	sub	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR -96[rbp], eax
	and	DWORD PTR -108[rbp], 8191
	mov	eax, DWORD PTR -108[rbp]
	lea	rdx, 0[0+rax*8]
	lea	rax, hash_ident[rip]
	add	rax, rdx
	mov	QWORD PTR -64[rbp], rax
.L1002:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -88[rbp], rax
	cmp	QWORD PTR -88[rbp], 0
	je	.L1090
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 44[rax]
	cmp	DWORD PTR -96[rbp], eax
	jne	.L1000
	mov	eax, DWORD PTR -96[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -88[rbp]
	lea	rcx, 48[rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	call	memcmp@PLT
	test	eax, eax
	je	.L1091
.L1000:
	mov	rax, QWORD PTR -88[rbp]
	mov	QWORD PTR -64[rbp], rax
	jmp	.L1002
.L1090:
	nop
	mov	edx, DWORD PTR -96[rbp]
	mov	rcx, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	tok_alloc_new
	mov	QWORD PTR -88[rbp], rax
.L1001:
	jmp	.L1003
.L997:
	lea	rdi, tokcstr[rip]
	call	cstr_free
	jmp	.L1004
.L1005:
	mov	rax, QWORD PTR -72[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	esi, eax
	lea	rdi, tokcstr[rip]
	call	cstr_ccat
	add	QWORD PTR -72[rbp], 1
.L1004:
	mov	rax, QWORD PTR -72[rbp]
	cmp	rax, QWORD PTR -80[rbp]
	jb	.L1005
	sub	QWORD PTR -80[rbp], 1
	add	QWORD PTR -80[rbp], 1
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -116[rbp], eax
	cmp	DWORD PTR -116[rbp], 92
	jne	.L1092
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	handle_stray1
	mov	DWORD PTR -116[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
	jmp	.L1007
.L1092:
	nop
.L1006:
	jmp	.L1007
.L1008:
	mov	eax, DWORD PTR -116[rbp]
	mov	esi, eax
	lea	rdi, tokcstr[rip]
	call	cstr_ccat
	add	QWORD PTR -80[rbp], 1
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -116[rbp], eax
	cmp	DWORD PTR -116[rbp], 92
	jne	.L1007
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	handle_stray1
	mov	DWORD PTR -116[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
.L1007:
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	lea	rdx, isidnum_table[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	test	al, al
	jne	.L1008
	mov	edx, DWORD PTR tokcstr[rip]
	mov	rax, QWORD PTR tokcstr[rip+8]
	mov	esi, edx
	mov	rdi, rax
	call	tok_alloc
	mov	QWORD PTR -88[rbp], rax
	jmp	.L1003
.L1091:
	nop
.L1003:
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 40[rax]
	mov	DWORD PTR tok[rip], eax
	jmp	.L986
.L960:
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -100[rbp], eax
	cmp	DWORD PTR -100[rbp], 92
	je	.L1009
	cmp	DWORD PTR -100[rbp], 39
	je	.L1009
	cmp	DWORD PTR -100[rbp], 34
	jne	.L1093
.L1009:
	add	QWORD PTR -80[rbp], 1
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -116[rbp], eax
	cmp	DWORD PTR -116[rbp], 92
	jne	.L1010
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	handle_stray1
	mov	DWORD PTR -116[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
.L1010:
	cmp	DWORD PTR -116[rbp], 39
	je	.L1011
	cmp	DWORD PTR -116[rbp], 34
	jne	.L1012
.L1011:
	mov	DWORD PTR -112[rbp], 1
	jmp	.L1013
.L1012:
	lea	rdi, tokcstr[rip]
	call	cstr_free
	mov	esi, 76
	lea	rdi, tokcstr[rip]
	call	cstr_ccat
	jmp	.L1006
.L964:
	lea	rdi, tokcstr[rip]
	call	cstr_free
.L1014:
.L1019:
	mov	eax, DWORD PTR -116[rbp]
	mov	DWORD PTR -100[rbp], eax
	mov	eax, DWORD PTR -116[rbp]
	mov	esi, eax
	lea	rdi, tokcstr[rip]
	call	cstr_ccat
	add	QWORD PTR -80[rbp], 1
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -116[rbp], eax
	cmp	DWORD PTR -116[rbp], 92
	jne	.L1015
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	handle_stray1
	mov	DWORD PTR -116[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
.L1015:
	mov	eax, DWORD PTR -116[rbp]
	mov	edi, eax
	call	isnum
	test	eax, eax
	jne	.L1019
	mov	eax, DWORD PTR -116[rbp]
	mov	edi, eax
	call	isid
	test	eax, eax
	jne	.L1019
	cmp	DWORD PTR -116[rbp], 46
	je	.L1019
	cmp	DWORD PTR -116[rbp], 43
	je	.L1017
	cmp	DWORD PTR -116[rbp], 45
	jne	.L1018
.L1017:
	cmp	DWORD PTR -100[rbp], 101
	je	.L1019
	cmp	DWORD PTR -100[rbp], 69
	je	.L1019
	cmp	DWORD PTR -100[rbp], 112
	je	.L1019
	cmp	DWORD PTR -100[rbp], 80
	jne	.L1018
	jmp	.L1019
.L1018:
	mov	esi, 0
	lea	rdi, tokcstr[rip]
	call	cstr_ccat
	lea	rax, tokcstr[rip]
	mov	QWORD PTR tokc[rip], rax
	mov	DWORD PTR tok[rip], 206
	jmp	.L986
.L966:
	add	QWORD PTR -80[rbp], 1
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -116[rbp], eax
	cmp	DWORD PTR -116[rbp], 92
	jne	.L1020
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	handle_stray1
	mov	DWORD PTR -116[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
.L1020:
	mov	eax, DWORD PTR -116[rbp]
	mov	edi, eax
	call	isnum
	test	eax, eax
	je	.L1021
	lea	rdi, tokcstr[rip]
	call	cstr_free
	mov	esi, 46
	lea	rdi, tokcstr[rip]
	call	cstr_ccat
	jmp	.L1019
.L1021:
	cmp	DWORD PTR -116[rbp], 46
	jne	.L1022
	add	QWORD PTR -80[rbp], 1
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -116[rbp], eax
	cmp	DWORD PTR -116[rbp], 92
	jne	.L1023
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	handle_stray1
	mov	DWORD PTR -116[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
.L1023:
	cmp	DWORD PTR -116[rbp], 46
	je	.L1024
	lea	rdi, .LC56[rip]
	call	expect
.L1024:
	add	QWORD PTR -80[rbp], 1
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -116[rbp], eax
	cmp	DWORD PTR -116[rbp], 92
	jne	.L1025
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	handle_stray1
	mov	DWORD PTR -116[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
.L1025:
	mov	DWORD PTR tok[rip], 204
	jmp	.L986
.L1022:
	mov	DWORD PTR tok[rip], 46
	jmp	.L986
.L970:
	mov	DWORD PTR -112[rbp], 0
.L1013:
	mov	eax, DWORD PTR -116[rbp]
	mov	DWORD PTR -92[rbp], eax
	lea	rax, -48[rbp]
	mov	rdi, rax
	call	cstr_new
	lea	rdx, -48[rbp]
	mov	ecx, DWORD PTR -92[rbp]
	mov	rax, QWORD PTR -80[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	parse_pp_string
	mov	QWORD PTR -80[rbp], rax
	lea	rax, -48[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	cstr_ccat
	lea	rdi, tokcstr[rip]
	call	cstr_free
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -112[rbp]
	mov	rsi, rax
	lea	rdi, tokcstr[rip]
	call	parse_escape_string
	lea	rax, -48[rbp]
	mov	rdi, rax
	call	cstr_free
	cmp	DWORD PTR -92[rbp], 39
	jne	.L1027
	cmp	DWORD PTR -112[rbp], 0
	jne	.L1028
	mov	DWORD PTR -104[rbp], 1
	jmp	.L1029
.L1028:
	mov	DWORD PTR -104[rbp], 4
.L1029:
	mov	eax, DWORD PTR tokcstr[rip]
	cmp	DWORD PTR -104[rbp], eax
	jl	.L1030
	lea	rdi, .LC57[rip]
	mov	eax, 0
	call	error
.L1030:
	mov	eax, DWORD PTR tokcstr[rip]
	mov	edx, DWORD PTR -104[rbp]
	add	edx, edx
	cmp	eax, edx
	jle	.L1031
	lea	rdi, .LC58[rip]
	mov	eax, 0
	call	warning
.L1031:
	cmp	DWORD PTR -112[rbp], 0
	jne	.L1032
	mov	rax, QWORD PTR tokcstr[rip+8]
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR tokc[rip], eax
	mov	DWORD PTR tok[rip], 180
	jmp	.L986
.L1032:
	mov	rax, QWORD PTR tokcstr[rip+8]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR tokc[rip], eax
	mov	DWORD PTR tok[rip], 183
	jmp	.L986
.L1027:
	lea	rax, tokcstr[rip]
	mov	QWORD PTR tokc[rip], rax
	cmp	DWORD PTR -112[rbp], 0
	jne	.L1034
	mov	DWORD PTR tok[rip], 181
	jmp	.L986
.L1034:
	mov	DWORD PTR tok[rip], 184
	jmp	.L986
.L963:
	add	QWORD PTR -80[rbp], 1
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -116[rbp], eax
	cmp	DWORD PTR -116[rbp], 92
	jne	.L1035
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	handle_stray1
	mov	DWORD PTR -116[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
.L1035:
	cmp	DWORD PTR -116[rbp], 61
	jne	.L1036
	add	QWORD PTR -80[rbp], 1
	mov	DWORD PTR tok[rip], 158
	jmp	.L986
.L1036:
	cmp	DWORD PTR -116[rbp], 60
	jne	.L1038
	add	QWORD PTR -80[rbp], 1
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -116[rbp], eax
	cmp	DWORD PTR -116[rbp], 92
	jne	.L1039
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	handle_stray1
	mov	DWORD PTR -116[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
.L1039:
	cmp	DWORD PTR -116[rbp], 61
	jne	.L1040
	add	QWORD PTR -80[rbp], 1
	mov	DWORD PTR tok[rip], 129
	jmp	.L986
.L1040:
	mov	DWORD PTR tok[rip], 1
	jmp	.L986
.L1038:
	mov	DWORD PTR tok[rip], 156
	jmp	.L986
.L961:
	add	QWORD PTR -80[rbp], 1
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -116[rbp], eax
	cmp	DWORD PTR -116[rbp], 92
	jne	.L1041
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	handle_stray1
	mov	DWORD PTR -116[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
.L1041:
	cmp	DWORD PTR -116[rbp], 61
	jne	.L1042
	add	QWORD PTR -80[rbp], 1
	mov	DWORD PTR tok[rip], 157
	jmp	.L986
.L1042:
	cmp	DWORD PTR -116[rbp], 62
	jne	.L1044
	add	QWORD PTR -80[rbp], 1
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -116[rbp], eax
	cmp	DWORD PTR -116[rbp], 92
	jne	.L1045
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	handle_stray1
	mov	DWORD PTR -116[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
.L1045:
	cmp	DWORD PTR -116[rbp], 61
	jne	.L1046
	add	QWORD PTR -80[rbp], 1
	mov	DWORD PTR tok[rip], 130
	jmp	.L986
.L1046:
	mov	DWORD PTR tok[rip], 2
	jmp	.L986
.L1044:
	mov	DWORD PTR tok[rip], 159
	jmp	.L986
.L971:
	add	QWORD PTR -80[rbp], 1
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -116[rbp], eax
	cmp	DWORD PTR -116[rbp], 92
	jne	.L1047
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	handle_stray1
	mov	DWORD PTR -116[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
.L1047:
	cmp	DWORD PTR -116[rbp], 38
	jne	.L1048
	add	QWORD PTR -80[rbp], 1
	mov	DWORD PTR tok[rip], 160
	jmp	.L986
.L1048:
	cmp	DWORD PTR -116[rbp], 61
	jne	.L1050
	add	QWORD PTR -80[rbp], 1
	mov	DWORD PTR tok[rip], 166
	jmp	.L986
.L1050:
	mov	DWORD PTR tok[rip], 38
	jmp	.L986
.L956:
	add	QWORD PTR -80[rbp], 1
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -116[rbp], eax
	cmp	DWORD PTR -116[rbp], 92
	jne	.L1051
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	handle_stray1
	mov	DWORD PTR -116[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
.L1051:
	cmp	DWORD PTR -116[rbp], 124
	jne	.L1052
	add	QWORD PTR -80[rbp], 1
	mov	DWORD PTR tok[rip], 161
	jmp	.L986
.L1052:
	cmp	DWORD PTR -116[rbp], 61
	jne	.L1054
	add	QWORD PTR -80[rbp], 1
	mov	DWORD PTR tok[rip], 252
	jmp	.L986
.L1054:
	mov	DWORD PTR tok[rip], 124
	jmp	.L986
.L968:
	add	QWORD PTR -80[rbp], 1
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -116[rbp], eax
	cmp	DWORD PTR -116[rbp], 92
	jne	.L1055
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	handle_stray1
	mov	DWORD PTR -116[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
.L1055:
	cmp	DWORD PTR -116[rbp], 43
	jne	.L1056
	add	QWORD PTR -80[rbp], 1
	mov	DWORD PTR tok[rip], 164
	jmp	.L986
.L1056:
	cmp	DWORD PTR -116[rbp], 61
	jne	.L1058
	add	QWORD PTR -80[rbp], 1
	mov	DWORD PTR tok[rip], 171
	jmp	.L986
.L1058:
	mov	DWORD PTR tok[rip], 43
	jmp	.L986
.L967:
	add	QWORD PTR -80[rbp], 1
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -116[rbp], eax
	cmp	DWORD PTR -116[rbp], 92
	jne	.L1059
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	handle_stray1
	mov	DWORD PTR -116[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
.L1059:
	cmp	DWORD PTR -116[rbp], 45
	jne	.L1060
	add	QWORD PTR -80[rbp], 1
	mov	DWORD PTR tok[rip], 162
	jmp	.L986
.L1060:
	cmp	DWORD PTR -116[rbp], 61
	jne	.L1062
	add	QWORD PTR -80[rbp], 1
	mov	DWORD PTR tok[rip], 173
	jmp	.L986
.L1062:
	cmp	DWORD PTR -116[rbp], 62
	jne	.L1063
	add	QWORD PTR -80[rbp], 1
	mov	DWORD PTR tok[rip], 203
	jmp	.L986
.L1063:
	mov	DWORD PTR tok[rip], 45
	jmp	.L986
.L974:
	add	QWORD PTR -80[rbp], 1
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -116[rbp], eax
	cmp	DWORD PTR -116[rbp], 92
	jne	.L1064
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	handle_stray1
	mov	DWORD PTR -116[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
.L1064:
	cmp	DWORD PTR -116[rbp], 61
	jne	.L1065
	add	QWORD PTR -80[rbp], 1
	mov	DWORD PTR tok[rip], 149
	jmp	.L986
.L1065:
	mov	DWORD PTR tok[rip], 33
	jmp	.L986
.L962:
	add	QWORD PTR -80[rbp], 1
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -116[rbp], eax
	cmp	DWORD PTR -116[rbp], 92
	jne	.L1067
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	handle_stray1
	mov	DWORD PTR -116[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
.L1067:
	cmp	DWORD PTR -116[rbp], 61
	jne	.L1068
	add	QWORD PTR -80[rbp], 1
	mov	DWORD PTR tok[rip], 148
	jmp	.L986
.L1068:
	mov	DWORD PTR tok[rip], 61
	jmp	.L986
.L969:
	add	QWORD PTR -80[rbp], 1
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -116[rbp], eax
	cmp	DWORD PTR -116[rbp], 92
	jne	.L1070
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	handle_stray1
	mov	DWORD PTR -116[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
.L1070:
	cmp	DWORD PTR -116[rbp], 61
	jne	.L1071
	add	QWORD PTR -80[rbp], 1
	mov	DWORD PTR tok[rip], 170
	jmp	.L986
.L1071:
	mov	DWORD PTR tok[rip], 42
	jmp	.L986
.L972:
	add	QWORD PTR -80[rbp], 1
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -116[rbp], eax
	cmp	DWORD PTR -116[rbp], 92
	jne	.L1073
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	handle_stray1
	mov	DWORD PTR -116[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
.L1073:
	cmp	DWORD PTR -116[rbp], 61
	jne	.L1074
	add	QWORD PTR -80[rbp], 1
	mov	DWORD PTR tok[rip], 165
	jmp	.L986
.L1074:
	mov	DWORD PTR tok[rip], 37
	jmp	.L986
.L958:
	add	QWORD PTR -80[rbp], 1
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -116[rbp], eax
	cmp	DWORD PTR -116[rbp], 92
	jne	.L1076
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	handle_stray1
	mov	DWORD PTR -116[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
.L1076:
	cmp	DWORD PTR -116[rbp], 61
	jne	.L1077
	add	QWORD PTR -80[rbp], 1
	mov	DWORD PTR tok[rip], 222
	jmp	.L986
.L1077:
	mov	DWORD PTR tok[rip], 94
	jmp	.L986
.L965:
	add	QWORD PTR -80[rbp], 1
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -116[rbp], eax
	cmp	DWORD PTR -116[rbp], 92
	jne	.L1079
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	handle_stray1
	mov	DWORD PTR -116[rbp], eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
.L1079:
	cmp	DWORD PTR -116[rbp], 42
	jne	.L1080
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	parse_comment
	mov	QWORD PTR -80[rbp], rax
	jmp	.L952
.L1080:
	cmp	DWORD PTR -116[rbp], 47
	jne	.L1081
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	parse_line_comment
	mov	QWORD PTR -80[rbp], rax
	jmp	.L952
.L1081:
	cmp	DWORD PTR -116[rbp], 61
	jne	.L1082
	add	QWORD PTR -80[rbp], 1
	mov	DWORD PTR tok[rip], 175
	jmp	.L986
.L1082:
	mov	DWORD PTR tok[rip], 47
	jmp	.L986
.L954:
	mov	eax, DWORD PTR -116[rbp]
	mov	DWORD PTR tok[rip], eax
	add	QWORD PTR -80[rbp], 1
	jmp	.L986
.L953:
	mov	eax, DWORD PTR -116[rbp]
	mov	esi, eax
	lea	rdi, .LC59[rip]
	mov	eax, 0
	call	error
	nop
.L986:
	mov	rax, QWORD PTR file[rip]
	mov	rdx, QWORD PTR -80[rbp]
	mov	QWORD PTR [rax], rdx
	mov	DWORD PTR tok_flags[rip], 0
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L1084
	call	__stack_chk_fail@PLT
.L1084:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE126:
	.size	next_nomacro1, .-next_nomacro1
	.type	next_nomacro, @function
next_nomacro:
.LFB127:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	rax, QWORD PTR macro_ptr[rip]
	test	rax, rax
	je	.L1095
	nop
.L1096:
	mov	rax, QWORD PTR macro_ptr[rip]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR tok[rip], eax
	mov	eax, DWORD PTR tok[rip]
	test	eax, eax
	je	.L1105
	mov	rax, QWORD PTR macro_ptr[rip]
	lea	rdx, 4[rax]
	mov	QWORD PTR macro_ptr[rip], rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR tok[rip], eax
	mov	eax, DWORD PTR tok[rip]
	sub	eax, 179
	cmp	eax, 27
	ja	.L1106
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L1100[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L1100[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L1100:
	.long	.L1102-.L1100
	.long	.L1102-.L1100
	.long	.L1099-.L1100
	.long	.L1106-.L1100
	.long	.L1102-.L1100
	.long	.L1099-.L1100
	.long	.L1102-.L1100
	.long	.L1102-.L1100
	.long	.L1106-.L1100
	.long	.L1106-.L1100
	.long	.L1106-.L1100
	.long	.L1106-.L1100
	.long	.L1106-.L1100
	.long	.L1101-.L1100
	.long	.L1103-.L1100
	.long	.L1106-.L1100
	.long	.L1106-.L1100
	.long	.L1106-.L1100
	.long	.L1106-.L1100
	.long	.L1106-.L1100
	.long	.L1106-.L1100
	.long	.L1102-.L1100
	.long	.L1101-.L1100
	.long	.L1101-.L1100
	.long	.L1106-.L1100
	.long	.L1106-.L1100
	.long	.L1106-.L1100
	.long	.L1099-.L1100
	.text
.L1102:
	mov	rax, QWORD PTR macro_ptr[rip]
	lea	rdx, 4[rax]
	mov	QWORD PTR macro_ptr[rip], rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR tokc[rip], eax
	jmp	.L1106
.L1099:
	mov	rax, QWORD PTR macro_ptr[rip]
	mov	QWORD PTR tokc[rip], rax
	mov	rdx, QWORD PTR macro_ptr[rip]
	mov	rax, QWORD PTR tokc[rip]
	add	rdx, 32
	mov	QWORD PTR 8[rax], rdx
	mov	rdx, QWORD PTR macro_ptr[rip]
	mov	rax, QWORD PTR tokc[rip]
	mov	eax, DWORD PTR [rax]
	cdqe
	add	rax, 35
	shr	rax, 2
	sal	rax, 2
	add	rax, rdx
	mov	QWORD PTR macro_ptr[rip], rax
	jmp	.L1106
.L1101:
	mov	rax, QWORD PTR macro_ptr[rip]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR tokc[rip], eax
	mov	rax, QWORD PTR macro_ptr[rip]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR tokc[rip+4], eax
	mov	rax, QWORD PTR macro_ptr[rip]
	add	rax, 8
	mov	QWORD PTR macro_ptr[rip], rax
	jmp	.L1106
.L1103:
	mov	rax, QWORD PTR macro_ptr[rip]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR tokc[rip], eax
	mov	rax, QWORD PTR macro_ptr[rip]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR tokc[rip+4], eax
	mov	rax, QWORD PTR macro_ptr[rip]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR tokc[rip+8], eax
	mov	rax, QWORD PTR macro_ptr[rip]
	add	rax, 12
	mov	QWORD PTR macro_ptr[rip], rax
.L1106:
	nop
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 186
	jne	.L1105
	mov	rax, QWORD PTR file[rip]
	mov	edx, DWORD PTR tokc[rip]
	mov	DWORD PTR 20[rax], edx
	jmp	.L1096
.L1095:
	call	next_nomacro1
.L1105:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE127:
	.size	next_nomacro, .-next_nomacro
	.type	macro_arg_subst, @function
macro_arg_subst:
.LFB128:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 160
	mov	QWORD PTR -136[rbp], rdi
	mov	QWORD PTR -144[rbp], rsi
	mov	QWORD PTR -152[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rax, -96[rbp]
	mov	rdi, rax
	call	tok_str_new
	mov	DWORD PTR -128[rbp], 0
.L1156:
	mov	rax, QWORD PTR -144[rbp]
	lea	rdx, 4[rax]
	mov	QWORD PTR -144[rbp], rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -124[rbp], eax
	mov	eax, DWORD PTR -124[rbp]
	sub	eax, 179
	cmp	eax, 27
	ja	.L1159
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L1110[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L1110[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L1110:
	.long	.L1112-.L1110
	.long	.L1112-.L1110
	.long	.L1109-.L1110
	.long	.L1159-.L1110
	.long	.L1112-.L1110
	.long	.L1109-.L1110
	.long	.L1112-.L1110
	.long	.L1112-.L1110
	.long	.L1159-.L1110
	.long	.L1159-.L1110
	.long	.L1159-.L1110
	.long	.L1159-.L1110
	.long	.L1159-.L1110
	.long	.L1111-.L1110
	.long	.L1113-.L1110
	.long	.L1159-.L1110
	.long	.L1159-.L1110
	.long	.L1159-.L1110
	.long	.L1159-.L1110
	.long	.L1159-.L1110
	.long	.L1159-.L1110
	.long	.L1112-.L1110
	.long	.L1111-.L1110
	.long	.L1111-.L1110
	.long	.L1159-.L1110
	.long	.L1159-.L1110
	.long	.L1159-.L1110
	.long	.L1109-.L1110
	.text
.L1112:
	mov	rax, QWORD PTR -144[rbp]
	lea	rdx, 4[rax]
	mov	QWORD PTR -144[rbp], rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	jmp	.L1159
.L1109:
	mov	rax, QWORD PTR -144[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -144[rbp]
	add	rdx, 32
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	add	rax, 35
	shr	rax, 2
	sal	rax, 2
	add	QWORD PTR -144[rbp], rax
	jmp	.L1159
.L1111:
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -28[rbp], eax
	add	QWORD PTR -144[rbp], 8
	jmp	.L1159
.L1113:
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR -24[rbp], eax
	add	QWORD PTR -144[rbp], 12
.L1159:
	nop
	cmp	DWORD PTR -124[rbp], 0
	je	.L1160
	cmp	DWORD PTR -124[rbp], 35
	jne	.L1117
	mov	rax, QWORD PTR -144[rbp]
	lea	rdx, 4[rax]
	mov	QWORD PTR -144[rbp], rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -124[rbp], eax
	mov	eax, DWORD PTR -124[rbp]
	sub	eax, 179
	cmp	eax, 27
	ja	.L1161
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L1120[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L1120[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L1120:
	.long	.L1122-.L1120
	.long	.L1122-.L1120
	.long	.L1119-.L1120
	.long	.L1161-.L1120
	.long	.L1122-.L1120
	.long	.L1119-.L1120
	.long	.L1122-.L1120
	.long	.L1122-.L1120
	.long	.L1161-.L1120
	.long	.L1161-.L1120
	.long	.L1161-.L1120
	.long	.L1161-.L1120
	.long	.L1161-.L1120
	.long	.L1121-.L1120
	.long	.L1123-.L1120
	.long	.L1161-.L1120
	.long	.L1161-.L1120
	.long	.L1161-.L1120
	.long	.L1161-.L1120
	.long	.L1161-.L1120
	.long	.L1161-.L1120
	.long	.L1122-.L1120
	.long	.L1121-.L1120
	.long	.L1121-.L1120
	.long	.L1161-.L1120
	.long	.L1161-.L1120
	.long	.L1161-.L1120
	.long	.L1119-.L1120
	.text
.L1122:
	mov	rax, QWORD PTR -144[rbp]
	lea	rdx, 4[rax]
	mov	QWORD PTR -144[rbp], rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	jmp	.L1161
.L1119:
	mov	rax, QWORD PTR -144[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -144[rbp]
	add	rdx, 32
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	add	rax, 35
	shr	rax, 2
	sal	rax, 2
	add	QWORD PTR -144[rbp], rax
	jmp	.L1161
.L1121:
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -28[rbp], eax
	add	QWORD PTR -144[rbp], 8
	jmp	.L1161
.L1123:
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR -24[rbp], eax
	add	QWORD PTR -144[rbp], 12
.L1161:
	nop
	cmp	DWORD PTR -124[rbp], 0
	je	.L1162
	mov	edx, DWORD PTR -124[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	sym_find2
	mov	QWORD PTR -104[rbp], rax
	cmp	QWORD PTR -104[rbp], 0
	je	.L1126
	lea	rax, -64[rbp]
	mov	rdi, rax
	call	cstr_new
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	QWORD PTR -112[rbp], rax
	mov	DWORD PTR -120[rbp], 0
	jmp	.L1127
.L1136:
	cmp	DWORD PTR -120[rbp], 0
	je	.L1128
	lea	rax, -64[rbp]
	mov	esi, 32
	mov	rdi, rax
	call	cstr_ccat
.L1128:
	mov	rax, QWORD PTR -112[rbp]
	lea	rdx, 4[rax]
	mov	QWORD PTR -112[rbp], rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -124[rbp], eax
	mov	eax, DWORD PTR -124[rbp]
	sub	eax, 179
	cmp	eax, 27
	ja	.L1163
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L1131[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L1131[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L1131:
	.long	.L1133-.L1131
	.long	.L1133-.L1131
	.long	.L1130-.L1131
	.long	.L1163-.L1131
	.long	.L1133-.L1131
	.long	.L1130-.L1131
	.long	.L1133-.L1131
	.long	.L1133-.L1131
	.long	.L1163-.L1131
	.long	.L1163-.L1131
	.long	.L1163-.L1131
	.long	.L1163-.L1131
	.long	.L1163-.L1131
	.long	.L1132-.L1131
	.long	.L1134-.L1131
	.long	.L1163-.L1131
	.long	.L1163-.L1131
	.long	.L1163-.L1131
	.long	.L1163-.L1131
	.long	.L1163-.L1131
	.long	.L1163-.L1131
	.long	.L1133-.L1131
	.long	.L1132-.L1131
	.long	.L1132-.L1131
	.long	.L1163-.L1131
	.long	.L1163-.L1131
	.long	.L1163-.L1131
	.long	.L1130-.L1131
	.text
.L1133:
	mov	rax, QWORD PTR -112[rbp]
	lea	rdx, 4[rax]
	mov	QWORD PTR -112[rbp], rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	jmp	.L1163
.L1130:
	mov	rax, QWORD PTR -112[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -112[rbp]
	add	rdx, 32
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	add	rax, 35
	shr	rax, 2
	sal	rax, 2
	add	QWORD PTR -112[rbp], rax
	jmp	.L1163
.L1132:
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -28[rbp], eax
	add	QWORD PTR -112[rbp], 8
	jmp	.L1163
.L1134:
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR -24[rbp], eax
	add	QWORD PTR -112[rbp], 12
.L1163:
	nop
	lea	rdx, -32[rbp]
	mov	eax, DWORD PTR -124[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	get_tok_str
	mov	rdx, rax
	lea	rax, -64[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	cstr_cat
	mov	DWORD PTR -120[rbp], 1
.L1127:
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L1136
	lea	rax, -64[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	cstr_ccat
	lea	rax, -64[rbp]
	mov	QWORD PTR -32[rbp], rax
	lea	rdx, -32[rbp]
	lea	rax, -96[rbp]
	mov	esi, 181
	mov	rdi, rax
	call	tok_str_add2
	lea	rax, -64[rbp]
	mov	rdi, rax
	call	cstr_free
	jmp	.L1137
.L1126:
	lea	rdx, -32[rbp]
	mov	ecx, DWORD PTR -124[rbp]
	lea	rax, -96[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	tok_str_add2
	jmp	.L1137
.L1117:
	cmp	DWORD PTR -124[rbp], 255
	jle	.L1138
	mov	edx, DWORD PTR -124[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	sym_find2
	mov	QWORD PTR -104[rbp], rax
	cmp	QWORD PTR -104[rbp], 0
	je	.L1139
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 182
	je	.L1140
	cmp	DWORD PTR -128[rbp], 182
	jne	.L1141
.L1140:
	mov	eax, DWORD PTR gnu_ext[rip]
	test	eax, eax
	je	.L1164
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 24[rax]
	test	eax, eax
	je	.L1164
	cmp	DWORD PTR -128[rbp], 182
	jne	.L1164
	mov	eax, DWORD PTR -88[rbp]
	cmp	eax, 1
	jle	.L1164
	mov	rdx, QWORD PTR -96[rbp]
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	sal	rax, 2
	sub	rax, 8
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	eax, 44
	jne	.L1164
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L1143
	mov	eax, DWORD PTR -88[rbp]
	sub	eax, 2
	mov	DWORD PTR -88[rbp], eax
	jmp	.L1145
.L1143:
	mov	eax, DWORD PTR -88[rbp]
	sub	eax, 1
	mov	DWORD PTR -88[rbp], eax
	jmp	.L1154
.L1164:
	nop
.L1142:
.L1154:
	mov	rax, QWORD PTR -112[rbp]
	lea	rdx, 4[rax]
	mov	QWORD PTR -112[rbp], rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -116[rbp], eax
	mov	eax, DWORD PTR -116[rbp]
	sub	eax, 179
	cmp	eax, 27
	ja	.L1165
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L1148[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L1148[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L1148:
	.long	.L1150-.L1148
	.long	.L1150-.L1148
	.long	.L1147-.L1148
	.long	.L1165-.L1148
	.long	.L1150-.L1148
	.long	.L1147-.L1148
	.long	.L1150-.L1148
	.long	.L1150-.L1148
	.long	.L1165-.L1148
	.long	.L1165-.L1148
	.long	.L1165-.L1148
	.long	.L1165-.L1148
	.long	.L1165-.L1148
	.long	.L1149-.L1148
	.long	.L1151-.L1148
	.long	.L1165-.L1148
	.long	.L1165-.L1148
	.long	.L1165-.L1148
	.long	.L1165-.L1148
	.long	.L1165-.L1148
	.long	.L1165-.L1148
	.long	.L1150-.L1148
	.long	.L1149-.L1148
	.long	.L1149-.L1148
	.long	.L1165-.L1148
	.long	.L1165-.L1148
	.long	.L1165-.L1148
	.long	.L1147-.L1148
	.text
.L1150:
	mov	rax, QWORD PTR -112[rbp]
	lea	rdx, 4[rax]
	mov	QWORD PTR -112[rbp], rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	jmp	.L1165
.L1147:
	mov	rax, QWORD PTR -112[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -112[rbp]
	add	rdx, 32
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	add	rax, 35
	shr	rax, 2
	sal	rax, 2
	add	QWORD PTR -112[rbp], rax
	jmp	.L1165
.L1149:
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -28[rbp], eax
	add	QWORD PTR -112[rbp], 8
	jmp	.L1165
.L1151:
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR -24[rbp], eax
	add	QWORD PTR -112[rbp], 12
.L1165:
	nop
	cmp	DWORD PTR -116[rbp], 0
	je	.L1166
	lea	rdx, -32[rbp]
	mov	ecx, DWORD PTR -116[rbp]
	lea	rax, -96[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	tok_str_add2
	jmp	.L1154
.L1166:
	nop
.L1145:
	jmp	.L1137
.L1141:
	mov	rdx, QWORD PTR -112[rbp]
	mov	rsi, QWORD PTR -136[rbp]
	lea	rax, -96[rbp]
	mov	ecx, 0
	mov	rdi, rax
	call	macro_subst
	jmp	.L1137
.L1139:
	mov	edx, DWORD PTR -124[rbp]
	lea	rax, -96[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	tok_str_add
	jmp	.L1137
.L1138:
	lea	rdx, -32[rbp]
	mov	ecx, DWORD PTR -124[rbp]
	lea	rax, -96[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	tok_str_add2
.L1137:
	mov	eax, DWORD PTR -124[rbp]
	mov	DWORD PTR -128[rbp], eax
	jmp	.L1156
.L1160:
	nop
	jmp	.L1116
.L1162:
	nop
.L1116:
	lea	rax, -96[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	tok_str_add
	mov	rax, QWORD PTR -96[rbp]
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1158
	call	__stack_chk_fail@PLT
.L1158:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE128:
	.size	macro_arg_subst, .-macro_arg_subst
	.section	.rodata
	.align 32
	.type	ab_month_name, @object
	.size	ab_month_name, 48
ab_month_name:
	.string	"Jan"
	.string	"Feb"
	.string	"Mar"
	.string	"Apr"
	.string	"May"
	.string	"Jun"
	.string	"Jul"
	.string	"Aug"
	.string	"Sep"
	.string	"Oct"
	.string	"Nov"
	.string	"Dec"
.LC60:
	.string	"%d"
.LC61:
	.string	"%s %2d %d"
.LC62:
	.string	"%02d:%02d:%02d"
	.align 8
.LC63:
	.string	"macro '%s' used with too many args"
.LC64:
	.string	","
	.align 8
.LC65:
	.string	"macro '%s' used with too few args"
	.text
	.type	macro_subst_tok, @function
macro_subst_tok:
.LFB129:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 240
	mov	QWORD PTR -216[rbp], rdi
	mov	QWORD PTR -224[rbp], rsi
	mov	QWORD PTR -232[rbp], rdx
	mov	QWORD PTR -240[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 326
	jne	.L1168
	mov	rax, QWORD PTR file[rip]
	mov	edx, DWORD PTR 20[rax]
	lea	rax, -48[rbp]
	mov	ecx, edx
	lea	rdx, .LC60[rip]
	mov	esi, 32
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	lea	rax, -48[rbp]
	mov	QWORD PTR -160[rbp], rax
	mov	DWORD PTR -188[rbp], 206
	jmp	.L1169
.L1168:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 327
	jne	.L1170
	mov	rax, QWORD PTR file[rip]
	add	rax, 553
	mov	QWORD PTR -160[rbp], rax
	jmp	.L1171
.L1170:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 328
	je	.L1172
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 329
	jne	.L1173
.L1172:
	lea	rax, -128[rbp]
	mov	rdi, rax
	call	time@PLT
	lea	rax, -128[rbp]
	mov	rdi, rax
	call	localtime@PLT
	mov	QWORD PTR -136[rbp], rax
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 328
	jne	.L1174
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 20[rax]
	lea	esi, 1900[rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	ecx, DWORD PTR 12[rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 16[rax]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, ab_month_name[rip]
	add	rdx, rax
	lea	rax, -48[rbp]
	mov	r9d, esi
	mov	r8d, ecx
	mov	rcx, rdx
	lea	rdx, .LC61[rip]
	mov	esi, 32
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	jmp	.L1175
.L1174:
	mov	rax, QWORD PTR -136[rbp]
	mov	esi, DWORD PTR [rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	edx, DWORD PTR 8[rax]
	lea	rax, -48[rbp]
	mov	r9d, esi
	mov	r8d, ecx
	mov	ecx, edx
	lea	rdx, .LC62[rip]
	mov	esi, 32
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
.L1175:
	lea	rax, -48[rbp]
	mov	QWORD PTR -160[rbp], rax
.L1171:
	mov	DWORD PTR -188[rbp], 181
.L1169:
	lea	rax, -96[rbp]
	mov	rdi, rax
	call	cstr_new
	mov	rdx, QWORD PTR -160[rbp]
	lea	rax, -96[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	cstr_cat
	lea	rax, -96[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	cstr_ccat
	lea	rax, -96[rbp]
	mov	QWORD PTR -64[rbp], rax
	lea	rdx, -64[rbp]
	mov	ecx, DWORD PTR -188[rbp]
	mov	rax, QWORD PTR -216[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	tok_str_add2
	lea	rax, -96[rbp]
	mov	rdi, rax
	call	cstr_free
	jmp	.L1176
.L1173:
	mov	rax, QWORD PTR -232[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	QWORD PTR -168[rbp], rax
	mov	DWORD PTR -200[rbp], 0
	mov	rax, QWORD PTR -232[rbp]
	mov	eax, DWORD PTR 24[rax]
	cmp	eax, 1
	jne	.L1177
	nop
.L1178:
	mov	rax, QWORD PTR macro_ptr[rip]
	test	rax, rax
	je	.L1179
	mov	rax, QWORD PTR macro_ptr[rip]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -192[rbp], eax
	cmp	DWORD PTR -192[rbp], 0
	jne	.L1180
	cmp	QWORD PTR -240[rbp], 0
	je	.L1180
	mov	rax, QWORD PTR -240[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -152[rbp], rax
	mov	QWORD PTR macro_ptr[rip], 0
	cmp	QWORD PTR -152[rbp], 0
	je	.L1178
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR macro_ptr[rip], rax
	mov	rax, QWORD PTR -152[rbp]
	mov	QWORD PTR 8[rax], 0
	mov	rax, QWORD PTR -152[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -240[rbp]
	mov	QWORD PTR [rax], rdx
	jmp	.L1178
.L1179:
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR ch[rip], eax
	jmp	.L1182
.L1183:
	call	minp
.L1182:
	mov	eax, DWORD PTR ch[rip]
	mov	edi, eax
	call	is_space
	test	eax, eax
	jne	.L1183
	mov	eax, DWORD PTR ch[rip]
	cmp	eax, 10
	je	.L1183
	mov	eax, DWORD PTR ch[rip]
	mov	DWORD PTR -192[rbp], eax
.L1180:
	cmp	DWORD PTR -192[rbp], 40
	je	.L1184
	mov	eax, -1
	jmp	.L1202
.L1184:
	call	next_nomacro
	call	next_nomacro
	mov	QWORD PTR -184[rbp], 0
	mov	rax, QWORD PTR -232[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	QWORD PTR -176[rbp], rax
.L1198:
	mov	rax, QWORD PTR -184[rbp]
	test	rax, rax
	jne	.L1186
	cmp	QWORD PTR -176[rbp], 0
	jne	.L1186
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 41
	je	.L1204
.L1186:
	cmp	QWORD PTR -176[rbp], 0
	jne	.L1188
	mov	rax, QWORD PTR -232[rbp]
	mov	rax, QWORD PTR [rax]
	mov	esi, 0
	mov	edi, eax
	call	get_tok_str
	mov	rsi, rax
	lea	rdi, .LC63[rip]
	mov	eax, 0
	call	error
.L1188:
	lea	rax, -128[rbp]
	mov	rdi, rax
	call	tok_str_new
	mov	DWORD PTR -196[rbp], 0
	jmp	.L1189
.L1194:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 40
	jne	.L1190
	add	DWORD PTR -196[rbp], 1
	jmp	.L1191
.L1190:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 41
	jne	.L1191
	sub	DWORD PTR -196[rbp], 1
.L1191:
	mov	ecx, DWORD PTR tok[rip]
	lea	rax, -128[rbp]
	lea	rdx, tokc[rip]
	mov	esi, ecx
	mov	rdi, rax
	call	tok_str_add2
	call	next_nomacro
.L1189:
	cmp	DWORD PTR -196[rbp], 0
	jg	.L1192
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 41
	je	.L1193
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 44
	jne	.L1192
	mov	rax, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR 24[rax]
	test	eax, eax
	je	.L1193
.L1192:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, -1
	jne	.L1194
.L1193:
	lea	rax, -128[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	tok_str_add
	mov	rax, QWORD PTR -128[rbp]
	mov	rcx, rax
	mov	rax, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR 24[rax]
	movsx	rdx, eax
	mov	rax, QWORD PTR -176[rbp]
	mov	rax, QWORD PTR [rax]
	and	rax, -536870913
	mov	rsi, rax
	lea	rax, -184[rbp]
	mov	rdi, rax
	call	sym_push2
	mov	rax, QWORD PTR -176[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	QWORD PTR -176[rbp], rax
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 41
	jne	.L1195
	cmp	QWORD PTR -176[rbp], 0
	je	.L1187
	mov	rax, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR 24[rax]
	test	eax, eax
	je	.L1187
	mov	eax, DWORD PTR gnu_ext[rip]
	test	eax, eax
	je	.L1187
	jmp	.L1196
.L1195:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 44
	je	.L1197
	lea	rdi, .LC64[rip]
	call	expect
.L1197:
	call	next_nomacro
.L1196:
	jmp	.L1198
.L1204:
	nop
.L1187:
	cmp	QWORD PTR -176[rbp], 0
	je	.L1199
	mov	rax, QWORD PTR -232[rbp]
	mov	rax, QWORD PTR [rax]
	mov	esi, 0
	mov	edi, eax
	call	get_tok_str
	mov	rsi, rax
	lea	rdi, .LC65[rip]
	mov	eax, 0
	call	error
.L1199:
	mov	rdx, QWORD PTR -184[rbp]
	mov	rcx, QWORD PTR -168[rbp]
	mov	rax, QWORD PTR -224[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	macro_arg_subst
	mov	QWORD PTR -168[rbp], rax
	mov	rax, QWORD PTR -184[rbp]
	mov	QWORD PTR -176[rbp], rax
	jmp	.L1200
.L1201:
	mov	rax, QWORD PTR -176[rbp]
	mov	rax, QWORD PTR 48[rax]
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -176[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rdi, rax
	call	tok_str_free
	mov	rax, QWORD PTR -176[rbp]
	mov	rdi, rax
	call	sym_free
	mov	rax, QWORD PTR -144[rbp]
	mov	QWORD PTR -176[rbp], rax
.L1200:
	cmp	QWORD PTR -176[rbp], 0
	jne	.L1201
	mov	DWORD PTR -200[rbp], 1
.L1177:
	mov	rax, QWORD PTR -232[rbp]
	mov	rsi, QWORD PTR [rax]
	mov	rax, QWORD PTR -224[rbp]
	mov	ecx, 0
	mov	edx, 0
	mov	rdi, rax
	call	sym_push2
	mov	rcx, QWORD PTR -240[rbp]
	mov	rdx, QWORD PTR -168[rbp]
	mov	rsi, QWORD PTR -224[rbp]
	mov	rax, QWORD PTR -216[rbp]
	mov	rdi, rax
	call	macro_subst
	mov	rax, QWORD PTR -224[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	rax, QWORD PTR -224[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -144[rbp]
	mov	rdi, rax
	call	sym_free
	cmp	DWORD PTR -200[rbp], 0
	je	.L1176
	mov	rax, QWORD PTR -168[rbp]
	mov	rdi, rax
	call	tok_str_free
.L1176:
	mov	eax, 0
.L1202:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1203
	call	__stack_chk_fail@PLT
.L1203:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE129:
	.size	macro_subst_tok, .-macro_subst_tok
	.section	.rodata
.LC66:
	.string	">>="
.LC67:
	.string	"<<="
	.align 8
.LC68:
	.string	"pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
	.text
	.type	macro_twosharps, @function
macro_twosharps:
.LFB130:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 208
	mov	QWORD PTR -200[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rax, -32[rbp]
	mov	edx, 16
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	rax, QWORD PTR -200[rbp]
	mov	QWORD PTR -152[rbp], rax
.L1217:
	mov	rax, QWORD PTR -200[rbp]
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -200[rbp]
	lea	rdx, 4[rax]
	mov	QWORD PTR -200[rbp], rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -184[rbp], eax
	mov	eax, DWORD PTR -184[rbp]
	sub	eax, 179
	cmp	eax, 27
	ja	.L1260
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L1208[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L1208[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L1208:
	.long	.L1210-.L1208
	.long	.L1210-.L1208
	.long	.L1207-.L1208
	.long	.L1260-.L1208
	.long	.L1210-.L1208
	.long	.L1207-.L1208
	.long	.L1210-.L1208
	.long	.L1210-.L1208
	.long	.L1260-.L1208
	.long	.L1260-.L1208
	.long	.L1260-.L1208
	.long	.L1260-.L1208
	.long	.L1260-.L1208
	.long	.L1209-.L1208
	.long	.L1211-.L1208
	.long	.L1260-.L1208
	.long	.L1260-.L1208
	.long	.L1260-.L1208
	.long	.L1260-.L1208
	.long	.L1260-.L1208
	.long	.L1260-.L1208
	.long	.L1210-.L1208
	.long	.L1209-.L1208
	.long	.L1209-.L1208
	.long	.L1260-.L1208
	.long	.L1260-.L1208
	.long	.L1260-.L1208
	.long	.L1207-.L1208
	.text
.L1210:
	mov	rax, QWORD PTR -200[rbp]
	lea	rdx, 4[rax]
	mov	QWORD PTR -200[rbp], rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	jmp	.L1260
.L1207:
	mov	rax, QWORD PTR -200[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -200[rbp]
	add	rdx, 32
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	add	rax, 35
	shr	rax, 2
	sal	rax, 2
	add	QWORD PTR -200[rbp], rax
	jmp	.L1260
.L1209:
	mov	rax, QWORD PTR -200[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -200[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -28[rbp], eax
	add	QWORD PTR -200[rbp], 8
	jmp	.L1260
.L1211:
	mov	rax, QWORD PTR -200[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -200[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -200[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR -24[rbp], eax
	add	QWORD PTR -200[rbp], 12
.L1260:
	nop
	cmp	DWORD PTR -184[rbp], 0
	jne	.L1213
	mov	eax, 0
	jmp	.L1255
.L1213:
	mov	rax, QWORD PTR -200[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 182
	je	.L1261
	jmp	.L1217
.L1261:
	nop
	lea	rax, -64[rbp]
	mov	rdi, rax
	call	cstr_new
	lea	rax, -96[rbp]
	mov	rdi, rax
	call	tok_str_new
	mov	eax, DWORD PTR -184[rbp]
	mov	DWORD PTR tok[rip], eax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR tokc[rip], rax
	mov	QWORD PTR tokc[rip+8], rdx
	mov	rax, QWORD PTR -152[rbp]
	mov	QWORD PTR -176[rbp], rax
	jmp	.L1218
.L1226:
	mov	rax, QWORD PTR -176[rbp]
	lea	rdx, 4[rax]
	mov	QWORD PTR -176[rbp], rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -184[rbp], eax
	mov	eax, DWORD PTR -184[rbp]
	sub	eax, 179
	cmp	eax, 27
	ja	.L1262
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L1221[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L1221[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L1221:
	.long	.L1223-.L1221
	.long	.L1223-.L1221
	.long	.L1220-.L1221
	.long	.L1262-.L1221
	.long	.L1223-.L1221
	.long	.L1220-.L1221
	.long	.L1223-.L1221
	.long	.L1223-.L1221
	.long	.L1262-.L1221
	.long	.L1262-.L1221
	.long	.L1262-.L1221
	.long	.L1262-.L1221
	.long	.L1262-.L1221
	.long	.L1222-.L1221
	.long	.L1224-.L1221
	.long	.L1262-.L1221
	.long	.L1262-.L1221
	.long	.L1262-.L1221
	.long	.L1262-.L1221
	.long	.L1262-.L1221
	.long	.L1262-.L1221
	.long	.L1223-.L1221
	.long	.L1222-.L1221
	.long	.L1222-.L1221
	.long	.L1262-.L1221
	.long	.L1262-.L1221
	.long	.L1262-.L1221
	.long	.L1220-.L1221
	.text
.L1223:
	mov	rax, QWORD PTR -176[rbp]
	lea	rdx, 4[rax]
	mov	QWORD PTR -176[rbp], rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	jmp	.L1262
.L1220:
	mov	rax, QWORD PTR -176[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -176[rbp]
	add	rdx, 32
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	add	rax, 35
	shr	rax, 2
	sal	rax, 2
	add	QWORD PTR -176[rbp], rax
	jmp	.L1262
.L1222:
	mov	rax, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -28[rbp], eax
	add	QWORD PTR -176[rbp], 8
	jmp	.L1262
.L1224:
	mov	rax, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR -24[rbp], eax
	add	QWORD PTR -176[rbp], 12
.L1262:
	nop
	lea	rdx, -32[rbp]
	mov	ecx, DWORD PTR -184[rbp]
	lea	rax, -96[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	tok_str_add2
.L1218:
	mov	rax, QWORD PTR -176[rbp]
	cmp	rax, QWORD PTR -144[rbp]
	jb	.L1226
	mov	rax, QWORD PTR macro_ptr[rip]
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -200[rbp]
	mov	QWORD PTR macro_ptr[rip], rax
	jmp	.L1227
.L1251:
	mov	rax, QWORD PTR macro_ptr[rip]
	add	rax, 4
	mov	QWORD PTR macro_ptr[rip], rax
	mov	rax, QWORD PTR macro_ptr[rip]
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR macro_ptr[rip]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -184[rbp], eax
	cmp	DWORD PTR -184[rbp], 0
	je	.L1227
	mov	rax, QWORD PTR macro_ptr[rip]
	lea	rdx, 4[rax]
	mov	QWORD PTR macro_ptr[rip], rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -184[rbp], eax
	mov	eax, DWORD PTR -184[rbp]
	sub	eax, 179
	cmp	eax, 27
	ja	.L1263
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L1230[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L1230[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L1230:
	.long	.L1232-.L1230
	.long	.L1232-.L1230
	.long	.L1229-.L1230
	.long	.L1263-.L1230
	.long	.L1232-.L1230
	.long	.L1229-.L1230
	.long	.L1232-.L1230
	.long	.L1232-.L1230
	.long	.L1263-.L1230
	.long	.L1263-.L1230
	.long	.L1263-.L1230
	.long	.L1263-.L1230
	.long	.L1263-.L1230
	.long	.L1231-.L1230
	.long	.L1233-.L1230
	.long	.L1263-.L1230
	.long	.L1263-.L1230
	.long	.L1263-.L1230
	.long	.L1263-.L1230
	.long	.L1263-.L1230
	.long	.L1263-.L1230
	.long	.L1232-.L1230
	.long	.L1231-.L1230
	.long	.L1231-.L1230
	.long	.L1263-.L1230
	.long	.L1263-.L1230
	.long	.L1263-.L1230
	.long	.L1229-.L1230
	.text
.L1232:
	mov	rax, QWORD PTR macro_ptr[rip]
	lea	rdx, 4[rax]
	mov	QWORD PTR macro_ptr[rip], rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	jmp	.L1263
.L1229:
	mov	rax, QWORD PTR macro_ptr[rip]
	mov	QWORD PTR -32[rbp], rax
	mov	rdx, QWORD PTR macro_ptr[rip]
	mov	rax, QWORD PTR -32[rbp]
	add	rdx, 32
	mov	QWORD PTR 8[rax], rdx
	mov	rdx, QWORD PTR macro_ptr[rip]
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	add	rax, 35
	shr	rax, 2
	sal	rax, 2
	add	rax, rdx
	mov	QWORD PTR macro_ptr[rip], rax
	jmp	.L1263
.L1231:
	mov	rax, QWORD PTR macro_ptr[rip]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR macro_ptr[rip]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR macro_ptr[rip]
	add	rax, 8
	mov	QWORD PTR macro_ptr[rip], rax
	jmp	.L1263
.L1233:
	mov	rax, QWORD PTR macro_ptr[rip]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR macro_ptr[rip]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR macro_ptr[rip]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR macro_ptr[rip]
	add	rax, 12
	mov	QWORD PTR macro_ptr[rip], rax
.L1263:
	nop
	lea	rax, -64[rbp]
	mov	rdi, rax
	call	cstr_free
	mov	eax, DWORD PTR tok[rip]
	lea	rsi, tokc[rip]
	mov	edi, eax
	call	get_tok_str
	mov	QWORD PTR -128[rbp], rax
	mov	rdx, QWORD PTR -128[rbp]
	lea	rax, -64[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	cstr_cat
	lea	rdx, -32[rbp]
	mov	eax, DWORD PTR -184[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	get_tok_str
	mov	QWORD PTR -120[rbp], rax
	mov	rdx, QWORD PTR -120[rbp]
	lea	rax, -64[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	cstr_cat
	lea	rax, -64[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	cstr_ccat
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 255
	jg	.L1235
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 206
	jne	.L1236
.L1235:
	cmp	DWORD PTR -184[rbp], 255
	jg	.L1237
	cmp	DWORD PTR -184[rbp], 206
	jne	.L1236
.L1237:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 206
	jne	.L1238
	lea	rax, -64[rbp]
	mov	QWORD PTR tokc[rip], rax
	jmp	.L1227
.L1238:
	cmp	DWORD PTR -184[rbp], 206
	jne	.L1240
	mov	rax, QWORD PTR -120[rbp]
	mov	QWORD PTR -168[rbp], rax
.L1244:
	mov	rax, QWORD PTR -168[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -180[rbp], eax
	cmp	DWORD PTR -180[rbp], 0
	je	.L1264
	add	QWORD PTR -168[rbp], 1
	mov	eax, DWORD PTR -180[rbp]
	mov	edi, eax
	call	isnum
	test	eax, eax
	jne	.L1244
	mov	eax, DWORD PTR -180[rbp]
	mov	edi, eax
	call	isid
	test	eax, eax
	je	.L1265
	jmp	.L1244
.L1264:
	nop
.L1240:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	tok_alloc
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR 40[rax]
	mov	DWORD PTR tok[rip], eax
	jmp	.L1227
.L1236:
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	lea	rsi, .LC66[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L1245
	mov	DWORD PTR tok[rip], 130
	jmp	.L1227
.L1245:
	mov	rax, QWORD PTR -104[rbp]
	lea	rsi, .LC67[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L1246
	mov	DWORD PTR tok[rip], 129
	jmp	.L1227
.L1246:
	mov	rax, QWORD PTR -104[rbp]
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 2
	jne	.L1266
	lea	rax, tok_two_chars[rip]
	mov	QWORD PTR -160[rbp], rax
.L1250:
	mov	rax, QWORD PTR -160[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L1267
	mov	rax, QWORD PTR -160[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -104[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	cmp	edx, eax
	jne	.L1248
	mov	rax, QWORD PTR -160[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	cmp	edx, eax
	je	.L1268
.L1248:
	add	QWORD PTR -160[rbp], 3
	jmp	.L1250
.L1268:
	nop
	mov	rax, QWORD PTR -160[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR tok[rip], eax
	jmp	.L1227
.L1265:
	nop
	jmp	.L1243
.L1266:
	nop
	jmp	.L1243
.L1267:
	nop
.L1243:
	lea	rax, -64[rbp]
	mov	rdi, rax
	call	cstr_free
	mov	eax, DWORD PTR tok[rip]
	lea	rsi, tokc[rip]
	mov	edi, eax
	call	get_tok_str
	mov	QWORD PTR -128[rbp], rax
	mov	rdx, QWORD PTR -128[rbp]
	lea	rax, -64[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	cstr_cat
	lea	rax, -64[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	cstr_ccat
	lea	rdx, -32[rbp]
	mov	eax, DWORD PTR -184[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	get_tok_str
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR -120[rbp]
	mov	rsi, rax
	lea	rdi, .LC68[rip]
	mov	eax, 0
	call	warning
	mov	ecx, DWORD PTR tok[rip]
	lea	rax, -96[rbp]
	lea	rdx, tokc[rip]
	mov	esi, ecx
	mov	rdi, rax
	call	tok_str_add2
	mov	eax, DWORD PTR -184[rbp]
	mov	DWORD PTR tok[rip], eax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR tokc[rip], rax
	mov	QWORD PTR tokc[rip+8], rdx
.L1227:
	mov	rax, QWORD PTR macro_ptr[rip]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 182
	je	.L1251
	mov	ecx, DWORD PTR tok[rip]
	lea	rax, -96[rbp]
	lea	rdx, tokc[rip]
	mov	esi, ecx
	mov	rdi, rax
	call	tok_str_add2
	call	next_nomacro
	mov	eax, DWORD PTR tok[rip]
	test	eax, eax
	je	.L1269
	jmp	.L1227
.L1269:
	nop
	mov	rax, QWORD PTR -136[rbp]
	mov	QWORD PTR macro_ptr[rip], rax
	lea	rax, -64[rbp]
	mov	rdi, rax
	call	cstr_free
	lea	rax, -96[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	tok_str_add
	mov	rax, QWORD PTR -96[rbp]
.L1255:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1256
	call	__stack_chk_fail@PLT
.L1256:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE130:
	.size	macro_twosharps, .-macro_twosharps
	.type	macro_subst, @function
macro_subst:
.LFB131:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 112
	mov	QWORD PTR -88[rbp], rdi
	mov	QWORD PTR -96[rbp], rsi
	mov	QWORD PTR -104[rbp], rdx
	mov	QWORD PTR -112[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -104[rbp]
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	macro_twosharps
	mov	QWORD PTR -64[rbp], rax
	cmp	QWORD PTR -64[rbp], 0
	je	.L1287
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR -72[rbp], rax
.L1287:
	cmp	QWORD PTR -72[rbp], 0
	je	.L1290
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, 4[rax]
	mov	QWORD PTR -72[rbp], rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -80[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	sub	eax, 179
	cmp	eax, 27
	ja	.L1291
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L1276[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L1276[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L1276:
	.long	.L1278-.L1276
	.long	.L1278-.L1276
	.long	.L1275-.L1276
	.long	.L1291-.L1276
	.long	.L1278-.L1276
	.long	.L1275-.L1276
	.long	.L1278-.L1276
	.long	.L1278-.L1276
	.long	.L1291-.L1276
	.long	.L1291-.L1276
	.long	.L1291-.L1276
	.long	.L1291-.L1276
	.long	.L1291-.L1276
	.long	.L1277-.L1276
	.long	.L1279-.L1276
	.long	.L1291-.L1276
	.long	.L1291-.L1276
	.long	.L1291-.L1276
	.long	.L1291-.L1276
	.long	.L1291-.L1276
	.long	.L1291-.L1276
	.long	.L1278-.L1276
	.long	.L1277-.L1276
	.long	.L1277-.L1276
	.long	.L1291-.L1276
	.long	.L1291-.L1276
	.long	.L1291-.L1276
	.long	.L1275-.L1276
	.text
.L1278:
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, 4[rax]
	mov	QWORD PTR -72[rbp], rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	jmp	.L1291
.L1275:
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -72[rbp]
	add	rdx, 32
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	add	rax, 35
	shr	rax, 2
	sal	rax, 2
	add	QWORD PTR -72[rbp], rax
	jmp	.L1291
.L1277:
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -28[rbp], eax
	add	QWORD PTR -72[rbp], 8
	jmp	.L1291
.L1279:
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR -24[rbp], eax
	add	QWORD PTR -72[rbp], 12
.L1291:
	nop
	cmp	DWORD PTR -80[rbp], 0
	je	.L1292
	mov	eax, DWORD PTR -80[rbp]
	mov	edi, eax
	call	define_find
	mov	QWORD PTR -56[rbp], rax
	cmp	QWORD PTR -56[rbp], 0
	je	.L1293
	mov	rax, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR -80[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	sym_find2
	test	rax, rax
	jne	.L1294
	mov	rax, QWORD PTR macro_ptr[rip]
	mov	QWORD PTR -40[rbp], rax
	cmp	QWORD PTR -112[rbp], 0
	je	.L1284
	mov	rax, QWORD PTR -112[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	lea	rdx, -48[rbp]
	mov	QWORD PTR [rax], rdx
.L1284:
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR macro_ptr[rip], rax
	mov	eax, DWORD PTR -80[rbp]
	mov	DWORD PTR tok[rip], eax
	mov	rcx, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	macro_subst_tok
	mov	DWORD PTR -76[rbp], eax
	mov	rax, QWORD PTR macro_ptr[rip]
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR macro_ptr[rip], rax
	cmp	QWORD PTR -112[rbp], 0
	je	.L1285
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR [rax]
	lea	rax, -48[rbp]
	cmp	rdx, rax
	jne	.L1285
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -112[rbp]
	mov	QWORD PTR [rax], rdx
.L1285:
	cmp	DWORD PTR -76[rbp], 0
	je	.L1287
	jmp	.L1282
.L1293:
	nop
	jmp	.L1282
.L1294:
	nop
.L1282:
	lea	rdx, -32[rbp]
	mov	ecx, DWORD PTR -80[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	tok_str_add2
	jmp	.L1287
.L1290:
	nop
	jmp	.L1273
.L1292:
	nop
.L1273:
	cmp	QWORD PTR -64[rbp], 0
	je	.L1295
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, rax
	call	tok_str_free
.L1295:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L1289
	call	__stack_chk_fail@PLT
.L1289:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE131:
	.size	macro_subst, .-macro_subst
	.type	next, @function
next:
.LFB132:
	.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	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
.L1297:
	call	next_nomacro
	mov	rax, QWORD PTR macro_ptr[rip]
	test	rax, rax
	jne	.L1298
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 255
	jle	.L1299
	mov	eax, DWORD PTR parse_flags[rip]
	and	eax, 1
	test	eax, eax
	je	.L1299
	mov	eax, DWORD PTR tok[rip]
	mov	edi, eax
	call	define_find
	mov	QWORD PTR -40[rbp], rax
	cmp	QWORD PTR -40[rbp], 0
	je	.L1299
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	tok_str_new
	mov	QWORD PTR -56[rbp], 0
	mov	QWORD PTR -48[rbp], 0
	lea	rcx, -48[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	lea	rsi, -56[rbp]
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	macro_subst_tok
	test	eax, eax
	jne	.L1299
	lea	rax, -32[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	tok_str_add
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR macro_ptr[rip], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR macro_ptr_allocated[rip], rax
	jmp	.L1297
.L1298:
	mov	eax, DWORD PTR tok[rip]
	test	eax, eax
	jne	.L1299
	mov	eax, DWORD PTR unget_buffer_enabled[rip]
	test	eax, eax
	je	.L1300
	mov	rax, QWORD PTR unget_saved_macro_ptr[rip]
	mov	QWORD PTR macro_ptr[rip], rax
	mov	DWORD PTR unget_buffer_enabled[rip], 0
	jmp	.L1297
.L1300:
	mov	rax, QWORD PTR macro_ptr_allocated[rip]
	mov	rdi, rax
	call	tok_str_free
	mov	QWORD PTR macro_ptr[rip], 0
	jmp	.L1297
.L1299:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 206
	jne	.L1304
	mov	eax, DWORD PTR parse_flags[rip]
	and	eax, 2
	test	eax, eax
	je	.L1304
	mov	rax, QWORD PTR tokc[rip]
	mov	rax, QWORD PTR 8[rax]
	mov	rdi, rax
	call	parse_number
.L1304:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L1303
	call	__stack_chk_fail@PLT
.L1303:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE132:
	.size	next, .-next
	.type	unget_tok, @function
unget_tok:
.LFB133:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	rax, QWORD PTR macro_ptr[rip]
	mov	QWORD PTR unget_saved_macro_ptr[rip], rax
	mov	DWORD PTR unget_buffer_enabled[rip], 1
	lea	rax, unget_saved_buffer[rip]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR macro_ptr[rip], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 4[rax]
	mov	QWORD PTR -8[rbp], rdx
	mov	edx, DWORD PTR tok[rip]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR tok[rip]
	mov	edi, eax
	call	tok_ext_size
	sub	eax, 1
	mov	DWORD PTR -12[rbp], eax
	mov	DWORD PTR -16[rbp], 0
	jmp	.L1306
.L1307:
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 4[rax]
	mov	QWORD PTR -8[rbp], rdx
	mov	edx, DWORD PTR -16[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, tokc[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	mov	DWORD PTR [rax], edx
	add	DWORD PTR -16[rbp], 1
.L1306:
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, DWORD PTR -12[rbp]
	jl	.L1307
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], 0
	mov	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR tok[rip], eax
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE133:
	.size	unget_tok, .-unget_tok
	.globl	swap
	.type	swap, @function
swap:
.LFB134:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR -4[rbp]
	mov	DWORD PTR [rax], edx
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE134:
	.size	swap, .-swap
	.globl	vsetc
	.type	vsetc, @function
vsetc:
.LFB135:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR vtop[rip]
	lea	rdx, vstack[rip+16320]
	cmp	rax, rdx
	jb	.L1310
	lea	rdi, .LC4[rip]
	mov	eax, 0
	call	error
.L1310:
	mov	rax, QWORD PTR vtop[rip]
	lea	rdx, vstack[rip]
	cmp	rax, rdx
	jb	.L1311
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 255
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 243
	je	.L1312
	mov	eax, DWORD PTR -4[rbp]
	and	eax, -2
	cmp	eax, 244
	jne	.L1311
.L1312:
	mov	edi, 1
	call	gv
.L1311:
	mov	rax, QWORD PTR vtop[rip]
	add	rax, 64
	mov	QWORD PTR vtop[rip], rax
	mov	rcx, QWORD PTR vtop[rip]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR [rcx], rax
	mov	QWORD PTR 8[rcx], rdx
	mov	rax, QWORD PTR vtop[rip]
	mov	edx, DWORD PTR -28[rbp]
	mov	WORD PTR 16[rax], dx
	mov	rax, QWORD PTR vtop[rip]
	mov	WORD PTR 18[rax], 240
	mov	rcx, QWORD PTR vtop[rip]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR 32[rcx], rax
	mov	QWORD PTR 40[rcx], rdx
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE135:
	.size	vsetc, .-vsetc
	.globl	vpushi
	.type	vpushi, @function
vpushi:
.LFB136:
	.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	DWORD PTR -36[rbp], edi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR -36[rbp]
	mov	DWORD PTR -32[rbp], eax
	lea	rax, -32[rbp]
	mov	rdx, rax
	mov	esi, 240
	lea	rdi, int_type[rip]
	call	vsetc
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L1314
	call	__stack_chk_fail@PLT
.L1314:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE136:
	.size	vpushi, .-vpushi
	.type	get_sym_ref, @function
get_sym_ref:
.LFB137:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -48[rbp], rcx
	mov	rax, QWORD PTR anon_sym[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR anon_sym[rip], rdx
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	or	ah, 1
	mov	ecx, eax
	mov	eax, DWORD PTR -12[rbp]
	mov	edx, 0
	mov	esi, ecx
	mov	edi, eax
	call	global_identifier_push
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], 752
	mov	rcx, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	put_extern_sym
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE137:
	.size	get_sym_ref, .-get_sym_ref
	.type	vpush_ref, @function
vpush_ref:
.LFB138:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 72
	.cfi_offset 3, -24
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	QWORD PTR -72[rbp], rdx
	mov	QWORD PTR -80[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -48[rbp], 0
	lea	rdx, -48[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 752
	mov	rdi, rax
	call	vsetc
	mov	rbx, QWORD PTR vtop[rip]
	mov	rcx, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR -72[rbp]
	mov	rsi, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	get_sym_ref
	mov	QWORD PTR 48[rbx], rax
	nop
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L1318
	call	__stack_chk_fail@PLT
.L1318:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE138:
	.size	vpush_ref, .-vpush_ref
	.type	external_global_sym, @function
external_global_sym:
.LFB139:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -24[rbp], edx
	mov	eax, DWORD PTR -20[rbp]
	mov	edi, eax
	call	sym_find
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L1320
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	or	al, -128
	mov	ecx, eax
	mov	eax, DWORD PTR -20[rbp]
	mov	edx, 0
	mov	esi, ecx
	mov	edi, eax
	call	global_identifier_push
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	eax, DWORD PTR -24[rbp]
	or	eax, 752
	movsx	rdx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], rdx
.L1320:
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE139:
	.size	external_global_sym, .-external_global_sym
	.section	.rodata
	.align 8
.LC69:
	.string	"incompatible types for redefinition of '%s'"
	.text
	.type	external_sym, @function
external_sym:
.LFB140:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -24[rbp], edx
	mov	eax, DWORD PTR -20[rbp]
	mov	edi, eax
	call	sym_find
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L1323
	mov	eax, DWORD PTR -24[rbp]
	or	eax, 752
	mov	edx, eax
	mov	rsi, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR -20[rbp]
	mov	ecx, 0
	mov	edi, eax
	call	sym_push
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 24[rax]
	or	al, -128
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 24[rax], edx
	jmp	.L1324
.L1323:
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 24[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	is_compatible_types
	test	eax, eax
	jne	.L1324
	mov	eax, DWORD PTR -20[rbp]
	mov	esi, 0
	mov	edi, eax
	call	get_tok_str
	mov	rsi, rax
	lea	rdi, .LC69[rip]
	mov	eax, 0
	call	error
.L1324:
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE140:
	.size	external_sym, .-external_sym
	.type	vpush_global_sym, @function
vpush_global_sym:
.LFB141:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	DWORD PTR -60[rbp], esi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -60[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	edi, eax
	call	external_global_sym
	mov	QWORD PTR -40[rbp], rax
	mov	DWORD PTR -32[rbp], 0
	lea	rdx, -32[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 752
	mov	rdi, rax
	call	vsetc
	mov	rax, QWORD PTR vtop[rip]
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 48[rax], rdx
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L1327
	call	__stack_chk_fail@PLT
.L1327:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE141:
	.size	vpush_global_sym, .-vpush_global_sym
	.globl	vset
	.type	vset, @function
vset:
.LFB142:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	DWORD PTR -48[rbp], edx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR -48[rbp]
	mov	DWORD PTR -32[rbp], eax
	lea	rdx, -32[rbp]
	mov	ecx, DWORD PTR -44[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	vsetc
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L1329
	call	__stack_chk_fail@PLT
.L1329:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE142:
	.size	vset, .-vset
	.globl	vseti
	.type	vseti, @function
vseti:
.LFB143:
	.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	DWORD PTR -36[rbp], edi
	mov	DWORD PTR -40[rbp], esi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -32[rbp], 0
	mov	edx, DWORD PTR -40[rbp]
	mov	ecx, DWORD PTR -36[rbp]
	lea	rax, -32[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	vset
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L1331
	call	__stack_chk_fail@PLT
.L1331:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE143:
	.size	vseti, .-vseti
	.globl	vswap
	.type	vswap, @function
vswap:
.LFB144:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 88
	.cfi_offset 3, -24
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR vtop[rip]
	mov	rcx, QWORD PTR [rax]
	mov	rbx, QWORD PTR 8[rax]
	mov	QWORD PTR -96[rbp], rcx
	mov	QWORD PTR -88[rbp], rbx
	mov	rcx, QWORD PTR 16[rax]
	mov	rbx, QWORD PTR 24[rax]
	mov	QWORD PTR -80[rbp], rcx
	mov	QWORD PTR -72[rbp], rbx
	mov	rcx, QWORD PTR 32[rax]
	mov	rbx, QWORD PTR 40[rax]
	mov	QWORD PTR -64[rbp], rcx
	mov	QWORD PTR -56[rbp], rbx
	mov	rdx, QWORD PTR 56[rax]
	mov	rax, QWORD PTR 48[rax]
	mov	QWORD PTR -48[rbp], rax
	mov	QWORD PTR -40[rbp], rdx
	mov	rdx, QWORD PTR vtop[rip]
	mov	rax, QWORD PTR vtop[rip]
	mov	rcx, QWORD PTR -64[rdx]
	mov	rbx, QWORD PTR -56[rdx]
	mov	QWORD PTR [rax], rcx
	mov	QWORD PTR 8[rax], rbx
	mov	rcx, QWORD PTR -48[rdx]
	mov	rbx, QWORD PTR -40[rdx]
	mov	QWORD PTR 16[rax], rcx
	mov	QWORD PTR 24[rax], rbx
	mov	rcx, QWORD PTR -32[rdx]
	mov	rbx, QWORD PTR -24[rdx]
	mov	QWORD PTR 32[rax], rcx
	mov	QWORD PTR 40[rax], rbx
	mov	rcx, QWORD PTR -16[rdx]
	mov	rbx, QWORD PTR -8[rdx]
	mov	QWORD PTR 48[rax], rcx
	mov	QWORD PTR 56[rax], rbx
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	rcx, QWORD PTR -96[rbp]
	mov	rbx, QWORD PTR -88[rbp]
	mov	QWORD PTR [rax], rcx
	mov	QWORD PTR 8[rax], rbx
	mov	rcx, QWORD PTR -80[rbp]
	mov	rbx, QWORD PTR -72[rbp]
	mov	QWORD PTR 16[rax], rcx
	mov	QWORD PTR 24[rax], rbx
	mov	rcx, QWORD PTR -64[rbp]
	mov	rbx, QWORD PTR -56[rbp]
	mov	QWORD PTR 32[rax], rcx
	mov	QWORD PTR 40[rax], rbx
	mov	rcx, QWORD PTR -48[rbp]
	mov	rbx, QWORD PTR -40[rbp]
	mov	QWORD PTR 48[rax], rcx
	mov	QWORD PTR 56[rax], rbx
	nop
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L1333
	call	__stack_chk_fail@PLT
.L1333:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE144:
	.size	vswap, .-vswap
	.globl	vpushv
	.type	vpushv, @function
vpushv:
.LFB145:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 24
	.cfi_offset 3, -24
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR vtop[rip]
	lea	rdx, vstack[rip+16320]
	cmp	rax, rdx
	jb	.L1335
	lea	rdi, .LC4[rip]
	mov	eax, 0
	call	error
.L1335:
	mov	rax, QWORD PTR vtop[rip]
	add	rax, 64
	mov	QWORD PTR vtop[rip], rax
	mov	rax, QWORD PTR vtop[rip]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR [rdx]
	mov	rbx, QWORD PTR 8[rdx]
	mov	QWORD PTR [rax], rcx
	mov	QWORD PTR 8[rax], rbx
	mov	rcx, QWORD PTR 16[rdx]
	mov	rbx, QWORD PTR 24[rdx]
	mov	QWORD PTR 16[rax], rcx
	mov	QWORD PTR 24[rax], rbx
	mov	rcx, QWORD PTR 32[rdx]
	mov	rbx, QWORD PTR 40[rdx]
	mov	QWORD PTR 32[rax], rcx
	mov	QWORD PTR 40[rax], rbx
	mov	rcx, QWORD PTR 48[rdx]
	mov	rbx, QWORD PTR 56[rdx]
	mov	QWORD PTR 48[rax], rcx
	mov	QWORD PTR 56[rax], rbx
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE145:
	.size	vpushv, .-vpushv
	.globl	vdup
	.type	vdup, @function
vdup:
.LFB146:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	rax, QWORD PTR vtop[rip]
	mov	rdi, rax
	call	vpushv
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE146:
	.size	vdup, .-vdup
	.globl	save_reg
	.type	save_reg, @function
save_reg:
.LFB147:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	add	rsp, -128
	mov	DWORD PTR -116[rbp], edi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -104[rbp], 0
	mov	DWORD PTR -108[rbp], 0
	lea	rax, vstack[rip]
	mov	QWORD PTR -96[rbp], rax
	jmp	.L1338
.L1348:
	mov	rax, QWORD PTR -96[rbp]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	movzx	eax, al
	cmp	DWORD PTR -116[rbp], eax
	je	.L1339
	mov	rax, QWORD PTR -96[rbp]
	movzx	eax, WORD PTR 18[rax]
	movzx	eax, ax
	movzx	eax, al
	cmp	DWORD PTR -116[rbp], eax
	jne	.L1340
.L1339:
	cmp	DWORD PTR -104[rbp], 0
	jne	.L1341
	mov	rax, QWORD PTR -96[rbp]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 255
	mov	DWORD PTR -116[rbp], eax
	mov	rax, QWORD PTR -96[rbp]
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 256
	test	eax, eax
	jne	.L1342
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	is_float
	test	eax, eax
	jne	.L1343
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 12
	je	.L1343
.L1342:
	lea	rax, int_type[rip]
	mov	QWORD PTR -88[rbp], rax
.L1343:
	lea	rdx, -112[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	type_size
	mov	DWORD PTR -100[rbp], eax
	mov	rax, QWORD PTR loc[rip]
	mov	edx, DWORD PTR -100[rbp]
	movsx	rdx, edx
	sub	rax, rdx
	mov	rcx, rax
	mov	eax, DWORD PTR -112[rbp]
	neg	eax
	cdqe
	and	rax, rcx
	mov	QWORD PTR loc[rip], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -80[rbp], eax
	mov	WORD PTR -64[rbp], 498
	mov	rax, QWORD PTR loc[rip]
	mov	DWORD PTR -48[rbp], eax
	lea	rdx, -80[rbp]
	mov	eax, DWORD PTR -116[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	store
	cmp	DWORD PTR -116[rbp], 3
	jne	.L1344
	mov	edi, 55773
	call	o
.L1344:
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 12
	jne	.L1345
	mov	eax, DWORD PTR -48[rbp]
	add	eax, 4
	mov	DWORD PTR -48[rbp], eax
	mov	rax, QWORD PTR -96[rbp]
	movzx	eax, WORD PTR 18[rax]
	movzx	eax, ax
	lea	rdx, -80[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	store
.L1345:
	mov	rax, QWORD PTR loc[rip]
	mov	DWORD PTR -108[rbp], eax
	mov	DWORD PTR -104[rbp], 1
.L1341:
	mov	rax, QWORD PTR -96[rbp]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 256
	test	eax, eax
	je	.L1346
	mov	rax, QWORD PTR -96[rbp]
	movzx	eax, WORD PTR 16[rax]
	and	ax, 32512
	or	al, -15
	mov	edx, eax
	mov	rax, QWORD PTR -96[rbp]
	mov	WORD PTR 16[rax], dx
	jmp	.L1347
.L1346:
	mov	rax, QWORD PTR -96[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	lvalue_type
	or	al, -14
	mov	edx, eax
	mov	rax, QWORD PTR -96[rbp]
	mov	WORD PTR 16[rax], dx
.L1347:
	mov	rax, QWORD PTR -96[rbp]
	mov	WORD PTR 18[rax], 240
	mov	edx, DWORD PTR -108[rbp]
	mov	rax, QWORD PTR -96[rbp]
	mov	DWORD PTR 32[rax], edx
.L1340:
	add	QWORD PTR -96[rbp], 64
.L1338:
	mov	rax, QWORD PTR vtop[rip]
	cmp	QWORD PTR -96[rbp], rax
	jbe	.L1348
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L1349
	call	__stack_chk_fail@PLT
.L1349:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE147:
	.size	save_reg, .-save_reg
	.globl	get_reg_ex
	.type	get_reg_ex, @function
get_reg_ex:
.LFB148:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	DWORD PTR -16[rbp], 0
	jmp	.L1351
.L1358:
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, reg_classes[rip]
	mov	eax, DWORD PTR [rdx+rax]
	and	eax, DWORD PTR -24[rbp]
	test	eax, eax
	je	.L1352
	mov	DWORD PTR -12[rbp], 0
	lea	rax, vstack[rip]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L1353
.L1356:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	movzx	eax, al
	cmp	DWORD PTR -16[rbp], eax
	je	.L1354
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 18[rax]
	movzx	eax, ax
	movzx	eax, al
	cmp	DWORD PTR -16[rbp], eax
	jne	.L1355
.L1354:
	add	DWORD PTR -12[rbp], 1
.L1355:
	add	QWORD PTR -8[rbp], 64
.L1353:
	mov	rax, QWORD PTR vtop[rip]
	cmp	QWORD PTR -8[rbp], rax
	jbe	.L1356
	cmp	DWORD PTR -12[rbp], 1
	jg	.L1352
	mov	eax, DWORD PTR -16[rbp]
	jmp	.L1357
.L1352:
	add	DWORD PTR -16[rbp], 1
.L1351:
	cmp	DWORD PTR -16[rbp], 3
	jle	.L1358
	mov	eax, DWORD PTR -20[rbp]
	mov	edi, eax
	call	get_reg
.L1357:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE148:
	.size	get_reg_ex, .-get_reg_ex
	.globl	get_reg
	.type	get_reg, @function
get_reg:
.LFB149:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -12[rbp], 0
	jmp	.L1360
.L1367:
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, reg_classes[rip]
	mov	eax, DWORD PTR [rdx+rax]
	and	eax, DWORD PTR -20[rbp]
	test	eax, eax
	je	.L1373
	lea	rax, vstack[rip]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L1362
.L1365:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	movzx	eax, al
	cmp	DWORD PTR -12[rbp], eax
	je	.L1374
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 18[rax]
	movzx	eax, ax
	movzx	eax, al
	cmp	DWORD PTR -12[rbp], eax
	je	.L1374
	add	QWORD PTR -8[rbp], 64
.L1362:
	mov	rax, QWORD PTR vtop[rip]
	cmp	QWORD PTR -8[rbp], rax
	jbe	.L1365
	mov	eax, DWORD PTR -12[rbp]
	jmp	.L1366
.L1373:
	nop
	jmp	.L1361
.L1374:
	nop
.L1361:
	add	DWORD PTR -12[rbp], 1
.L1360:
	cmp	DWORD PTR -12[rbp], 3
	jle	.L1367
	lea	rax, vstack[rip]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L1368
.L1372:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 255
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 239
	jg	.L1369
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, reg_classes[rip]
	mov	eax, DWORD PTR [rdx+rax]
	and	eax, DWORD PTR -20[rbp]
	test	eax, eax
	jne	.L1375
.L1369:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 18[rax]
	movzx	eax, ax
	and	eax, 255
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 239
	jg	.L1371
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, reg_classes[rip]
	mov	eax, DWORD PTR [rdx+rax]
	and	eax, DWORD PTR -20[rbp]
	test	eax, eax
	je	.L1371
	jmp	.L1370
.L1375:
	nop
.L1370:
	mov	eax, DWORD PTR -12[rbp]
	mov	edi, eax
	call	save_reg
	mov	eax, DWORD PTR -12[rbp]
	jmp	.L1366
.L1371:
	add	QWORD PTR -8[rbp], 64
.L1368:
	mov	rax, QWORD PTR vtop[rip]
	cmp	QWORD PTR -8[rbp], rax
	jbe	.L1372
	mov	eax, -1
.L1366:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE149:
	.size	get_reg, .-get_reg
	.globl	save_regs
	.type	save_regs, @function
save_regs:
.LFB150:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	DWORD PTR -36[rbp], edi
	mov	rdx, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	sal	rax, 6
	neg	rax
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	lea	rax, vstack[rip]
	mov	QWORD PTR -16[rbp], rax
	jmp	.L1377
.L1379:
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 255
	mov	DWORD PTR -20[rbp], eax
	cmp	DWORD PTR -20[rbp], 239
	jg	.L1378
	mov	eax, DWORD PTR -20[rbp]
	mov	edi, eax
	call	save_reg
.L1378:
	add	QWORD PTR -16[rbp], 64
.L1377:
	mov	rax, QWORD PTR -16[rbp]
	cmp	rax, QWORD PTR -8[rbp]
	jbe	.L1379
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE150:
	.size	save_regs, .-save_regs
	.globl	move_reg
	.type	move_reg, @function
move_reg:
.LFB151:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	mov	DWORD PTR -84[rbp], edi
	mov	DWORD PTR -88[rbp], esi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR -84[rbp]
	cmp	eax, DWORD PTR -88[rbp]
	je	.L1383
	mov	eax, DWORD PTR -84[rbp]
	mov	edi, eax
	call	save_reg
	mov	DWORD PTR -80[rbp], 0
	mov	eax, DWORD PTR -88[rbp]
	mov	WORD PTR -64[rbp], ax
	mov	DWORD PTR -48[rbp], 0
	lea	rdx, -80[rbp]
	mov	eax, DWORD PTR -84[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	load
.L1383:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L1382
	call	__stack_chk_fail@PLT
.L1382:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE151:
	.size	move_reg, .-move_reg
	.globl	gaddrof
	.type	gaddrof, @function
gaddrof:
.LFB152:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	rax, QWORD PTR vtop[rip]
	movzx	edx, WORD PTR 16[rax]
	mov	rax, QWORD PTR vtop[rip]
	and	dh, -2
	mov	WORD PTR 16[rax], dx
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	movzx	eax, al
	cmp	eax, 241
	jne	.L1386
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	and	ax, -29184
	or	ax, 498
	mov	edx, eax
	mov	rax, QWORD PTR vtop[rip]
	mov	WORD PTR 16[rax], dx
.L1386:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE152:
	.size	gaddrof, .-gaddrof
	.globl	gbound
	.type	gbound, @function
gbound:
.LFB153:
	.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	rax, QWORD PTR vtop[rip]
	movzx	edx, WORD PTR 16[rax]
	mov	rax, QWORD PTR vtop[rip]
	and	dh, -9
	mov	WORD PTR 16[rax], dx
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 256
	test	eax, eax
	je	.L1390
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	test	ax, ax
	js	.L1389
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 28928
	mov	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR vtop[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	QWORD PTR -8[rbp], rdx
	mov	rax, QWORD PTR vtop[rip]
	mov	DWORD PTR [rax], 0
	call	gaddrof
	mov	edi, 0
	call	vpushi
	call	gen_bounded_ptr_add
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	mov	edx, eax
	mov	eax, DWORD PTR -20[rbp]
	or	edx, eax
	mov	rax, QWORD PTR vtop[rip]
	mov	WORD PTR 16[rax], dx
	mov	rcx, QWORD PTR vtop[rip]
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rcx], rax
	mov	QWORD PTR 8[rcx], rdx
.L1389:
	call	gen_bounded_ptr_deref
.L1390:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE153:
	.size	gbound, .-gbound
	.globl	gv
	.type	gv, @function
gv:
.LFB154:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	mov	DWORD PTR -84[rbp], edi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	and	eax, 64
	test	eax, eax
	je	.L1392
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	sar	eax, 16
	and	eax, 63
	mov	DWORD PTR -48[rbp], eax
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	sar	eax, 22
	and	eax, 63
	mov	DWORD PTR -44[rbp], eax
	mov	rax, QWORD PTR vtop[rip]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR vtop[rip]
	and	edx, 65471
	mov	DWORD PTR [rax], edx
	mov	edx, DWORD PTR -48[rbp]
	mov	eax, DWORD PTR -44[rbp]
	add	edx, eax
	mov	eax, 32
	sub	eax, edx
	mov	edi, eax
	call	vpushi
	mov	edi, 1
	call	gen_op
	mov	eax, 32
	sub	eax, DWORD PTR -44[rbp]
	mov	edi, eax
	call	vpushi
	mov	edi, 2
	call	gen_op
	mov	eax, DWORD PTR -84[rbp]
	mov	edi, eax
	call	gv
	mov	DWORD PTR -76[rbp], eax
	jmp	.L1393
.L1392:
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	is_float
	test	eax, eax
	je	.L1394
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 511
	cmp	eax, 240
	jne	.L1394
	mov	rax, QWORD PTR vtop[rip]
	mov	rdx, rax
	lea	rax, -80[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	type_size
	mov	DWORD PTR -60[rbp], eax
	mov	rax, QWORD PTR data_section[rip]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -80[rbp]
	cdqe
	add	rax, rdx
	lea	rdx, -1[rax]
	mov	eax, DWORD PTR -80[rbp]
	neg	eax
	cdqe
	and	rax, rdx
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR data_section[rip]
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, DWORD PTR -60[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR data_section[rip]
	mov	rsi, rdx
	mov	rdi, rax
	call	section_ptr_add
	mov	QWORD PTR -32[rbp], rax
	sar	DWORD PTR -60[rbp], 2
	mov	DWORD PTR -68[rbp], 0
	jmp	.L1395
.L1396:
	mov	rax, QWORD PTR vtop[rip]
	mov	edx, DWORD PTR -68[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*4]
	mov	rdx, QWORD PTR -32[rbp]
	add	rdx, rcx
	mov	ecx, DWORD PTR -68[rbp]
	movsx	rcx, ecx
	add	rcx, 8
	mov	eax, DWORD PTR [rax+rcx*4]
	mov	DWORD PTR [rdx], eax
	add	DWORD PTR -68[rbp], 1
.L1395:
	mov	eax, DWORD PTR -68[rbp]
	cmp	eax, DWORD PTR -60[rbp]
	jl	.L1396
	mov	eax, DWORD PTR -60[rbp]
	sal	eax, 2
	movsx	rcx, eax
	mov	rax, QWORD PTR data_section[rip]
	mov	rdx, QWORD PTR vtop[rip]
	mov	rdi, rdx
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, rax
	call	get_sym_ref
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR vtop[rip]
	movzx	edx, WORD PTR 16[rax]
	mov	rax, QWORD PTR vtop[rip]
	or	dh, 3
	mov	WORD PTR 16[rax], dx
	mov	rax, QWORD PTR vtop[rip]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rax, QWORD PTR vtop[rip]
	mov	DWORD PTR 32[rax], 0
.L1394:
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 2048
	test	eax, eax
	je	.L1397
	call	gbound
.L1397:
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 255
	mov	DWORD PTR -76[rbp], eax
	cmp	DWORD PTR -76[rbp], 239
	jg	.L1398
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 256
	test	eax, eax
	jne	.L1398
	mov	eax, DWORD PTR -76[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, reg_classes[rip]
	mov	eax, DWORD PTR [rdx+rax]
	and	eax, DWORD PTR -84[rbp]
	test	eax, eax
	je	.L1398
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 12
	jne	.L1399
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 18[rax]
	movzx	eax, ax
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, reg_classes[rip]
	mov	eax, DWORD PTR [rdx+rax]
	and	eax, DWORD PTR -84[rbp]
	test	eax, eax
	jne	.L1399
.L1398:
	mov	eax, DWORD PTR -84[rbp]
	mov	edi, eax
	call	get_reg
	mov	DWORD PTR -76[rbp], eax
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 12
	jne	.L1400
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 511
	cmp	eax, 240
	jne	.L1401
	mov	rax, QWORD PTR vtop[rip]
	mov	rax, QWORD PTR 32[rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR vtop[rip]
	mov	rdx, QWORD PTR -16[rbp]
	mov	DWORD PTR 32[rax], edx
	mov	rdx, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR -76[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	load
	mov	rax, QWORD PTR vtop[rip]
	mov	edx, DWORD PTR -76[rbp]
	mov	WORD PTR 16[rax], dx
	mov	rax, QWORD PTR -16[rbp]
	shr	rax, 32
	mov	edi, eax
	call	vpushi
	jmp	.L1402
.L1401:
	cmp	DWORD PTR -76[rbp], 239
	jg	.L1403
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 256
	test	eax, eax
	je	.L1404
.L1403:
	mov	edi, 1
	call	save_regs
	mov	rdx, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR -76[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	load
	call	vdup
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	edx, DWORD PTR -76[rbp]
	mov	WORD PTR 16[rax], dx
	mov	rax, QWORD PTR vtop[rip]
	mov	DWORD PTR [rax], 0
	call	gaddrof
	mov	edi, 4
	call	vpushi
	mov	edi, 43
	call	gen_op
	mov	rax, QWORD PTR vtop[rip]
	movzx	edx, WORD PTR 16[rax]
	mov	rax, QWORD PTR vtop[rip]
	or	dh, 1
	mov	WORD PTR 16[rax], dx
	jmp	.L1402
.L1404:
	mov	rdx, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR -76[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	load
	call	vdup
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	edx, DWORD PTR -76[rbp]
	mov	WORD PTR 16[rax], dx
	mov	rax, QWORD PTR vtop[rip]
	lea	rdx, -64[rax]
	mov	rax, QWORD PTR vtop[rip]
	movzx	edx, WORD PTR 18[rdx]
	mov	WORD PTR 16[rax], dx
.L1402:
	mov	DWORD PTR -72[rbp], 1
	cmp	DWORD PTR -84[rbp], 4
	jne	.L1405
	mov	DWORD PTR -72[rbp], 32
.L1405:
	mov	eax, DWORD PTR -72[rbp]
	mov	edi, eax
	call	get_reg
	mov	DWORD PTR -52[rbp], eax
	mov	rdx, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR -52[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	load
	call	vpop
	mov	rax, QWORD PTR vtop[rip]
	mov	edx, DWORD PTR -52[rbp]
	mov	WORD PTR 18[rax], dx
	jmp	.L1399
.L1400:
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 256
	test	eax, eax
	je	.L1406
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	is_float
	test	eax, eax
	jne	.L1406
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -64[rbp], eax
	mov	eax, DWORD PTR -64[rbp]
	mov	DWORD PTR -56[rbp], eax
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 4096
	test	eax, eax
	je	.L1407
	mov	DWORD PTR -64[rbp], 1
	jmp	.L1408
.L1407:
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 8192
	test	eax, eax
	je	.L1408
	mov	DWORD PTR -64[rbp], 2
.L1408:
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 16384
	test	eax, eax
	je	.L1409
	or	DWORD PTR -64[rbp], 16
.L1409:
	mov	rax, QWORD PTR vtop[rip]
	mov	edx, DWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	mov	rdx, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR -76[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	load
	mov	rax, QWORD PTR vtop[rip]
	mov	edx, DWORD PTR -56[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L1399
.L1406:
	mov	rdx, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR -76[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	load
.L1399:
	mov	rax, QWORD PTR vtop[rip]
	mov	edx, DWORD PTR -76[rbp]
	mov	WORD PTR 16[rax], dx
.L1393:
	mov	eax, DWORD PTR -76[rbp]
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L1411
	call	__stack_chk_fail@PLT
.L1411:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE154:
	.size	gv, .-gv
	.globl	gv2
	.type	gv2, @function
gv2:
.LFB155:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 255
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 243
	je	.L1413
	mov	eax, DWORD PTR -4[rbp]
	and	eax, -2
	cmp	eax, 244
	je	.L1413
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -24[rbp]
	jg	.L1413
	call	vswap
	mov	eax, DWORD PTR -20[rbp]
	mov	edi, eax
	call	gv
	call	vswap
	mov	eax, DWORD PTR -24[rbp]
	mov	edi, eax
	call	gv
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	movzx	eax, al
	cmp	eax, 239
	jle	.L1415
	call	vswap
	mov	eax, DWORD PTR -20[rbp]
	mov	edi, eax
	call	gv
	call	vswap
	jmp	.L1415
.L1413:
	mov	eax, DWORD PTR -24[rbp]
	mov	edi, eax
	call	gv
	call	vswap
	mov	eax, DWORD PTR -20[rbp]
	mov	edi, eax
	call	gv
	call	vswap
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	movzx	eax, al
	cmp	eax, 239
	jle	.L1416
	mov	eax, DWORD PTR -24[rbp]
	mov	edi, eax
	call	gv
	jmp	.L1416
.L1415:
.L1416:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE155:
	.size	gv2, .-gv2
	.globl	lexpand
	.type	lexpand, @function
lexpand:
.LFB156:
	.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	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	and	eax, 16
	mov	DWORD PTR -4[rbp], eax
	mov	edi, 1
	call	gv
	call	vdup
	mov	rax, QWORD PTR vtop[rip]
	lea	rdx, -64[rax]
	mov	rax, QWORD PTR vtop[rip]
	movzx	edx, WORD PTR 18[rdx]
	mov	WORD PTR 16[rax], dx
	mov	rax, QWORD PTR vtop[rip]
	mov	WORD PTR 18[rax], 240
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	WORD PTR 18[rax], 240
	mov	rax, QWORD PTR vtop[rip]
	mov	edx, DWORD PTR -4[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR vtop[rip]
	lea	rdx, -64[rax]
	mov	eax, DWORD PTR -4[rbp]
	mov	DWORD PTR [rdx], eax
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE156:
	.size	lexpand, .-lexpand
	.globl	lbuild
	.type	lbuild, @function
lbuild:
.LFB157:
	.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	esi, 1
	mov	edi, 1
	call	gv2
	mov	rax, QWORD PTR vtop[rip]
	mov	rdx, QWORD PTR vtop[rip]
	sub	rdx, 64
	movzx	eax, WORD PTR 16[rax]
	mov	WORD PTR 18[rdx], ax
	mov	rax, QWORD PTR vtop[rip]
	lea	rdx, -64[rax]
	mov	eax, DWORD PTR -4[rbp]
	mov	DWORD PTR [rdx], eax
	call	vpop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE157:
	.size	lbuild, .-lbuild
	.globl	vrotb
	.type	vrotb, @function
vrotb:
.LFB158:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 120
	.cfi_offset 3, -24
	mov	DWORD PTR -116[rbp], edi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rdx, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR -116[rbp]
	neg	eax
	cdqe
	add	rax, 1
	sal	rax, 6
	add	rax, rdx
	mov	rcx, QWORD PTR [rax]
	mov	rbx, QWORD PTR 8[rax]
	mov	QWORD PTR -96[rbp], rcx
	mov	QWORD PTR -88[rbp], rbx
	mov	rcx, QWORD PTR 16[rax]
	mov	rbx, QWORD PTR 24[rax]
	mov	QWORD PTR -80[rbp], rcx
	mov	QWORD PTR -72[rbp], rbx
	mov	rcx, QWORD PTR 32[rax]
	mov	rbx, QWORD PTR 40[rax]
	mov	QWORD PTR -64[rbp], rcx
	mov	QWORD PTR -56[rbp], rbx
	mov	rdx, QWORD PTR 56[rax]
	mov	rax, QWORD PTR 48[rax]
	mov	QWORD PTR -48[rbp], rax
	mov	QWORD PTR -40[rbp], rdx
	mov	eax, 1
	sub	eax, DWORD PTR -116[rbp]
	mov	DWORD PTR -100[rbp], eax
	jmp	.L1420
.L1421:
	mov	rdx, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR -100[rbp]
	cdqe
	add	rax, 1
	sal	rax, 6
	add	rdx, rax
	mov	rcx, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR -100[rbp]
	cdqe
	sal	rax, 6
	add	rax, rcx
	mov	rcx, QWORD PTR [rdx]
	mov	rbx, QWORD PTR 8[rdx]
	mov	QWORD PTR [rax], rcx
	mov	QWORD PTR 8[rax], rbx
	mov	rcx, QWORD PTR 16[rdx]
	mov	rbx, QWORD PTR 24[rdx]
	mov	QWORD PTR 16[rax], rcx
	mov	QWORD PTR 24[rax], rbx
	mov	rcx, QWORD PTR 32[rdx]
	mov	rbx, QWORD PTR 40[rdx]
	mov	QWORD PTR 32[rax], rcx
	mov	QWORD PTR 40[rax], rbx
	mov	rcx, QWORD PTR 48[rdx]
	mov	rbx, QWORD PTR 56[rdx]
	mov	QWORD PTR 48[rax], rcx
	mov	QWORD PTR 56[rax], rbx
	add	DWORD PTR -100[rbp], 1
.L1420:
	cmp	DWORD PTR -100[rbp], 0
	jne	.L1421
	mov	rax, QWORD PTR vtop[rip]
	mov	rcx, QWORD PTR -96[rbp]
	mov	rbx, QWORD PTR -88[rbp]
	mov	QWORD PTR [rax], rcx
	mov	QWORD PTR 8[rax], rbx
	mov	rcx, QWORD PTR -80[rbp]
	mov	rbx, QWORD PTR -72[rbp]
	mov	QWORD PTR 16[rax], rcx
	mov	QWORD PTR 24[rax], rbx
	mov	rcx, QWORD PTR -64[rbp]
	mov	rbx, QWORD PTR -56[rbp]
	mov	QWORD PTR 32[rax], rcx
	mov	QWORD PTR 40[rax], rbx
	mov	rcx, QWORD PTR -48[rbp]
	mov	rbx, QWORD PTR -40[rbp]
	mov	QWORD PTR 48[rax], rcx
	mov	QWORD PTR 56[rax], rbx
	nop
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L1422
	call	__stack_chk_fail@PLT
.L1422:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE158:
	.size	vrotb, .-vrotb
	.globl	vrott
	.type	vrott, @function
vrott:
.LFB159:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 120
	.cfi_offset 3, -24
	mov	DWORD PTR -116[rbp], edi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR vtop[rip]
	mov	rcx, QWORD PTR [rax]
	mov	rbx, QWORD PTR 8[rax]
	mov	QWORD PTR -96[rbp], rcx
	mov	QWORD PTR -88[rbp], rbx
	mov	rcx, QWORD PTR 16[rax]
	mov	rbx, QWORD PTR 24[rax]
	mov	QWORD PTR -80[rbp], rcx
	mov	QWORD PTR -72[rbp], rbx
	mov	rcx, QWORD PTR 32[rax]
	mov	rbx, QWORD PTR 40[rax]
	mov	QWORD PTR -64[rbp], rcx
	mov	QWORD PTR -56[rbp], rbx
	mov	rdx, QWORD PTR 56[rax]
	mov	rax, QWORD PTR 48[rax]
	mov	QWORD PTR -48[rbp], rax
	mov	QWORD PTR -40[rbp], rdx
	mov	DWORD PTR -100[rbp], 0
	jmp	.L1424
.L1425:
	mov	rdx, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR -100[rbp]
	neg	eax
	cdqe
	sal	rax, 6
	sub	rax, 64
	add	rdx, rax
	mov	rcx, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR -100[rbp]
	neg	eax
	cdqe
	sal	rax, 6
	add	rax, rcx
	mov	rcx, QWORD PTR [rdx]
	mov	rbx, QWORD PTR 8[rdx]
	mov	QWORD PTR [rax], rcx
	mov	QWORD PTR 8[rax], rbx
	mov	rcx, QWORD PTR 16[rdx]
	mov	rbx, QWORD PTR 24[rdx]
	mov	QWORD PTR 16[rax], rcx
	mov	QWORD PTR 24[rax], rbx
	mov	rcx, QWORD PTR 32[rdx]
	mov	rbx, QWORD PTR 40[rdx]
	mov	QWORD PTR 32[rax], rcx
	mov	QWORD PTR 40[rax], rbx
	mov	rcx, QWORD PTR 48[rdx]
	mov	rbx, QWORD PTR 56[rdx]
	mov	QWORD PTR 48[rax], rcx
	mov	QWORD PTR 56[rax], rbx
	add	DWORD PTR -100[rbp], 1
.L1424:
	mov	eax, DWORD PTR -116[rbp]
	sub	eax, 1
	cmp	DWORD PTR -100[rbp], eax
	jl	.L1425
	mov	rdx, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR -116[rbp]
	neg	eax
	cdqe
	add	rax, 1
	sal	rax, 6
	add	rax, rdx
	mov	rcx, QWORD PTR -96[rbp]
	mov	rbx, QWORD PTR -88[rbp]
	mov	QWORD PTR [rax], rcx
	mov	QWORD PTR 8[rax], rbx
	mov	rcx, QWORD PTR -80[rbp]
	mov	rbx, QWORD PTR -72[rbp]
	mov	QWORD PTR 16[rax], rcx
	mov	QWORD PTR 24[rax], rbx
	mov	rcx, QWORD PTR -64[rbp]
	mov	rbx, QWORD PTR -56[rbp]
	mov	QWORD PTR 32[rax], rcx
	mov	QWORD PTR 40[rax], rbx
	mov	rcx, QWORD PTR -48[rbp]
	mov	rbx, QWORD PTR -40[rbp]
	mov	QWORD PTR 48[rax], rcx
	mov	QWORD PTR 56[rax], rbx
	nop
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L1426
	call	__stack_chk_fail@PLT
.L1426:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE159:
	.size	vrott, .-vrott
	.globl	vpop
	.type	vpop, @function
vpop:
.LFB160:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 255
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 3
	jne	.L1428
	mov	eax, DWORD PTR nocode_wanted[rip]
	test	eax, eax
	jne	.L1428
	mov	edi, 55773
	call	o
	jmp	.L1429
.L1428:
	cmp	DWORD PTR -4[rbp], 244
	je	.L1430
	cmp	DWORD PTR -4[rbp], 245
	jne	.L1429
.L1430:
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR 32[rax]
	mov	edi, eax
	call	gsym
.L1429:
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	QWORD PTR vtop[rip], rax
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE160:
	.size	vpop, .-vpop
	.globl	gv_dup
	.type	gv_dup, @function
gv_dup:
.LFB161:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -92[rbp], eax
	mov	eax, DWORD PTR -92[rbp]
	and	eax, 15
	cmp	eax, 12
	jne	.L1432
	call	lexpand
	call	gv_dup
	call	vswap
	mov	edi, 3
	call	vrotb
	call	gv_dup
	mov	edi, 4
	call	vrotb
	mov	eax, DWORD PTR -92[rbp]
	mov	edi, eax
	call	lbuild
	mov	edi, 3
	call	vrotb
	mov	edi, 3
	call	vrotb
	call	vswap
	mov	eax, DWORD PTR -92[rbp]
	mov	edi, eax
	call	lbuild
	call	vswap
	jmp	.L1436
.L1432:
	mov	DWORD PTR -96[rbp], 1
	mov	DWORD PTR -80[rbp], 0
	mov	eax, DWORD PTR -92[rbp]
	mov	edi, eax
	call	is_float
	test	eax, eax
	je	.L1434
	mov	DWORD PTR -96[rbp], 2
	mov	eax, DWORD PTR -92[rbp]
	mov	DWORD PTR -80[rbp], eax
.L1434:
	mov	eax, DWORD PTR -96[rbp]
	mov	edi, eax
	call	gv
	mov	DWORD PTR -88[rbp], eax
	mov	eax, DWORD PTR -96[rbp]
	mov	edi, eax
	call	get_reg
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -88[rbp]
	mov	WORD PTR -64[rbp], ax
	mov	DWORD PTR -48[rbp], 0
	lea	rdx, -80[rbp]
	mov	eax, DWORD PTR -84[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	load
	call	vdup
	mov	rax, QWORD PTR vtop[rip]
	mov	edx, DWORD PTR -84[rbp]
	mov	WORD PTR 16[rax], dx
.L1436:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L1435
	call	__stack_chk_fail@PLT
.L1435:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE161:
	.size	gv_dup, .-gv_dup
	.globl	gen_opl
	.type	gen_opl, @function
gen_opl:
.LFB162:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 136
	.cfi_offset 3, -24
	mov	DWORD PTR -132[rbp], edi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	cmp	DWORD PTR -132[rbp], 205
	je	.L1438
	cmp	DWORD PTR -132[rbp], 205
	jg	.L1439
	cmp	DWORD PTR -132[rbp], 178
	je	.L1440
	cmp	DWORD PTR -132[rbp], 178
	jg	.L1439
	cmp	DWORD PTR -132[rbp], 177
	je	.L1441
	cmp	DWORD PTR -132[rbp], 177
	jg	.L1439
	cmp	DWORD PTR -132[rbp], 176
	je	.L1442
	cmp	DWORD PTR -132[rbp], 176
	jg	.L1439
	cmp	DWORD PTR -132[rbp], 124
	je	.L1443
	cmp	DWORD PTR -132[rbp], 124
	jg	.L1439
	cmp	DWORD PTR -132[rbp], 47
	jg	.L1444
	cmp	DWORD PTR -132[rbp], 0
	jle	.L1439
	cmp	DWORD PTR -132[rbp], 47
	ja	.L1439
	mov	eax, DWORD PTR -132[rbp]
	lea	rdx, 0[0+rax*4]
	lea	rax, .L1445[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L1445[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L1445:
	.long	.L1439-.L1445
	.long	.L1438-.L1445
	.long	.L1438-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1446-.L1445
	.long	.L1443-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1439-.L1445
	.long	.L1443-.L1445
	.long	.L1443-.L1445
	.long	.L1439-.L1445
	.long	.L1443-.L1445
	.long	.L1439-.L1445
	.long	.L1440-.L1445
	.text
.L1444:
	cmp	DWORD PTR -132[rbp], 94
	je	.L1443
	jmp	.L1439
.L1440:
	mov	DWORD PTR -108[rbp], 358
	jmp	.L1447
.L1442:
	mov	DWORD PTR -108[rbp], 360
	jmp	.L1447
.L1446:
	mov	DWORD PTR -108[rbp], 359
	jmp	.L1447
.L1441:
	mov	DWORD PTR -108[rbp], 361
.L1447:
	mov	eax, DWORD PTR -108[rbp]
	mov	esi, eax
	lea	rdi, func_old_type[rip]
	call	vpush_global_sym
	mov	edi, 3
	call	vrott
	mov	edi, 2
	call	gfunc_call
	mov	edi, 0
	call	vpushi
	mov	rax, QWORD PTR vtop[rip]
	mov	WORD PTR 16[rax], 0
	mov	rax, QWORD PTR vtop[rip]
	mov	WORD PTR 18[rax], 2
	jmp	.L1448
.L1443:
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -104[rbp], eax
	call	vswap
	call	lexpand
	mov	edi, 3
	call	vrotb
	call	lexpand
	mov	rax, QWORD PTR vtop[rip]
	mov	rcx, QWORD PTR [rax]
	mov	rbx, QWORD PTR 8[rax]
	mov	QWORD PTR -96[rbp], rcx
	mov	QWORD PTR -88[rbp], rbx
	mov	rcx, QWORD PTR 16[rax]
	mov	rbx, QWORD PTR 24[rax]
	mov	QWORD PTR -80[rbp], rcx
	mov	QWORD PTR -72[rbp], rbx
	mov	rcx, QWORD PTR 32[rax]
	mov	rbx, QWORD PTR 40[rax]
	mov	QWORD PTR -64[rbp], rcx
	mov	QWORD PTR -56[rbp], rbx
	mov	rdx, QWORD PTR 56[rax]
	mov	rax, QWORD PTR 48[rax]
	mov	QWORD PTR -48[rbp], rax
	mov	QWORD PTR -40[rbp], rdx
	mov	rdx, QWORD PTR vtop[rip]
	mov	rax, QWORD PTR vtop[rip]
	mov	rcx, QWORD PTR -192[rdx]
	mov	rbx, QWORD PTR -184[rdx]
	mov	QWORD PTR [rax], rcx
	mov	QWORD PTR 8[rax], rbx
	mov	rcx, QWORD PTR -176[rdx]
	mov	rbx, QWORD PTR -168[rdx]
	mov	QWORD PTR 16[rax], rcx
	mov	QWORD PTR 24[rax], rbx
	mov	rcx, QWORD PTR -160[rdx]
	mov	rbx, QWORD PTR -152[rdx]
	mov	QWORD PTR 32[rax], rcx
	mov	QWORD PTR 40[rax], rbx
	mov	rcx, QWORD PTR -144[rdx]
	mov	rbx, QWORD PTR -136[rdx]
	mov	QWORD PTR 48[rax], rcx
	mov	QWORD PTR 56[rax], rbx
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 192
	mov	rcx, QWORD PTR -96[rbp]
	mov	rbx, QWORD PTR -88[rbp]
	mov	QWORD PTR [rax], rcx
	mov	QWORD PTR 8[rax], rbx
	mov	rcx, QWORD PTR -80[rbp]
	mov	rbx, QWORD PTR -72[rbp]
	mov	QWORD PTR 16[rax], rcx
	mov	QWORD PTR 24[rax], rbx
	mov	rcx, QWORD PTR -64[rbp]
	mov	rbx, QWORD PTR -56[rbp]
	mov	QWORD PTR 32[rax], rcx
	mov	QWORD PTR 40[rax], rbx
	mov	rcx, QWORD PTR -48[rbp]
	mov	rbx, QWORD PTR -40[rbp]
	mov	QWORD PTR 48[rax], rcx
	mov	QWORD PTR 56[rax], rbx
	mov	rax, QWORD PTR vtop[rip]
	mov	rcx, QWORD PTR -128[rax]
	mov	rbx, QWORD PTR -120[rax]
	mov	QWORD PTR -96[rbp], rcx
	mov	QWORD PTR -88[rbp], rbx
	mov	rcx, QWORD PTR -112[rax]
	mov	rbx, QWORD PTR -104[rax]
	mov	QWORD PTR -80[rbp], rcx
	mov	QWORD PTR -72[rbp], rbx
	mov	rcx, QWORD PTR -96[rax]
	mov	rbx, QWORD PTR -88[rax]
	mov	QWORD PTR -64[rbp], rcx
	mov	QWORD PTR -56[rbp], rbx
	mov	rdx, QWORD PTR -72[rax]
	mov	rax, QWORD PTR -80[rax]
	mov	QWORD PTR -48[rbp], rax
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR vtop[rip]
	mov	rdx, QWORD PTR vtop[rip]
	add	rdx, -128
	mov	rcx, QWORD PTR -192[rax]
	mov	rbx, QWORD PTR -184[rax]
	mov	QWORD PTR [rdx], rcx
	mov	QWORD PTR 8[rdx], rbx
	mov	rcx, QWORD PTR -176[rax]
	mov	rbx, QWORD PTR -168[rax]
	mov	QWORD PTR 16[rdx], rcx
	mov	QWORD PTR 24[rdx], rbx
	mov	rcx, QWORD PTR -160[rax]
	mov	rbx, QWORD PTR -152[rax]
	mov	QWORD PTR 32[rdx], rcx
	mov	QWORD PTR 40[rdx], rbx
	mov	rcx, QWORD PTR -144[rax]
	mov	rbx, QWORD PTR -136[rax]
	mov	QWORD PTR 48[rdx], rcx
	mov	QWORD PTR 56[rdx], rbx
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 192
	mov	rcx, QWORD PTR -96[rbp]
	mov	rbx, QWORD PTR -88[rbp]
	mov	QWORD PTR [rax], rcx
	mov	QWORD PTR 8[rax], rbx
	mov	rcx, QWORD PTR -80[rbp]
	mov	rbx, QWORD PTR -72[rbp]
	mov	QWORD PTR 16[rax], rcx
	mov	QWORD PTR 24[rax], rbx
	mov	rcx, QWORD PTR -64[rbp]
	mov	rbx, QWORD PTR -56[rbp]
	mov	QWORD PTR 32[rax], rcx
	mov	QWORD PTR 40[rax], rbx
	mov	rcx, QWORD PTR -48[rbp]
	mov	rbx, QWORD PTR -40[rbp]
	mov	QWORD PTR 48[rax], rcx
	mov	QWORD PTR 56[rax], rbx
	call	vswap
	cmp	DWORD PTR -132[rbp], 42
	jne	.L1449
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	rdi, rax
	call	vpushv
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	rdi, rax
	call	vpushv
	mov	edi, 194
	call	gen_op
	call	lexpand
	mov	DWORD PTR -112[rbp], 0
	jmp	.L1450
.L1451:
	mov	edi, 6
	call	vrotb
	add	DWORD PTR -112[rbp], 1
.L1450:
	cmp	DWORD PTR -112[rbp], 3
	jle	.L1451
	mov	rax, QWORD PTR vtop[rip]
	mov	rcx, QWORD PTR [rax]
	mov	rbx, QWORD PTR 8[rax]
	mov	QWORD PTR -96[rbp], rcx
	mov	QWORD PTR -88[rbp], rbx
	mov	rcx, QWORD PTR 16[rax]
	mov	rbx, QWORD PTR 24[rax]
	mov	QWORD PTR -80[rbp], rcx
	mov	QWORD PTR -72[rbp], rbx
	mov	rcx, QWORD PTR 32[rax]
	mov	rbx, QWORD PTR 40[rax]
	mov	QWORD PTR -64[rbp], rcx
	mov	QWORD PTR -56[rbp], rbx
	mov	rdx, QWORD PTR 56[rax]
	mov	rax, QWORD PTR 48[rax]
	mov	QWORD PTR -48[rbp], rax
	mov	QWORD PTR -40[rbp], rdx
	mov	rdx, QWORD PTR vtop[rip]
	mov	rax, QWORD PTR vtop[rip]
	mov	rcx, QWORD PTR -128[rdx]
	mov	rbx, QWORD PTR -120[rdx]
	mov	QWORD PTR [rax], rcx
	mov	QWORD PTR 8[rax], rbx
	mov	rcx, QWORD PTR -112[rdx]
	mov	rbx, QWORD PTR -104[rdx]
	mov	QWORD PTR 16[rax], rcx
	mov	QWORD PTR 24[rax], rbx
	mov	rcx, QWORD PTR -96[rdx]
	mov	rbx, QWORD PTR -88[rdx]
	mov	QWORD PTR 32[rax], rcx
	mov	QWORD PTR 40[rax], rbx
	mov	rcx, QWORD PTR -80[rdx]
	mov	rbx, QWORD PTR -72[rdx]
	mov	QWORD PTR 48[rax], rcx
	mov	QWORD PTR 56[rax], rbx
	mov	rax, QWORD PTR vtop[rip]
	add	rax, -128
	mov	rcx, QWORD PTR -96[rbp]
	mov	rbx, QWORD PTR -88[rbp]
	mov	QWORD PTR [rax], rcx
	mov	QWORD PTR 8[rax], rbx
	mov	rcx, QWORD PTR -80[rbp]
	mov	rbx, QWORD PTR -72[rbp]
	mov	QWORD PTR 16[rax], rcx
	mov	QWORD PTR 24[rax], rbx
	mov	rcx, QWORD PTR -64[rbp]
	mov	rbx, QWORD PTR -56[rbp]
	mov	QWORD PTR 32[rax], rcx
	mov	QWORD PTR 40[rax], rbx
	mov	rcx, QWORD PTR -48[rbp]
	mov	rbx, QWORD PTR -40[rbp]
	mov	QWORD PTR 48[rax], rcx
	mov	QWORD PTR 56[rax], rbx
	mov	edi, 42
	call	gen_op
	mov	edi, 3
	call	vrotb
	mov	edi, 3
	call	vrotb
	mov	edi, 42
	call	gen_op
	mov	edi, 43
	call	gen_op
	mov	edi, 43
	call	gen_op
	jmp	.L1452
.L1449:
	cmp	DWORD PTR -132[rbp], 43
	je	.L1453
	cmp	DWORD PTR -132[rbp], 45
	jne	.L1454
.L1453:
	cmp	DWORD PTR -132[rbp], 43
	jne	.L1455
	mov	DWORD PTR -116[rbp], 195
	jmp	.L1456
.L1455:
	mov	DWORD PTR -116[rbp], 197
.L1456:
	mov	eax, DWORD PTR -116[rbp]
	mov	edi, eax
	call	gen_op
	mov	edi, 3
	call	vrotb
	mov	edi, 3
	call	vrotb
	mov	eax, DWORD PTR -116[rbp]
	add	eax, 1
	mov	edi, eax
	call	gen_op
	jmp	.L1452
.L1454:
	mov	eax, DWORD PTR -132[rbp]
	mov	edi, eax
	call	gen_op
	mov	edi, 3
	call	vrotb
	mov	edi, 3
	call	vrotb
	mov	eax, DWORD PTR -132[rbp]
	mov	edi, eax
	call	gen_op
.L1452:
	mov	eax, DWORD PTR -104[rbp]
	mov	edi, eax
	call	lbuild
	jmp	.L1448
.L1438:
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 1023
	cmp	eax, 240
	jne	.L1457
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -104[rbp], eax
	call	vswap
	call	lexpand
	mov	edi, 3
	call	vrotb
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR 32[rax]
	mov	DWORD PTR -100[rbp], eax
	call	vpop
	cmp	DWORD PTR -132[rbp], 1
	je	.L1458
	call	vswap
.L1458:
	cmp	DWORD PTR -100[rbp], 31
	jle	.L1459
	call	vpop
	cmp	DWORD PTR -100[rbp], 32
	jle	.L1460
	mov	eax, DWORD PTR -100[rbp]
	sub	eax, 32
	mov	edi, eax
	call	vpushi
	mov	eax, DWORD PTR -132[rbp]
	mov	edi, eax
	call	gen_op
.L1460:
	cmp	DWORD PTR -132[rbp], 2
	je	.L1461
	mov	edi, 0
	call	vpushi
	jmp	.L1462
.L1461:
	call	gv_dup
	mov	edi, 31
	call	vpushi
	mov	edi, 2
	call	gen_op
.L1462:
	call	vswap
	jmp	.L1463
.L1459:
	call	vswap
	call	gv_dup
	mov	eax, DWORD PTR -100[rbp]
	mov	edi, eax
	call	vpushi
	mov	eax, DWORD PTR -132[rbp]
	mov	edi, eax
	call	gen_op
	call	vswap
	mov	eax, 32
	sub	eax, DWORD PTR -100[rbp]
	mov	edi, eax
	call	vpushi
	cmp	DWORD PTR -132[rbp], 1
	jne	.L1464
	mov	edi, 205
	call	gen_op
	jmp	.L1465
.L1464:
	mov	edi, 1
	call	gen_op
.L1465:
	mov	edi, 3
	call	vrotb
	mov	eax, DWORD PTR -100[rbp]
	mov	edi, eax
	call	vpushi
	cmp	DWORD PTR -132[rbp], 1
	jne	.L1466
	mov	edi, 1
	call	gen_op
	jmp	.L1467
.L1466:
	mov	edi, 205
	call	gen_op
.L1467:
	mov	edi, 124
	call	gen_op
.L1463:
	cmp	DWORD PTR -132[rbp], 1
	je	.L1468
	call	vswap
.L1468:
	mov	eax, DWORD PTR -104[rbp]
	mov	edi, eax
	call	lbuild
	jmp	.L1484
.L1457:
	cmp	DWORD PTR -132[rbp], 205
	je	.L1470
	cmp	DWORD PTR -132[rbp], 205
	jg	.L1484
	cmp	DWORD PTR -132[rbp], 1
	je	.L1471
	cmp	DWORD PTR -132[rbp], 2
	jne	.L1484
	mov	DWORD PTR -108[rbp], 362
	jmp	.L1447
.L1470:
	mov	DWORD PTR -108[rbp], 363
	jmp	.L1447
.L1471:
	mov	DWORD PTR -108[rbp], 364
	jmp	.L1447
.L1439:
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -104[rbp], eax
	call	vswap
	call	lexpand
	mov	edi, 3
	call	vrotb
	call	lexpand
	mov	rax, QWORD PTR vtop[rip]
	mov	rcx, QWORD PTR -64[rax]
	mov	rbx, QWORD PTR -56[rax]
	mov	QWORD PTR -96[rbp], rcx
	mov	QWORD PTR -88[rbp], rbx
	mov	rcx, QWORD PTR -48[rax]
	mov	rbx, QWORD PTR -40[rax]
	mov	QWORD PTR -80[rbp], rcx
	mov	QWORD PTR -72[rbp], rbx
	mov	rcx, QWORD PTR -32[rax]
	mov	rbx, QWORD PTR -24[rax]
	mov	QWORD PTR -64[rbp], rcx
	mov	QWORD PTR -56[rbp], rbx
	mov	rdx, QWORD PTR -8[rax]
	mov	rax, QWORD PTR -16[rax]
	mov	QWORD PTR -48[rbp], rax
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR vtop[rip]
	mov	rdx, QWORD PTR vtop[rip]
	sub	rdx, 64
	mov	rcx, QWORD PTR -128[rax]
	mov	rbx, QWORD PTR -120[rax]
	mov	QWORD PTR [rdx], rcx
	mov	QWORD PTR 8[rdx], rbx
	mov	rcx, QWORD PTR -112[rax]
	mov	rbx, QWORD PTR -104[rax]
	mov	QWORD PTR 16[rdx], rcx
	mov	QWORD PTR 24[rdx], rbx
	mov	rcx, QWORD PTR -96[rax]
	mov	rbx, QWORD PTR -88[rax]
	mov	QWORD PTR 32[rdx], rcx
	mov	QWORD PTR 40[rdx], rbx
	mov	rcx, QWORD PTR -80[rax]
	mov	rbx, QWORD PTR -72[rax]
	mov	QWORD PTR 48[rdx], rcx
	mov	QWORD PTR 56[rdx], rbx
	mov	rax, QWORD PTR vtop[rip]
	add	rax, -128
	mov	rcx, QWORD PTR -96[rbp]
	mov	rbx, QWORD PTR -88[rbp]
	mov	QWORD PTR [rax], rcx
	mov	QWORD PTR 8[rax], rbx
	mov	rcx, QWORD PTR -80[rbp]
	mov	rbx, QWORD PTR -72[rbp]
	mov	QWORD PTR 16[rax], rcx
	mov	QWORD PTR 24[rax], rbx
	mov	rcx, QWORD PTR -64[rbp]
	mov	rbx, QWORD PTR -56[rbp]
	mov	QWORD PTR 32[rax], rcx
	mov	QWORD PTR 40[rax], rbx
	mov	rcx, QWORD PTR -48[rbp]
	mov	rbx, QWORD PTR -40[rbp]
	mov	QWORD PTR 48[rax], rcx
	mov	QWORD PTR 56[rax], rbx
	mov	eax, DWORD PTR -132[rbp]
	mov	DWORD PTR -116[rbp], eax
	cmp	DWORD PTR -116[rbp], 156
	jne	.L1472
	mov	DWORD PTR -116[rbp], 158
	jmp	.L1473
.L1472:
	cmp	DWORD PTR -116[rbp], 159
	jne	.L1474
	mov	DWORD PTR -116[rbp], 157
	jmp	.L1473
.L1474:
	cmp	DWORD PTR -116[rbp], 146
	jne	.L1475
	mov	DWORD PTR -116[rbp], 150
	jmp	.L1473
.L1475:
	cmp	DWORD PTR -116[rbp], 151
	jne	.L1473
	mov	DWORD PTR -116[rbp], 147
.L1473:
	mov	DWORD PTR -124[rbp], 0
	mov	DWORD PTR -120[rbp], 0
	mov	eax, DWORD PTR -116[rbp]
	mov	edi, eax
	call	gen_op
	cmp	DWORD PTR -116[rbp], 149
	je	.L1476
	mov	esi, 0
	mov	edi, 1
	call	gtst
	mov	DWORD PTR -124[rbp], eax
.L1476:
	cmp	DWORD PTR -132[rbp], 148
	je	.L1477
	cmp	DWORD PTR -124[rbp], 0
	jne	.L1478
	mov	esi, 0
	mov	edi, 0
	call	gtst
	mov	DWORD PTR -120[rbp], eax
	jmp	.L1477
.L1478:
	mov	esi, 0
	mov	edi, 34063
	call	oad
	mov	DWORD PTR -120[rbp], eax
.L1477:
	mov	eax, DWORD PTR -132[rbp]
	mov	DWORD PTR -116[rbp], eax
	cmp	DWORD PTR -116[rbp], 156
	jne	.L1479
	mov	DWORD PTR -116[rbp], 146
	jmp	.L1480
.L1479:
	cmp	DWORD PTR -116[rbp], 158
	jne	.L1481
	mov	DWORD PTR -116[rbp], 150
	jmp	.L1480
.L1481:
	cmp	DWORD PTR -116[rbp], 159
	jne	.L1482
	mov	DWORD PTR -116[rbp], 151
	jmp	.L1480
.L1482:
	cmp	DWORD PTR -116[rbp], 157
	jne	.L1480
	mov	DWORD PTR -116[rbp], 147
.L1480:
	mov	eax, DWORD PTR -116[rbp]
	mov	edi, eax
	call	gen_op
	mov	eax, DWORD PTR -124[rbp]
	mov	esi, eax
	mov	edi, 1
	call	gtst
	mov	DWORD PTR -124[rbp], eax
	mov	eax, DWORD PTR -120[rbp]
	mov	edi, eax
	call	gsym
	mov	eax, DWORD PTR -124[rbp]
	mov	esi, eax
	mov	edi, 245
	call	vseti
	jmp	.L1448
.L1484:
	nop
.L1448:
	nop
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L1483
	call	__stack_chk_fail@PLT
.L1483:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE162:
	.size	gen_opl, .-gen_opl
	.section	.rodata
.LC70:
	.string	"division by zero in constant"
	.text
	.globl	gen_opic
	.type	gen_opic, @function
gen_opic:
.LFB163:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	DWORD PTR -52[rbp], edi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR vtop[rip]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 1023
	cmp	eax, 240
	sete	al
	movzx	eax, al
	mov	DWORD PTR -40[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 1023
	cmp	eax, 240
	sete	al
	movzx	eax, al
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -40[rbp]
	test	eax, eax
	je	.L1486
	mov	eax, DWORD PTR -36[rbp]
	test	eax, eax
	je	.L1486
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR 32[rax]
	mov	DWORD PTR -32[rbp], eax
	cmp	DWORD PTR -52[rbp], 47
	jg	.L1487
	cmp	DWORD PTR -52[rbp], 0
	jg	.L1488
	jmp	.L1549
.L1514:
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 94
	cmp	eax, 111
	ja	.L1549
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L1491[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L1491[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L1491:
	.long	.L1506-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1505-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1504-.L1491
	.long	.L1503-.L1491
	.long	.L1502-.L1491
	.long	.L1501-.L1491
	.long	.L1500-.L1491
	.long	.L1499-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1498-.L1491
	.long	.L1497-.L1491
	.long	.L1496-.L1491
	.long	.L1495-.L1491
	.long	.L1494-.L1491
	.long	.L1493-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1492-.L1491
	.long	.L1492-.L1491
	.long	.L1492-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1549-.L1491
	.long	.L1490-.L1491
	.text
.L1488:
	cmp	DWORD PTR -52[rbp], 47
	ja	.L1549
	mov	eax, DWORD PTR -52[rbp]
	lea	rdx, 0[0+rax*4]
	lea	rax, .L1507[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L1507[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L1507:
	.long	.L1549-.L1507
	.long	.L1513-.L1507
	.long	.L1512-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1492-.L1507
	.long	.L1511-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1549-.L1507
	.long	.L1510-.L1507
	.long	.L1509-.L1507
	.long	.L1549-.L1507
	.long	.L1508-.L1507
	.long	.L1549-.L1507
	.long	.L1492-.L1507
	.text
.L1487:
	cmp	DWORD PTR -52[rbp], 205
	jg	.L1549
	cmp	DWORD PTR -52[rbp], 94
	jge	.L1514
	jmp	.L1549
.L1509:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 32[rax]
	mov	eax, DWORD PTR -32[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 32[rax], edx
	jmp	.L1515
.L1508:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 32[rax]
	sub	eax, DWORD PTR -32[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 32[rax], edx
	jmp	.L1515
.L1511:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 32[rax]
	and	eax, DWORD PTR -32[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 32[rax], edx
	jmp	.L1515
.L1506:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 32[rax]
	xor	eax, DWORD PTR -32[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 32[rax], edx
	jmp	.L1515
.L1505:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 32[rax]
	or	eax, DWORD PTR -32[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 32[rax], edx
	jmp	.L1515
.L1510:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 32[rax]
	imul	eax, DWORD PTR -32[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 32[rax], edx
	jmp	.L1515
.L1492:
	cmp	DWORD PTR -32[rbp], 0
	jne	.L1516
	mov	eax, DWORD PTR const_wanted[rip]
	test	eax, eax
	je	.L1550
	lea	rdi, .LC70[rip]
	mov	eax, 0
	call	error
	jmp	.L1550
.L1516:
	cmp	DWORD PTR -52[rbp], 177
	je	.L1519
	cmp	DWORD PTR -52[rbp], 177
	jg	.L1520
	cmp	DWORD PTR -52[rbp], 37
	je	.L1521
	cmp	DWORD PTR -52[rbp], 176
	je	.L1522
.L1520:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 32[rax]
	cdq
	idiv	DWORD PTR -32[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 32[rax], edx
	jmp	.L1523
.L1521:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 32[rax]
	cdq
	idiv	DWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 32[rax], edx
	jmp	.L1523
.L1522:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 32[rax]
	mov	esi, DWORD PTR -32[rbp]
	mov	edx, 0
	div	esi
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 32[rax], edx
	jmp	.L1523
.L1519:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 32[rax]
	mov	ecx, DWORD PTR -32[rbp]
	mov	edx, 0
	div	ecx
	mov	eax, edx
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 32[rax], edx
	nop
.L1523:
	jmp	.L1515
.L1513:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 32[rax]
	mov	eax, DWORD PTR -32[rbp]
	mov	ecx, eax
	sal	edx, cl
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 32[rax], edx
	jmp	.L1515
.L1490:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 32[rax]
	mov	edx, eax
	mov	eax, DWORD PTR -32[rbp]
	mov	ecx, eax
	shr	edx, cl
	mov	eax, edx
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 32[rax], edx
	jmp	.L1515
.L1512:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 32[rax]
	mov	eax, DWORD PTR -32[rbp]
	mov	ecx, eax
	sar	edx, cl
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 32[rax], edx
	jmp	.L1515
.L1504:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 32[rax]
	mov	edx, eax
	mov	eax, DWORD PTR -32[rbp]
	cmp	edx, eax
	setb	al
	movzx	edx, al
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 32[rax], edx
	jmp	.L1515
.L1503:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 32[rax]
	mov	edx, eax
	mov	eax, DWORD PTR -32[rbp]
	cmp	edx, eax
	setnb	al
	movzx	edx, al
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 32[rax], edx
	jmp	.L1515
.L1502:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	DWORD PTR -32[rbp], eax
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 32[rax], edx
	jmp	.L1515
.L1501:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	DWORD PTR -32[rbp], eax
	setne	al
	movzx	edx, al
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 32[rax], edx
	jmp	.L1515
.L1500:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 32[rax]
	mov	edx, eax
	mov	eax, DWORD PTR -32[rbp]
	cmp	edx, eax
	setbe	al
	movzx	edx, al
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 32[rax], edx
	jmp	.L1515
.L1499:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 32[rax]
	mov	edx, eax
	mov	eax, DWORD PTR -32[rbp]
	cmp	edx, eax
	seta	al
	movzx	edx, al
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 32[rax], edx
	jmp	.L1515
.L1498:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	DWORD PTR -32[rbp], eax
	setg	al
	movzx	edx, al
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 32[rax], edx
	jmp	.L1515
.L1497:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	DWORD PTR -32[rbp], eax
	setle	al
	movzx	edx, al
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 32[rax], edx
	jmp	.L1515
.L1496:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	DWORD PTR -32[rbp], eax
	setge	al
	movzx	edx, al
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 32[rax], edx
	jmp	.L1515
.L1495:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	DWORD PTR -32[rbp], eax
	setl	al
	movzx	edx, al
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 32[rax], edx
	jmp	.L1515
.L1494:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 32[rax]
	test	eax, eax
	je	.L1524
	cmp	DWORD PTR -32[rbp], 0
	je	.L1524
	mov	edx, 1
	jmp	.L1525
.L1524:
	mov	edx, 0
.L1525:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 32[rax], edx
	jmp	.L1515
.L1493:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 32[rax]
	test	eax, eax
	jne	.L1526
	cmp	DWORD PTR -32[rbp], 0
	je	.L1527
.L1526:
	mov	edx, 1
	jmp	.L1528
.L1527:
	mov	edx, 0
.L1528:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 32[rax], edx
	nop
.L1515:
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	QWORD PTR vtop[rip], rax
	jmp	.L1529
.L1486:
	mov	eax, DWORD PTR -40[rbp]
	test	eax, eax
	je	.L1530
	cmp	DWORD PTR -52[rbp], 43
	je	.L1531
	cmp	DWORD PTR -52[rbp], 38
	je	.L1531
	cmp	DWORD PTR -52[rbp], 94
	je	.L1531
	cmp	DWORD PTR -52[rbp], 124
	je	.L1531
	cmp	DWORD PTR -52[rbp], 42
	jne	.L1530
.L1531:
	call	vswap
	lea	rdx, -36[rbp]
	lea	rax, -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	swap
.L1530:
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR 32[rax]
	mov	DWORD PTR -32[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	test	eax, eax
	je	.L1532
	cmp	DWORD PTR -52[rbp], 42
	je	.L1533
	cmp	DWORD PTR -52[rbp], 47
	je	.L1533
	cmp	DWORD PTR -52[rbp], 176
	je	.L1533
	cmp	DWORD PTR -52[rbp], 178
	jne	.L1534
.L1533:
	cmp	DWORD PTR -32[rbp], 1
	je	.L1535
.L1534:
	cmp	DWORD PTR -52[rbp], 43
	je	.L1536
	cmp	DWORD PTR -52[rbp], 45
	je	.L1536
	cmp	DWORD PTR -52[rbp], 124
	je	.L1536
	cmp	DWORD PTR -52[rbp], 94
	je	.L1536
	cmp	DWORD PTR -52[rbp], 1
	je	.L1536
	cmp	DWORD PTR -52[rbp], 205
	je	.L1536
	cmp	DWORD PTR -52[rbp], 2
	jne	.L1537
.L1536:
	cmp	DWORD PTR -32[rbp], 0
	je	.L1535
.L1537:
	cmp	DWORD PTR -52[rbp], 38
	jne	.L1532
	cmp	DWORD PTR -32[rbp], -1
	jne	.L1532
.L1535:
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	QWORD PTR vtop[rip], rax
	jmp	.L1529
.L1532:
	mov	eax, DWORD PTR -36[rbp]
	test	eax, eax
	je	.L1538
	cmp	DWORD PTR -52[rbp], 42
	je	.L1539
	cmp	DWORD PTR -52[rbp], 178
	je	.L1539
	cmp	DWORD PTR -52[rbp], 176
	jne	.L1538
.L1539:
	cmp	DWORD PTR -32[rbp], 0
	jle	.L1551
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 1
	and	eax, DWORD PTR -32[rbp]
	test	eax, eax
	jne	.L1551
	mov	DWORD PTR -28[rbp], -1
	jmp	.L1541
.L1542:
	sar	DWORD PTR -32[rbp]
	add	DWORD PTR -28[rbp], 1
.L1541:
	cmp	DWORD PTR -32[rbp], 0
	jne	.L1542
	mov	rax, QWORD PTR vtop[rip]
	mov	edx, DWORD PTR -28[rbp]
	mov	DWORD PTR 32[rax], edx
	cmp	DWORD PTR -52[rbp], 42
	jne	.L1543
	mov	DWORD PTR -52[rbp], 1
	jmp	.L1551
.L1543:
	cmp	DWORD PTR -52[rbp], 178
	jne	.L1544
	mov	DWORD PTR -52[rbp], 2
	jmp	.L1551
.L1544:
	mov	DWORD PTR -52[rbp], 205
	jmp	.L1551
.L1538:
	mov	eax, DWORD PTR -36[rbp]
	test	eax, eax
	je	.L1552
	cmp	DWORD PTR -52[rbp], 43
	je	.L1545
	cmp	DWORD PTR -52[rbp], 45
	jne	.L1552
.L1545:
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 1023
	cmp	eax, 752
	jne	.L1552
	cmp	DWORD PTR -52[rbp], 45
	jne	.L1546
	neg	DWORD PTR -32[rbp]
.L1546:
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	QWORD PTR vtop[rip], rax
	mov	rax, QWORD PTR vtop[rip]
	mov	ecx, DWORD PTR 32[rax]
	mov	rax, QWORD PTR vtop[rip]
	mov	edx, DWORD PTR -32[rbp]
	add	edx, ecx
	mov	DWORD PTR 32[rax], edx
	jmp	.L1529
.L1549:
	nop
	jmp	.L1518
.L1550:
	nop
	jmp	.L1518
.L1551:
	nop
	jmp	.L1518
.L1552:
	nop
.L1518:
	mov	eax, DWORD PTR nocode_wanted[rip]
	test	eax, eax
	jne	.L1547
	mov	eax, DWORD PTR -52[rbp]
	mov	edi, eax
	call	gen_opi
	jmp	.L1553
.L1547:
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	QWORD PTR vtop[rip], rax
	jmp	.L1553
.L1529:
.L1553:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L1548
	call	__stack_chk_fail@PLT
.L1548:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE163:
	.size	gen_opic, .-gen_opic
	.globl	gen_opif
	.type	gen_opif, @function
gen_opif:
.LFB164:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	DWORD PTR -68[rbp], edi
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR vtop[rip]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 1023
	cmp	eax, 240
	sete	al
	movzx	eax, al
	mov	DWORD PTR -56[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 1023
	cmp	eax, 240
	sete	al
	movzx	eax, al
	mov	DWORD PTR -52[rbp], eax
	cmp	DWORD PTR -56[rbp], 0
	je	.L1575
	cmp	DWORD PTR -52[rbp], 0
	je	.L1575
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 8
	jne	.L1556
	mov	rax, QWORD PTR -48[rbp]
	fld	DWORD PTR 32[rax]
	fstp	TBYTE PTR -32[rbp]
	mov	rax, QWORD PTR -40[rbp]
	fld	DWORD PTR 32[rax]
	fstp	TBYTE PTR -16[rbp]
	jmp	.L1557
.L1556:
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 9
	jne	.L1558
	mov	rax, QWORD PTR -48[rbp]
	fld	QWORD PTR 32[rax]
	fstp	TBYTE PTR -32[rbp]
	mov	rax, QWORD PTR -40[rbp]
	fld	QWORD PTR 32[rax]
	fstp	TBYTE PTR -16[rbp]
	jmp	.L1557
.L1558:
	mov	rax, QWORD PTR -48[rbp]
	fld	TBYTE PTR 32[rax]
	fstp	TBYTE PTR -32[rbp]
	mov	rax, QWORD PTR -40[rbp]
	fld	TBYTE PTR 32[rax]
	fstp	TBYTE PTR -16[rbp]
.L1557:
	fld	TBYTE PTR -32[rbp]
	fstp	QWORD PTR -80[rbp]
	movsd	xmm0, QWORD PTR -80[rbp]
	call	ieee_finite
	test	eax, eax
	je	.L1576
	fld	TBYTE PTR -16[rbp]
	fstp	QWORD PTR -80[rbp]
	movsd	xmm0, QWORD PTR -80[rbp]
	call	ieee_finite
	test	eax, eax
	je	.L1576
	cmp	DWORD PTR -68[rbp], 47
	je	.L1561
	cmp	DWORD PTR -68[rbp], 47
	jg	.L1577
	cmp	DWORD PTR -68[rbp], 45
	je	.L1563
	cmp	DWORD PTR -68[rbp], 45
	jg	.L1577
	cmp	DWORD PTR -68[rbp], 42
	je	.L1564
	cmp	DWORD PTR -68[rbp], 43
	jne	.L1577
	fld	TBYTE PTR -32[rbp]
	fld	TBYTE PTR -16[rbp]
	faddp	st(1), st
	fstp	TBYTE PTR -32[rbp]
	jmp	.L1565
.L1563:
	fld	TBYTE PTR -32[rbp]
	fld	TBYTE PTR -16[rbp]
	fsubp	st(1), st
	fstp	TBYTE PTR -32[rbp]
	jmp	.L1565
.L1564:
	fld	TBYTE PTR -32[rbp]
	fld	TBYTE PTR -16[rbp]
	fmulp	st(1), st
	fstp	TBYTE PTR -32[rbp]
	jmp	.L1565
.L1561:
	fld	TBYTE PTR -16[rbp]
	fldz
	fucomip	st, st(1)
	fstp	st(0)
	jp	.L1566
	fld	TBYTE PTR -16[rbp]
	fldz
	fucomip	st, st(1)
	fstp	st(0)
	jne	.L1566
	mov	eax, DWORD PTR const_wanted[rip]
	test	eax, eax
	je	.L1578
	lea	rdi, .LC70[rip]
	mov	eax, 0
	call	error
	jmp	.L1578
.L1566:
	fld	TBYTE PTR -32[rbp]
	fld	TBYTE PTR -16[rbp]
	fdivp	st(1), st
	fstp	TBYTE PTR -32[rbp]
	nop
.L1565:
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 8
	jne	.L1569
	fld	TBYTE PTR -32[rbp]
	fstp	DWORD PTR -80[rbp]
	movss	xmm0, DWORD PTR -80[rbp]
	mov	rax, QWORD PTR -48[rbp]
	movss	DWORD PTR 32[rax], xmm0
	jmp	.L1570
.L1569:
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 9
	jne	.L1571
	fld	TBYTE PTR -32[rbp]
	fstp	QWORD PTR -80[rbp]
	movsd	xmm0, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR -48[rbp]
	movsd	QWORD PTR 32[rax], xmm0
	jmp	.L1570
.L1571:
	mov	rax, QWORD PTR -48[rbp]
	fld	TBYTE PTR -32[rbp]
	fstp	TBYTE PTR 32[rax]
.L1570:
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	QWORD PTR vtop[rip], rax
	jmp	.L1579
.L1575:
	nop
	jmp	.L1555
.L1576:
	nop
	jmp	.L1555
.L1577:
	nop
	jmp	.L1555
.L1578:
	nop
.L1555:
	mov	eax, DWORD PTR nocode_wanted[rip]
	test	eax, eax
	jne	.L1573
	mov	eax, DWORD PTR -68[rbp]
	mov	edi, eax
	call	gen_opf
	jmp	.L1579
.L1573:
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	QWORD PTR vtop[rip], rax
.L1579:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE164:
	.size	gen_opif, .-gen_opif
	.type	pointed_type, @function
pointed_type:
.LFB165:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	add	rax, 24
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE165:
	.size	pointed_type, .-pointed_type
	.type	pointed_size, @function
pointed_size:
.LFB166:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	pointed_type
	mov	rdx, rax
	lea	rax, -12[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	type_size
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1584
	call	__stack_chk_fail@PLT
.L1584:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE166:
	.size	pointed_size, .-pointed_size
	.type	is_null_pointer, @function
is_null_pointer:
.LFB167:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 1023
	cmp	eax, 240
	je	.L1586
	mov	eax, 0
	jmp	.L1587
.L1586:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	test	eax, eax
	jne	.L1588
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 32[rax]
	test	eax, eax
	je	.L1589
.L1588:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 12
	jne	.L1590
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 32[rax]
	test	rax, rax
	jne	.L1590
.L1589:
	mov	eax, 1
	jmp	.L1587
.L1590:
	mov	eax, 0
.L1587:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE167:
	.size	is_null_pointer, .-is_null_pointer
	.type	is_integer_btype, @function
is_integer_btype:
.LFB168:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -4[rbp], edi
	cmp	DWORD PTR -4[rbp], 1
	je	.L1593
	cmp	DWORD PTR -4[rbp], 2
	je	.L1593
	cmp	DWORD PTR -4[rbp], 0
	je	.L1593
	cmp	DWORD PTR -4[rbp], 12
	jne	.L1594
.L1593:
	mov	eax, 1
	jmp	.L1596
.L1594:
	mov	eax, 0
.L1596:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE168:
	.size	is_integer_btype, .-is_integer_btype
	.section	.rodata
	.align 8
.LC72:
	.string	"comparison between pointer and integer"
.LC73:
	.string	"invalid operands to binary %s"
	.align 8
.LC74:
	.string	"comparison of distinct pointer types lacks a cast"
	.text
	.type	check_comparison_pointer_types, @function
check_comparison_pointer_types:
.LFB169:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 112
	mov	QWORD PTR -88[rbp], rdi
	mov	QWORD PTR -96[rbp], rsi
	mov	DWORD PTR -100[rbp], edx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	is_null_pointer
	test	eax, eax
	jne	.L1614
	mov	rax, QWORD PTR -96[rbp]
	mov	rdi, rax
	call	is_null_pointer
	test	eax, eax
	jne	.L1614
	mov	rax, QWORD PTR -88[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	mov	DWORD PTR -72[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	mov	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -72[rbp]
	mov	edi, eax
	call	is_integer_btype
	test	eax, eax
	jne	.L1601
	mov	eax, DWORD PTR -68[rbp]
	mov	edi, eax
	call	is_integer_btype
	test	eax, eax
	je	.L1602
.L1601:
	cmp	DWORD PTR -100[rbp], 45
	je	.L1602
	lea	rdi, .LC72[rip]
	mov	eax, 0
	call	warning
	jmp	.L1597
.L1602:
	cmp	DWORD PTR -72[rbp], 4
	jne	.L1603
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, rax
	call	pointed_type
	mov	QWORD PTR -64[rbp], rax
	jmp	.L1604
.L1603:
	cmp	DWORD PTR -72[rbp], 6
	jne	.L1615
.L1604:
	cmp	DWORD PTR -68[rbp], 4
	jne	.L1606
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	pointed_type
	mov	QWORD PTR -56[rbp], rax
	jmp	.L1607
.L1606:
	cmp	DWORD PTR -68[rbp], 6
	je	.L1607
	jmp	.L1605
.L1615:
	nop
	jmp	.L1605
.L1617:
	nop
.L1605:
	mov	eax, DWORD PTR -100[rbp]
	mov	esi, 0
	mov	edi, eax
	call	get_tok_str
	mov	rsi, rax
	lea	rdi, .LC73[rip]
	mov	eax, 0
	call	error
.L1607:
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 3
	je	.L1616
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 3
	je	.L1616
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -48[rbp], rax
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -32[rbp], rax
	mov	QWORD PTR -24[rbp], rdx
	mov	eax, DWORD PTR -48[rbp]
	and	eax, -6161
	mov	DWORD PTR -48[rbp], eax
	mov	eax, DWORD PTR -32[rbp]
	and	eax, -6161
	mov	DWORD PTR -32[rbp], eax
	lea	rdx, -32[rbp]
	lea	rax, -48[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	is_compatible_types
	test	eax, eax
	jne	.L1597
	cmp	DWORD PTR -100[rbp], 45
	je	.L1617
	lea	rdi, .LC74[rip]
	mov	eax, 0
	call	warning
	jmp	.L1597
.L1614:
	nop
	jmp	.L1597
.L1616:
	nop
.L1597:
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L1613
	call	__stack_chk_fail@PLT
.L1613:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE169:
	.size	check_comparison_pointer_types, .-check_comparison_pointer_types
	.section	.rodata
.LC75:
	.string	"cannot use pointers here"
	.align 8
.LC76:
	.string	"invalid operands for binary operation"
	.text
	.globl	gen_op
	.type	gen_op, @function
gen_op:
.LFB170:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	DWORD PTR -68[rbp], edi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -56[rbp], eax
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -52[rbp], eax
	mov	eax, DWORD PTR -56[rbp]
	and	eax, 15
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 15
	mov	DWORD PTR -40[rbp], eax
	cmp	DWORD PTR -44[rbp], 4
	je	.L1619
	cmp	DWORD PTR -40[rbp], 4
	jne	.L1620
.L1619:
	cmp	DWORD PTR -68[rbp], 145
	jle	.L1621
	cmp	DWORD PTR -68[rbp], 159
	jg	.L1621
	mov	rax, QWORD PTR vtop[rip]
	mov	rdx, QWORD PTR vtop[rip]
	lea	rcx, -64[rdx]
	mov	edx, DWORD PTR -68[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	call	check_comparison_pointer_types
	mov	DWORD PTR -48[rbp], 16
	jmp	.L1622
.L1621:
	cmp	DWORD PTR -44[rbp], 4
	jne	.L1623
	cmp	DWORD PTR -40[rbp], 4
	jne	.L1623
	cmp	DWORD PTR -68[rbp], 45
	je	.L1624
	lea	rdi, .LC75[rip]
	mov	eax, 0
	call	error
.L1624:
	mov	rax, QWORD PTR vtop[rip]
	mov	rdx, QWORD PTR vtop[rip]
	lea	rcx, -64[rdx]
	mov	edx, DWORD PTR -68[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	call	check_comparison_pointer_types
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	rdi, rax
	call	pointed_size
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	mov	edi, eax
	call	gen_opic
	mov	rax, QWORD PTR vtop[rip]
	mov	DWORD PTR [rax], 0
	mov	eax, DWORD PTR -36[rbp]
	mov	edi, eax
	call	vpushi
	mov	edi, 178
	call	gen_op
	jmp	.L1631
.L1623:
	cmp	DWORD PTR -68[rbp], 45
	je	.L1626
	cmp	DWORD PTR -68[rbp], 43
	je	.L1626
	lea	rdi, .LC75[rip]
	mov	eax, 0
	call	error
.L1626:
	cmp	DWORD PTR -40[rbp], 4
	jne	.L1627
	call	vswap
	lea	rdx, -52[rbp]
	lea	rax, -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	swap
.L1627:
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -32[rbp], rax
	mov	QWORD PTR -24[rbp], rdx
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	rdi, rax
	call	pointed_size
	mov	edi, eax
	call	vpushi
	mov	edi, 42
	call	gen_op
	mov	eax, DWORD PTR do_bounds_check[rip]
	test	eax, eax
	je	.L1628
	mov	eax, DWORD PTR const_wanted[rip]
	test	eax, eax
	jne	.L1628
	cmp	DWORD PTR -68[rbp], 45
	jne	.L1629
	mov	edi, 0
	call	vpushi
	call	vswap
	mov	edi, 45
	call	gen_op
.L1629:
	call	gen_bounded_ptr_add
	jmp	.L1630
.L1628:
	mov	eax, DWORD PTR -68[rbp]
	mov	edi, eax
	call	gen_opic
.L1630:
	mov	rcx, QWORD PTR vtop[rip]
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rcx], rax
	mov	QWORD PTR 8[rcx], rdx
	jmp	.L1631
.L1620:
	mov	eax, DWORD PTR -44[rbp]
	mov	edi, eax
	call	is_float
	test	eax, eax
	jne	.L1632
	mov	eax, DWORD PTR -40[rbp]
	mov	edi, eax
	call	is_float
	test	eax, eax
	je	.L1633
.L1632:
	cmp	DWORD PTR -44[rbp], 10
	je	.L1634
	cmp	DWORD PTR -40[rbp], 10
	jne	.L1635
.L1634:
	mov	DWORD PTR -48[rbp], 10
	jmp	.L1636
.L1635:
	cmp	DWORD PTR -44[rbp], 9
	je	.L1637
	cmp	DWORD PTR -40[rbp], 9
	jne	.L1638
.L1637:
	mov	DWORD PTR -48[rbp], 9
	jmp	.L1636
.L1638:
	mov	DWORD PTR -48[rbp], 8
.L1636:
	cmp	DWORD PTR -68[rbp], 43
	je	.L1660
	cmp	DWORD PTR -68[rbp], 45
	je	.L1660
	cmp	DWORD PTR -68[rbp], 42
	je	.L1660
	cmp	DWORD PTR -68[rbp], 47
	je	.L1660
	cmp	DWORD PTR -68[rbp], 145
	jle	.L1640
	cmp	DWORD PTR -68[rbp], 159
	jle	.L1660
.L1640:
	lea	rdi, .LC76[rip]
	mov	eax, 0
	call	error
	jmp	.L1660
.L1633:
	cmp	DWORD PTR -44[rbp], 12
	je	.L1641
	cmp	DWORD PTR -40[rbp], 12
	jne	.L1642
.L1641:
	mov	DWORD PTR -48[rbp], 12
	mov	eax, DWORD PTR -56[rbp]
	and	eax, 31
	cmp	eax, 28
	je	.L1643
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 31
	cmp	eax, 28
	jne	.L1661
.L1643:
	or	DWORD PTR -48[rbp], 16
	jmp	.L1661
.L1642:
	mov	DWORD PTR -48[rbp], 0
	mov	eax, DWORD PTR -56[rbp]
	and	eax, 31
	cmp	eax, 16
	je	.L1645
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 31
	cmp	eax, 16
	jne	.L1662
.L1645:
	or	DWORD PTR -48[rbp], 16
	jmp	.L1622
.L1660:
	nop
	jmp	.L1622
.L1661:
	nop
	jmp	.L1622
.L1662:
	nop
.L1622:
	mov	eax, DWORD PTR -48[rbp]
	and	eax, 16
	test	eax, eax
	je	.L1646
	cmp	DWORD PTR -68[rbp], 2
	jne	.L1647
	mov	DWORD PTR -68[rbp], 205
	jmp	.L1646
.L1647:
	cmp	DWORD PTR -68[rbp], 47
	jne	.L1648
	mov	DWORD PTR -68[rbp], 176
	jmp	.L1646
.L1648:
	cmp	DWORD PTR -68[rbp], 37
	jne	.L1649
	mov	DWORD PTR -68[rbp], 177
	jmp	.L1646
.L1649:
	cmp	DWORD PTR -68[rbp], 156
	jne	.L1650
	mov	DWORD PTR -68[rbp], 146
	jmp	.L1646
.L1650:
	cmp	DWORD PTR -68[rbp], 159
	jne	.L1651
	mov	DWORD PTR -68[rbp], 151
	jmp	.L1646
.L1651:
	cmp	DWORD PTR -68[rbp], 158
	jne	.L1652
	mov	DWORD PTR -68[rbp], 150
	jmp	.L1646
.L1652:
	cmp	DWORD PTR -68[rbp], 157
	jne	.L1646
	mov	DWORD PTR -68[rbp], 147
.L1646:
	call	vswap
	mov	eax, DWORD PTR -48[rbp]
	mov	DWORD PTR -32[rbp], eax
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	gen_cast
	call	vswap
	cmp	DWORD PTR -68[rbp], 205
	je	.L1653
	cmp	DWORD PTR -68[rbp], 2
	je	.L1653
	cmp	DWORD PTR -68[rbp], 1
	jne	.L1654
.L1653:
	mov	DWORD PTR -32[rbp], 0
.L1654:
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	gen_cast
	mov	eax, DWORD PTR -48[rbp]
	mov	edi, eax
	call	is_float
	test	eax, eax
	je	.L1655
	mov	eax, DWORD PTR -68[rbp]
	mov	edi, eax
	call	gen_opif
	jmp	.L1656
.L1655:
	mov	eax, DWORD PTR -48[rbp]
	and	eax, 15
	cmp	eax, 12
	jne	.L1657
	mov	eax, DWORD PTR -68[rbp]
	mov	edi, eax
	call	gen_opl
	jmp	.L1656
.L1657:
	mov	eax, DWORD PTR -68[rbp]
	mov	edi, eax
	call	gen_opic
.L1656:
	cmp	DWORD PTR -68[rbp], 145
	jle	.L1658
	cmp	DWORD PTR -68[rbp], 159
	jg	.L1658
	mov	rax, QWORD PTR vtop[rip]
	mov	DWORD PTR [rax], 0
	jmp	.L1631
.L1658:
	mov	rax, QWORD PTR vtop[rip]
	mov	edx, DWORD PTR -48[rbp]
	mov	DWORD PTR [rax], edx
.L1631:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L1659
	call	__stack_chk_fail@PLT
.L1659:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE170:
	.size	gen_op, .-gen_op
	.globl	gen_cvt_itof1
	.type	gen_cvt_itof1, @function
gen_cvt_itof1:
.LFB171:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	and	eax, 31
	cmp	eax, 28
	jne	.L1664
	cmp	DWORD PTR -4[rbp], 8
	jne	.L1665
	mov	esi, 367
	lea	rdi, func_old_type[rip]
	call	vpush_global_sym
	jmp	.L1666
.L1665:
	cmp	DWORD PTR -4[rbp], 9
	jne	.L1667
	mov	esi, 368
	lea	rdi, func_old_type[rip]
	call	vpush_global_sym
	jmp	.L1666
.L1667:
	mov	esi, 369
	lea	rdi, func_old_type[rip]
	call	vpush_global_sym
.L1666:
	mov	edi, 2
	call	vrott
	mov	edi, 1
	call	gfunc_call
	mov	edi, 0
	call	vpushi
	mov	rax, QWORD PTR vtop[rip]
	mov	WORD PTR 16[rax], 3
	jmp	.L1669
.L1664:
	mov	eax, DWORD PTR -4[rbp]
	mov	edi, eax
	call	gen_cvt_itof
.L1669:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE171:
	.size	gen_cvt_itof1, .-gen_cvt_itof1
	.globl	gen_cvt_ftoi1
	.type	gen_cvt_ftoi1, @function
gen_cvt_ftoi1:
.LFB172:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	cmp	DWORD PTR -20[rbp], 28
	jne	.L1671
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 8
	jne	.L1672
	mov	esi, 370
	lea	rdi, func_old_type[rip]
	call	vpush_global_sym
	jmp	.L1673
.L1672:
	cmp	DWORD PTR -4[rbp], 9
	jne	.L1674
	mov	esi, 371
	lea	rdi, func_old_type[rip]
	call	vpush_global_sym
	jmp	.L1673
.L1674:
	mov	esi, 372
	lea	rdi, func_old_type[rip]
	call	vpush_global_sym
.L1673:
	mov	edi, 2
	call	vrott
	mov	edi, 1
	call	gfunc_call
	mov	edi, 0
	call	vpushi
	mov	rax, QWORD PTR vtop[rip]
	mov	WORD PTR 16[rax], 0
	mov	rax, QWORD PTR vtop[rip]
	mov	WORD PTR 18[rax], 2
	jmp	.L1676
.L1671:
	mov	eax, DWORD PTR -20[rbp]
	mov	edi, eax
	call	gen_cvt_ftoi
.L1676:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE172:
	.size	gen_cvt_ftoi1, .-gen_cvt_ftoi1
	.globl	force_charshort_cast
	.type	force_charshort_cast, @function
force_charshort_cast:
.LFB173:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	eax, DWORD PTR -20[rbp]
	and	eax, 15
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 1
	jne	.L1678
	mov	DWORD PTR -8[rbp], 8
	jmp	.L1679
.L1678:
	mov	DWORD PTR -8[rbp], 16
.L1679:
	mov	eax, DWORD PTR -20[rbp]
	and	eax, 16
	test	eax, eax
	je	.L1680
	mov	eax, DWORD PTR -8[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	sub	eax, 1
	mov	edi, eax
	call	vpushi
	mov	edi, 38
	call	gen_op
	jmp	.L1682
.L1680:
	mov	eax, 32
	sub	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	mov	edi, eax
	call	vpushi
	mov	edi, 1
	call	gen_op
	mov	eax, DWORD PTR -8[rbp]
	mov	edi, eax
	call	vpushi
	mov	edi, 2
	call	gen_op
.L1682:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE173:
	.size	force_charshort_cast, .-force_charshort_cast
	.type	gen_cast, @function
gen_cast:
.LFB174:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 1024
	test	eax, eax
	je	.L1684
	mov	rax, QWORD PTR vtop[rip]
	movzx	edx, WORD PTR 16[rax]
	mov	rax, QWORD PTR vtop[rip]
	and	dh, -5
	mov	WORD PTR 16[rax], dx
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	force_charshort_cast
.L1684:
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	and	eax, 64
	test	eax, eax
	je	.L1685
	mov	edi, 1
	call	gv
.L1685:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 31
	mov	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	and	eax, 31
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, DWORD PTR -20[rbp]
	je	.L1686
	mov	eax, DWORD PTR nocode_wanted[rip]
	test	eax, eax
	jne	.L1686
	mov	eax, DWORD PTR -16[rbp]
	mov	edi, eax
	call	is_float
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	mov	edi, eax
	call	is_float
	mov	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 1023
	cmp	eax, 240
	sete	al
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -12[rbp], 0
	je	.L1687
	cmp	DWORD PTR -8[rbp], 0
	je	.L1687
	cmp	DWORD PTR -4[rbp], 0
	je	.L1688
	cmp	DWORD PTR -20[rbp], 8
	jne	.L1689
	cmp	DWORD PTR -16[rbp], 9
	jne	.L1689
	mov	rax, QWORD PTR vtop[rip]
	movsd	xmm0, QWORD PTR 32[rax]
	mov	rax, QWORD PTR vtop[rip]
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR 32[rax], xmm0
	jmp	.L1695
.L1689:
	cmp	DWORD PTR -20[rbp], 8
	jne	.L1691
	cmp	DWORD PTR -16[rbp], 10
	jne	.L1691
	mov	rax, QWORD PTR vtop[rip]
	fld	TBYTE PTR 32[rax]
	mov	rax, QWORD PTR vtop[rip]
	fstp	DWORD PTR -48[rbp]
	movss	xmm0, DWORD PTR -48[rbp]
	movss	DWORD PTR 32[rax], xmm0
	jmp	.L1695
.L1691:
	cmp	DWORD PTR -20[rbp], 9
	jne	.L1692
	cmp	DWORD PTR -16[rbp], 8
	jne	.L1692
	mov	rax, QWORD PTR vtop[rip]
	movss	xmm0, DWORD PTR 32[rax]
	mov	rax, QWORD PTR vtop[rip]
	cvtss2sd	xmm0, xmm0
	movsd	QWORD PTR 32[rax], xmm0
	jmp	.L1695
.L1692:
	cmp	DWORD PTR -20[rbp], 9
	jne	.L1693
	cmp	DWORD PTR -16[rbp], 10
	jne	.L1693
	mov	rax, QWORD PTR vtop[rip]
	fld	TBYTE PTR 32[rax]
	mov	rax, QWORD PTR vtop[rip]
	fstp	QWORD PTR -48[rbp]
	movsd	xmm0, QWORD PTR -48[rbp]
	movsd	QWORD PTR 32[rax], xmm0
	jmp	.L1695
.L1693:
	cmp	DWORD PTR -20[rbp], 10
	jne	.L1694
	cmp	DWORD PTR -16[rbp], 8
	jne	.L1694
	mov	rax, QWORD PTR vtop[rip]
	movss	xmm1, DWORD PTR 32[rax]
	movss	DWORD PTR -48[rbp], xmm1
	mov	rax, QWORD PTR vtop[rip]
	fld	DWORD PTR -48[rbp]
	fstp	TBYTE PTR 32[rax]
	jmp	.L1695
.L1694:
	cmp	DWORD PTR -20[rbp], 10
	jne	.L1738
	cmp	DWORD PTR -16[rbp], 9
	jne	.L1738
	mov	rax, QWORD PTR vtop[rip]
	movsd	xmm2, QWORD PTR 32[rax]
	movsd	QWORD PTR -48[rbp], xmm2
	mov	rax, QWORD PTR vtop[rip]
	fld	QWORD PTR -48[rbp]
	fstp	TBYTE PTR 32[rax]
	jmp	.L1738
.L1688:
	mov	eax, DWORD PTR -20[rbp]
	mov	edi, eax
	call	gen_cvt_ftof
	jmp	.L1738
.L1695:
	jmp	.L1738
.L1687:
	cmp	DWORD PTR -8[rbp], 0
	je	.L1696
	cmp	DWORD PTR -4[rbp], 0
	je	.L1739
	cmp	DWORD PTR -16[rbp], 28
	je	.L1740
	cmp	DWORD PTR -16[rbp], 28
	jg	.L1699
	cmp	DWORD PTR -16[rbp], 12
	je	.L1740
	cmp	DWORD PTR -16[rbp], 16
	jne	.L1699
	cmp	DWORD PTR -20[rbp], 10
	je	.L1701
	cmp	DWORD PTR -20[rbp], 10
	jg	.L1741
	cmp	DWORD PTR -20[rbp], 8
	je	.L1703
	cmp	DWORD PTR -20[rbp], 9
	je	.L1704
	jmp	.L1741
.L1703:
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR 32[rax]
	mov	rcx, QWORD PTR vtop[rip]
	mov	eax, eax
	test	rax, rax
	js	.L1705
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, rax
	jmp	.L1706
.L1705:
	mov	rdx, rax
	shr	rdx
	and	eax, 1
	or	rdx, rax
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, rdx
	addss	xmm0, xmm0
.L1706:
	movss	DWORD PTR 32[rcx], xmm0
	jmp	.L1702
.L1704:
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR 32[rax]
	mov	rcx, QWORD PTR vtop[rip]
	mov	eax, eax
	test	rax, rax
	js	.L1707
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	jmp	.L1708
.L1707:
	mov	rdx, rax
	shr	rdx
	and	eax, 1
	or	rdx, rax
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rdx
	addsd	xmm0, xmm0
.L1708:
	movsd	QWORD PTR 32[rcx], xmm0
	jmp	.L1702
.L1701:
	mov	rax, QWORD PTR vtop[rip]
	mov	edx, DWORD PTR 32[rax]
	mov	rax, QWORD PTR vtop[rip]
	mov	esi, edx
	mov	QWORD PTR -48[rbp], rsi
	fild	QWORD PTR -48[rbp]
	fstp	TBYTE PTR 32[rax]
	nop
.L1702:
	jmp	.L1741
.L1699:
	cmp	DWORD PTR -20[rbp], 10
	je	.L1710
	cmp	DWORD PTR -20[rbp], 10
	jg	.L1742
	cmp	DWORD PTR -20[rbp], 8
	je	.L1712
	cmp	DWORD PTR -20[rbp], 9
	je	.L1713
	jmp	.L1742
.L1712:
	mov	rax, QWORD PTR vtop[rip]
	mov	edx, DWORD PTR 32[rax]
	mov	rax, QWORD PTR vtop[rip]
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, edx
	movss	DWORD PTR 32[rax], xmm0
	jmp	.L1711
.L1713:
	mov	rax, QWORD PTR vtop[rip]
	mov	edx, DWORD PTR 32[rax]
	mov	rax, QWORD PTR vtop[rip]
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, edx
	movsd	QWORD PTR 32[rax], xmm0
	jmp	.L1711
.L1710:
	mov	rax, QWORD PTR vtop[rip]
	mov	edx, DWORD PTR 32[rax]
	mov	rax, QWORD PTR vtop[rip]
	mov	DWORD PTR -48[rbp], edx
	fild	DWORD PTR -48[rbp]
	fstp	TBYTE PTR 32[rax]
	nop
.L1711:
	jmp	.L1742
.L1739:
	nop
	jmp	.L1697
.L1740:
	nop
.L1697:
	mov	eax, DWORD PTR -20[rbp]
	mov	edi, eax
	call	gen_cvt_itof1
	jmp	.L1686
.L1696:
	cmp	DWORD PTR -12[rbp], 0
	je	.L1714
	cmp	DWORD PTR -20[rbp], 16
	je	.L1715
	cmp	DWORD PTR -20[rbp], 28
	je	.L1715
	cmp	DWORD PTR -20[rbp], 12
	je	.L1715
	mov	DWORD PTR -20[rbp], 0
.L1715:
	cmp	DWORD PTR -4[rbp], 0
	je	.L1743
	cmp	DWORD PTR -20[rbp], 28
	je	.L1744
	cmp	DWORD PTR -20[rbp], 28
	jg	.L1718
	cmp	DWORD PTR -20[rbp], 12
	je	.L1744
	cmp	DWORD PTR -20[rbp], 16
	jne	.L1718
	cmp	DWORD PTR -16[rbp], 10
	je	.L1720
	cmp	DWORD PTR -16[rbp], 10
	jg	.L1745
	cmp	DWORD PTR -16[rbp], 8
	je	.L1722
	cmp	DWORD PTR -16[rbp], 9
	je	.L1723
	jmp	.L1745
.L1722:
	mov	rax, QWORD PTR vtop[rip]
	movsd	xmm0, QWORD PTR 32[rax]
	mov	rax, QWORD PTR vtop[rip]
	cvttsd2si	rdx, xmm0
	mov	DWORD PTR 32[rax], edx
	jmp	.L1721
.L1723:
	mov	rax, QWORD PTR vtop[rip]
	movsd	xmm0, QWORD PTR 32[rax]
	mov	rax, QWORD PTR vtop[rip]
	cvttsd2si	rdx, xmm0
	mov	DWORD PTR 32[rax], edx
	jmp	.L1721
.L1720:
	mov	rax, QWORD PTR vtop[rip]
	movsd	xmm0, QWORD PTR 32[rax]
	mov	rax, QWORD PTR vtop[rip]
	cvttsd2si	rdx, xmm0
	mov	DWORD PTR 32[rax], edx
	nop
.L1721:
	jmp	.L1745
.L1718:
	cmp	DWORD PTR -16[rbp], 10
	je	.L1725
	cmp	DWORD PTR -16[rbp], 10
	jg	.L1746
	cmp	DWORD PTR -16[rbp], 8
	je	.L1727
	cmp	DWORD PTR -16[rbp], 9
	je	.L1728
	jmp	.L1746
.L1727:
	mov	rax, QWORD PTR vtop[rip]
	movsd	xmm0, QWORD PTR 32[rax]
	mov	rax, QWORD PTR vtop[rip]
	cvttsd2si	edx, xmm0
	mov	DWORD PTR 32[rax], edx
	jmp	.L1726
.L1728:
	mov	rax, QWORD PTR vtop[rip]
	movsd	xmm0, QWORD PTR 32[rax]
	mov	rax, QWORD PTR vtop[rip]
	cvttsd2si	edx, xmm0
	mov	DWORD PTR 32[rax], edx
	jmp	.L1726
.L1725:
	mov	rax, QWORD PTR vtop[rip]
	movsd	xmm0, QWORD PTR 32[rax]
	mov	rax, QWORD PTR vtop[rip]
	cvttsd2si	edx, xmm0
	mov	DWORD PTR 32[rax], edx
	nop
.L1726:
	jmp	.L1746
.L1743:
	nop
	jmp	.L1716
.L1744:
	nop
.L1716:
	mov	eax, DWORD PTR -20[rbp]
	mov	edi, eax
	call	gen_cvt_ftoi1
	jmp	.L1729
.L1745:
	nop
	jmp	.L1729
.L1746:
	nop
.L1729:
	cmp	DWORD PTR -20[rbp], 0
	jne	.L1686
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 31
	cmp	DWORD PTR -20[rbp], eax
	je	.L1686
	mov	rax, QWORD PTR vtop[rip]
	mov	edx, DWORD PTR -20[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	gen_cast
	jmp	.L1686
.L1714:
	mov	eax, DWORD PTR -20[rbp]
	and	eax, 15
	cmp	eax, 12
	jne	.L1730
	mov	eax, DWORD PTR -16[rbp]
	and	eax, 15
	cmp	eax, 12
	je	.L1686
	cmp	DWORD PTR -4[rbp], 0
	je	.L1731
	cmp	DWORD PTR -16[rbp], 16
	jne	.L1732
	mov	rax, QWORD PTR vtop[rip]
	mov	edx, DWORD PTR 32[rax]
	mov	rax, QWORD PTR vtop[rip]
	mov	edx, edx
	mov	QWORD PTR 32[rax], rdx
	jmp	.L1686
.L1732:
	mov	rax, QWORD PTR vtop[rip]
	mov	edx, DWORD PTR 32[rax]
	mov	rax, QWORD PTR vtop[rip]
	movsx	rdx, edx
	mov	QWORD PTR 32[rax], rdx
	jmp	.L1686
.L1731:
	mov	edi, 1
	call	gv
	cmp	DWORD PTR -16[rbp], 16
	jne	.L1733
	mov	edi, 0
	call	vpushi
	mov	edi, 1
	call	gv
	jmp	.L1734
.L1733:
	call	gv_dup
	mov	edi, 31
	call	vpushi
	mov	edi, 2
	call	gen_op
.L1734:
	mov	rax, QWORD PTR vtop[rip]
	mov	rdx, QWORD PTR vtop[rip]
	sub	rdx, 64
	movzx	eax, WORD PTR 16[rax]
	mov	WORD PTR 18[rdx], ax
	call	vpop
	jmp	.L1686
.L1730:
	cmp	DWORD PTR -20[rbp], 11
	jne	.L1735
	mov	edi, 0
	call	vpushi
	mov	edi, 149
	call	gen_op
	jmp	.L1686
.L1735:
	mov	eax, DWORD PTR -20[rbp]
	and	eax, 15
	cmp	eax, 1
	je	.L1736
	mov	eax, DWORD PTR -20[rbp]
	and	eax, 15
	cmp	eax, 2
	jne	.L1737
.L1736:
	mov	eax, DWORD PTR -20[rbp]
	mov	edi, eax
	call	force_charshort_cast
	jmp	.L1686
.L1737:
	mov	eax, DWORD PTR -20[rbp]
	and	eax, 15
	test	eax, eax
	jne	.L1686
	cmp	DWORD PTR -16[rbp], 12
	jne	.L1686
	call	lexpand
	call	vpop
	jmp	.L1686
.L1738:
	nop
	jmp	.L1686
.L1741:
	nop
	jmp	.L1686
.L1742:
	nop
.L1686:
	mov	rcx, QWORD PTR vtop[rip]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR [rcx], rax
	mov	QWORD PTR 8[rcx], rdx
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE174:
	.size	gen_cast, .-gen_cast
	.type	type_size, @function
type_size:
.LFB175:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 7
	jne	.L1748
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 16[rax]
	jmp	.L1749
.L1748:
	cmp	DWORD PTR -12[rbp], 4
	jne	.L1750
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 32
	test	eax, eax
	je	.L1751
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 24[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	type_size
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 16[rax]
	imul	eax, edx
	jmp	.L1749
.L1751:
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 4
	mov	eax, 4
	jmp	.L1749
.L1750:
	cmp	DWORD PTR -12[rbp], 10
	jne	.L1752
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 4
	mov	eax, 12
	jmp	.L1749
.L1752:
	cmp	DWORD PTR -12[rbp], 9
	je	.L1753
	cmp	DWORD PTR -12[rbp], 12
	jne	.L1754
.L1753:
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 4
	mov	eax, 8
	jmp	.L1749
.L1754:
	cmp	DWORD PTR -12[rbp], 0
	je	.L1755
	cmp	DWORD PTR -12[rbp], 5
	je	.L1755
	cmp	DWORD PTR -12[rbp], 8
	jne	.L1756
.L1755:
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 4
	mov	eax, 4
	jmp	.L1749
.L1756:
	cmp	DWORD PTR -12[rbp], 2
	jne	.L1757
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 2
	mov	eax, 2
	jmp	.L1749
.L1757:
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 1
	mov	eax, 1
.L1749:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE175:
	.size	type_size, .-type_size
	.type	mk_pointer, @function
mk_pointer:
.LFB176:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	ecx, -1
	mov	edx, 0
	mov	rsi, rax
	mov	edi, 536870912
	call	sym_push
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 1920
	or	eax, 4
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], rdx
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE176:
	.size	mk_pointer, .-mk_pointer
	.type	is_compatible_func, @function
is_compatible_func:
.LFB177:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 24[rax]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 24
	mov	rsi, rdx
	mov	rdi, rax
	call	is_compatible_types
	test	eax, eax
	jne	.L1760
	mov	eax, 0
	jmp	.L1761
.L1760:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	cmp	rdx, rax
	je	.L1762
	mov	eax, 0
	jmp	.L1761
.L1762:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 16[rax]
	cmp	rax, 2
	je	.L1763
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 16[rax]
	cmp	rax, 2
	jne	.L1764
.L1763:
	mov	eax, 1
	jmp	.L1761
.L1764:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 16[rax]
	cmp	rdx, rax
	je	.L1766
	mov	eax, 0
	jmp	.L1761
.L1769:
	cmp	QWORD PTR -8[rbp], 0
	jne	.L1767
	mov	eax, 0
	jmp	.L1761
.L1767:
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 24[rax]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 24
	mov	rsi, rdx
	mov	rdi, rax
	call	is_compatible_types
	test	eax, eax
	jne	.L1768
	mov	eax, 0
	jmp	.L1761
.L1768:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	QWORD PTR -8[rbp], rax
.L1766:
	cmp	QWORD PTR -16[rbp], 0
	jne	.L1769
	cmp	QWORD PTR -8[rbp], 0
	je	.L1770
	mov	eax, 0
	jmp	.L1761
.L1770:
	mov	eax, 1
.L1761:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE177:
	.size	is_compatible_func, .-is_compatible_func
	.type	is_compatible_types, @function
is_compatible_types:
.LFB178:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, -1921
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, -1921
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	cmp	eax, DWORD PTR -8[rbp]
	je	.L1772
	mov	eax, 0
	jmp	.L1773
.L1772:
	mov	eax, DWORD PTR -12[rbp]
	and	eax, 15
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 4
	jne	.L1774
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	pointed_type
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	pointed_type
	mov	QWORD PTR -32[rbp], rax
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	is_compatible_types
	jmp	.L1773
.L1774:
	cmp	DWORD PTR -4[rbp], 7
	jne	.L1775
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 8[rax]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	jmp	.L1773
.L1775:
	cmp	DWORD PTR -4[rbp], 6
	jne	.L1776
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	is_compatible_func
	jmp	.L1773
.L1776:
	mov	eax, 1
.L1773:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE178:
	.size	is_compatible_types, .-is_compatible_types
	.section	.rodata
.LC77:
	.string	"const "
.LC78:
	.string	"volatile "
.LC79:
	.string	"unsigned "
.LC80:
	.string	"void"
.LC81:
	.string	"_Bool"
.LC82:
	.string	"char"
.LC83:
	.string	"short"
.LC84:
	.string	"int"
.LC85:
	.string	"long"
.LC86:
	.string	"long long"
.LC87:
	.string	"float"
.LC88:
	.string	"double"
.LC89:
	.string	"long double"
.LC90:
	.string	"struct "
.LC91:
	.string	"enum "
.LC92:
	.string	"<anonymous>"
.LC93:
	.string	"("
.LC94:
	.string	", "
.LC95:
	.string	")"
.LC96:
	.string	"*"
.LC97:
	.string	" "
	.text
	.globl	type_to_str
	.type	type_to_str, @function
type_to_str:
.LFB179:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 352
	mov	QWORD PTR -328[rbp], rdi
	mov	DWORD PTR -332[rbp], esi
	mov	QWORD PTR -344[rbp], rdx
	mov	QWORD PTR -352[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -344[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, -1921
	mov	DWORD PTR -308[rbp], eax
	mov	eax, DWORD PTR -308[rbp]
	and	eax, 15
	mov	DWORD PTR -304[rbp], eax
	mov	rax, QWORD PTR -328[rbp]
	mov	BYTE PTR [rax], 0
	mov	eax, DWORD PTR -308[rbp]
	and	eax, 2048
	test	eax, eax
	je	.L1778
	mov	ecx, DWORD PTR -332[rbp]
	mov	rax, QWORD PTR -328[rbp]
	lea	rdx, .LC77[rip]
	mov	esi, ecx
	mov	rdi, rax
	call	pstrcat
.L1778:
	mov	eax, DWORD PTR -308[rbp]
	and	eax, 4096
	test	eax, eax
	je	.L1779
	mov	ecx, DWORD PTR -332[rbp]
	mov	rax, QWORD PTR -328[rbp]
	lea	rdx, .LC78[rip]
	mov	esi, ecx
	mov	rdi, rax
	call	pstrcat
.L1779:
	mov	eax, DWORD PTR -308[rbp]
	and	eax, 16
	test	eax, eax
	je	.L1780
	mov	ecx, DWORD PTR -332[rbp]
	mov	rax, QWORD PTR -328[rbp]
	lea	rdx, .LC79[rip]
	mov	esi, ecx
	mov	rdi, rax
	call	pstrcat
.L1780:
	cmp	DWORD PTR -304[rbp], 13
	ja	.L1781
	mov	eax, DWORD PTR -304[rbp]
	lea	rdx, 0[0+rax*4]
	lea	rax, .L1783[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L1783[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L1783:
	.long	.L1795-.L1783
	.long	.L1794-.L1783
	.long	.L1793-.L1783
	.long	.L1792-.L1783
	.long	.L1791-.L1783
	.long	.L1789-.L1783
	.long	.L1790-.L1783
	.long	.L1789-.L1783
	.long	.L1788-.L1783
	.long	.L1787-.L1783
	.long	.L1786-.L1783
	.long	.L1785-.L1783
	.long	.L1784-.L1783
	.long	.L1782-.L1783
	.text
.L1792:
	lea	rax, .LC80[rip]
	mov	QWORD PTR -288[rbp], rax
	jmp	.L1796
.L1785:
	lea	rax, .LC81[rip]
	mov	QWORD PTR -288[rbp], rax
	jmp	.L1796
.L1794:
	lea	rax, .LC82[rip]
	mov	QWORD PTR -288[rbp], rax
	jmp	.L1796
.L1793:
	lea	rax, .LC83[rip]
	mov	QWORD PTR -288[rbp], rax
	jmp	.L1796
.L1795:
	lea	rax, .LC84[rip]
	mov	QWORD PTR -288[rbp], rax
	jmp	.L1796
.L1782:
	lea	rax, .LC85[rip]
	mov	QWORD PTR -288[rbp], rax
	jmp	.L1796
.L1784:
	lea	rax, .LC86[rip]
	mov	QWORD PTR -288[rbp], rax
	jmp	.L1796
.L1788:
	lea	rax, .LC87[rip]
	mov	QWORD PTR -288[rbp], rax
	jmp	.L1796
.L1787:
	lea	rax, .LC88[rip]
	mov	QWORD PTR -288[rbp], rax
	jmp	.L1796
.L1786:
	lea	rax, .LC89[rip]
	mov	QWORD PTR -288[rbp], rax
.L1796:
	mov	rdx, QWORD PTR -288[rbp]
	mov	ecx, DWORD PTR -332[rbp]
	mov	rax, QWORD PTR -328[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	pstrcat
	jmp	.L1781
.L1789:
	cmp	DWORD PTR -304[rbp], 7
	jne	.L1797
	lea	rax, .LC90[rip]
	mov	QWORD PTR -288[rbp], rax
	jmp	.L1798
.L1797:
	lea	rax, .LC91[rip]
	mov	QWORD PTR -288[rbp], rax
.L1798:
	mov	rdx, QWORD PTR -288[rbp]
	mov	ecx, DWORD PTR -332[rbp]
	mov	rax, QWORD PTR -328[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	pstrcat
	mov	rax, QWORD PTR -344[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rax, QWORD PTR [rax]
	and	eax, -1073741825
	mov	DWORD PTR -300[rbp], eax
	cmp	DWORD PTR -300[rbp], 268435455
	jle	.L1799
	mov	ecx, DWORD PTR -332[rbp]
	mov	rax, QWORD PTR -328[rbp]
	lea	rdx, .LC92[rip]
	mov	esi, ecx
	mov	rdi, rax
	call	pstrcat
	jmp	.L1781
.L1799:
	mov	eax, DWORD PTR -300[rbp]
	mov	esi, 0
	mov	edi, eax
	call	get_tok_str
	mov	rdx, rax
	mov	ecx, DWORD PTR -332[rbp]
	mov	rax, QWORD PTR -328[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	pstrcat
	jmp	.L1781
.L1790:
	mov	rax, QWORD PTR -344[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -280[rbp], rax
	mov	rax, QWORD PTR -280[rbp]
	lea	rdi, 24[rax]
	mov	rdx, QWORD PTR -352[rbp]
	mov	esi, DWORD PTR -332[rbp]
	mov	rax, QWORD PTR -328[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	type_to_str
	mov	ecx, DWORD PTR -332[rbp]
	mov	rax, QWORD PTR -328[rbp]
	lea	rdx, .LC93[rip]
	mov	esi, ecx
	mov	rdi, rax
	call	pstrcat
	mov	rax, QWORD PTR -280[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	QWORD PTR -296[rbp], rax
	jmp	.L1801
.L1802:
	mov	rax, QWORD PTR -296[rbp]
	lea	rdx, 24[rax]
	lea	rax, -272[rbp]
	mov	ecx, 0
	mov	esi, 256
	mov	rdi, rax
	call	type_to_str
	lea	rdx, -272[rbp]
	mov	ecx, DWORD PTR -332[rbp]
	mov	rax, QWORD PTR -328[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	pstrcat
	mov	rax, QWORD PTR -296[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	QWORD PTR -296[rbp], rax
	cmp	QWORD PTR -296[rbp], 0
	je	.L1801
	mov	ecx, DWORD PTR -332[rbp]
	mov	rax, QWORD PTR -328[rbp]
	lea	rdx, .LC94[rip]
	mov	esi, ecx
	mov	rdi, rax
	call	pstrcat
.L1801:
	cmp	QWORD PTR -296[rbp], 0
	jne	.L1802
	mov	ecx, DWORD PTR -332[rbp]
	mov	rax, QWORD PTR -328[rbp]
	lea	rdx, .LC95[rip]
	mov	esi, ecx
	mov	rdi, rax
	call	pstrcat
	jmp	.L1803
.L1791:
	mov	rax, QWORD PTR -344[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -280[rbp], rax
	lea	rax, -272[rbp]
	lea	rdx, .LC96[rip]
	mov	esi, 256
	mov	rdi, rax
	call	pstrcpy
	cmp	QWORD PTR -352[rbp], 0
	je	.L1804
	mov	rdx, QWORD PTR -352[rbp]
	lea	rax, -272[rbp]
	mov	esi, 256
	mov	rdi, rax
	call	pstrcat
.L1804:
	mov	rax, QWORD PTR -280[rbp]
	lea	rdi, 24[rax]
	lea	rdx, -272[rbp]
	mov	esi, DWORD PTR -332[rbp]
	mov	rax, QWORD PTR -328[rbp]
	mov	rcx, rdx
	mov	rdx, rdi
	mov	rdi, rax
	call	type_to_str
	jmp	.L1803
.L1781:
	cmp	QWORD PTR -352[rbp], 0
	je	.L1806
	mov	ecx, DWORD PTR -332[rbp]
	mov	rax, QWORD PTR -328[rbp]
	lea	rdx, .LC97[rip]
	mov	esi, ecx
	mov	rdi, rax
	call	pstrcat
	mov	rdx, QWORD PTR -352[rbp]
	mov	ecx, DWORD PTR -332[rbp]
	mov	rax, QWORD PTR -328[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	pstrcat
	jmp	.L1803
.L1806:
	nop
.L1803:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L1805
	call	__stack_chk_fail@PLT
.L1805:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE179:
	.size	type_to_str, .-type_to_str
	.section	.rodata
	.align 8
.LC98:
	.string	"assignment of read-only location"
	.align 8
.LC99:
	.string	"assignment makes pointer from integer without a cast"
	.align 8
.LC100:
	.string	"assignment discards qualifiers from pointer target type"
	.align 8
.LC101:
	.string	"assignment makes integer from pointer without a cast"
.LC102:
	.string	"cannot cast '%s' to '%s'"
	.text
	.type	gen_assign_cast, @function
gen_assign_cast:
.LFB180:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 608
	mov	QWORD PTR -600[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR vtop[rip]
	mov	QWORD PTR -584[rbp], rax
	mov	rax, QWORD PTR -600[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	mov	DWORD PTR -592[rbp], eax
	mov	rax, QWORD PTR -584[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	mov	DWORD PTR -588[rbp], eax
	mov	rax, QWORD PTR -600[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 2048
	test	eax, eax
	je	.L1808
	lea	rdi, .LC98[rip]
	mov	eax, 0
	call	warning
.L1808:
	cmp	DWORD PTR -592[rbp], 12
	je	.L1809
	cmp	DWORD PTR -592[rbp], 12
	jg	.L1810
	cmp	DWORD PTR -592[rbp], 7
	je	.L1811
	cmp	DWORD PTR -592[rbp], 7
	jg	.L1810
	cmp	DWORD PTR -592[rbp], 2
	jg	.L1812
	cmp	DWORD PTR -592[rbp], 0
	jns	.L1809
	jmp	.L1810
.L1812:
	cmp	DWORD PTR -592[rbp], 4
	jne	.L1810
	mov	rax, QWORD PTR vtop[rip]
	mov	rdi, rax
	call	is_null_pointer
	test	eax, eax
	jne	.L1827
	mov	eax, DWORD PTR -588[rbp]
	mov	edi, eax
	call	is_integer_btype
	test	eax, eax
	je	.L1814
	lea	rdi, .LC99[rip]
	mov	eax, 0
	call	warning
	jmp	.L1810
.L1814:
	mov	rax, QWORD PTR -600[rbp]
	mov	rdi, rax
	call	pointed_type
	mov	QWORD PTR -576[rbp], rax
	cmp	DWORD PTR -588[rbp], 6
	jne	.L1815
	mov	rax, QWORD PTR -576[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 3
	je	.L1828
	mov	rax, QWORD PTR -600[rbp]
	mov	rdi, rax
	call	pointed_type
	mov	rdx, rax
	mov	rax, QWORD PTR -584[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	is_compatible_types
	test	eax, eax
	jne	.L1828
	jmp	.L1817
.L1815:
	cmp	DWORD PTR -588[rbp], 4
	jne	.L1829
	mov	rax, QWORD PTR -584[rbp]
	mov	rdi, rax
	call	pointed_type
	mov	QWORD PTR -568[rbp], rax
	mov	rax, QWORD PTR -576[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 3
	je	.L1819
	mov	rax, QWORD PTR -568[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 3
	je	.L1819
	mov	rax, QWORD PTR -576[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -560[rbp], rax
	mov	QWORD PTR -552[rbp], rdx
	mov	rax, QWORD PTR -568[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -544[rbp], rax
	mov	QWORD PTR -536[rbp], rdx
	mov	eax, DWORD PTR -560[rbp]
	and	eax, -6161
	mov	DWORD PTR -560[rbp], eax
	mov	eax, DWORD PTR -544[rbp]
	and	eax, -6161
	mov	DWORD PTR -544[rbp], eax
	lea	rdx, -544[rbp]
	lea	rax, -560[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	is_compatible_types
	test	eax, eax
	je	.L1830
.L1819:
	mov	rax, QWORD PTR -576[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 2048
	test	eax, eax
	jne	.L1820
	mov	rax, QWORD PTR -568[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 2048
	test	eax, eax
	jne	.L1821
.L1820:
	mov	rax, QWORD PTR -576[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 4096
	test	eax, eax
	jne	.L1831
	mov	rax, QWORD PTR -568[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 4096
	test	eax, eax
	je	.L1831
.L1821:
	lea	rdi, .LC100[rip]
	mov	eax, 0
	call	warning
	jmp	.L1831
.L1809:
	cmp	DWORD PTR -588[rbp], 4
	je	.L1823
	cmp	DWORD PTR -588[rbp], 6
	jne	.L1832
.L1823:
	lea	rdi, .LC101[rip]
	mov	eax, 0
	call	warning
	jmp	.L1832
.L1811:
	mov	rax, QWORD PTR -600[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -560[rbp], rax
	mov	QWORD PTR -552[rbp], rdx
	mov	rax, QWORD PTR -584[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -544[rbp], rax
	mov	QWORD PTR -536[rbp], rdx
	mov	eax, DWORD PTR -560[rbp]
	and	ah, -25
	mov	DWORD PTR -560[rbp], eax
	mov	eax, DWORD PTR -544[rbp]
	and	ah, -25
	mov	DWORD PTR -544[rbp], eax
	lea	rdx, -544[rbp]
	lea	rax, -560[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	is_compatible_types
	test	eax, eax
	jne	.L1833
	jmp	.L1817
.L1829:
	nop
	jmp	.L1817
.L1830:
	nop
.L1817:
	mov	rdx, QWORD PTR -584[rbp]
	lea	rax, -528[rbp]
	mov	ecx, 0
	mov	esi, 256
	mov	rdi, rax
	call	type_to_str
	mov	rdx, QWORD PTR -600[rbp]
	lea	rax, -272[rbp]
	mov	ecx, 0
	mov	esi, 256
	mov	rdi, rax
	call	type_to_str
	lea	rdx, -272[rbp]
	lea	rax, -528[rbp]
	mov	rsi, rax
	lea	rdi, .LC102[rip]
	mov	eax, 0
	call	error
	jmp	.L1833
.L1827:
	nop
	jmp	.L1810
.L1828:
	nop
	jmp	.L1810
.L1831:
	nop
	jmp	.L1810
.L1832:
	nop
	jmp	.L1810
.L1833:
	nop
.L1810:
	mov	rax, QWORD PTR -600[rbp]
	mov	rdi, rax
	call	gen_cast
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L1826
	call	__stack_chk_fail@PLT
.L1826:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE180:
	.size	gen_assign_cast, .-gen_assign_cast
	.globl	vstore
	.type	vstore, @function
vstore:
.LFB181:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 136
	.cfi_offset 3, -24
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -128[rbp], eax
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	mov	DWORD PTR -124[rbp], eax
	mov	eax, DWORD PTR -128[rbp]
	and	eax, 15
	mov	DWORD PTR -120[rbp], eax
	cmp	DWORD PTR -124[rbp], 0
	je	.L1835
	cmp	DWORD PTR -124[rbp], 2
	jne	.L1836
.L1835:
	cmp	DWORD PTR -120[rbp], 1
	je	.L1837
.L1836:
	cmp	DWORD PTR -124[rbp], 0
	jne	.L1838
	cmp	DWORD PTR -120[rbp], 2
	jne	.L1838
.L1837:
	mov	DWORD PTR -132[rbp], 1024
	mov	rax, QWORD PTR vtop[rip]
	mov	edx, DWORD PTR -128[rbp]
	and	edx, -1921
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -128[rbp]
	and	eax, 2048
	test	eax, eax
	je	.L1840
	lea	rdi, .LC98[rip]
	mov	eax, 0
	call	warning
	jmp	.L1840
.L1838:
	mov	DWORD PTR -132[rbp], 0
	mov	eax, DWORD PTR -128[rbp]
	and	eax, 64
	test	eax, eax
	jne	.L1840
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	rdi, rax
	call	gen_assign_cast
.L1840:
	cmp	DWORD PTR -124[rbp], 7
	jne	.L1841
	mov	eax, DWORD PTR nocode_wanted[rip]
	test	eax, eax
	jne	.L1842
	mov	rax, QWORD PTR vtop[rip]
	mov	rdx, rax
	lea	rax, -140[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	type_size
	mov	DWORD PTR -100[rbp], eax
	mov	esi, 355
	lea	rdi, func_old_type[rip]
	call	vpush_global_sym
	mov	rax, QWORD PTR vtop[rip]
	add	rax, -128
	mov	rdi, rax
	call	vpushv
	mov	rax, QWORD PTR vtop[rip]
	mov	DWORD PTR [rax], 0
	call	gaddrof
	mov	rax, QWORD PTR vtop[rip]
	add	rax, -128
	mov	rdi, rax
	call	vpushv
	mov	rax, QWORD PTR vtop[rip]
	mov	DWORD PTR [rax], 0
	call	gaddrof
	mov	eax, DWORD PTR -100[rbp]
	mov	edi, eax
	call	vpushi
	mov	edi, 3
	call	gfunc_call
	call	vswap
	call	vpop
	jmp	.L1850
.L1842:
	call	vswap
	call	vpop
	jmp	.L1850
.L1841:
	mov	eax, DWORD PTR -128[rbp]
	and	eax, 64
	test	eax, eax
	je	.L1844
	mov	eax, DWORD PTR -128[rbp]
	sar	eax, 16
	and	eax, 63
	mov	DWORD PTR -108[rbp], eax
	mov	eax, DWORD PTR -128[rbp]
	sar	eax, 22
	and	eax, 63
	mov	DWORD PTR -104[rbp], eax
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	edx, DWORD PTR -128[rbp]
	and	edx, 65471
	mov	DWORD PTR [rax], edx
	call	vdup
	mov	rax, QWORD PTR vtop[rip]
	mov	rdx, QWORD PTR vtop[rip]
	sub	rdx, 64
	mov	rcx, QWORD PTR -128[rax]
	mov	rbx, QWORD PTR -120[rax]
	mov	QWORD PTR [rdx], rcx
	mov	QWORD PTR 8[rdx], rbx
	mov	rcx, QWORD PTR -112[rax]
	mov	rbx, QWORD PTR -104[rax]
	mov	QWORD PTR 16[rdx], rcx
	mov	QWORD PTR 24[rdx], rbx
	mov	rcx, QWORD PTR -96[rax]
	mov	rbx, QWORD PTR -88[rax]
	mov	QWORD PTR 32[rdx], rcx
	mov	QWORD PTR 40[rdx], rbx
	mov	rcx, QWORD PTR -80[rax]
	mov	rbx, QWORD PTR -72[rax]
	mov	QWORD PTR 48[rdx], rcx
	mov	QWORD PTR 56[rdx], rbx
	mov	eax, DWORD PTR -104[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	sub	eax, 1
	mov	edi, eax
	call	vpushi
	mov	edi, 38
	call	gen_op
	mov	eax, DWORD PTR -108[rbp]
	mov	edi, eax
	call	vpushi
	mov	edi, 1
	call	gen_op
	call	vswap
	mov	eax, DWORD PTR -104[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	lea	edx, -1[rax]
	mov	eax, DWORD PTR -108[rbp]
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	not	eax
	mov	edi, eax
	call	vpushi
	mov	edi, 38
	call	gen_op
	mov	edi, 124
	call	gen_op
	call	vstore
	jmp	.L1850
.L1844:
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 2048
	test	eax, eax
	je	.L1845
	call	vswap
	call	gbound
	call	vswap
.L1845:
	mov	eax, DWORD PTR nocode_wanted[rip]
	test	eax, eax
	jne	.L1846
	mov	DWORD PTR -136[rbp], 1
	mov	eax, DWORD PTR -128[rbp]
	mov	edi, eax
	call	is_float
	test	eax, eax
	je	.L1847
	mov	DWORD PTR -136[rbp], 2
.L1847:
	mov	eax, DWORD PTR -136[rbp]
	mov	edi, eax
	call	gv
	mov	DWORD PTR -116[rbp], eax
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	movzx	eax, al
	cmp	eax, 241
	jne	.L1848
	mov	edi, 1
	call	get_reg
	mov	DWORD PTR -112[rbp], eax
	mov	DWORD PTR -96[rbp], 0
	mov	WORD PTR -80[rbp], 498
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	eax, DWORD PTR 32[rax]
	mov	DWORD PTR -64[rbp], eax
	lea	rdx, -96[rbp]
	mov	eax, DWORD PTR -112[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	load
	mov	eax, DWORD PTR -112[rbp]
	or	ah, 1
	mov	edx, eax
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	WORD PTR 16[rax], dx
.L1848:
	mov	rax, QWORD PTR vtop[rip]
	lea	rdx, -64[rax]
	mov	eax, DWORD PTR -116[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	store
	mov	eax, DWORD PTR -128[rbp]
	and	eax, 15
	cmp	eax, 12
	jne	.L1846
	call	vswap
	mov	rax, QWORD PTR vtop[rip]
	mov	DWORD PTR [rax], 0
	call	gaddrof
	mov	edi, 4
	call	vpushi
	mov	edi, 43
	call	gen_op
	mov	rax, QWORD PTR vtop[rip]
	movzx	edx, WORD PTR 16[rax]
	mov	rax, QWORD PTR vtop[rip]
	or	dh, 1
	mov	WORD PTR 16[rax], dx
	call	vswap
	mov	rax, QWORD PTR vtop[rip]
	lea	rdx, -64[rax]
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 18[rax]
	movzx	eax, ax
	mov	rsi, rdx
	mov	edi, eax
	call	store
.L1846:
	call	vswap
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	QWORD PTR vtop[rip], rax
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	mov	edx, eax
	mov	eax, DWORD PTR -132[rbp]
	or	edx, eax
	mov	rax, QWORD PTR vtop[rip]
	mov	WORD PTR 16[rax], dx
.L1850:
	nop
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L1849
	call	__stack_chk_fail@PLT
.L1849:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE181:
	.size	vstore, .-vstore
	.globl	inc
	.type	inc, @function
inc:
.LFB182:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	DWORD PTR -8[rbp], esi
	call	test_lvalue
	call	vdup
	cmp	DWORD PTR -4[rbp], 0
	je	.L1852
	call	gv_dup
	mov	edi, 3
	call	vrotb
	mov	edi, 3
	call	vrotb
.L1852:
	mov	eax, DWORD PTR -8[rbp]
	sub	eax, 163
	mov	edi, eax
	call	vpushi
	mov	edi, 43
	call	gen_op
	call	vstore
	cmp	DWORD PTR -4[rbp], 0
	je	.L1854
	call	vpop
.L1854:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE182:
	.size	inc, .-inc
	.section	.rodata
.LC103:
	.string	"attribute name"
.LC104:
	.string	"section name"
	.align 8
.LC105:
	.string	"alignment must be a positive power of two"
.LC106:
	.string	"'%s' attribute ignored"
	.text
	.type	parse_attribute, @function
parse_attribute:
.LFB183:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	jmp	.L1856
.L1887:
	call	next
	mov	edi, 40
	call	skip
	mov	edi, 40
	call	skip
	jmp	.L1857
.L1886:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 255
	jg	.L1858
	lea	rdi, .LC103[rip]
	call	expect
.L1858:
	mov	eax, DWORD PTR tok[rip]
	mov	DWORD PTR -4[rbp], eax
	call	next
	mov	eax, DWORD PTR -4[rbp]
	sub	eax, 333
	cmp	eax, 20
	ja	.L1859
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L1861[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L1861[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L1861:
	.long	.L1869-.L1861
	.long	.L1869-.L1861
	.long	.L1868-.L1861
	.long	.L1868-.L1861
	.long	.L1867-.L1861
	.long	.L1867-.L1861
	.long	.L1888-.L1861
	.long	.L1888-.L1861
	.long	.L1865-.L1861
	.long	.L1865-.L1861
	.long	.L1865-.L1861
	.long	.L1864-.L1861
	.long	.L1864-.L1861
	.long	.L1864-.L1861
	.long	.L1863-.L1861
	.long	.L1888-.L1861
	.long	.L1888-.L1861
	.long	.L1859-.L1861
	.long	.L1859-.L1861
	.long	.L1860-.L1861
	.long	.L1860-.L1861
	.text
.L1869:
	mov	edi, 40
	call	skip
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 181
	je	.L1870
	lea	rdi, .LC104[rip]
	call	expect
.L1870:
	mov	rax, QWORD PTR tokc[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR tcc_state[rip]
	mov	rsi, rdx
	mov	rdi, rax
	call	find_section
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rdx], rax
	call	next
	mov	edi, 41
	call	skip
	jmp	.L1871
.L1868:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 40
	jne	.L1872
	call	next
	call	expr_const
	mov	DWORD PTR -8[rbp], eax
	cmp	DWORD PTR -8[rbp], 0
	jle	.L1873
	mov	eax, DWORD PTR -8[rbp]
	sub	eax, 1
	and	eax, DWORD PTR -8[rbp]
	test	eax, eax
	je	.L1874
.L1873:
	lea	rdi, .LC105[rip]
	mov	eax, 0
	call	error
.L1874:
	mov	edi, 41
	call	skip
	jmp	.L1875
.L1872:
	mov	DWORD PTR -8[rbp], 8
.L1875:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -8[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L1871
.L1867:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 4[rax], 1
	jmp	.L1871
.L1865:
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 16[rax], 0
	jmp	.L1871
.L1864:
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 16[rax], 1
	jmp	.L1871
.L1860:
	mov	edi, 40
	call	skip
	call	expr_const
	mov	DWORD PTR -8[rbp], eax
	cmp	DWORD PTR -8[rbp], 3
	jle	.L1876
	mov	DWORD PTR -8[rbp], 3
	jmp	.L1877
.L1876:
	cmp	DWORD PTR -8[rbp], 0
	jns	.L1877
	mov	DWORD PTR -8[rbp], 0
.L1877:
	cmp	DWORD PTR -8[rbp], 0
	jle	.L1878
	mov	eax, DWORD PTR -8[rbp]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 16[rax], dl
.L1878:
	mov	edi, 41
	call	skip
	jmp	.L1871
.L1863:
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 17[rax], 1
	jmp	.L1871
.L1859:
	mov	rax, QWORD PTR tcc_state[rip]
	mov	eax, DWORD PTR 228[rax]
	test	eax, eax
	je	.L1879
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, 0
	mov	edi, eax
	call	get_tok_str
	mov	rsi, rax
	lea	rdi, .LC106[rip]
	mov	eax, 0
	call	warning
.L1879:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 40
	jne	.L1889
	call	next
	jmp	.L1881
.L1883:
	call	next
.L1881:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 41
	je	.L1882
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, -1
	jne	.L1883
.L1882:
	call	next
	jmp	.L1889
.L1888:
	nop
	jmp	.L1871
.L1889:
	nop
.L1871:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 44
	jne	.L1890
	call	next
.L1857:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 41
	jne	.L1886
	jmp	.L1885
.L1890:
	nop
.L1885:
	mov	edi, 41
	call	skip
	mov	edi, 41
	call	skip
.L1856:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 302
	je	.L1887
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 303
	je	.L1887
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE183:
	.size	parse_attribute, .-parse_attribute
	.section	.rodata
.LC107:
	.string	"struct/union/enum name"
.LC108:
	.string	"invalid type"
	.align 8
.LC109:
	.string	"struct/union/enum already defined"
.LC110:
	.string	"identifier"
.LC111:
	.string	"invalid type for '%s'"
	.align 8
.LC112:
	.string	"negative width in bit-field '%s'"
.LC113:
	.string	"zero width for bit-field '%s'"
	.align 8
.LC114:
	.string	"bitfields must have scalar type"
	.align 8
.LC115:
	.string	"width of '%s' exceeds its type"
	.text
	.type	struct_decl, @function
struct_decl:
.LFB184:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 160
	mov	QWORD PTR -152[rbp], rdi
	mov	DWORD PTR -156[rbp], esi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR tok[rip]
	mov	DWORD PTR -104[rbp], eax
	call	next
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 123
	je	.L1892
	mov	eax, DWORD PTR tok[rip]
	mov	DWORD PTR -136[rbp], eax
	call	next
	mov	eax, DWORD PTR -136[rbp]
	cmp	eax, 255
	jg	.L1893
	lea	rdi, .LC107[rip]
	call	expect
.L1893:
	mov	eax, DWORD PTR -136[rbp]
	mov	edi, eax
	call	struct_find
	mov	QWORD PTR -88[rbp], rax
	cmp	QWORD PTR -88[rbp], 0
	je	.L1894
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 24[rax]
	cmp	DWORD PTR -104[rbp], eax
	je	.L1929
	lea	rdi, .LC108[rip]
	mov	eax, 0
	call	error
	jmp	.L1929
.L1892:
	mov	rax, QWORD PTR anon_sym[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR anon_sym[rip], rdx
	mov	DWORD PTR -136[rbp], eax
.L1894:
	mov	eax, DWORD PTR -104[rbp]
	mov	DWORD PTR -64[rbp], eax
	mov	eax, DWORD PTR -136[rbp]
	or	eax, 1073741824
	mov	edi, eax
	lea	rax, -64[rbp]
	mov	ecx, -1
	mov	edx, 0
	mov	rsi, rax
	call	sym_push
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	QWORD PTR 8[rax], 0
	jmp	.L1896
.L1929:
	nop
.L1896:
	mov	rax, QWORD PTR -152[rbp]
	mov	edx, DWORD PTR -156[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -152[rbp]
	mov	rdx, QWORD PTR -88[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 123
	jne	.L1930
	call	next
	mov	rax, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR 16[rax]
	cmp	rax, -1
	je	.L1898
	lea	rdi, .LC109[rip]
	mov	eax, 0
	call	error
.L1898:
	mov	DWORD PTR -124[rbp], 0
	cmp	DWORD PTR -104[rbp], 300
	jne	.L1899
.L1905:
	mov	eax, DWORD PTR tok[rip]
	mov	DWORD PTR -136[rbp], eax
	mov	eax, DWORD PTR -136[rbp]
	cmp	eax, 312
	jg	.L1900
	lea	rdi, .LC110[rip]
	call	expect
.L1900:
	call	next
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 61
	jne	.L1901
	call	next
	call	expr_const
	mov	DWORD PTR -124[rbp], eax
.L1901:
	mov	eax, DWORD PTR -136[rbp]
	mov	edx, DWORD PTR -124[rbp]
	mov	ecx, edx
	mov	edx, 240
	lea	rsi, int_type[rip]
	mov	edi, eax
	call	sym_push
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR 24[rax]
	or	ah, 1
	mov	edx, eax
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 24[rax], edx
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 44
	jne	.L1931
	call	next
	add	DWORD PTR -124[rbp], 1
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 125
	je	.L1932
	jmp	.L1905
.L1931:
	nop
	jmp	.L1903
.L1932:
	nop
.L1903:
	mov	edi, 125
	call	skip
	jmp	.L1930
.L1899:
	mov	DWORD PTR -128[rbp], 1
	mov	rax, QWORD PTR -88[rbp]
	add	rax, 40
	mov	QWORD PTR -80[rbp], rax
	mov	DWORD PTR -112[rbp], 0
	mov	DWORD PTR -120[rbp], 0
	jmp	.L1906
.L1927:
	lea	rdx, -32[rbp]
	lea	rax, -48[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	parse_btype
.L1926:
	mov	DWORD PTR -116[rbp], -1
	mov	DWORD PTR -136[rbp], 0
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	QWORD PTR -56[rbp], rdx
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 58
	je	.L1907
	lea	rdx, -136[rbp]
	lea	rsi, -32[rbp]
	lea	rax, -64[rbp]
	mov	ecx, 2
	mov	rdi, rax
	call	type_decl
	mov	eax, DWORD PTR -64[rbp]
	and	eax, 15
	cmp	eax, 6
	je	.L1908
	mov	eax, DWORD PTR -64[rbp]
	and	eax, 1920
	test	eax, eax
	je	.L1907
.L1908:
	mov	eax, DWORD PTR -136[rbp]
	mov	esi, 0
	mov	edi, eax
	call	get_tok_str
	mov	rsi, rax
	lea	rdi, .LC111[rip]
	mov	eax, 0
	call	error
.L1907:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 58
	jne	.L1909
	call	next
	call	expr_const
	mov	DWORD PTR -116[rbp], eax
	cmp	DWORD PTR -116[rbp], 0
	jns	.L1910
	mov	eax, DWORD PTR -136[rbp]
	mov	esi, 0
	mov	edi, eax
	call	get_tok_str
	mov	rsi, rax
	lea	rdi, .LC112[rip]
	mov	eax, 0
	call	error
.L1910:
	mov	eax, DWORD PTR -136[rbp]
	test	eax, eax
	je	.L1909
	cmp	DWORD PTR -116[rbp], 0
	jne	.L1909
	mov	eax, DWORD PTR -136[rbp]
	mov	esi, 0
	mov	edi, eax
	call	get_tok_str
	mov	rsi, rax
	lea	rdi, .LC113[rip]
	mov	eax, 0
	call	error
.L1909:
	lea	rdx, -132[rbp]
	lea	rax, -64[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	type_size
	mov	DWORD PTR -100[rbp], eax
	mov	eax, DWORD PTR -32[rbp]
	test	eax, eax
	je	.L1911
	mov	edx, DWORD PTR -32[rbp]
	mov	eax, DWORD PTR -132[rbp]
	cmp	edx, eax
	jle	.L1912
	mov	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR -132[rbp], eax
	jmp	.L1912
.L1911:
	mov	eax, DWORD PTR -28[rbp]
	test	eax, eax
	je	.L1913
	mov	DWORD PTR -132[rbp], 1
	jmp	.L1912
.L1913:
	mov	rax, QWORD PTR tcc_state[rip]
	mov	rax, QWORD PTR 3080[rax]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L1912
	mov	rax, QWORD PTR tcc_state[rip]
	mov	rax, QWORD PTR 3080[rax]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -132[rbp]
	cmp	edx, eax
	jge	.L1912
	mov	rax, QWORD PTR tcc_state[rip]
	mov	rax, QWORD PTR 3080[rax]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -132[rbp], eax
.L1912:
	mov	DWORD PTR -108[rbp], 0
	cmp	DWORD PTR -116[rbp], 0
	js	.L1914
	mov	eax, DWORD PTR -64[rbp]
	and	eax, 15
	mov	DWORD PTR -96[rbp], eax
	cmp	DWORD PTR -96[rbp], 0
	je	.L1915
	cmp	DWORD PTR -96[rbp], 1
	je	.L1915
	cmp	DWORD PTR -96[rbp], 2
	je	.L1915
	cmp	DWORD PTR -96[rbp], 11
	je	.L1915
	cmp	DWORD PTR -96[rbp], 5
	je	.L1915
	lea	rdi, .LC114[rip]
	mov	eax, 0
	call	error
.L1915:
	mov	eax, DWORD PTR -100[rbp]
	sal	eax, 3
	mov	DWORD PTR -92[rbp], eax
	mov	eax, DWORD PTR -116[rbp]
	cmp	eax, DWORD PTR -92[rbp]
	jle	.L1916
	mov	eax, DWORD PTR -136[rbp]
	mov	esi, 0
	mov	edi, eax
	call	get_tok_str
	mov	rsi, rax
	lea	rdi, .LC115[rip]
	mov	eax, 0
	call	error
	jmp	.L1917
.L1916:
	mov	eax, DWORD PTR -116[rbp]
	cmp	eax, DWORD PTR -92[rbp]
	jne	.L1918
	mov	DWORD PTR -112[rbp], 0
	jmp	.L1917
.L1918:
	cmp	DWORD PTR -116[rbp], 0
	jne	.L1919
	cmp	DWORD PTR -112[rbp], 0
	jle	.L1917
	mov	eax, DWORD PTR -92[rbp]
	mov	DWORD PTR -112[rbp], eax
	jmp	.L1917
.L1919:
	mov	edx, DWORD PTR -112[rbp]
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	cmp	DWORD PTR -92[rbp], eax
	jge	.L1920
	mov	DWORD PTR -112[rbp], 0
.L1920:
	mov	eax, DWORD PTR -112[rbp]
	mov	DWORD PTR -108[rbp], eax
	mov	edx, DWORD PTR -64[rbp]
	mov	eax, DWORD PTR -112[rbp]
	sal	eax, 16
	or	eax, 64
	mov	ecx, eax
	mov	eax, DWORD PTR -116[rbp]
	sal	eax, 22
	or	eax, ecx
	or	eax, edx
	mov	DWORD PTR -64[rbp], eax
	mov	eax, DWORD PTR -116[rbp]
	add	DWORD PTR -112[rbp], eax
	jmp	.L1917
.L1914:
	mov	DWORD PTR -112[rbp], 0
.L1917:
	mov	eax, DWORD PTR -136[rbp]
	test	eax, eax
	je	.L1921
	cmp	DWORD PTR -108[rbp], 0
	jne	.L1922
	cmp	DWORD PTR -104[rbp], 296
	jne	.L1923
	mov	edx, DWORD PTR -132[rbp]
	mov	eax, DWORD PTR -124[rbp]
	add	eax, edx
	lea	edx, -1[rax]
	mov	eax, DWORD PTR -132[rbp]
	neg	eax
	and	eax, edx
	mov	DWORD PTR -124[rbp], eax
	mov	eax, DWORD PTR -124[rbp]
	mov	DWORD PTR -120[rbp], eax
	mov	eax, DWORD PTR -100[rbp]
	add	DWORD PTR -124[rbp], eax
	jmp	.L1924
.L1923:
	mov	DWORD PTR -120[rbp], 0
	mov	eax, DWORD PTR -100[rbp]
	cmp	eax, DWORD PTR -124[rbp]
	jle	.L1924
	mov	eax, DWORD PTR -100[rbp]
	mov	DWORD PTR -124[rbp], eax
.L1924:
	mov	eax, DWORD PTR -132[rbp]
	cmp	DWORD PTR -128[rbp], eax
	jge	.L1922
	mov	eax, DWORD PTR -132[rbp]
	mov	DWORD PTR -128[rbp], eax
.L1922:
	mov	eax, DWORD PTR -136[rbp]
	or	eax, 536870912
	mov	edi, eax
	mov	edx, DWORD PTR -120[rbp]
	lea	rax, -64[rbp]
	mov	ecx, edx
	mov	edx, 0
	mov	rsi, rax
	call	sym_push
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR -72[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 40
	mov	QWORD PTR -80[rbp], rax
.L1921:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 59
	je	.L1925
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, -1
	je	.L1925
	mov	edi, 44
	call	skip
	jmp	.L1926
.L1925:
	mov	edi, 59
	call	skip
.L1906:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 125
	jne	.L1927
	mov	edi, 125
	call	skip
	mov	edx, DWORD PTR -124[rbp]
	mov	eax, DWORD PTR -128[rbp]
	add	eax, edx
	lea	edx, -1[rax]
	mov	eax, DWORD PTR -128[rbp]
	neg	eax
	and	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -88[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	eax, DWORD PTR -128[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -88[rbp]
	mov	QWORD PTR 8[rax], rdx
.L1930:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L1928
	call	__stack_chk_fail@PLT
.L1928:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE184:
	.size	struct_decl, .-struct_decl
	.section	.rodata
.LC116:
	.string	"too many basic types"
.LC117:
	.string	"signed and unsigned modifier"
	.text
	.type	parse_btype, @function
parse_btype:
.LFB185:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -80[rbp]
	mov	edx, 24
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	DWORD PTR -48[rbp], 0
	mov	DWORD PTR -44[rbp], 0
	mov	DWORD PTR -56[rbp], 0
.L1973:
	mov	eax, DWORD PTR tok[rip]
	sub	eax, 256
	cmp	eax, 52
	ja	.L1934
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L1936[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L1936[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L1936:
	.long	.L1957-.L1936
	.long	.L1956-.L1936
	.long	.L1955-.L1936
	.long	.L1934-.L1936
	.long	.L1934-.L1936
	.long	.L1934-.L1936
	.long	.L1934-.L1936
	.long	.L1934-.L1936
	.long	.L1934-.L1936
	.long	.L1954-.L1936
	.long	.L1953-.L1936
	.long	.L1952-.L1936
	.long	.L1934-.L1936
	.long	.L1934-.L1936
	.long	.L1934-.L1936
	.long	.L1934-.L1936
	.long	.L1934-.L1936
	.long	.L1951-.L1936
	.long	.L1951-.L1936
	.long	.L1951-.L1936
	.long	.L1950-.L1936
	.long	.L1950-.L1936
	.long	.L1950-.L1936
	.long	.L1949-.L1936
	.long	.L1946-.L1936
	.long	.L1948-.L1936
	.long	.L1948-.L1936
	.long	.L1948-.L1936
	.long	.L1946-.L1936
	.long	.L1947-.L1936
	.long	.L1947-.L1936
	.long	.L1947-.L1936
	.long	.L1946-.L1936
	.long	.L1946-.L1936
	.long	.L1946-.L1936
	.long	.L1945-.L1936
	.long	.L1944-.L1936
	.long	.L1943-.L1936
	.long	.L1942-.L1936
	.long	.L1941-.L1936
	.long	.L1940-.L1936
	.long	.L1940-.L1936
	.long	.L1939-.L1936
	.long	.L1934-.L1936
	.long	.L1938-.L1936
	.long	.L1934-.L1936
	.long	.L1937-.L1936
	.long	.L1937-.L1936
	.long	.L1934-.L1936
	.long	.L1934-.L1936
	.long	.L1935-.L1936
	.long	.L1935-.L1936
	.long	.L1935-.L1936
	.text
.L1945:
	call	next
	jmp	.L1958
.L1955:
	mov	DWORD PTR -52[rbp], 1
.L1959:
	call	next
.L1960:
	mov	eax, DWORD PTR -56[rbp]
	and	eax, 15
	test	eax, eax
	je	.L1961
	lea	rdi, .LC116[rip]
	mov	eax, 0
	call	error
.L1961:
	mov	eax, DWORD PTR -52[rbp]
	or	DWORD PTR -56[rbp], eax
	mov	DWORD PTR -44[rbp], 1
	jmp	.L1962
.L1956:
	mov	DWORD PTR -52[rbp], 3
	jmp	.L1959
.L1941:
	mov	DWORD PTR -52[rbp], 2
	jmp	.L1959
.L1957:
	call	next
	mov	DWORD PTR -44[rbp], 1
	jmp	.L1962
.L1949:
	call	next
	mov	eax, DWORD PTR -56[rbp]
	and	eax, 15
	cmp	eax, 9
	jne	.L1963
	mov	eax, DWORD PTR -56[rbp]
	and	eax, -16
	or	eax, 10
	mov	DWORD PTR -56[rbp], eax
	jmp	.L1962
.L1963:
	mov	eax, DWORD PTR -56[rbp]
	and	eax, 15
	cmp	eax, 13
	jne	.L1965
	mov	eax, DWORD PTR -56[rbp]
	and	eax, -16
	or	eax, 12
	mov	DWORD PTR -56[rbp], eax
	jmp	.L1962
.L1965:
	mov	DWORD PTR -52[rbp], 13
	jmp	.L1960
.L1942:
	mov	DWORD PTR -52[rbp], 11
	jmp	.L1959
.L1944:
	mov	DWORD PTR -52[rbp], 8
	jmp	.L1959
.L1943:
	call	next
	mov	eax, DWORD PTR -56[rbp]
	and	eax, 15
	cmp	eax, 13
	jne	.L1966
	mov	eax, DWORD PTR -56[rbp]
	and	eax, -16
	or	eax, 10
	mov	DWORD PTR -56[rbp], eax
	jmp	.L1962
.L1966:
	mov	DWORD PTR -52[rbp], 9
	jmp	.L1960
.L1938:
	lea	rax, -32[rbp]
	mov	esi, 5
	mov	rdi, rax
	call	struct_decl
.L1968:
	mov	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR -52[rbp], eax
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR 8[rax], rdx
	jmp	.L1960
.L1940:
	lea	rax, -32[rbp]
	mov	esi, 7
	mov	rdi, rax
	call	struct_decl
	jmp	.L1968
.L1951:
	or	DWORD PTR -56[rbp], 2048
	call	next
	jmp	.L1962
.L1950:
	or	DWORD PTR -56[rbp], 4096
	call	next
	jmp	.L1962
.L1948:
	mov	DWORD PTR -44[rbp], 1
	or	DWORD PTR -56[rbp], 8192
	call	next
	jmp	.L1962
.L1946:
	call	next
	jmp	.L1962
.L1952:
	or	DWORD PTR -56[rbp], 16
	call	next
	mov	DWORD PTR -44[rbp], 1
	jmp	.L1962
.L1954:
	or	DWORD PTR -56[rbp], 128
	call	next
	jmp	.L1962
.L1953:
	or	DWORD PTR -56[rbp], 256
	call	next
	jmp	.L1962
.L1939:
	or	DWORD PTR -56[rbp], 512
	call	next
	jmp	.L1962
.L1947:
	or	DWORD PTR -56[rbp], 1024
	call	next
	jmp	.L1962
.L1937:
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	parse_attribute
	jmp	.L1962
.L1935:
	call	next
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	parse_expr_type
	jmp	.L1968
.L1934:
	cmp	DWORD PTR -44[rbp], 0
	jne	.L1979
	mov	eax, DWORD PTR tok[rip]
	mov	edi, eax
	call	sym_find
	mov	QWORD PTR -40[rbp], rax
	cmp	QWORD PTR -40[rbp], 0
	je	.L1980
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 24[rax]
	and	eax, 512
	test	eax, eax
	je	.L1980
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 24[rax]
	and	ah, -3
	or	DWORD PTR -56[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR 8[rax], rdx
	call	next
	nop
.L1962:
	mov	DWORD PTR -48[rbp], 1
.L1958:
	jmp	.L1973
.L1979:
	nop
	jmp	.L1970
.L1980:
	nop
.L1970:
	mov	eax, DWORD PTR -56[rbp]
	and	eax, 8208
	cmp	eax, 8208
	jne	.L1974
	lea	rdi, .LC117[rip]
	mov	eax, 0
	call	error
.L1974:
	mov	rax, QWORD PTR tcc_state[rip]
	mov	eax, DWORD PTR 216[rax]
	test	eax, eax
	je	.L1975
	mov	eax, DWORD PTR -56[rbp]
	and	eax, 8223
	cmp	eax, 1
	jne	.L1975
	or	DWORD PTR -56[rbp], 16
.L1975:
	and	DWORD PTR -56[rbp], -8193
	mov	eax, DWORD PTR -56[rbp]
	and	eax, 15
	cmp	eax, 13
	jne	.L1976
	and	DWORD PTR -56[rbp], -16
.L1976:
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, DWORD PTR -56[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -48[rbp]
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1978
	call	__stack_chk_fail@PLT
.L1978:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE185:
	.size	parse_btype, .-parse_btype
	.type	convert_parameter_type, @function
convert_parameter_type:
.LFB186:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	and	ah, -25
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, -33
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 6
	jne	.L1983
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	mk_pointer
.L1983:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE186:
	.size	convert_parameter_type, .-convert_parameter_type
	.section	.rodata
.LC118:
	.string	"parameter declared as void"
.LC119:
	.string	"invalid array size"
	.text
	.type	post_type, @function
post_type:
.LFB187:
	.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
	mov	QWORD PTR -112[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 40
	jne	.L1985
	call	next
	mov	DWORD PTR -80[rbp], 0
	mov	QWORD PTR -72[rbp], 0
	lea	rax, -72[rbp]
	mov	QWORD PTR -64[rbp], rax
	jmp	.L1986
.L1993:
	cmp	DWORD PTR -80[rbp], 2
	je	.L1998
	lea	rdx, -32[rbp]
	lea	rax, -48[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	parse_btype
	test	eax, eax
	jne	.L1988
	cmp	DWORD PTR -80[rbp], 0
	je	.L1989
	lea	rdi, .LC108[rip]
	mov	eax, 0
	call	error
	jmp	.L1988
.L1989:
	mov	DWORD PTR -80[rbp], 2
	jmp	.L1987
.L1988:
	mov	DWORD PTR -80[rbp], 1
	mov	eax, DWORD PTR -48[rbp]
	and	eax, 15
	cmp	eax, 3
	jne	.L1990
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 41
	je	.L1999
.L1990:
	lea	rdx, -84[rbp]
	lea	rsi, -32[rbp]
	lea	rax, -48[rbp]
	mov	ecx, 3
	mov	rdi, rax
	call	type_decl
	mov	eax, DWORD PTR -48[rbp]
	and	eax, 15
	cmp	eax, 3
	jne	.L1992
	lea	rdi, .LC118[rip]
	mov	eax, 0
	call	error
	jmp	.L1992
.L1998:
	nop
.L1987:
	mov	eax, DWORD PTR tok[rip]
	mov	DWORD PTR -84[rbp], eax
	mov	DWORD PTR -48[rbp], 0
	call	next
.L1992:
	lea	rax, -48[rbp]
	mov	rdi, rax
	call	convert_parameter_type
	mov	eax, DWORD PTR -84[rbp]
	or	eax, 536870912
	mov	edi, eax
	lea	rax, -48[rbp]
	mov	ecx, 0
	mov	edx, 0
	mov	rsi, rax
	call	sym_push
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR -56[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 40
	mov	QWORD PTR -64[rbp], rax
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 44
	jne	.L1986
	call	next
	cmp	DWORD PTR -80[rbp], 1
	jne	.L1986
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 204
	jne	.L1986
	mov	DWORD PTR -80[rbp], 3
	call	next
	jmp	.L1991
.L1986:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 41
	jne	.L1993
	jmp	.L1991
.L1999:
	nop
.L1991:
	cmp	DWORD PTR -80[rbp], 0
	jne	.L1994
	mov	DWORD PTR -80[rbp], 2
.L1994:
	mov	edi, 41
	call	skip
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 1920
	mov	DWORD PTR -76[rbp], eax
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, -3969
	mov	edx, eax
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR [rax], edx
	mov	rdx, QWORD PTR -112[rbp]
	mov	rax, QWORD PTR -104[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	post_type
	mov	rax, QWORD PTR -112[rbp]
	movzx	eax, BYTE PTR 16[rax]
	movzx	edx, al
	mov	ecx, DWORD PTR -80[rbp]
	mov	rax, QWORD PTR -104[rbp]
	mov	rsi, rax
	mov	edi, 536870912
	call	sym_push
	mov	QWORD PTR -56[rbp], rax
	mov	rdx, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	eax, DWORD PTR -76[rbp]
	or	eax, 6
	mov	edx, eax
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR -56[rbp]
	mov	QWORD PTR 8[rax], rdx
	jmp	.L2000
.L1985:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 91
	jne	.L2000
	call	next
	mov	DWORD PTR -84[rbp], -1
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 93
	je	.L1996
	call	expr_const
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -84[rbp]
	test	eax, eax
	jns	.L1996
	lea	rdi, .LC119[rip]
	mov	eax, 0
	call	error
.L1996:
	mov	edi, 93
	call	skip
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 1920
	mov	DWORD PTR -76[rbp], eax
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, -1921
	mov	edx, eax
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR [rax], edx
	mov	rdx, QWORD PTR -112[rbp]
	mov	rax, QWORD PTR -104[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	post_type
	mov	edx, DWORD PTR -84[rbp]
	mov	rax, QWORD PTR -104[rbp]
	mov	ecx, edx
	mov	edx, 0
	mov	rsi, rax
	mov	edi, 536870912
	call	sym_push
	mov	QWORD PTR -56[rbp], rax
	mov	eax, DWORD PTR -76[rbp]
	or	eax, 36
	mov	edx, eax
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR -56[rbp]
	mov	QWORD PTR 8[rax], rdx
.L2000:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L1997
	call	__stack_chk_fail@PLT
.L1997:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE187:
	.size	post_type, .-post_type
	.type	type_decl, @function
type_decl:
.LFB188:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	QWORD PTR -88[rbp], rdx
	mov	DWORD PTR -92[rbp], ecx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	jmp	.L2002
.L2009:
	mov	DWORD PTR -52[rbp], 0
.L2003:
	call	next
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 290
	jg	.L2004
	cmp	eax, 288
	jge	.L2003
	cmp	eax, 275
	jg	.L2006
	cmp	eax, 273
	jge	.L2007
	jmp	.L2004
.L2006:
	sub	eax, 276
	cmp	eax, 2
	ja	.L2004
	jmp	.L2026
.L2007:
	or	DWORD PTR -52[rbp], 2048
	jmp	.L2003
.L2026:
	or	DWORD PTR -52[rbp], 4096
	jmp	.L2003
.L2004:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	mk_pointer
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR [rax]
	or	eax, DWORD PTR -52[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR [rax], edx
.L2002:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 42
	je	.L2009
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 302
	je	.L2010
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 303
	jne	.L2011
.L2010:
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	parse_attribute
.L2011:
	mov	DWORD PTR -32[rbp], 0
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 40
	jne	.L2012
	call	next
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 302
	je	.L2013
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 303
	jne	.L2014
.L2013:
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	parse_attribute
.L2014:
	mov	ecx, DWORD PTR -92[rbp]
	mov	rdx, QWORD PTR -88[rbp]
	mov	rsi, QWORD PTR -80[rbp]
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	type_decl
	mov	edi, 41
	call	skip
	jmp	.L2015
.L2012:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 255
	jle	.L2016
	mov	eax, DWORD PTR -92[rbp]
	and	eax, 2
	test	eax, eax
	je	.L2016
	mov	edx, DWORD PTR tok[rip]
	mov	rax, QWORD PTR -88[rbp]
	mov	DWORD PTR [rax], edx
	call	next
	jmp	.L2015
.L2016:
	mov	eax, DWORD PTR -92[rbp]
	and	eax, 1
	test	eax, eax
	jne	.L2017
	lea	rdi, .LC110[rip]
	call	expect
.L2017:
	mov	rax, QWORD PTR -88[rbp]
	mov	DWORD PTR [rax], 0
.L2015:
	mov	rdx, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	post_type
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 302
	je	.L2018
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 303
	jne	.L2019
.L2018:
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	parse_attribute
.L2019:
	mov	eax, DWORD PTR -32[rbp]
	test	eax, eax
	je	.L2027
	lea	rax, -32[rbp]
	mov	QWORD PTR -48[rbp], rax
.L2024:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 24
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L2024
	mov	rcx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR [rcx], rax
	mov	QWORD PTR 8[rcx], rdx
	nop
	mov	rcx, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rcx], rax
	mov	QWORD PTR 8[rcx], rdx
	jmp	.L2001
.L2027:
	nop
.L2001:
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2025
	call	__stack_chk_fail@PLT
.L2025:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE188:
	.size	type_decl, .-type_decl
	.type	lvalue_type, @function
lvalue_type:
.LFB189:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -8[rbp], 256
	mov	eax, DWORD PTR -20[rbp]
	and	eax, 15
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 1
	je	.L2029
	cmp	DWORD PTR -4[rbp], 11
	jne	.L2030
.L2029:
	or	DWORD PTR -8[rbp], 4096
	jmp	.L2031
.L2030:
	cmp	DWORD PTR -4[rbp], 2
	jne	.L2032
	or	DWORD PTR -8[rbp], 8192
	jmp	.L2031
.L2032:
	mov	eax, DWORD PTR -8[rbp]
	jmp	.L2033
.L2031:
	mov	eax, DWORD PTR -20[rbp]
	and	eax, 16
	test	eax, eax
	je	.L2034
	or	DWORD PTR -8[rbp], 16384
.L2034:
	mov	eax, DWORD PTR -8[rbp]
.L2033:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE189:
	.size	lvalue_type, .-lvalue_type
	.section	.rodata
.LC120:
	.string	"pointer"
	.text
	.type	indir, @function
indir:
.LFB190:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 4
	je	.L2036
	lea	rdi, .LC120[rip]
	call	expect
.L2036:
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 256
	test	eax, eax
	je	.L2037
	mov	eax, DWORD PTR nocode_wanted[rip]
	test	eax, eax
	jne	.L2037
	mov	edi, 1
	call	gv
.L2037:
	mov	rax, QWORD PTR vtop[rip]
	mov	rdi, rax
	call	pointed_type
	mov	rcx, QWORD PTR vtop[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR [rcx], rax
	mov	QWORD PTR 8[rcx], rdx
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	and	eax, 32
	test	eax, eax
	jne	.L2039
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	lvalue_type
	mov	rdx, QWORD PTR vtop[rip]
	movzx	edx, WORD PTR 16[rdx]
	or	edx, eax
	mov	rax, QWORD PTR vtop[rip]
	mov	WORD PTR 16[rax], dx
	mov	eax, DWORD PTR do_bounds_check[rip]
	test	eax, eax
	je	.L2039
	mov	rax, QWORD PTR vtop[rip]
	movzx	edx, WORD PTR 16[rax]
	mov	rax, QWORD PTR vtop[rip]
	or	dh, 8
	mov	WORD PTR 16[rax], dx
.L2039:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE190:
	.size	indir, .-indir
	.section	.rodata
	.align 8
.LC121:
	.string	"too many arguments to function"
	.text
	.type	gfunc_param_typed, @function
gfunc_param_typed:
.LFB191:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	DWORD PTR -36[rbp], eax
	cmp	DWORD PTR -36[rbp], 2
	je	.L2041
	cmp	DWORD PTR -36[rbp], 3
	jne	.L2042
	cmp	QWORD PTR -64[rbp], 0
	jne	.L2042
.L2041:
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 8
	jne	.L2044
	mov	DWORD PTR -32[rbp], 9
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	gen_cast
	jmp	.L2044
.L2042:
	cmp	QWORD PTR -64[rbp], 0
	jne	.L2045
	lea	rdi, .LC121[rip]
	mov	eax, 0
	call	error
	jmp	.L2047
.L2045:
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -32[rbp], rax
	mov	QWORD PTR -24[rbp], rdx
	mov	eax, DWORD PTR -32[rbp]
	and	ah, -9
	mov	DWORD PTR -32[rbp], eax
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	gen_assign_cast
	jmp	.L2047
.L2044:
.L2047:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2046
	call	__stack_chk_fail@PLT
.L2046:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE191:
	.size	gfunc_param_typed, .-gfunc_param_typed
	.type	parse_expr_type, @function
parse_expr_type:
.LFB192:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	edi, 40
	call	skip
	lea	rdx, -32[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	parse_btype
	test	eax, eax
	je	.L2049
	lea	rdx, -36[rbp]
	lea	rsi, -32[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	ecx, 1
	mov	rdi, rax
	call	type_decl
	jmp	.L2050
.L2049:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	expr_type
.L2050:
	mov	edi, 41
	call	skip
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2051
	call	__stack_chk_fail@PLT
.L2051:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE192:
	.size	parse_expr_type, .-parse_expr_type
	.section	.rodata
.LC122:
	.string	"type"
	.text
	.type	parse_type, @function
parse_type:
.LFB193:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rdx, -32[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	parse_btype
	test	eax, eax
	jne	.L2053
	lea	rdi, .LC122[rip]
	call	expect
.L2053:
	lea	rdx, -36[rbp]
	lea	rsi, -32[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	ecx, 1
	mov	rdi, rax
	call	type_decl
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2054
	call	__stack_chk_fail@PLT
.L2054:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE193:
	.size	parse_type, .-parse_type
	.type	vpush_tokc, @function
vpush_tokc:
.LFB194:
	.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	DWORD PTR -36[rbp], edi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR -36[rbp]
	mov	DWORD PTR -32[rbp], eax
	lea	rax, -32[rbp]
	lea	rdx, tokc[rip]
	mov	esi, 240
	mov	rdi, rax
	call	vsetc
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2056
	call	__stack_chk_fail@PLT
.L2056:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE194:
	.size	vpush_tokc, .-vpush_tokc
	.section	.rodata
	.align 8
.LC123:
	.string	"pointer not accepted for unary plus"
	.align 8
.LC124:
	.string	"sizeof applied to an incomplete type"
.LC125:
	.string	"label identifier"
.LC126:
	.string	"'%s' undeclared"
	.align 8
.LC127:
	.string	"implicit declaration of function '%s'"
.LC128:
	.string	"struct or union"
.LC129:
	.string	"field not found"
.LC130:
	.string	"function pointer"
.LC131:
	.string	"too few arguments to function"
	.text
	.type	unary, @function
unary:
.LFB195:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 192
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
.L2058:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 351
	jg	.L2059
	cmp	eax, 291
	jge	.L2060
	cmp	eax, 45
	jg	.L2061
	cmp	eax, 33
	jge	.L2062
	jmp	.L2059
.L2060:
	sub	eax, 291
	cmp	eax, 60
	ja	.L2059
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L2064[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L2064[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L2064:
	.long	.L2069-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2068-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2068-.L2064
	.long	.L2068-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2067-.L2064
	.long	.L2059-.L2064
	.long	.L2066-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2059-.L2064
	.long	.L2065-.L2064
	.long	.L2063-.L2064
	.text
.L2090:
	sub	eax, 126
	cmp	eax, 76
	ja	.L2059
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L2071[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L2071[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L2071:
	.long	.L2082-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2081-.L2071
	.long	.L2059-.L2071
	.long	.L2080-.L2071
	.long	.L2059-.L2071
	.long	.L2080-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2078-.L2071
	.long	.L2078-.L2071
	.long	.L2079-.L2071
	.long	.L2059-.L2071
	.long	.L2078-.L2071
	.long	.L2077-.L2071
	.long	.L2076-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2075-.L2071
	.long	.L2074-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2059-.L2071
	.long	.L2073-.L2071
	.long	.L2072-.L2071
	.long	.L2070-.L2071
	.text
.L2062:
	sub	eax, 33
	cmp	eax, 12
	ja	.L2059
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L2084[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L2084[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L2084:
	.long	.L2089-.L2084
	.long	.L2059-.L2084
	.long	.L2059-.L2084
	.long	.L2059-.L2084
	.long	.L2059-.L2084
	.long	.L2088-.L2084
	.long	.L2059-.L2084
	.long	.L2087-.L2084
	.long	.L2059-.L2084
	.long	.L2086-.L2084
	.long	.L2085-.L2084
	.long	.L2059-.L2084
	.long	.L2083-.L2084
	.text
.L2061:
	cmp	eax, 202
	jg	.L2059
	cmp	eax, 126
	jge	.L2090
	jmp	.L2059
.L2069:
	call	next
	jmp	.L2058
.L2078:
	mov	eax, DWORD PTR tokc[rip]
	mov	edi, eax
	call	vpushi
	call	next
	jmp	.L2154
.L2073:
	mov	edi, 16
	call	vpush_tokc
	call	next
	jmp	.L2154
.L2072:
	mov	edi, 12
	call	vpush_tokc
	call	next
	jmp	.L2154
.L2070:
	mov	edi, 28
	call	vpush_tokc
	call	next
	jmp	.L2154
.L2076:
	mov	edi, 8
	call	vpush_tokc
	call	next
	jmp	.L2154
.L2075:
	mov	edi, 9
	call	vpush_tokc
	call	next
	jmp	.L2154
.L2074:
	mov	edi, 10
	call	vpush_tokc
	call	next
	jmp	.L2154
.L2067:
	mov	eax, DWORD PTR gnu_ext[rip]
	test	eax, eax
	je	.L2156
.L2066:
	mov	rax, QWORD PTR funcname[rip]
	mov	rdi, rax
	call	strlen@PLT
	add	eax, 1
	mov	DWORD PTR -160[rbp], eax
	mov	DWORD PTR -128[rbp], 1
	lea	rax, -128[rbp]
	mov	rdi, rax
	call	mk_pointer
	mov	eax, DWORD PTR -128[rbp]
	or	eax, 32
	mov	DWORD PTR -128[rbp], eax
	mov	rax, QWORD PTR -120[rbp]
	mov	edx, DWORD PTR -160[rbp]
	movsx	rdx, edx
	mov	QWORD PTR 16[rax], rdx
	mov	eax, DWORD PTR -160[rbp]
	movsx	rcx, eax
	mov	rax, QWORD PTR data_section[rip]
	mov	rdx, QWORD PTR [rax]
	mov	rsi, QWORD PTR data_section[rip]
	lea	rax, -128[rbp]
	mov	rdi, rax
	call	vpush_ref
	mov	eax, DWORD PTR -160[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR data_section[rip]
	mov	rsi, rdx
	mov	rdi, rax
	call	section_ptr_add
	mov	QWORD PTR -136[rbp], rax
	mov	eax, DWORD PTR -160[rbp]
	movsx	rdx, eax
	mov	rcx, QWORD PTR funcname[rip]
	mov	rax, QWORD PTR -136[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	memcpy@PLT
	call	next
	jmp	.L2154
.L2077:
	mov	DWORD PTR -180[rbp], 0
	jmp	.L2092
.L2079:
	mov	DWORD PTR -180[rbp], 1
.L2092:
	mov	rax, QWORD PTR tcc_state[rip]
	mov	eax, DWORD PTR 224[rax]
	test	eax, eax
	je	.L2093
	or	DWORD PTR -180[rbp], 2048
.L2093:
	mov	eax, DWORD PTR -180[rbp]
	mov	DWORD PTR -128[rbp], eax
	lea	rax, -128[rbp]
	mov	rdi, rax
	call	mk_pointer
	mov	eax, DWORD PTR -128[rbp]
	or	eax, 32
	mov	DWORD PTR -128[rbp], eax
	lea	rax, -112[rbp]
	mov	edx, 24
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	lea	rsi, -112[rbp]
	lea	rax, -128[rbp]
	mov	r9d, 0
	mov	r8d, 0
	mov	ecx, 2
	mov	edx, 240
	mov	rdi, rax
	call	decl_initializer_alloc
	jmp	.L2154
.L2087:
	call	next
	lea	rdx, -112[rbp]
	lea	rax, -128[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	parse_btype
	test	eax, eax
	je	.L2094
	lea	rdx, -188[rbp]
	lea	rsi, -112[rbp]
	lea	rax, -128[rbp]
	mov	ecx, 1
	mov	rdi, rax
	call	type_decl
	mov	edi, 41
	call	skip
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 123
	jne	.L2095
	mov	eax, DWORD PTR global_expr[rip]
	test	eax, eax
	je	.L2096
	mov	DWORD PTR -176[rbp], 240
	jmp	.L2097
.L2096:
	mov	DWORD PTR -176[rbp], 242
.L2097:
	mov	eax, DWORD PTR -128[rbp]
	and	eax, 32
	test	eax, eax
	jne	.L2098
	mov	eax, DWORD PTR -128[rbp]
	mov	edi, eax
	call	lvalue_type
	or	DWORD PTR -176[rbp], eax
.L2098:
	lea	rax, -112[rbp]
	mov	edx, 24
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	edx, DWORD PTR -176[rbp]
	lea	rsi, -112[rbp]
	lea	rax, -128[rbp]
	mov	r9d, 0
	mov	r8d, 0
	mov	ecx, 1
	mov	rdi, rax
	call	decl_initializer_alloc
	jmp	.L2154
.L2095:
	call	unary
	lea	rax, -128[rbp]
	mov	rdi, rax
	call	gen_cast
	jmp	.L2154
.L2094:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 123
	jne	.L2100
	mov	edi, 0
	call	save_regs
	mov	r9d, 1
	mov	r8d, 0
	mov	ecx, 0
	mov	edx, 0
	mov	esi, 0
	mov	edi, 0
	call	block
	mov	edi, 41
	call	skip
	jmp	.L2154
.L2100:
	call	gexpr
	mov	edi, 41
	call	skip
	jmp	.L2154
.L2086:
	call	next
	call	unary
	call	indir
	jmp	.L2154
.L2088:
	call	next
	call	unary
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 6
	je	.L2101
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	and	eax, 32
	test	eax, eax
	jne	.L2101
	call	test_lvalue
.L2101:
	mov	rax, QWORD PTR vtop[rip]
	mov	rdi, rax
	call	mk_pointer
	call	gaddrof
	jmp	.L2154
.L2089:
	call	next
	call	unary
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 1023
	cmp	eax, 240
	jne	.L2102
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR 32[rax]
	test	eax, eax
	sete	dl
	mov	rax, QWORD PTR vtop[rip]
	movzx	edx, dl
	mov	DWORD PTR 32[rax], edx
	jmp	.L2154
.L2102:
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	movzx	eax, al
	cmp	eax, 243
	jne	.L2104
	mov	rax, QWORD PTR vtop[rip]
	mov	edx, DWORD PTR 32[rax]
	mov	rax, QWORD PTR vtop[rip]
	xor	edx, 1
	mov	DWORD PTR 32[rax], edx
	jmp	.L2154
.L2104:
	mov	esi, 0
	mov	edi, 1
	call	gtst
	mov	esi, eax
	mov	edi, 244
	call	vseti
	jmp	.L2154
.L2082:
	call	next
	call	unary
	mov	edi, -1
	call	vpushi
	mov	edi, 94
	call	gen_op
	jmp	.L2154
.L2085:
	call	next
	call	unary
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 4
	jne	.L2105
	lea	rdi, .LC123[rip]
	mov	eax, 0
	call	error
.L2105:
	mov	edi, 0
	call	vpushi
	mov	edi, 43
	call	gen_op
	jmp	.L2154
.L2068:
	mov	eax, DWORD PTR tok[rip]
	mov	DWORD PTR -180[rbp], eax
	call	next
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 40
	jne	.L2106
	lea	rax, -128[rbp]
	mov	rdi, rax
	call	parse_expr_type
	jmp	.L2107
.L2106:
	lea	rax, -128[rbp]
	mov	rdi, rax
	call	unary_type
.L2107:
	lea	rdx, -184[rbp]
	lea	rax, -128[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	type_size
	mov	DWORD PTR -156[rbp], eax
	cmp	DWORD PTR -180[rbp], 301
	jne	.L2108
	cmp	DWORD PTR -156[rbp], 0
	jns	.L2109
	lea	rdi, .LC124[rip]
	mov	eax, 0
	call	error
.L2109:
	mov	eax, DWORD PTR -156[rbp]
	mov	edi, eax
	call	vpushi
	jmp	.L2154
.L2108:
	mov	eax, DWORD PTR -184[rbp]
	mov	edi, eax
	call	vpushi
	jmp	.L2154
.L2065:
	call	next
	mov	edi, 40
	call	skip
	lea	rax, -128[rbp]
	mov	rdi, rax
	call	parse_type
	mov	edi, 44
	call	skip
	lea	rax, -112[rbp]
	mov	rdi, rax
	call	parse_type
	mov	edi, 41
	call	skip
	mov	eax, DWORD PTR -128[rbp]
	and	ah, -25
	mov	DWORD PTR -128[rbp], eax
	mov	eax, DWORD PTR -112[rbp]
	and	ah, -25
	mov	DWORD PTR -112[rbp], eax
	lea	rdx, -112[rbp]
	lea	rax, -128[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	is_compatible_types
	mov	edi, eax
	call	vpushi
	jmp	.L2154
.L2063:
	call	next
	mov	edi, 40
	call	skip
	mov	eax, DWORD PTR nocode_wanted[rip]
	mov	DWORD PTR -168[rbp], eax
	mov	DWORD PTR nocode_wanted[rip], 1
	call	gexpr
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 1023
	cmp	eax, 240
	sete	al
	movzx	eax, al
	mov	DWORD PTR -164[rbp], eax
	call	vpop
	mov	eax, DWORD PTR -168[rbp]
	mov	DWORD PTR nocode_wanted[rip], eax
	mov	edi, 41
	call	skip
	mov	eax, DWORD PTR -164[rbp]
	mov	edi, eax
	call	vpushi
	jmp	.L2154
.L2080:
	mov	eax, DWORD PTR tok[rip]
	mov	DWORD PTR -180[rbp], eax
	call	next
	call	unary
	mov	eax, DWORD PTR -180[rbp]
	mov	esi, eax
	mov	edi, 0
	call	inc
	jmp	.L2154
.L2083:
	call	next
	mov	edi, 0
	call	vpushi
	call	unary
	mov	edi, 45
	call	gen_op
	jmp	.L2154
.L2081:
	mov	eax, DWORD PTR gnu_ext[rip]
	test	eax, eax
	je	.L2157
	call	next
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 312
	jg	.L2112
	lea	rdi, .LC125[rip]
	call	expect
.L2112:
	mov	eax, DWORD PTR tok[rip]
	mov	edi, eax
	call	label_find
	mov	QWORD PTR -152[rbp], rax
	cmp	QWORD PTR -152[rbp], 0
	jne	.L2113
	mov	eax, DWORD PTR tok[rip]
	mov	edx, 1
	mov	esi, eax
	lea	rdi, global_label_stack[rip]
	call	label_push
	mov	QWORD PTR -152[rbp], rax
	jmp	.L2114
.L2113:
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR 8[rax]
	cmp	rax, 2
	jne	.L2114
	mov	rax, QWORD PTR -152[rbp]
	mov	QWORD PTR 8[rax], 1
.L2114:
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR 24[rax]
	test	eax, eax
	jne	.L2115
	mov	rax, QWORD PTR -152[rbp]
	mov	DWORD PTR 24[rax], 3
	mov	rax, QWORD PTR -152[rbp]
	add	rax, 24
	mov	rdi, rax
	call	mk_pointer
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR 24[rax]
	or	ah, 1
	mov	edx, eax
	mov	rax, QWORD PTR -152[rbp]
	mov	DWORD PTR 24[rax], edx
.L2115:
	mov	rax, QWORD PTR -152[rbp]
	add	rax, 24
	mov	edx, 0
	mov	esi, 752
	mov	rdi, rax
	call	vset
	mov	rax, QWORD PTR vtop[rip]
	mov	rdx, QWORD PTR -152[rbp]
	mov	QWORD PTR 48[rax], rdx
	call	next
	jmp	.L2154
.L2156:
	nop
	jmp	.L2059
.L2157:
	nop
.L2059:
	mov	eax, DWORD PTR tok[rip]
	mov	DWORD PTR -180[rbp], eax
	call	next
	cmp	DWORD PTR -180[rbp], 312
	jg	.L2116
	lea	rdi, .LC110[rip]
	call	expect
.L2116:
	mov	eax, DWORD PTR -180[rbp]
	mov	edi, eax
	call	sym_find
	mov	QWORD PTR -152[rbp], rax
	cmp	QWORD PTR -152[rbp], 0
	jne	.L2117
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 40
	je	.L2118
	mov	eax, DWORD PTR -180[rbp]
	mov	esi, 0
	mov	edi, eax
	call	get_tok_str
	mov	rsi, rax
	lea	rdi, .LC126[rip]
	mov	eax, 0
	call	error
.L2118:
	mov	rax, QWORD PTR tcc_state[rip]
	mov	eax, DWORD PTR 240[rax]
	test	eax, eax
	je	.L2119
	mov	eax, DWORD PTR -180[rbp]
	mov	esi, 0
	mov	edi, eax
	call	get_tok_str
	mov	rsi, rax
	lea	rdi, .LC127[rip]
	mov	eax, 0
	call	warning
.L2119:
	mov	eax, DWORD PTR -180[rbp]
	mov	edx, 0
	lea	rsi, func_old_type[rip]
	mov	edi, eax
	call	external_global_sym
	mov	QWORD PTR -152[rbp], rax
.L2117:
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR 24[rax]
	and	eax, 1295
	cmp	eax, 1286
	jne	.L2120
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	jne	.L2121
	mov	rsi, QWORD PTR text_section[rip]
	mov	rax, QWORD PTR -152[rbp]
	mov	ecx, 0
	mov	edx, 0
	mov	rdi, rax
	call	put_extern_sym
.L2121:
	mov	DWORD PTR -176[rbp], 752
	jmp	.L2122
.L2120:
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	DWORD PTR -176[rbp], eax
.L2122:
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -152[rbp]
	lea	rcx, 24[rax]
	mov	eax, DWORD PTR -176[rbp]
	mov	esi, eax
	mov	rdi, rcx
	call	vset
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 512
	test	eax, eax
	je	.L2158
	mov	rax, QWORD PTR vtop[rip]
	mov	rdx, QWORD PTR -152[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rax, QWORD PTR vtop[rip]
	mov	DWORD PTR 32[rax], 0
.L2158:
	nop
.L2154:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 164
	je	.L2124
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 162
	jne	.L2125
.L2124:
	mov	eax, DWORD PTR tok[rip]
	mov	esi, eax
	mov	edi, 1
	call	inc
	call	next
	jmp	.L2126
.L2125:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 46
	je	.L2127
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 203
	jne	.L2128
.L2127:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 203
	jne	.L2129
	call	indir
.L2129:
	call	test_lvalue
	call	gaddrof
	call	next
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 7
	je	.L2130
	lea	rdi, .LC128[rip]
	call	expect
.L2130:
	mov	rax, QWORD PTR vtop[rip]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -152[rbp], rax
	mov	eax, DWORD PTR tok[rip]
	or	eax, 536870912
	mov	DWORD PTR tok[rip], eax
	jmp	.L2131
.L2133:
	mov	rax, QWORD PTR -152[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR tok[rip]
	cdqe
	cmp	rdx, rax
	je	.L2159
.L2131:
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	QWORD PTR -152[rbp], rax
	cmp	QWORD PTR -152[rbp], 0
	jne	.L2133
	jmp	.L2132
.L2159:
	nop
.L2132:
	cmp	QWORD PTR -152[rbp], 0
	jne	.L2134
	lea	rdi, .LC129[rip]
	mov	eax, 0
	call	error
.L2134:
	mov	rcx, QWORD PTR vtop[rip]
	mov	rax, QWORD PTR char_pointer_type[rip]
	mov	rdx, QWORD PTR char_pointer_type[rip+8]
	mov	QWORD PTR [rcx], rax
	mov	QWORD PTR 8[rcx], rdx
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	edi, eax
	call	vpushi
	mov	edi, 43
	call	gen_op
	mov	rcx, QWORD PTR vtop[rip]
	mov	rax, QWORD PTR -152[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR [rcx], rax
	mov	QWORD PTR 8[rcx], rdx
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	and	eax, 32
	test	eax, eax
	jne	.L2135
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	lvalue_type
	mov	rdx, QWORD PTR vtop[rip]
	movzx	edx, WORD PTR 16[rdx]
	or	edx, eax
	mov	rax, QWORD PTR vtop[rip]
	mov	WORD PTR 16[rax], dx
	mov	eax, DWORD PTR do_bounds_check[rip]
	test	eax, eax
	je	.L2135
	mov	rax, QWORD PTR vtop[rip]
	movzx	edx, WORD PTR 16[rax]
	mov	rax, QWORD PTR vtop[rip]
	or	dh, 8
	mov	WORD PTR 16[rax], dx
.L2135:
	call	next
	jmp	.L2126
.L2128:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 91
	jne	.L2136
	call	next
	call	gexpr
	mov	edi, 43
	call	gen_op
	call	indir
	mov	edi, 93
	call	skip
	jmp	.L2154
.L2136:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 40
	jne	.L2160
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 6
	je	.L2138
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	and	eax, 47
	cmp	eax, 4
	jne	.L2161
	mov	rax, QWORD PTR vtop[rip]
	mov	rdi, rax
	call	pointed_type
	mov	rcx, QWORD PTR vtop[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR [rcx], rax
	mov	QWORD PTR 8[rcx], rdx
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 6
	je	.L2140
	jmp	.L2139
.L2161:
	nop
.L2139:
	lea	rdi, .LC130[rip]
	call	expect
	jmp	.L2140
.L2138:
	mov	rax, QWORD PTR vtop[rip]
	movzx	edx, WORD PTR 16[rax]
	mov	rax, QWORD PTR vtop[rip]
	and	dh, -2
	mov	WORD PTR 16[rax], dx
.L2140:
	mov	rax, QWORD PTR vtop[rip]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -152[rbp], rax
	call	next
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	QWORD PTR -144[rbp], rax
	mov	DWORD PTR -172[rbp], 0
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR 24[rax]
	and	eax, 15
	cmp	eax, 7
	jne	.L2141
	mov	rax, QWORD PTR -152[rbp]
	lea	rdx, 24[rax]
	lea	rax, -184[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	type_size
	mov	DWORD PTR -156[rbp], eax
	mov	rax, QWORD PTR loc[rip]
	mov	edx, DWORD PTR -156[rbp]
	movsx	rdx, edx
	sub	rax, rdx
	mov	rcx, rax
	mov	eax, DWORD PTR -184[rbp]
	neg	eax
	cdqe
	and	rax, rcx
	mov	QWORD PTR loc[rip], rax
	mov	rax, QWORD PTR -152[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -80[rbp], rax
	mov	QWORD PTR -72[rbp], rdx
	mov	WORD PTR -64[rbp], 498
	mov	rax, QWORD PTR loc[rip]
	mov	esi, eax
	mov	edi, 242
	call	vseti
	mov	rax, QWORD PTR vtop[rip]
	mov	rdx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR 32[rax]
	mov	QWORD PTR -48[rbp], rax
	mov	QWORD PTR -40[rbp], rdx
	add	DWORD PTR -172[rbp], 1
	jmp	.L2142
.L2141:
	mov	rax, QWORD PTR -152[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -80[rbp], rax
	mov	QWORD PTR -72[rbp], rdx
	mov	WORD PTR -62[rbp], 240
	mov	eax, DWORD PTR -80[rbp]
	mov	edi, eax
	call	is_float
	test	eax, eax
	je	.L2143
	mov	WORD PTR -64[rbp], 3
	jmp	.L2144
.L2143:
	mov	eax, DWORD PTR -80[rbp]
	and	eax, 15
	cmp	eax, 12
	jne	.L2145
	mov	WORD PTR -62[rbp], 2
.L2145:
	mov	WORD PTR -64[rbp], 0
.L2144:
	mov	DWORD PTR -48[rbp], 0
.L2142:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 41
	je	.L2146
.L2149:
	call	expr_eq
	mov	rdx, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	gfunc_param_typed
	add	DWORD PTR -172[rbp], 1
	cmp	QWORD PTR -144[rbp], 0
	je	.L2147
	mov	rax, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	QWORD PTR -144[rbp], rax
.L2147:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 41
	je	.L2162
	mov	edi, 44
	call	skip
	jmp	.L2149
.L2162:
	nop
.L2146:
	cmp	QWORD PTR -144[rbp], 0
	je	.L2150
	lea	rdi, .LC131[rip]
	mov	eax, 0
	call	error
.L2150:
	mov	edi, 41
	call	skip
	mov	eax, DWORD PTR nocode_wanted[rip]
	test	eax, eax
	jne	.L2151
	mov	eax, DWORD PTR -172[rbp]
	mov	edi, eax
	call	gfunc_call
	jmp	.L2152
.L2151:
	mov	rdx, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR -172[rbp]
	cdqe
	sal	rax, 6
	mov	rcx, rax
	mov	rax, -64
	sub	rax, rcx
	add	rax, rdx
	mov	QWORD PTR vtop[rip], rax
.L2152:
	movzx	eax, WORD PTR -64[rbp]
	movzx	ecx, ax
	lea	rax, -80[rbp]
	lea	rdx, 32[rax]
	lea	rax, -80[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	vsetc
	mov	rax, QWORD PTR vtop[rip]
	movzx	edx, WORD PTR -62[rbp]
	mov	WORD PTR 18[rax], dx
.L2126:
	jmp	.L2154
.L2160:
	nop
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2155
	call	__stack_chk_fail@PLT
.L2155:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE195:
	.size	unary, .-unary
	.type	uneq, @function
uneq:
.LFB196:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	call	unary
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 61
	je	.L2164
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 164
	jle	.L2165
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 175
	jle	.L2164
.L2165:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 222
	je	.L2164
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 252
	je	.L2164
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 129
	je	.L2164
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 130
	jne	.L2169
.L2164:
	call	test_lvalue
	mov	eax, DWORD PTR tok[rip]
	mov	DWORD PTR -4[rbp], eax
	call	next
	cmp	DWORD PTR -4[rbp], 61
	jne	.L2167
	call	expr_eq
	jmp	.L2168
.L2167:
	call	vdup
	call	expr_eq
	mov	eax, DWORD PTR -4[rbp]
	and	eax, 127
	mov	edi, eax
	call	gen_op
.L2168:
	call	vstore
.L2169:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE196:
	.size	uneq, .-uneq
	.type	expr_prod, @function
expr_prod:
.LFB197:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	call	uneq
	jmp	.L2171
.L2172:
	mov	eax, DWORD PTR tok[rip]
	mov	DWORD PTR -4[rbp], eax
	call	next
	call	uneq
	mov	eax, DWORD PTR -4[rbp]
	mov	edi, eax
	call	gen_op
.L2171:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 42
	je	.L2172
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 47
	je	.L2172
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 37
	je	.L2172
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE197:
	.size	expr_prod, .-expr_prod
	.type	expr_sum, @function
expr_sum:
.LFB198:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	call	expr_prod
	jmp	.L2174
.L2175:
	mov	eax, DWORD PTR tok[rip]
	mov	DWORD PTR -4[rbp], eax
	call	next
	call	expr_prod
	mov	eax, DWORD PTR -4[rbp]
	mov	edi, eax
	call	gen_op
.L2174:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 43
	je	.L2175
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 45
	je	.L2175
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE198:
	.size	expr_sum, .-expr_sum
	.type	expr_shift, @function
expr_shift:
.LFB199:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	call	expr_sum
	jmp	.L2177
.L2178:
	mov	eax, DWORD PTR tok[rip]
	mov	DWORD PTR -4[rbp], eax
	call	next
	call	expr_sum
	mov	eax, DWORD PTR -4[rbp]
	mov	edi, eax
	call	gen_op
.L2177:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 1
	je	.L2178
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 2
	je	.L2178
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE199:
	.size	expr_shift, .-expr_shift
	.type	expr_cmp, @function
expr_cmp:
.LFB200:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	call	expr_shift
	jmp	.L2180
.L2182:
	mov	eax, DWORD PTR tok[rip]
	mov	DWORD PTR -4[rbp], eax
	call	next
	call	expr_shift
	mov	eax, DWORD PTR -4[rbp]
	mov	edi, eax
	call	gen_op
.L2180:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 149
	jle	.L2181
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 159
	jle	.L2182
.L2181:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 146
	je	.L2182
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 147
	je	.L2182
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE200:
	.size	expr_cmp, .-expr_cmp
	.type	expr_cmpeq, @function
expr_cmpeq:
.LFB201:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	call	expr_cmp
	jmp	.L2184
.L2185:
	mov	eax, DWORD PTR tok[rip]
	mov	DWORD PTR -4[rbp], eax
	call	next
	call	expr_cmp
	mov	eax, DWORD PTR -4[rbp]
	mov	edi, eax
	call	gen_op
.L2184:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 148
	je	.L2185
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 149
	je	.L2185
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE201:
	.size	expr_cmpeq, .-expr_cmpeq
	.type	expr_and, @function
expr_and:
.LFB202:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	call	expr_cmpeq
	jmp	.L2187
.L2188:
	call	next
	call	expr_cmpeq
	mov	edi, 38
	call	gen_op
.L2187:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 38
	je	.L2188
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE202:
	.size	expr_and, .-expr_and
	.type	expr_xor, @function
expr_xor:
.LFB203:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	call	expr_and
	jmp	.L2190
.L2191:
	call	next
	call	expr_and
	mov	edi, 94
	call	gen_op
.L2190:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 94
	je	.L2191
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE203:
	.size	expr_xor, .-expr_xor
	.type	expr_or, @function
expr_or:
.LFB204:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	call	expr_xor
	jmp	.L2193
.L2194:
	call	next
	call	expr_xor
	mov	edi, 124
	call	gen_op
.L2193:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 124
	je	.L2194
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE204:
	.size	expr_or, .-expr_or
	.type	expr_land_const, @function
expr_land_const:
.LFB205:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	call	expr_or
	jmp	.L2196
.L2197:
	call	next
	call	expr_or
	mov	edi, 160
	call	gen_op
.L2196:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 160
	je	.L2197
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE205:
	.size	expr_land_const, .-expr_land_const
	.type	expr_lor_const, @function
expr_lor_const:
.LFB206:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	call	expr_land_const
	jmp	.L2199
.L2200:
	call	next
	call	expr_land_const
	mov	edi, 161
	call	gen_op
.L2199:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 161
	je	.L2200
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE206:
	.size	expr_lor_const, .-expr_lor_const
	.type	expr_land, @function
expr_land:
.LFB207:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	call	expr_or
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 160
	jne	.L2205
	mov	DWORD PTR -4[rbp], 0
.L2204:
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, eax
	mov	edi, 1
	call	gtst
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 160
	je	.L2203
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, eax
	mov	edi, 245
	call	vseti
	nop
	jmp	.L2205
.L2203:
	call	next
	call	expr_or
	jmp	.L2204
.L2205:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE207:
	.size	expr_land, .-expr_land
	.type	expr_lor, @function
expr_lor:
.LFB208:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	call	expr_land
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 161
	jne	.L2210
	mov	DWORD PTR -4[rbp], 0
.L2209:
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, eax
	mov	edi, 0
	call	gtst
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 161
	je	.L2208
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, eax
	mov	edi, 244
	call	vseti
	nop
	jmp	.L2210
.L2208:
	call	next
	call	expr_land
	jmp	.L2209
.L2210:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE208:
	.size	expr_lor, .-expr_lor
	.type	expr_eq, @function
expr_eq:
.LFB209:
	.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, 184
	.cfi_offset 3, -24
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR const_wanted[rip]
	test	eax, eax
	je	.L2212
	call	expr_lor_const
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 63
	jne	.L2243
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR 32[rax]
	mov	DWORD PTR -148[rbp], eax
	call	vpop
	call	next
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 58
	jne	.L2214
	mov	eax, DWORD PTR gnu_ext[rip]
	test	eax, eax
	je	.L2214
	mov	eax, DWORD PTR -148[rbp]
	mov	DWORD PTR -180[rbp], eax
	jmp	.L2215
.L2214:
	call	gexpr
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR 32[rax]
	mov	DWORD PTR -180[rbp], eax
	call	vpop
.L2215:
	mov	edi, 58
	call	skip
	call	expr_eq
	cmp	DWORD PTR -148[rbp], 0
	je	.L2243
	mov	rax, QWORD PTR vtop[rip]
	mov	edx, DWORD PTR -180[rbp]
	mov	DWORD PTR 32[rax], edx
	jmp	.L2243
.L2212:
	call	expr_lor
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 63
	jne	.L2243
	call	next
	mov	rax, QWORD PTR vtop[rip]
	lea	rdx, vstack[rip]
	cmp	rax, rdx
	je	.L2216
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	is_float
	test	eax, eax
	je	.L2217
	mov	DWORD PTR -184[rbp], 2
	jmp	.L2218
.L2217:
	mov	DWORD PTR -184[rbp], 1
.L2218:
	mov	eax, DWORD PTR -184[rbp]
	mov	edi, eax
	call	gv
	mov	edi, 1
	call	save_regs
.L2216:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 58
	jne	.L2219
	mov	eax, DWORD PTR gnu_ext[rip]
	test	eax, eax
	je	.L2219
	call	gv_dup
	mov	esi, 0
	mov	edi, 1
	call	gtst
	mov	DWORD PTR -188[rbp], eax
	jmp	.L2220
.L2219:
	mov	esi, 0
	mov	edi, 1
	call	gtst
	mov	DWORD PTR -188[rbp], eax
	call	gexpr
.L2220:
	mov	rax, QWORD PTR vtop[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -128[rbp], rax
	mov	QWORD PTR -120[rbp], rdx
	mov	rax, QWORD PTR vtop[rip]
	mov	rcx, QWORD PTR [rax]
	mov	rbx, QWORD PTR 8[rax]
	mov	QWORD PTR -96[rbp], rcx
	mov	QWORD PTR -88[rbp], rbx
	mov	rcx, QWORD PTR 16[rax]
	mov	rbx, QWORD PTR 24[rax]
	mov	QWORD PTR -80[rbp], rcx
	mov	QWORD PTR -72[rbp], rbx
	mov	rcx, QWORD PTR 32[rax]
	mov	rbx, QWORD PTR 40[rax]
	mov	QWORD PTR -64[rbp], rcx
	mov	QWORD PTR -56[rbp], rbx
	mov	rdx, QWORD PTR 56[rax]
	mov	rax, QWORD PTR 48[rax]
	mov	QWORD PTR -48[rbp], rax
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	QWORD PTR vtop[rip], rax
	mov	edi, 58
	call	skip
	mov	edi, 0
	call	gjmp
	mov	DWORD PTR -176[rbp], eax
	mov	eax, DWORD PTR -188[rbp]
	mov	edi, eax
	call	gsym
	call	expr_eq
	mov	rax, QWORD PTR vtop[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -112[rbp], rax
	mov	QWORD PTR -104[rbp], rdx
	mov	eax, DWORD PTR -128[rbp]
	mov	DWORD PTR -172[rbp], eax
	mov	eax, DWORD PTR -172[rbp]
	and	eax, 15
	mov	DWORD PTR -168[rbp], eax
	mov	eax, DWORD PTR -112[rbp]
	mov	DWORD PTR -164[rbp], eax
	mov	eax, DWORD PTR -164[rbp]
	and	eax, 15
	mov	DWORD PTR -160[rbp], eax
	mov	eax, DWORD PTR -168[rbp]
	mov	edi, eax
	call	is_float
	test	eax, eax
	jne	.L2221
	mov	eax, DWORD PTR -160[rbp]
	mov	edi, eax
	call	is_float
	test	eax, eax
	je	.L2222
.L2221:
	cmp	DWORD PTR -168[rbp], 10
	je	.L2223
	cmp	DWORD PTR -160[rbp], 10
	jne	.L2224
.L2223:
	mov	DWORD PTR -144[rbp], 10
	jmp	.L2225
.L2224:
	cmp	DWORD PTR -168[rbp], 9
	je	.L2226
	cmp	DWORD PTR -160[rbp], 9
	jne	.L2227
.L2226:
	mov	DWORD PTR -144[rbp], 9
	jmp	.L2225
.L2227:
	mov	DWORD PTR -144[rbp], 8
	jmp	.L2228
.L2225:
	jmp	.L2228
.L2222:
	cmp	DWORD PTR -168[rbp], 12
	je	.L2229
	cmp	DWORD PTR -160[rbp], 12
	jne	.L2230
.L2229:
	mov	DWORD PTR -144[rbp], 12
	mov	eax, DWORD PTR -172[rbp]
	and	eax, 31
	cmp	eax, 28
	je	.L2231
	mov	eax, DWORD PTR -164[rbp]
	and	eax, 31
	cmp	eax, 28
	jne	.L2244
.L2231:
	mov	eax, DWORD PTR -144[rbp]
	or	eax, 16
	mov	DWORD PTR -144[rbp], eax
	jmp	.L2244
.L2230:
	cmp	DWORD PTR -168[rbp], 4
	je	.L2233
	cmp	DWORD PTR -160[rbp], 4
	jne	.L2234
.L2233:
	mov	rax, QWORD PTR -128[rbp]
	mov	rdx, QWORD PTR -120[rbp]
	mov	QWORD PTR -144[rbp], rax
	mov	QWORD PTR -136[rbp], rdx
	jmp	.L2228
.L2234:
	cmp	DWORD PTR -168[rbp], 7
	je	.L2235
	cmp	DWORD PTR -160[rbp], 7
	jne	.L2236
.L2235:
	mov	rax, QWORD PTR -128[rbp]
	mov	rdx, QWORD PTR -120[rbp]
	mov	QWORD PTR -144[rbp], rax
	mov	QWORD PTR -136[rbp], rdx
	jmp	.L2228
.L2236:
	cmp	DWORD PTR -168[rbp], 3
	je	.L2237
	cmp	DWORD PTR -160[rbp], 3
	jne	.L2238
.L2237:
	mov	DWORD PTR -144[rbp], 3
	jmp	.L2228
.L2238:
	mov	DWORD PTR -144[rbp], 0
	mov	eax, DWORD PTR -172[rbp]
	and	eax, 31
	cmp	eax, 16
	je	.L2239
	mov	eax, DWORD PTR -164[rbp]
	and	eax, 31
	cmp	eax, 16
	jne	.L2228
.L2239:
	mov	eax, DWORD PTR -144[rbp]
	or	eax, 16
	mov	DWORD PTR -144[rbp], eax
	jmp	.L2228
.L2244:
	nop
.L2228:
	lea	rax, -144[rbp]
	mov	rdi, rax
	call	gen_cast
	mov	DWORD PTR -184[rbp], 1
	mov	eax, DWORD PTR -144[rbp]
	mov	edi, eax
	call	is_float
	test	eax, eax
	je	.L2240
	mov	DWORD PTR -184[rbp], 2
	jmp	.L2241
.L2240:
	mov	eax, DWORD PTR -144[rbp]
	and	eax, 15
	cmp	eax, 12
	jne	.L2241
	mov	DWORD PTR -184[rbp], 4
.L2241:
	mov	eax, DWORD PTR -184[rbp]
	mov	edi, eax
	call	gv
	mov	DWORD PTR -156[rbp], eax
	mov	edi, 0
	call	gjmp
	mov	DWORD PTR -188[rbp], eax
	mov	eax, DWORD PTR -176[rbp]
	mov	edi, eax
	call	gsym
	mov	rax, QWORD PTR vtop[rip]
	mov	rcx, QWORD PTR -96[rbp]
	mov	rbx, QWORD PTR -88[rbp]
	mov	QWORD PTR [rax], rcx
	mov	QWORD PTR 8[rax], rbx
	mov	rcx, QWORD PTR -80[rbp]
	mov	rbx, QWORD PTR -72[rbp]
	mov	QWORD PTR 16[rax], rcx
	mov	QWORD PTR 24[rax], rbx
	mov	rcx, QWORD PTR -64[rbp]
	mov	rbx, QWORD PTR -56[rbp]
	mov	QWORD PTR 32[rax], rcx
	mov	QWORD PTR 40[rax], rbx
	mov	rcx, QWORD PTR -48[rbp]
	mov	rbx, QWORD PTR -40[rbp]
	mov	QWORD PTR 48[rax], rcx
	mov	QWORD PTR 56[rax], rbx
	lea	rax, -144[rbp]
	mov	rdi, rax
	call	gen_cast
	mov	eax, DWORD PTR -184[rbp]
	mov	edi, eax
	call	gv
	mov	DWORD PTR -152[rbp], eax
	mov	edx, DWORD PTR -152[rbp]
	mov	eax, DWORD PTR -156[rbp]
	mov	esi, edx
	mov	edi, eax
	call	move_reg
	mov	rax, QWORD PTR vtop[rip]
	mov	edx, DWORD PTR -156[rbp]
	mov	WORD PTR 16[rax], dx
	mov	eax, DWORD PTR -188[rbp]
	mov	edi, eax
	call	gsym
.L2243:
	nop
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2242
	call	__stack_chk_fail@PLT
.L2242:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE209:
	.size	expr_eq, .-expr_eq
	.type	gexpr, @function
gexpr:
.LFB210:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
.L2248:
	call	expr_eq
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 44
	jne	.L2250
	call	vpop
	call	next
	jmp	.L2248
.L2250:
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE210:
	.size	gexpr, .-gexpr
	.type	expr_type, @function
expr_type:
.LFB211:
	.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	eax, DWORD PTR nocode_wanted[rip]
	mov	DWORD PTR -4[rbp], eax
	mov	DWORD PTR nocode_wanted[rip], 1
	call	gexpr
	mov	rax, QWORD PTR vtop[rip]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR [rcx], rax
	mov	QWORD PTR 8[rcx], rdx
	call	vpop
	mov	eax, DWORD PTR -4[rbp]
	mov	DWORD PTR nocode_wanted[rip], eax
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE211:
	.size	expr_type, .-expr_type
	.type	unary_type, @function
unary_type:
.LFB212:
	.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	eax, DWORD PTR nocode_wanted[rip]
	mov	DWORD PTR -4[rbp], eax
	mov	DWORD PTR nocode_wanted[rip], 1
	call	unary
	mov	rax, QWORD PTR vtop[rip]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR [rcx], rax
	mov	QWORD PTR 8[rcx], rdx
	call	vpop
	mov	eax, DWORD PTR -4[rbp]
	mov	DWORD PTR nocode_wanted[rip], eax
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE212:
	.size	unary_type, .-unary_type
	.type	expr_const1, @function
expr_const1:
.LFB213:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, DWORD PTR const_wanted[rip]
	mov	DWORD PTR -4[rbp], eax
	mov	DWORD PTR const_wanted[rip], 1
	call	expr_eq
	mov	eax, DWORD PTR -4[rbp]
	mov	DWORD PTR const_wanted[rip], eax
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE213:
	.size	expr_const1, .-expr_const1
	.section	.rodata
.LC132:
	.string	"constant expression"
	.text
	.type	expr_const, @function
expr_const:
.LFB214:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	call	expr_const1
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 1023
	cmp	eax, 240
	je	.L2255
	lea	rdi, .LC132[rip]
	call	expect
.L2255:
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR 32[rax]
	mov	DWORD PTR -4[rbp], eax
	call	vpop
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE214:
	.size	expr_const, .-expr_const
	.type	is_label, @function
is_label:
.LFB215:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 312
	jg	.L2258
	mov	eax, 0
	jmp	.L2259
.L2258:
	mov	eax, DWORD PTR tok[rip]
	mov	DWORD PTR -4[rbp], eax
	call	next
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 58
	jne	.L2260
	call	next
	mov	eax, DWORD PTR -4[rbp]
	jmp	.L2259
.L2260:
	mov	eax, DWORD PTR -4[rbp]
	mov	edi, eax
	call	unget_tok
	mov	eax, 0
.L2259:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE215:
	.size	is_label, .-is_label
	.section	.rodata
.LC133:
	.string	"cannot break"
.LC134:
	.string	"cannot continue"
.LC135:
	.string	"switch"
.LC136:
	.string	"empty case range"
.LC137:
	.string	"too many 'default'"
.LC138:
	.string	"duplicate label '%s'"
	.align 8
.LC139:
	.string	"deprecated use of label at end of compound statement"
	.text
	.type	block, @function
block:
.LFB216:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	add	rsp, -128
	mov	QWORD PTR -88[rbp], rdi
	mov	QWORD PTR -96[rbp], rsi
	mov	QWORD PTR -104[rbp], rdx
	mov	QWORD PTR -112[rbp], rcx
	mov	DWORD PTR -116[rbp], r8d
	mov	DWORD PTR -120[rbp], r9d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR do_debug[rip]
	test	eax, eax
	je	.L2262
	mov	rax, QWORD PTR file[rip]
	mov	eax, DWORD PTR 20[rax]
	movsx	rdx, eax
	mov	rax, QWORD PTR last_line_num[rip]
	cmp	rdx, rax
	jne	.L2263
	mov	rdx, QWORD PTR last_ind[rip]
	mov	rax, QWORD PTR ind[rip]
	cmp	rdx, rax
	je	.L2262
.L2263:
	mov	rax, QWORD PTR ind[rip]
	mov	edx, eax
	mov	rax, QWORD PTR func_ind[rip]
	mov	ecx, eax
	mov	eax, edx
	sub	eax, ecx
	mov	edx, eax
	mov	rax, QWORD PTR file[rip]
	mov	eax, DWORD PTR 20[rax]
	mov	ecx, edx
	mov	edx, eax
	mov	esi, 0
	mov	edi, 68
	call	put_stabn
	mov	rax, QWORD PTR ind[rip]
	mov	QWORD PTR last_ind[rip], rax
	mov	rax, QWORD PTR file[rip]
	mov	eax, DWORD PTR 20[rax]
	cdqe
	mov	QWORD PTR last_line_num[rip], rax
.L2262:
	cmp	DWORD PTR -120[rbp], 0
	je	.L2264
	mov	edi, 0
	call	vpushi
	mov	rax, QWORD PTR vtop[rip]
	mov	DWORD PTR [rax], 3
.L2264:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 259
	jne	.L2265
	call	next
	mov	edi, 40
	call	skip
	call	gexpr
	mov	edi, 41
	call	skip
	mov	esi, 0
	mov	edi, 1
	call	gtst
	mov	DWORD PTR -72[rbp], eax
	mov	edi, DWORD PTR -116[rbp]
	mov	rcx, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR -104[rbp]
	mov	rsi, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	r9d, 0
	mov	r8d, edi
	mov	rdi, rax
	call	block
	mov	eax, DWORD PTR tok[rip]
	mov	DWORD PTR -32[rbp], eax
	mov	eax, DWORD PTR -32[rbp]
	cmp	eax, 260
	jne	.L2266
	call	next
	mov	edi, 0
	call	gjmp
	mov	DWORD PTR -56[rbp], eax
	mov	eax, DWORD PTR -72[rbp]
	mov	edi, eax
	call	gsym
	mov	edi, DWORD PTR -116[rbp]
	mov	rcx, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR -104[rbp]
	mov	rsi, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	r9d, 0
	mov	r8d, edi
	mov	rdi, rax
	call	block
	mov	eax, DWORD PTR -56[rbp]
	mov	edi, eax
	call	gsym
	jmp	.L2324
.L2266:
	mov	eax, DWORD PTR -72[rbp]
	mov	edi, eax
	call	gsym
	jmp	.L2324
.L2265:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 261
	jne	.L2268
	call	next
	mov	rax, QWORD PTR ind[rip]
	mov	DWORD PTR -56[rbp], eax
	mov	edi, 40
	call	skip
	call	gexpr
	mov	edi, 41
	call	skip
	mov	esi, 0
	mov	edi, 1
	call	gtst
	mov	DWORD PTR -72[rbp], eax
	mov	DWORD PTR -68[rbp], 0
	mov	edi, DWORD PTR -116[rbp]
	mov	rcx, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR -104[rbp]
	lea	rsi, -68[rbp]
	lea	rax, -72[rbp]
	mov	r9d, 0
	mov	r8d, edi
	mov	rdi, rax
	call	block
	mov	eax, DWORD PTR -56[rbp]
	mov	edi, eax
	call	gjmp_addr
	mov	eax, DWORD PTR -72[rbp]
	mov	edi, eax
	call	gsym
	mov	eax, DWORD PTR -68[rbp]
	mov	edx, DWORD PTR -56[rbp]
	mov	esi, edx
	mov	edi, eax
	call	gsym_addr
	jmp	.L2324
.L2268:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 123
	jne	.L2269
	call	next
	mov	rax, QWORD PTR local_stack[rip]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR local_label_stack[rip]
	mov	QWORD PTR -40[rbp], rax
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 309
	jne	.L2275
	call	next
.L2274:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 312
	jg	.L2271
	lea	rdi, .LC125[rip]
	call	expect
.L2271:
	mov	eax, DWORD PTR tok[rip]
	mov	edx, 2
	mov	esi, eax
	lea	rdi, local_label_stack[rip]
	call	label_push
	call	next
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 44
	jne	.L2272
	call	next
	jmp	.L2274
.L2272:
	mov	edi, 59
	call	skip
	nop
	jmp	.L2275
.L2277:
	mov	edi, 242
	call	decl
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 125
	je	.L2275
	cmp	DWORD PTR -120[rbp], 0
	je	.L2276
	call	vpop
.L2276:
	mov	r8d, DWORD PTR -120[rbp]
	mov	edi, DWORD PTR -116[rbp]
	mov	rcx, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR -104[rbp]
	mov	rsi, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	r9d, r8d
	mov	r8d, edi
	mov	rdi, rax
	call	block
.L2275:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 125
	jne	.L2277
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rax
	lea	rdi, local_label_stack[rip]
	call	label_pop
	mov	rax, QWORD PTR -48[rbp]
	mov	rsi, rax
	lea	rdi, local_stack[rip]
	call	sym_pop
	call	next
	jmp	.L2324
.L2269:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 263
	jne	.L2278
	call	next
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 59
	je	.L2279
	call	gexpr
	lea	rdi, func_vt[rip]
	call	gen_assign_cast
	mov	eax, DWORD PTR func_vt[rip]
	and	eax, 15
	cmp	eax, 7
	jne	.L2280
	mov	rax, QWORD PTR func_vt[rip]
	mov	rdx, QWORD PTR func_vt[rip+8]
	mov	QWORD PTR -32[rbp], rax
	mov	QWORD PTR -24[rbp], rdx
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	mk_pointer
	mov	edx, DWORD PTR func_vc[rip]
	lea	rax, -32[rbp]
	mov	esi, 498
	mov	rdi, rax
	call	vset
	call	indir
	call	vswap
	call	vstore
	jmp	.L2281
.L2280:
	mov	eax, DWORD PTR func_vt[rip]
	mov	edi, eax
	call	is_float
	test	eax, eax
	je	.L2282
	mov	edi, 8
	call	gv
	jmp	.L2281
.L2282:
	mov	edi, 4
	call	gv
.L2281:
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	QWORD PTR vtop[rip], rax
.L2279:
	mov	edi, 59
	call	skip
	mov	rax, QWORD PTR rsym[rip]
	mov	edi, eax
	call	gjmp
	mov	QWORD PTR rsym[rip], rax
	jmp	.L2324
.L2278:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 262
	jne	.L2283
	cmp	QWORD PTR -88[rbp], 0
	jne	.L2284
	lea	rdi, .LC133[rip]
	mov	eax, 0
	call	error
.L2284:
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	gjmp
	mov	edx, eax
	mov	rax, QWORD PTR -88[rbp]
	mov	DWORD PTR [rax], edx
	call	next
	mov	edi, 59
	call	skip
	jmp	.L2324
.L2283:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 270
	jne	.L2285
	cmp	QWORD PTR -96[rbp], 0
	jne	.L2286
	lea	rdi, .LC134[rip]
	mov	eax, 0
	call	error
.L2286:
	mov	rax, QWORD PTR -96[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	gjmp
	mov	edx, eax
	mov	rax, QWORD PTR -96[rbp]
	mov	DWORD PTR [rax], edx
	call	next
	mov	edi, 59
	call	skip
	jmp	.L2324
.L2285:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 264
	jne	.L2287
	call	next
	mov	edi, 40
	call	skip
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 59
	je	.L2288
	call	gexpr
	call	vpop
.L2288:
	mov	edi, 59
	call	skip
	mov	rax, QWORD PTR ind[rip]
	mov	DWORD PTR -56[rbp], eax
	mov	rax, QWORD PTR ind[rip]
	mov	DWORD PTR -32[rbp], eax
	mov	DWORD PTR -72[rbp], 0
	mov	DWORD PTR -68[rbp], 0
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 59
	je	.L2289
	call	gexpr
	mov	esi, 0
	mov	edi, 1
	call	gtst
	mov	DWORD PTR -72[rbp], eax
.L2289:
	mov	edi, 59
	call	skip
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 41
	je	.L2290
	mov	edi, 0
	call	gjmp
	mov	DWORD PTR -52[rbp], eax
	mov	rax, QWORD PTR ind[rip]
	mov	DWORD PTR -32[rbp], eax
	call	gexpr
	call	vpop
	mov	eax, DWORD PTR -56[rbp]
	mov	edi, eax
	call	gjmp_addr
	mov	eax, DWORD PTR -52[rbp]
	mov	edi, eax
	call	gsym
.L2290:
	mov	edi, 41
	call	skip
	mov	edi, DWORD PTR -116[rbp]
	mov	rcx, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR -104[rbp]
	lea	rsi, -68[rbp]
	lea	rax, -72[rbp]
	mov	r9d, 0
	mov	r8d, edi
	mov	rdi, rax
	call	block
	mov	eax, DWORD PTR -32[rbp]
	mov	edi, eax
	call	gjmp_addr
	mov	eax, DWORD PTR -72[rbp]
	mov	edi, eax
	call	gsym
	mov	edx, DWORD PTR -32[rbp]
	mov	eax, DWORD PTR -68[rbp]
	mov	esi, edx
	mov	edi, eax
	call	gsym_addr
	jmp	.L2324
.L2287:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 269
	jne	.L2291
	call	next
	mov	DWORD PTR -72[rbp], 0
	mov	DWORD PTR -68[rbp], 0
	mov	rax, QWORD PTR ind[rip]
	mov	DWORD PTR -56[rbp], eax
	mov	edi, DWORD PTR -116[rbp]
	mov	rcx, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR -104[rbp]
	lea	rsi, -68[rbp]
	lea	rax, -72[rbp]
	mov	r9d, 0
	mov	r8d, edi
	mov	rdi, rax
	call	block
	mov	edi, 261
	call	skip
	mov	edi, 40
	call	skip
	mov	eax, DWORD PTR -68[rbp]
	mov	edi, eax
	call	gsym
	call	gexpr
	mov	esi, 0
	mov	edi, 0
	call	gtst
	mov	DWORD PTR -32[rbp], eax
	mov	eax, DWORD PTR -32[rbp]
	mov	edx, DWORD PTR -56[rbp]
	mov	esi, edx
	mov	edi, eax
	call	gsym_addr
	mov	edi, 41
	call	skip
	mov	eax, DWORD PTR -72[rbp]
	mov	edi, eax
	call	gsym
	mov	edi, 59
	call	skip
	jmp	.L2324
.L2291:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 271
	jne	.L2292
	call	next
	mov	edi, 40
	call	skip
	call	gexpr
	mov	edi, 1
	call	gv
	mov	DWORD PTR -116[rbp], eax
	call	vpop
	mov	edi, 41
	call	skip
	mov	DWORD PTR -72[rbp], 0
	mov	edi, 0
	call	gjmp
	mov	DWORD PTR -68[rbp], eax
	mov	DWORD PTR -32[rbp], 0
	mov	edi, DWORD PTR -116[rbp]
	lea	rcx, -32[rbp]
	lea	rdx, -68[rbp]
	mov	rsi, QWORD PTR -96[rbp]
	lea	rax, -72[rbp]
	mov	r9d, 0
	mov	r8d, edi
	mov	rdi, rax
	call	block
	mov	eax, DWORD PTR -32[rbp]
	test	eax, eax
	jne	.L2293
	mov	rax, QWORD PTR ind[rip]
	mov	DWORD PTR -32[rbp], eax
.L2293:
	mov	edx, DWORD PTR -32[rbp]
	mov	eax, DWORD PTR -68[rbp]
	mov	esi, edx
	mov	edi, eax
	call	gsym_addr
	mov	eax, DWORD PTR -72[rbp]
	mov	edi, eax
	call	gsym
	jmp	.L2324
.L2292:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 272
	jne	.L2294
	cmp	QWORD PTR -104[rbp], 0
	jne	.L2295
	lea	rdi, .LC135[rip]
	call	expect
.L2295:
	call	next
	call	expr_const
	mov	DWORD PTR -60[rbp], eax
	mov	eax, DWORD PTR -60[rbp]
	mov	DWORD PTR -64[rbp], eax
	mov	eax, DWORD PTR gnu_ext[rip]
	test	eax, eax
	je	.L2296
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 204
	jne	.L2296
	call	next
	call	expr_const
	mov	DWORD PTR -64[rbp], eax
	mov	eax, DWORD PTR -64[rbp]
	cmp	eax, DWORD PTR -60[rbp]
	jge	.L2296
	lea	rdi, .LC136[rip]
	mov	eax, 0
	call	warning
.L2296:
	mov	edi, 0
	call	gjmp
	mov	DWORD PTR -68[rbp], eax
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	gsym
	mov	eax, DWORD PTR -116[rbp]
	mov	esi, 0
	mov	edi, eax
	call	vseti
	mov	eax, DWORD PTR -60[rbp]
	mov	edi, eax
	call	vpushi
	mov	eax, DWORD PTR -60[rbp]
	cmp	eax, DWORD PTR -64[rbp]
	jne	.L2297
	mov	edi, 148
	call	gen_op
	mov	esi, 0
	mov	edi, 1
	call	gtst
	mov	rdx, QWORD PTR -104[rbp]
	mov	DWORD PTR [rdx], eax
	jmp	.L2298
.L2297:
	mov	edi, 157
	call	gen_op
	mov	esi, 0
	mov	edi, 1
	call	gtst
	mov	rdx, QWORD PTR -104[rbp]
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -116[rbp]
	mov	esi, 0
	mov	edi, eax
	call	vseti
	mov	eax, DWORD PTR -64[rbp]
	mov	edi, eax
	call	vpushi
	mov	edi, 158
	call	gen_op
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR [rax]
	mov	esi, eax
	mov	edi, 1
	call	gtst
	mov	rdx, QWORD PTR -104[rbp]
	mov	DWORD PTR [rdx], eax
.L2298:
	mov	eax, DWORD PTR -68[rbp]
	mov	edi, eax
	call	gsym
	mov	edi, 58
	call	skip
	mov	DWORD PTR -120[rbp], 0
	jmp	.L2299
.L2294:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 299
	jne	.L2300
	call	next
	mov	edi, 58
	call	skip
	cmp	QWORD PTR -112[rbp], 0
	jne	.L2301
	lea	rdi, .LC135[rip]
	call	expect
.L2301:
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L2302
	lea	rdi, .LC137[rip]
	mov	eax, 0
	call	error
.L2302:
	mov	rax, QWORD PTR ind[rip]
	mov	edx, eax
	mov	rax, QWORD PTR -112[rbp]
	mov	DWORD PTR [rax], edx
	mov	DWORD PTR -120[rbp], 0
	jmp	.L2299
.L2300:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 268
	jne	.L2303
	call	next
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 42
	jne	.L2304
	mov	eax, DWORD PTR gnu_ext[rip]
	test	eax, eax
	je	.L2304
	call	next
	call	gexpr
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 4
	je	.L2305
	lea	rdi, .LC120[rip]
	call	expect
.L2305:
	call	ggoto
	jmp	.L2306
.L2304:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 312
	jle	.L2307
	mov	eax, DWORD PTR tok[rip]
	mov	edi, eax
	call	label_find
	mov	QWORD PTR -48[rbp], rax
	cmp	QWORD PTR -48[rbp], 0
	jne	.L2308
	mov	eax, DWORD PTR tok[rip]
	mov	edx, 1
	mov	esi, eax
	lea	rdi, global_label_stack[rip]
	call	label_push
	mov	QWORD PTR -48[rbp], rax
	jmp	.L2309
.L2308:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 8[rax]
	cmp	rax, 2
	jne	.L2309
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR 8[rax], 1
.L2309:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 8[rax]
	and	eax, 1
	test	rax, rax
	je	.L2310
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	edi, eax
	call	gjmp
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR 40[rax], rdx
	jmp	.L2311
.L2310:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	edi, eax
	call	gjmp_addr
.L2311:
	call	next
	jmp	.L2306
.L2307:
	lea	rdi, .LC125[rip]
	call	expect
.L2306:
	mov	edi, 59
	call	skip
	jmp	.L2324
.L2303:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 310
	je	.L2312
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 311
	je	.L2312
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 312
	jne	.L2313
.L2312:
	call	asm_instr
	jmp	.L2324
.L2313:
	call	is_label
	mov	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	test	eax, eax
	je	.L2314
	mov	eax, DWORD PTR -68[rbp]
	mov	edi, eax
	call	label_find
	mov	QWORD PTR -48[rbp], rax
	cmp	QWORD PTR -48[rbp], 0
	je	.L2315
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	jne	.L2316
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR [rax]
	mov	esi, 0
	mov	edi, eax
	call	get_tok_str
	mov	rsi, rax
	lea	rdi, .LC138[rip]
	mov	eax, 0
	call	error
.L2316:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	edi, eax
	call	gsym
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR 8[rax], 0
	jmp	.L2317
.L2315:
	mov	eax, DWORD PTR -68[rbp]
	mov	edx, 0
	mov	esi, eax
	lea	rdi, global_label_stack[rip]
	call	label_push
	mov	QWORD PTR -48[rbp], rax
.L2317:
	mov	rax, QWORD PTR ind[rip]
	mov	rdx, rax
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR 40[rax], rdx
.L2299:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 125
	jne	.L2318
	lea	rdi, .LC139[rip]
	mov	eax, 0
	call	warning
	jmp	.L2324
.L2318:
	cmp	DWORD PTR -120[rbp], 0
	je	.L2319
	call	vpop
.L2319:
	mov	r8d, DWORD PTR -120[rbp]
	mov	edi, DWORD PTR -116[rbp]
	mov	rcx, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR -104[rbp]
	mov	rsi, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	r9d, r8d
	mov	r8d, edi
	mov	rdi, rax
	call	block
	jmp	.L2324
.L2314:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 59
	je	.L2320
	cmp	DWORD PTR -120[rbp], 0
	je	.L2321
	call	vpop
	call	gexpr
	jmp	.L2320
.L2321:
	call	gexpr
	call	vpop
.L2320:
	mov	edi, 59
	call	skip
.L2324:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2322
	call	__stack_chk_fail@PLT
.L2322:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE216:
	.size	block, .-block
	.section	.rodata
.LC140:
	.string	"array type"
.LC141:
	.string	"invalid index"
.LC142:
	.string	"struct/union type"
.LC143:
	.string	"field"
.LC144:
	.string	"="
.LC145:
	.string	"too many field init"
	.align 8
.LC146:
	.string	"range init not supported yet for dynamic storage"
	.text
	.type	decl_designator, @function
decl_designator:
.LFB217:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 160
	mov	QWORD PTR -120[rbp], rdi
	mov	QWORD PTR -128[rbp], rsi
	mov	QWORD PTR -136[rbp], rdx
	mov	QWORD PTR -144[rbp], rcx
	mov	QWORD PTR -152[rbp], r8
	mov	DWORD PTR -156[rbp], r9d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -100[rbp], 0
	mov	DWORD PTR -84[rbp], 0
	mov	DWORD PTR -88[rbp], 1
	mov	eax, DWORD PTR gnu_ext[rip]
	test	eax, eax
	je	.L2360
	call	is_label
	mov	DWORD PTR -92[rbp], eax
	cmp	DWORD PTR -92[rbp], 0
	je	.L2360
	jmp	.L2327
.L2348:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 91
	jne	.L2329
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 32
	test	eax, eax
	jne	.L2330
	lea	rdi, .LC140[rip]
	call	expect
.L2330:
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -56[rbp], rax
	call	next
	call	expr_const
	mov	DWORD PTR -76[rbp], eax
	cmp	DWORD PTR -76[rbp], 0
	js	.L2331
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	js	.L2332
	mov	eax, DWORD PTR -76[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 16[rax]
	cmp	rdx, rax
	jl	.L2332
.L2331:
	lea	rdi, .LC141[rip]
	call	expect
.L2332:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 204
	jne	.L2333
	mov	eax, DWORD PTR gnu_ext[rip]
	test	eax, eax
	je	.L2333
	call	next
	call	expr_const
	mov	DWORD PTR -96[rbp], eax
	cmp	DWORD PTR -96[rbp], 0
	js	.L2334
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	js	.L2335
	mov	eax, DWORD PTR -96[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 16[rax]
	cmp	rdx, rax
	jge	.L2334
.L2335:
	mov	eax, DWORD PTR -96[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jge	.L2361
.L2334:
	lea	rdi, .LC141[rip]
	call	expect
	jmp	.L2361
.L2333:
	mov	eax, DWORD PTR -76[rbp]
	mov	DWORD PTR -96[rbp], eax
	jmp	.L2337
.L2361:
	nop
.L2337:
	mov	edi, 93
	call	skip
	cmp	DWORD PTR -100[rbp], 0
	jne	.L2338
	mov	rax, QWORD PTR -144[rbp]
	mov	edx, DWORD PTR -96[rbp]
	mov	DWORD PTR [rax], edx
.L2338:
	mov	rax, QWORD PTR -120[rbp]
	mov	rdi, rax
	call	pointed_type
	mov	QWORD PTR -120[rbp], rax
	lea	rdx, -104[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	type_size
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -76[rbp]
	imul	eax, DWORD PTR -84[rbp]
	cdqe
	add	QWORD PTR -136[rbp], rax
	mov	eax, DWORD PTR -96[rbp]
	sub	eax, DWORD PTR -76[rbp]
	add	eax, 1
	mov	DWORD PTR -88[rbp], eax
	cmp	DWORD PTR -88[rbp], 1
	je	.L2339
	mov	DWORD PTR -100[rbp], 1
	jmp	.L2340
.L2329:
	call	next
	mov	eax, DWORD PTR tok[rip]
	mov	DWORD PTR -92[rbp], eax
	call	next
.L2327:
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 7
	je	.L2341
	lea	rdi, .LC142[rip]
	call	expect
.L2341:
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -56[rbp], rax
	or	DWORD PTR -92[rbp], 536870912
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	QWORD PTR -72[rbp], rax
	jmp	.L2342
.L2345:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	cmp	rdx, rax
	je	.L2362
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	QWORD PTR -72[rbp], rax
.L2342:
	cmp	QWORD PTR -72[rbp], 0
	jne	.L2345
	jmp	.L2344
.L2362:
	nop
.L2344:
	cmp	QWORD PTR -72[rbp], 0
	jne	.L2346
	lea	rdi, .LC143[rip]
	call	expect
.L2346:
	cmp	DWORD PTR -100[rbp], 0
	jne	.L2347
	mov	rax, QWORD PTR -152[rbp]
	mov	rdx, QWORD PTR -72[rbp]
	mov	QWORD PTR [rax], rdx
.L2347:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -32[rbp], rax
	mov	QWORD PTR -24[rbp], rdx
	mov	edx, DWORD PTR -32[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 1920
	or	eax, edx
	mov	DWORD PTR -32[rbp], eax
	lea	rax, -32[rbp]
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 16[rax]
	add	QWORD PTR -136[rbp], rax
.L2339:
	mov	DWORD PTR -100[rbp], 1
	jmp	.L2328
.L2360:
	nop
.L2328:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 91
	je	.L2348
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 46
	je	.L2348
.L2340:
	cmp	DWORD PTR -100[rbp], 0
	je	.L2349
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 61
	jne	.L2350
	call	next
	jmp	.L2351
.L2350:
	mov	eax, DWORD PTR gnu_ext[rip]
	test	eax, eax
	jne	.L2351
	lea	rdi, .LC144[rip]
	call	expect
	jmp	.L2351
.L2349:
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 32
	test	eax, eax
	je	.L2352
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -76[rbp], eax
	mov	rax, QWORD PTR -120[rbp]
	mov	rdi, rax
	call	pointed_type
	mov	QWORD PTR -120[rbp], rax
	lea	rdx, -104[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	type_size
	imul	eax, DWORD PTR -76[rbp]
	cdqe
	add	QWORD PTR -136[rbp], rax
	jmp	.L2351
.L2352:
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -72[rbp], rax
	cmp	QWORD PTR -72[rbp], 0
	jne	.L2353
	lea	rdi, .LC145[rip]
	mov	eax, 0
	call	error
.L2353:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -32[rbp], rax
	mov	QWORD PTR -24[rbp], rdx
	mov	edx, DWORD PTR -32[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 1920
	or	eax, edx
	mov	DWORD PTR -32[rbp], eax
	lea	rax, -32[rbp]
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 16[rax]
	add	QWORD PTR -136[rbp], rax
.L2351:
	mov	ecx, DWORD PTR -156[rbp]
	mov	rdx, QWORD PTR -136[rbp]
	mov	rsi, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	decl_initializer
	cmp	DWORD PTR -156[rbp], 0
	jne	.L2363
	cmp	DWORD PTR -88[rbp], 1
	jle	.L2363
	cmp	QWORD PTR -128[rbp], 0
	jne	.L2355
	lea	rdi, .LC146[rip]
	mov	eax, 0
	call	error
.L2355:
	mov	eax, DWORD PTR -88[rbp]
	imul	eax, DWORD PTR -84[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -136[rbp]
	add	rax, rdx
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR 16[rax]
	cmp	QWORD PTR -48[rbp], rax
	jbe	.L2356
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -128[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	section_realloc
.L2356:
	mov	rax, QWORD PTR -128[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -136[rbp]
	add	rax, rdx
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	DWORD PTR -80[rbp], 1
	jmp	.L2357
.L2358:
	mov	eax, DWORD PTR -84[rbp]
	cdqe
	add	QWORD PTR -64[rbp], rax
	mov	eax, DWORD PTR -84[rbp]
	movsx	rdx, eax
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	memcpy@PLT
	add	DWORD PTR -80[rbp], 1
.L2357:
	mov	eax, DWORD PTR -80[rbp]
	cmp	eax, DWORD PTR -88[rbp]
	jl	.L2358
.L2363:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2359
	call	__stack_chk_fail@PLT
.L2359:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE217:
	.size	decl_designator, .-decl_designator
	.section	.rodata
	.align 8
.LC147:
	.string	"initializer element is not constant"
	.align 8
.LC148:
	.string	"initializer element is not computable at load time"
	.text
	.type	init_putv, @function
init_putv:
.LFB218:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	QWORD PTR -88[rbp], rdx
	mov	DWORD PTR -92[rbp], ecx
	mov	DWORD PTR -96[rbp], r8d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	cmp	DWORD PTR -96[rbp], 2
	je	.L2365
	cmp	DWORD PTR -96[rbp], 2
	jg	.L2366
	cmp	DWORD PTR -96[rbp], 0
	je	.L2367
	cmp	DWORD PTR -96[rbp], 1
	je	.L2368
	jmp	.L2366
.L2367:
	mov	eax, DWORD PTR -92[rbp]
	mov	edi, eax
	call	vpushi
	jmp	.L2366
.L2368:
	mov	eax, DWORD PTR global_expr[rip]
	mov	DWORD PTR -56[rbp], eax
	mov	DWORD PTR global_expr[rip], 1
	call	expr_const1
	mov	eax, DWORD PTR -56[rbp]
	mov	DWORD PTR global_expr[rip], eax
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 511
	cmp	eax, 240
	je	.L2386
	lea	rdi, .LC147[rip]
	mov	eax, 0
	call	error
	jmp	.L2386
.L2365:
	call	expr_eq
	jmp	.L2366
.L2386:
	nop
.L2366:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -32[rbp], rax
	mov	QWORD PTR -24[rbp], rdx
	mov	eax, DWORD PTR -32[rbp]
	and	ah, -9
	mov	DWORD PTR -32[rbp], eax
	cmp	QWORD PTR -80[rbp], 0
	je	.L2370
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	gen_assign_cast
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	mov	DWORD PTR -52[rbp], eax
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 64
	test	eax, eax
	jne	.L2371
	mov	DWORD PTR -64[rbp], 0
	mov	DWORD PTR -60[rbp], 32
	mov	QWORD PTR -48[rbp], -1
	jmp	.L2372
.L2371:
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	sar	eax, 16
	and	eax, 63
	mov	DWORD PTR -64[rbp], eax
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR [rax]
	sar	eax, 22
	and	eax, 63
	mov	DWORD PTR -60[rbp], eax
	mov	eax, DWORD PTR -60[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	sub	rax, 1
	mov	QWORD PTR -48[rbp], rax
.L2372:
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 512
	test	eax, eax
	je	.L2373
	cmp	DWORD PTR -52[rbp], 1
	je	.L2374
	cmp	DWORD PTR -52[rbp], 2
	je	.L2374
	cmp	DWORD PTR -52[rbp], 9
	je	.L2374
	cmp	DWORD PTR -52[rbp], 10
	je	.L2374
	cmp	DWORD PTR -52[rbp], 12
	je	.L2374
	cmp	DWORD PTR -52[rbp], 0
	jne	.L2373
	cmp	DWORD PTR -60[rbp], 32
	je	.L2373
.L2374:
	lea	rdi, .LC148[rip]
	mov	eax, 0
	call	error
.L2373:
	cmp	DWORD PTR -52[rbp], 12
	ja	.L2375
	mov	eax, DWORD PTR -52[rbp]
	lea	rdx, 0[0+rax*4]
	lea	rax, .L2377[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L2377[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L2377:
	.long	.L2375-.L2377
	.long	.L2381-.L2377
	.long	.L2380-.L2377
	.long	.L2375-.L2377
	.long	.L2375-.L2377
	.long	.L2375-.L2377
	.long	.L2375-.L2377
	.long	.L2375-.L2377
	.long	.L2375-.L2377
	.long	.L2379-.L2377
	.long	.L2378-.L2377
	.long	.L2375-.L2377
	.long	.L2376-.L2377
	.text
.L2381:
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	esi, eax
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR 32[rax]
	cdqe
	and	rax, QWORD PTR -48[rbp]
	mov	rdx, rax
	mov	eax, DWORD PTR -64[rbp]
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	or	eax, esi
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	BYTE PTR [rax], dl
	jmp	.L2382
.L2380:
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, WORD PTR [rax]
	mov	esi, eax
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR 32[rax]
	cdqe
	and	rax, QWORD PTR -48[rbp]
	mov	rdx, rax
	mov	eax, DWORD PTR -64[rbp]
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	or	eax, esi
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	WORD PTR [rax], dx
	jmp	.L2382
.L2379:
	mov	rax, QWORD PTR vtop[rip]
	movsd	xmm0, QWORD PTR 32[rax]
	mov	rax, QWORD PTR -40[rbp]
	movsd	QWORD PTR [rax], xmm0
	jmp	.L2382
.L2378:
	mov	rax, QWORD PTR vtop[rip]
	fld	TBYTE PTR 32[rax]
	mov	rax, QWORD PTR -40[rbp]
	fstp	TBYTE PTR [rax]
	jmp	.L2382
.L2376:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rsi, rax
	mov	rax, QWORD PTR vtop[rip]
	mov	rax, QWORD PTR 32[rax]
	and	rax, QWORD PTR -48[rbp]
	mov	rdx, rax
	mov	eax, DWORD PTR -64[rbp]
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	or	rax, rsi
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR [rax], rdx
	jmp	.L2382
.L2375:
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 512
	test	eax, eax
	je	.L2383
	mov	rax, QWORD PTR vtop[rip]
	mov	rsi, QWORD PTR 48[rax]
	mov	rdx, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR -80[rbp]
	mov	ecx, 1
	mov	rdi, rax
	call	greloc
.L2383:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	mov	esi, eax
	mov	rax, QWORD PTR vtop[rip]
	mov	eax, DWORD PTR 32[rax]
	cdqe
	and	rax, QWORD PTR -48[rbp]
	mov	rdx, rax
	mov	eax, DWORD PTR -64[rbp]
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	or	eax, esi
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], edx
	nop
.L2382:
	mov	rax, QWORD PTR vtop[rip]
	sub	rax, 64
	mov	QWORD PTR vtop[rip], rax
	jmp	.L2387
.L2370:
	mov	rax, QWORD PTR -88[rbp]
	mov	edx, eax
	lea	rax, -32[rbp]
	mov	esi, 242
	mov	rdi, rax
	call	vset
	call	vswap
	call	vstore
	call	vpop
.L2387:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2385
	call	__stack_chk_fail@PLT
.L2385:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE218:
	.size	init_putv, .-init_putv
	.type	init_putz, @function
init_putz:
.LFB219:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	DWORD PTR -28[rbp], ecx
	cmp	QWORD PTR -16[rbp], 0
	jne	.L2390
	mov	esi, 356
	lea	rdi, func_old_type[rip]
	call	vpush_global_sym
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, eax
	mov	edi, 242
	call	vseti
	mov	edi, 0
	call	vpushi
	mov	eax, DWORD PTR -28[rbp]
	mov	edi, eax
	call	vpushi
	mov	edi, 3
	call	gfunc_call
.L2390:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE219:
	.size	init_putz, .-init_putz
	.section	.rodata
	.align 8
.LC149:
	.string	"initializer-string for array is too long"
.LC150:
	.string	"index too large"
.LC151:
	.string	"cast"
	.text
	.type	decl_initializer, @function
decl_initializer:
.LFB220:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 160
	mov	QWORD PTR -136[rbp], rdi
	mov	QWORD PTR -144[rbp], rsi
	mov	QWORD PTR -152[rbp], rdx
	mov	DWORD PTR -156[rbp], ecx
	mov	DWORD PTR -160[rbp], r8d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 32
	test	eax, eax
	je	.L2392
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	DWORD PTR -116[rbp], eax
	mov	DWORD PTR -112[rbp], 0
	mov	rax, QWORD PTR -136[rbp]
	mov	rdi, rax
	call	pointed_type
	mov	QWORD PTR -64[rbp], rax
	lea	rdx, -48[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	type_size
	mov	DWORD PTR -76[rbp], eax
	mov	DWORD PTR -108[rbp], 1
	cmp	DWORD PTR -156[rbp], 0
	je	.L2393
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 184
	je	.L2393
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 181
	jne	.L2394
.L2393:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 123
	jne	.L2395
.L2394:
	mov	edi, 123
	call	skip
	mov	DWORD PTR -108[rbp], 0
.L2395:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 184
	jne	.L2396
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	test	eax, eax
	je	.L2399
.L2396:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 181
	jne	.L2398
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 1
	jne	.L2398
	jmp	.L2399
.L2410:
	mov	rax, QWORD PTR tokc[rip]
	mov	QWORD PTR -56[rbp], rax
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 181
	jne	.L2400
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -88[rbp], eax
	jmp	.L2401
.L2400:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	shr	rax, 2
	mov	DWORD PTR -88[rbp], eax
.L2401:
	sub	DWORD PTR -88[rbp], 1
	mov	eax, DWORD PTR -88[rbp]
	mov	DWORD PTR -104[rbp], eax
	mov	eax, DWORD PTR -116[rbp]
	test	eax, eax
	js	.L2402
	mov	eax, DWORD PTR -116[rbp]
	sub	eax, DWORD PTR -112[rbp]
	cmp	DWORD PTR -104[rbp], eax
	jle	.L2402
	mov	eax, DWORD PTR -116[rbp]
	sub	eax, DWORD PTR -112[rbp]
	mov	DWORD PTR -104[rbp], eax
.L2402:
	cmp	DWORD PTR -160[rbp], 0
	jne	.L2403
	mov	eax, DWORD PTR -88[rbp]
	cmp	eax, DWORD PTR -104[rbp]
	jle	.L2404
	lea	rdi, .LC149[rip]
	mov	eax, 0
	call	warning
.L2404:
	cmp	QWORD PTR -144[rbp], 0
	je	.L2405
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 181
	jne	.L2405
	cmp	DWORD PTR -76[rbp], 1
	jne	.L2405
	mov	eax, DWORD PTR -104[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rcx, QWORD PTR -144[rbp]
	mov	rsi, QWORD PTR 8[rcx]
	mov	ecx, DWORD PTR -112[rbp]
	movsx	rdi, ecx
	mov	rcx, QWORD PTR -152[rbp]
	add	rcx, rdi
	add	rcx, rsi
	mov	rsi, rax
	mov	rdi, rcx
	call	memcpy@PLT
	jmp	.L2403
.L2405:
	mov	DWORD PTR -96[rbp], 0
	jmp	.L2406
.L2409:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 181
	jne	.L2407
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -96[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -84[rbp], eax
	jmp	.L2408
.L2407:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -96[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -84[rbp], eax
.L2408:
	mov	edx, DWORD PTR -112[rbp]
	mov	eax, DWORD PTR -96[rbp]
	add	eax, edx
	imul	eax, DWORD PTR -76[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -152[rbp]
	lea	rdi, [rdx+rax]
	mov	edx, DWORD PTR -84[rbp]
	mov	rsi, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	r8d, 0
	mov	ecx, edx
	mov	rdx, rdi
	mov	rdi, rax
	call	init_putv
	add	DWORD PTR -96[rbp], 1
.L2406:
	mov	eax, DWORD PTR -96[rbp]
	cmp	eax, DWORD PTR -104[rbp]
	jl	.L2409
.L2403:
	mov	eax, DWORD PTR -104[rbp]
	add	DWORD PTR -112[rbp], eax
	call	next
.L2399:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 181
	je	.L2410
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 184
	je	.L2410
	mov	eax, DWORD PTR -116[rbp]
	test	eax, eax
	js	.L2411
	mov	eax, DWORD PTR -116[rbp]
	cmp	DWORD PTR -112[rbp], eax
	jge	.L2454
.L2411:
	cmp	DWORD PTR -160[rbp], 0
	jne	.L2413
	mov	eax, DWORD PTR -112[rbp]
	imul	eax, DWORD PTR -76[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -152[rbp]
	add	rdx, rax
	mov	rsi, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	r8d, 0
	mov	ecx, 0
	mov	rdi, rax
	call	init_putv
.L2413:
	add	DWORD PTR -112[rbp], 1
	jmp	.L2454
.L2398:
	mov	DWORD PTR -120[rbp], 0
	jmp	.L2415
.L2421:
	mov	edi, DWORD PTR -160[rbp]
	lea	rcx, -120[rbp]
	mov	rdx, QWORD PTR -152[rbp]
	mov	rsi, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR -136[rbp]
	mov	r9d, edi
	mov	r8d, 0
	mov	rdi, rax
	call	decl_designator
	mov	eax, DWORD PTR -116[rbp]
	test	eax, eax
	js	.L2416
	mov	edx, DWORD PTR -120[rbp]
	mov	eax, DWORD PTR -116[rbp]
	cmp	edx, eax
	jl	.L2416
	lea	rdi, .LC150[rip]
	mov	eax, 0
	call	error
.L2416:
	cmp	DWORD PTR -160[rbp], 0
	jne	.L2417
	mov	eax, DWORD PTR -120[rbp]
	cmp	DWORD PTR -112[rbp], eax
	jge	.L2417
	mov	eax, DWORD PTR -120[rbp]
	sub	eax, DWORD PTR -112[rbp]
	imul	eax, DWORD PTR -76[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -112[rbp]
	imul	eax, DWORD PTR -76[rbp]
	movsx	rcx, eax
	mov	rax, QWORD PTR -152[rbp]
	lea	rdi, [rcx+rax]
	mov	rsi, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	ecx, edx
	mov	rdx, rdi
	mov	rdi, rax
	call	init_putz
.L2417:
	mov	eax, DWORD PTR -120[rbp]
	add	eax, 1
	mov	DWORD PTR -120[rbp], eax
	mov	eax, DWORD PTR -120[rbp]
	cmp	DWORD PTR -112[rbp], eax
	jge	.L2418
	mov	eax, DWORD PTR -120[rbp]
	mov	DWORD PTR -112[rbp], eax
.L2418:
	mov	edx, DWORD PTR -120[rbp]
	mov	eax, DWORD PTR -116[rbp]
	cmp	edx, eax
	jl	.L2419
	cmp	DWORD PTR -108[rbp], 0
	jne	.L2455
.L2419:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 125
	je	.L2456
	mov	edi, 44
	call	skip
.L2415:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 125
	jne	.L2421
	jmp	.L2414
.L2454:
	nop
	jmp	.L2414
.L2455:
	nop
	jmp	.L2414
.L2456:
	nop
.L2414:
	cmp	DWORD PTR -108[rbp], 0
	jne	.L2422
	mov	edi, 125
	call	skip
.L2422:
	cmp	DWORD PTR -160[rbp], 0
	jne	.L2423
	mov	eax, DWORD PTR -116[rbp]
	test	eax, eax
	js	.L2423
	mov	eax, DWORD PTR -116[rbp]
	cmp	DWORD PTR -112[rbp], eax
	jge	.L2423
	mov	eax, DWORD PTR -116[rbp]
	sub	eax, DWORD PTR -112[rbp]
	imul	eax, DWORD PTR -76[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -112[rbp]
	imul	eax, DWORD PTR -76[rbp]
	movsx	rcx, eax
	mov	rax, QWORD PTR -152[rbp]
	lea	rdi, [rcx+rax]
	mov	rsi, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	ecx, edx
	mov	rdx, rdi
	mov	rdi, rax
	call	init_putz
.L2423:
	mov	eax, DWORD PTR -116[rbp]
	test	eax, eax
	jns	.L2457
	mov	eax, DWORD PTR -112[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR 16[rax], rdx
	jmp	.L2457
.L2392:
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 7
	jne	.L2425
	cmp	QWORD PTR -144[rbp], 0
	jne	.L2426
	cmp	DWORD PTR -156[rbp], 0
	je	.L2426
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 123
	jne	.L2425
.L2426:
	mov	DWORD PTR -80[rbp], 0
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 40
	jne	.L2427
	call	next
	jmp	.L2428
.L2429:
	add	DWORD PTR -80[rbp], 1
	call	next
.L2428:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 40
	je	.L2429
	lea	rdx, -32[rbp]
	lea	rax, -48[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	parse_btype
	test	eax, eax
	jne	.L2430
	lea	rdi, .LC151[rip]
	call	expect
.L2430:
	lea	rdx, -116[rbp]
	lea	rsi, -32[rbp]
	lea	rax, -48[rbp]
	mov	ecx, 1
	mov	rdi, rax
	call	type_decl
	mov	edi, 41
	call	skip
.L2427:
	mov	DWORD PTR -108[rbp], 1
	cmp	DWORD PTR -156[rbp], 0
	jne	.L2431
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 123
	jne	.L2432
.L2431:
	mov	edi, 123
	call	skip
	mov	DWORD PTR -108[rbp], 0
.L2432:
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	QWORD PTR -32[rbp], rax
	mov	DWORD PTR -112[rbp], 0
	mov	DWORD PTR -120[rbp], 0
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	DWORD PTR -116[rbp], eax
	jmp	.L2433
.L2439:
	mov	edi, DWORD PTR -160[rbp]
	lea	rcx, -32[rbp]
	mov	rdx, QWORD PTR -152[rbp]
	mov	rsi, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR -136[rbp]
	mov	r9d, edi
	mov	r8, rcx
	mov	ecx, 0
	mov	rdi, rax
	call	decl_designator
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	DWORD PTR -120[rbp], eax
	cmp	DWORD PTR -160[rbp], 0
	jne	.L2434
	mov	eax, DWORD PTR -120[rbp]
	cmp	DWORD PTR -112[rbp], eax
	jge	.L2434
	mov	eax, DWORD PTR -120[rbp]
	sub	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -112[rbp]
	movsx	rcx, eax
	mov	rax, QWORD PTR -152[rbp]
	lea	rdi, [rcx+rax]
	mov	rsi, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR -136[rbp]
	mov	ecx, edx
	mov	rdx, rdi
	mov	rdi, rax
	call	init_putz
.L2434:
	mov	rax, QWORD PTR -32[rbp]
	lea	rdx, 24[rax]
	lea	rax, -48[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	type_size
	mov	edx, DWORD PTR -120[rbp]
	add	eax, edx
	mov	DWORD PTR -120[rbp], eax
	mov	eax, DWORD PTR -120[rbp]
	cmp	DWORD PTR -112[rbp], eax
	jge	.L2435
	mov	eax, DWORD PTR -120[rbp]
	mov	DWORD PTR -112[rbp], eax
.L2435:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	QWORD PTR -32[rbp], rax
	cmp	DWORD PTR -108[rbp], 0
	je	.L2436
	mov	rax, QWORD PTR -32[rbp]
	test	rax, rax
	je	.L2458
.L2436:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 125
	je	.L2459
	mov	edi, 44
	call	skip
.L2433:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 125
	jne	.L2439
	jmp	.L2437
.L2458:
	nop
	jmp	.L2437
.L2459:
	nop
.L2437:
	cmp	DWORD PTR -160[rbp], 0
	jne	.L2440
	mov	eax, DWORD PTR -116[rbp]
	cmp	DWORD PTR -112[rbp], eax
	jge	.L2440
	mov	eax, DWORD PTR -116[rbp]
	sub	eax, DWORD PTR -112[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -112[rbp]
	movsx	rcx, eax
	mov	rax, QWORD PTR -152[rbp]
	lea	rdi, [rcx+rax]
	mov	rsi, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR -136[rbp]
	mov	ecx, edx
	mov	rdx, rdi
	mov	rdi, rax
	call	init_putz
.L2440:
	cmp	DWORD PTR -108[rbp], 0
	jne	.L2442
	mov	edi, 125
	call	skip
	jmp	.L2442
.L2443:
	mov	edi, 41
	call	skip
	sub	DWORD PTR -80[rbp], 1
.L2442:
	cmp	DWORD PTR -80[rbp], 0
	jne	.L2443
	jmp	.L2453
.L2425:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 123
	jne	.L2444
	call	next
	mov	edi, DWORD PTR -160[rbp]
	mov	ecx, DWORD PTR -156[rbp]
	mov	rdx, QWORD PTR -152[rbp]
	mov	rsi, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR -136[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	decl_initializer
	mov	edi, 125
	call	skip
	jmp	.L2457
.L2444:
	cmp	DWORD PTR -160[rbp], 0
	je	.L2445
	mov	DWORD PTR -100[rbp], 0
	jmp	.L2446
.L2450:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 40
	jne	.L2447
	add	DWORD PTR -100[rbp], 1
	jmp	.L2448
.L2447:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 41
	jne	.L2448
	sub	DWORD PTR -100[rbp], 1
.L2448:
	call	next
.L2446:
	cmp	DWORD PTR -100[rbp], 0
	jg	.L2449
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 125
	je	.L2457
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 44
	je	.L2457
.L2449:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, -1
	jne	.L2450
	jmp	.L2457
.L2445:
	mov	DWORD PTR -92[rbp], 1
	cmp	QWORD PTR -144[rbp], 0
	jne	.L2451
	mov	DWORD PTR -92[rbp], 2
.L2451:
	mov	ecx, DWORD PTR -92[rbp]
	mov	rdx, QWORD PTR -152[rbp]
	mov	rsi, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR -136[rbp]
	mov	r8d, ecx
	mov	ecx, 0
	mov	rdi, rax
	call	init_putv
	jmp	.L2457
.L2453:
.L2457:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2452
	call	__stack_chk_fail@PLT
.L2452:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE220:
	.size	decl_initializer, .-decl_initializer
	.section	.rodata
.LC152:
	.string	"unknown type size"
	.align 8
.LC153:
	.string	"unexpected end of file in initializer"
	.text
	.type	decl_initializer_alloc, @function
decl_initializer_alloc:
.LFB221:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 192
	mov	QWORD PTR -168[rbp], rdi
	mov	QWORD PTR -176[rbp], rsi
	mov	DWORD PTR -180[rbp], edx
	mov	DWORD PTR -184[rbp], ecx
	mov	DWORD PTR -188[rbp], r8d
	mov	DWORD PTR -192[rbp], r9d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rdx, -156[rbp]
	mov	rax, QWORD PTR -168[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	type_size
	mov	DWORD PTR -152[rbp], eax
	lea	rax, -96[rbp]
	mov	rdi, rax
	call	tok_str_new
	cmp	DWORD PTR -152[rbp], 0
	jns	.L2461
	cmp	DWORD PTR -184[rbp], 0
	jne	.L2462
	lea	rdi, .LC152[rip]
	mov	eax, 0
	call	error
.L2462:
	cmp	DWORD PTR -184[rbp], 2
	jne	.L2463
	jmp	.L2464
.L2465:
	lea	rax, -96[rbp]
	mov	rdi, rax
	call	tok_str_add_tok
	call	next
.L2464:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 181
	je	.L2465
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 184
	je	.L2465
	jmp	.L2466
.L2463:
	mov	DWORD PTR -140[rbp], 0
	jmp	.L2467
.L2472:
	mov	eax, DWORD PTR tok[rip]
	test	eax, eax
	jns	.L2468
	lea	rdi, .LC153[rip]
	mov	eax, 0
	call	error
.L2468:
	lea	rax, -96[rbp]
	mov	rdi, rax
	call	tok_str_add_tok
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 123
	jne	.L2469
	add	DWORD PTR -140[rbp], 1
	jmp	.L2470
.L2469:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 125
	jne	.L2470
	cmp	DWORD PTR -140[rbp], 0
	je	.L2496
	sub	DWORD PTR -140[rbp], 1
.L2470:
	call	next
.L2467:
	cmp	DWORD PTR -140[rbp], 0
	jg	.L2472
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 44
	je	.L2466
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 59
	jne	.L2472
	jmp	.L2466
.L2496:
	nop
.L2466:
	lea	rax, -96[rbp]
	mov	esi, -1
	mov	rdi, rax
	call	tok_str_add
	lea	rax, -96[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	tok_str_add
	lea	rax, -48[rbp]
	mov	rdi, rax
	call	save_parse_state
	mov	rax, QWORD PTR -96[rbp]
	mov	QWORD PTR macro_ptr[rip], rax
	call	next
	mov	rax, QWORD PTR -168[rbp]
	mov	r8d, 1
	mov	ecx, 1
	mov	edx, 0
	mov	esi, 0
	mov	rdi, rax
	call	decl_initializer
	mov	rax, QWORD PTR -96[rbp]
	mov	QWORD PTR macro_ptr[rip], rax
	call	next
	lea	rdx, -156[rbp]
	mov	rax, QWORD PTR -168[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	type_size
	mov	DWORD PTR -152[rbp], eax
	cmp	DWORD PTR -152[rbp], 0
	jns	.L2461
	lea	rdi, .LC152[rip]
	mov	eax, 0
	call	error
.L2461:
	mov	rax, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L2473
	mov	rax, QWORD PTR -176[rbp]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -156[rbp]
	cmp	edx, eax
	jle	.L2474
	mov	rax, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -156[rbp], eax
	jmp	.L2474
.L2473:
	mov	rax, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR 4[rax]
	test	eax, eax
	je	.L2474
	mov	DWORD PTR -156[rbp], 1
.L2474:
	mov	eax, DWORD PTR -180[rbp]
	movzx	eax, al
	cmp	eax, 242
	jne	.L2475
	mov	QWORD PTR -136[rbp], 0
	mov	eax, DWORD PTR do_bounds_check[rip]
	test	eax, eax
	je	.L2476
	mov	rax, QWORD PTR -168[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 32
	test	eax, eax
	je	.L2476
	mov	rax, QWORD PTR loc[rip]
	sub	rax, 1
	mov	QWORD PTR loc[rip], rax
.L2476:
	mov	rax, QWORD PTR loc[rip]
	mov	edx, DWORD PTR -152[rbp]
	movsx	rdx, edx
	sub	rax, rdx
	mov	rcx, rax
	mov	eax, DWORD PTR -156[rbp]
	neg	eax
	cdqe
	and	rax, rcx
	mov	QWORD PTR loc[rip], rax
	mov	rax, QWORD PTR loc[rip]
	mov	DWORD PTR -148[rbp], eax
	mov	eax, DWORD PTR do_bounds_check[rip]
	test	eax, eax
	je	.L2477
	mov	rax, QWORD PTR -168[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 32
	test	eax, eax
	je	.L2477
	mov	rax, QWORD PTR loc[rip]
	sub	rax, 1
	mov	QWORD PTR loc[rip], rax
	mov	rax, QWORD PTR lbounds_section[rip]
	mov	esi, 16
	mov	rdi, rax
	call	section_ptr_add
	mov	QWORD PTR -104[rbp], rax
	mov	eax, DWORD PTR -148[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -104[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 8[rax]
	mov	eax, DWORD PTR -152[rbp]
	cdqe
	mov	QWORD PTR [rdx], rax
.L2477:
	cmp	DWORD PTR -188[rbp], 0
	je	.L2478
	mov	ecx, DWORD PTR -148[rbp]
	mov	edx, DWORD PTR -180[rbp]
	mov	rsi, QWORD PTR -168[rbp]
	mov	eax, DWORD PTR -188[rbp]
	mov	edi, eax
	call	sym_push
	jmp	.L2479
.L2478:
	mov	edx, DWORD PTR -148[rbp]
	mov	ecx, DWORD PTR -180[rbp]
	mov	rax, QWORD PTR -168[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	vset
	jmp	.L2479
.L2475:
	mov	QWORD PTR -128[rbp], 0
	cmp	DWORD PTR -188[rbp], 0
	je	.L2480
	cmp	DWORD PTR -192[rbp], 240
	jne	.L2480
	mov	eax, DWORD PTR -188[rbp]
	mov	edi, eax
	call	sym_find
	mov	QWORD PTR -128[rbp], rax
	cmp	QWORD PTR -128[rbp], 0
	je	.L2480
	mov	rax, QWORD PTR -128[rbp]
	lea	rdx, 24[rax]
	mov	rax, QWORD PTR -168[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	is_compatible_types
	test	eax, eax
	jne	.L2481
	mov	eax, DWORD PTR -188[rbp]
	mov	esi, 0
	mov	edi, eax
	call	get_tok_str
	mov	rsi, rax
	lea	rdi, .LC69[rip]
	mov	eax, 0
	call	error
.L2481:
	mov	rax, QWORD PTR -128[rbp]
	mov	eax, DWORD PTR 24[rax]
	and	eax, 128
	test	eax, eax
	je	.L2482
	mov	rax, QWORD PTR -128[rbp]
	mov	eax, DWORD PTR 24[rax]
	and	al, 127
	mov	edx, eax
	mov	rax, QWORD PTR -128[rbp]
	mov	DWORD PTR 24[rax], edx
	mov	rax, QWORD PTR -128[rbp]
	mov	eax, DWORD PTR 24[rax]
	and	eax, 32
	test	eax, eax
	je	.L2480
	mov	rax, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	jns	.L2480
	mov	rax, QWORD PTR -168[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	js	.L2480
	mov	rax, QWORD PTR -168[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rdx, QWORD PTR 16[rdx]
	mov	QWORD PTR 16[rax], rdx
	jmp	.L2480
.L2482:
	cmp	DWORD PTR -184[rbp], 0
	je	.L2497
.L2480:
	mov	rax, QWORD PTR -176[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -136[rbp], rax
	cmp	QWORD PTR -136[rbp], 0
	jne	.L2484
	cmp	DWORD PTR -184[rbp], 0
	je	.L2485
	mov	rax, QWORD PTR data_section[rip]
	mov	QWORD PTR -136[rbp], rax
	jmp	.L2484
.L2485:
	mov	rax, QWORD PTR tcc_state[rip]
	mov	eax, DWORD PTR 184[rax]
	test	eax, eax
	je	.L2484
	mov	rax, QWORD PTR bss_section[rip]
	mov	QWORD PTR -136[rbp], rax
.L2484:
	cmp	QWORD PTR -136[rbp], 0
	je	.L2486
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR [rax]
	mov	DWORD PTR -144[rbp], eax
	mov	edx, DWORD PTR -156[rbp]
	mov	eax, DWORD PTR -144[rbp]
	add	eax, edx
	lea	edx, -1[rax]
	mov	eax, DWORD PTR -156[rbp]
	neg	eax
	and	eax, edx
	mov	DWORD PTR -144[rbp], eax
	mov	eax, DWORD PTR -144[rbp]
	mov	DWORD PTR -148[rbp], eax
	mov	eax, DWORD PTR -152[rbp]
	add	DWORD PTR -144[rbp], eax
	mov	eax, DWORD PTR do_bounds_check[rip]
	test	eax, eax
	je	.L2487
	add	DWORD PTR -144[rbp], 1
.L2487:
	mov	eax, DWORD PTR -144[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -136[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	eax, 8
	je	.L2488
	mov	eax, DWORD PTR -144[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR 16[rax]
	cmp	rdx, rax
	jbe	.L2488
	mov	eax, DWORD PTR -144[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -136[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	section_realloc
.L2488:
	mov	rax, QWORD PTR -136[rbp]
	mov	edx, DWORD PTR 44[rax]
	mov	eax, DWORD PTR -156[rbp]
	cmp	edx, eax
	jge	.L2489
	mov	edx, DWORD PTR -156[rbp]
	mov	rax, QWORD PTR -136[rbp]
	mov	DWORD PTR 44[rax], edx
	jmp	.L2489
.L2486:
	mov	DWORD PTR -148[rbp], 0
.L2489:
	cmp	DWORD PTR -188[rbp], 0
	je	.L2490
	cmp	DWORD PTR -192[rbp], 240
	jne	.L2498
	cmp	QWORD PTR -128[rbp], 0
	jne	.L2492
	jmp	.L2491
.L2498:
	nop
.L2491:
	mov	eax, DWORD PTR -180[rbp]
	or	ah, 2
	mov	edx, eax
	mov	rsi, QWORD PTR -168[rbp]
	mov	eax, DWORD PTR -188[rbp]
	mov	ecx, 0
	mov	edi, eax
	call	sym_push
	mov	QWORD PTR -128[rbp], rax
.L2492:
	cmp	QWORD PTR -136[rbp], 0
	je	.L2493
	mov	eax, DWORD PTR -152[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -148[rbp]
	movsx	rdx, eax
	mov	rsi, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR -128[rbp]
	mov	rdi, rax
	call	put_extern_sym
	jmp	.L2494
.L2493:
	mov	eax, DWORD PTR -152[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -156[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -128[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	put_extern_sym
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR 16[rax]
	sal	rax, 4
	add	rax, rdx
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	WORD PTR 14[rax], -14
	jmp	.L2494
.L2490:
	mov	eax, DWORD PTR -152[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -148[rbp]
	movsx	rdx, eax
	mov	rsi, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR -168[rbp]
	mov	rdi, rax
	call	get_sym_ref
	mov	QWORD PTR -128[rbp], rax
	mov	DWORD PTR -64[rbp], 0
	lea	rdx, -64[rbp]
	mov	rax, QWORD PTR -168[rbp]
	mov	esi, 752
	mov	rdi, rax
	call	vsetc
	mov	rax, QWORD PTR vtop[rip]
	mov	rdx, QWORD PTR -128[rbp]
	mov	QWORD PTR 48[rax], rdx
.L2494:
	mov	eax, DWORD PTR do_bounds_check[rip]
	test	eax, eax
	je	.L2479
	mov	rax, QWORD PTR bounds_section[rip]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR bounds_section[rip]
	mov	rsi, QWORD PTR -128[rbp]
	mov	ecx, 1
	mov	rdi, rax
	call	greloc
	mov	rax, QWORD PTR bounds_section[rip]
	mov	esi, 16
	mov	rdi, rax
	call	section_ptr_add
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	mov	QWORD PTR [rax], 0
	mov	rax, QWORD PTR -112[rbp]
	lea	rdx, 8[rax]
	mov	eax, DWORD PTR -152[rbp]
	cdqe
	mov	QWORD PTR [rdx], rax
.L2479:
	cmp	DWORD PTR -184[rbp], 0
	je	.L2499
	mov	eax, DWORD PTR -148[rbp]
	movsx	rdx, eax
	mov	rsi, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR -168[rbp]
	mov	r8d, 0
	mov	ecx, 1
	mov	rdi, rax
	call	decl_initializer
	mov	rax, QWORD PTR -96[rbp]
	test	rax, rax
	je	.L2499
	mov	rax, QWORD PTR -96[rbp]
	mov	rdi, rax
	call	tok_str_free
	lea	rax, -48[rbp]
	mov	rdi, rax
	call	restore_parse_state
	jmp	.L2483
.L2497:
	nop
	jmp	.L2483
.L2499:
	nop
.L2483:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2495
	call	__stack_chk_fail@PLT
.L2495:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE221:
	.size	decl_initializer_alloc, .-decl_initializer_alloc
	.section	.rodata
.LC154:
	.string	"%s:%c1"
	.text
	.globl	put_func_debug
	.type	put_func_debug, @function
put_func_debug:
.LFB222:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 544
	mov	QWORD PTR -536[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -536[rbp]
	mov	eax, DWORD PTR 24[rax]
	and	eax, 256
	test	eax, eax
	je	.L2501
	mov	ecx, 102
	jmp	.L2502
.L2501:
	mov	ecx, 70
.L2502:
	mov	rdx, QWORD PTR funcname[rip]
	lea	rax, -528[rbp]
	mov	r8d, ecx
	mov	rcx, rdx
	lea	rdx, .LC154[rip]
	mov	esi, 512
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	mov	rax, QWORD PTR -536[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	esi, eax
	mov	rcx, QWORD PTR cur_text_section[rip]
	mov	rax, QWORD PTR file[rip]
	mov	edx, DWORD PTR 20[rax]
	lea	rax, -528[rbp]
	sub	rsp, 8
	push	rsi
	mov	r9, rcx
	mov	r8d, 0
	mov	ecx, edx
	mov	edx, 0
	mov	esi, 36
	mov	rdi, rax
	call	put_stabs_r
	add	rsp, 16
	mov	QWORD PTR last_ind[rip], 0
	mov	QWORD PTR last_line_num[rip], 0
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2503
	call	__stack_chk_fail@PLT
.L2503:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE222:
	.size	put_func_debug, .-put_func_debug
	.section	.rodata
.LC155:
	.string	"declaration list"
	.align 8
.LC156:
	.string	"declaration for parameter '%s' but no such parameter"
	.align 8
.LC157:
	.string	"storage class specified for '%s'"
	.text
	.type	func_decl_list, @function
func_decl_list:
.LFB223:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	mov	QWORD PTR -88[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	jmp	.L2505
.L2519:
	lea	rdx, -32[rbp]
	lea	rax, -64[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	parse_btype
	test	eax, eax
	jne	.L2506
	lea	rdi, .LC155[rip]
	call	expect
.L2506:
	mov	eax, DWORD PTR -64[rbp]
	and	eax, 15
	cmp	eax, 5
	je	.L2507
	mov	eax, DWORD PTR -64[rbp]
	and	eax, 15
	cmp	eax, 7
	jne	.L2517
.L2507:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 59
	je	.L2509
.L2517:
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR -56[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	QWORD PTR -40[rbp], rdx
	lea	rdx, -76[rbp]
	lea	rsi, -32[rbp]
	lea	rax, -48[rbp]
	mov	ecx, 2
	mov	rdi, rax
	call	type_decl
	mov	rax, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	QWORD PTR -72[rbp], rax
	jmp	.L2510
.L2513:
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR [rax]
	and	rax, -536870913
	mov	rdx, rax
	mov	eax, DWORD PTR -76[rbp]
	cdqe
	cmp	rdx, rax
	je	.L2521
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	QWORD PTR -72[rbp], rax
.L2510:
	cmp	QWORD PTR -72[rbp], 0
	jne	.L2513
	mov	eax, DWORD PTR -76[rbp]
	mov	esi, 0
	mov	edi, eax
	call	get_tok_str
	mov	rsi, rax
	lea	rdi, .LC156[rip]
	mov	eax, 0
	call	error
	jmp	.L2512
.L2521:
	nop
.L2512:
	mov	eax, DWORD PTR -48[rbp]
	and	eax, 1920
	test	eax, eax
	je	.L2514
	mov	eax, DWORD PTR -76[rbp]
	mov	esi, 0
	mov	edi, eax
	call	get_tok_str
	mov	rsi, rax
	lea	rdi, .LC157[rip]
	mov	eax, 0
	call	error
.L2514:
	lea	rax, -48[rbp]
	mov	rdi, rax
	call	convert_parameter_type
	mov	rcx, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	QWORD PTR 24[rcx], rax
	mov	QWORD PTR 32[rcx], rdx
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 44
	jne	.L2522
	call	next
	jmp	.L2517
.L2522:
	nop
.L2509:
	mov	edi, 59
	call	skip
.L2505:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 123
	je	.L2523
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 59
	je	.L2523
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 44
	je	.L2523
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, -1
	jne	.L2519
.L2523:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2520
	call	__stack_chk_fail@PLT
.L2520:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE223:
	.size	func_decl_list, .-func_decl_list
	.type	gen_function, @function
gen_function:
.LFB224:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR ind[rip], rax
	mov	rax, QWORD PTR ind[rip]
	mov	rdx, rax
	mov	rsi, QWORD PTR cur_text_section[rip]
	mov	rax, QWORD PTR -8[rbp]
	mov	ecx, 0
	mov	rdi, rax
	call	put_extern_sym
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	esi, 0
	mov	edi, eax
	call	get_tok_str
	mov	QWORD PTR funcname[rip], rax
	mov	rax, QWORD PTR ind[rip]
	mov	QWORD PTR func_ind[rip], rax
	mov	eax, DWORD PTR do_debug[rip]
	test	eax, eax
	je	.L2525
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	put_func_debug
.L2525:
	mov	ecx, 0
	mov	edx, 0
	mov	esi, 536870912
	lea	rdi, local_stack[rip]
	call	sym_push2
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 24
	mov	rdi, rax
	call	gfunc_prolog
	mov	QWORD PTR rsym[rip], 0
	mov	r9d, 0
	mov	r8d, 0
	mov	ecx, 0
	mov	edx, 0
	mov	esi, 0
	mov	edi, 0
	call	block
	mov	rax, QWORD PTR rsym[rip]
	mov	edi, eax
	call	gsym
	call	gfunc_epilog
	mov	rdx, QWORD PTR ind[rip]
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	QWORD PTR [rax], rdx
	mov	esi, 0
	lea	rdi, global_label_stack[rip]
	call	label_pop
	mov	esi, 0
	lea	rdi, local_stack[rip]
	call	sym_pop
	mov	rax, QWORD PTR ind[rip]
	mov	ecx, eax
	mov	rax, QWORD PTR func_ind[rip]
	mov	esi, eax
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 16[rax]
	sal	rax, 4
	add	rax, rdx
	sub	ecx, esi
	mov	edx, ecx
	mov	DWORD PTR 8[rax], edx
	mov	eax, DWORD PTR do_debug[rip]
	test	eax, eax
	je	.L2526
	mov	rax, QWORD PTR ind[rip]
	mov	edx, eax
	mov	rax, QWORD PTR func_ind[rip]
	mov	ecx, eax
	mov	eax, edx
	sub	eax, ecx
	mov	ecx, eax
	mov	edx, 0
	mov	esi, 0
	mov	edi, 36
	call	put_stabn
.L2526:
	lea	rax, .LC34[rip]
	mov	QWORD PTR funcname[rip], rax
	mov	DWORD PTR func_vt[rip], 3
	mov	QWORD PTR ind[rip], 0
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE224:
	.size	gen_function, .-gen_function
	.type	gen_inline_functions, @function
gen_inline_functions:
.LFB225:
	.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
.L2533:
	mov	DWORD PTR -28[rbp], 0
	mov	rax, QWORD PTR global_stack[rip]
	mov	QWORD PTR -24[rbp], rax
	jmp	.L2528
.L2530:
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 24
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 6
	jne	.L2529
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 1280
	cmp	eax, 1280
	jne	.L2529
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	je	.L2529
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], 752
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	and	ah, -5
	mov	edx, eax
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR macro_ptr[rip], rax
	call	next
	mov	rax, QWORD PTR text_section[rip]
	mov	QWORD PTR cur_text_section[rip], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	gen_function
	mov	QWORD PTR macro_ptr[rip], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	tok_str_free
	mov	DWORD PTR -28[rbp], 1
.L2529:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 48[rax]
	mov	QWORD PTR -24[rbp], rax
.L2528:
	cmp	QWORD PTR -24[rbp], 0
	jne	.L2530
	cmp	DWORD PTR -28[rbp], 0
	je	.L2538
	jmp	.L2533
.L2538:
	nop
	mov	rax, QWORD PTR global_stack[rip]
	mov	QWORD PTR -24[rbp], rax
	jmp	.L2534
.L2536:
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 24
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 6
	jne	.L2535
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 1280
	cmp	eax, 1280
	jne	.L2535
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	tok_str_free
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], 0
.L2535:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 48[rax]
	mov	QWORD PTR -24[rbp], rax
.L2534:
	cmp	QWORD PTR -24[rbp], 0
	jne	.L2536
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE225:
	.size	gen_inline_functions, .-gen_inline_functions
	.section	.rodata
.LC158:
	.string	"cannot use local functions"
.LC159:
	.string	"function definition"
.LC160:
	.string	"unexpected end of file"
	.text
	.type	decl, @function
decl:
.LFB226:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 144
	mov	DWORD PTR -132[rbp], edi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
.L2581:
	lea	rdx, -64[rbp]
	lea	rax, -80[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	parse_btype
	test	eax, eax
	jne	.L2540
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 59
	jne	.L2541
	call	next
	jmp	.L2542
.L2541:
	cmp	DWORD PTR -132[rbp], 240
	jne	.L2543
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 310
	je	.L2544
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 311
	je	.L2544
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 312
	jne	.L2543
.L2544:
	call	asm_global_instr
	jmp	.L2542
.L2543:
	cmp	DWORD PTR -132[rbp], 242
	je	.L2584
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 312
	jle	.L2584
	mov	DWORD PTR -80[rbp], 0
.L2540:
	mov	eax, DWORD PTR -80[rbp]
	and	eax, 15
	cmp	eax, 5
	je	.L2546
	mov	eax, DWORD PTR -80[rbp]
	and	eax, 15
	cmp	eax, 7
	jne	.L2580
.L2546:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 59
	jne	.L2580
	call	next
	jmp	.L2542
.L2580:
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR -72[rbp]
	mov	QWORD PTR -96[rbp], rax
	mov	QWORD PTR -88[rbp], rdx
	lea	rdx, -124[rbp]
	lea	rsi, -64[rbp]
	lea	rax, -96[rbp]
	mov	ecx, 2
	mov	rdi, rax
	call	type_decl
	mov	eax, DWORD PTR -96[rbp]
	and	eax, 15
	cmp	eax, 6
	jne	.L2548
	mov	rax, QWORD PTR -88[rbp]
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR 16[rax]
	cmp	rax, 2
	jne	.L2548
	mov	rax, QWORD PTR -104[rbp]
	mov	rdi, rax
	call	func_decl_list
.L2548:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 123
	jne	.L2549
	cmp	DWORD PTR -132[rbp], 242
	jne	.L2550
	lea	rdi, .LC158[rip]
	mov	eax, 0
	call	error
.L2550:
	mov	eax, DWORD PTR -96[rbp]
	and	eax, 6
	test	eax, eax
	jne	.L2551
	lea	rdi, .LC159[rip]
	call	expect
.L2551:
	mov	rax, QWORD PTR -88[rbp]
	mov	QWORD PTR -104[rbp], rax
	jmp	.L2552
.L2553:
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR [rax]
	and	rax, -536870913
	test	rax, rax
	jne	.L2552
	lea	rdi, .LC110[rip]
	call	expect
.L2552:
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	QWORD PTR -104[rbp], rax
	cmp	QWORD PTR -104[rbp], 0
	jne	.L2553
	mov	eax, DWORD PTR -96[rbp]
	and	eax, 1152
	cmp	eax, 1152
	jne	.L2554
	mov	eax, DWORD PTR -96[rbp]
	and	eax, -385
	or	ah, 1
	mov	DWORD PTR -96[rbp], eax
.L2554:
	mov	eax, DWORD PTR -124[rbp]
	mov	edi, eax
	call	sym_find
	mov	QWORD PTR -104[rbp], rax
	cmp	QWORD PTR -104[rbp], 0
	je	.L2555
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 24[rax]
	and	eax, 15
	cmp	eax, 6
	jne	.L2585
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	je	.L2558
	mov	rax, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	jne	.L2558
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR 8[rdx]
	mov	QWORD PTR 8[rax], rdx
.L2558:
	mov	rax, QWORD PTR -104[rbp]
	lea	rdx, 24[rax]
	lea	rax, -96[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	is_compatible_types
	test	eax, eax
	jne	.L2559
	jmp	.L2557
.L2585:
	nop
.L2557:
	mov	eax, DWORD PTR -124[rbp]
	mov	esi, 0
	mov	edi, eax
	call	get_tok_str
	mov	rsi, rax
	lea	rdi, .LC69[rip]
	mov	eax, 0
	call	error
.L2559:
	mov	rcx, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR -88[rbp]
	mov	QWORD PTR 24[rcx], rax
	mov	QWORD PTR 32[rcx], rdx
	jmp	.L2560
.L2555:
	mov	ecx, DWORD PTR -96[rbp]
	mov	eax, DWORD PTR -124[rbp]
	mov	edx, 0
	mov	esi, ecx
	mov	edi, eax
	call	global_identifier_push
	mov	QWORD PTR -104[rbp], rax
	mov	rdx, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR -104[rbp]
	mov	QWORD PTR 32[rax], rdx
.L2560:
	mov	eax, DWORD PTR -96[rbp]
	and	eax, 1280
	cmp	eax, 1280
	jne	.L2561
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	tok_str_new
	mov	DWORD PTR -116[rbp], 0
.L2566:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, -1
	jne	.L2562
	lea	rdi, .LC160[rip]
	mov	eax, 0
	call	error
.L2562:
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	tok_str_add_tok
	mov	eax, DWORD PTR tok[rip]
	mov	DWORD PTR -108[rbp], eax
	call	next
	cmp	DWORD PTR -108[rbp], 123
	jne	.L2563
	add	DWORD PTR -116[rbp], 1
	jmp	.L2566
.L2563:
	cmp	DWORD PTR -108[rbp], 125
	jne	.L2566
	sub	DWORD PTR -116[rbp], 1
	cmp	DWORD PTR -116[rbp], 0
	je	.L2586
	jmp	.L2566
.L2586:
	nop
	lea	rax, -32[rbp]
	mov	esi, -1
	mov	rdi, rax
	call	tok_str_add
	lea	rax, -32[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	tok_str_add
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, rax
	mov	rax, QWORD PTR -104[rbp]
	mov	QWORD PTR 8[rax], rdx
	jmp	.L2542
.L2561:
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR cur_text_section[rip], rax
	mov	rax, QWORD PTR cur_text_section[rip]
	test	rax, rax
	jne	.L2568
	mov	rax, QWORD PTR text_section[rip]
	mov	QWORD PTR cur_text_section[rip], rax
.L2568:
	mov	rax, QWORD PTR -104[rbp]
	mov	QWORD PTR 8[rax], 752
	mov	rax, QWORD PTR -104[rbp]
	mov	rdi, rax
	call	gen_function
	jmp	.L2542
.L2549:
	mov	eax, DWORD PTR -80[rbp]
	and	eax, 512
	test	eax, eax
	je	.L2569
	mov	eax, DWORD PTR -124[rbp]
	lea	rsi, -96[rbp]
	mov	ecx, 0
	mov	edx, 0
	mov	edi, eax
	call	sym_push
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 24[rax]
	or	ah, 2
	mov	edx, eax
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR 24[rax], edx
	jmp	.L2570
.L2569:
	mov	eax, DWORD PTR -96[rbp]
	and	eax, 15
	cmp	eax, 6
	jne	.L2571
	movzx	eax, BYTE PTR -48[rbp]
	test	al, al
	je	.L2572
	movzx	edx, BYTE PTR -48[rbp]
	mov	rax, QWORD PTR -88[rbp]
	movzx	edx, dl
	mov	QWORD PTR 8[rax], rdx
.L2572:
	mov	eax, DWORD PTR -124[rbp]
	lea	rcx, -96[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	edi, eax
	call	external_sym
	jmp	.L2570
.L2571:
	mov	DWORD PTR -120[rbp], 0
	mov	eax, DWORD PTR -96[rbp]
	and	eax, 32
	test	eax, eax
	jne	.L2573
	mov	eax, DWORD PTR -96[rbp]
	mov	edi, eax
	call	lvalue_type
	or	DWORD PTR -120[rbp], eax
.L2573:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 61
	sete	al
	movzx	eax, al
	mov	DWORD PTR -112[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	and	eax, 128
	test	eax, eax
	jne	.L2574
	mov	eax, DWORD PTR -96[rbp]
	and	eax, 32
	test	eax, eax
	je	.L2575
	mov	eax, DWORD PTR -96[rbp]
	and	eax, 256
	test	eax, eax
	je	.L2575
	cmp	DWORD PTR -112[rbp], 0
	jne	.L2575
	cmp	DWORD PTR -132[rbp], 240
	jne	.L2575
	mov	rax, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	jns	.L2575
.L2574:
	mov	eax, DWORD PTR -124[rbp]
	mov	edx, DWORD PTR -120[rbp]
	lea	rcx, -96[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	external_sym
	jmp	.L2570
.L2575:
	mov	eax, DWORD PTR -96[rbp]
	and	eax, 256
	test	eax, eax
	je	.L2576
	or	DWORD PTR -120[rbp], 240
	jmp	.L2577
.L2576:
	mov	eax, DWORD PTR -132[rbp]
	or	DWORD PTR -120[rbp], eax
.L2577:
	cmp	DWORD PTR -112[rbp], 0
	je	.L2578
	call	next
.L2578:
	mov	edi, DWORD PTR -124[rbp]
	mov	r8d, DWORD PTR -132[rbp]
	mov	ecx, DWORD PTR -112[rbp]
	mov	edx, DWORD PTR -120[rbp]
	lea	rsi, -64[rbp]
	lea	rax, -96[rbp]
	mov	r9d, r8d
	mov	r8d, edi
	mov	rdi, rax
	call	decl_initializer_alloc
.L2570:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 44
	je	.L2579
	mov	edi, 59
	call	skip
	jmp	.L2542
.L2579:
	call	next
	jmp	.L2580
.L2542:
	jmp	.L2581
.L2584:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2582
	call	__stack_chk_fail@PLT
.L2582:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE226:
	.size	decl, .-decl
	.type	preprocess_init, @function
preprocess_init:
.LFB227:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 488[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 744[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR file[rip]
	mov	rdx, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 16[rdx]
	mov	QWORD PTR 32[rax], rdx
	lea	rax, vstack[rip-64]
	mov	QWORD PTR vtop[rip], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 3048[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	lea	rdx, 3048[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 3080[rax], rdx
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE227:
	.size	preprocess_init, .-preprocess_init
	.section	.rodata
.LC161:
	.string	"declaration"
	.text
	.type	tcc_compile, @function
tcc_compile:
.LFB228:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 560
	mov	QWORD PTR -552[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -552[rbp]
	mov	rdi, rax
	call	preprocess_init
	lea	rax, .LC34[rip]
	mov	QWORD PTR funcname[rip], rax
	mov	QWORD PTR anon_sym[rip], 268435456
	mov	DWORD PTR -540[rbp], 0
	mov	eax, DWORD PTR do_debug[rip]
	test	eax, eax
	je	.L2589
	mov	rax, QWORD PTR text_section[rip]
	mov	edx, DWORD PTR 28[rax]
	mov	rax, QWORD PTR symtab_section[rip]
	sub	rsp, 8
	push	0
	mov	r9d, edx
	mov	r8d, 0
	mov	ecx, 3
	mov	edx, 0
	mov	esi, 0
	mov	rdi, rax
	call	put_elf_sym
	add	rsp, 16
	mov	DWORD PTR -540[rbp], eax
	lea	rax, -528[rbp]
	mov	esi, 512
	mov	rdi, rax
	call	getcwd@PLT
	mov	QWORD PTR dummy_char_star[rip], rax
	lea	rax, -528[rbp]
	lea	rdx, .LC31[rip]
	mov	esi, 512
	mov	rdi, rax
	call	pstrcat
	mov	edx, DWORD PTR -540[rbp]
	mov	rsi, QWORD PTR text_section[rip]
	mov	rax, QWORD PTR text_section[rip]
	mov	rcx, QWORD PTR [rax]
	lea	rax, -528[rbp]
	sub	rsp, 8
	push	rdx
	mov	r9, rsi
	mov	r8, rcx
	mov	ecx, 0
	mov	edx, 0
	mov	esi, 100
	mov	rdi, rax
	call	put_stabs_r
	add	rsp, 16
	mov	edx, DWORD PTR -540[rbp]
	mov	rsi, QWORD PTR text_section[rip]
	mov	rax, QWORD PTR text_section[rip]
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR file[rip]
	add	rax, 553
	sub	rsp, 8
	push	rdx
	mov	r9, rsi
	mov	r8, rcx
	mov	ecx, 0
	mov	edx, 0
	mov	esi, 100
	mov	rdi, rax
	call	put_stabs_r
	add	rsp, 16
.L2589:
	mov	rax, QWORD PTR file[rip]
	lea	rdx, 553[rax]
	mov	rax, QWORD PTR symtab_section[rip]
	sub	rsp, 8
	push	rdx
	mov	r9d, 65521
	mov	r8d, 0
	mov	ecx, 4
	mov	edx, 0
	mov	esi, 0
	mov	rdi, rax
	call	put_elf_sym
	add	rsp, 16
	mov	DWORD PTR int_type[rip], 0
	mov	DWORD PTR char_pointer_type[rip], 1
	lea	rdi, char_pointer_type[rip]
	call	mk_pointer
	mov	DWORD PTR func_old_type[rip], 6
	mov	ecx, 2
	mov	edx, 0
	lea	rsi, int_type[rip]
	mov	edi, 536870912
	call	sym_push
	mov	QWORD PTR func_old_type[rip+8], rax
	mov	rax, QWORD PTR define_stack[rip]
	mov	QWORD PTR -536[rbp], rax
	mov	rax, QWORD PTR -552[rbp]
	add	rax, 272
	mov	rdi, rax
	call	_setjmp@PLT
	endbr64
	test	eax, eax
	jne	.L2591
	mov	rax, QWORD PTR -552[rbp]
	mov	DWORD PTR 472[rax], 0
	mov	rax, QWORD PTR -552[rbp]
	mov	DWORD PTR 264[rax], 1
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR ch[rip], eax
	mov	DWORD PTR tok_flags[rip], 3
	mov	DWORD PTR parse_flags[rip], 3
	call	next
	mov	edi, 240
	call	decl
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, -1
	je	.L2592
	lea	rdi, .LC161[rip]
	call	expect
.L2592:
	mov	eax, DWORD PTR do_debug[rip]
	test	eax, eax
	je	.L2591
	mov	eax, DWORD PTR -540[rbp]
	mov	rcx, QWORD PTR text_section[rip]
	mov	rdx, QWORD PTR text_section[rip]
	mov	rdx, QWORD PTR [rdx]
	sub	rsp, 8
	push	rax
	mov	r9, rcx
	mov	r8, rdx
	mov	ecx, 0
	mov	edx, 0
	mov	esi, 100
	mov	edi, 0
	call	put_stabs_r
	add	rsp, 16
.L2591:
	mov	rax, QWORD PTR -552[rbp]
	mov	DWORD PTR 264[rax], 0
	mov	rax, QWORD PTR -536[rbp]
	mov	rdi, rax
	call	free_defines
	call	gen_inline_functions
	mov	esi, 0
	lea	rdi, global_stack[rip]
	call	sym_pop
	mov	rax, QWORD PTR -552[rbp]
	mov	eax, DWORD PTR 472[rax]
	test	eax, eax
	je	.L2593
	mov	eax, -1
	jmp	.L2595
.L2593:
	mov	eax, 0
.L2595:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L2596
	call	__stack_chk_fail@PLT
.L2596:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE228:
	.size	tcc_compile, .-tcc_compile
	.section	.rodata
.LC162:
	.string	"1"
	.text
	.globl	tcc_define_symbol
	.type	tcc_define_symbol, @function
tcc_define_symbol:
.LFB229:
	.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, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 1656
	.cfi_offset 3, -24
	mov	QWORD PTR -9832[rbp], rdi
	mov	QWORD PTR -9840[rbp], rsi
	mov	QWORD PTR -9848[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	lea	rax, -9808[rbp]
	mov	QWORD PTR -9816[rbp], rax
	mov	rax, QWORD PTR -9816[rbp]
	lea	rcx, 1577[rax]
	mov	rax, QWORD PTR -9840[rbp]
	mov	rdx, rax
	mov	esi, 8192
	mov	rdi, rcx
	call	pstrcpy
	mov	rax, QWORD PTR -9816[rbp]
	add	rax, 1577
	lea	rdx, .LC97[rip]
	mov	esi, 8192
	mov	rdi, rax
	call	pstrcat
	cmp	QWORD PTR -9848[rbp], 0
	jne	.L2598
	lea	rax, .LC162[rip]
	mov	QWORD PTR -9848[rbp], rax
.L2598:
	mov	rax, QWORD PTR -9816[rbp]
	lea	rcx, 1577[rax]
	mov	rax, QWORD PTR -9848[rbp]
	mov	rdx, rax
	mov	esi, 8192
	mov	rdi, rcx
	call	pstrcat
	mov	rax, QWORD PTR -9816[rbp]
	mov	DWORD PTR 16[rax], -1
	mov	rax, QWORD PTR -9816[rbp]
	lea	rdx, 1577[rax]
	mov	rax, QWORD PTR -9816[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -9816[rbp]
	lea	rbx, 1577[rax]
	mov	rax, QWORD PTR -9816[rbp]
	add	rax, 1577
	mov	rdi, rax
	call	strlen@PLT
	lea	rdx, [rbx+rax]
	mov	rax, QWORD PTR -9816[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -9816[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	BYTE PTR [rax], 92
	mov	rax, QWORD PTR -9816[rbp]
	mov	BYTE PTR 553[rax], 0
	mov	rax, QWORD PTR -9816[rbp]
	mov	DWORD PTR 20[rax], 1
	mov	rax, QWORD PTR -9816[rbp]
	mov	QWORD PTR file[rip], rax
	mov	rax, QWORD PTR -9832[rbp]
	lea	rdx, 488[rax]
	mov	rax, QWORD PTR -9832[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR ch[rip], eax
	call	next_nomacro
	call	parse_define
	mov	QWORD PTR file[rip], 0
	nop
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2599
	call	__stack_chk_fail@PLT
.L2599:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE229:
	.size	tcc_define_symbol, .-tcc_define_symbol
	.globl	tcc_undefine_symbol
	.type	tcc_undefine_symbol, @function
tcc_undefine_symbol:
.LFB230:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	tok_alloc
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR 40[rax]
	mov	edi, eax
	call	define_find
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	je	.L2602
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	define_undef
.L2602:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE230:
	.size	tcc_undefine_symbol, .-tcc_undefine_symbol
	.section	.rodata
	.type	reg_to_size, @object
	.size	reg_to_size, 5
reg_to_size:
	.string	""
	.string	""
	.string	"\001"
	.ascii	"\002"
	.align 16
	.type	test_bits, @object
	.size	test_bits, 30
test_bits:
	.string	""
	.ascii	"\001\002\002\002\003\003\003\004\004\005\005\006\006\007\007"
	.ascii	"\b\t\n\n\013\013\f\f\r\r\016\016\017\017"
	.align 32
	.type	asm_instrs, @object
	.size	asm_instrs, 2730
asm_instrs:
	.value	796
	.value	166
	.value	6
	.byte	0
	.zero	3
	.value	800
	.value	166
	.value	6
	.byte	0
	.zero	3
	.value	804
	.value	108
	.value	6
	.byte	0
	.zero	3
	.value	808
	.value	110
	.value	6
	.byte	0
	.zero	3
	.value	812
	.value	172
	.value	6
	.byte	0
	.zero	3
	.value	816
	.value	172
	.value	6
	.byte	0
	.zero	3
	.value	820
	.value	164
	.value	6
	.byte	0
	.zero	3
	.value	824
	.value	164
	.value	6
	.byte	0
	.zero	3
	.value	828
	.value	174
	.value	6
	.byte	0
	.zero	3
	.value	832
	.value	174
	.value	6
	.byte	0
	.zero	3
	.value	836
	.value	170
	.value	6
	.byte	0
	.zero	3
	.value	840
	.value	170
	.value	6
	.byte	0
	.zero	3
	.value	719
	.value	4028
	.value	20
	.byte	2
	.string	"\226\026"
	.value	722
	.value	4029
	.value	20
	.byte	2
	.string	"\226\026"
	.value	725
	.value	4003
	.value	20
	.byte	2
	.string	"\026\226"
	.value	725
	.value	4026
	.value	-32748
	.byte	2
	.string	"\n\226"
	.value	728
	.value	4011
	.value	20
	.byte	2
	.string	"\026\226"
	.value	728
	.value	4026
	.value	-24556
	.byte	2
	.string	"\n\226"
	.value	731
	.value	4019
	.value	20
	.byte	2
	.string	"\026\226"
	.value	731
	.value	4026
	.value	-16364
	.byte	2
	.string	"\n\226"
	.value	734
	.value	4027
	.value	20
	.byte	2
	.string	"\026\226"
	.value	734
	.value	4026
	.value	-8172
	.byte	2
	.string	"\n\226"
	.value	486
	.value	160
	.value	6
	.byte	2
	.string	"\022\016"
	.value	486
	.value	162
	.value	6
	.byte	2
	.string	"\016\022"
	.value	486
	.value	136
	.value	22
	.byte	2
	.string	"\025\225"
	.value	486
	.value	138
	.value	22
	.byte	2
	.string	"\225\025"
	.value	486
	.value	176
	.value	14
	.byte	2
	.string	"\024\025"
	.value	486
	.value	198
	.value	22
	.byte	2
	.string	"\024\225"
	.value	487
	.value	140
	.value	20
	.byte	2
	.string	"\b\225"
	.value	487
	.value	142
	.value	20
	.byte	2
	.string	"\225\b"
	.value	487
	.value	3872
	.value	20
	.byte	2
	.string	"\005\002"
	.value	487
	.value	3873
	.value	20
	.byte	2
	.string	"\007\002"
	.value	487
	.value	3876
	.value	20
	.byte	2
	.string	"\006\002"
	.value	487
	.value	3874
	.value	20
	.byte	2
	.string	"\002\005"
	.value	487
	.value	3875
	.value	20
	.byte	2
	.string	"\002\007"
	.value	487
	.value	3878
	.value	20
	.byte	2
	.string	"\002\006"
	.value	615
	.value	4030
	.value	16
	.byte	2
	.string	"\200\002"
	.value	614
	.value	4030
	.value	272
	.byte	2
	.string	"\200\001"
	.value	616
	.value	4031
	.value	16
	.byte	2
	.string	"\201\002"
	.value	610
	.value	4022
	.value	20
	.byte	2
	.string	"\200\026"
	.value	613
	.value	4023
	.value	16
	.byte	2
	.string	"\201\002"
	.value	596
	.value	80
	.value	12
	.byte	1
	.string	"\026"
	.zero	1
	.value	596
	.value	255
	.value	-16364
	.byte	1
	.string	"\226"
	.zero	1
	.value	596
	.value	106
	.value	4
	.byte	1
	.string	"\013"
	.zero	1
	.value	596
	.value	104
	.value	4
	.byte	1
	.string	"\r"
	.zero	1
	.value	596
	.value	6
	.value	4
	.byte	1
	.string	"\b"
	.zero	1
	.value	599
	.value	88
	.value	12
	.byte	1
	.string	"\026"
	.zero	1
	.value	599
	.value	143
	.value	20
	.byte	1
	.string	"\226"
	.zero	1
	.value	599
	.value	7
	.value	4
	.byte	1
	.string	"\b"
	.zero	1
	.value	555
	.value	144
	.value	12
	.byte	2
	.string	"\025\016"
	.value	555
	.value	144
	.value	12
	.byte	2
	.string	"\016\025"
	.value	554
	.value	134
	.value	22
	.byte	2
	.string	"\025\225"
	.value	554
	.value	134
	.value	22
	.byte	2
	.string	"\225\025"
	.value	602
	.value	228
	.value	6
	.byte	2
	.string	"\n\016"
	.value	602
	.value	228
	.value	6
	.byte	1
	.string	"\n"
	.zero	1
	.value	602
	.value	236
	.value	6
	.byte	2
	.string	"\021\016"
	.value	602
	.value	236
	.value	6
	.byte	1
	.string	"\021"
	.zero	1
	.value	606
	.value	230
	.value	6
	.byte	2
	.string	"\016\n"
	.value	606
	.value	230
	.value	6
	.byte	1
	.string	"\n"
	.zero	1
	.value	606
	.value	238
	.value	6
	.byte	2
	.string	"\016\021"
	.value	606
	.value	238
	.value	6
	.byte	1
	.string	"\021"
	.zero	1
	.value	617
	.value	141
	.value	20
	.byte	2
	.string	"\200\025"
	.value	620
	.value	196
	.value	16
	.byte	2
	.string	"\200\002"
	.value	621
	.value	197
	.value	16
	.byte	2
	.string	"\200\002"
	.value	622
	.value	4018
	.value	16
	.byte	2
	.string	"\200\002"
	.value	623
	.value	4020
	.value	16
	.byte	2
	.string	"\200\002"
	.value	624
	.value	4021
	.value	16
	.byte	2
	.string	"\200\002"
	.value	490
	.value	0
	.value	534
	.byte	2
	.string	"\025\225"
	.value	490
	.value	2
	.value	534
	.byte	2
	.string	"\225\025"
	.value	490
	.value	4
	.value	518
	.byte	2
	.string	"\024\016"
	.value	490
	.value	128
	.value	534
	.byte	2
	.string	"\024\225"
	.value	491
	.value	131
	.value	532
	.byte	2
	.string	"\013\225"
	.value	558
	.value	132
	.value	22
	.byte	2
	.string	"\225\025"
	.value	558
	.value	132
	.value	22
	.byte	2
	.string	"\025\225"
	.value	558
	.value	168
	.value	6
	.byte	2
	.string	"\024\016"
	.value	558
	.value	246
	.value	22
	.byte	2
	.string	"\024\225"
	.value	523
	.value	64
	.value	12
	.byte	1
	.string	"\026"
	.zero	1
	.value	522
	.value	254
	.value	22
	.byte	1
	.string	"\225"
	.zero	1
	.value	527
	.value	72
	.value	12
	.byte	1
	.string	"\026"
	.zero	1
	.value	526
	.value	254
	.value	8214
	.byte	1
	.string	"\225"
	.zero	1
	.value	530
	.value	246
	.value	16406
	.byte	1
	.string	"\225"
	.zero	1
	.value	534
	.value	246
	.value	24598
	.byte	1
	.string	"\225"
	.zero	1
	.value	538
	.value	246
	.value	-32746
	.byte	1
	.string	"\225"
	.zero	1
	.value	542
	.value	246
	.value	-24554
	.byte	1
	.string	"\225"
	.zero	1
	.value	543
	.value	4015
	.value	20
	.byte	2
	.string	"\225\025"
	.value	543
	.value	107
	.value	20
	.byte	3
	.ascii	"\013\226\026"
	.value	543
	.value	107
	.value	20
	.byte	2
	.string	"\013\026"
	.value	543
	.value	105
	.value	20
	.byte	3
	.ascii	"\027\226\026"
	.value	543
	.value	105
	.value	20
	.byte	2
	.string	"\027\026"
	.value	546
	.value	246
	.value	-16362
	.byte	1
	.string	"\225"
	.zero	1
	.value	546
	.value	246
	.value	-16362
	.byte	2
	.string	"\225\016"
	.value	550
	.value	246
	.value	-8170
	.byte	1
	.string	"\225"
	.zero	1
	.value	550
	.value	246
	.value	-8170
	.byte	2
	.string	"\225\016"
	.value	562
	.value	192
	.value	150
	.byte	2
	.string	"\n\225"
	.value	562
	.value	210
	.value	150
	.byte	2
	.string	"\020\225"
	.value	562
	.value	208
	.value	150
	.byte	1
	.string	"\225"
	.zero	1
	.value	590
	.value	4004
	.value	20
	.byte	3
	.ascii	"\n\026\226"
	.value	590
	.value	4005
	.value	20
	.byte	3
	.ascii	"\020\026\226"
	.value	590
	.value	4005
	.value	20
	.byte	2
	.string	"\026\226"
	.value	593
	.value	4012
	.value	20
	.byte	3
	.ascii	"\n\026\226"
	.value	593
	.value	4013
	.value	20
	.byte	3
	.ascii	"\020\026\226"
	.value	593
	.value	4013
	.value	20
	.byte	2
	.string	"\026\226"
	.value	625
	.value	255
	.value	16400
	.byte	1
	.string	"\023"
	.zero	1
	.value	625
	.value	232
	.value	1
	.byte	1
	.string	"\022"
	.zero	1
	.value	626
	.value	255
	.value	-32752
	.byte	1
	.string	"\023"
	.zero	1
	.value	626
	.value	235
	.value	1025
	.byte	1
	.string	"\022"
	.zero	1
	.value	627
	.value	154
	.value	0
	.byte	2
	.string	"\f\r"
	.value	627
	.value	255
	.value	24576
	.byte	1
	.string	"\200"
	.zero	1
	.value	628
	.value	234
	.value	0
	.byte	2
	.string	"\f\r"
	.value	628
	.value	255
	.value	-24576
	.byte	1
	.string	"\200"
	.zero	1
	.value	256
	.value	205
	.value	0
	.byte	1
	.string	"\n"
	.zero	1
	.value	659
	.value	3984
	.value	80
	.byte	1
	.string	"\200"
	.zero	1
	.value	938
	.value	200
	.value	0
	.byte	2
	.string	"\f\n"
	.value	901
	.value	194
	.value	0
	.byte	1
	.string	"\f"
	.zero	1
	.value	902
	.value	202
	.value	0
	.byte	1
	.string	"\f"
	.zero	1
	.value	629
	.value	112
	.value	1089
	.byte	1
	.string	"\022"
	.zero	1
	.value	939
	.value	224
	.value	1024
	.byte	1
	.string	"\022"
	.zero	1
	.value	940
	.value	224
	.value	1024
	.byte	1
	.string	"\022"
	.zero	1
	.value	941
	.value	225
	.value	1024
	.byte	1
	.string	"\022"
	.zero	1
	.value	942
	.value	225
	.value	1024
	.byte	1
	.string	"\022"
	.zero	1
	.value	943
	.value	226
	.value	1024
	.byte	1
	.string	"\022"
	.zero	1
	.value	944
	.value	227
	.value	1024
	.byte	1
	.string	"\022"
	.zero	1
	.value	758
	.value	-10023
	.value	0
	.byte	0
	.zero	3
	.value	740
	.value	-10048
	.value	2056
	.byte	1
	.string	"\t"
	.zero	1
	.value	740
	.value	-10048
	.value	2056
	.byte	2
	.string	"\t\017"
	.value	740
	.value	-8511
	.value	2048
	.byte	0
	.zero	3
	.value	741
	.value	-8512
	.value	2056
	.byte	1
	.string	"\t"
	.zero	1
	.value	741
	.value	-8512
	.value	2056
	.byte	2
	.string	"\t\017"
	.value	741
	.value	-8512
	.value	2056
	.byte	2
	.string	"\017\t"
	.value	741
	.value	-8511
	.value	2048
	.byte	0
	.zero	3
	.value	742
	.value	216
	.value	2064
	.byte	1
	.string	"\200"
	.zero	1
	.value	743
	.value	218
	.value	2064
	.byte	1
	.string	"\200"
	.zero	1
	.value	744
	.value	220
	.value	2064
	.byte	1
	.string	"\200"
	.zero	1
	.value	745
	.value	222
	.value	2064
	.byte	1
	.string	"\200"
	.zero	1
	.value	945
	.value	-9792
	.value	8
	.byte	1
	.string	"\t"
	.zero	1
	.value	946
	.value	-9792
	.value	8
	.byte	1
	.string	"\t"
	.zero	1
	.value	947
	.value	217
	.value	16
	.byte	1
	.string	"\200"
	.zero	1
	.value	946
	.value	221
	.value	16
	.byte	1
	.string	"\200"
	.zero	1
	.value	948
	.value	219
	.value	16
	.byte	1
	.string	"\200"
	.zero	1
	.value	949
	.value	223
	.value	-24560
	.byte	1
	.string	"\200"
	.zero	1
	.value	950
	.value	223
	.value	-24560
	.byte	1
	.string	"\200"
	.zero	1
	.value	951
	.value	219
	.value	-24560
	.byte	1
	.string	"\200"
	.zero	1
	.value	952
	.value	223
	.value	-32752
	.byte	1
	.string	"\200"
	.zero	1
	.value	953
	.value	-8752
	.value	8
	.byte	1
	.string	"\t"
	.zero	1
	.value	954
	.value	-8752
	.value	8
	.byte	1
	.string	"\t"
	.zero	1
	.value	955
	.value	217
	.value	16400
	.byte	1
	.string	"\200"
	.zero	1
	.value	956
	.value	217
	.value	24592
	.byte	1
	.string	"\200"
	.zero	1
	.value	954
	.value	221
	.value	16400
	.byte	1
	.string	"\200"
	.zero	1
	.value	957
	.value	221
	.value	24592
	.byte	1
	.string	"\200"
	.zero	1
	.value	958
	.value	223
	.value	16400
	.byte	1
	.string	"\200"
	.zero	1
	.value	959
	.value	223
	.value	24592
	.byte	1
	.string	"\200"
	.zero	1
	.value	960
	.value	219
	.value	16400
	.byte	1
	.string	"\200"
	.zero	1
	.value	961
	.value	219
	.value	24592
	.byte	1
	.string	"\200"
	.zero	1
	.value	962
	.value	-8744
	.value	8
	.byte	1
	.string	"\t"
	.zero	1
	.value	963
	.value	223
	.value	-8176
	.byte	1
	.string	"\200"
	.zero	1
	.value	964
	.value	223
	.value	-8176
	.byte	1
	.string	"\200"
	.zero	1
	.value	965
	.value	219
	.value	-8176
	.byte	1
	.string	"\200"
	.zero	1
	.value	966
	.value	223
	.value	-16368
	.byte	1
	.string	"\200"
	.zero	1
	.value	935
	.value	-9784
	.value	8
	.byte	1
	.string	"\t"
	.zero	1
	.value	967
	.value	-8736
	.value	8
	.byte	1
	.string	"\t"
	.zero	1
	.value	968
	.value	-8728
	.value	8
	.byte	1
	.string	"\t"
	.zero	1
	.value	969
	.value	-9245
	.value	32
	.byte	0
	.zero	3
	.value	970
	.value	217
	.value	-24560
	.byte	1
	.string	"\200"
	.zero	1
	.value	971
	.value	217
	.value	-8176
	.byte	1
	.string	"\200"
	.zero	1
	.value	972
	.value	217
	.value	-8144
	.byte	1
	.string	"\200"
	.zero	1
	.value	936
	.value	-8224
	.value	0
	.byte	1
	.string	"\016"
	.zero	1
	.value	936
	.value	221
	.value	-8176
	.byte	1
	.string	"\200"
	.zero	1
	.value	973
	.value	-8224
	.value	32
	.byte	1
	.string	"\016"
	.zero	1
	.value	973
	.value	-8224
	.value	32
	.byte	0
	.zero	3
	.value	973
	.value	221
	.value	-8144
	.byte	1
	.string	"\200"
	.zero	1
	.value	974
	.value	-9246
	.value	32
	.byte	0
	.zero	3
	.value	975
	.value	217
	.value	-16368
	.byte	1
	.string	"\200"
	.zero	1
	.value	976
	.value	217
	.value	-16336
	.byte	1
	.string	"\200"
	.zero	1
	.value	977
	.value	217
	.value	-32752
	.byte	1
	.string	"\200"
	.zero	1
	.value	978
	.value	221
	.value	-16368
	.byte	1
	.string	"\200"
	.zero	1
	.value	979
	.value	221
	.value	-16336
	.byte	1
	.string	"\200"
	.zero	1
	.value	980
	.value	221
	.value	-32752
	.byte	1
	.string	"\200"
	.zero	1
	.value	981
	.value	-8768
	.value	-32760
	.byte	1
	.string	"\t"
	.zero	1
	.value	982
	.value	-8256
	.value	-32760
	.byte	1
	.string	"\t"
	.zero	1
	.value	983
	.value	4014
	.value	16
	.byte	1
	.string	"\200"
	.zero	1
	.value	984
	.value	4014
	.value	8208
	.byte	1
	.string	"\200"
	.zero	1
	.value	985
	.value	99
	.value	16
	.byte	2
	.string	"\001\201"
	.value	986
	.value	3842
	.value	16
	.byte	2
	.string	"\202\002"
	.value	987
	.value	3841
	.value	16400
	.byte	1
	.string	"\200"
	.zero	1
	.value	988
	.value	3841
	.value	24592
	.byte	1
	.string	"\200"
	.zero	1
	.value	989
	.value	3840
	.value	16400
	.byte	1
	.string	"\225"
	.zero	1
	.value	990
	.value	3841
	.value	-16368
	.byte	1
	.string	"\225"
	.zero	1
	.value	737
	.value	3843
	.value	20
	.byte	2
	.string	"\225\025"
	.value	991
	.value	3840
	.value	24592
	.byte	1
	.string	"\225"
	.zero	1
	.value	992
	.value	3841
	.value	16
	.byte	1
	.string	"\200"
	.zero	1
	.value	993
	.value	3841
	.value	8208
	.byte	1
	.string	"\200"
	.zero	1
	.value	994
	.value	3840
	.value	16
	.byte	1
	.string	"\225"
	.zero	1
	.value	995
	.value	3841
	.value	-32752
	.byte	1
	.string	"\225"
	.zero	1
	.value	996
	.value	3840
	.value	8208
	.byte	1
	.string	"\201"
	.zero	1
	.value	997
	.value	3840
	.value	-32752
	.byte	1
	.string	"\225"
	.zero	1
	.value	998
	.value	3840
	.value	-24560
	.byte	1
	.string	"\225"
	.zero	1
	.value	999
	.value	4040
	.value	8
	.byte	1
	.string	"\002"
	.zero	1
	.value	788
	.value	4032
	.value	22
	.byte	2
	.string	"\025\225"
	.value	792
	.value	4016
	.value	22
	.byte	2
	.string	"\025\225"
	.value	1000
	.value	3841
	.value	-8176
	.byte	1
	.string	"\200"
	.zero	1
	.value	1001
	.value	98
	.value	16
	.byte	2
	.string	"\002\200"
	.value	1002
	.value	98
	.value	272
	.byte	2
	.string	"\001\200"
	.value	1003
	.value	4039
	.value	8208
	.byte	1
	.string	"\200"
	.zero	1
	.value	689
	.value	3904
	.value	80
	.byte	2
	.string	"\202\002"
	.value	1004
	.value	-9536
	.value	8
	.byte	2
	.string	"\t\017"
	.value	1005
	.value	-9528
	.value	8
	.byte	2
	.string	"\t\017"
	.value	1006
	.value	-9520
	.value	8
	.byte	2
	.string	"\t\017"
	.value	1007
	.value	-9512
	.value	8
	.byte	2
	.string	"\t\017"
	.value	1008
	.value	-9280
	.value	8
	.byte	2
	.string	"\t\017"
	.value	1009
	.value	-9272
	.value	8
	.byte	2
	.string	"\t\017"
	.value	1010
	.value	-9264
	.value	8
	.byte	2
	.string	"\t\017"
	.value	1011
	.value	-9256
	.value	8
	.byte	2
	.string	"\t\017"
	.value	1012
	.value	-9240
	.value	8
	.byte	2
	.string	"\t\017"
	.value	1013
	.value	-9232
	.value	8
	.byte	2
	.string	"\t\017"
	.value	1014
	.value	-8216
	.value	8
	.byte	2
	.string	"\t\017"
	.value	1015
	.value	-8208
	.value	8
	.byte	2
	.string	"\t\017"
	.value	1016
	.value	3950
	.value	16
	.byte	2
	.string	"\202\003"
	.value	1016
	.value	3966
	.value	16
	.byte	2
	.string	"\003\202"
	.value	1017
	.value	3951
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1017
	.value	3967
	.value	16
	.byte	2
	.string	"\003\203"
	.value	1018
	.value	3947
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1019
	.value	3939
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1020
	.value	3943
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1021
	.value	4092
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1022
	.value	4093
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1023
	.value	4094
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1024
	.value	4076
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1025
	.value	4077
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1026
	.value	4060
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1027
	.value	4061
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1028
	.value	4059
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1029
	.value	4063
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1030
	.value	3956
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1031
	.value	3957
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1032
	.value	3958
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1033
	.value	3940
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1034
	.value	3941
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1035
	.value	3942
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1036
	.value	4085
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1037
	.value	4069
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1038
	.value	4053
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1039
	.value	4075
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1040
	.value	4081
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1040
	.value	3953
	.value	-16368
	.byte	2
	.string	"\n\003"
	.value	1041
	.value	4082
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1041
	.value	3954
	.value	-16368
	.byte	2
	.string	"\n\003"
	.value	1042
	.value	4083
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1042
	.value	3955
	.value	-16368
	.byte	2
	.string	"\n\003"
	.value	1043
	.value	4065
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1043
	.value	3953
	.value	-32752
	.byte	2
	.string	"\n\003"
	.value	1044
	.value	4066
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1044
	.value	3954
	.value	-32752
	.byte	2
	.string	"\n\003"
	.value	1045
	.value	4049
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1045
	.value	3953
	.value	16400
	.byte	2
	.string	"\n\003"
	.value	1046
	.value	4050
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1046
	.value	3954
	.value	16400
	.byte	2
	.string	"\n\003"
	.value	1047
	.value	4051
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1047
	.value	3955
	.value	16400
	.byte	2
	.string	"\n\003"
	.value	1048
	.value	4088
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1049
	.value	4089
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1050
	.value	4090
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1051
	.value	4072
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1052
	.value	4073
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1053
	.value	4056
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1054
	.value	4057
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1055
	.value	3944
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1056
	.value	3945
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1057
	.value	3946
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1058
	.value	3936
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1059
	.value	3937
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1060
	.value	3938
	.value	16
	.byte	2
	.string	"\203\003"
	.value	1061
	.value	4079
	.value	16
	.byte	2
	.string	"\203\003"
	.value	0
	.zero	8
	.align 32
	.type	op0_codes, @object
	.size	op0_codes, 188
op0_codes:
	.value	96
	.value	97
	.value	248
	.value	252
	.value	250
	.value	3846
	.value	245
	.value	159
	.value	158
	.value	156
	.value	157
	.value	156
	.value	157
	.value	249
	.value	253
	.value	251
	.value	55
	.value	63
	.value	39
	.value	47
	.value	-10998
	.value	-11254
	.value	26264
	.value	26265
	.value	152
	.value	153
	.value	26264
	.value	152
	.value	26265
	.value	153
	.value	204
	.value	206
	.value	207
	.value	4010
	.value	244
	.value	155
	.value	144
	.value	215
	.value	103
	.value	103
	.value	102
	.value	102
	.value	240
	.value	243
	.value	243
	.value	243
	.value	242
	.value	242
	.value	3848
	.value	3849
	.value	4002
	.value	3888
	.value	3889
	.value	3890
	.value	3891
	.value	3851
	.value	201
	.value	195
	.value	203
	.value	-9495
	.value	-9756
	.value	-9755
	.value	-9752
	.value	-9751
	.value	-9750
	.value	-9749
	.value	-9748
	.value	-9747
	.value	-9746
	.value	-9744
	.value	-9743
	.value	-9742
	.value	-9741
	.value	-9740
	.value	-9739
	.value	-9738
	.value	-9737
	.value	-9736
	.value	-9735
	.value	-9734
	.value	-9733
	.value	-9732
	.value	-9731
	.value	-9730
	.value	-9729
	.value	-9760
	.value	-9759
	.value	-9245
	.value	-9246
	.value	-9776
	.value	155
	.value	-9783
	.value	-8224
	.value	3959
.LC163:
	.string	"1, 2, 4 or 8 constant"
	.text
	.type	get_reg_shift, @function
get_reg_shift:
.LFB231:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	asm_int_expr
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 8
	je	.L2604
	cmp	DWORD PTR -4[rbp], 8
	jg	.L2605
	cmp	DWORD PTR -4[rbp], 4
	je	.L2606
	cmp	DWORD PTR -4[rbp], 4
	jg	.L2605
	cmp	DWORD PTR -4[rbp], 1
	je	.L2607
	cmp	DWORD PTR -4[rbp], 2
	je	.L2608
	jmp	.L2605
.L2607:
	mov	DWORD PTR -8[rbp], 0
	jmp	.L2609
.L2608:
	mov	DWORD PTR -8[rbp], 1
	jmp	.L2609
.L2606:
	mov	DWORD PTR -8[rbp], 2
	jmp	.L2609
.L2604:
	mov	DWORD PTR -8[rbp], 3
	jmp	.L2609
.L2605:
	lea	rdi, .LC163[rip]
	call	expect
	mov	DWORD PTR -8[rbp], 0
	nop
.L2609:
	mov	eax, DWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE231:
	.size	get_reg_shift, .-get_reg_shift
	.section	.rodata
.LC164:
	.string	"32 bit register"
	.text
	.type	asm_parse_reg, @function
asm_parse_reg:
.LFB232:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 37
	jne	.L2615
	call	next
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 422
	jle	.L2616
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 430
	jg	.L2616
	mov	eax, DWORD PTR tok[rip]
	sub	eax, 423
	mov	DWORD PTR -4[rbp], eax
	call	next
	mov	eax, DWORD PTR -4[rbp]
	jmp	.L2614
.L2615:
	nop
	jmp	.L2613
.L2616:
	nop
.L2613:
	lea	rdi, .LC164[rip]
	call	expect
	mov	eax, 0
.L2614:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE232:
	.size	asm_parse_reg, .-asm_parse_reg
	.section	.rodata
.LC165:
	.string	"unknown register"
	.text
	.type	parse_operand, @function
parse_operand:
.LFB233:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -48[rbp], 0
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 42
	jne	.L2618
	call	next
	mov	DWORD PTR -48[rbp], 524288
.L2618:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 37
	jne	.L2619
	call	next
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 406
	jle	.L2620
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 470
	jg	.L2620
	mov	eax, DWORD PTR tok[rip]
	sub	eax, 407
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -44[rbp]
	sar	eax, 3
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -44[rbp]
	and	eax, 7
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	BYTE PTR 4[rax], dl
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 7
	test	eax, eax
	je	.L2621
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, BYTE PTR 4[rax]
	test	al, al
	jne	.L2621
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	or	ah, 64
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L2622
.L2621:
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 1
	jne	.L2623
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, BYTE PTR 4[rax]
	cmp	al, 1
	jne	.L2623
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	or	eax, 65536
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L2622
.L2623:
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	jne	.L2645
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, BYTE PTR 4[rax]
	cmp	al, 2
	jne	.L2645
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	or	eax, 131072
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L2645
.L2622:
	jmp	.L2645
.L2620:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 470
	jle	.L2625
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 478
	jg	.L2625
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], 128
	mov	eax, DWORD PTR tok[rip]
	add	eax, 41
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	BYTE PTR 4[rax], dl
	jmp	.L2624
.L2625:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 478
	jle	.L2626
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 484
	jg	.L2626
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], 256
	mov	eax, DWORD PTR tok[rip]
	add	eax, 33
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	BYTE PTR 4[rax], dl
	jmp	.L2624
.L2626:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 485
	jne	.L2646
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], 512
	mov	rax, QWORD PTR -64[rbp]
	mov	BYTE PTR 4[rax], 0
	call	next
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 40
	jne	.L2628
	call	next
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 206
	jne	.L2647
	mov	rax, QWORD PTR tokc[rip]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	sub	eax, 48
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -44[rbp]
	cmp	eax, 7
	ja	.L2648
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L2648
	mov	eax, DWORD PTR -44[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	BYTE PTR 4[rax], dl
	call	next
	mov	edi, 41
	call	skip
.L2628:
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, BYTE PTR 4[rax]
	test	al, al
	jne	.L2649
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	or	ah, -128
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L2649
.L2646:
	nop
	jmp	.L2627
.L2647:
	nop
	jmp	.L2627
.L2648:
	nop
.L2627:
	lea	rdi, .LC165[rip]
	mov	eax, 0
	call	error
	jmp	.L2624
.L2645:
	nop
.L2624:
	call	next
.L2633:
	jmp	.L2634
.L2619:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 36
	jne	.L2635
	call	next
	lea	rdx, -32[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	asm_expr
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], 8192
	mov	edx, DWORD PTR -32[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR 8[rax], edx
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	jne	.L2634
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 8[rax]
	movzx	eax, al
	cmp	edx, eax
	jne	.L2636
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	or	ah, 4
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
.L2636:
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 8[rax]
	movsx	eax, al
	cmp	edx, eax
	jne	.L2637
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	or	ah, 8
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
.L2637:
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 8[rax]
	movzx	eax, ax
	cmp	edx, eax
	jne	.L2634
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	or	ah, 16
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L2634
.L2635:
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], 1073741824
	mov	rax, QWORD PTR -64[rbp]
	mov	BYTE PTR 4[rax], -1
	mov	rax, QWORD PTR -64[rbp]
	mov	BYTE PTR 5[rax], -1
	mov	rax, QWORD PTR -64[rbp]
	mov	BYTE PTR 6[rax], 0
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 40
	je	.L2638
	lea	rdx, -32[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	asm_expr
	mov	edx, DWORD PTR -32[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR 8[rax], edx
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR 16[rax], rdx
	jmp	.L2639
.L2638:
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR 8[rax], 0
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR 16[rax], 0
.L2639:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 40
	jne	.L2640
	call	next
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 44
	je	.L2641
	call	asm_parse_reg
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	BYTE PTR 4[rax], dl
.L2641:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 44
	jne	.L2642
	call	next
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 44
	je	.L2643
	call	asm_parse_reg
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	BYTE PTR 5[rax], dl
.L2643:
	mov	edi, 44
	call	skip
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	get_reg_shift
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	BYTE PTR 6[rax], dl
.L2642:
	mov	edi, 41
	call	skip
.L2640:
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, BYTE PTR 4[rax]
	cmp	al, -1
	jne	.L2634
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, BYTE PTR 5[rax]
	cmp	al, -1
	jne	.L2634
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	or	eax, 262144
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L2634
.L2649:
	nop
.L2634:
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -48[rbp]
	or	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2644
	call	__stack_chk_fail@PLT
.L2644:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE233:
	.size	parse_operand, .-parse_operand
	.type	gen_expr32, @function
gen_expr32:
.LFB234:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	je	.L2651
	mov	rax, QWORD PTR ind[rip]
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, QWORD PTR 8[rax]
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	ecx, 1
	mov	rdi, rax
	call	greloc
.L2651:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	gen_le32
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE234:
	.size	gen_expr32, .-gen_expr32
	.type	gen_disp32, @function
gen_disp32:
.LFB235:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	je	.L2653
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	eax, DWORD PTR 28[rax]
	cdqe
	cmp	rdx, rax
	jne	.L2654
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 40[rax]
	add	edx, eax
	mov	rax, QWORD PTR ind[rip]
	mov	ecx, eax
	mov	eax, edx
	sub	eax, ecx
	sub	eax, 4
	mov	edi, eax
	call	gen_le32
	jmp	.L2656
.L2654:
	mov	rax, QWORD PTR ind[rip]
	mov	rdx, rax
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	rsi, QWORD PTR -8[rbp]
	mov	ecx, 2
	mov	rdi, rax
	call	greloc
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	sub	eax, 4
	mov	edi, eax
	call	gen_le32
	jmp	.L2656
.L2653:
	mov	rax, QWORD PTR ind[rip]
	mov	rdx, rax
	mov	rsi, QWORD PTR cur_text_section[rip]
	mov	rax, QWORD PTR symtab_section[rip]
	mov	r8d, 0
	mov	ecx, 2
	mov	rdi, rax
	call	put_elf_reloc
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	sub	eax, 4
	mov	edi, eax
	call	gen_le32
.L2656:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE235:
	.size	gen_disp32, .-gen_disp32
	.type	gen_le16, @function
gen_le16:
.LFB236:
	.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	eax, DWORD PTR -4[rbp]
	mov	edi, eax
	call	g
	mov	eax, DWORD PTR -4[rbp]
	sar	eax, 8
	mov	edi, eax
	call	g
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE236:
	.size	gen_le16, .-gen_le16
	.type	asm_modrm, @function
asm_modrm:
.LFB237:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 31
	test	eax, eax
	je	.L2659
	mov	eax, DWORD PTR -20[rbp]
	sal	eax, 3
	lea	edx, 192[rax]
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 4[rax]
	movsx	eax, al
	add	eax, edx
	mov	edi, eax
	call	g
	jmp	.L2671
.L2659:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 4[rax]
	cmp	al, -1
	jne	.L2661
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 5[rax]
	cmp	al, -1
	jne	.L2661
	mov	eax, DWORD PTR -20[rbp]
	sal	eax, 3
	add	eax, 5
	mov	edi, eax
	call	g
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 8
	mov	rdi, rax
	call	gen_expr32
	jmp	.L2671
.L2661:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 4[rax]
	movsx	eax, al
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], -1
	jne	.L2662
	mov	DWORD PTR -4[rbp], 5
	mov	DWORD PTR -16[rbp], 0
	jmp	.L2663
.L2662:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 8[rax]
	test	eax, eax
	jne	.L2664
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	jne	.L2664
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 4[rax]
	cmp	al, 5
	je	.L2664
	mov	DWORD PTR -16[rbp], 0
	jmp	.L2663
.L2664:
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 8[rax]
	movsx	eax, al
	cmp	edx, eax
	jne	.L2665
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	jne	.L2665
	mov	DWORD PTR -16[rbp], 64
	jmp	.L2663
.L2665:
	mov	DWORD PTR -16[rbp], 128
.L2663:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 4[rax]
	movsx	eax, al
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 5[rax]
	cmp	al, -1
	je	.L2666
	mov	DWORD PTR -12[rbp], 4
.L2666:
	mov	eax, DWORD PTR -20[rbp]
	lea	edx, 0[0+rax*8]
	mov	eax, DWORD PTR -16[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -12[rbp]
	add	eax, edx
	mov	edi, eax
	call	g
	cmp	DWORD PTR -12[rbp], 4
	jne	.L2667
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 5[rax]
	movsx	eax, al
	mov	DWORD PTR -8[rbp], eax
	cmp	DWORD PTR -8[rbp], -1
	jne	.L2668
	mov	DWORD PTR -8[rbp], 4
.L2668:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 6[rax]
	movzx	eax, al
	sal	eax, 6
	mov	edx, eax
	mov	eax, DWORD PTR -8[rbp]
	sal	eax, 3
	add	edx, eax
	mov	eax, DWORD PTR -4[rbp]
	add	eax, edx
	mov	edi, eax
	call	g
.L2667:
	cmp	DWORD PTR -16[rbp], 64
	jne	.L2669
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	edi, eax
	call	g
	jmp	.L2671
.L2669:
	cmp	DWORD PTR -16[rbp], 128
	je	.L2670
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 4[rax]
	cmp	al, -1
	jne	.L2671
.L2670:
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 8
	mov	rdi, rax
	call	gen_expr32
.L2671:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE237:
	.size	asm_modrm, .-asm_modrm
	.section	.rodata
.LC166:
	.string	"incorrect number of operands"
.LC167:
	.string	"unknown opcode '%s'"
.LC168:
	.string	"cannot infer opcode suffix"
.LC169:
	.string	"invalid displacement"
.LC170:
	.string	"cannot relocate"
	.text
	.type	asm_opcode, @function
asm_opcode:
.LFB238:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 192
	mov	QWORD PTR -184[rbp], rdi
	mov	DWORD PTR -188[rbp], esi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rax, -80[rbp]
	mov	QWORD PTR -112[rbp], rax
	mov	DWORD PTR -156[rbp], 0
.L2676:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 59
	je	.L2673
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 10
	je	.L2673
	cmp	DWORD PTR -156[rbp], 2
	jle	.L2674
	lea	rdi, .LC166[rip]
	mov	eax, 0
	call	error
.L2674:
	mov	rdx, QWORD PTR -112[rbp]
	mov	rax, QWORD PTR -184[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	parse_operand
	add	QWORD PTR -112[rbp], 24
	add	DWORD PTR -156[rbp], 1
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 44
	jne	.L2783
	call	next
	jmp	.L2676
.L2783:
	nop
.L2673:
	mov	DWORD PTR -160[rbp], 0
	mov	DWORD PTR -152[rbp], 0
	lea	rax, asm_instrs[rip]
	mov	QWORD PTR -120[rbp], rax
	jmp	.L2677
.L2709:
	mov	DWORD PTR -152[rbp], 0
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR 4[rax]
	movzx	eax, ax
	and	eax, 2048
	test	eax, eax
	je	.L2678
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	edx, ax
	mov	eax, DWORD PTR -188[rbp]
	sub	eax, edx
	mov	DWORD PTR -164[rbp], eax
	mov	eax, DWORD PTR -164[rbp]
	cmp	eax, 47
	ja	.L2784
	mov	ecx, DWORD PTR -164[rbp]
	movsx	rax, ecx
	imul	rax, rax, 715827883
	shr	rax, 32
	mov	esi, ecx
	sar	esi, 31
	mov	edx, eax
	sub	edx, esi
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	add	eax, eax
	sub	ecx, eax
	mov	edx, ecx
	test	edx, edx
	je	.L2680
	jmp	.L2784
.L2678:
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR 4[rax]
	movzx	eax, ax
	and	eax, 512
	test	eax, eax
	je	.L2682
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	cmp	DWORD PTR -188[rbp], eax
	jl	.L2785
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	add	eax, 31
	cmp	DWORD PTR -188[rbp], eax
	jle	.L2786
	jmp	.L2785
.L2682:
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR 4[rax]
	movzx	eax, ax
	and	eax, 128
	test	eax, eax
	je	.L2686
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	cmp	DWORD PTR -188[rbp], eax
	jl	.L2787
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	add	eax, 27
	cmp	DWORD PTR -188[rbp], eax
	jle	.L2788
	jmp	.L2787
.L2686:
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR 4[rax]
	movzx	eax, ax
	and	eax, 64
	test	eax, eax
	je	.L2689
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	cmp	DWORD PTR -188[rbp], eax
	jl	.L2789
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	add	eax, 29
	cmp	DWORD PTR -188[rbp], eax
	jle	.L2680
	jmp	.L2789
.L2689:
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR 4[rax]
	movzx	eax, ax
	and	eax, 2
	test	eax, eax
	je	.L2691
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	cmp	DWORD PTR -188[rbp], eax
	jl	.L2790
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	add	eax, 3
	cmp	DWORD PTR -188[rbp], eax
	jg	.L2790
	jmp	.L2685
.L2786:
	nop
	jmp	.L2685
.L2788:
	nop
.L2685:
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	edx, ax
	mov	eax, DWORD PTR -188[rbp]
	sub	eax, edx
	and	eax, 3
	mov	DWORD PTR -152[rbp], eax
	jmp	.L2680
.L2691:
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR 4[rax]
	movzx	eax, ax
	and	eax, 4
	test	eax, eax
	je	.L2693
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	cmp	DWORD PTR -188[rbp], eax
	jl	.L2791
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	add	eax, 2
	cmp	DWORD PTR -188[rbp], eax
	jg	.L2791
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	edx, ax
	mov	eax, DWORD PTR -188[rbp]
	sub	eax, edx
	add	eax, 1
	mov	DWORD PTR -152[rbp], eax
	jmp	.L2680
.L2693:
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	cmp	DWORD PTR -188[rbp], eax
	jne	.L2792
.L2680:
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, BYTE PTR 6[rax]
	movzx	eax, al
	cmp	DWORD PTR -156[rbp], eax
	jne	.L2793
	mov	DWORD PTR -172[rbp], 0
	jmp	.L2697
.L2707:
	mov	rdx, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR -172[rbp]
	cdqe
	movzx	eax, BYTE PTR 7[rdx+rax]
	movzx	eax, al
	mov	DWORD PTR -148[rbp], eax
	mov	eax, DWORD PTR -148[rbp]
	and	eax, 31
	mov	DWORD PTR -144[rbp], eax
	cmp	DWORD PTR -144[rbp], 23
	je	.L2698
	cmp	DWORD PTR -144[rbp], 23
	jg	.L2699
	cmp	DWORD PTR -144[rbp], 22
	je	.L2700
	cmp	DWORD PTR -144[rbp], 22
	jg	.L2699
	cmp	DWORD PTR -144[rbp], 20
	je	.L2701
	cmp	DWORD PTR -144[rbp], 21
	je	.L2702
	jmp	.L2699
.L2701:
	mov	DWORD PTR -164[rbp], 13312
	jmp	.L2703
.L2702:
	mov	DWORD PTR -164[rbp], 7
	jmp	.L2703
.L2700:
	mov	DWORD PTR -164[rbp], 6
	jmp	.L2703
.L2698:
	mov	DWORD PTR -164[rbp], 12288
	jmp	.L2703
.L2699:
	mov	eax, DWORD PTR -144[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	mov	DWORD PTR -164[rbp], eax
	nop
.L2703:
	mov	eax, DWORD PTR -148[rbp]
	and	eax, 128
	test	eax, eax
	je	.L2704
	or	DWORD PTR -164[rbp], 1073741824
.L2704:
	mov	eax, DWORD PTR -172[rbp]
	cdqe
	mov	edx, DWORD PTR -164[rbp]
	mov	DWORD PTR -92[rbp+rax*4], edx
	mov	eax, DWORD PTR -172[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	add	rax, rbp
	sub	rax, 80
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -164[rbp]
	and	eax, edx
	test	eax, eax
	je	.L2794
	add	DWORD PTR -172[rbp], 1
.L2697:
	mov	eax, DWORD PTR -172[rbp]
	cmp	eax, DWORD PTR -156[rbp]
	jl	.L2707
	jmp	.L2708
.L2706:
.L2784:
	nop
	jmp	.L2681
.L2785:
	nop
	jmp	.L2681
.L2787:
	nop
	jmp	.L2681
.L2789:
	nop
	jmp	.L2681
.L2790:
	nop
	jmp	.L2681
.L2791:
	nop
	jmp	.L2681
.L2792:
	nop
	jmp	.L2681
.L2793:
	nop
	jmp	.L2681
.L2794:
	nop
.L2681:
	add	QWORD PTR -120[rbp], 10
.L2677:
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR [rax]
	test	ax, ax
	jne	.L2709
.L2708:
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR [rax]
	test	ax, ax
	jne	.L2710
	cmp	DWORD PTR -188[rbp], 843
	jle	.L2711
	cmp	DWORD PTR -188[rbp], 937
	jg	.L2711
	mov	eax, DWORD PTR -188[rbp]
	sub	eax, 844
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, op0_codes[rip]
	movzx	eax, WORD PTR [rdx+rax]
	movzx	eax, ax
	mov	DWORD PTR -140[rbp], eax
	mov	eax, DWORD PTR -140[rbp]
	and	eax, 65280
	test	eax, eax
	je	.L2712
	mov	eax, DWORD PTR -140[rbp]
	sar	eax, 8
	mov	edi, eax
	call	g
.L2712:
	mov	eax, DWORD PTR -140[rbp]
	mov	edi, eax
	call	g
	jmp	.L2672
.L2711:
	mov	eax, DWORD PTR -188[rbp]
	mov	esi, 0
	mov	edi, eax
	call	get_tok_str
	mov	rsi, rax
	lea	rdi, .LC167[rip]
	mov	eax, 0
	call	error
.L2710:
	cmp	DWORD PTR -152[rbp], 3
	jne	.L2714
	mov	DWORD PTR -172[rbp], 0
	jmp	.L2715
.L2718:
	mov	eax, DWORD PTR -172[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	add	rax, rbp
	sub	rax, 80
	mov	eax, DWORD PTR [rax]
	and	eax, 7
	test	eax, eax
	je	.L2716
	mov	eax, DWORD PTR -172[rbp]
	cdqe
	mov	eax, DWORD PTR -92[rbp+rax*4]
	and	eax, 196608
	test	eax, eax
	jne	.L2716
	mov	eax, DWORD PTR -172[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	add	rax, rbp
	sub	rax, 80
	mov	eax, DWORD PTR [rax]
	and	eax, 7
	mov	edx, eax
	lea	rax, reg_to_size[rip]
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	mov	DWORD PTR -152[rbp], eax
.L2716:
	add	DWORD PTR -172[rbp], 1
.L2715:
	cmp	DWORD PTR -152[rbp], 3
	jne	.L2717
	mov	eax, DWORD PTR -172[rbp]
	cmp	eax, DWORD PTR -156[rbp]
	jl	.L2718
.L2717:
	cmp	DWORD PTR -152[rbp], 3
	jne	.L2714
	cmp	DWORD PTR -188[rbp], 598
	je	.L2719
	cmp	DWORD PTR -188[rbp], 601
	jne	.L2720
.L2719:
	mov	eax, DWORD PTR -80[rbp]
	and	eax, 10496
	test	eax, eax
	je	.L2720
	mov	DWORD PTR -152[rbp], 2
	jmp	.L2714
.L2720:
	lea	rdi, .LC168[rip]
	mov	eax, 0
	call	error
.L2714:
	mov	eax, DWORD PTR -152[rbp]
	mov	DWORD PTR -136[rbp], eax
	cmp	DWORD PTR -152[rbp], 1
	je	.L2721
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR 4[rax]
	movzx	eax, ax
	and	eax, 256
	test	eax, eax
	je	.L2722
.L2721:
	mov	edi, 102
	call	g
	jmp	.L2723
.L2722:
	cmp	DWORD PTR -152[rbp], 2
	jne	.L2723
	mov	DWORD PTR -152[rbp], 1
.L2723:
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR 4[rax]
	movzx	eax, ax
	and	eax, 32
	test	eax, eax
	je	.L2724
	mov	edi, 155
	call	g
.L2724:
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR 2[rax]
	movzx	eax, ax
	mov	DWORD PTR -164[rbp], eax
	cmp	DWORD PTR -164[rbp], 105
	je	.L2725
	cmp	DWORD PTR -164[rbp], 105
	jne	.L2726
.L2725:
	mov	DWORD PTR -156[rbp], 3
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR -48[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	QWORD PTR -24[rbp], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -16[rbp], rax
	jmp	.L2727
.L2726:
	cmp	DWORD PTR -164[rbp], 205
	jne	.L2728
	mov	eax, DWORD PTR -72[rbp]
	cmp	eax, 3
	jne	.L2728
	mov	rax, QWORD PTR -64[rbp]
	test	rax, rax
	jne	.L2728
	sub	DWORD PTR -164[rbp], 1
	mov	DWORD PTR -156[rbp], 0
	jmp	.L2727
.L2728:
	cmp	DWORD PTR -164[rbp], 6
	je	.L2729
	cmp	DWORD PTR -164[rbp], 7
	jne	.L2730
.L2729:
	movzx	eax, BYTE PTR -76[rbp]
	cmp	al, 3
	jle	.L2731
	mov	eax, DWORD PTR -164[rbp]
	lea	edx, 3994[rax]
	movzx	eax, BYTE PTR -76[rbp]
	movsx	eax, al
	sub	eax, 4
	sal	eax, 3
	add	eax, edx
	mov	DWORD PTR -164[rbp], eax
	jmp	.L2732
.L2731:
	movzx	eax, BYTE PTR -76[rbp]
	movsx	eax, al
	sal	eax, 3
	add	DWORD PTR -164[rbp], eax
.L2732:
	mov	DWORD PTR -156[rbp], 0
	jmp	.L2727
.L2730:
	cmp	DWORD PTR -164[rbp], 5
	jg	.L2733
	mov	eax, DWORD PTR -188[rbp]
	sub	eax, 490
	sar	eax, 2
	sal	eax, 3
	add	DWORD PTR -164[rbp], eax
	jmp	.L2727
.L2733:
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR 4[rax]
	movzx	eax, ax
	and	eax, 2064
	cmp	eax, 2048
	jne	.L2727
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	edx, ax
	mov	eax, DWORD PTR -188[rbp]
	sub	eax, edx
	movsx	rdx, eax
	imul	rdx, rdx, 715827883
	shr	rdx, 32
	sar	eax, 31
	mov	ecx, eax
	mov	eax, edx
	sub	eax, ecx
	sal	eax, 3
	add	DWORD PTR -164[rbp], eax
.L2727:
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR 4[rax]
	movzx	eax, ax
	and	eax, 8
	test	eax, eax
	je	.L2734
	mov	DWORD PTR -172[rbp], 0
	jmp	.L2735
.L2738:
	mov	eax, DWORD PTR -172[rbp]
	cdqe
	mov	eax, DWORD PTR -92[rbp+rax*4]
	and	eax, 519
	test	eax, eax
	je	.L2736
	mov	eax, DWORD PTR -172[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	add	rax, rbp
	sub	rax, 76
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	add	DWORD PTR -164[rbp], eax
	jmp	.L2737
.L2736:
	add	DWORD PTR -172[rbp], 1
.L2735:
	mov	eax, DWORD PTR -172[rbp]
	cmp	eax, DWORD PTR -156[rbp]
	jl	.L2738
.L2737:
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR 2[rax]
	cmp	ax, 176
	jne	.L2734
	cmp	DWORD PTR -152[rbp], 0
	jle	.L2734
	add	DWORD PTR -164[rbp], 7
.L2734:
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR 4[rax]
	movzx	eax, ax
	and	eax, 2
	test	eax, eax
	je	.L2739
	mov	eax, DWORD PTR -152[rbp]
	add	DWORD PTR -164[rbp], eax
.L2739:
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR 4[rax]
	movzx	eax, ax
	and	eax, 64
	test	eax, eax
	je	.L2740
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	edx, ax
	mov	eax, DWORD PTR -188[rbp]
	sub	eax, edx
	cdqe
	lea	rdx, test_bits[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	eax, al
	add	DWORD PTR -164[rbp], eax
.L2740:
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR 4[rax]
	movzx	eax, ax
	and	eax, 1024
	test	eax, eax
	je	.L2741
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR -104[rbp], rax
	cmp	QWORD PTR -104[rbp], 0
	je	.L2795
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	eax, DWORD PTR 28[rax]
	cdqe
	cmp	rdx, rax
	jne	.L2796
	mov	edx, DWORD PTR -72[rbp]
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR 40[rax]
	add	edx, eax
	mov	rax, QWORD PTR ind[rip]
	mov	ecx, eax
	mov	eax, edx
	sub	eax, ecx
	sub	eax, 2
	mov	DWORD PTR -132[rbp], eax
	mov	eax, DWORD PTR -132[rbp]
	movsx	eax, al
	cmp	DWORD PTR -132[rbp], eax
	jne	.L2797
	mov	DWORD PTR -160[rbp], 1
	mov	eax, DWORD PTR -132[rbp]
	mov	DWORD PTR -72[rbp], eax
	jmp	.L2741
.L2795:
	nop
	jmp	.L2743
.L2796:
	nop
	jmp	.L2743
.L2797:
	nop
.L2743:
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR 4[rax]
	movzx	eax, ax
	and	eax, 1
	test	eax, eax
	je	.L2745
	cmp	DWORD PTR -164[rbp], 235
	jne	.L2746
	mov	DWORD PTR -164[rbp], 233
	jmp	.L2741
.L2746:
	add	DWORD PTR -164[rbp], 3856
	jmp	.L2741
.L2745:
	lea	rdi, .LC169[rip]
	mov	eax, 0
	call	error
.L2741:
	mov	eax, DWORD PTR -164[rbp]
	sar	eax, 8
	mov	DWORD PTR -128[rbp], eax
	cmp	DWORD PTR -128[rbp], 0
	je	.L2747
	mov	eax, DWORD PTR -128[rbp]
	mov	edi, eax
	call	g
.L2747:
	mov	eax, DWORD PTR -164[rbp]
	mov	edi, eax
	call	g
	mov	DWORD PTR -124[rbp], 0
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR 4[rax]
	movzx	eax, ax
	and	eax, 128
	test	eax, eax
	je	.L2748
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	edx, ax
	mov	eax, DWORD PTR -188[rbp]
	sub	eax, edx
	sar	eax, 2
	mov	DWORD PTR -168[rbp], eax
	cmp	DWORD PTR -168[rbp], 6
	jne	.L2749
	mov	DWORD PTR -168[rbp], 7
	jmp	.L2749
.L2748:
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR 4[rax]
	movzx	eax, ax
	and	eax, 512
	test	eax, eax
	je	.L2750
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	edx, ax
	mov	eax, DWORD PTR -188[rbp]
	sub	eax, edx
	sar	eax, 2
	mov	DWORD PTR -168[rbp], eax
	jmp	.L2749
.L2750:
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR 4[rax]
	movzx	eax, ax
	and	eax, 2048
	test	eax, eax
	je	.L2751
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	edx, ax
	mov	eax, DWORD PTR -188[rbp]
	sub	eax, edx
	movsx	rdx, eax
	imul	rdx, rdx, 715827883
	shr	rdx, 32
	sar	eax, 31
	mov	ecx, eax
	mov	eax, edx
	sub	eax, ecx
	mov	DWORD PTR -168[rbp], eax
	jmp	.L2749
.L2751:
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR 4[rax]
	shr	ax, 13
	movzx	eax, ax
	and	eax, 7
	mov	DWORD PTR -168[rbp], eax
.L2749:
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR 4[rax]
	movzx	eax, ax
	and	eax, 16
	test	eax, eax
	je	.L2752
	mov	DWORD PTR -172[rbp], 0
	jmp	.L2753
.L2756:
	mov	eax, DWORD PTR -172[rbp]
	cdqe
	mov	eax, DWORD PTR -92[rbp+rax*4]
	and	eax, 1073741824
	test	eax, eax
	jne	.L2798
	add	DWORD PTR -172[rbp], 1
.L2753:
	mov	eax, DWORD PTR -172[rbp]
	cmp	eax, DWORD PTR -156[rbp]
	jl	.L2756
	mov	DWORD PTR -172[rbp], 0
	jmp	.L2757
.L2759:
	mov	eax, DWORD PTR -172[rbp]
	cdqe
	mov	eax, DWORD PTR -92[rbp+rax*4]
	and	eax, 524319
	test	eax, eax
	jne	.L2799
	add	DWORD PTR -172[rbp], 1
.L2757:
	mov	eax, DWORD PTR -172[rbp]
	cmp	eax, DWORD PTR -156[rbp]
	jl	.L2759
	jmp	.L2755
.L2798:
	nop
	jmp	.L2755
.L2799:
	nop
.L2755:
	mov	eax, DWORD PTR -172[rbp]
	mov	DWORD PTR -124[rbp], eax
	mov	DWORD PTR -172[rbp], 0
	jmp	.L2760
.L2763:
	mov	eax, DWORD PTR -172[rbp]
	cdqe
	mov	eax, DWORD PTR -92[rbp+rax*4]
	mov	DWORD PTR -164[rbp], eax
	mov	eax, DWORD PTR -172[rbp]
	cmp	eax, DWORD PTR -124[rbp]
	je	.L2761
	mov	eax, DWORD PTR -164[rbp]
	and	eax, 511
	test	eax, eax
	je	.L2761
	mov	eax, DWORD PTR -172[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	add	rax, rbp
	sub	rax, 76
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -168[rbp], eax
	jmp	.L2762
.L2761:
	add	DWORD PTR -172[rbp], 1
.L2760:
	mov	eax, DWORD PTR -172[rbp]
	cmp	eax, DWORD PTR -156[rbp]
	jl	.L2763
.L2762:
	lea	rcx, -80[rbp]
	mov	eax, DWORD PTR -124[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	lea	rdx, [rcx+rax]
	mov	eax, DWORD PTR -168[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	asm_modrm
.L2752:
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR 2[rax]
	cmp	ax, 154
	je	.L2764
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR 2[rax]
	cmp	ax, 234
	jne	.L2765
.L2764:
	lea	rax, -80[rbp]
	add	rax, 32
	mov	rdi, rax
	call	gen_expr32
	mov	rax, QWORD PTR -64[rbp]
	test	rax, rax
	je	.L2766
	lea	rdi, .LC170[rip]
	mov	eax, 0
	call	error
.L2766:
	mov	eax, DWORD PTR -72[rbp]
	mov	edi, eax
	call	gen_le16
	jmp	.L2672
.L2765:
	mov	DWORD PTR -172[rbp], 0
	jmp	.L2768
.L2781:
	mov	eax, DWORD PTR -172[rbp]
	cdqe
	mov	eax, DWORD PTR -92[rbp+rax*4]
	mov	DWORD PTR -164[rbp], eax
	mov	eax, DWORD PTR -164[rbp]
	and	eax, 277504
	test	eax, eax
	je	.L2769
	cmp	DWORD PTR -164[rbp], 13312
	je	.L2770
	cmp	DWORD PTR -164[rbp], 12288
	jne	.L2771
.L2770:
	cmp	DWORD PTR -136[rbp], 0
	jne	.L2772
	mov	DWORD PTR -164[rbp], 1024
	jmp	.L2771
.L2772:
	cmp	DWORD PTR -136[rbp], 1
	jne	.L2773
	mov	DWORD PTR -164[rbp], 4096
	jmp	.L2771
.L2773:
	mov	DWORD PTR -164[rbp], 8192
.L2771:
	mov	eax, DWORD PTR -164[rbp]
	and	eax, 3072
	test	eax, eax
	je	.L2774
	mov	eax, DWORD PTR -172[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	add	rax, rbp
	sub	rax, 64
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L2800
	mov	eax, DWORD PTR -172[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	add	rax, rbp
	sub	rax, 72
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	g
	jmp	.L2769
.L2774:
	mov	eax, DWORD PTR -164[rbp]
	and	eax, 4096
	test	eax, eax
	je	.L2777
	mov	eax, DWORD PTR -172[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	add	rax, rbp
	sub	rax, 64
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L2778
	jmp	.L2776
.L2800:
	nop
.L2776:
	lea	rdi, .LC170[rip]
	mov	eax, 0
	call	error
.L2778:
	mov	eax, DWORD PTR -172[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	add	rax, rbp
	sub	rax, 72
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	gen_le16
	jmp	.L2769
.L2777:
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, WORD PTR 4[rax]
	movzx	eax, ax
	and	eax, 1025
	test	eax, eax
	je	.L2779
	cmp	DWORD PTR -160[rbp], 0
	je	.L2780
	mov	eax, DWORD PTR -172[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	add	rax, rbp
	sub	rax, 72
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	g
	jmp	.L2769
.L2780:
	lea	rcx, -80[rbp]
	mov	eax, DWORD PTR -172[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 8
	mov	rdi, rax
	call	gen_disp32
	jmp	.L2769
.L2779:
	lea	rcx, -80[rbp]
	mov	eax, DWORD PTR -172[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	add	rax, 8
	mov	rdi, rax
	call	gen_expr32
.L2769:
	add	DWORD PTR -172[rbp], 1
.L2768:
	mov	eax, DWORD PTR -172[rbp]
	cmp	eax, DWORD PTR -156[rbp]
	jl	.L2781
.L2672:
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2782
	call	__stack_chk_fail@PLT
.L2782:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE238:
	.size	asm_opcode, .-asm_opcode
	.section	.rodata
.LC171:
	.string	"unknown constraint '%c'"
	.text
	.type	constraint_priority, @function
constraint_priority:
.LFB239:
	.cfi_startproc
	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 -12[rbp], 0
.L2813:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	je	.L2816
	add	QWORD PTR -24[rbp], 1
	mov	eax, DWORD PTR -4[rbp]
	sub	eax, 65
	cmp	eax, 49
	ja	.L2804
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L2806[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L2806[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L2806:
	.long	.L2810-.L2806
	.long	.L2804-.L2806
	.long	.L2804-.L2806
	.long	.L2809-.L2806
	.long	.L2804-.L2806
	.long	.L2804-.L2806
	.long	.L2804-.L2806
	.long	.L2804-.L2806
	.long	.L2808-.L2806
	.long	.L2804-.L2806
	.long	.L2804-.L2806
	.long	.L2804-.L2806
	.long	.L2808-.L2806
	.long	.L2808-.L2806
	.long	.L2804-.L2806
	.long	.L2804-.L2806
	.long	.L2804-.L2806
	.long	.L2804-.L2806
	.long	.L2809-.L2806
	.long	.L2804-.L2806
	.long	.L2804-.L2806
	.long	.L2804-.L2806
	.long	.L2804-.L2806
	.long	.L2804-.L2806
	.long	.L2804-.L2806
	.long	.L2804-.L2806
	.long	.L2804-.L2806
	.long	.L2804-.L2806
	.long	.L2804-.L2806
	.long	.L2804-.L2806
	.long	.L2804-.L2806
	.long	.L2804-.L2806
	.long	.L2809-.L2806
	.long	.L2809-.L2806
	.long	.L2809-.L2806
	.long	.L2809-.L2806
	.long	.L2804-.L2806
	.long	.L2804-.L2806
	.long	.L2808-.L2806
	.long	.L2804-.L2806
	.long	.L2808-.L2806
	.long	.L2804-.L2806
	.long	.L2804-.L2806
	.long	.L2804-.L2806
	.long	.L2808-.L2806
	.long	.L2804-.L2806
	.long	.L2804-.L2806
	.long	.L2804-.L2806
	.long	.L2807-.L2806
	.long	.L2805-.L2806
	.text
.L2810:
	mov	DWORD PTR -8[rbp], 0
	jmp	.L2811
.L2809:
	mov	DWORD PTR -8[rbp], 1
	jmp	.L2811
.L2807:
	mov	DWORD PTR -8[rbp], 2
	jmp	.L2811
.L2805:
	mov	DWORD PTR -8[rbp], 3
	jmp	.L2811
.L2808:
	mov	DWORD PTR -8[rbp], 4
	jmp	.L2811
.L2804:
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, eax
	lea	rdi, .LC171[rip]
	mov	eax, 0
	call	error
	mov	DWORD PTR -8[rbp], 0
.L2811:
	mov	eax, DWORD PTR -8[rbp]
	cmp	eax, DWORD PTR -12[rbp]
	jle	.L2813
	mov	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR -12[rbp], eax
	jmp	.L2813
.L2816:
	nop
	mov	eax, DWORD PTR -12[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE239:
	.size	constraint_priority, .-constraint_priority
	.type	skip_constraint_modifiers, @function
skip_constraint_modifiers:
.LFB240:
	.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
	jmp	.L2818
.L2819:
	add	QWORD PTR -8[rbp], 1
.L2818:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 61
	je	.L2819
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 38
	je	.L2819
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 43
	je	.L2819
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 37
	je	.L2819
	mov	rax, QWORD PTR -8[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE240:
	.size	skip_constraint_modifiers, .-skip_constraint_modifiers
	.section	.rodata
	.align 8
.LC172:
	.string	"invalid reference in constraint %d ('%s')"
	.align 8
.LC173:
	.string	"cannot reference twice the same operand"
	.align 8
.LC174:
	.string	"'%c' modifier can only be applied to outputs"
	.align 8
.LC175:
	.string	"asm constraint %d ('%s') could not be satisfied"
	.align 8
.LC176:
	.string	"could not find free output register for reloading"
	.text
	.type	asm_compute_constraints, @function
asm_compute_constraints:
.LFB241:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 240
	mov	QWORD PTR -216[rbp], rdi
	mov	DWORD PTR -220[rbp], esi
	mov	DWORD PTR -224[rbp], edx
	mov	QWORD PTR -232[rbp], rcx
	mov	QWORD PTR -240[rbp], r8
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -196[rbp], 0
	jmp	.L2822
.L2823:
	mov	eax, DWORD PTR -196[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -216[rbp]
	add	rax, rdx
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	mov	DWORD PTR 44[rax], -1
	mov	rax, QWORD PTR -152[rbp]
	mov	DWORD PTR 40[rax], -1
	mov	rax, QWORD PTR -152[rbp]
	mov	DWORD PTR 52[rax], -1
	mov	rax, QWORD PTR -152[rbp]
	mov	DWORD PTR 60[rax], 0
	mov	rax, QWORD PTR -152[rbp]
	mov	DWORD PTR 64[rax], 0
	add	DWORD PTR -196[rbp], 1
.L2822:
	mov	eax, DWORD PTR -196[rbp]
	cmp	eax, DWORD PTR -220[rbp]
	jl	.L2823
	mov	DWORD PTR -196[rbp], 0
	jmp	.L2824
.L2831:
	mov	eax, DWORD PTR -196[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -216[rbp]
	add	rax, rdx
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	mov	rdi, rax
	call	skip_constraint_modifiers
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	edi, eax
	call	isnum
	test	eax, eax
	jne	.L2825
	mov	rax, QWORD PTR -160[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 91
	jne	.L2826
.L2825:
	mov	rdx, QWORD PTR -160[rbp]
	mov	esi, DWORD PTR -220[rbp]
	mov	rax, QWORD PTR -216[rbp]
	mov	ecx, 0
	mov	rdi, rax
	call	find_constraint
	mov	DWORD PTR -164[rbp], eax
	mov	edx, DWORD PTR -164[rbp]
	mov	eax, DWORD PTR -196[rbp]
	cmp	edx, eax
	jnb	.L2827
	mov	eax, DWORD PTR -196[rbp]
	cmp	eax, DWORD PTR -224[rbp]
	jge	.L2828
.L2827:
	mov	rdx, QWORD PTR -160[rbp]
	mov	eax, DWORD PTR -196[rbp]
	mov	esi, eax
	lea	rdi, .LC172[rip]
	mov	eax, 0
	call	error
.L2828:
	mov	rax, QWORD PTR -152[rbp]
	mov	edx, DWORD PTR -164[rbp]
	mov	DWORD PTR 40[rax], edx
	mov	eax, DWORD PTR -164[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -216[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR 44[rax]
	test	eax, eax
	js	.L2829
	lea	rdi, .LC173[rip]
	mov	eax, 0
	call	error
.L2829:
	mov	eax, DWORD PTR -164[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -216[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -196[rbp]
	mov	DWORD PTR 44[rdx], eax
	mov	rax, QWORD PTR -152[rbp]
	mov	DWORD PTR 48[rax], 5
	jmp	.L2830
.L2826:
	mov	rax, QWORD PTR -160[rbp]
	mov	rdi, rax
	call	constraint_priority
	mov	rdx, QWORD PTR -152[rbp]
	mov	DWORD PTR 48[rdx], eax
.L2830:
	add	DWORD PTR -196[rbp], 1
.L2824:
	mov	eax, DWORD PTR -196[rbp]
	cmp	eax, DWORD PTR -220[rbp]
	jl	.L2831
	mov	DWORD PTR -196[rbp], 0
	jmp	.L2832
.L2833:
	mov	eax, DWORD PTR -196[rbp]
	cdqe
	mov	edx, DWORD PTR -196[rbp]
	mov	DWORD PTR -144[rbp+rax*4], edx
	add	DWORD PTR -196[rbp], 1
.L2832:
	mov	eax, DWORD PTR -196[rbp]
	cmp	eax, DWORD PTR -220[rbp]
	jl	.L2833
	mov	DWORD PTR -196[rbp], 0
	jmp	.L2834
.L2838:
	mov	eax, DWORD PTR -196[rbp]
	add	eax, 1
	mov	DWORD PTR -192[rbp], eax
	jmp	.L2835
.L2837:
	mov	eax, DWORD PTR -196[rbp]
	cdqe
	mov	eax, DWORD PTR -144[rbp+rax*4]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -216[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR 48[rax]
	mov	DWORD PTR -176[rbp], eax
	mov	eax, DWORD PTR -192[rbp]
	cdqe
	mov	eax, DWORD PTR -144[rbp+rax*4]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -216[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR 48[rax]
	mov	DWORD PTR -172[rbp], eax
	mov	eax, DWORD PTR -172[rbp]
	cmp	eax, DWORD PTR -176[rbp]
	jge	.L2836
	mov	eax, DWORD PTR -196[rbp]
	cdqe
	mov	eax, DWORD PTR -144[rbp+rax*4]
	mov	DWORD PTR -168[rbp], eax
	mov	eax, DWORD PTR -192[rbp]
	cdqe
	mov	edx, DWORD PTR -144[rbp+rax*4]
	mov	eax, DWORD PTR -196[rbp]
	cdqe
	mov	DWORD PTR -144[rbp+rax*4], edx
	mov	eax, DWORD PTR -192[rbp]
	cdqe
	mov	edx, DWORD PTR -168[rbp]
	mov	DWORD PTR -144[rbp+rax*4], edx
.L2836:
	add	DWORD PTR -192[rbp], 1
.L2835:
	mov	eax, DWORD PTR -192[rbp]
	cmp	eax, DWORD PTR -220[rbp]
	jl	.L2837
	add	DWORD PTR -196[rbp], 1
.L2834:
	mov	eax, DWORD PTR -220[rbp]
	sub	eax, 1
	cmp	DWORD PTR -196[rbp], eax
	jl	.L2838
	mov	DWORD PTR -196[rbp], 0
	jmp	.L2839
.L2842:
	mov	eax, DWORD PTR -196[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -232[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L2840
	mov	eax, DWORD PTR -196[rbp]
	cdqe
	mov	BYTE PTR -16[rbp+rax], 3
	jmp	.L2841
.L2840:
	mov	eax, DWORD PTR -196[rbp]
	cdqe
	mov	BYTE PTR -16[rbp+rax], 0
.L2841:
	add	DWORD PTR -196[rbp], 1
.L2839:
	cmp	DWORD PTR -196[rbp], 7
	jle	.L2842
	mov	BYTE PTR -12[rbp], 3
	mov	BYTE PTR -11[rbp], 3
	mov	DWORD PTR -196[rbp], 0
	jmp	.L2843
.L2888:
	mov	eax, DWORD PTR -196[rbp]
	cdqe
	mov	eax, DWORD PTR -144[rbp+rax*4]
	mov	DWORD PTR -192[rbp], eax
	mov	eax, DWORD PTR -192[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -216[rbp]
	add	rax, rdx
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR 40[rax]
	test	eax, eax
	jns	.L2899
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR 44[rax]
	test	eax, eax
	js	.L2846
	mov	DWORD PTR -184[rbp], 3
	jmp	.L2866
.L2846:
	mov	eax, DWORD PTR -192[rbp]
	cmp	eax, DWORD PTR -224[rbp]
	jge	.L2848
	mov	DWORD PTR -184[rbp], 1
	jmp	.L2866
.L2848:
	mov	DWORD PTR -184[rbp], 2
.L2847:
.L2866:
	mov	rax, QWORD PTR -160[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -160[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -180[rbp], eax
	mov	eax, DWORD PTR -180[rbp]
	sub	eax, 38
	cmp	eax, 76
	ja	.L2849
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L2851[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L2851[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L2851:
	.long	.L2865-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2864-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2866-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2862-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2861-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2860-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2860-.L2851
	.long	.L2860-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2859-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2858-.L2851
	.long	.L2857-.L2851
	.long	.L2856-.L2851
	.long	.L2855-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2853-.L2851
	.long	.L2849-.L2851
	.long	.L2854-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2853-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2849-.L2851
	.long	.L2852-.L2851
	.long	.L2850-.L2851
	.text
.L2864:
	mov	rax, QWORD PTR -152[rbp]
	mov	DWORD PTR 64[rax], 1
.L2865:
	mov	eax, DWORD PTR -192[rbp]
	cmp	eax, DWORD PTR -224[rbp]
	jl	.L2867
	mov	eax, DWORD PTR -180[rbp]
	mov	esi, eax
	lea	rdi, .LC174[rip]
	mov	eax, 0
	call	error
.L2867:
	mov	DWORD PTR -184[rbp], 3
	jmp	.L2866
.L2862:
	movzx	eax, BYTE PTR -16[rbp]
	movzx	eax, al
	and	eax, DWORD PTR -184[rbp]
	test	eax, eax
	jne	.L2866
	movzx	eax, BYTE PTR -14[rbp]
	movzx	eax, al
	and	eax, DWORD PTR -184[rbp]
	test	eax, eax
	je	.L2869
	jmp	.L2866
.L2869:
	mov	rax, QWORD PTR -152[rbp]
	mov	DWORD PTR 56[rax], 1
	mov	rax, QWORD PTR -152[rbp]
	mov	DWORD PTR 52[rax], 0
	movzx	eax, BYTE PTR -16[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -184[rbp]
	or	eax, edx
	mov	BYTE PTR -16[rbp], al
	movzx	eax, BYTE PTR -14[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -184[rbp]
	or	eax, edx
	mov	BYTE PTR -14[rbp], al
	jmp	.L2870
.L2858:
	mov	DWORD PTR -188[rbp], 0
	jmp	.L2871
.L2857:
	mov	DWORD PTR -188[rbp], 3
	jmp	.L2871
.L2856:
	mov	DWORD PTR -188[rbp], 1
	jmp	.L2871
.L2855:
	mov	DWORD PTR -188[rbp], 2
	jmp	.L2871
.L2859:
	mov	DWORD PTR -188[rbp], 6
	jmp	.L2871
.L2861:
	mov	DWORD PTR -188[rbp], 7
.L2871:
	mov	eax, DWORD PTR -188[rbp]
	cdqe
	movzx	eax, BYTE PTR -16[rbp+rax]
	movzx	eax, al
	and	eax, DWORD PTR -184[rbp]
	test	eax, eax
	je	.L2900
	jmp	.L2866
.L2852:
	mov	DWORD PTR -188[rbp], 0
	jmp	.L2874
.L2876:
	mov	eax, DWORD PTR -188[rbp]
	cdqe
	movzx	eax, BYTE PTR -16[rbp+rax]
	movzx	eax, al
	and	eax, DWORD PTR -184[rbp]
	test	eax, eax
	je	.L2901
	add	DWORD PTR -188[rbp], 1
.L2874:
	cmp	DWORD PTR -188[rbp], 3
	jle	.L2876
	jmp	.L2866
.L2850:
	mov	DWORD PTR -188[rbp], 0
	jmp	.L2877
.L2879:
	mov	eax, DWORD PTR -188[rbp]
	cdqe
	movzx	eax, BYTE PTR -16[rbp+rax]
	movzx	eax, al
	and	eax, DWORD PTR -184[rbp]
	test	eax, eax
	je	.L2902
	add	DWORD PTR -188[rbp], 1
.L2877:
	cmp	DWORD PTR -188[rbp], 7
	jle	.L2879
	jmp	.L2866
.L2900:
	nop
	jmp	.L2873
.L2901:
	nop
	jmp	.L2873
.L2902:
	nop
.L2873:
	mov	rax, QWORD PTR -152[rbp]
	mov	DWORD PTR 56[rax], 0
	mov	rax, QWORD PTR -152[rbp]
	mov	edx, DWORD PTR -188[rbp]
	mov	DWORD PTR 52[rax], edx
	mov	eax, DWORD PTR -188[rbp]
	cdqe
	movzx	eax, BYTE PTR -16[rbp+rax]
	mov	edx, eax
	mov	eax, DWORD PTR -184[rbp]
	or	eax, edx
	mov	edx, eax
	mov	eax, DWORD PTR -188[rbp]
	cdqe
	mov	BYTE PTR -16[rbp+rax], dl
	jmp	.L2870
.L2854:
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR 32[rax]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 511
	cmp	eax, 240
	je	.L2903
	jmp	.L2866
.L2860:
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR 32[rax]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 1023
	cmp	eax, 240
	je	.L2904
	jmp	.L2866
.L2853:
	mov	eax, DWORD PTR -192[rbp]
	cmp	eax, DWORD PTR -224[rbp]
	jl	.L2882
	cmp	DWORD PTR -180[rbp], 109
	jne	.L2905
.L2882:
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR 32[rax]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	movzx	eax, al
	cmp	eax, 241
	jne	.L2905
	mov	DWORD PTR -188[rbp], 0
	jmp	.L2884
.L2887:
	mov	eax, DWORD PTR -188[rbp]
	cdqe
	movzx	eax, BYTE PTR -16[rbp+rax]
	movzx	eax, al
	and	eax, 2
	test	eax, eax
	je	.L2906
	add	DWORD PTR -188[rbp], 1
.L2884:
	cmp	DWORD PTR -188[rbp], 7
	jle	.L2887
	jmp	.L2866
.L2906:
	nop
.L2886:
	mov	eax, DWORD PTR -188[rbp]
	cdqe
	movzx	eax, BYTE PTR -16[rbp+rax]
	or	eax, 2
	mov	edx, eax
	mov	eax, DWORD PTR -188[rbp]
	cdqe
	mov	BYTE PTR -16[rbp+rax], dl
	mov	rax, QWORD PTR -152[rbp]
	mov	edx, DWORD PTR -188[rbp]
	mov	DWORD PTR 52[rax], edx
	mov	rax, QWORD PTR -152[rbp]
	mov	DWORD PTR 60[rax], 1
	jmp	.L2905
.L2849:
	mov	rax, QWORD PTR -152[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -192[rbp]
	mov	esi, eax
	lea	rdi, .LC175[rip]
	mov	eax, 0
	call	error
	jmp	.L2870
.L2903:
	nop
	jmp	.L2870
.L2904:
	nop
	jmp	.L2870
.L2905:
	nop
.L2870:
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR 44[rax]
	test	eax, eax
	js	.L2845
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR 44[rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -216[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR 52[rax]
	mov	DWORD PTR 52[rdx], eax
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR 44[rax]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -216[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR 56[rax]
	mov	DWORD PTR 56[rdx], eax
	jmp	.L2845
.L2899:
	nop
.L2845:
	add	DWORD PTR -196[rbp], 1
.L2843:
	mov	eax, DWORD PTR -196[rbp]
	cmp	eax, DWORD PTR -220[rbp]
	jl	.L2888
	mov	rax, QWORD PTR -240[rbp]
	mov	DWORD PTR [rax], -1
	mov	DWORD PTR -196[rbp], 0
	jmp	.L2889
.L2896:
	mov	eax, DWORD PTR -196[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -216[rbp]
	add	rax, rdx
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR 52[rax]
	test	eax, eax
	js	.L2890
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR 32[rax]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	movzx	eax, al
	cmp	eax, 241
	jne	.L2890
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR 60[rax]
	test	eax, eax
	jne	.L2890
	mov	DWORD PTR -188[rbp], 0
	jmp	.L2891
.L2894:
	mov	eax, DWORD PTR -188[rbp]
	cdqe
	movzx	eax, BYTE PTR -16[rbp+rax]
	movzx	eax, al
	and	eax, 1
	test	eax, eax
	je	.L2907
	add	DWORD PTR -188[rbp], 1
.L2891:
	cmp	DWORD PTR -188[rbp], 7
	jle	.L2894
	lea	rdi, .LC176[rip]
	mov	eax, 0
	call	error
	jmp	.L2893
.L2907:
	nop
.L2893:
	mov	rax, QWORD PTR -240[rbp]
	mov	edx, DWORD PTR -188[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L2895
.L2890:
	add	DWORD PTR -196[rbp], 1
.L2889:
	mov	eax, DWORD PTR -196[rbp]
	cmp	eax, DWORD PTR -220[rbp]
	jl	.L2896
.L2895:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2897
	call	__stack_chk_fail@PLT
.L2897:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE241:
	.size	asm_compute_constraints, .-asm_compute_constraints
	.section	.rodata
.LC177:
	.string	"%d(%%ebp)"
.LC178:
	.string	"internal compiler error"
.LC179:
	.string	"(%%%s)"
.LC180:
	.string	"cannot use byte register"
.LC181:
	.string	"%%%s"
	.text
	.type	subst_asm_operand, @function
subst_asm_operand:
.LFB242:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	add	rsp, -128
	mov	QWORD PTR -104[rbp], rdi
	mov	QWORD PTR -112[rbp], rsi
	mov	DWORD PTR -116[rbp], edx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -112[rbp]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	mov	DWORD PTR -88[rbp], eax
	mov	eax, DWORD PTR -88[rbp]
	movzx	eax, al
	cmp	eax, 240
	jne	.L2909
	mov	eax, DWORD PTR -88[rbp]
	and	eax, 256
	test	eax, eax
	jne	.L2910
	cmp	DWORD PTR -116[rbp], 99
	je	.L2910
	cmp	DWORD PTR -116[rbp], 110
	je	.L2910
	mov	rax, QWORD PTR -104[rbp]
	mov	esi, 36
	mov	rdi, rax
	call	cstr_ccat
.L2910:
	mov	eax, DWORD PTR -88[rbp]
	and	eax, 512
	test	eax, eax
	je	.L2911
	mov	rax, QWORD PTR -112[rbp]
	mov	rax, QWORD PTR 48[rax]
	mov	rax, QWORD PTR [rax]
	mov	esi, 0
	mov	edi, eax
	call	get_tok_str
	mov	rdx, rax
	mov	rax, QWORD PTR -104[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	cstr_cat
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR 32[rax]
	test	eax, eax
	je	.L2935
	mov	rax, QWORD PTR -104[rbp]
	mov	esi, 43
	mov	rdi, rax
	call	cstr_ccat
.L2911:
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR 32[rax]
	mov	DWORD PTR -84[rbp], eax
	cmp	DWORD PTR -116[rbp], 110
	jne	.L2914
	neg	DWORD PTR -84[rbp]
.L2914:
	mov	rax, QWORD PTR -112[rbp]
	mov	edx, DWORD PTR 32[rax]
	lea	rax, -80[rbp]
	mov	ecx, edx
	lea	rdx, .LC60[rip]
	mov	esi, 64
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	lea	rdx, -80[rbp]
	mov	rax, QWORD PTR -104[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	cstr_cat
	jmp	.L2908
.L2909:
	mov	eax, DWORD PTR -88[rbp]
	movzx	eax, al
	cmp	eax, 242
	jne	.L2916
	mov	rax, QWORD PTR -112[rbp]
	mov	edx, DWORD PTR 32[rax]
	lea	rax, -80[rbp]
	mov	ecx, edx
	lea	rdx, .LC177[rip]
	mov	esi, 64
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	lea	rdx, -80[rbp]
	mov	rax, QWORD PTR -104[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	cstr_cat
	jmp	.L2908
.L2916:
	mov	eax, DWORD PTR -88[rbp]
	and	eax, 256
	test	eax, eax
	je	.L2917
	mov	eax, DWORD PTR -88[rbp]
	movzx	eax, al
	mov	DWORD PTR -96[rbp], eax
	cmp	DWORD PTR -96[rbp], 239
	jle	.L2918
	lea	rdi, .LC178[rip]
	mov	eax, 0
	call	error
.L2918:
	mov	eax, DWORD PTR -96[rbp]
	add	eax, 423
	mov	esi, 0
	mov	edi, eax
	call	get_tok_str
	mov	rdx, rax
	lea	rax, -80[rbp]
	mov	rcx, rdx
	lea	rdx, .LC179[rip]
	mov	esi, 64
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	lea	rdx, -80[rbp]
	mov	rax, QWORD PTR -104[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	cstr_cat
	jmp	.L2908
.L2917:
	mov	eax, DWORD PTR -88[rbp]
	movzx	eax, al
	mov	DWORD PTR -96[rbp], eax
	cmp	DWORD PTR -96[rbp], 239
	jle	.L2919
	lea	rdi, .LC178[rip]
	mov	eax, 0
	call	error
.L2919:
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 1
	jne	.L2920
	mov	DWORD PTR -92[rbp], 1
	jmp	.L2921
.L2920:
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 15
	cmp	eax, 2
	jne	.L2922
	mov	DWORD PTR -92[rbp], 2
	jmp	.L2921
.L2922:
	mov	DWORD PTR -92[rbp], 4
.L2921:
	cmp	DWORD PTR -92[rbp], 1
	jne	.L2923
	cmp	DWORD PTR -96[rbp], 3
	jle	.L2923
	mov	DWORD PTR -92[rbp], 4
.L2923:
	cmp	DWORD PTR -116[rbp], 98
	jne	.L2924
	cmp	DWORD PTR -96[rbp], 3
	jle	.L2925
	lea	rdi, .LC180[rip]
	mov	eax, 0
	call	error
.L2925:
	mov	DWORD PTR -92[rbp], 1
	jmp	.L2926
.L2924:
	cmp	DWORD PTR -116[rbp], 104
	jne	.L2927
	cmp	DWORD PTR -96[rbp], 3
	jle	.L2928
	lea	rdi, .LC180[rip]
	mov	eax, 0
	call	error
.L2928:
	mov	DWORD PTR -92[rbp], -1
	jmp	.L2926
.L2927:
	cmp	DWORD PTR -116[rbp], 119
	jne	.L2926
	mov	DWORD PTR -92[rbp], 2
.L2926:
	cmp	DWORD PTR -92[rbp], 2
	je	.L2929
	cmp	DWORD PTR -92[rbp], 2
	jg	.L2930
	cmp	DWORD PTR -92[rbp], -1
	je	.L2931
	cmp	DWORD PTR -92[rbp], 1
	je	.L2932
	jmp	.L2930
.L2931:
	add	DWORD PTR -96[rbp], 411
	jmp	.L2933
.L2932:
	add	DWORD PTR -96[rbp], 407
	jmp	.L2933
.L2929:
	add	DWORD PTR -96[rbp], 415
	jmp	.L2933
.L2930:
	add	DWORD PTR -96[rbp], 423
	nop
.L2933:
	mov	eax, DWORD PTR -96[rbp]
	mov	esi, 0
	mov	edi, eax
	call	get_tok_str
	mov	rdx, rax
	lea	rax, -80[rbp]
	mov	rcx, rdx
	lea	rdx, .LC181[rip]
	mov	esi, 64
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	lea	rdx, -80[rbp]
	mov	rax, QWORD PTR -104[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	cstr_cat
	jmp	.L2908
.L2935:
	nop
.L2908:
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2934
	call	__stack_chk_fail@PLT
.L2934:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE242:
	.size	subst_asm_operand, .-subst_asm_operand
	.type	asm_gen_code, @function
asm_gen_code:
.LFB243:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 136
	.cfi_offset 3, -24
	mov	QWORD PTR -120[rbp], rdi
	mov	DWORD PTR -124[rbp], esi
	mov	DWORD PTR -128[rbp], edx
	mov	DWORD PTR -132[rbp], ecx
	mov	QWORD PTR -144[rbp], r8
	mov	DWORD PTR -136[rbp], r9d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -32[rbp], rax
	mov	DWORD PTR -112[rbp], 0
	jmp	.L2937
.L2939:
	mov	eax, DWORD PTR -112[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -120[rbp]
	add	rax, rdx
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 52[rax]
	test	eax, eax
	js	.L2938
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 52[rax]
	cdqe
	mov	BYTE PTR -32[rbp+rax], 1
.L2938:
	add	DWORD PTR -112[rbp], 1
.L2937:
	mov	eax, DWORD PTR -112[rbp]
	cmp	eax, DWORD PTR -124[rbp]
	jl	.L2939
	cmp	DWORD PTR -132[rbp], 0
	jne	.L2940
	mov	DWORD PTR -112[rbp], 0
	jmp	.L2941
.L2943:
	mov	eax, DWORD PTR -112[rbp]
	cdqe
	lea	rdx, reg_saved.1[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	eax, al
	mov	DWORD PTR -108[rbp], eax
	mov	eax, DWORD PTR -108[rbp]
	cdqe
	movzx	eax, BYTE PTR -32[rbp+rax]
	test	al, al
	je	.L2942
	mov	eax, DWORD PTR -108[rbp]
	add	eax, 80
	mov	edi, eax
	call	g
.L2942:
	add	DWORD PTR -112[rbp], 1
.L2941:
	cmp	DWORD PTR -112[rbp], 2
	jle	.L2943
	mov	DWORD PTR -112[rbp], 0
	jmp	.L2944
.L2948:
	mov	eax, DWORD PTR -112[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -120[rbp]
	add	rax, rdx
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 52[rax]
	test	eax, eax
	js	.L2945
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR 32[rax]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	movzx	eax, al
	cmp	eax, 241
	jne	.L2946
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 60[rax]
	test	eax, eax
	je	.L2946
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rcx, QWORD PTR [rax]
	mov	rbx, QWORD PTR 8[rax]
	mov	QWORD PTR -96[rbp], rcx
	mov	QWORD PTR -88[rbp], rbx
	mov	rcx, QWORD PTR 16[rax]
	mov	rbx, QWORD PTR 24[rax]
	mov	QWORD PTR -80[rbp], rcx
	mov	QWORD PTR -72[rbp], rbx
	mov	rcx, QWORD PTR 32[rax]
	mov	rbx, QWORD PTR 40[rax]
	mov	QWORD PTR -64[rbp], rcx
	mov	QWORD PTR -56[rbp], rbx
	mov	rdx, QWORD PTR 56[rax]
	mov	rax, QWORD PTR 48[rax]
	mov	QWORD PTR -48[rbp], rax
	mov	QWORD PTR -40[rbp], rdx
	movzx	eax, WORD PTR -80[rbp]
	mov	al, 0
	or	al, -14
	mov	WORD PTR -80[rbp], ax
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 52[rax]
	lea	rdx, -96[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	load
	jmp	.L2945
.L2946:
	mov	eax, DWORD PTR -112[rbp]
	cmp	eax, DWORD PTR -128[rbp]
	jge	.L2947
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 64[rax]
	test	eax, eax
	je	.L2945
.L2947:
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 52[rax]
	mov	rsi, rdx
	mov	edi, eax
	call	load
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 56[rax]
	test	eax, eax
	je	.L2945
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rcx, QWORD PTR [rax]
	mov	rbx, QWORD PTR 8[rax]
	mov	QWORD PTR -96[rbp], rcx
	mov	QWORD PTR -88[rbp], rbx
	mov	rcx, QWORD PTR 16[rax]
	mov	rbx, QWORD PTR 24[rax]
	mov	QWORD PTR -80[rbp], rcx
	mov	QWORD PTR -72[rbp], rbx
	mov	rcx, QWORD PTR 32[rax]
	mov	rbx, QWORD PTR 40[rax]
	mov	QWORD PTR -64[rbp], rcx
	mov	QWORD PTR -56[rbp], rbx
	mov	rdx, QWORD PTR 56[rax]
	mov	rax, QWORD PTR 48[rax]
	mov	QWORD PTR -48[rbp], rax
	mov	QWORD PTR -40[rbp], rdx
	mov	eax, DWORD PTR -64[rbp]
	add	eax, 4
	mov	DWORD PTR -64[rbp], eax
	lea	rax, -96[rbp]
	mov	rsi, rax
	mov	edi, 2
	call	load
.L2945:
	add	DWORD PTR -112[rbp], 1
.L2944:
	mov	eax, DWORD PTR -112[rbp]
	cmp	eax, DWORD PTR -124[rbp]
	jl	.L2948
	jmp	.L2958
.L2940:
	mov	DWORD PTR -112[rbp], 0
	jmp	.L2950
.L2953:
	mov	eax, DWORD PTR -112[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -120[rbp]
	add	rax, rdx
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 52[rax]
	test	eax, eax
	js	.L2951
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR 32[rax]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	movzx	eax, al
	cmp	eax, 241
	jne	.L2952
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 60[rax]
	test	eax, eax
	jne	.L2951
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rcx, QWORD PTR [rax]
	mov	rbx, QWORD PTR 8[rax]
	mov	QWORD PTR -96[rbp], rcx
	mov	QWORD PTR -88[rbp], rbx
	mov	rcx, QWORD PTR 16[rax]
	mov	rbx, QWORD PTR 24[rax]
	mov	QWORD PTR -80[rbp], rcx
	mov	QWORD PTR -72[rbp], rbx
	mov	rcx, QWORD PTR 32[rax]
	mov	rbx, QWORD PTR 40[rax]
	mov	QWORD PTR -64[rbp], rcx
	mov	QWORD PTR -56[rbp], rbx
	mov	rdx, QWORD PTR 56[rax]
	mov	rax, QWORD PTR 48[rax]
	mov	QWORD PTR -48[rbp], rax
	mov	QWORD PTR -40[rbp], rdx
	movzx	eax, WORD PTR -80[rbp]
	mov	al, 0
	or	al, -14
	mov	WORD PTR -80[rbp], ax
	lea	rdx, -96[rbp]
	mov	eax, DWORD PTR -136[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	load
	movzx	eax, WORD PTR -80[rbp]
	mov	al, 0
	mov	edx, eax
	mov	eax, DWORD PTR -136[rbp]
	or	eax, edx
	mov	WORD PTR -80[rbp], ax
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 52[rax]
	lea	rdx, -96[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	store
	jmp	.L2951
.L2952:
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 52[rax]
	mov	rsi, rdx
	mov	edi, eax
	call	store
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 56[rax]
	test	eax, eax
	je	.L2951
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rcx, QWORD PTR [rax]
	mov	rbx, QWORD PTR 8[rax]
	mov	QWORD PTR -96[rbp], rcx
	mov	QWORD PTR -88[rbp], rbx
	mov	rcx, QWORD PTR 16[rax]
	mov	rbx, QWORD PTR 24[rax]
	mov	QWORD PTR -80[rbp], rcx
	mov	QWORD PTR -72[rbp], rbx
	mov	rcx, QWORD PTR 32[rax]
	mov	rbx, QWORD PTR 40[rax]
	mov	QWORD PTR -64[rbp], rcx
	mov	QWORD PTR -56[rbp], rbx
	mov	rdx, QWORD PTR 56[rax]
	mov	rax, QWORD PTR 48[rax]
	mov	QWORD PTR -48[rbp], rax
	mov	QWORD PTR -40[rbp], rdx
	mov	eax, DWORD PTR -64[rbp]
	add	eax, 4
	mov	DWORD PTR -64[rbp], eax
	lea	rax, -96[rbp]
	mov	rsi, rax
	mov	edi, 2
	call	store
.L2951:
	add	DWORD PTR -112[rbp], 1
.L2950:
	mov	eax, DWORD PTR -112[rbp]
	cmp	eax, DWORD PTR -128[rbp]
	jl	.L2953
	mov	DWORD PTR -112[rbp], 2
	jmp	.L2954
.L2956:
	mov	eax, DWORD PTR -112[rbp]
	cdqe
	lea	rdx, reg_saved.1[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	eax, al
	mov	DWORD PTR -108[rbp], eax
	mov	eax, DWORD PTR -108[rbp]
	cdqe
	movzx	eax, BYTE PTR -32[rbp+rax]
	test	al, al
	je	.L2955
	mov	eax, DWORD PTR -108[rbp]
	add	eax, 88
	mov	edi, eax
	call	g
.L2955:
	sub	DWORD PTR -112[rbp], 1
.L2954:
	cmp	DWORD PTR -112[rbp], 0
	jns	.L2956
.L2958:
	nop
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2957
	call	__stack_chk_fail@PLT
.L2957:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE243:
	.size	asm_gen_code, .-asm_gen_code
	.section	.rodata
.LC182:
	.string	"memory"
.LC183:
	.string	"cc"
.LC184:
	.string	"invalid clobber register '%s'"
	.text
	.type	asm_clobber, @function
asm_clobber:
.LFB244:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -32[rbp]
	lea	rsi, .LC182[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	je	.L2966
	mov	rax, QWORD PTR -32[rbp]
	lea	rsi, .LC183[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	je	.L2966
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	tok_alloc
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 40[rax]
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 422
	jle	.L2963
	cmp	DWORD PTR -12[rbp], 430
	jg	.L2963
	sub	DWORD PTR -12[rbp], 423
	jmp	.L2964
.L2963:
	cmp	DWORD PTR -12[rbp], 414
	jle	.L2965
	cmp	DWORD PTR -12[rbp], 422
	jg	.L2965
	sub	DWORD PTR -12[rbp], 415
	jmp	.L2964
.L2965:
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC184[rip]
	mov	eax, 0
	call	error
.L2964:
	mov	eax, DWORD PTR -12[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 1
	jmp	.L2959
.L2966:
	nop
.L2959:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE244:
	.size	asm_clobber, .-asm_clobber
	.section	.rodata
.LC185:
	.string	"L..%u"
	.text
	.type	asm_get_local_label_name, @function
asm_get_local_label_name:
.LFB245:
	.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
	mov	DWORD PTR -108[rbp], esi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	edx, DWORD PTR -108[rbp]
	lea	rax, -80[rbp]
	mov	ecx, edx
	lea	rdx, .LC185[rip]
	mov	esi, 64
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	lea	rax, -80[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	edx, eax
	lea	rax, -80[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	tok_alloc
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 40[rax]
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L2969
	call	__stack_chk_fail@PLT
.L2969:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE245:
	.size	asm_get_local_label_name, .-asm_get_local_label_name
	.section	.rodata
	.align 8
.LC186:
	.string	"local label '%d' not found backward"
.LC187:
	.string	"invalid number syntax"
.LC188:
	.string	"invalid operation with label"
.LC189:
	.string	"bad expression syntax [%s]"
	.text
	.type	asm_expr_unary, @function
asm_expr_unary:
.LFB246:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 206
	je	.L2971
	cmp	eax, 206
	jg	.L2972
	cmp	eax, 183
	je	.L2973
	cmp	eax, 183
	jg	.L2972
	cmp	eax, 180
	je	.L2973
	cmp	eax, 180
	jg	.L2972
	cmp	eax, 126
	je	.L2974
	cmp	eax, 126
	jg	.L2972
	cmp	eax, 45
	je	.L2974
	cmp	eax, 45
	jg	.L2972
	cmp	eax, 40
	je	.L2975
	cmp	eax, 43
	je	.L2976
	jmp	.L2972
.L2971:
	mov	rax, QWORD PTR tokc[rip]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	lea	rcx, -24[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	strtoul@PLT
	mov	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 98
	je	.L2977
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 102
	jne	.L2978
.L2977:
	mov	edx, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	asm_get_local_label_name
	mov	DWORD PTR -32[rbp], eax
	mov	eax, DWORD PTR -32[rbp]
	mov	edi, eax
	call	label_find
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 98
	jne	.L2979
	cmp	QWORD PTR -16[rbp], 0
	je	.L2980
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	jne	.L2980
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 56[rax]
	mov	QWORD PTR -16[rbp], rax
.L2980:
	cmp	QWORD PTR -16[rbp], 0
	jne	.L2981
	mov	eax, DWORD PTR -36[rbp]
	mov	esi, eax
	lea	rdi, .LC186[rip]
	mov	eax, 0
	call	error
	jmp	.L2981
.L2979:
	cmp	QWORD PTR -16[rbp], 0
	je	.L2982
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	je	.L2981
.L2982:
	mov	rax, QWORD PTR -56[rbp]
	lea	rcx, 480[rax]
	mov	eax, DWORD PTR -32[rbp]
	mov	edx, 0
	mov	esi, eax
	mov	rdi, rcx
	call	label_push
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR 24[rax], 259
.L2981:
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 8[rax], rdx
	jmp	.L2983
.L2978:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L2984
	mov	edx, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR 8[rax], 0
	jmp	.L2983
.L2984:
	lea	rdi, .LC187[rip]
	mov	eax, 0
	call	error
.L2983:
	call	next
	jmp	.L2985
.L2976:
	call	next
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	asm_expr_unary
	jmp	.L2985
.L2974:
	mov	eax, DWORD PTR tok[rip]
	mov	DWORD PTR -28[rbp], eax
	call	next
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	asm_expr_unary
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	je	.L2986
	lea	rdi, .LC188[rip]
	mov	eax, 0
	call	error
.L2986:
	cmp	DWORD PTR -28[rbp], 45
	jne	.L2987
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	neg	eax
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L2985
.L2987:
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	not	eax
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L2985
.L2973:
	mov	eax, DWORD PTR tokc[rip]
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR 8[rax], 0
	call	next
	jmp	.L2985
.L2975:
	call	next
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	asm_expr
	mov	edi, 41
	call	skip
	jmp	.L2985
.L2972:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 255
	jle	.L2989
	mov	eax, DWORD PTR tok[rip]
	mov	edi, eax
	call	label_find
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jne	.L2990
	mov	eax, DWORD PTR tok[rip]
	mov	rdx, QWORD PTR -56[rbp]
	lea	rcx, 480[rdx]
	mov	edx, 0
	mov	esi, eax
	mov	rdi, rcx
	call	label_push
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR 24[rax], 3
.L2990:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 8[rax]
	cmp	rax, 65521
	jne	.L2991
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR 8[rax], 0
	jmp	.L2992
.L2991:
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 8[rax], rdx
.L2992:
	call	next
	jmp	.L2995
.L2989:
	mov	eax, DWORD PTR tok[rip]
	lea	rsi, tokc[rip]
	mov	edi, eax
	call	get_tok_str
	mov	rsi, rax
	lea	rdi, .LC189[rip]
	mov	eax, 0
	call	error
.L2995:
	nop
.L2985:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2994
	call	__stack_chk_fail@PLT
.L2994:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE246:
	.size	asm_expr_unary, .-asm_expr_unary
	.section	.rodata
.LC190:
	.string	"division by zero"
	.text
	.type	asm_expr_prod, @function
asm_expr_prod:
.LFB247:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	asm_expr_unary
.L3010:
	mov	eax, DWORD PTR tok[rip]
	mov	DWORD PTR -36[rbp], eax
	cmp	DWORD PTR -36[rbp], 42
	je	.L2997
	cmp	DWORD PTR -36[rbp], 47
	je	.L2997
	cmp	DWORD PTR -36[rbp], 37
	je	.L2997
	cmp	DWORD PTR -36[rbp], 1
	je	.L2997
	cmp	DWORD PTR -36[rbp], 2
	jne	.L3013
.L2997:
	call	next
	lea	rdx, -32[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	asm_expr_unary
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	jne	.L2999
	mov	rax, QWORD PTR -24[rbp]
	test	rax, rax
	je	.L3000
.L2999:
	lea	rdi, .LC188[rip]
	mov	eax, 0
	call	error
.L3000:
	cmp	DWORD PTR -36[rbp], 47
	je	.L3001
	cmp	DWORD PTR -36[rbp], 47
	jg	.L3002
	cmp	DWORD PTR -36[rbp], 42
	je	.L3003
	cmp	DWORD PTR -36[rbp], 42
	jg	.L3002
	cmp	DWORD PTR -36[rbp], 1
	je	.L3004
	cmp	DWORD PTR -36[rbp], 37
	je	.L3005
	jmp	.L3002
.L3003:
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -32[rbp]
	imul	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L3006
.L3001:
	mov	eax, DWORD PTR -32[rbp]
	test	eax, eax
	jne	.L3007
	nop
	jmp	.L3008
.L3014:
	nop
.L3008:
	lea	rdi, .LC190[rip]
	mov	eax, 0
	call	error
.L3007:
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	mov	esi, DWORD PTR -32[rbp]
	mov	edx, 0
	div	esi
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L3006
.L3005:
	mov	eax, DWORD PTR -32[rbp]
	test	eax, eax
	je	.L3014
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	mov	ecx, DWORD PTR -32[rbp]
	mov	edx, 0
	div	ecx
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L3006
.L3004:
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -32[rbp]
	mov	ecx, eax
	sal	edx, cl
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L3006
.L3002:
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -32[rbp]
	mov	ecx, eax
	shr	edx, cl
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	nop
.L3006:
	jmp	.L3010
.L3013:
	nop
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L3011
	call	__stack_chk_fail@PLT
.L3011:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE247:
	.size	asm_expr_prod, .-asm_expr_prod
	.type	asm_expr_logic, @function
asm_expr_logic:
.LFB248:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	asm_expr_prod
.L3024:
	mov	eax, DWORD PTR tok[rip]
	mov	DWORD PTR -36[rbp], eax
	cmp	DWORD PTR -36[rbp], 38
	je	.L3016
	cmp	DWORD PTR -36[rbp], 124
	je	.L3016
	cmp	DWORD PTR -36[rbp], 94
	jne	.L3028
.L3016:
	call	next
	lea	rdx, -32[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	asm_expr_prod
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	jne	.L3018
	mov	rax, QWORD PTR -24[rbp]
	test	rax, rax
	je	.L3019
.L3018:
	lea	rdi, .LC188[rip]
	mov	eax, 0
	call	error
.L3019:
	cmp	DWORD PTR -36[rbp], 38
	je	.L3020
	cmp	DWORD PTR -36[rbp], 124
	je	.L3021
	jmp	.L3027
.L3020:
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -32[rbp]
	and	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L3023
.L3021:
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -32[rbp]
	or	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L3023
.L3027:
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -32[rbp]
	xor	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	nop
.L3023:
	jmp	.L3024
.L3028:
	nop
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L3025
	call	__stack_chk_fail@PLT
.L3025:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE248:
	.size	asm_expr_logic, .-asm_expr_logic
	.type	asm_expr_sum, @function
asm_expr_sum:
.LFB249:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	asm_expr_logic
.L3040:
	mov	eax, DWORD PTR tok[rip]
	mov	DWORD PTR -36[rbp], eax
	cmp	DWORD PTR -36[rbp], 43
	je	.L3030
	cmp	DWORD PTR -36[rbp], 45
	jne	.L3043
.L3030:
	call	next
	lea	rdx, -32[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	asm_expr_logic
	cmp	DWORD PTR -36[rbp], 43
	jne	.L3032
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	je	.L3033
	mov	rax, QWORD PTR -24[rbp]
	test	rax, rax
	jne	.L3044
.L3033:
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -32[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	jne	.L3040
	mov	rax, QWORD PTR -24[rbp]
	test	rax, rax
	je	.L3040
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR 8[rax], rdx
	jmp	.L3040
.L3032:
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	mov	ecx, DWORD PTR -32[rbp]
	sub	eax, ecx
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	jne	.L3036
	mov	rax, QWORD PTR -24[rbp]
	test	rax, rax
	je	.L3035
.L3036:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	je	.L3037
	mov	rax, QWORD PTR -24[rbp]
	test	rax, rax
	je	.L3035
.L3037:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	je	.L3045
	mov	rax, QWORD PTR -24[rbp]
	test	rax, rax
	je	.L3045
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -24[rbp]
	cmp	rdx, rax
	je	.L3038
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	cmp	rdx, rax
	jne	.L3046
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	je	.L3046
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rax, QWORD PTR 40[rax]
	mov	rcx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	rsi, rax
	mov	rax, rcx
	sub	rax, rsi
	add	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
.L3038:
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR 8[rax], 0
	jmp	.L3035
.L3044:
	nop
	jmp	.L3034
.L3045:
	nop
	jmp	.L3034
.L3046:
	nop
.L3034:
	lea	rdi, .LC188[rip]
	mov	eax, 0
	call	error
.L3035:
	jmp	.L3040
.L3043:
	nop
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L3041
	call	__stack_chk_fail@PLT
.L3041:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE249:
	.size	asm_expr_sum, .-asm_expr_sum
	.type	asm_expr, @function
asm_expr:
.LFB250:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	asm_expr_sum
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE250:
	.size	asm_expr, .-asm_expr
	.section	.rodata
.LC191:
	.string	"constant"
	.text
	.type	asm_int_expr, @function
asm_int_expr:
.LFB251:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rdx, -32[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	asm_expr
	mov	rax, QWORD PTR -24[rbp]
	test	rax, rax
	je	.L3049
	lea	rdi, .LC191[rip]
	call	expect
.L3049:
	mov	eax, DWORD PTR -32[rbp]
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L3051
	call	__stack_chk_fail@PLT
.L3051:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE251:
	.size	asm_int_expr, .-asm_int_expr
	.section	.rodata
	.align 8
.LC192:
	.string	"assembler label '%s' already defined"
	.text
	.type	asm_new_label1, @function
asm_new_label1:
.LFB252:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	DWORD PTR -32[rbp], edx
	mov	DWORD PTR -36[rbp], ecx
	mov	QWORD PTR -48[rbp], r8
	mov	eax, DWORD PTR -28[rbp]
	mov	edi, eax
	call	label_find
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	je	.L3056
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	je	.L3054
	cmp	DWORD PTR -32[rbp], 0
	jne	.L3057
	mov	eax, DWORD PTR -28[rbp]
	mov	esi, 0
	mov	edi, eax
	call	get_tok_str
	mov	rsi, rax
	lea	rdi, .LC192[rip]
	mov	eax, 0
	call	error
	jmp	.L3054
.L3056:
	nop
	jmp	.L3053
.L3057:
	nop
.L3053:
	mov	rax, QWORD PTR -24[rbp]
	lea	rcx, 480[rax]
	mov	eax, DWORD PTR -28[rbp]
	mov	edx, 0
	mov	esi, eax
	mov	rdi, rcx
	call	label_push
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 24[rax], 259
.L3054:
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 40[rax], rdx
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE252:
	.size	asm_new_label1, .-asm_new_label1
	.type	asm_new_label, @function
asm_new_label:
.LFB253:
	.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	DWORD PTR -12[rbp], esi
	mov	DWORD PTR -16[rbp], edx
	mov	rdi, QWORD PTR ind[rip]
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	ecx, DWORD PTR 28[rax]
	mov	edx, DWORD PTR -16[rbp]
	mov	esi, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	asm_new_label1
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE253:
	.size	asm_new_label, .-asm_new_label
	.type	asm_free_labels, @function
asm_free_labels:
.LFB254:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 480[rax]
	mov	QWORD PTR -24[rbp], rax
	jmp	.L3060
.L3064:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 48[rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	je	.L3061
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	cmp	rax, 65521
	jne	.L3062
	mov	QWORD PTR -16[rbp], 1
	jmp	.L3063
.L3062:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 104[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
.L3063:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	rdx, rax
	mov	rsi, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	r8d, 0
	mov	ecx, 0
	mov	rdi, rax
	call	put_extern_sym2
.L3061:
	mov	rdx, QWORD PTR table_ident[rip]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	sal	rax, 3
	sub	rax, 2048
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR 16[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	sym_free
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR -24[rbp], rax
.L3060:
	cmp	QWORD PTR -24[rbp], 0
	jne	.L3064
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 480[rax], 0
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE254:
	.size	asm_free_labels, .-asm_free_labels
	.type	use_section1, @function
use_section1:
.LFB255:
	.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	rdx, QWORD PTR ind[rip]
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR cur_text_section[rip], rax
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR ind[rip], rax
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE255:
	.size	use_section1, .-use_section1
	.type	use_section, @function
use_section:
.LFB256:
	.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	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	find_section
	mov	QWORD PTR -8[rbp], rax
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	use_section1
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE256:
	.size	use_section, .-use_section
	.section	.rodata
.LC193:
	.string	"64 bit constant"
.LC194:
	.string	"repeat < 0; .fill ignored"
.LC195:
	.string	"size < 0; .fill ignored"
.LC196:
	.string	"attempt to .org backwards"
.LC197:
	.string	"string constant"
.LC198:
	.string	".%s%d"
.LC199:
	.string	".%s"
	.align 8
.LC200:
	.string	"no previous section referenced"
	.align 8
.LC201:
	.string	"unknown assembler directive '.%s'"
	.text
	.type	asm_parse_directive, @function
asm_parse_directive:
.LFB257:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 416
	mov	QWORD PTR -408[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	call	next
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	QWORD PTR -336[rbp], rax
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 884
	je	.L3068
	cmp	eax, 884
	jg	.L3069
	cmp	eax, 256
	je	.L3070
	cmp	eax, 256
	jl	.L3069
	cmp	eax, 406
	jg	.L3069
	cmp	eax, 279
	jl	.L3069
	sub	eax, 279
	cmp	eax, 127
	ja	.L3069
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L3072[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L3072[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L3072:
	.long	.L3070-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3068-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3081-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3069-.L3072
	.long	.L3080-.L3072
	.long	.L3079-.L3072
	.long	.L3079-.L3072
	.long	.L3079-.L3072
	.long	.L3078-.L3072
	.long	.L3078-.L3072
	.long	.L3078-.L3072
	.long	.L3077-.L3072
	.long	.L3077-.L3072
	.long	.L3076-.L3072
	.long	.L3076-.L3072
	.long	.L3076-.L3072
	.long	.L3075-.L3072
	.long	.L3074-.L3072
	.long	.L3073-.L3072
	.long	.L3071-.L3072
	.text
.L3079:
	mov	eax, DWORD PTR tok[rip]
	mov	DWORD PTR -356[rbp], eax
	call	next
	mov	rax, QWORD PTR -408[rbp]
	mov	rdi, rax
	call	asm_int_expr
	mov	DWORD PTR -396[rbp], eax
	cmp	DWORD PTR -356[rbp], 392
	jne	.L3082
	cmp	DWORD PTR -396[rbp], 0
	js	.L3083
	mov	eax, DWORD PTR -396[rbp]
	sub	eax, 1
	and	eax, DWORD PTR -396[rbp]
	test	eax, eax
	je	.L3084
.L3083:
	lea	rdi, .LC105[rip]
	mov	eax, 0
	call	error
.L3084:
	mov	rax, QWORD PTR ind[rip]
	mov	edx, eax
	mov	eax, DWORD PTR -396[rbp]
	add	eax, edx
	sub	eax, 1
	mov	edx, eax
	mov	eax, DWORD PTR -396[rbp]
	neg	eax
	and	eax, edx
	mov	DWORD PTR -348[rbp], eax
	mov	eax, DWORD PTR -348[rbp]
	mov	rdx, QWORD PTR ind[rip]
	sub	eax, edx
	mov	DWORD PTR -388[rbp], eax
	mov	rax, QWORD PTR -336[rbp]
	mov	eax, DWORD PTR 44[rax]
	cmp	DWORD PTR -396[rbp], eax
	jle	.L3085
	mov	rax, QWORD PTR -336[rbp]
	mov	edx, DWORD PTR -396[rbp]
	mov	DWORD PTR 44[rax], edx
	jmp	.L3085
.L3082:
	mov	eax, DWORD PTR -396[rbp]
	mov	DWORD PTR -388[rbp], eax
.L3085:
	mov	DWORD PTR -392[rbp], 0
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 44
	jne	.L3136
	call	next
	mov	rax, QWORD PTR -408[rbp]
	mov	rdi, rax
	call	asm_int_expr
	mov	DWORD PTR -392[rbp], eax
	jmp	.L3086
.L3136:
	nop
.L3086:
	mov	rax, QWORD PTR -336[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	eax, 8
	je	.L3087
	mov	rax, QWORD PTR ind[rip]
	mov	rdx, rax
	mov	rax, QWORD PTR -336[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, DWORD PTR -388[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -336[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	section_ptr_add
	mov	QWORD PTR -296[rbp], rax
	mov	eax, DWORD PTR -388[rbp]
	movsx	rdx, eax
	mov	ecx, DWORD PTR -392[rbp]
	mov	rax, QWORD PTR -296[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	memset@PLT
.L3087:
	mov	eax, DWORD PTR -388[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR ind[rip]
	add	rax, rdx
	mov	QWORD PTR ind[rip], rax
	jmp	.L3088
.L3071:
	call	next
.L3095:
	mov	rax, QWORD PTR tokc[rip]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -288[rbp], rax
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 206
	je	.L3089
	nop
	jmp	.L3090
.L3137:
	nop
.L3090:
	lea	rdi, .LC193[rip]
	mov	eax, 0
	call	error
.L3089:
	mov	rax, QWORD PTR -288[rbp]
	lea	rcx, -288[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	strtoll@PLT
	mov	QWORD PTR -328[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L3137
	call	next
	mov	rax, QWORD PTR -336[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	eax, 8
	je	.L3092
	mov	rax, QWORD PTR -328[rbp]
	mov	edi, eax
	call	gen_le32
	mov	rax, QWORD PTR -328[rbp]
	shr	rax, 32
	mov	edi, eax
	call	gen_le32
	jmp	.L3093
.L3092:
	mov	rax, QWORD PTR ind[rip]
	add	rax, 8
	mov	QWORD PTR ind[rip], rax
.L3093:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 44
	jne	.L3138
	call	next
	jmp	.L3095
.L3080:
	mov	DWORD PTR -388[rbp], 1
	jmp	.L3096
.L3068:
	mov	DWORD PTR -388[rbp], 2
	jmp	.L3096
.L3070:
	mov	DWORD PTR -388[rbp], 4
.L3096:
	call	next
.L3103:
	lea	rdx, -288[rbp]
	mov	rax, QWORD PTR -408[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	asm_expr
	mov	rax, QWORD PTR -336[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	eax, 8
	je	.L3097
	cmp	DWORD PTR -388[rbp], 4
	jne	.L3098
	lea	rax, -288[rbp]
	mov	rdi, rax
	call	gen_expr32
	jmp	.L3099
.L3098:
	mov	rax, QWORD PTR -280[rbp]
	test	rax, rax
	je	.L3100
	lea	rdi, .LC191[rip]
	call	expect
.L3100:
	cmp	DWORD PTR -388[rbp], 1
	jne	.L3101
	mov	eax, DWORD PTR -288[rbp]
	mov	edi, eax
	call	g
	jmp	.L3099
.L3101:
	mov	eax, DWORD PTR -288[rbp]
	mov	edi, eax
	call	gen_le16
	jmp	.L3099
.L3097:
	mov	eax, DWORD PTR -388[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR ind[rip]
	add	rax, rdx
	mov	QWORD PTR ind[rip], rax
.L3099:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 44
	jne	.L3139
	call	next
	jmp	.L3103
.L3074:
	call	next
	mov	rax, QWORD PTR -408[rbp]
	mov	rdi, rax
	call	asm_int_expr
	mov	DWORD PTR -360[rbp], eax
	cmp	DWORD PTR -360[rbp], 0
	jns	.L3104
	lea	rdi, .LC194[rip]
	mov	eax, 0
	call	error
	jmp	.L3088
.L3104:
	mov	DWORD PTR -384[rbp], 1
	mov	DWORD PTR -380[rbp], 0
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 44
	jne	.L3106
	call	next
	mov	rax, QWORD PTR -408[rbp]
	mov	rdi, rax
	call	asm_int_expr
	mov	DWORD PTR -384[rbp], eax
	cmp	DWORD PTR -384[rbp], 0
	jns	.L3107
	lea	rdi, .LC195[rip]
	mov	eax, 0
	call	error
	nop
	jmp	.L3141
.L3107:
	cmp	DWORD PTR -384[rbp], 8
	jle	.L3108
	mov	DWORD PTR -384[rbp], 8
.L3108:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 44
	jne	.L3106
	call	next
	mov	rax, QWORD PTR -408[rbp]
	mov	rdi, rax
	call	asm_int_expr
	mov	DWORD PTR -380[rbp], eax
.L3106:
	mov	eax, DWORD PTR -380[rbp]
	mov	BYTE PTR -272[rbp], al
	mov	eax, DWORD PTR -380[rbp]
	sar	eax, 8
	mov	BYTE PTR -271[rbp], al
	mov	eax, DWORD PTR -380[rbp]
	sar	eax, 16
	mov	BYTE PTR -270[rbp], al
	mov	eax, DWORD PTR -380[rbp]
	sar	eax, 24
	mov	BYTE PTR -269[rbp], al
	mov	BYTE PTR -268[rbp], 0
	mov	BYTE PTR -267[rbp], 0
	mov	BYTE PTR -266[rbp], 0
	mov	BYTE PTR -265[rbp], 0
	mov	DWORD PTR -376[rbp], 0
	jmp	.L3109
.L3112:
	mov	DWORD PTR -372[rbp], 0
	jmp	.L3110
.L3111:
	mov	eax, DWORD PTR -372[rbp]
	cdqe
	movzx	eax, BYTE PTR -272[rbp+rax]
	movzx	eax, al
	mov	edi, eax
	call	g
	add	DWORD PTR -372[rbp], 1
.L3110:
	mov	eax, DWORD PTR -372[rbp]
	cmp	eax, DWORD PTR -384[rbp]
	jl	.L3111
	add	DWORD PTR -376[rbp], 1
.L3109:
	mov	eax, DWORD PTR -376[rbp]
	cmp	eax, DWORD PTR -360[rbp]
	jl	.L3112
	jmp	.L3088
.L3073:
	call	next
	mov	rax, QWORD PTR -408[rbp]
	mov	rdi, rax
	call	asm_int_expr
	cdqe
	mov	QWORD PTR -320[rbp], rax
	mov	rax, QWORD PTR ind[rip]
	cmp	QWORD PTR -320[rbp], rax
	jnb	.L3113
	lea	rdi, .LC196[rip]
	mov	eax, 0
	call	error
.L3113:
	mov	DWORD PTR -392[rbp], 0
	mov	rax, QWORD PTR -320[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR ind[rip]
	mov	ecx, eax
	mov	eax, edx
	sub	eax, ecx
	mov	DWORD PTR -388[rbp], eax
	jmp	.L3086
.L3077:
	call	next
	mov	eax, DWORD PTR tok[rip]
	mov	edi, eax
	call	label_find
	mov	QWORD PTR -344[rbp], rax
	cmp	QWORD PTR -344[rbp], 0
	jne	.L3114
	mov	eax, DWORD PTR tok[rip]
	mov	rdx, QWORD PTR -408[rbp]
	lea	rcx, 480[rdx]
	mov	edx, 0
	mov	esi, eax
	mov	rdi, rcx
	call	label_push
	mov	QWORD PTR -344[rbp], rax
	mov	rax, QWORD PTR -344[rbp]
	mov	DWORD PTR 24[rax], 3
.L3114:
	mov	rax, QWORD PTR -344[rbp]
	mov	eax, DWORD PTR 24[rax]
	and	ah, -2
	mov	edx, eax
	mov	rax, QWORD PTR -344[rbp]
	mov	DWORD PTR 24[rax], edx
	call	next
	jmp	.L3088
.L3078:
	mov	eax, DWORD PTR tok[rip]
	mov	DWORD PTR -352[rbp], eax
	call	next
.L3122:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 181
	je	.L3115
	lea	rdi, .LC197[rip]
	call	expect
.L3115:
	mov	rax, QWORD PTR tokc[rip]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -304[rbp], rax
	mov	rax, QWORD PTR tokc[rip]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -364[rbp], eax
	cmp	DWORD PTR -352[rbp], 397
	jne	.L3116
	cmp	DWORD PTR -364[rbp], 0
	jle	.L3116
	sub	DWORD PTR -364[rbp], 1
.L3116:
	mov	DWORD PTR -368[rbp], 0
	jmp	.L3117
.L3118:
	mov	eax, DWORD PTR -368[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edi, eax
	call	g
	add	DWORD PTR -368[rbp], 1
.L3117:
	mov	eax, DWORD PTR -368[rbp]
	cmp	eax, DWORD PTR -364[rbp]
	jl	.L3118
	call	next
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 44
	jne	.L3119
	call	next
	jmp	.L3122
.L3119:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 181
	jne	.L3140
	jmp	.L3122
.L3140:
	nop
	jmp	.L3088
.L3076:
	mov	eax, DWORD PTR tok[rip]
	mov	DWORD PTR -356[rbp], eax
	mov	DWORD PTR -396[rbp], 0
	call	next
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 59
	je	.L3123
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 10
	je	.L3123
	mov	rax, QWORD PTR -408[rbp]
	mov	rdi, rax
	call	asm_int_expr
	mov	DWORD PTR -396[rbp], eax
	call	next
.L3123:
	mov	eax, DWORD PTR -356[rbp]
	mov	esi, 0
	mov	edi, eax
	call	get_tok_str
	mov	rsi, rax
	cmp	DWORD PTR -396[rbp], 0
	je	.L3124
	lea	rax, .LC198[rip]
	jmp	.L3125
.L3124:
	lea	rax, .LC199[rip]
.L3125:
	mov	edx, DWORD PTR -396[rbp]
	lea	rdi, -272[rbp]
	mov	ecx, edx
	mov	rdx, rsi
	mov	rsi, rax
	mov	eax, 0
	call	sprintf@PLT
	lea	rdx, -272[rbp]
	mov	rax, QWORD PTR -408[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	use_section
	jmp	.L3088
.L3081:
	call	next
	mov	BYTE PTR -272[rbp], 0
	jmp	.L3126
.L3130:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 181
	jne	.L3127
	mov	rax, QWORD PTR tokc[rip]
	mov	rdx, QWORD PTR 8[rax]
	lea	rax, -272[rbp]
	mov	esi, 256
	mov	rdi, rax
	call	pstrcat
	jmp	.L3128
.L3127:
	mov	eax, DWORD PTR tok[rip]
	mov	esi, 0
	mov	edi, eax
	call	get_tok_str
	mov	rdx, rax
	lea	rax, -272[rbp]
	mov	esi, 256
	mov	rdi, rax
	call	pstrcat
.L3128:
	call	next
.L3126:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 59
	je	.L3129
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 10
	je	.L3129
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 44
	jne	.L3130
.L3129:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 44
	jne	.L3131
	call	next
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 181
	je	.L3132
	lea	rdi, .LC197[rip]
	call	expect
.L3132:
	call	next
.L3131:
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	QWORD PTR last_text_section[rip], rax
	lea	rdx, -272[rbp]
	mov	rax, QWORD PTR -408[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	use_section
	jmp	.L3088
.L3075:
	call	next
	mov	rax, QWORD PTR last_text_section[rip]
	test	rax, rax
	jne	.L3133
	lea	rdi, .LC200[rip]
	mov	eax, 0
	call	error
.L3133:
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	QWORD PTR -312[rbp], rax
	mov	rdx, QWORD PTR last_text_section[rip]
	mov	rax, QWORD PTR -408[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	use_section1
	mov	rax, QWORD PTR -312[rbp]
	mov	QWORD PTR last_text_section[rip], rax
	jmp	.L3088
.L3069:
	mov	eax, DWORD PTR tok[rip]
	mov	esi, 0
	mov	edi, eax
	call	get_tok_str
	mov	rsi, rax
	lea	rdi, .LC201[rip]
	mov	eax, 0
	call	error
	jmp	.L3088
.L3138:
	nop
	jmp	.L3141
.L3139:
	nop
.L3088:
.L3141:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L3134
	call	__stack_chk_fail@PLT
.L3134:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE257:
	.size	asm_parse_directive, .-asm_parse_directive
	.section	.rodata
.LC202:
	.string	"':'"
.LC203:
	.string	"end of line"
	.text
	.type	tcc_assemble_internal, @function
tcc_assemble_internal:
.LFB258:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR ch[rip], eax
	mov	DWORD PTR tok_flags[rip], 3
	mov	DWORD PTR parse_flags[rip], 8
	cmp	DWORD PTR -44[rbp], 0
	je	.L3143
	mov	eax, DWORD PTR parse_flags[rip]
	or	eax, 1
	mov	DWORD PTR parse_flags[rip], eax
.L3143:
	call	next
.L3157:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, -1
	je	.L3161
	mov	eax, DWORD PTR parse_flags[rip]
	or	eax, 4
	mov	DWORD PTR parse_flags[rip], eax
.L3146:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 35
	jne	.L3147
	jmp	.L3148
.L3149:
	call	next
.L3148:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 10
	jne	.L3149
	jmp	.L3150
.L3147:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 46
	jne	.L3151
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	asm_parse_directive
	jmp	.L3150
.L3151:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 206
	jne	.L3152
	mov	rax, QWORD PTR tokc[rip]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	lea	rcx, -16[rbp]
	mov	edx, 10
	mov	rsi, rcx
	mov	rdi, rax
	call	strtoul@PLT
	mov	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L3153
	lea	rdi, .LC202[rip]
	call	expect
.L3153:
	mov	edx, DWORD PTR -20[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	asm_get_local_label_name
	mov	ecx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, 1
	mov	esi, ecx
	mov	rdi, rax
	call	asm_new_label
	call	next
	mov	edi, 58
	call	skip
	jmp	.L3146
.L3152:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 255
	jle	.L3150
	mov	eax, DWORD PTR tok[rip]
	mov	DWORD PTR -28[rbp], eax
	call	next
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 58
	jne	.L3154
	mov	ecx, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, 0
	mov	esi, ecx
	mov	rdi, rax
	call	asm_new_label
	call	next
	jmp	.L3146
.L3154:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 61
	jne	.L3155
	call	next
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	asm_int_expr
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	movsx	rdx, eax
	mov	esi, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	r8, rdx
	mov	ecx, 65521
	mov	edx, 0
	mov	rdi, rax
	call	asm_new_label1
	jmp	.L3146
.L3155:
	mov	edx, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	asm_opcode
.L3150:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 59
	je	.L3156
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 10
	je	.L3156
	lea	rdi, .LC203[rip]
	call	expect
.L3156:
	mov	eax, DWORD PTR parse_flags[rip]
	and	eax, -5
	mov	DWORD PTR parse_flags[rip], eax
	call	next
	jmp	.L3157
.L3161:
	nop
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	asm_free_labels
	mov	eax, 0
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L3159
	call	__stack_chk_fail@PLT
.L3159:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE258:
	.size	tcc_assemble_internal, .-tcc_assemble_internal
	.type	tcc_assemble, @function
tcc_assemble:
.LFB259:
	.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	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	preprocess_init
	mov	rax, QWORD PTR text_section[rip]
	mov	QWORD PTR cur_text_section[rip], rax
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR ind[rip], rax
	mov	rax, QWORD PTR define_stack[rip]
	mov	QWORD PTR -8[rbp], rax
	mov	edx, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	tcc_assemble_internal
	mov	DWORD PTR -12[rbp], eax
	mov	rdx, QWORD PTR ind[rip]
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	free_defines
	mov	eax, DWORD PTR -12[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE259:
	.size	tcc_assemble, .-tcc_assemble
	.type	tcc_assemble_inline, @function
tcc_assemble_inline:
.LFB260:
	.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	DWORD PTR -52[rbp], edx
	mov	edi, 9776
	call	tcc_malloc
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 9776
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 16[rax], -1
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -48[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, DWORD PTR -52[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -48[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	eax, DWORD PTR -52[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 92
	mov	rax, QWORD PTR file[rip]
	lea	rdx, 553[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 553
	mov	esi, 1024
	mov	rdi, rax
	call	pstrcpy
	mov	rax, QWORD PTR file[rip]
	mov	edx, DWORD PTR 20[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 20[rax], edx
	mov	rax, QWORD PTR file[rip]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR file[rip], rax
	mov	eax, DWORD PTR parse_flags[rip]
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR macro_ptr[rip]
	mov	QWORD PTR -8[rbp], rax
	mov	QWORD PTR macro_ptr[rip], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	tcc_assemble_internal
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR parse_flags[rip], eax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR macro_ptr[rip], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR file[rip], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	tcc_free
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE260:
	.size	tcc_assemble_inline, .-tcc_assemble_inline
	.type	find_constraint, @function
find_constraint:
.LFB261:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	QWORD PTR -56[rbp], rdx
	mov	QWORD PTR -64[rbp], rcx
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	edi, eax
	call	isnum
	test	eax, eax
	je	.L3166
	mov	DWORD PTR -20[rbp], 0
	jmp	.L3167
.L3168:
	mov	edx, DWORD PTR -20[rbp]
	mov	eax, edx
	sal	eax, 2
	add	eax, edx
	add	eax, eax
	mov	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	add	eax, edx
	sub	eax, 48
	mov	DWORD PTR -20[rbp], eax
	add	QWORD PTR -56[rbp], 1
.L3167:
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	edi, eax
	call	isnum
	test	eax, eax
	jne	.L3168
	mov	edx, DWORD PTR -20[rbp]
	mov	eax, DWORD PTR -44[rbp]
	cmp	edx, eax
	jb	.L3169
	mov	DWORD PTR -20[rbp], -1
	jmp	.L3169
.L3166:
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 91
	jne	.L3170
	add	QWORD PTR -56[rbp], 1
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 93
	mov	rdi, rax
	call	strchr@PLT
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	je	.L3171
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, QWORD PTR -56[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	tok_alloc
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -20[rbp], 0
	jmp	.L3172
.L3175:
	mov	eax, DWORD PTR -20[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 40[rax]
	cmp	edx, eax
	je	.L3178
	add	DWORD PTR -20[rbp], 1
.L3172:
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jl	.L3175
	mov	DWORD PTR -20[rbp], -1
	jmp	.L3174
.L3178:
	nop
.L3174:
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 1
	mov	QWORD PTR -56[rbp], rax
	jmp	.L3169
.L3171:
	mov	DWORD PTR -20[rbp], -1
	jmp	.L3169
.L3170:
	mov	DWORD PTR -20[rbp], -1
.L3169:
	cmp	QWORD PTR -64[rbp], 0
	je	.L3176
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR -56[rbp]
	mov	QWORD PTR [rax], rdx
.L3176:
	mov	eax, DWORD PTR -20[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE261:
	.size	find_constraint, .-find_constraint
	.section	.rodata
	.align 8
.LC204:
	.string	"invalid operand reference after %%"
	.text
	.type	subst_asm_operands, @function
subst_asm_operands:
.LFB262:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 152
	.cfi_offset 3, -24
	mov	QWORD PTR -136[rbp], rdi
	mov	DWORD PTR -140[rbp], esi
	mov	DWORD PTR -144[rbp], edx
	mov	QWORD PTR -152[rbp], rcx
	mov	QWORD PTR -160[rbp], r8
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -152[rbp]
	mov	rdi, rax
	call	cstr_new
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -112[rbp], rax
.L3188:
	mov	rax, QWORD PTR -112[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -112[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -120[rbp], eax
	cmp	DWORD PTR -120[rbp], 37
	jne	.L3191
	mov	rax, QWORD PTR -112[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 37
	jne	.L3181
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 1
	mov	QWORD PTR -112[rbp], rax
	jmp	.L3180
.L3181:
	mov	DWORD PTR -124[rbp], 0
	mov	rax, QWORD PTR -112[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 99
	je	.L3182
	mov	rax, QWORD PTR -112[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 110
	je	.L3182
	mov	rax, QWORD PTR -112[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 98
	je	.L3182
	mov	rax, QWORD PTR -112[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 119
	je	.L3182
	mov	rax, QWORD PTR -112[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 104
	jne	.L3183
.L3182:
	mov	rax, QWORD PTR -112[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -112[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -124[rbp], eax
.L3183:
	mov	rdx, QWORD PTR -112[rbp]
	lea	rcx, -112[rbp]
	mov	esi, DWORD PTR -140[rbp]
	mov	rax, QWORD PTR -136[rbp]
	mov	rdi, rax
	call	find_constraint
	mov	DWORD PTR -116[rbp], eax
	cmp	DWORD PTR -116[rbp], 0
	jns	.L3184
	lea	rdi, .LC204[rip]
	mov	eax, 0
	call	error
.L3184:
	mov	eax, DWORD PTR -116[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -136[rbp]
	add	rax, rdx
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rcx, QWORD PTR [rax]
	mov	rbx, QWORD PTR 8[rax]
	mov	QWORD PTR -96[rbp], rcx
	mov	QWORD PTR -88[rbp], rbx
	mov	rcx, QWORD PTR 16[rax]
	mov	rbx, QWORD PTR 24[rax]
	mov	QWORD PTR -80[rbp], rcx
	mov	QWORD PTR -72[rbp], rbx
	mov	rcx, QWORD PTR 32[rax]
	mov	rbx, QWORD PTR 40[rax]
	mov	QWORD PTR -64[rbp], rcx
	mov	QWORD PTR -56[rbp], rbx
	mov	rdx, QWORD PTR 56[rax]
	mov	rax, QWORD PTR 48[rax]
	mov	QWORD PTR -48[rbp], rax
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 52[rax]
	test	eax, eax
	js	.L3185
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR 52[rax]
	mov	WORD PTR -80[rbp], ax
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR 32[rax]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	movzx	eax, al
	cmp	eax, 241
	jne	.L3185
	movzx	eax, WORD PTR -80[rbp]
	or	ah, 1
	mov	WORD PTR -80[rbp], ax
.L3185:
	mov	edx, DWORD PTR -124[rbp]
	lea	rcx, -96[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	subst_asm_operand
	jmp	.L3188
.L3191:
	nop
.L3180:
	mov	edx, DWORD PTR -120[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	cstr_ccat
	cmp	DWORD PTR -120[rbp], 0
	je	.L3192
	jmp	.L3188
.L3192:
	nop
	nop
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L3189
	call	__stack_chk_fail@PLT
.L3189:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE262:
	.size	subst_asm_operands, .-subst_asm_operands
	.section	.rodata
.LC205:
	.string	"too many asm operands"
	.text
	.type	parse_asm_operands, @function
parse_asm_operands:
.LFB263:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -36[rbp], edx
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 58
	je	.L3206
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -12[rbp], eax
.L3205:
	cmp	DWORD PTR -12[rbp], 29
	jle	.L3195
	lea	rdi, .LC205[rip]
	mov	eax, 0
	call	error
.L3195:
	mov	eax, DWORD PTR -12[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -12[rbp], edx
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], 0
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 91
	jne	.L3196
	call	next
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 255
	jg	.L3197
	lea	rdi, .LC110[rip]
	call	expect
.L3197:
	mov	edx, DWORD PTR tok[rip]
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], edx
	call	next
	mov	edi, 93
	call	skip
.L3196:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 181
	je	.L3198
	lea	rdi, .LC197[rip]
	call	expect
.L3198:
	mov	rax, QWORD PTR tokc[rip]
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	call	tcc_malloc
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rdx], rax
	mov	rax, QWORD PTR tokc[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcpy@PLT
	call	next
	mov	edi, 40
	call	skip
	call	gexpr
	cmp	DWORD PTR -36[rbp], 0
	je	.L3199
	call	test_lvalue
	jmp	.L3200
.L3199:
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	and	eax, 256
	test	eax, eax
	je	.L3200
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	movzx	eax, al
	cmp	eax, 241
	je	.L3201
	mov	rax, QWORD PTR vtop[rip]
	movzx	eax, WORD PTR 16[rax]
	movzx	eax, ax
	movzx	eax, al
	cmp	eax, 239
	jg	.L3200
.L3201:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	esi, 109
	mov	rdi, rax
	call	strchr@PLT
	test	rax, rax
	jne	.L3200
	mov	edi, 1
	call	gv
.L3200:
	mov	rdx, QWORD PTR vtop[rip]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	edi, 41
	call	skip
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 44
	jne	.L3207
	call	next
	jmp	.L3205
.L3207:
	nop
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	DWORD PTR [rax], edx
.L3206:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE263:
	.size	parse_asm_operands, .-parse_asm_operands
	.type	parse_asm_str, @function
parse_asm_str:
.LFB264:
	.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	edi, 40
	call	skip
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 181
	je	.L3209
	lea	rdi, .LC197[rip]
	call	expect
.L3209:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	cstr_new
	jmp	.L3210
.L3211:
	mov	rax, QWORD PTR tokc[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	cstr_cat
	call	next
.L3210:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 181
	je	.L3211
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	cstr_ccat
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE264:
	.size	parse_asm_str, .-parse_asm_str
	.section	.rodata
.LC206:
	.string	"';'"
	.text
	.type	asm_instr, @function
asm_instr:
.LFB265:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 2272
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	call	next
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 276
	je	.L3213
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 277
	je	.L3213
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 278
	jne	.L3214
.L3213:
	call	next
.L3214:
	lea	rax, -2240[rbp]
	mov	rdi, rax
	call	parse_asm_str
	mov	DWORD PTR -2272[rbp], 0
	mov	DWORD PTR -2264[rbp], 0
	mov	DWORD PTR -2256[rbp], 0
	lea	rax, -16[rbp]
	mov	edx, 8
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 58
	jne	.L3215
	call	next
	mov	DWORD PTR -2256[rbp], 1
	lea	rcx, -2272[rbp]
	lea	rax, -2176[rbp]
	mov	edx, 1
	mov	rsi, rcx
	mov	rdi, rax
	call	parse_asm_operands
	mov	eax, DWORD PTR -2272[rbp]
	mov	DWORD PTR -2264[rbp], eax
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 58
	jne	.L3215
	call	next
	lea	rcx, -2272[rbp]
	lea	rax, -2176[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	parse_asm_operands
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 58
	jne	.L3215
	call	next
.L3219:
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 181
	je	.L3216
	lea	rdi, .LC197[rip]
	call	expect
.L3216:
	mov	rax, QWORD PTR tokc[rip]
	mov	rdx, QWORD PTR 8[rax]
	lea	rax, -16[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	asm_clobber
	call	next
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 44
	jne	.L3226
	call	next
	jmp	.L3219
.L3226:
	nop
.L3215:
	mov	edi, 41
	call	skip
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 59
	je	.L3220
	lea	rdi, .LC206[rip]
	call	expect
.L3220:
	mov	eax, DWORD PTR -2272[rbp]
	sub	eax, DWORD PTR -2264[rbp]
	mov	DWORD PTR -2252[rbp], eax
	mov	edi, 0
	call	save_regs
	mov	esi, DWORD PTR -2272[rbp]
	lea	rdi, -2268[rbp]
	lea	rcx, -16[rbp]
	mov	edx, DWORD PTR -2264[rbp]
	lea	rax, -2176[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	asm_compute_constraints
	cmp	DWORD PTR -2256[rbp], 0
	je	.L3221
	mov	esi, DWORD PTR -2272[rbp]
	lea	rdi, -2240[rbp]
	lea	rcx, -2208[rbp]
	mov	edx, DWORD PTR -2264[rbp]
	lea	rax, -2176[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	subst_asm_operands
	lea	rax, -2240[rbp]
	mov	rdi, rax
	call	cstr_free
	jmp	.L3222
.L3221:
	mov	rax, QWORD PTR -2240[rbp]
	mov	rdx, QWORD PTR -2232[rbp]
	mov	QWORD PTR -2208[rbp], rax
	mov	QWORD PTR -2200[rbp], rdx
	mov	rax, QWORD PTR -2224[rbp]
	mov	rdx, QWORD PTR -2216[rbp]
	mov	QWORD PTR -2192[rbp], rax
	mov	QWORD PTR -2184[rbp], rdx
.L3222:
	mov	edi, DWORD PTR -2268[rbp]
	mov	esi, DWORD PTR -2272[rbp]
	lea	rcx, -16[rbp]
	mov	edx, DWORD PTR -2264[rbp]
	lea	rax, -2176[rbp]
	mov	r9d, edi
	mov	r8, rcx
	mov	ecx, 0
	mov	rdi, rax
	call	asm_gen_code
	mov	eax, DWORD PTR -2208[rbp]
	lea	edx, -1[rax]
	mov	rcx, QWORD PTR -2200[rbp]
	mov	rax, QWORD PTR tcc_state[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	tcc_assemble_inline
	call	next
	mov	edi, DWORD PTR -2268[rbp]
	mov	esi, DWORD PTR -2272[rbp]
	lea	rcx, -16[rbp]
	mov	edx, DWORD PTR -2264[rbp]
	lea	rax, -2176[rbp]
	mov	r9d, edi
	mov	r8, rcx
	mov	ecx, 1
	mov	rdi, rax
	call	asm_gen_code
	mov	DWORD PTR -2260[rbp], 0
	jmp	.L3223
.L3224:
	lea	rcx, -2176[rbp]
	mov	eax, DWORD PTR -2260[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	add	rax, rcx
	mov	QWORD PTR -2248[rbp], rax
	mov	rax, QWORD PTR -2248[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdi, rax
	call	tcc_free
	call	vpop
	add	DWORD PTR -2260[rbp], 1
.L3223:
	mov	eax, DWORD PTR -2272[rbp]
	cmp	DWORD PTR -2260[rbp], eax
	jl	.L3224
	lea	rax, -2208[rbp]
	mov	rdi, rax
	call	cstr_free
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L3225
	call	__stack_chk_fail@PLT
.L3225:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE265:
	.size	asm_instr, .-asm_instr
	.type	asm_global_instr, @function
asm_global_instr:
.LFB266:
	.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	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	call	next
	lea	rax, -48[rbp]
	mov	rdi, rax
	call	parse_asm_str
	mov	edi, 41
	call	skip
	mov	eax, DWORD PTR tok[rip]
	cmp	eax, 59
	je	.L3228
	lea	rdi, .LC206[rip]
	call	expect
.L3228:
	mov	rax, QWORD PTR text_section[rip]
	mov	QWORD PTR cur_text_section[rip], rax
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR ind[rip], rax
	mov	eax, DWORD PTR -48[rbp]
	lea	edx, -1[rax]
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR tcc_state[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	tcc_assemble_inline
	mov	rdx, QWORD PTR ind[rip]
	mov	rax, QWORD PTR cur_text_section[rip]
	mov	QWORD PTR [rax], rdx
	call	next
	lea	rax, -48[rbp]
	mov	rdi, rax
	call	cstr_free
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L3229
	call	__stack_chk_fail@PLT
.L3229:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE266:
	.size	asm_global_instr, .-asm_global_instr
	.type	put_elf_str, @function
put_elf_str:
.LFB267:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	strlen@PLT
	add	eax, 1
	mov	DWORD PTR -16[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	section_ptr_add
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	memcpy@PLT
	mov	eax, DWORD PTR -12[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE267:
	.size	put_elf_str, .-put_elf_str
	.type	elf_hash, @function
elf_hash:
.LFB268:
	.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 -16[rbp], 0
	jmp	.L3233
.L3235:
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -24[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	rax, rcx
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	and	eax, 4026531840
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	je	.L3234
	mov	rax, QWORD PTR -8[rbp]
	shr	rax, 24
	xor	QWORD PTR -16[rbp], rax
.L3234:
	mov	rax, QWORD PTR -8[rbp]
	not	rax
	and	QWORD PTR -16[rbp], rax
.L3233:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L3235
	mov	rax, QWORD PTR -16[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE268:
	.size	elf_hash, .-elf_hash
	.type	rebuild_hash, @function
rebuild_hash:
.LFB269:
	.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	DWORD PTR -60[rbp], esi
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 88[rax]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR [rax]
	shr	rax, 4
	mov	DWORD PTR -40[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 104[rax]
	mov	QWORD PTR [rax], 0
	mov	edx, DWORD PTR -40[rbp]
	mov	eax, DWORD PTR -60[rbp]
	add	eax, edx
	add	eax, 2
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 104[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	section_ptr_add
	mov	QWORD PTR -24[rbp], rax
	mov	edx, DWORD PTR -60[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 4[rax]
	mov	eax, DWORD PTR -40[rbp]
	mov	DWORD PTR [rdx], eax
	add	QWORD PTR -24[rbp], 8
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -60[rbp]
	add	eax, 1
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	eax, DWORD PTR -60[rbp]
	add	eax, 1
	mov	eax, eax
	sal	rax, 2
	add	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 8[rax]
	add	rax, 16
	mov	QWORD PTR -32[rbp], rax
	mov	DWORD PTR -44[rbp], 1
	jmp	.L3238
.L3241:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 12[rax]
	shr	al, 4
	test	al, al
	je	.L3239
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	mov	rdi, rax
	call	elf_hash
	mov	ecx, DWORD PTR -60[rbp]
	mov	edx, 0
	div	rcx
	mov	rax, rdx
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -8[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -44[rbp]
	mov	DWORD PTR [rdx], eax
	jmp	.L3240
.L3239:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], 0
.L3240:
	add	QWORD PTR -24[rbp], 4
	add	QWORD PTR -32[rbp], 16
	add	DWORD PTR -44[rbp], 1
.L3238:
	mov	eax, DWORD PTR -44[rbp]
	cmp	eax, DWORD PTR -40[rbp]
	jl	.L3241
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE269:
	.size	rebuild_hash, .-rebuild_hash
	.type	put_elf_sym, @function
put_elf_sym:
.LFB270:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	QWORD PTR -72[rbp], rdx
	mov	DWORD PTR -76[rbp], ecx
	mov	DWORD PTR -80[rbp], r8d
	mov	DWORD PTR -84[rbp], r9d
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 16
	mov	rdi, rax
	call	section_ptr_add
	mov	QWORD PTR -32[rbp], rax
	cmp	QWORD PTR 16[rbp], 0
	je	.L3243
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 88[rax]
	mov	rsi, QWORD PTR 16[rbp]
	mov	rdi, rax
	call	put_elf_str
	mov	DWORD PTR -48[rbp], eax
	jmp	.L3244
.L3243:
	mov	DWORD PTR -48[rbp], 0
.L3244:
	mov	edx, DWORD PTR -48[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR 8[rax], edx
	mov	eax, DWORD PTR -76[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	BYTE PTR 12[rax], dl
	mov	eax, DWORD PTR -80[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	BYTE PTR 13[rax], dl
	mov	eax, DWORD PTR -84[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	WORD PTR 14[rax], dx
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -32[rbp]
	sub	rax, rdx
	sar	rax, 4
	mov	DWORD PTR -44[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 104[rax]
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	je	.L3245
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 4
	mov	rdi, rax
	call	section_ptr_add
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -76[rbp]
	shr	al, 4
	test	al, al
	je	.L3246
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -40[rbp], eax
	mov	rdi, QWORD PTR 16[rbp]
	call	elf_hash
	mov	edx, DWORD PTR -40[rbp]
	movsx	rcx, edx
	mov	edx, 0
	div	rcx
	mov	rax, rdx
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	add	eax, 2
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -36[rbp]
	add	eax, 2
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -8[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -44[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	add	edx, 1
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 80[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 80[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 80[rax]
	mov	edx, DWORD PTR -40[rbp]
	add	edx, edx
	cmp	eax, edx
	jle	.L3245
	mov	eax, DWORD PTR -40[rbp]
	add	eax, eax
	mov	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	rebuild_hash
	jmp	.L3245
.L3246:
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	add	edx, 1
	mov	DWORD PTR [rax], edx
.L3245:
	mov	eax, DWORD PTR -44[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE270:
	.size	put_elf_sym, .-put_elf_sym
	.type	find_elf_sym, @function
find_elf_sym:
.LFB271:
	.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	rax, QWORD PTR 104[rax]
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	jne	.L3249
	mov	eax, 0
	jmp	.L3250
.L3249:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, rax
	call	elf_hash
	mov	edx, DWORD PTR -32[rbp]
	movsx	rcx, edx
	mov	edx, 0
	div	rcx
	mov	rax, rdx
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -28[rbp]
	add	eax, 2
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -36[rbp], eax
	jmp	.L3251
.L3253:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 88[rax]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L3252
	mov	eax, DWORD PTR -36[rbp]
	jmp	.L3250
.L3252:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -32[rbp]
	lea	ecx, 2[rax]
	mov	eax, DWORD PTR -36[rbp]
	add	eax, ecx
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -36[rbp], eax
.L3251:
	cmp	DWORD PTR -36[rbp], 0
	jne	.L3253
	mov	eax, 0
.L3250:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE271:
	.size	find_elf_sym, .-find_elf_sym
	.globl	tcc_get_symbol
	.type	tcc_get_symbol, @function
tcc_get_symbol:
.LFB272:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	find_elf_sym
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 0
	jne	.L3255
	mov	eax, -1
	jmp	.L3256
.L3255:
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, 0
.L3256:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE272:
	.size	tcc_get_symbol, .-tcc_get_symbol
	.section	.rodata
.LC207:
	.string	"%s not defined"
	.text
	.globl	tcc_get_symbol_err
	.type	tcc_get_symbol_err, @function
tcc_get_symbol_err:
.LFB273:
	.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 fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rdx, QWORD PTR -32[rbp]
	lea	rcx, -16[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	tcc_get_symbol
	test	eax, eax
	jns	.L3258
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC207[rip]
	mov	eax, 0
	call	error
.L3258:
	mov	rax, QWORD PTR -16[rbp]
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L3260
	call	__stack_chk_fail@PLT
.L3260:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE273:
	.size	tcc_get_symbol_err, .-tcc_get_symbol_err
	.section	.rodata
.LC208:
	.string	"'%s' defined twice"
	.text
	.type	add_elf_sym, @function
add_elf_sym:
.LFB274:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -56[rbp], rdx
	mov	DWORD PTR -60[rbp], ecx
	mov	DWORD PTR -64[rbp], r8d
	mov	DWORD PTR -68[rbp], r9d
	mov	eax, DWORD PTR -60[rbp]
	shr	al, 4
	movzx	eax, al
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -60[rbp]
	and	eax, 15
	mov	DWORD PTR -16[rbp], eax
	cmp	DWORD PTR -20[rbp], 0
	je	.L3270
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR 16[rbp]
	mov	rdi, rax
	call	find_elf_sym
	mov	DWORD PTR -24[rbp], eax
	cmp	DWORD PTR -24[rbp], 0
	je	.L3271
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 14[rax]
	test	ax, ax
	je	.L3272
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 12[rax]
	shr	al, 4
	movzx	eax, al
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -68[rbp], 0
	je	.L3268
	cmp	DWORD PTR -20[rbp], 1
	jne	.L3266
	cmp	DWORD PTR -12[rbp], 2
	je	.L3273
.L3266:
	cmp	DWORD PTR -20[rbp], 2
	jne	.L3267
	cmp	DWORD PTR -12[rbp], 1
	je	.L3268
.L3267:
	mov	rax, QWORD PTR tcc_state[rip]
	mov	rax, QWORD PTR 160[rax]
	cmp	QWORD PTR -40[rbp], rax
	je	.L3268
	mov	rsi, QWORD PTR 16[rbp]
	lea	rdi, .LC208[rip]
	mov	eax, 0
	call	error_noabort
	jmp	.L3268
.L3272:
	nop
	jmp	.L3264
.L3273:
	nop
.L3264:
	mov	eax, DWORD PTR -20[rbp]
	sal	eax, 4
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	and	eax, 15
	add	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 12[rax], dl
	mov	eax, DWORD PTR -68[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	WORD PTR 14[rax], dx
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 8[rax], edx
	mov	eax, DWORD PTR -64[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 13[rax], dl
	jmp	.L3268
.L3270:
	nop
	jmp	.L3262
.L3271:
	nop
.L3262:
	mov	eax, DWORD PTR -20[rbp]
	sal	eax, 4
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	and	eax, 15
	lea	ecx, [rdx+rax]
	mov	r8d, DWORD PTR -68[rbp]
	mov	edi, DWORD PTR -64[rbp]
	mov	rdx, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -40[rbp]
	sub	rsp, 8
	push	QWORD PTR 16[rbp]
	mov	r9d, r8d
	mov	r8d, edi
	mov	rdi, rax
	call	put_elf_sym
	add	rsp, 16
	mov	DWORD PTR -24[rbp], eax
.L3268:
	mov	eax, DWORD PTR -24[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE274:
	.size	add_elf_sym, .-add_elf_sym
	.section	.rodata
.LC209:
	.string	".rel%s"
	.text
	.type	put_elf_reloc, @function
put_elf_reloc:
.LFB275:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 320
	mov	QWORD PTR -296[rbp], rdi
	mov	QWORD PTR -304[rbp], rsi
	mov	QWORD PTR -312[rbp], rdx
	mov	DWORD PTR -316[rbp], ecx
	mov	DWORD PTR -320[rbp], r8d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -304[rbp]
	mov	rax, QWORD PTR 96[rax]
	mov	QWORD PTR -288[rbp], rax
	cmp	QWORD PTR -288[rbp], 0
	jne	.L3275
	mov	rax, QWORD PTR -304[rbp]
	lea	rdx, 120[rax]
	lea	rax, -272[rbp]
	mov	rcx, rdx
	lea	rdx, .LC209[rip]
	mov	esi, 256
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	mov	rax, QWORD PTR -296[rbp]
	mov	edx, DWORD PTR 36[rax]
	mov	rax, QWORD PTR tcc_state[rip]
	lea	rsi, -272[rbp]
	mov	ecx, edx
	mov	edx, 9
	mov	rdi, rax
	call	new_section
	mov	QWORD PTR -288[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	mov	DWORD PTR 48[rax], 8
	mov	rax, QWORD PTR -288[rbp]
	mov	rdx, QWORD PTR -296[rbp]
	mov	QWORD PTR 88[rax], rdx
	mov	rax, QWORD PTR -304[rbp]
	mov	edx, DWORD PTR 28[rax]
	mov	rax, QWORD PTR -288[rbp]
	mov	DWORD PTR 40[rax], edx
	mov	rax, QWORD PTR -304[rbp]
	mov	rdx, QWORD PTR -288[rbp]
	mov	QWORD PTR 96[rax], rdx
.L3275:
	mov	rax, QWORD PTR -288[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	section_ptr_add
	mov	QWORD PTR -280[rbp], rax
	mov	rax, QWORD PTR -312[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -280[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -320[rbp]
	sal	eax, 8
	mov	edx, eax
	mov	eax, DWORD PTR -316[rbp]
	movzx	eax, al
	add	eax, edx
	mov	edx, eax
	mov	rax, QWORD PTR -280[rbp]
	mov	DWORD PTR 4[rax], edx
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L3276
	call	__stack_chk_fail@PLT
.L3276:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE275:
	.size	put_elf_reloc, .-put_elf_reloc
	.type	put_stabs, @function
put_stabs:
.LFB276:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	DWORD PTR -32[rbp], edx
	mov	DWORD PTR -36[rbp], ecx
	mov	QWORD PTR -48[rbp], r8
	mov	rax, QWORD PTR stab_section[rip]
	mov	esi, 24
	mov	rdi, rax
	call	section_ptr_add
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	je	.L3278
	mov	rax, QWORD PTR stabstr_section[rip]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	put_elf_str
	movsx	rdx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	jmp	.L3279
.L3278:
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], 0
.L3279:
	mov	eax, DWORD PTR -28[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 8[rax], dl
	mov	eax, DWORD PTR -32[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 9[rax], dl
	mov	eax, DWORD PTR -36[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	WORD PTR 10[rax], dx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -48[rbp]
	mov	QWORD PTR 16[rax], rdx
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE276:
	.size	put_stabs, .-put_stabs
	.type	put_stabs_r, @function
put_stabs_r:
.LFB277:
	.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 -8[rbp], rdi
	mov	DWORD PTR -12[rbp], esi
	mov	DWORD PTR -16[rbp], edx
	mov	DWORD PTR -20[rbp], ecx
	mov	QWORD PTR -32[rbp], r8
	mov	QWORD PTR -40[rbp], r9
	mov	rdi, QWORD PTR -32[rbp]
	mov	ecx, DWORD PTR -20[rbp]
	mov	edx, DWORD PTR -16[rbp]
	mov	esi, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	put_stabs
	mov	rax, QWORD PTR stab_section[rip]
	mov	rax, QWORD PTR [rax]
	lea	rdx, -8[rax]
	mov	rsi, QWORD PTR stab_section[rip]
	mov	rax, QWORD PTR symtab_section[rip]
	mov	r8d, DWORD PTR 16[rbp]
	mov	ecx, 1
	mov	rdi, rax
	call	put_elf_reloc
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE277:
	.size	put_stabs_r, .-put_stabs_r
	.type	put_stabn, @function
put_stabn:
.LFB278:
	.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	DWORD PTR -8[rbp], esi
	mov	DWORD PTR -12[rbp], edx
	mov	DWORD PTR -16[rbp], ecx
	mov	eax, DWORD PTR -16[rbp]
	movsx	rsi, eax
	mov	ecx, DWORD PTR -12[rbp]
	mov	edx, DWORD PTR -8[rbp]
	mov	eax, DWORD PTR -4[rbp]
	mov	r8, rsi
	mov	esi, eax
	mov	edi, 0
	call	put_stabs
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE278:
	.size	put_stabn, .-put_stabn
	.type	put_stabd, @function
put_stabd:
.LFB279:
	.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	DWORD PTR -8[rbp], esi
	mov	DWORD PTR -12[rbp], edx
	mov	ecx, DWORD PTR -12[rbp]
	mov	edx, DWORD PTR -8[rbp]
	mov	eax, DWORD PTR -4[rbp]
	mov	r8d, 0
	mov	esi, eax
	mov	edi, 0
	call	put_stabs
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE279:
	.size	put_stabd, .-put_stabd
	.type	sort_syms, @function
sort_syms:
.LFB280:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	mov	QWORD PTR -88[rbp], rdi
	mov	QWORD PTR -96[rbp], rsi
	mov	rax, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR [rax]
	shr	rax, 4
	mov	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	cdqe
	sal	rax, 4
	mov	rdi, rax
	call	tcc_malloc
	mov	QWORD PTR -32[rbp], rax
	mov	eax, DWORD PTR -68[rbp]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	tcc_malloc
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	DWORD PTR -72[rbp], 0
	jmp	.L3284
.L3286:
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR 12[rax]
	shr	al, 4
	test	al, al
	jne	.L3285
	mov	rax, QWORD PTR -48[rbp]
	sub	rax, QWORD PTR -32[rbp]
	sar	rax, 4
	mov	rdx, rax
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	lea	rcx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rcx
	mov	DWORD PTR [rax], edx
	mov	rcx, QWORD PTR -48[rbp]
	lea	rax, 16[rcx]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR [rcx], rax
	mov	QWORD PTR 8[rcx], rdx
.L3285:
	add	QWORD PTR -56[rbp], 16
	add	DWORD PTR -72[rbp], 1
.L3284:
	mov	eax, DWORD PTR -72[rbp]
	cmp	eax, DWORD PTR -68[rbp]
	jl	.L3286
	mov	rax, QWORD PTR -48[rbp]
	sub	rax, QWORD PTR -32[rbp]
	sar	rax, 4
	mov	edx, eax
	mov	rax, QWORD PTR -96[rbp]
	mov	DWORD PTR 40[rax], edx
	mov	rax, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -56[rbp], rax
	mov	DWORD PTR -72[rbp], 0
	jmp	.L3287
.L3289:
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR 12[rax]
	shr	al, 4
	test	al, al
	je	.L3288
	mov	rax, QWORD PTR -48[rbp]
	sub	rax, QWORD PTR -32[rbp]
	sar	rax, 4
	mov	rdx, rax
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	lea	rcx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rcx
	mov	DWORD PTR [rax], edx
	mov	rcx, QWORD PTR -48[rbp]
	lea	rax, 16[rcx]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR [rcx], rax
	mov	QWORD PTR 8[rcx], rdx
.L3288:
	add	QWORD PTR -56[rbp], 16
	add	DWORD PTR -72[rbp], 1
.L3287:
	mov	eax, DWORD PTR -72[rbp]
	cmp	eax, DWORD PTR -68[rbp]
	jl	.L3289
	mov	eax, DWORD PTR -68[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rcx, QWORD PTR -32[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	memcpy@PLT
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	tcc_free
	mov	DWORD PTR -72[rbp], 1
	jmp	.L3290
.L3294:
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR 104[rax]
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	eax, 9
	jne	.L3291
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 88[rax]
	cmp	QWORD PTR -96[rbp], rax
	jne	.L3291
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -40[rbp], rax
	jmp	.L3292
.L3293:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 4[rax]
	shr	eax, 8
	mov	DWORD PTR -64[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 4[rax]
	and	eax, 255
	mov	DWORD PTR -60[rbp], eax
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -64[rbp], eax
	mov	eax, DWORD PTR -64[rbp]
	sal	eax, 8
	mov	edx, eax
	mov	eax, DWORD PTR -60[rbp]
	movzx	eax, al
	add	eax, edx
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 4[rax], edx
	add	QWORD PTR -40[rbp], 8
.L3292:
	mov	rax, QWORD PTR -40[rbp]
	cmp	rax, QWORD PTR -8[rbp]
	jb	.L3293
.L3291:
	add	DWORD PTR -72[rbp], 1
.L3290:
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 112[rax]
	cmp	DWORD PTR -72[rbp], eax
	jl	.L3294
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	tcc_free
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE280:
	.size	sort_syms, .-sort_syms
	.type	relocate_common_syms, @function
relocate_common_syms:
.LFB281:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rax, QWORD PTR [rax]
	add	rax, rdx
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rax, QWORD PTR 8[rax]
	add	rax, 16
	mov	QWORD PTR -32[rbp], rax
	jmp	.L3296
.L3298:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, WORD PTR 14[rax]
	cmp	ax, -14
	jne	.L3297
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	eax, eax
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR bss_section[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -16[rbp]
	neg	rax
	and	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR bss_section[rip]
	mov	eax, DWORD PTR 28[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	WORD PTR 14[rax], dx
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	eax, eax
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR bss_section[rip]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
.L3297:
	add	QWORD PTR -32[rbp], 16
.L3296:
	mov	rax, QWORD PTR -32[rbp]
	cmp	rax, QWORD PTR -24[rbp]
	jb	.L3298
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE281:
	.size	relocate_common_syms, .-relocate_common_syms
	.section	.rodata
.LC210:
	.string	"_fp_hw"
.LC211:
	.string	"undefined symbol '%s'"
	.text
	.type	relocate_syms, @function
relocate_syms:
.LFB282:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -72[rbp], rdi
	mov	DWORD PTR -76[rbp], esi
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rax, QWORD PTR [rax]
	add	rax, rdx
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rax, QWORD PTR 8[rax]
	add	rax, 16
	mov	QWORD PTR -40[rbp], rax
	jmp	.L3300
.L3307:
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, WORD PTR 14[rax]
	movzx	eax, ax
	mov	DWORD PTR -52[rbp], eax
	cmp	DWORD PTR -52[rbp], 0
	jne	.L3301
	mov	rax, QWORD PTR strtab_section[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	add	rax, rdx
	mov	QWORD PTR -32[rbp], rax
	cmp	DWORD PTR -76[rbp], 0
	je	.L3302
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rax, QWORD PTR 88[rax]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	add	rax, rdx
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 12[rax]
	movzx	eax, al
	and	eax, 15
	mov	edx, eax
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	resolve_sym
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	je	.L3303
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 4[rax], edx
	jmp	.L3304
.L3302:
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 168[rax]
	test	rax, rax
	je	.L3303
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 168[rax]
	mov	rdx, QWORD PTR -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	find_elf_sym
	mov	DWORD PTR -48[rbp], eax
	cmp	DWORD PTR -48[rbp], 0
	je	.L3303
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 168[rax]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 4[rax], edx
	jmp	.L3304
.L3303:
	mov	rax, QWORD PTR -32[rbp]
	lea	rsi, .LC210[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	je	.L3308
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 12[rax]
	shr	al, 4
	movzx	eax, al
	mov	DWORD PTR -44[rbp], eax
	cmp	DWORD PTR -44[rbp], 2
	jne	.L3306
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 4[rax], 0
	jmp	.L3304
.L3306:
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rax
	lea	rdi, .LC211[rip]
	mov	eax, 0
	call	error_noabort
	jmp	.L3304
.L3301:
	cmp	DWORD PTR -52[rbp], 65279
	jg	.L3309
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	rcx, QWORD PTR 104[rax]
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, WORD PTR 14[rax]
	movzx	eax, ax
	sal	rax, 3
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 64[rax]
	add	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 4[rax], edx
	jmp	.L3304
.L3308:
	nop
	jmp	.L3304
.L3309:
	nop
.L3304:
	add	QWORD PTR -40[rbp], 16
.L3300:
	mov	rax, QWORD PTR -40[rbp]
	cmp	rax, QWORD PTR -24[rbp]
	jb	.L3307
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE282:
	.size	relocate_syms, .-relocate_syms
	.type	relocate_section, @function
relocate_section:
.LFB283:
	.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 -88[rbp], rdi
	mov	QWORD PTR -96[rbp], rsi
	mov	rax, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR 96[rax]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR [rax]
	add	rax, rdx
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -64[rbp], rax
	jmp	.L3311
.L3324:
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	add	rax, rdx
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 4[rax]
	shr	eax, 8
	mov	DWORD PTR -76[rbp], eax
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -76[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	eax, eax
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 4[rax]
	and	eax, 255
	mov	DWORD PTR -72[rbp], eax
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	cmp	DWORD PTR -72[rbp], 10
	ja	.L3312
	mov	eax, DWORD PTR -72[rbp]
	lea	rdx, 0[0+rax*4]
	lea	rax, .L3314[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L3314[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L3314:
	.long	.L3312-.L3314
	.long	.L3320-.L3314
	.long	.L3319-.L3314
	.long	.L3318-.L3314
	.long	.L3317-.L3314
	.long	.L3312-.L3314
	.long	.L3316-.L3314
	.long	.L3316-.L3314
	.long	.L3312-.L3314
	.long	.L3315-.L3314
	.long	.L3313-.L3314
	.text
.L3320:
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	jne	.L3321
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -76[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -68[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR [rax], edx
	cmp	DWORD PTR -68[rbp], 0
	je	.L3322
	mov	eax, DWORD PTR -68[rbp]
	sal	eax, 8
	add	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 4[rax], edx
	add	QWORD PTR -56[rbp], 8
	jmp	.L3312
.L3322:
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 4[rax], 8
	add	QWORD PTR -56[rbp], 8
.L3321:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -16[rbp]
	add	eax, edx
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L3312
.L3319:
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	jne	.L3323
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -76[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -68[rbp], eax
	cmp	DWORD PTR -68[rbp], 0
	je	.L3323
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -68[rbp]
	sal	eax, 8
	add	eax, 2
	mov	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 4[rax], edx
	add	QWORD PTR -56[rbp], 8
	jmp	.L3312
.L3323:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, eax
	mov	eax, edx
	sub	eax, esi
	add	eax, ecx
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L3312
.L3317:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, eax
	mov	eax, edx
	sub	eax, esi
	add	eax, ecx
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L3312
.L3316:
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L3312
.L3313:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	rax, QWORD PTR 64[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, eax
	mov	eax, edx
	sub	eax, esi
	add	eax, ecx
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L3312
.L3315:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	rax, QWORD PTR 64[rax]
	mov	esi, eax
	mov	eax, edx
	sub	eax, esi
	add	eax, ecx
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L3312
.L3318:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -76[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	add	eax, ecx
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
	nop
.L3312:
	add	QWORD PTR -64[rbp], 8
.L3311:
	mov	rax, QWORD PTR -64[rbp]
	cmp	rax, QWORD PTR -40[rbp]
	jb	.L3324
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 36[rax]
	and	eax, 2
	test	eax, eax
	je	.L3326
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR 168[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR 88[rax], rdx
.L3326:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE283:
	.size	relocate_section, .-relocate_section
	.type	relocate_rel, @function
relocate_rel:
.LFB284:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 104[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 40[rax]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR [rax]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -24[rbp], rax
	jmp	.L3328
.L3329:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 64[rax]
	add	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	add	QWORD PTR -24[rbp], 8
.L3328:
	mov	rax, QWORD PTR -24[rbp]
	cmp	rax, QWORD PTR -8[rbp]
	jb	.L3329
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE284:
	.size	relocate_rel, .-relocate_rel
	.type	prepare_dynamic_rel, @function
prepare_dynamic_rel:
.LFB285:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	DWORD PTR -32[rbp], 0
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR [rax]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -16[rbp], rax
	jmp	.L3331
.L3337:
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR 4[rax]
	shr	eax, 8
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR 4[rax]
	and	eax, 255
	mov	DWORD PTR -24[rbp], eax
	cmp	DWORD PTR -24[rbp], 1
	je	.L3332
	cmp	DWORD PTR -24[rbp], 2
	je	.L3333
	jmp	.L3335
.L3332:
	add	DWORD PTR -32[rbp], 1
	jmp	.L3335
.L3333:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -20[rbp], eax
	cmp	DWORD PTR -20[rbp], 0
	je	.L3340
	add	DWORD PTR -32[rbp], 1
.L3340:
	nop
.L3335:
	add	QWORD PTR -16[rbp], 8
.L3331:
	mov	rax, QWORD PTR -16[rbp]
	cmp	rax, QWORD PTR -8[rbp]
	jb	.L3337
	cmp	DWORD PTR -32[rbp], 0
	je	.L3338
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 36[rax]
	or	eax, 2
	mov	edx, eax
	mov	rax, QWORD PTR -48[rbp]
	mov	DWORD PTR 36[rax], edx
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR 56[rax], rdx
.L3338:
	mov	eax, DWORD PTR -32[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE285:
	.size	prepare_dynamic_rel, .-prepare_dynamic_rel
	.type	put_got_offset, @function
put_got_offset:
.LFB286:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 144[rax]
	cmp	DWORD PTR -28[rbp], eax
	jl	.L3342
	mov	DWORD PTR -12[rbp], 1
	jmp	.L3343
.L3344:
	sal	DWORD PTR -12[rbp]
.L3343:
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, DWORD PTR -12[rbp]
	jge	.L3344
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 136[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	tcc_realloc
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L3345
	lea	rdi, .LC4[rip]
	mov	eax, 0
	call	error
.L3345:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 136[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 144[rax]
	mov	eax, DWORD PTR -12[rbp]
	sub	eax, edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -24[rbp]
	mov	rcx, QWORD PTR 136[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 144[rax]
	cdqe
	sal	rax, 3
	add	rax, rcx
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	DWORD PTR 144[rax], edx
.L3342:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	sal	rax, 3
	add	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR [rdx], rax
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE286:
	.size	put_got_offset, .-put_got_offset
	.type	put32, @function
put32:
.LFB287:
	.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	DWORD PTR -12[rbp], esi
	mov	eax, DWORD PTR -12[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR [rax], dl
	mov	eax, DWORD PTR -12[rbp]
	shr	eax, 8
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 1
	mov	BYTE PTR [rax], dl
	mov	eax, DWORD PTR -12[rbp]
	shr	eax, 16
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 2
	mov	BYTE PTR [rax], dl
	mov	eax, DWORD PTR -12[rbp]
	shr	eax, 24
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 3
	mov	BYTE PTR [rax], dl
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE287:
	.size	put32, .-put32
	.type	get32, @function
get32:
.LFB288:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 8
	or	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 16
	or	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 24
	or	eax, edx
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE288:
	.size	get32, .-get32
	.section	.rodata
.LC212:
	.string	".got"
.LC213:
	.string	"_GLOBAL_OFFSET_TABLE_"
	.text
	.type	build_got, @function
build_got:
.LFB289:
	.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	ecx, 3
	mov	edx, 1
	lea	rsi, .LC212[rip]
	mov	rdi, rax
	call	new_section
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 120[rdx], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	DWORD PTR 48[rax], 4
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	ecx, DWORD PTR 28[rax]
	mov	rax, QWORD PTR symtab_section[rip]
	sub	rsp, 8
	lea	rdx, .LC213[rip]
	push	rdx
	mov	r9d, ecx
	mov	r8d, 0
	mov	ecx, 17
	mov	edx, 4
	mov	esi, 0
	mov	rdi, rax
	call	add_elf_sym
	add	rsp, 16
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	esi, 12
	mov	rdi, rax
	call	section_ptr_add
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	put32
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 4
	mov	esi, 0
	mov	rdi, rax
	call	put32
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 8
	mov	esi, 0
	mov	rdi, rax
	call	put32
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE289:
	.size	build_got, .-build_got
	.type	put_got_entry, @function
put_got_entry:
.LFB290:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	mov	QWORD PTR -72[rbp], rdi
	mov	DWORD PTR -76[rbp], esi
	mov	QWORD PTR -88[rbp], rdx
	mov	DWORD PTR -80[rbp], ecx
	mov	DWORD PTR -92[rbp], r8d
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 120[rax]
	test	rax, rax
	jne	.L3351
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	build_got
.L3351:
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR 144[rax]
	cmp	DWORD PTR -92[rbp], eax
	jge	.L3352
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L3359
.L3352:
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	rdx, QWORD PTR [rax]
	mov	ecx, DWORD PTR -92[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	put_got_offset
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 168[rax]
	test	rax, rax
	je	.L3354
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -92[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rax, QWORD PTR 88[rax]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	add	rax, rdx
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	eax, eax
	mov	QWORD PTR -48[rbp], rax
	cmp	DWORD PTR -76[rbp], 7
	jne	.L3355
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 2
	jne	.L3356
	mov	DWORD PTR -56[rbp], 163
	jmp	.L3357
.L3356:
	mov	DWORD PTR -56[rbp], 37
.L3357:
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 128[rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L3358
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 16
	mov	rdi, rax
	call	section_ptr_add
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR [rax], -1
	mov	eax, DWORD PTR -56[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 1
	add	edx, 16
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 2
	mov	esi, 4
	mov	rdi, rax
	call	put32
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 6
	mov	BYTE PTR [rax], -1
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 7
	mov	edx, DWORD PTR -56[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 8
	mov	esi, 8
	mov	rdi, rax
	call	put32
.L3358:
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 16
	mov	rdi, rax
	call	section_ptr_add
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR [rax], -1
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 1
	mov	edx, DWORD PTR -56[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	rax, QWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 2
	mov	esi, edx
	mov	rdi, rax
	call	put32
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 6
	mov	BYTE PTR [rax], 104
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	sub	rax, 32
	shr	rax
	mov	edx, eax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 7
	mov	esi, edx
	mov	rdi, rax
	call	put32
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 11
	mov	BYTE PTR [rax], -23
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	neg	eax
	mov	edx, eax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 12
	mov	esi, edx
	mov	rdi, rax
	call	put32
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 1
	jne	.L3355
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	sub	rax, 16
	mov	QWORD PTR -48[rbp], rax
.L3355:
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, WORD PTR 14[rax]
	movzx	edi, ax
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 168[rax]
	mov	ecx, DWORD PTR -80[rbp]
	mov	rdx, QWORD PTR -88[rbp]
	mov	rsi, QWORD PTR -48[rbp]
	sub	rsp, 8
	push	QWORD PTR -32[rbp]
	mov	r9d, edi
	mov	r8d, 0
	mov	rdi, rax
	call	put_elf_sym
	add	rsp, 16
	mov	DWORD PTR -52[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, QWORD PTR 120[rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 168[rax]
	mov	edi, DWORD PTR -52[rbp]
	mov	ecx, DWORD PTR -76[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	put_elf_reloc
.L3354:
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	esi, 4
	mov	rdi, rax
	call	section_ptr_add
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], 0
	jmp	.L3350
.L3359:
	nop
.L3350:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE290:
	.size	put_got_entry, .-put_got_entry
	.type	build_got_entries, @function
build_got_entries:
.LFB291:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -72[rbp], rdi
	mov	DWORD PTR -56[rbp], 1
	jmp	.L3361
.L3376:
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR 104[rax]
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	eax, 9
	jne	.L3377
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 88[rax]
	mov	rax, QWORD PTR symtab_section[rip]
	cmp	rdx, rax
	jne	.L3378
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 88[rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR [rax]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -40[rbp], rax
	jmp	.L3365
.L3375:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 4[rax]
	and	eax, 255
	mov	DWORD PTR -48[rbp], eax
	cmp	DWORD PTR -48[rbp], 4
	jg	.L3366
	cmp	DWORD PTR -48[rbp], 3
	jge	.L3367
	jmp	.L3379
.L3366:
	mov	eax, DWORD PTR -48[rbp]
	sub	eax, 9
	cmp	eax, 1
	ja	.L3379
.L3367:
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR 120[rax]
	test	rax, rax
	jne	.L3369
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	build_got
.L3369:
	cmp	DWORD PTR -48[rbp], 3
	je	.L3370
	cmp	DWORD PTR -48[rbp], 4
	jne	.L3380
.L3370:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 4[rax]
	shr	eax, 8
	mov	DWORD PTR -44[rbp], eax
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	cmp	DWORD PTR -48[rbp], 3
	jne	.L3372
	mov	DWORD PTR -52[rbp], 6
	jmp	.L3373
.L3372:
	mov	DWORD PTR -52[rbp], 7
.L3373:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 12[rax]
	movzx	edx, al
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	edi, eax
	mov	ecx, DWORD PTR -44[rbp]
	mov	esi, DWORD PTR -52[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	rdx, rdi
	mov	rdi, rax
	call	put_got_entry
	jmp	.L3380
.L3379:
	nop
	jmp	.L3374
.L3380:
	nop
.L3374:
	add	QWORD PTR -40[rbp], 8
.L3365:
	mov	rax, QWORD PTR -40[rbp]
	cmp	rax, QWORD PTR -16[rbp]
	jb	.L3375
	jmp	.L3363
.L3377:
	nop
	jmp	.L3363
.L3378:
	nop
.L3363:
	add	DWORD PTR -56[rbp], 1
.L3361:
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR 112[rax]
	cmp	DWORD PTR -56[rbp], eax
	jl	.L3376
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE291:
	.size	build_got_entries, .-build_got_entries
	.type	new_symtab, @function
new_symtab:
.LFB292:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	DWORD PTR -68[rbp], edx
	mov	DWORD PTR -72[rbp], ecx
	mov	QWORD PTR -80[rbp], r8
	mov	QWORD PTR -88[rbp], r9
	mov	ecx, DWORD PTR -72[rbp]
	mov	edx, DWORD PTR -68[rbp]
	mov	rsi, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	new_section
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR 48[rax], 16
	mov	edx, DWORD PTR -72[rbp]
	mov	rsi, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	ecx, edx
	mov	edx, 3
	mov	rdi, rax
	call	new_section
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC34[rip]
	mov	rdi, rax
	call	put_elf_str
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 88[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	sub	rsp, 8
	push	0
	mov	r9d, 0
	mov	r8d, 0
	mov	ecx, 0
	mov	edx, 0
	mov	esi, 0
	mov	rdi, rax
	call	put_elf_sym
	add	rsp, 16
	mov	DWORD PTR -36[rbp], 1
	mov	rsi, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	ecx, DWORD PTR 16[rbp]
	mov	edx, 5
	mov	rdi, rax
	call	new_section
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR 48[rax], 4
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 104[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 88[rax], rdx
	mov	eax, DWORD PTR -36[rbp]
	add	eax, 3
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -16[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	section_ptr_add
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -36[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 4
	mov	DWORD PTR [rax], 1
	mov	eax, DWORD PTR -36[rbp]
	add	eax, 1
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 8
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	rax, QWORD PTR -32[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE292:
	.size	new_symtab, .-new_symtab
	.type	put_dt, @function
put_dt:
.LFB293:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	section_ptr_add
	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 -40[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 4[rax], edx
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE293:
	.size	put_dt, .-put_dt
	.section	.rodata
.LC214:
	.string	"__%s_start"
.LC215:
	.string	"__%s_end"
	.text
	.type	add_init_array_defines, @function
add_init_array_defines:
.LFB294:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 2096
	mov	QWORD PTR -2088[rbp], rdi
	mov	QWORD PTR -2096[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -2096[rbp]
	lea	rdx, 1[rax]
	lea	rax, -2064[rbp]
	mov	rcx, rdx
	lea	rdx, .LC214[rip]
	mov	esi, 1024
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	mov	rax, QWORD PTR -2096[rbp]
	lea	rdx, 1[rax]
	lea	rax, -1040[rbp]
	mov	rcx, rdx
	lea	rdx, .LC215[rip]
	mov	esi, 1024
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	mov	rdx, QWORD PTR -2096[rbp]
	mov	rax, QWORD PTR -2088[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	find_section
	mov	QWORD PTR -2080[rbp], rax
	cmp	QWORD PTR -2080[rbp], 0
	jne	.L3385
	mov	QWORD PTR -2072[rbp], 0
	mov	rax, QWORD PTR data_section[rip]
	mov	QWORD PTR -2080[rbp], rax
	jmp	.L3386
.L3385:
	mov	rax, QWORD PTR -2080[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -2072[rbp], rax
.L3386:
	mov	rax, QWORD PTR -2080[rbp]
	mov	ecx, DWORD PTR 28[rax]
	mov	rax, QWORD PTR symtab_section[rip]
	sub	rsp, 8
	lea	rdx, -2064[rbp]
	push	rdx
	mov	r9d, ecx
	mov	r8d, 0
	mov	ecx, 16
	mov	edx, 0
	mov	esi, 0
	mov	rdi, rax
	call	add_elf_sym
	add	rsp, 16
	mov	rax, QWORD PTR -2080[rbp]
	mov	ecx, DWORD PTR 28[rax]
	mov	rsi, QWORD PTR -2072[rbp]
	mov	rax, QWORD PTR symtab_section[rip]
	sub	rsp, 8
	lea	rdx, -1040[rbp]
	push	rdx
	mov	r9d, ecx
	mov	r8d, 0
	mov	ecx, 16
	mov	edx, 0
	mov	rdi, rax
	call	add_elf_sym
	add	rsp, 16
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L3387
	call	__stack_chk_fail@PLT
.L3387:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE294:
	.size	add_init_array_defines, .-add_init_array_defines
	.section	.rodata
.LC216:
	.string	"__bounds_start"
.LC217:
	.string	"bcheck.o"
.LC218:
	.string	"%s/%s"
.LC219:
	.string	".init"
.LC220:
	.string	"__bound_init"
.LC221:
	.string	"c"
.LC222:
	.string	"libtcc1.a"
.LC223:
	.string	"/usr/lib/crtn.o"
	.text
	.type	tcc_add_runtime, @function
tcc_add_runtime:
.LFB295:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 1088
	mov	QWORD PTR -1080[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR do_bounds_check[rip]
	test	eax, eax
	je	.L3389
	mov	rax, QWORD PTR bounds_section[rip]
	mov	esi, 8
	mov	rdi, rax
	call	section_ptr_add
	mov	QWORD PTR -1064[rbp], rax
	mov	rax, QWORD PTR -1064[rbp]
	mov	QWORD PTR [rax], 0
	mov	rax, QWORD PTR bounds_section[rip]
	mov	ecx, DWORD PTR 28[rax]
	mov	rax, QWORD PTR symtab_section[rip]
	sub	rsp, 8
	lea	rdx, .LC216[rip]
	push	rdx
	mov	r9d, ecx
	mov	r8d, 0
	mov	ecx, 16
	mov	edx, 0
	mov	esi, 0
	mov	rdi, rax
	call	add_elf_sym
	add	rsp, 16
	mov	rdx, QWORD PTR tcc_lib_path[rip]
	lea	rax, -1040[rbp]
	lea	r8, .LC217[rip]
	mov	rcx, rdx
	lea	rdx, .LC218[rip]
	mov	esi, 1024
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	lea	rdx, -1040[rbp]
	mov	rax, QWORD PTR -1080[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	tcc_add_file
	mov	rax, QWORD PTR -1080[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L3389
	mov	rax, QWORD PTR -1080[rbp]
	lea	rsi, .LC219[rip]
	mov	rdi, rax
	call	find_section
	mov	QWORD PTR -1056[rbp], rax
	mov	rax, QWORD PTR -1056[rbp]
	mov	esi, 5
	mov	rdi, rax
	call	section_ptr_add
	mov	QWORD PTR -1048[rbp], rax
	mov	rax, QWORD PTR -1048[rbp]
	mov	BYTE PTR [rax], -24
	mov	rax, QWORD PTR -1048[rbp]
	add	rax, 1
	mov	esi, -4
	mov	rdi, rax
	call	put32
	mov	rax, QWORD PTR symtab_section[rip]
	lea	rsi, .LC220[rip]
	mov	rdi, rax
	call	find_elf_sym
	mov	DWORD PTR -1068[rbp], eax
	mov	rax, QWORD PTR -1056[rbp]
	mov	rax, QWORD PTR [rax]
	lea	rdx, -4[rax]
	mov	rax, QWORD PTR symtab_section[rip]
	mov	ecx, DWORD PTR -1068[rbp]
	mov	rsi, QWORD PTR -1056[rbp]
	mov	r8d, ecx
	mov	ecx, 2
	mov	rdi, rax
	call	put_elf_reloc
.L3389:
	mov	rax, QWORD PTR -1080[rbp]
	mov	eax, DWORD PTR 180[rax]
	test	eax, eax
	jne	.L3390
	mov	rax, QWORD PTR -1080[rbp]
	lea	rsi, .LC221[rip]
	mov	rdi, rax
	call	tcc_add_library
	mov	rdx, QWORD PTR tcc_lib_path[rip]
	lea	rax, -1040[rbp]
	lea	r8, .LC222[rip]
	mov	rcx, rdx
	lea	rdx, .LC218[rip]
	mov	esi, 1024
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	lea	rdx, -1040[rbp]
	mov	rax, QWORD PTR -1080[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	tcc_add_file
.L3390:
	mov	rax, QWORD PTR -1080[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L3393
	mov	rax, QWORD PTR -1080[rbp]
	mov	eax, DWORD PTR 180[rax]
	test	eax, eax
	jne	.L3393
	mov	rax, QWORD PTR -1080[rbp]
	lea	rsi, .LC223[rip]
	mov	rdi, rax
	call	tcc_add_file
.L3393:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L3392
	call	__stack_chk_fail@PLT
.L3392:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE295:
	.size	tcc_add_runtime, .-tcc_add_runtime
	.section	.rodata
.LC224:
	.string	"_etext"
.LC225:
	.string	"_edata"
.LC226:
	.string	"_end"
.LC227:
	.string	".preinit_array"
.LC228:
	.string	".init_array"
.LC229:
	.string	".fini_array"
.LC230:
	.string	"__start_%s"
.LC231:
	.string	"__stop_%s"
	.text
	.type	tcc_add_linker_symbols, @function
tcc_add_linker_symbols:
.LFB296:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 1088
	mov	QWORD PTR -1080[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR text_section[rip]
	mov	ecx, DWORD PTR 28[rax]
	mov	rax, QWORD PTR text_section[rip]
	mov	rsi, QWORD PTR [rax]
	mov	rax, QWORD PTR symtab_section[rip]
	sub	rsp, 8
	lea	rdx, .LC224[rip]
	push	rdx
	mov	r9d, ecx
	mov	r8d, 0
	mov	ecx, 16
	mov	edx, 0
	mov	rdi, rax
	call	add_elf_sym
	add	rsp, 16
	mov	rax, QWORD PTR data_section[rip]
	mov	ecx, DWORD PTR 28[rax]
	mov	rax, QWORD PTR data_section[rip]
	mov	rsi, QWORD PTR [rax]
	mov	rax, QWORD PTR symtab_section[rip]
	sub	rsp, 8
	lea	rdx, .LC225[rip]
	push	rdx
	mov	r9d, ecx
	mov	r8d, 0
	mov	ecx, 16
	mov	edx, 0
	mov	rdi, rax
	call	add_elf_sym
	add	rsp, 16
	mov	rax, QWORD PTR bss_section[rip]
	mov	ecx, DWORD PTR 28[rax]
	mov	rax, QWORD PTR bss_section[rip]
	mov	rsi, QWORD PTR [rax]
	mov	rax, QWORD PTR symtab_section[rip]
	sub	rsp, 8
	lea	rdx, .LC226[rip]
	push	rdx
	mov	r9d, ecx
	mov	r8d, 0
	mov	ecx, 16
	mov	edx, 0
	mov	rdi, rax
	call	add_elf_sym
	add	rsp, 16
	mov	rax, QWORD PTR -1080[rbp]
	lea	rsi, .LC227[rip]
	mov	rdi, rax
	call	add_init_array_defines
	mov	rax, QWORD PTR -1080[rbp]
	lea	rsi, .LC228[rip]
	mov	rdi, rax
	call	add_init_array_defines
	mov	rax, QWORD PTR -1080[rbp]
	lea	rsi, .LC229[rip]
	mov	rdi, rax
	call	add_init_array_defines
	mov	DWORD PTR -1064[rbp], 1
	jmp	.L3395
.L3401:
	mov	rax, QWORD PTR -1080[rbp]
	mov	rdx, QWORD PTR 104[rax]
	mov	eax, DWORD PTR -1064[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1048[rbp], rax
	mov	rax, QWORD PTR -1048[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	eax, 1
	jne	.L3404
	mov	rax, QWORD PTR -1048[rbp]
	mov	eax, DWORD PTR 36[rax]
	and	eax, 2
	test	eax, eax
	je	.L3404
	mov	rax, QWORD PTR -1048[rbp]
	add	rax, 120
	mov	QWORD PTR -1056[rbp], rax
.L3400:
	mov	rax, QWORD PTR -1056[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -1060[rbp], eax
	cmp	DWORD PTR -1060[rbp], 0
	je	.L3405
	mov	eax, DWORD PTR -1060[rbp]
	mov	edi, eax
	call	isid
	test	eax, eax
	jne	.L3399
	mov	eax, DWORD PTR -1060[rbp]
	mov	edi, eax
	call	isnum
	test	eax, eax
	je	.L3406
.L3399:
	add	QWORD PTR -1056[rbp], 1
	jmp	.L3400
.L3405:
	nop
	mov	rax, QWORD PTR -1048[rbp]
	lea	rdx, 120[rax]
	lea	rax, -1040[rbp]
	mov	rcx, rdx
	lea	rdx, .LC230[rip]
	mov	esi, 1024
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	mov	rax, QWORD PTR -1048[rbp]
	mov	ecx, DWORD PTR 28[rax]
	mov	rax, QWORD PTR symtab_section[rip]
	sub	rsp, 8
	lea	rdx, -1040[rbp]
	push	rdx
	mov	r9d, ecx
	mov	r8d, 0
	mov	ecx, 16
	mov	edx, 0
	mov	esi, 0
	mov	rdi, rax
	call	add_elf_sym
	add	rsp, 16
	mov	rax, QWORD PTR -1048[rbp]
	lea	rdx, 120[rax]
	lea	rax, -1040[rbp]
	mov	rcx, rdx
	lea	rdx, .LC231[rip]
	mov	esi, 1024
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	mov	rax, QWORD PTR -1048[rbp]
	mov	ecx, DWORD PTR 28[rax]
	mov	rax, QWORD PTR -1048[rbp]
	mov	rsi, QWORD PTR [rax]
	mov	rax, QWORD PTR symtab_section[rip]
	sub	rsp, 8
	lea	rdx, -1040[rbp]
	push	rdx
	mov	r9d, ecx
	mov	r8d, 0
	mov	ecx, 16
	mov	edx, 0
	mov	rdi, rax
	call	add_elf_sym
	add	rsp, 16
	jmp	.L3396
.L3404:
	nop
	jmp	.L3396
.L3406:
	nop
.L3396:
	add	DWORD PTR -1064[rbp], 1
.L3395:
	mov	rax, QWORD PTR -1080[rbp]
	mov	eax, DWORD PTR 112[rax]
	cmp	DWORD PTR -1064[rbp], eax
	jl	.L3401
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L3402
	call	__stack_chk_fail@PLT
.L3402:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE296:
	.size	tcc_add_linker_symbols, .-tcc_add_linker_symbols
	.data
	.align 16
	.type	elf_interp, @object
	.size	elf_interp, 19
elf_interp:
	.string	"/lib/ld-linux.so.2"
	.text
	.type	tcc_output_binary, @function
tcc_output_binary:
.LFB297:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -56[rbp], rdx
	mov	DWORD PTR -16[rbp], 0
	mov	DWORD PTR -20[rbp], 1
	jmp	.L3408
.L3412:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 104[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rcx, 0[0+rax*4]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rcx
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	eax, 8
	je	.L3409
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 36[rax]
	and	eax, 2
	test	eax, eax
	je	.L3409
	jmp	.L3410
.L3411:
	mov	rax, QWORD PTR -48[rbp]
	mov	rsi, rax
	mov	edi, 0
	call	fputc@PLT
	add	DWORD PTR -16[rbp], 1
.L3410:
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 72[rax]
	cmp	rdx, rax
	jb	.L3411
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 56[rax]
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rcx, QWORD PTR -48[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	fwrite@PLT
	mov	QWORD PTR dummy_size_t[rip], rax
	mov	eax, DWORD PTR -12[rbp]
	add	DWORD PTR -16[rbp], eax
.L3409:
	add	DWORD PTR -20[rbp], 1
.L3408:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 112[rax]
	cmp	DWORD PTR -20[rbp], eax
	jl	.L3412
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE297:
	.size	tcc_output_binary, .-tcc_output_binary
	.section	.rodata
.LC232:
	.string	".interp"
.LC233:
	.string	".hash"
.LC234:
	.string	".dynstr"
.LC235:
	.string	".dynsym"
.LC236:
	.string	".dynamic"
.LC237:
	.string	".plt"
.LC238:
	.string	"undefined dynamic symbol '%s'"
.LC239:
	.string	".shstrtab"
.LC240:
	.string	"_start"
.LC241:
	.string	"could not write '%s'"
.LC242:
	.string	"wb"
	.text
	.globl	tcc_output_file
	.type	tcc_output_file, @function
tcc_output_file:
.LFB298:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 400
	mov	QWORD PTR -392[rbp], rdi
	mov	QWORD PTR -400[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -392[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -344[rbp], eax
	mov	rax, QWORD PTR -392[rbp]
	mov	DWORD PTR 472[rax], 0
	cmp	DWORD PTR -344[rbp], 3
	je	.L3414
	mov	rax, QWORD PTR -392[rbp]
	mov	rdi, rax
	call	tcc_add_runtime
.L3414:
	mov	QWORD PTR -288[rbp], 0
	mov	QWORD PTR -304[rbp], 0
	mov	QWORD PTR -272[rbp], 0
	mov	QWORD PTR -264[rbp], 0
	mov	QWORD PTR -256[rbp], 0
	mov	QWORD PTR -248[rbp], 0
	cmp	DWORD PTR -344[rbp], 3
	je	.L3415
	call	relocate_common_syms
	mov	rax, QWORD PTR -392[rbp]
	mov	rdi, rax
	call	tcc_add_linker_symbols
	mov	rax, QWORD PTR -392[rbp]
	mov	eax, DWORD PTR 188[rax]
	test	eax, eax
	jne	.L3416
	cmp	DWORD PTR -344[rbp], 1
	jne	.L3417
	mov	rax, QWORD PTR -392[rbp]
	mov	ecx, 2
	mov	edx, 1
	lea	rsi, .LC232[rip]
	mov	rdi, rax
	call	new_section
	mov	QWORD PTR -272[rbp], rax
	mov	rax, QWORD PTR -272[rbp]
	mov	DWORD PTR 44[rax], 1
	mov	rax, QWORD PTR -272[rbp]
	mov	esi, 19
	mov	rdi, rax
	call	section_ptr_add
	mov	QWORD PTR -200[rbp], rax
	mov	rax, QWORD PTR -200[rbp]
	lea	rsi, elf_interp[rip]
	mov	rdi, rax
	call	strcpy@PLT
.L3417:
	mov	rax, QWORD PTR -392[rbp]
	sub	rsp, 8
	push	2
	lea	r9, .LC233[rip]
	lea	r8, .LC234[rip]
	mov	ecx, 2
	mov	edx, 11
	lea	rsi, .LC235[rip]
	mov	rdi, rax
	call	new_symtab
	add	rsp, 16
	mov	rdx, QWORD PTR -392[rbp]
	mov	QWORD PTR 168[rdx], rax
	mov	rax, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR 168[rax]
	mov	rax, QWORD PTR 88[rax]
	mov	QWORD PTR -256[rbp], rax
	mov	rax, QWORD PTR -392[rbp]
	mov	ecx, 3
	mov	edx, 6
	lea	rsi, .LC236[rip]
	mov	rdi, rax
	call	new_section
	mov	QWORD PTR -264[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	rdx, QWORD PTR -256[rbp]
	mov	QWORD PTR 88[rax], rdx
	mov	rax, QWORD PTR -264[rbp]
	mov	DWORD PTR 48[rax], 8
	mov	rax, QWORD PTR -392[rbp]
	mov	ecx, 6
	mov	edx, 1
	lea	rsi, .LC237[rip]
	mov	rdi, rax
	call	new_section
	mov	rdx, QWORD PTR -392[rbp]
	mov	QWORD PTR 128[rdx], rax
	mov	rax, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR 128[rax]
	mov	DWORD PTR 48[rax], 4
	mov	rax, QWORD PTR -392[rbp]
	mov	rdi, rax
	call	build_got
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rax, QWORD PTR [rax]
	add	rax, rdx
	mov	QWORD PTR -192[rbp], rax
	cmp	DWORD PTR -344[rbp], 1
	jne	.L3418
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rax, QWORD PTR 8[rax]
	add	rax, 16
	mov	QWORD PTR -240[rbp], rax
	jmp	.L3419
.L3424:
	mov	rax, QWORD PTR -240[rbp]
	movzx	eax, WORD PTR 14[rax]
	test	ax, ax
	jne	.L3420
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rax, QWORD PTR 88[rax]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -240[rbp]
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	add	rax, rdx
	mov	QWORD PTR -184[rbp], rax
	mov	rax, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR 160[rax]
	mov	rdx, QWORD PTR -184[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	find_elf_sym
	mov	DWORD PTR -332[rbp], eax
	cmp	DWORD PTR -332[rbp], 0
	je	.L3421
	mov	rax, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR 160[rax]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -332[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	QWORD PTR -216[rbp], rax
	mov	rax, QWORD PTR -216[rbp]
	movzx	eax, BYTE PTR 12[rax]
	movzx	eax, al
	and	eax, 15
	mov	DWORD PTR -328[rbp], eax
	cmp	DWORD PTR -328[rbp], 2
	jne	.L3422
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -240[rbp]
	sub	rax, rdx
	sar	rax, 4
	mov	ecx, eax
	mov	rax, QWORD PTR -216[rbp]
	movzx	eax, BYTE PTR 12[rax]
	movzx	edx, al
	mov	rax, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	esi, eax
	mov	rax, QWORD PTR -392[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	rdx, rsi
	mov	esi, 7
	mov	rdi, rax
	call	put_got_entry
	jmp	.L3423
.L3422:
	cmp	DWORD PTR -328[rbp], 1
	jne	.L3423
	mov	rax, QWORD PTR bss_section[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -176[rbp], rax
	mov	rax, QWORD PTR -176[rbp]
	add	rax, 15
	and	rax, -16
	mov	QWORD PTR -176[rbp], rax
	mov	rax, QWORD PTR bss_section[rip]
	mov	ecx, DWORD PTR 28[rax]
	mov	rax, QWORD PTR -216[rbp]
	movzx	eax, BYTE PTR 12[rax]
	movzx	edx, al
	mov	rax, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	edi, eax
	mov	rax, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR 168[rax]
	mov	rsi, QWORD PTR -176[rbp]
	sub	rsp, 8
	push	QWORD PTR -184[rbp]
	mov	r9d, ecx
	mov	r8d, 0
	mov	ecx, edx
	mov	rdx, rdi
	mov	rdi, rax
	call	put_elf_sym
	add	rsp, 16
	mov	DWORD PTR -336[rbp], eax
	mov	rsi, QWORD PTR bss_section[rip]
	mov	rax, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR 168[rax]
	mov	ecx, DWORD PTR -336[rbp]
	mov	rdx, QWORD PTR -176[rbp]
	mov	r8d, ecx
	mov	ecx, 5
	mov	rdi, rax
	call	put_elf_reloc
	mov	rax, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	eax, eax
	add	QWORD PTR -176[rbp], rax
	mov	rax, QWORD PTR bss_section[rip]
	mov	rdx, QWORD PTR -176[rbp]
	mov	QWORD PTR [rax], rdx
	jmp	.L3423
.L3421:
	mov	rax, QWORD PTR -240[rbp]
	movzx	eax, BYTE PTR 12[rax]
	shr	al, 4
	cmp	al, 2
	je	.L3423
	mov	rax, QWORD PTR -184[rbp]
	lea	rsi, .LC210[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	je	.L3423
	mov	rax, QWORD PTR -184[rbp]
	mov	rsi, rax
	lea	rdi, .LC211[rip]
	mov	eax, 0
	call	error_noabort
	jmp	.L3423
.L3420:
	mov	rax, QWORD PTR -392[rbp]
	mov	eax, DWORD PTR 192[rax]
	test	eax, eax
	je	.L3423
	mov	rax, QWORD PTR -240[rbp]
	movzx	eax, BYTE PTR 12[rax]
	shr	al, 4
	test	al, al
	je	.L3423
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rax, QWORD PTR 88[rax]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -240[rbp]
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	add	rax, rdx
	mov	QWORD PTR -184[rbp], rax
	mov	rax, QWORD PTR -240[rbp]
	movzx	eax, WORD PTR 14[rax]
	movzx	ecx, ax
	mov	rax, QWORD PTR -240[rbp]
	movzx	eax, BYTE PTR 12[rax]
	movzx	edx, al
	mov	rax, QWORD PTR -240[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	edi, eax
	mov	rax, QWORD PTR -240[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	esi, eax
	mov	rax, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR 168[rax]
	sub	rsp, 8
	push	QWORD PTR -184[rbp]
	mov	r9d, ecx
	mov	r8d, 0
	mov	ecx, edx
	mov	rdx, rdi
	mov	rdi, rax
	call	put_elf_sym
	add	rsp, 16
.L3423:
	add	QWORD PTR -240[rbp], 16
.L3419:
	mov	rax, QWORD PTR -240[rbp]
	cmp	rax, QWORD PTR -192[rbp]
	jb	.L3424
	mov	rax, QWORD PTR -392[rbp]
	mov	eax, DWORD PTR 472[rax]
	test	eax, eax
	jne	.L3525
	mov	rax, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR 160[rax]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR 160[rax]
	mov	rax, QWORD PTR [rax]
	add	rax, rdx
	mov	QWORD PTR -192[rbp], rax
	mov	rax, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR 160[rax]
	mov	rax, QWORD PTR 8[rax]
	add	rax, 16
	mov	QWORD PTR -216[rbp], rax
	jmp	.L3427
.L3430:
	mov	rax, QWORD PTR -216[rbp]
	movzx	eax, WORD PTR 14[rax]
	test	ax, ax
	jne	.L3428
	mov	rax, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR 160[rax]
	mov	rax, QWORD PTR 88[rax]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	add	rax, rdx
	mov	QWORD PTR -184[rbp], rax
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rdx, QWORD PTR -184[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	find_elf_sym
	mov	DWORD PTR -332[rbp], eax
	cmp	DWORD PTR -332[rbp], 0
	je	.L3429
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -332[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	QWORD PTR -240[rbp], rax
	mov	rax, QWORD PTR -240[rbp]
	movzx	eax, WORD PTR 14[rax]
	movzx	ecx, ax
	mov	rax, QWORD PTR -240[rbp]
	movzx	eax, BYTE PTR 12[rax]
	movzx	edx, al
	mov	rax, QWORD PTR -240[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	edi, eax
	mov	rax, QWORD PTR -240[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	esi, eax
	mov	rax, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR 168[rax]
	sub	rsp, 8
	push	QWORD PTR -184[rbp]
	mov	r9d, ecx
	mov	r8d, 0
	mov	ecx, edx
	mov	rdx, rdi
	mov	rdi, rax
	call	put_elf_sym
	add	rsp, 16
	jmp	.L3428
.L3429:
	mov	rax, QWORD PTR -216[rbp]
	movzx	eax, BYTE PTR 12[rax]
	shr	al, 4
	cmp	al, 2
	je	.L3428
	mov	rax, QWORD PTR -184[rbp]
	mov	rsi, rax
	lea	rdi, .LC238[rip]
	mov	eax, 0
	call	warning
.L3428:
	add	QWORD PTR -216[rbp], 16
.L3427:
	mov	rax, QWORD PTR -216[rbp]
	cmp	rax, QWORD PTR -192[rbp]
	jb	.L3430
	jmp	.L3431
.L3418:
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rax, QWORD PTR [rax]
	shr	rax, 4
	mov	DWORD PTR -340[rbp], eax
	mov	eax, DWORD PTR -340[rbp]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	tcc_mallocz
	mov	rdx, QWORD PTR -392[rbp]
	mov	QWORD PTR 152[rdx], rax
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rax, QWORD PTR 8[rax]
	add	rax, 16
	mov	QWORD PTR -240[rbp], rax
	jmp	.L3432
.L3434:
	mov	rax, QWORD PTR -240[rbp]
	movzx	eax, BYTE PTR 12[rax]
	shr	al, 4
	test	al, al
	je	.L3433
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rax, QWORD PTR 88[rax]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -240[rbp]
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	add	rax, rdx
	mov	QWORD PTR -184[rbp], rax
	mov	rax, QWORD PTR -240[rbp]
	movzx	eax, WORD PTR 14[rax]
	movzx	ecx, ax
	mov	rax, QWORD PTR -240[rbp]
	movzx	eax, BYTE PTR 12[rax]
	movzx	edx, al
	mov	rax, QWORD PTR -240[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	edi, eax
	mov	rax, QWORD PTR -240[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	esi, eax
	mov	rax, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR 168[rax]
	sub	rsp, 8
	push	QWORD PTR -184[rbp]
	mov	r9d, ecx
	mov	r8d, 0
	mov	ecx, edx
	mov	rdx, rdi
	mov	rdi, rax
	call	put_elf_sym
	add	rsp, 16
	mov	DWORD PTR -336[rbp], eax
	mov	rax, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rcx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -240[rbp]
	sub	rax, rcx
	sar	rax, 4
	sal	rax, 2
	add	rdx, rax
	mov	eax, DWORD PTR -336[rbp]
	mov	DWORD PTR [rdx], eax
.L3433:
	add	QWORD PTR -240[rbp], 16
.L3432:
	mov	rax, QWORD PTR -240[rbp]
	cmp	rax, QWORD PTR -192[rbp]
	jb	.L3434
.L3431:
	mov	rax, QWORD PTR -392[rbp]
	mov	rdi, rax
	call	build_got_entries
	mov	DWORD PTR -376[rbp], 0
	jmp	.L3435
.L3437:
	mov	rax, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR 88[rax]
	mov	eax, DWORD PTR -376[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -168[rbp], rax
	mov	rax, QWORD PTR -168[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L3436
	mov	rax, QWORD PTR -168[rbp]
	lea	rdx, 4[rax]
	mov	rax, QWORD PTR -256[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	put_elf_str
	movsx	rdx, eax
	mov	rax, QWORD PTR -264[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	put_dt
.L3436:
	add	DWORD PTR -376[rbp], 1
.L3435:
	mov	rax, QWORD PTR -392[rbp]
	mov	eax, DWORD PTR 96[rax]
	cmp	DWORD PTR -376[rbp], eax
	jl	.L3437
	cmp	DWORD PTR -344[rbp], 2
	jne	.L3438
	mov	rax, QWORD PTR -264[rbp]
	mov	edx, 0
	mov	esi, 22
	mov	rdi, rax
	call	put_dt
.L3438:
	mov	rax, QWORD PTR -264[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -248[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	rax, QWORD PTR [rax]
	lea	rdx, 72[rax]
	mov	rax, QWORD PTR -264[rbp]
	mov	QWORD PTR [rax], rdx
	jmp	.L3415
.L3416:
	mov	rax, QWORD PTR -392[rbp]
	mov	rdi, rax
	call	build_got_entries
.L3415:
	lea	rax, -64[rbp]
	mov	edx, 52
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	rax, QWORD PTR -392[rbp]
	mov	ecx, 0
	mov	edx, 3
	lea	rsi, .LC239[rip]
	mov	rdi, rax
	call	new_section
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	lea	rsi, .LC34[rip]
	mov	rdi, rax
	call	put_elf_str
	mov	rax, QWORD PTR -392[rbp]
	mov	eax, DWORD PTR 112[rax]
	mov	DWORD PTR -324[rbp], eax
	mov	eax, DWORD PTR -324[rbp]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	tcc_malloc
	mov	QWORD PTR -304[rbp], rax
	mov	rax, QWORD PTR -304[rbp]
	mov	DWORD PTR [rax], 0
	mov	DWORD PTR -356[rbp], 1
	cmp	DWORD PTR -344[rbp], 1
	je	.L3439
	cmp	DWORD PTR -344[rbp], 2
	je	.L3440
	mov	DWORD PTR -372[rbp], 0
	jmp	.L3441
.L3439:
	mov	rax, QWORD PTR -392[rbp]
	mov	eax, DWORD PTR 188[rax]
	test	eax, eax
	jne	.L3442
	mov	DWORD PTR -372[rbp], 4
	jmp	.L3441
.L3442:
	mov	DWORD PTR -372[rbp], 2
	jmp	.L3441
.L3440:
	mov	DWORD PTR -372[rbp], 3
	nop
.L3441:
	mov	DWORD PTR -376[rbp], 1
	jmp	.L3444
.L3448:
	mov	rax, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR 104[rax]
	mov	eax, DWORD PTR -376[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	lea	rdx, 120[rax]
	mov	rax, QWORD PTR -160[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	put_elf_str
	mov	rdx, QWORD PTR -136[rbp]
	mov	DWORD PTR 24[rdx], eax
	cmp	DWORD PTR -344[rbp], 2
	jne	.L3445
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	eax, 9
	jne	.L3445
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 36[rax]
	and	eax, 2
	test	eax, eax
	jne	.L3445
	mov	rdx, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR -392[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	prepare_dynamic_rel
	jmp	.L3446
.L3445:
	mov	eax, DWORD PTR do_debug[rip]
	test	eax, eax
	jne	.L3447
	cmp	DWORD PTR -344[rbp], 3
	je	.L3447
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 36[rax]
	and	eax, 2
	test	eax, eax
	jne	.L3447
	mov	rax, QWORD PTR -392[rbp]
	mov	eax, DWORD PTR 112[rax]
	sub	eax, 1
	cmp	DWORD PTR -376[rbp], eax
	jne	.L3446
.L3447:
	mov	rax, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	QWORD PTR 56[rax], rdx
.L3446:
	add	DWORD PTR -376[rbp], 1
.L3444:
	mov	rax, QWORD PTR -392[rbp]
	mov	eax, DWORD PTR 112[rax]
	cmp	DWORD PTR -376[rbp], eax
	jl	.L3448
	mov	eax, DWORD PTR -372[rbp]
	cdqe
	sal	rax, 5
	mov	rdi, rax
	call	tcc_mallocz
	mov	QWORD PTR -288[rbp], rax
	mov	rax, QWORD PTR -392[rbp]
	mov	eax, DWORD PTR 212[rax]
	test	eax, eax
	jne	.L3449
	mov	eax, DWORD PTR -372[rbp]
	cdqe
	sal	eax, 5
	add	eax, 52
	mov	DWORD PTR -368[rbp], eax
	jmp	.L3450
.L3449:
	mov	DWORD PTR -368[rbp], 0
.L3450:
	cmp	DWORD PTR -372[rbp], 0
	jle	.L3451
	mov	rax, QWORD PTR -392[rbp]
	mov	eax, DWORD PTR 208[rax]
	test	eax, eax
	je	.L3452
	mov	rax, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR 200[rax]
	mov	QWORD PTR -296[rbp], rax
	mov	rax, QWORD PTR -296[rbp]
	and	eax, 4095
	mov	DWORD PTR -348[rbp], eax
	mov	eax, DWORD PTR -368[rbp]
	and	eax, 4095
	mov	DWORD PTR -320[rbp], eax
	mov	eax, DWORD PTR -348[rbp]
	cmp	eax, DWORD PTR -320[rbp]
	jge	.L3453
	add	DWORD PTR -348[rbp], 4096
.L3453:
	mov	eax, DWORD PTR -348[rbp]
	sub	eax, DWORD PTR -320[rbp]
	add	DWORD PTR -368[rbp], eax
	jmp	.L3454
.L3452:
	cmp	DWORD PTR -344[rbp], 2
	jne	.L3455
	mov	QWORD PTR -296[rbp], 0
	jmp	.L3456
.L3455:
	mov	QWORD PTR -296[rbp], 134512640
.L3456:
	mov	eax, DWORD PTR -368[rbp]
	cdqe
	and	eax, 4095
	add	QWORD PTR -296[rbp], rax
.L3454:
	mov	QWORD PTR -224[rbp], 0
	mov	QWORD PTR -232[rbp], 0
	mov	rax, QWORD PTR -288[rbp]
	mov	QWORD PTR -280[rbp], rax
	cmp	QWORD PTR -272[rbp], 0
	je	.L3457
	add	QWORD PTR -280[rbp], 32
.L3457:
	mov	DWORD PTR -360[rbp], 0
	jmp	.L3458
.L3480:
	mov	rax, QWORD PTR -280[rbp]
	mov	DWORD PTR [rax], 1
	cmp	DWORD PTR -360[rbp], 0
	jne	.L3459
	mov	rax, QWORD PTR -280[rbp]
	mov	DWORD PTR 24[rax], 5
	jmp	.L3460
.L3459:
	mov	rax, QWORD PTR -280[rbp]
	mov	DWORD PTR 24[rax], 6
.L3460:
	mov	rax, QWORD PTR -280[rbp]
	mov	DWORD PTR 28[rax], 4096
	mov	DWORD PTR -352[rbp], 0
	jmp	.L3461
.L3477:
	mov	DWORD PTR -376[rbp], 1
	jmp	.L3462
.L3476:
	mov	rax, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR 104[rax]
	mov	eax, DWORD PTR -376[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -136[rbp], rax
	cmp	DWORD PTR -360[rbp], 0
	jne	.L3463
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 36[rax]
	and	eax, 3
	cmp	eax, 2
	je	.L3464
	jmp	.L3465
.L3463:
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 36[rax]
	and	eax, 3
	cmp	eax, 3
	jne	.L3526
.L3464:
	mov	rax, QWORD PTR -136[rbp]
	cmp	rax, QWORD PTR -272[rbp]
	jne	.L3466
	cmp	DWORD PTR -352[rbp], 0
	je	.L3467
	jmp	.L3465
.L3466:
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	eax, 11
	je	.L3468
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	eax, 3
	je	.L3468
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	eax, 5
	jne	.L3469
.L3468:
	cmp	DWORD PTR -352[rbp], 1
	je	.L3467
	jmp	.L3465
.L3469:
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	eax, 9
	jne	.L3471
	cmp	DWORD PTR -352[rbp], 2
	je	.L3467
	jmp	.L3465
.L3471:
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	eax, 8
	jne	.L3472
	cmp	DWORD PTR -352[rbp], 4
	je	.L3467
	jmp	.L3465
.L3472:
	cmp	DWORD PTR -352[rbp], 3
	jne	.L3527
.L3467:
	mov	eax, DWORD PTR -356[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -356[rbp], edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -304[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -376[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -296[rbp]
	mov	DWORD PTR -316[rbp], eax
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 44[rax]
	movsx	rdx, eax
	mov	rax, QWORD PTR -296[rbp]
	add	rax, rdx
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 44[rax]
	neg	eax
	cdqe
	and	rax, rdx
	mov	QWORD PTR -296[rbp], rax
	mov	rax, QWORD PTR -296[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -316[rbp]
	sub	edx, eax
	mov	eax, DWORD PTR -368[rbp]
	add	eax, edx
	mov	DWORD PTR -368[rbp], eax
	mov	eax, DWORD PTR -368[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -136[rbp]
	mov	QWORD PTR 72[rax], rdx
	mov	rax, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR -296[rbp]
	mov	QWORD PTR 64[rax], rdx
	mov	rax, QWORD PTR -280[rbp]
	mov	eax, DWORD PTR 4[rax]
	test	eax, eax
	jne	.L3473
	mov	edx, DWORD PTR -368[rbp]
	mov	rax, QWORD PTR -280[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -296[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -280[rbp]
	mov	DWORD PTR 8[rax], edx
	mov	rax, QWORD PTR -280[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -280[rbp]
	mov	DWORD PTR 12[rax], edx
.L3473:
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	eax, 9
	jne	.L3474
	cmp	QWORD PTR -224[rbp], 0
	jne	.L3475
	mov	rax, QWORD PTR -296[rbp]
	mov	QWORD PTR -232[rbp], rax
.L3475:
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR 56[rax]
	add	QWORD PTR -224[rbp], rax
.L3474:
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR 56[rax]
	add	QWORD PTR -296[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	eax, 8
	je	.L3465
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR 56[rax]
	mov	edx, eax
	mov	eax, DWORD PTR -368[rbp]
	add	eax, edx
	mov	DWORD PTR -368[rbp], eax
	jmp	.L3465
.L3526:
	nop
	jmp	.L3465
.L3527:
	nop
.L3465:
	add	DWORD PTR -376[rbp], 1
.L3462:
	mov	rax, QWORD PTR -392[rbp]
	mov	eax, DWORD PTR 112[rax]
	cmp	DWORD PTR -376[rbp], eax
	jl	.L3476
	add	DWORD PTR -352[rbp], 1
.L3461:
	cmp	DWORD PTR -352[rbp], 4
	jle	.L3477
	mov	edx, DWORD PTR -368[rbp]
	mov	rax, QWORD PTR -280[rbp]
	mov	eax, DWORD PTR 4[rax]
	sub	edx, eax
	mov	rax, QWORD PTR -280[rbp]
	mov	DWORD PTR 16[rax], edx
	mov	rax, QWORD PTR -296[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -280[rbp]
	mov	eax, DWORD PTR 8[rax]
	sub	edx, eax
	mov	rax, QWORD PTR -280[rbp]
	mov	DWORD PTR 20[rax], edx
	add	QWORD PTR -280[rbp], 32
	cmp	DWORD PTR -360[rbp], 0
	jne	.L3478
	mov	rax, QWORD PTR -392[rbp]
	mov	eax, DWORD PTR 212[rax]
	test	eax, eax
	jne	.L3479
	mov	rax, QWORD PTR -296[rbp]
	and	eax, 4095
	test	rax, rax
	je	.L3478
	add	QWORD PTR -296[rbp], 4096
	jmp	.L3478
.L3479:
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 4095
	and	rax, -4096
	mov	QWORD PTR -296[rbp], rax
	mov	eax, DWORD PTR -368[rbp]
	add	eax, 4095
	and	eax, -4096
	mov	DWORD PTR -368[rbp], eax
.L3478:
	add	DWORD PTR -360[rbp], 1
.L3458:
	cmp	DWORD PTR -360[rbp], 1
	jle	.L3480
	cmp	QWORD PTR -272[rbp], 0
	je	.L3481
	mov	rax, QWORD PTR -288[rbp]
	mov	QWORD PTR -280[rbp], rax
	mov	rax, QWORD PTR -280[rbp]
	mov	DWORD PTR [rax], 3
	mov	rax, QWORD PTR -272[rbp]
	mov	rax, QWORD PTR 72[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -280[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -272[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -280[rbp]
	mov	DWORD PTR 8[rax], edx
	mov	rax, QWORD PTR -280[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -280[rbp]
	mov	DWORD PTR 12[rax], edx
	mov	rax, QWORD PTR -272[rbp]
	mov	rax, QWORD PTR 56[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -280[rbp]
	mov	DWORD PTR 16[rax], edx
	mov	rax, QWORD PTR -272[rbp]
	mov	rax, QWORD PTR 56[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -280[rbp]
	mov	DWORD PTR 20[rax], edx
	mov	rax, QWORD PTR -280[rbp]
	mov	DWORD PTR 24[rax], 4
	mov	rax, QWORD PTR -272[rbp]
	mov	eax, DWORD PTR 44[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -280[rbp]
	mov	DWORD PTR 28[rax], edx
.L3481:
	cmp	QWORD PTR -264[rbp], 0
	je	.L3482
	mov	eax, DWORD PTR -372[rbp]
	cdqe
	sal	rax, 5
	lea	rdx, -32[rax]
	mov	rax, QWORD PTR -288[rbp]
	add	rax, rdx
	mov	QWORD PTR -280[rbp], rax
	mov	rax, QWORD PTR -280[rbp]
	mov	DWORD PTR [rax], 2
	mov	rax, QWORD PTR -264[rbp]
	mov	rax, QWORD PTR 72[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -280[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -264[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -280[rbp]
	mov	DWORD PTR 8[rax], edx
	mov	rax, QWORD PTR -280[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -280[rbp]
	mov	DWORD PTR 12[rax], edx
	mov	rax, QWORD PTR -264[rbp]
	mov	rax, QWORD PTR 56[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -280[rbp]
	mov	DWORD PTR 16[rax], edx
	mov	rax, QWORD PTR -264[rbp]
	mov	rax, QWORD PTR 56[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -280[rbp]
	mov	DWORD PTR 20[rax], edx
	mov	rax, QWORD PTR -280[rbp]
	mov	DWORD PTR 24[rax], 6
	mov	rax, QWORD PTR -264[rbp]
	mov	eax, DWORD PTR 44[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -280[rbp]
	mov	DWORD PTR 28[rax], edx
	mov	rax, QWORD PTR -264[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	rax, QWORD PTR 8[rax]
	mov	esi, edx
	mov	rdi, rax
	call	put32
	cmp	DWORD PTR -344[rbp], 1
	jne	.L3483
	mov	rax, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR 128[rax]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -208[rbp], rax
	mov	rax, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR 128[rax]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -208[rbp]
	add	rax, rdx
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -208[rbp]
	cmp	rax, QWORD PTR -152[rbp]
	jnb	.L3483
	mov	rax, QWORD PTR -208[rbp]
	add	rax, 2
	mov	rdi, rax
	call	get32
	mov	edx, eax
	mov	rax, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	rax, QWORD PTR 64[rax]
	add	edx, eax
	mov	rax, QWORD PTR -208[rbp]
	add	rax, 2
	mov	esi, edx
	mov	rdi, rax
	call	put32
	mov	rax, QWORD PTR -208[rbp]
	add	rax, 8
	mov	rdi, rax
	call	get32
	mov	edx, eax
	mov	rax, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	rax, QWORD PTR 64[rax]
	add	edx, eax
	mov	rax, QWORD PTR -208[rbp]
	add	rax, 8
	mov	esi, edx
	mov	rdi, rax
	call	put32
	add	QWORD PTR -208[rbp], 16
	jmp	.L3484
.L3485:
	mov	rax, QWORD PTR -208[rbp]
	add	rax, 2
	mov	rdi, rax
	call	get32
	mov	edx, eax
	mov	rax, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR 120[rax]
	mov	rax, QWORD PTR 64[rax]
	add	edx, eax
	mov	rax, QWORD PTR -208[rbp]
	add	rax, 2
	mov	esi, edx
	mov	rdi, rax
	call	put32
	add	QWORD PTR -208[rbp], 16
.L3484:
	mov	rax, QWORD PTR -208[rbp]
	cmp	rax, QWORD PTR -152[rbp]
	jb	.L3485
.L3483:
	mov	rax, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR 168[rax]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR 168[rax]
	mov	rax, QWORD PTR [rax]
	add	rax, rdx
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR 168[rax]
	mov	rax, QWORD PTR 8[rax]
	add	rax, 16
	mov	QWORD PTR -240[rbp], rax
	jmp	.L3486
.L3489:
	mov	rax, QWORD PTR -240[rbp]
	movzx	eax, WORD PTR 14[rax]
	test	ax, ax
	jne	.L3487
	mov	rax, QWORD PTR -240[rbp]
	mov	eax, DWORD PTR 4[rax]
	test	eax, eax
	je	.L3488
	mov	rax, QWORD PTR -240[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR 128[rax]
	mov	rax, QWORD PTR 64[rax]
	add	edx, eax
	mov	rax, QWORD PTR -240[rbp]
	mov	DWORD PTR 4[rax], edx
	jmp	.L3488
.L3487:
	mov	rax, QWORD PTR -240[rbp]
	movzx	eax, WORD PTR 14[rax]
	cmp	ax, -257
	ja	.L3488
	mov	rax, QWORD PTR -240[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -392[rbp]
	mov	rcx, QWORD PTR 104[rax]
	mov	rax, QWORD PTR -240[rbp]
	movzx	eax, WORD PTR 14[rax]
	movzx	eax, ax
	sal	rax, 3
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR 64[rax]
	add	edx, eax
	mov	rax, QWORD PTR -240[rbp]
	mov	DWORD PTR 4[rax], edx
.L3488:
	add	QWORD PTR -240[rbp], 16
.L3486:
	mov	rax, QWORD PTR -240[rbp]
	cmp	rax, QWORD PTR -144[rbp]
	jb	.L3489
	mov	rax, QWORD PTR -264[rbp]
	mov	rdx, QWORD PTR -248[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR 168[rax]
	mov	rax, QWORD PTR 104[rax]
	mov	rdx, QWORD PTR 64[rax]
	mov	rax, QWORD PTR -264[rbp]
	mov	esi, 4
	mov	rdi, rax
	call	put_dt
	mov	rax, QWORD PTR -256[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	rax, QWORD PTR -264[rbp]
	mov	esi, 5
	mov	rdi, rax
	call	put_dt
	mov	rax, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR 168[rax]
	mov	rdx, QWORD PTR 64[rax]
	mov	rax, QWORD PTR -264[rbp]
	mov	esi, 6
	mov	rdi, rax
	call	put_dt
	mov	rax, QWORD PTR -256[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -264[rbp]
	mov	esi, 10
	mov	rdi, rax
	call	put_dt
	mov	rax, QWORD PTR -264[rbp]
	mov	edx, 16
	mov	esi, 11
	mov	rdi, rax
	call	put_dt
	mov	rdx, QWORD PTR -232[rbp]
	mov	rax, QWORD PTR -264[rbp]
	mov	esi, 17
	mov	rdi, rax
	call	put_dt
	mov	rdx, QWORD PTR -224[rbp]
	mov	rax, QWORD PTR -264[rbp]
	mov	esi, 18
	mov	rdi, rax
	call	put_dt
	mov	rax, QWORD PTR -264[rbp]
	mov	edx, 8
	mov	esi, 19
	mov	rdi, rax
	call	put_dt
	mov	rax, QWORD PTR -264[rbp]
	mov	edx, 0
	mov	esi, 0
	mov	rdi, rax
	call	put_dt
.L3482:
	mov	WORD PTR -22[rbp], 32
	mov	eax, DWORD PTR -372[rbp]
	mov	WORD PTR -20[rbp], ax
	mov	DWORD PTR -36[rbp], 52
.L3451:
	mov	DWORD PTR -376[rbp], 1
	jmp	.L3490
.L3493:
	mov	rax, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR 104[rax]
	mov	eax, DWORD PTR -376[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -136[rbp], rax
	cmp	DWORD PTR -372[rbp], 0
	jle	.L3491
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 36[rax]
	and	eax, 2
	test	eax, eax
	jne	.L3528
.L3491:
	mov	eax, DWORD PTR -356[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -356[rbp], edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -304[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -376[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -136[rbp]
	mov	edx, DWORD PTR 44[rax]
	mov	eax, DWORD PTR -368[rbp]
	add	eax, edx
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 44[rax]
	neg	eax
	and	eax, edx
	mov	DWORD PTR -368[rbp], eax
	mov	eax, DWORD PTR -368[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -136[rbp]
	mov	QWORD PTR 72[rax], rdx
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	eax, 8
	je	.L3492
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR 56[rax]
	mov	edx, eax
	mov	eax, DWORD PTR -368[rbp]
	add	eax, edx
	mov	DWORD PTR -368[rbp], eax
	jmp	.L3492
.L3528:
	nop
.L3492:
	add	DWORD PTR -376[rbp], 1
.L3490:
	mov	rax, QWORD PTR -392[rbp]
	mov	eax, DWORD PTR 112[rax]
	cmp	DWORD PTR -376[rbp], eax
	jl	.L3493
	cmp	DWORD PTR -344[rbp], 3
	je	.L3494
	mov	rax, QWORD PTR -392[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	relocate_syms
	mov	rax, QWORD PTR -392[rbp]
	mov	eax, DWORD PTR 472[rax]
	test	eax, eax
	je	.L3495
	jmp	.L3426
.L3525:
	nop
.L3426:
	mov	DWORD PTR -380[rbp], -1
	jmp	.L3496
.L3495:
	mov	DWORD PTR -376[rbp], 1
	jmp	.L3497
.L3499:
	mov	rax, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR 104[rax]
	mov	eax, DWORD PTR -376[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR 96[rax]
	test	rax, rax
	je	.L3498
	mov	rax, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR 120[rax]
	cmp	QWORD PTR -136[rbp], rax
	je	.L3498
	mov	rdx, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR -392[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	relocate_section
.L3498:
	add	DWORD PTR -376[rbp], 1
.L3497:
	mov	rax, QWORD PTR -392[rbp]
	mov	eax, DWORD PTR 112[rax]
	cmp	DWORD PTR -376[rbp], eax
	jl	.L3499
	mov	DWORD PTR -376[rbp], 1
	jmp	.L3500
.L3502:
	mov	rax, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR 104[rax]
	mov	eax, DWORD PTR -376[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 36[rax]
	and	eax, 2
	test	eax, eax
	je	.L3501
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	eax, 9
	jne	.L3501
	mov	rdx, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR -392[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	relocate_rel
.L3501:
	add	DWORD PTR -376[rbp], 1
.L3500:
	mov	rax, QWORD PTR -392[rbp]
	mov	eax, DWORD PTR 112[rax]
	cmp	DWORD PTR -376[rbp], eax
	jl	.L3502
	cmp	DWORD PTR -344[rbp], 1
	jne	.L3503
	mov	rax, QWORD PTR -392[rbp]
	lea	rsi, .LC240[rip]
	mov	rdi, rax
	call	tcc_get_symbol_err
	mov	DWORD PTR -40[rbp], eax
	jmp	.L3494
.L3503:
	mov	rax, QWORD PTR text_section[rip]
	mov	rax, QWORD PTR 64[rax]
	mov	DWORD PTR -40[rbp], eax
.L3494:
	cmp	DWORD PTR -344[rbp], 3
	jne	.L3504
	mov	DWORD PTR -384[rbp], 438
	jmp	.L3505
.L3504:
	mov	DWORD PTR -384[rbp], 511
.L3505:
	mov	edx, DWORD PTR -384[rbp]
	mov	rax, QWORD PTR -400[rbp]
	mov	esi, 577
	mov	rdi, rax
	mov	eax, 0
	call	open@PLT
	mov	DWORD PTR -312[rbp], eax
	cmp	DWORD PTR -312[rbp], 0
	jns	.L3506
	mov	rax, QWORD PTR -400[rbp]
	mov	rsi, rax
	lea	rdi, .LC241[rip]
	mov	eax, 0
	call	error_noabort
	jmp	.L3426
.L3506:
	mov	eax, DWORD PTR -312[rbp]
	lea	rsi, .LC242[rip]
	mov	edi, eax
	call	fdopen@PLT
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -392[rbp]
	mov	eax, DWORD PTR 212[rax]
	test	eax, eax
	jne	.L3507
	mov	rdx, QWORD PTR symtab_section[rip]
	mov	rax, QWORD PTR -392[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	sort_syms
	mov	eax, DWORD PTR -368[rbp]
	add	eax, 3
	and	eax, -4
	mov	DWORD PTR -368[rbp], eax
	mov	BYTE PTR -64[rbp], 127
	mov	BYTE PTR -63[rbp], 69
	mov	BYTE PTR -62[rbp], 76
	mov	BYTE PTR -61[rbp], 70
	mov	BYTE PTR -60[rbp], 1
	mov	BYTE PTR -59[rbp], 1
	mov	BYTE PTR -58[rbp], 1
	cmp	DWORD PTR -344[rbp], 2
	je	.L3508
	cmp	DWORD PTR -344[rbp], 3
	je	.L3509
	mov	WORD PTR -48[rbp], 2
	jmp	.L3510
.L3508:
	mov	WORD PTR -48[rbp], 3
	jmp	.L3510
.L3509:
	mov	WORD PTR -48[rbp], 1
	nop
.L3510:
	mov	WORD PTR -46[rbp], 3
	mov	DWORD PTR -44[rbp], 1
	mov	eax, DWORD PTR -368[rbp]
	mov	DWORD PTR -32[rbp], eax
	mov	WORD PTR -24[rbp], 52
	mov	WORD PTR -18[rbp], 40
	mov	eax, DWORD PTR -324[rbp]
	mov	WORD PTR -16[rbp], ax
	mov	eax, DWORD PTR -324[rbp]
	sub	eax, 1
	mov	WORD PTR -14[rbp], ax
	mov	rdx, QWORD PTR -128[rbp]
	lea	rax, -64[rbp]
	mov	rcx, rdx
	mov	edx, 52
	mov	esi, 1
	mov	rdi, rax
	call	fwrite@PLT
	mov	QWORD PTR dummy_size_t[rip], rax
	mov	eax, DWORD PTR -372[rbp]
	cdqe
	sal	rax, 5
	mov	rsi, rax
	mov	rdx, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR -288[rbp]
	mov	rcx, rdx
	mov	rdx, rsi
	mov	esi, 1
	mov	rdi, rax
	call	fwrite@PLT
	mov	QWORD PTR dummy_size_t[rip], rax
	mov	eax, DWORD PTR -372[rbp]
	cdqe
	sal	eax, 5
	add	eax, 52
	mov	DWORD PTR -364[rbp], eax
	mov	DWORD PTR -376[rbp], 1
	jmp	.L3511
.L3515:
	mov	rax, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR 104[rax]
	mov	eax, DWORD PTR -376[rbp]
	cdqe
	lea	rcx, 0[0+rax*4]
	mov	rax, QWORD PTR -304[rbp]
	add	rax, rcx
	mov	eax, DWORD PTR [rax]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	eax, 8
	je	.L3512
	jmp	.L3513
.L3514:
	mov	rax, QWORD PTR -128[rbp]
	mov	rsi, rax
	mov	edi, 0
	call	fputc@PLT
	add	DWORD PTR -364[rbp], 1
.L3513:
	mov	eax, DWORD PTR -364[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR 72[rax]
	cmp	rdx, rax
	jb	.L3514
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR 56[rax]
	mov	DWORD PTR -308[rbp], eax
	mov	eax, DWORD PTR -308[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rcx, QWORD PTR -128[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	fwrite@PLT
	mov	QWORD PTR dummy_size_t[rip], rax
	mov	eax, DWORD PTR -308[rbp]
	add	DWORD PTR -364[rbp], eax
.L3512:
	add	DWORD PTR -376[rbp], 1
.L3511:
	mov	rax, QWORD PTR -392[rbp]
	mov	eax, DWORD PTR 112[rax]
	cmp	DWORD PTR -376[rbp], eax
	jl	.L3515
	jmp	.L3516
.L3517:
	mov	rax, QWORD PTR -128[rbp]
	mov	rsi, rax
	mov	edi, 0
	call	fputc@PLT
	add	DWORD PTR -364[rbp], 1
.L3516:
	mov	edx, DWORD PTR -32[rbp]
	mov	eax, DWORD PTR -364[rbp]
	cmp	edx, eax
	ja	.L3517
	mov	DWORD PTR -376[rbp], 0
	jmp	.L3518
.L3521:
	lea	rax, -112[rbp]
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	edx, 40
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	rax, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR 104[rax]
	mov	eax, DWORD PTR -376[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -136[rbp], rax
	cmp	QWORD PTR -136[rbp], 0
	je	.L3519
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 24[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 32[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 36[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 8[rax], edx
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 48[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 36[rax], edx
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 40[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 28[rax], edx
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR 88[rax]
	test	rax, rax
	je	.L3520
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR 88[rax]
	mov	eax, DWORD PTR 28[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 24[rax], edx
.L3520:
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 44[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 32[rax], edx
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 12[rax], edx
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR 72[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 16[rax], edx
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR 56[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 20[rax], edx
.L3519:
	mov	rdx, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	rcx, rdx
	mov	edx, 40
	mov	esi, 1
	mov	rdi, rax
	call	fwrite@PLT
	mov	QWORD PTR dummy_size_t[rip], rax
	add	DWORD PTR -376[rbp], 1
.L3518:
	mov	rax, QWORD PTR -392[rbp]
	mov	eax, DWORD PTR 112[rax]
	cmp	DWORD PTR -376[rbp], eax
	jl	.L3521
	jmp	.L3522
.L3507:
	mov	rdx, QWORD PTR -304[rbp]
	mov	rcx, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR -392[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	tcc_output_binary
.L3522:
	mov	rax, QWORD PTR -128[rbp]
	mov	rdi, rax
	call	fclose@PLT
	mov	DWORD PTR -380[rbp], 0
.L3496:
	mov	rax, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR 152[rax]
	mov	rdi, rax
	call	tcc_free
	mov	rax, QWORD PTR -304[rbp]
	mov	rdi, rax
	call	tcc_free
	mov	rax, QWORD PTR -288[rbp]
	mov	rdi, rax
	call	tcc_free
	mov	rax, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR 136[rax]
	mov	rdi, rax
	call	tcc_free
	mov	eax, DWORD PTR -380[rbp]
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L3524
	call	__stack_chk_fail@PLT
.L3524:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE298:
	.size	tcc_output_file, .-tcc_output_file
	.type	load_data, @function
load_data:
.LFB299:
	.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	DWORD PTR -20[rbp], edi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	tcc_malloc
	mov	QWORD PTR -8[rbp], rax
	mov	rcx, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR -20[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	edi, eax
	call	lseek@PLT
	mov	rdx, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR -20[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	mov	QWORD PTR dummy_size_t[rip], rax
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE299:
	.size	load_data, .-load_data
	.section	.rodata
.LC243:
	.string	"invalid object file"
	.align 8
.LC244:
	.string	"object must contain only one symtab"
.LC245:
	.string	".gnu.linkonce"
.LC246:
	.string	"invalid section type"
.LC247:
	.string	"Invalid relocation entry"
	.text
	.type	tcc_load_object_file, @function
tcc_load_object_file:
.LFB300:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 256
	mov	QWORD PTR -232[rbp], rdi
	mov	DWORD PTR -236[rbp], esi
	mov	QWORD PTR -248[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rcx, -64[rbp]
	mov	eax, DWORD PTR -236[rbp]
	mov	edx, 52
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	cmp	rax, 52
	jne	.L3585
	movzx	eax, BYTE PTR -64[rbp]
	cmp	al, 127
	jne	.L3586
	movzx	eax, BYTE PTR -63[rbp]
	cmp	al, 69
	jne	.L3586
	movzx	eax, BYTE PTR -62[rbp]
	cmp	al, 76
	jne	.L3586
	movzx	eax, BYTE PTR -61[rbp]
	cmp	al, 70
	jne	.L3586
	movzx	eax, WORD PTR -48[rbp]
	cmp	ax, 1
	jne	.L3587
	movzx	eax, BYTE PTR -59[rbp]
	cmp	al, 1
	jne	.L3588
	movzx	eax, WORD PTR -46[rbp]
	cmp	ax, 3
	je	.L3537
	jmp	.L3588
.L3585:
	nop
	jmp	.L3533
.L3586:
	nop
	jmp	.L3533
.L3587:
	nop
	jmp	.L3533
.L3588:
	nop
.L3533:
	lea	rdi, .LC243[rip]
	mov	eax, 0
	call	error_noabort
	mov	eax, -1
	jmp	.L3583
.L3537:
	movzx	eax, WORD PTR -16[rbp]
	movzx	edx, ax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	eax, DWORD PTR -32[rbp]
	mov	ecx, eax
	mov	rax, QWORD PTR -248[rbp]
	add	rcx, rax
	mov	eax, DWORD PTR -236[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	load_data
	mov	QWORD PTR -136[rbp], rax
	movzx	eax, WORD PTR -16[rbp]
	movzx	edx, ax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdi, rax
	call	tcc_mallocz
	mov	QWORD PTR -128[rbp], rax
	movzx	eax, WORD PTR -14[rbp]
	movzx	edx, ax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -136[rbp]
	add	rax, rdx
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 20[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 16[rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -248[rbp]
	add	rcx, rax
	mov	eax, DWORD PTR -236[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	load_data
	mov	QWORD PTR -112[rbp], rax
	mov	QWORD PTR -176[rbp], 0
	mov	QWORD PTR -160[rbp], 0
	mov	QWORD PTR -184[rbp], 0
	mov	DWORD PTR -216[rbp], 0
	mov	DWORD PTR -224[rbp], 1
	jmp	.L3539
.L3544:
	mov	eax, DWORD PTR -224[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -136[rbp]
	add	rax, rdx
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	eax, 2
	jne	.L3540
	cmp	QWORD PTR -160[rbp], 0
	je	.L3541
	lea	rdi, .LC244[rip]
	mov	eax, 0
	call	error_noabort
.L3542:
	mov	DWORD PTR -212[rbp], -1
	jmp	.L3543
.L3541:
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 20[rax]
	shr	eax, 4
	mov	DWORD PTR -216[rbp], eax
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 20[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 16[rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -248[rbp]
	add	rcx, rax
	mov	eax, DWORD PTR -236[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	load_data
	mov	QWORD PTR -160[rbp], rax
	mov	eax, DWORD PTR -224[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -128[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR symtab_section[rip]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 24[rax]
	mov	edx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -136[rbp]
	add	rax, rdx
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 20[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 16[rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -248[rbp]
	add	rcx, rax
	mov	eax, DWORD PTR -236[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	load_data
	mov	QWORD PTR -184[rbp], rax
.L3540:
	add	DWORD PTR -224[rbp], 1
.L3539:
	movzx	eax, WORD PTR -16[rbp]
	movzx	eax, ax
	cmp	DWORD PTR -224[rbp], eax
	jl	.L3544
	mov	DWORD PTR -224[rbp], 1
	jmp	.L3545
.L3559:
	movzx	eax, WORD PTR -14[rbp]
	movzx	eax, ax
	cmp	DWORD PTR -224[rbp], eax
	je	.L3589
	mov	eax, DWORD PTR -224[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -136[rbp]
	add	rax, rdx
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	eax, 1
	je	.L3548
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	eax, 9
	je	.L3548
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	eax, 8
	jne	.L3590
.L3548:
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 32[rax]
	test	eax, eax
	jne	.L3549
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 32[rax], 1
.L3549:
	mov	DWORD PTR -220[rbp], 1
	jmp	.L3550
.L3555:
	mov	rax, QWORD PTR -232[rbp]
	mov	rdx, QWORD PTR 104[rax]
	mov	eax, DWORD PTR -220[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	lea	rdx, 120[rax]
	mov	rax, QWORD PTR -80[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	strcmp@PLT
	test	eax, eax
	jne	.L3551
	mov	rax, QWORD PTR -80[rbp]
	mov	edx, 13
	lea	rsi, .LC245[rip]
	mov	rdi, rax
	call	strncmp@PLT
	test	eax, eax
	jne	.L3591
	mov	eax, DWORD PTR -224[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	mov	BYTE PTR 17[rax], 1
	jmp	.L3547
.L3551:
	add	DWORD PTR -220[rbp], 1
.L3550:
	mov	rax, QWORD PTR -232[rbp]
	mov	eax, DWORD PTR 112[rax]
	cmp	DWORD PTR -220[rbp], eax
	jl	.L3555
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	edx, eax
	mov	rsi, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR -232[rbp]
	mov	rdi, rax
	call	new_section
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 32[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -144[rbp]
	mov	DWORD PTR 44[rax], edx
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 36[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -144[rbp]
	mov	DWORD PTR 48[rax], edx
	mov	eax, DWORD PTR -224[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	mov	BYTE PTR 16[rax], 1
	jmp	.L3554
.L3591:
	nop
.L3554:
	mov	rax, QWORD PTR -120[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	edx, eax
	je	.L3556
	lea	rdi, .LC246[rip]
	mov	eax, 0
	call	error_noabort
	jmp	.L3542
.L3556:
	mov	rax, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR [rax]
	mov	DWORD PTR -208[rbp], eax
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 32[rax]
	sub	eax, 1
	mov	DWORD PTR -188[rbp], eax
	mov	edx, DWORD PTR -208[rbp]
	mov	eax, DWORD PTR -188[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -188[rbp]
	not	eax
	and	eax, edx
	mov	DWORD PTR -208[rbp], eax
	mov	rax, QWORD PTR -120[rbp]
	mov	edx, DWORD PTR 32[rax]
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR 44[rax]
	cmp	edx, eax
	jbe	.L3557
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 32[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -144[rbp]
	mov	DWORD PTR 44[rax], edx
.L3557:
	mov	eax, DWORD PTR -208[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -144[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, DWORD PTR -224[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -128[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	mov	QWORD PTR 8[rdx], rax
	mov	eax, DWORD PTR -224[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -128[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -144[rbp]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 20[rax]
	mov	DWORD PTR -188[rbp], eax
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	eax, 8
	je	.L3558
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 16[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -248[rbp]
	add	rax, rdx
	mov	rcx, rax
	mov	eax, DWORD PTR -236[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	edi, eax
	call	lseek@PLT
	mov	eax, DWORD PTR -188[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -144[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	section_ptr_add
	mov	QWORD PTR -72[rbp], rax
	mov	eax, DWORD PTR -188[rbp]
	movsx	rdx, eax
	mov	rcx, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR -236[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	mov	QWORD PTR dummy_size_t[rip], rax
	jmp	.L3547
.L3558:
	mov	rax, QWORD PTR -144[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -188[rbp]
	cdqe
	add	rdx, rax
	mov	rax, QWORD PTR -144[rbp]
	mov	QWORD PTR [rax], rdx
	jmp	.L3547
.L3553:
.L3589:
	nop
	jmp	.L3547
.L3590:
	nop
.L3547:
	add	DWORD PTR -224[rbp], 1
.L3545:
	movzx	eax, WORD PTR -16[rbp]
	movzx	eax, ax
	cmp	DWORD PTR -224[rbp], eax
	jl	.L3559
	mov	rax, QWORD PTR -128[rbp]
	mov	QWORD PTR -104[rbp], rax
	mov	DWORD PTR -224[rbp], 1
	jmp	.L3560
.L3565:
	mov	eax, DWORD PTR -224[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -144[rbp], rax
	cmp	QWORD PTR -144[rbp], 0
	je	.L3592
	mov	eax, DWORD PTR -224[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR 16[rax]
	test	al, al
	je	.L3592
	mov	eax, DWORD PTR -224[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -136[rbp]
	add	rax, rdx
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 24[rax]
	test	eax, eax
	je	.L3564
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 24[rax]
	mov	edx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -144[rbp]
	mov	QWORD PTR 88[rax], rdx
.L3564:
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	eax, 9
	jne	.L3563
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 28[rax]
	mov	edx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR 28[rax]
	mov	rax, QWORD PTR -144[rbp]
	mov	DWORD PTR 40[rax], edx
	mov	rax, QWORD PTR -232[rbp]
	mov	rdx, QWORD PTR 104[rax]
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR 40[rax]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR -144[rbp]
	mov	QWORD PTR 96[rax], rdx
	jmp	.L3563
.L3592:
	nop
.L3563:
	add	DWORD PTR -224[rbp], 1
.L3560:
	movzx	eax, WORD PTR -16[rbp]
	movzx	eax, ax
	cmp	DWORD PTR -224[rbp], eax
	jl	.L3565
	mov	eax, DWORD PTR -216[rbp]
	cdqe
	sal	rax, 2
	mov	rdi, rax
	call	tcc_mallocz
	mov	QWORD PTR -176[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	add	rax, 16
	mov	QWORD PTR -168[rbp], rax
	mov	DWORD PTR -224[rbp], 1
	jmp	.L3566
.L3572:
	mov	rax, QWORD PTR -168[rbp]
	movzx	eax, WORD PTR 14[rax]
	test	ax, ax
	je	.L3567
	mov	rax, QWORD PTR -168[rbp]
	movzx	eax, WORD PTR 14[rax]
	cmp	ax, -257
	ja	.L3567
	mov	rax, QWORD PTR -168[rbp]
	movzx	eax, WORD PTR 14[rax]
	movzx	edx, ax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	movzx	eax, BYTE PTR 17[rax]
	test	al, al
	je	.L3568
	mov	rax, QWORD PTR -168[rbp]
	movzx	eax, BYTE PTR 12[rax]
	shr	al, 4
	test	al, al
	je	.L3593
	mov	rax, QWORD PTR -168[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -184[rbp]
	add	rax, rdx
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rdx, QWORD PTR -88[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	find_elf_sym
	mov	DWORD PTR -192[rbp], eax
	cmp	DWORD PTR -192[rbp], 0
	je	.L3593
	mov	eax, DWORD PTR -224[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -176[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -192[rbp]
	mov	DWORD PTR [rdx], eax
	jmp	.L3593
.L3568:
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L3594
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR 28[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -168[rbp]
	mov	WORD PTR 14[rax], dx
	mov	rax, QWORD PTR -168[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR 8[rax]
	add	edx, eax
	mov	rax, QWORD PTR -168[rbp]
	mov	DWORD PTR 4[rax], edx
.L3567:
	mov	rax, QWORD PTR -168[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -184[rbp]
	add	rax, rdx
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -168[rbp]
	movzx	eax, WORD PTR 14[rax]
	movzx	esi, ax
	mov	rax, QWORD PTR -168[rbp]
	movzx	eax, BYTE PTR 13[rax]
	movzx	ecx, al
	mov	rax, QWORD PTR -168[rbp]
	movzx	eax, BYTE PTR 12[rax]
	movzx	edx, al
	mov	rax, QWORD PTR -168[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	r10d, eax
	mov	rax, QWORD PTR -168[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	edi, eax
	mov	rax, QWORD PTR symtab_section[rip]
	sub	rsp, 8
	push	QWORD PTR -88[rbp]
	mov	r9d, esi
	mov	r8d, ecx
	mov	ecx, edx
	mov	rdx, r10
	mov	rsi, rdi
	mov	rdi, rax
	call	add_elf_sym
	add	rsp, 16
	mov	DWORD PTR -192[rbp], eax
	mov	eax, DWORD PTR -224[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -176[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -192[rbp]
	mov	DWORD PTR [rdx], eax
	jmp	.L3570
.L3593:
	nop
	jmp	.L3570
.L3594:
	nop
.L3570:
	add	DWORD PTR -224[rbp], 1
	add	QWORD PTR -168[rbp], 16
.L3566:
	mov	eax, DWORD PTR -224[rbp]
	cmp	eax, DWORD PTR -216[rbp]
	jl	.L3572
	mov	DWORD PTR -224[rbp], 1
	jmp	.L3573
.L3582:
	mov	eax, DWORD PTR -224[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -144[rbp], rax
	cmp	QWORD PTR -144[rbp], 0
	je	.L3595
	mov	eax, DWORD PTR -224[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -136[rbp]
	add	rax, rdx
	mov	QWORD PTR -120[rbp], rax
	mov	eax, DWORD PTR -224[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR 8[rax]
	mov	DWORD PTR -208[rbp], eax
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	eax, 9
	jne	.L3596
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 28[rax]
	mov	edx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR 8[rax]
	mov	DWORD PTR -204[rbp], eax
	mov	rax, QWORD PTR -144[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR [rax]
	add	rax, rdx
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	add	rax, rdx
	mov	QWORD PTR -152[rbp], rax
	jmp	.L3577
.L3581:
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR 4[rax]
	and	eax, 255
	mov	DWORD PTR -200[rbp], eax
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR 4[rax]
	shr	eax, 8
	mov	DWORD PTR -196[rbp], eax
	mov	eax, DWORD PTR -216[rbp]
	cmp	DWORD PTR -196[rbp], eax
	jnb	.L3597
	mov	eax, DWORD PTR -196[rbp]
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -196[rbp], eax
	cmp	DWORD PTR -196[rbp], 0
	jne	.L3580
	jmp	.L3579
.L3597:
	nop
.L3579:
	lea	rdi, .LC247[rip]
	mov	eax, 0
	call	error_noabort
	jmp	.L3542
.L3580:
	mov	eax, DWORD PTR -196[rbp]
	sal	eax, 8
	mov	edx, eax
	mov	eax, DWORD PTR -200[rbp]
	movzx	eax, al
	add	edx, eax
	mov	rax, QWORD PTR -152[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -152[rbp]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -204[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -152[rbp]
	mov	DWORD PTR [rax], edx
	add	QWORD PTR -152[rbp], 8
.L3577:
	mov	rax, QWORD PTR -152[rbp]
	cmp	rax, QWORD PTR -96[rbp]
	jb	.L3581
	jmp	.L3575
.L3595:
	nop
	jmp	.L3575
.L3596:
	nop
.L3575:
	add	DWORD PTR -224[rbp], 1
.L3573:
	movzx	eax, WORD PTR -16[rbp]
	movzx	eax, ax
	cmp	DWORD PTR -224[rbp], eax
	jl	.L3582
	mov	DWORD PTR -212[rbp], 0
.L3543:
	mov	rax, QWORD PTR -160[rbp]
	mov	rdi, rax
	call	tcc_free
	mov	rax, QWORD PTR -184[rbp]
	mov	rdi, rax
	call	tcc_free
	mov	rax, QWORD PTR -176[rbp]
	mov	rdi, rax
	call	tcc_free
	mov	rax, QWORD PTR -128[rbp]
	mov	rdi, rax
	call	tcc_free
	mov	rax, QWORD PTR -112[rbp]
	mov	rdi, rax
	call	tcc_free
	mov	rax, QWORD PTR -136[rbp]
	mov	rdi, rax
	call	tcc_free
	mov	eax, DWORD PTR -212[rbp]
.L3583:
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L3584
	call	__stack_chk_fail@PLT
.L3584:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE300:
	.size	tcc_load_object_file, .-tcc_load_object_file
	.type	get_be32, @function
get_be32:
.LFB301:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 8
	or	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 16
	or	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 24
	or	eax, edx
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE301:
	.size	get_be32, .-get_be32
	.type	tcc_load_alacarte, @function
tcc_load_alacarte:
.LFB302:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -72[rbp], rdi
	mov	DWORD PTR -76[rbp], esi
	mov	DWORD PTR -80[rbp], edx
	mov	eax, DWORD PTR -80[rbp]
	cdqe
	mov	rdi, rax
	call	tcc_malloc
	mov	QWORD PTR -32[rbp], rax
	mov	eax, DWORD PTR -80[rbp]
	movsx	rdx, eax
	mov	rcx, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR -76[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	mov	edx, DWORD PTR -80[rbp]
	movsx	rdx, edx
	cmp	rax, rdx
	jne	.L3609
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	get_be32
	mov	DWORD PTR -52[rbp], eax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 4
	mov	QWORD PTR -24[rbp], rax
	mov	eax, DWORD PTR -52[rbp]
	sal	eax, 2
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
.L3607:
	mov	DWORD PTR -60[rbp], 0
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	DWORD PTR -64[rbp], 0
	jmp	.L3603
.L3606:
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	find_elf_sym
	mov	DWORD PTR -48[rbp], eax
	cmp	DWORD PTR -48[rbp], 0
	je	.L3604
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	sal	rax, 4
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 14[rax]
	test	ax, ax
	jne	.L3604
	mov	eax, DWORD PTR -64[rbp]
	sal	eax, 2
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	rdi, rax
	call	get_be32
	add	eax, 60
	mov	DWORD PTR -44[rbp], eax
	add	DWORD PTR -60[rbp], 1
	mov	eax, DWORD PTR -44[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -76[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	edi, eax
	call	lseek@PLT
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	ecx, DWORD PTR -76[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	tcc_load_object_file
	test	eax, eax
	jns	.L3604
	jmp	.L3602
.L3609:
	nop
.L3602:
	mov	DWORD PTR -56[rbp], -1
	jmp	.L3605
.L3604:
	add	DWORD PTR -64[rbp], 1
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	strlen@PLT
	add	rax, 1
	add	QWORD PTR -40[rbp], rax
.L3603:
	mov	eax, DWORD PTR -64[rbp]
	cmp	eax, DWORD PTR -52[rbp]
	jl	.L3606
	cmp	DWORD PTR -60[rbp], 0
	jne	.L3607
	mov	DWORD PTR -56[rbp], 0
.L3605:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	tcc_free
	mov	eax, DWORD PTR -56[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE302:
	.size	tcc_load_alacarte, .-tcc_load_alacarte
	.section	.rodata
.LC248:
	.string	"invalid archive"
.LC249:
	.string	"//"
.LC250:
	.string	"__.SYMDEF"
.LC251:
	.string	"__.SYMDEF/"
.LC252:
	.string	"ARFILENAMES/"
	.text
	.type	tcc_load_archive, @function
tcc_load_archive:
.LFB303:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 160
	mov	QWORD PTR -152[rbp], rdi
	mov	DWORD PTR -156[rbp], esi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rcx, -51[rbp]
	mov	eax, DWORD PTR -156[rbp]
	mov	edx, 8
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	mov	QWORD PTR dummy_size_t[rip], rax
.L3621:
	lea	rcx, -112[rbp]
	mov	eax, DWORD PTR -156[rbp]
	mov	edx, 60
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	mov	DWORD PTR -128[rbp], eax
	cmp	DWORD PTR -128[rbp], 0
	je	.L3625
	cmp	DWORD PTR -128[rbp], 60
	je	.L3613
	lea	rdi, .LC248[rip]
	mov	eax, 0
	call	error_noabort
	mov	eax, -1
	jmp	.L3622
.L3613:
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR -43[rbp], rax
	movzx	eax, WORD PTR -56[rbp]
	mov	WORD PTR -35[rbp], ax
	mov	BYTE PTR -33[rbp], 0
	lea	rax, -43[rbp]
	mov	edx, 0
	mov	esi, 0
	mov	rdi, rax
	call	strtol@PLT
	mov	DWORD PTR -124[rbp], eax
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR -104[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	QWORD PTR -24[rbp], rdx
	mov	DWORD PTR -132[rbp], 15
	jmp	.L3615
.L3618:
	mov	eax, DWORD PTR -132[rbp]
	cdqe
	movzx	eax, BYTE PTR -32[rbp+rax]
	cmp	al, 32
	jne	.L3626
	sub	DWORD PTR -132[rbp], 1
.L3615:
	cmp	DWORD PTR -132[rbp], 0
	jns	.L3618
	jmp	.L3617
.L3626:
	nop
.L3617:
	mov	eax, DWORD PTR -132[rbp]
	add	eax, 1
	cdqe
	mov	BYTE PTR -32[rbp+rax], 0
	mov	eax, DWORD PTR -156[rbp]
	mov	edx, 1
	mov	esi, 0
	mov	edi, eax
	call	lseek@PLT
	mov	QWORD PTR -120[rbp], rax
	mov	eax, DWORD PTR -124[rbp]
	add	eax, 1
	and	eax, -2
	mov	DWORD PTR -124[rbp], eax
	lea	rax, -32[rbp]
	lea	rsi, .LC31[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L3619
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR 196[rax]
	test	eax, eax
	je	.L3620
	mov	edx, DWORD PTR -124[rbp]
	mov	ecx, DWORD PTR -156[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	tcc_load_alacarte
	jmp	.L3622
.L3619:
	lea	rax, -32[rbp]
	lea	rsi, .LC249[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	je	.L3620
	lea	rax, -32[rbp]
	lea	rsi, .LC250[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	je	.L3620
	lea	rax, -32[rbp]
	lea	rsi, .LC251[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	je	.L3620
	lea	rax, -32[rbp]
	lea	rsi, .LC252[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	je	.L3620
	mov	rdx, QWORD PTR -120[rbp]
	mov	ecx, DWORD PTR -156[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	tcc_load_object_file
	test	eax, eax
	jns	.L3620
	mov	eax, -1
	jmp	.L3622
.L3620:
	mov	eax, DWORD PTR -124[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -120[rbp]
	add	rax, rdx
	mov	rcx, rax
	mov	eax, DWORD PTR -156[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	edi, eax
	call	lseek@PLT
	jmp	.L3621
.L3625:
	nop
	mov	eax, 0
.L3622:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L3623
	call	__stack_chk_fail@PLT
.L3623:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE303:
	.size	tcc_load_archive, .-tcc_load_archive
	.section	.rodata
.LC253:
	.string	"bad architecture"
.LC254:
	.string	"referenced dll '%s' not found"
	.text
	.type	tcc_load_dll, @function
tcc_load_dll:
.LFB304:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 224
	mov	QWORD PTR -200[rbp], rdi
	mov	DWORD PTR -204[rbp], esi
	mov	QWORD PTR -216[rbp], rdx
	mov	DWORD PTR -208[rbp], ecx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rcx, -64[rbp]
	mov	eax, DWORD PTR -204[rbp]
	mov	edx, 52
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	mov	QWORD PTR dummy_size_t[rip], rax
	movzx	eax, BYTE PTR -59[rbp]
	cmp	al, 1
	jne	.L3628
	movzx	eax, WORD PTR -46[rbp]
	cmp	ax, 3
	je	.L3629
.L3628:
	lea	rdi, .LC253[rip]
	mov	eax, 0
	call	error_noabort
	mov	eax, -1
	jmp	.L3657
.L3629:
	movzx	eax, WORD PTR -16[rbp]
	movzx	edx, ax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	eax, DWORD PTR -32[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -204[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	load_data
	mov	QWORD PTR -104[rbp], rax
	mov	DWORD PTR -176[rbp], 0
	mov	DWORD PTR -172[rbp], 0
	mov	QWORD PTR -128[rbp], 0
	mov	QWORD PTR -144[rbp], 0
	mov	QWORD PTR -120[rbp], 0
	mov	DWORD PTR -180[rbp], 0
	mov	rax, QWORD PTR -104[rbp]
	mov	QWORD PTR -160[rbp], rax
	jmp	.L3631
.L3636:
	mov	rax, QWORD PTR -160[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	eax, 6
	je	.L3632
	cmp	eax, 11
	je	.L3633
	jmp	.L3635
.L3632:
	mov	rax, QWORD PTR -160[rbp]
	mov	eax, DWORD PTR 20[rax]
	shr	eax, 3
	mov	DWORD PTR -172[rbp], eax
	mov	rax, QWORD PTR -160[rbp]
	mov	eax, DWORD PTR 20[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -160[rbp]
	mov	eax, DWORD PTR 16[rax]
	mov	ecx, eax
	mov	eax, DWORD PTR -204[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	load_data
	mov	QWORD PTR -128[rbp], rax
	jmp	.L3635
.L3633:
	mov	rax, QWORD PTR -160[rbp]
	mov	eax, DWORD PTR 20[rax]
	shr	eax, 4
	mov	DWORD PTR -176[rbp], eax
	mov	rax, QWORD PTR -160[rbp]
	mov	eax, DWORD PTR 20[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -160[rbp]
	mov	eax, DWORD PTR 16[rax]
	mov	ecx, eax
	mov	eax, DWORD PTR -204[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	load_data
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	mov	eax, DWORD PTR 24[rax]
	mov	edx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR 20[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR 16[rax]
	mov	ecx, eax
	mov	eax, DWORD PTR -204[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	load_data
	mov	QWORD PTR -120[rbp], rax
	nop
.L3635:
	add	DWORD PTR -180[rbp], 1
	add	QWORD PTR -160[rbp], 40
.L3631:
	movzx	eax, WORD PTR -16[rbp]
	movzx	eax, ax
	cmp	DWORD PTR -180[rbp], eax
	jl	.L3636
	mov	rax, QWORD PTR -216[rbp]
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	mov	esi, 47
	mov	rdi, rax
	call	strrchr@PLT
	mov	QWORD PTR -96[rbp], rax
	cmp	QWORD PTR -96[rbp], 0
	je	.L3637
	mov	rax, QWORD PTR -96[rbp]
	add	rax, 1
	mov	QWORD PTR -112[rbp], rax
.L3637:
	mov	DWORD PTR -180[rbp], 0
	mov	rax, QWORD PTR -128[rbp]
	mov	QWORD PTR -136[rbp], rax
	jmp	.L3638
.L3640:
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 14
	jne	.L3639
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -120[rbp]
	add	rax, rdx
	mov	QWORD PTR -112[rbp], rax
.L3639:
	add	DWORD PTR -180[rbp], 1
	add	QWORD PTR -136[rbp], 8
.L3638:
	mov	eax, DWORD PTR -180[rbp]
	cmp	eax, DWORD PTR -172[rbp]
	jl	.L3640
	mov	DWORD PTR -180[rbp], 0
	jmp	.L3641
.L3645:
	mov	rax, QWORD PTR -200[rbp]
	mov	rdx, QWORD PTR 88[rax]
	mov	eax, DWORD PTR -180[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	lea	rdx, 4[rax]
	mov	rax, QWORD PTR -112[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L3642
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -208[rbp], eax
	jge	.L3643
	mov	rax, QWORD PTR -88[rbp]
	mov	edx, DWORD PTR -208[rbp]
	mov	DWORD PTR [rax], edx
.L3643:
	mov	DWORD PTR -168[rbp], 0
	jmp	.L3644
.L3642:
	add	DWORD PTR -180[rbp], 1
.L3641:
	mov	rax, QWORD PTR -200[rbp]
	mov	eax, DWORD PTR 96[rax]
	cmp	DWORD PTR -180[rbp], eax
	jl	.L3645
	mov	rax, QWORD PTR -112[rbp]
	mov	rdi, rax
	call	strlen@PLT
	add	rax, 8
	mov	rdi, rax
	call	tcc_malloc
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	edx, DWORD PTR -208[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -88[rbp]
	lea	rdx, 4[rax]
	mov	rax, QWORD PTR -112[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	strcpy@PLT
	mov	rax, QWORD PTR -200[rbp]
	lea	rsi, 96[rax]
	mov	rax, QWORD PTR -200[rbp]
	lea	rcx, 88[rax]
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, rax
	mov	rdi, rcx
	call	dynarray_add
	mov	DWORD PTR -180[rbp], 1
	mov	rax, QWORD PTR -144[rbp]
	add	rax, 16
	mov	QWORD PTR -152[rbp], rax
	jmp	.L3646
.L3649:
	mov	rax, QWORD PTR -152[rbp]
	movzx	eax, BYTE PTR 12[rax]
	shr	al, 4
	movzx	eax, al
	mov	DWORD PTR -164[rbp], eax
	cmp	DWORD PTR -164[rbp], 0
	je	.L3659
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -120[rbp]
	add	rax, rdx
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	movzx	eax, WORD PTR 14[rax]
	movzx	esi, ax
	mov	rax, QWORD PTR -152[rbp]
	movzx	eax, BYTE PTR 13[rax]
	movzx	ecx, al
	mov	rax, QWORD PTR -152[rbp]
	movzx	eax, BYTE PTR 12[rax]
	movzx	edx, al
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	r10d, eax
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	edi, eax
	mov	rax, QWORD PTR -200[rbp]
	mov	rax, QWORD PTR 160[rax]
	sub	rsp, 8
	push	QWORD PTR -80[rbp]
	mov	r9d, esi
	mov	r8d, ecx
	mov	ecx, edx
	mov	rdx, r10
	mov	rsi, rdi
	mov	rdi, rax
	call	add_elf_sym
	add	rsp, 16
	jmp	.L3648
.L3659:
	nop
.L3648:
	add	DWORD PTR -180[rbp], 1
	add	QWORD PTR -152[rbp], 16
.L3646:
	mov	eax, DWORD PTR -180[rbp]
	cmp	eax, DWORD PTR -176[rbp]
	jl	.L3649
	mov	DWORD PTR -180[rbp], 0
	mov	rax, QWORD PTR -128[rbp]
	mov	QWORD PTR -136[rbp], rax
	jmp	.L3650
.L3656:
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 1
	jne	.L3651
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -120[rbp]
	add	rax, rdx
	mov	QWORD PTR -80[rbp], rax
	mov	DWORD PTR -180[rbp], 0
	jmp	.L3652
.L3655:
	mov	rax, QWORD PTR -200[rbp]
	mov	rdx, QWORD PTR 88[rax]
	mov	eax, DWORD PTR -180[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	lea	rdx, 4[rax]
	mov	rax, QWORD PTR -80[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	je	.L3660
	add	DWORD PTR -180[rbp], 1
.L3652:
	mov	rax, QWORD PTR -200[rbp]
	mov	eax, DWORD PTR 96[rax]
	cmp	DWORD PTR -180[rbp], eax
	jl	.L3655
	mov	rcx, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR -200[rbp]
	mov	edx, 2
	mov	rsi, rcx
	mov	rdi, rax
	call	tcc_add_dll
	test	eax, eax
	jns	.L3661
	mov	rax, QWORD PTR -80[rbp]
	mov	rsi, rax
	lea	rdi, .LC254[rip]
	mov	eax, 0
	call	error_noabort
	mov	DWORD PTR -168[rbp], -1
	jmp	.L3644
.L3660:
	nop
	jmp	.L3662
.L3661:
	nop
.L3654:
.L3662:
	nop
.L3651:
	add	DWORD PTR -180[rbp], 1
	add	QWORD PTR -136[rbp], 8
.L3650:
	mov	eax, DWORD PTR -180[rbp]
	cmp	eax, DWORD PTR -172[rbp]
	jl	.L3656
	mov	DWORD PTR -168[rbp], 0
.L3644:
	mov	rax, QWORD PTR -120[rbp]
	mov	rdi, rax
	call	tcc_free
	mov	rax, QWORD PTR -144[rbp]
	mov	rdi, rax
	call	tcc_free
	mov	rax, QWORD PTR -128[rbp]
	mov	rdi, rax
	call	tcc_free
	mov	rax, QWORD PTR -104[rbp]
	mov	rdi, rax
	call	tcc_free
	mov	eax, DWORD PTR -168[rbp]
.L3657:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L3658
	call	__stack_chk_fail@PLT
.L3658:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE304:
	.size	tcc_load_dll, .-tcc_load_dll
	.section	.rodata
.LC255:
	.string	"/.-_+=$:\\,~"
	.text
	.type	ld_next, @function
ld_next:
.LFB305:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 56
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	DWORD PTR -52[rbp], edx
.L3664:
	mov	eax, DWORD PTR ch[rip]
	cmp	eax, 47
	jg	.L3665
	cmp	eax, -1
	jge	.L3666
	jmp	.L3667
.L3673:
	sub	eax, 65
	cmp	eax, 61
	seta	dl
	test	dl, dl
	jne	.L3667
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	movabs	rax, 2594073382345506815
	and	rax, rdx
	test	rax, rax
	setne	al
	test	al, al
	jne	.L3668
	jmp	.L3667
.L3666:
	add	eax, 1
	cmp	eax, 48
	ja	.L3667
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L3670[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L3670[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L3670:
	.long	.L3672-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3671-.L3670
	.long	.L3671-.L3670
	.long	.L3671-.L3670
	.long	.L3671-.L3670
	.long	.L3671-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3671-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3668-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3667-.L3670
	.long	.L3668-.L3670
	.long	.L3669-.L3670
	.text
.L3665:
	cmp	eax, 126
	jg	.L3667
	cmp	eax, 65
	jge	.L3673
	jmp	.L3667
.L3671:
	call	inp
	jmp	.L3664
.L3669:
	call	minp
	mov	eax, DWORD PTR ch[rip]
	cmp	eax, 42
	jne	.L3674
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	mov	rbx, QWORD PTR file[rip]
	mov	rdi, rax
	call	parse_comment
	mov	QWORD PTR [rbx], rax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR ch[rip], eax
	jmp	.L3664
.L3674:
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -24[rbp], rdx
	mov	BYTE PTR [rax], 47
	jmp	.L3682
.L3668:
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -24[rbp], rax
.L3675:
.L3682:
	mov	eax, DWORD PTR ch[rip]
	cmp	eax, 96
	jle	.L3676
	mov	eax, DWORD PTR ch[rip]
	cmp	eax, 122
	jle	.L3677
.L3676:
	mov	eax, DWORD PTR ch[rip]
	cmp	eax, 64
	jle	.L3678
	mov	eax, DWORD PTR ch[rip]
	cmp	eax, 90
	jle	.L3677
.L3678:
	mov	eax, DWORD PTR ch[rip]
	cmp	eax, 47
	jle	.L3679
	mov	eax, DWORD PTR ch[rip]
	cmp	eax, 57
	jle	.L3677
.L3679:
	mov	eax, DWORD PTR ch[rip]
	mov	esi, eax
	lea	rdi, .LC255[rip]
	call	strchr@PLT
	test	rax, rax
	je	.L3686
.L3677:
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR -48[rbp]
	mov	rdx, rax
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	cdqe
	cmp	rdx, rax
	jge	.L3681
	mov	ecx, DWORD PTR ch[rip]
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -24[rbp], rdx
	mov	edx, ecx
	mov	BYTE PTR [rax], dl
.L3681:
	call	minp
	jmp	.L3682
.L3686:
	nop
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR [rax], 0
	mov	DWORD PTR -28[rbp], 256
	jmp	.L3683
.L3672:
	mov	DWORD PTR -28[rbp], -1
	jmp	.L3683
.L3667:
	mov	eax, DWORD PTR ch[rip]
	mov	DWORD PTR -28[rbp], eax
	call	inp
	nop
.L3683:
	mov	eax, DWORD PTR -28[rbp]
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE305:
	.size	ld_next, .-ld_next
	.section	.rodata
.LC256:
	.string	"INPUT"
.LC257:
	.string	"GROUP"
.LC258:
	.string	"filename expected"
.LC259:
	.string	"OUTPUT_FORMAT"
.LC260:
	.string	"TARGET"
	.text
	.type	tcc_load_ldscript, @function
tcc_load_ldscript:
.LFB306:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 1136
	mov	QWORD PTR -1128[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR file[rip]
	mov	rax, QWORD PTR [rax]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR ch[rip], eax
	call	handle_eob
	mov	DWORD PTR ch[rip], eax
.L3708:
	lea	rcx, -1104[rbp]
	mov	rax, QWORD PTR -1128[rbp]
	mov	edx, 64
	mov	rsi, rcx
	mov	rdi, rax
	call	ld_next
	mov	DWORD PTR -1108[rbp], eax
	cmp	DWORD PTR -1108[rbp], -1
	jne	.L3688
	mov	eax, 0
	jmp	.L3709
.L3688:
	cmp	DWORD PTR -1108[rbp], 256
	je	.L3690
	mov	eax, -1
	jmp	.L3709
.L3690:
	lea	rax, -1104[rbp]
	lea	rsi, .LC256[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	je	.L3691
	lea	rax, -1104[rbp]
	lea	rsi, .LC257[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L3692
.L3691:
	lea	rcx, -1104[rbp]
	mov	rax, QWORD PTR -1128[rbp]
	mov	edx, 64
	mov	rsi, rcx
	mov	rdi, rax
	call	ld_next
	mov	DWORD PTR -1108[rbp], eax
	cmp	DWORD PTR -1108[rbp], 40
	je	.L3693
	lea	rdi, .LC93[rip]
	call	expect
.L3693:
	lea	rcx, -1040[rbp]
	mov	rax, QWORD PTR -1128[rbp]
	mov	edx, 1024
	mov	rsi, rcx
	mov	rdi, rax
	call	ld_next
	mov	DWORD PTR -1108[rbp], eax
.L3699:
	cmp	DWORD PTR -1108[rbp], -1
	jne	.L3694
	lea	rdi, .LC160[rip]
	mov	eax, 0
	call	error_noabort
	mov	eax, -1
	jmp	.L3709
.L3694:
	cmp	DWORD PTR -1108[rbp], 41
	je	.L3713
	cmp	DWORD PTR -1108[rbp], 256
	je	.L3697
	lea	rdi, .LC258[rip]
	mov	eax, 0
	call	error_noabort
	mov	eax, -1
	jmp	.L3709
.L3697:
	lea	rdx, -1040[rbp]
	mov	rax, QWORD PTR -1128[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	tcc_add_file
	lea	rcx, -1040[rbp]
	mov	rax, QWORD PTR -1128[rbp]
	mov	edx, 1024
	mov	rsi, rcx
	mov	rdi, rax
	call	ld_next
	mov	DWORD PTR -1108[rbp], eax
	cmp	DWORD PTR -1108[rbp], 44
	jne	.L3699
	lea	rcx, -1040[rbp]
	mov	rax, QWORD PTR -1128[rbp]
	mov	edx, 1024
	mov	rsi, rcx
	mov	rdi, rax
	call	ld_next
	mov	DWORD PTR -1108[rbp], eax
	jmp	.L3699
.L3713:
	nop
	jmp	.L3700
.L3692:
	lea	rax, -1104[rbp]
	lea	rsi, .LC259[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	je	.L3701
	lea	rax, -1104[rbp]
	lea	rsi, .LC260[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L3702
.L3701:
	lea	rcx, -1104[rbp]
	mov	rax, QWORD PTR -1128[rbp]
	mov	edx, 64
	mov	rsi, rcx
	mov	rdi, rax
	call	ld_next
	mov	DWORD PTR -1108[rbp], eax
	cmp	DWORD PTR -1108[rbp], 40
	je	.L3707
	lea	rdi, .LC93[rip]
	call	expect
.L3707:
	lea	rcx, -1040[rbp]
	mov	rax, QWORD PTR -1128[rbp]
	mov	edx, 1024
	mov	rsi, rcx
	mov	rdi, rax
	call	ld_next
	mov	DWORD PTR -1108[rbp], eax
	cmp	DWORD PTR -1108[rbp], -1
	jne	.L3704
	lea	rdi, .LC160[rip]
	mov	eax, 0
	call	error_noabort
	mov	eax, -1
	jmp	.L3709
.L3704:
	cmp	DWORD PTR -1108[rbp], 41
	je	.L3714
	jmp	.L3707
.L3714:
	nop
	jmp	.L3700
.L3702:
	mov	eax, -1
	jmp	.L3709
.L3700:
	jmp	.L3708
.L3709:
	mov	rdx, QWORD PTR -8[rbp]
	sub	rdx, QWORD PTR fs:40
	je	.L3710
	call	__stack_chk_fail@PLT
.L3710:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE306:
	.size	tcc_load_ldscript, .-tcc_load_ldscript
	.section	.rodata
.LC261:
	.string	"0x%08lx:"
.LC262:
	.string	" ???\n"
.LC263:
	.string	" %s()"
.LC264:
	.string	" (%s:%d"
.LC265:
	.string	", included from %s"
	.text
	.type	rt_printline, @function
rt_printline:
.LFB307:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 640
	mov	QWORD PTR -632[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR stderr[rip]
	mov	rdx, QWORD PTR -632[rbp]
	lea	rsi, .LC261[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	BYTE PTR -272[rbp], 0
	mov	QWORD PTR -592[rbp], 0
	mov	DWORD PTR -620[rbp], 0
	mov	BYTE PTR -144[rbp], 0
	mov	eax, 4294967295
	mov	QWORD PTR -584[rbp], rax
	mov	DWORD PTR -612[rbp], 1
	mov	rax, QWORD PTR stab_section[rip]
	mov	rax, QWORD PTR 8[rax]
	add	rax, 24
	mov	QWORD PTR -600[rbp], rax
	mov	rax, QWORD PTR stab_section[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR stab_section[rip]
	mov	rax, QWORD PTR [rax]
	add	rax, rdx
	mov	QWORD PTR -560[rbp], rax
	jmp	.L3716
.L3736:
	mov	rax, QWORD PTR -600[rbp]
	movzx	eax, BYTE PTR 8[rax]
	movzx	eax, al
	cmp	eax, 162
	je	.L3717
	cmp	eax, 162
	jg	.L3718
	cmp	eax, 130
	je	.L3719
	cmp	eax, 130
	jg	.L3718
	cmp	eax, 100
	je	.L3720
	cmp	eax, 100
	jg	.L3718
	cmp	eax, 36
	je	.L3721
	cmp	eax, 68
	je	.L3722
	jmp	.L3718
.L3721:
	mov	rax, QWORD PTR -600[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L3723
	mov	rax, QWORD PTR -600[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -592[rbp]
	add	rax, rdx
	mov	QWORD PTR -544[rbp], rax
	mov	rax, QWORD PTR -632[rbp]
	cmp	rax, QWORD PTR -584[rbp]
	jb	.L3724
	mov	rax, QWORD PTR -632[rbp]
	cmp	rax, QWORD PTR -544[rbp]
	jb	.L3746
.L3724:
	mov	BYTE PTR -272[rbp], 0
	mov	QWORD PTR -592[rbp], 0
	jmp	.L3718
.L3723:
	mov	rax, QWORD PTR stabstr_section[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -600[rbp]
	mov	rax, QWORD PTR [rax]
	add	rax, rdx
	mov	QWORD PTR -576[rbp], rax
	mov	rax, QWORD PTR -576[rbp]
	mov	esi, 58
	mov	rdi, rax
	call	strchr@PLT
	mov	QWORD PTR -536[rbp], rax
	cmp	QWORD PTR -536[rbp], 0
	jne	.L3727
	mov	rdx, QWORD PTR -576[rbp]
	lea	rax, -272[rbp]
	mov	esi, 128
	mov	rdi, rax
	call	pstrcpy
	jmp	.L3728
.L3727:
	mov	rax, QWORD PTR -536[rbp]
	sub	rax, QWORD PTR -576[rbp]
	mov	DWORD PTR -616[rbp], eax
	mov	eax, DWORD PTR -616[rbp]
	cmp	eax, 127
	jbe	.L3729
	mov	DWORD PTR -616[rbp], 127
.L3729:
	mov	eax, DWORD PTR -616[rbp]
	movsx	rdx, eax
	mov	rcx, QWORD PTR -576[rbp]
	lea	rax, -272[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	memcpy@PLT
	mov	eax, DWORD PTR -616[rbp]
	cdqe
	mov	BYTE PTR -272[rbp+rax], 0
.L3728:
	mov	rax, QWORD PTR -600[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	QWORD PTR -592[rbp], rax
	jmp	.L3718
.L3722:
	mov	rax, QWORD PTR -600[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -592[rbp]
	add	rax, rdx
	mov	QWORD PTR -544[rbp], rax
	mov	rax, QWORD PTR -632[rbp]
	cmp	rax, QWORD PTR -584[rbp]
	jb	.L3730
	mov	rax, QWORD PTR -632[rbp]
	cmp	rax, QWORD PTR -544[rbp]
	jb	.L3747
.L3730:
	mov	rax, QWORD PTR -544[rbp]
	mov	QWORD PTR -584[rbp], rax
	mov	rax, QWORD PTR -600[rbp]
	movzx	eax, WORD PTR 10[rax]
	movzx	eax, ax
	mov	DWORD PTR -612[rbp], eax
	lea	rdx, -272[rbp]
	lea	rax, -144[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcpy@PLT
	jmp	.L3718
.L3719:
	mov	rax, QWORD PTR stabstr_section[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -600[rbp]
	mov	rax, QWORD PTR [rax]
	add	rax, rdx
	mov	QWORD PTR -576[rbp], rax
	jmp	.L3731
.L3751:
	nop
.L3731:
	cmp	DWORD PTR -620[rbp], 31
	jg	.L3748
	mov	eax, DWORD PTR -620[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -620[rbp], edx
	cdqe
	mov	rdx, QWORD PTR -576[rbp]
	mov	QWORD PTR -528[rbp+rax*8], rdx
	jmp	.L3748
.L3717:
	cmp	DWORD PTR -620[rbp], 1
	jle	.L3749
	sub	DWORD PTR -620[rbp], 1
	jmp	.L3749
.L3720:
	mov	rax, QWORD PTR -600[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L3734
	mov	DWORD PTR -620[rbp], 0
	jmp	.L3750
.L3734:
	mov	rax, QWORD PTR stabstr_section[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -600[rbp]
	mov	rax, QWORD PTR [rax]
	add	rax, rdx
	mov	QWORD PTR -576[rbp], rax
	mov	rax, QWORD PTR -576[rbp]
	mov	rdi, rax
	call	strlen@PLT
	mov	DWORD PTR -616[rbp], eax
	cmp	DWORD PTR -616[rbp], 0
	jle	.L3750
	mov	eax, DWORD PTR -616[rbp]
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -576[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 47
	jne	.L3751
	jmp	.L3750
.L3748:
	nop
	jmp	.L3718
.L3749:
	nop
	jmp	.L3718
.L3750:
	nop
.L3718:
	add	QWORD PTR -600[rbp], 24
.L3716:
	mov	rax, QWORD PTR -600[rbp]
	cmp	rax, QWORD PTR -560[rbp]
	jb	.L3736
	mov	DWORD PTR -620[rbp], 0
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rax, QWORD PTR [rax]
	add	rax, rdx
	mov	QWORD PTR -552[rbp], rax
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rax, QWORD PTR 8[rax]
	add	rax, 16
	mov	QWORD PTR -568[rbp], rax
	jmp	.L3737
.L3739:
	mov	rax, QWORD PTR -568[rbp]
	movzx	eax, BYTE PTR 12[rax]
	movzx	eax, al
	and	eax, 15
	mov	DWORD PTR -604[rbp], eax
	cmp	DWORD PTR -604[rbp], 2
	jne	.L3738
	mov	rax, QWORD PTR -568[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	eax, eax
	cmp	QWORD PTR -632[rbp], rax
	jb	.L3738
	mov	rax, QWORD PTR -568[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -568[rbp]
	mov	eax, DWORD PTR 8[rax]
	add	eax, edx
	mov	eax, eax
	cmp	QWORD PTR -632[rbp], rax
	jnb	.L3738
	mov	rax, QWORD PTR strtab_section[rip]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -568[rbp]
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	add	rdx, rax
	lea	rax, -144[rbp]
	mov	esi, 128
	mov	rdi, rax
	call	pstrcpy
	jmp	.L3725
.L3738:
	add	QWORD PTR -568[rbp], 16
.L3737:
	mov	rax, QWORD PTR -568[rbp]
	cmp	rax, QWORD PTR -552[rbp]
	jb	.L3739
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 5
	mov	esi, 1
	lea	rdi, .LC262[rip]
	call	fwrite@PLT
	jmp	.L3715
.L3746:
	nop
	jmp	.L3725
.L3747:
	nop
.L3725:
	movzx	eax, BYTE PTR -144[rbp]
	test	al, al
	je	.L3741
	mov	rax, QWORD PTR stderr[rip]
	lea	rdx, -144[rbp]
	lea	rsi, .LC263[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
.L3741:
	cmp	DWORD PTR -620[rbp], 0
	jle	.L3742
	mov	eax, DWORD PTR -620[rbp]
	sub	eax, 1
	cdqe
	mov	rdx, QWORD PTR -528[rbp+rax*8]
	mov	rax, QWORD PTR stderr[rip]
	mov	ecx, DWORD PTR -612[rbp]
	lea	rsi, .LC264[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	eax, DWORD PTR -620[rbp]
	sub	eax, 2
	mov	DWORD PTR -608[rbp], eax
	jmp	.L3743
.L3744:
	mov	eax, DWORD PTR -608[rbp]
	cdqe
	mov	rdx, QWORD PTR -528[rbp+rax*8]
	mov	rax, QWORD PTR stderr[rip]
	lea	rsi, .LC265[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	sub	DWORD PTR -608[rbp], 1
.L3743:
	cmp	DWORD PTR -608[rbp], 0
	jns	.L3744
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 41
	call	fputc@PLT
.L3742:
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
.L3715:
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L3745
	call	__stack_chk_fail@PLT
.L3745:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE307:
	.size	rt_printline, .-rt_printline
	.type	rt_get_caller_pc, @function
rt_get_caller_pc:
.LFB308:
	.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	DWORD PTR -36[rbp], edx
	cmp	DWORD PTR -36[rbp], 0
	jne	.L3753
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], 12345
	mov	eax, 0
	jmp	.L3754
.L3753:
	mov	QWORD PTR -8[rbp], 23456
	mov	eax, 0
.L3754:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE308:
	.size	rt_get_caller_pc, .-rt_get_caller_pc
	.section	.rodata
.LC266:
	.string	"Runtime error: "
.LC267:
	.string	"at "
.LC268:
	.string	"by "
	.text
	.globl	rt_error
	.type	rt_error, @function
rt_error:
.LFB309:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 240
	mov	QWORD PTR -232[rbp], rdi
	mov	QWORD PTR -240[rbp], rsi
	mov	QWORD PTR -160[rbp], rdx
	mov	QWORD PTR -152[rbp], rcx
	mov	QWORD PTR -144[rbp], r8
	mov	QWORD PTR -136[rbp], r9
	test	al, al
	je	.L3756
	movaps	XMMWORD PTR -128[rbp], xmm0
	movaps	XMMWORD PTR -112[rbp], xmm1
	movaps	XMMWORD PTR -96[rbp], xmm2
	movaps	XMMWORD PTR -80[rbp], xmm3
	movaps	XMMWORD PTR -64[rbp], xmm4
	movaps	XMMWORD PTR -48[rbp], xmm5
	movaps	XMMWORD PTR -32[rbp], xmm6
	movaps	XMMWORD PTR -16[rbp], xmm7
.L3756:
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -184[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -216[rbp], 0
	mov	DWORD PTR -208[rbp], 16
	mov	DWORD PTR -204[rbp], 48
	lea	rax, 16[rbp]
	mov	QWORD PTR -200[rbp], rax
	lea	rax, -176[rbp]
	mov	QWORD PTR -192[rbp], rax
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 15
	mov	esi, 1
	lea	rdi, .LC266[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	lea	rdx, -208[rbp]
	mov	rcx, QWORD PTR -240[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vfprintf@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rsi, rax
	mov	edi, 10
	call	fputc@PLT
	mov	DWORD PTR -220[rbp], 0
	jmp	.L3757
.L3762:
	mov	edx, DWORD PTR -220[rbp]
	mov	rcx, QWORD PTR -232[rbp]
	lea	rax, -216[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	rt_get_caller_pc
	test	eax, eax
	js	.L3764
	cmp	DWORD PTR -220[rbp], 0
	jne	.L3760
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 3
	mov	esi, 1
	lea	rdi, .LC267[rip]
	call	fwrite@PLT
	jmp	.L3761
.L3760:
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 3
	mov	esi, 1
	lea	rdi, .LC268[rip]
	call	fwrite@PLT
.L3761:
	mov	rax, QWORD PTR -216[rbp]
	mov	rdi, rax
	call	rt_printline
	add	DWORD PTR -220[rbp], 1
.L3757:
	mov	eax, DWORD PTR num_callers[rip]
	cmp	DWORD PTR -220[rbp], eax
	jl	.L3762
	jmp	.L3759
.L3764:
	nop
.L3759:
	mov	edi, 255
	call	exit@PLT
	.cfi_endproc
.LFE309:
	.size	rt_error, .-rt_error
	.section	.rodata
.LC269:
	.string	"floating point exception"
.LC270:
	.string	"dereferencing invalid pointer"
.LC271:
	.string	"illegal instruction"
.LC272:
	.string	"abort() called"
.LC273:
	.string	"caught signal %d"
	.text
	.type	sig_error, @function
sig_error:
.LFB310:
	.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	DWORD PTR -20[rbp], edi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -20[rbp]
	sub	eax, 4
	cmp	eax, 7
	ja	.L3766
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L3768[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L3768[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L3768:
	.long	.L3771-.L3768
	.long	.L3766-.L3768
	.long	.L3770-.L3768
	.long	.L3767-.L3768
	.long	.L3769-.L3768
	.long	.L3766-.L3768
	.long	.L3766-.L3768
	.long	.L3767-.L3768
	.text
.L3769:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 8[rax]
	cmp	eax, 1
	je	.L3772
	cmp	eax, 3
	jne	.L3773
.L3772:
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, .LC190[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rt_error
	jmp	.L3774
.L3773:
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, .LC269[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rt_error
	nop
.L3774:
	jmp	.L3775
.L3767:
	mov	rax, QWORD PTR rt_bound_error_msg[rip]
	test	rax, rax
	je	.L3776
	mov	rax, QWORD PTR rt_bound_error_msg[rip]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L3776
	mov	rax, QWORD PTR rt_bound_error_msg[rip]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	mov	eax, 0
	call	rt_error
	jmp	.L3775
.L3776:
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, .LC270[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rt_error
	jmp	.L3775
.L3771:
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, .LC271[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rt_error
	jmp	.L3775
.L3770:
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, .LC272[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rt_error
	jmp	.L3775
.L3766:
	mov	edx, DWORD PTR -20[rbp]
	mov	rax, QWORD PTR -8[rbp]
	lea	rsi, .LC273[rip]
	mov	rdi, rax
	mov	eax, 0
	call	rt_error
	nop
.L3775:
	mov	edi, 255
	call	exit@PLT
	.cfi_endproc
.LFE310:
	.size	sig_error, .-sig_error
	.globl	tcc_relocate
	.type	tcc_relocate, @function
tcc_relocate:
.LFB311:
	.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	DWORD PTR 472[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	tcc_add_runtime
	call	relocate_common_syms
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	tcc_add_linker_symbols
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	build_got_entries
	mov	DWORD PTR -12[rbp], 1
	jmp	.L3779
.L3782:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 104[rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 36[rax]
	and	eax, 2
	test	eax, eax
	je	.L3780
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	eax, 8
	jne	.L3781
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	tcc_mallocz
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rdx], rax
.L3781:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 64[rax], rdx
.L3780:
	add	DWORD PTR -12[rbp], 1
.L3779:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 112[rax]
	cmp	DWORD PTR -12[rbp], eax
	jl	.L3782
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	relocate_syms
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 472[rax]
	test	eax, eax
	je	.L3783
	mov	eax, -1
	jmp	.L3784
.L3783:
	mov	DWORD PTR -12[rbp], 1
	jmp	.L3785
.L3787:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 104[rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 96[rax]
	test	rax, rax
	je	.L3786
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	relocate_section
.L3786:
	add	DWORD PTR -12[rbp], 1
.L3785:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 112[rax]
	cmp	DWORD PTR -12[rbp], eax
	jl	.L3787
	mov	eax, 0
.L3784:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE311:
	.size	tcc_relocate, .-tcc_relocate
	.section	.rodata
.LC274:
	.string	"main"
.LC275:
	.string	"__bound_error_msg"
	.text
	.globl	tcc_run
	.type	tcc_run, @function
tcc_run:
.LFB312:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 208
	mov	QWORD PTR -184[rbp], rdi
	mov	DWORD PTR -188[rbp], esi
	mov	QWORD PTR -200[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -184[rbp]
	mov	rdi, rax
	call	tcc_relocate
	test	eax, eax
	jns	.L3789
	mov	eax, -1
	jmp	.L3790
.L3789:
	mov	rax, QWORD PTR -184[rbp]
	lea	rsi, .LC274[rip]
	mov	rdi, rax
	call	tcc_get_symbol_err
	mov	QWORD PTR -176[rbp], rax
	mov	eax, DWORD PTR do_debug[rip]
	test	eax, eax
	je	.L3791
	mov	DWORD PTR -24[rbp], -2147483644
	lea	rax, sig_error[rip]
	mov	QWORD PTR -160[rbp], rax
	lea	rax, -160[rbp]
	add	rax, 8
	mov	rdi, rax
	call	sigemptyset@PLT
	lea	rax, -160[rbp]
	mov	edx, 0
	mov	rsi, rax
	mov	edi, 8
	call	sigaction@PLT
	lea	rax, -160[rbp]
	mov	edx, 0
	mov	rsi, rax
	mov	edi, 4
	call	sigaction@PLT
	lea	rax, -160[rbp]
	mov	edx, 0
	mov	rsi, rax
	mov	edi, 11
	call	sigaction@PLT
	lea	rax, -160[rbp]
	mov	edx, 0
	mov	rsi, rax
	mov	edi, 7
	call	sigaction@PLT
	lea	rax, -160[rbp]
	mov	edx, 0
	mov	rsi, rax
	mov	edi, 6
	call	sigaction@PLT
.L3791:
	mov	eax, DWORD PTR do_bounds_check[rip]
	test	eax, eax
	je	.L3792
	mov	rax, QWORD PTR -184[rbp]
	lea	rsi, .LC275[rip]
	mov	rdi, rax
	call	tcc_get_symbol_err
	mov	QWORD PTR rt_bound_error_msg[rip], rax
	mov	rax, QWORD PTR -184[rbp]
	lea	rsi, .LC220[rip]
	mov	rdi, rax
	call	tcc_get_symbol_err
	mov	QWORD PTR -168[rbp], rax
	mov	rax, QWORD PTR -168[rbp]
	call	rax
.L3792:
	mov	rdx, QWORD PTR -200[rbp]
	mov	eax, DWORD PTR -188[rbp]
	mov	rcx, QWORD PTR -176[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	rcx
.L3790:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L3793
	call	__stack_chk_fail@PLT
.L3793:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE312:
	.size	tcc_run, .-tcc_run
	.section	.rodata
.LC276:
	.string	"__STDC__"
.LC277:
	.string	"__i386__"
.LC278:
	.string	"__linux__"
.LC279:
	.string	"linux"
.LC280:
	.string	"__TINYC__"
.LC281:
	.string	"unsigned int"
.LC282:
	.string	"__SIZE_TYPE__"
.LC283:
	.string	"__PTRDIFF_TYPE__"
.LC284:
	.string	"__WCHAR_TYPE__"
.LC285:
	.string	"/usr/local/lib"
.LC286:
	.string	"/usr/lib"
.LC287:
	.string	"/lib"
.LC288:
	.string	".text"
.LC289:
	.string	".data"
.LC290:
	.string	".bss"
.LC291:
	.string	".hashtab"
.LC292:
	.string	".strtab"
.LC293:
	.string	".symtab"
.LC294:
	.string	".dynhashtab"
.LC295:
	.string	".dynstrtab"
.LC296:
	.string	".dynsymtab"
	.text
	.globl	tcc_new
	.type	tcc_new, @function
tcc_new:
.LFB313:
	.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	edi, 3088
	call	tcc_mallocz
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jne	.L3795
	mov	eax, 0
	jmp	.L3796
.L3795:
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR tcc_state[rip], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR [rax], 0
	mov	DWORD PTR -40[rbp], 0
	jmp	.L3797
.L3801:
	mov	eax, DWORD PTR -40[rbp]
	mov	edi, eax
	call	isid
	test	eax, eax
	jne	.L3798
	mov	eax, DWORD PTR -40[rbp]
	mov	edi, eax
	call	isnum
	test	eax, eax
	je	.L3799
.L3798:
	mov	eax, 1
	jmp	.L3800
.L3799:
	mov	eax, 0
.L3800:
	mov	ecx, eax
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	lea	rdx, isidnum_table[rip]
	mov	BYTE PTR [rax+rdx], cl
	add	DWORD PTR -40[rbp], 1
.L3797:
	cmp	DWORD PTR -40[rbp], 255
	jle	.L3801
	mov	QWORD PTR table_ident[rip], 0
	mov	edx, 65536
	mov	esi, 0
	lea	rdi, hash_ident[rip]
	call	memset@PLT
	mov	DWORD PTR tok_ident[rip], 256
	lea	rax, tcc_keywords[rip]
	mov	QWORD PTR -32[rbp], rax
	jmp	.L3802
.L3806:
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR -24[rbp], rax
.L3805:
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -24[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -36[rbp], eax
	cmp	DWORD PTR -36[rbp], 0
	je	.L3808
	jmp	.L3805
.L3808:
	nop
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR -32[rbp]
	sub	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	tok_alloc
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -32[rbp], rax
.L3802:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L3806
	mov	ecx, 0
	mov	edx, 0
	mov	esi, 0
	mov	edi, 326
	call	define_push
	mov	ecx, 0
	mov	edx, 0
	mov	esi, 0
	mov	edi, 327
	call	define_push
	mov	ecx, 0
	mov	edx, 0
	mov	esi, 0
	mov	edi, 328
	call	define_push
	mov	ecx, 0
	mov	edx, 0
	mov	esi, 0
	mov	edi, 329
	call	define_push
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, 0
	lea	rsi, .LC276[rip]
	mov	rdi, rax
	call	tcc_define_symbol
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, 0
	lea	rsi, .LC277[rip]
	mov	rdi, rax
	call	tcc_define_symbol
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, 0
	lea	rsi, .LC278[rip]
	mov	rdi, rax
	call	tcc_define_symbol
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, 0
	lea	rsi, .LC279[rip]
	mov	rdi, rax
	call	tcc_define_symbol
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, 0
	lea	rsi, .LC280[rip]
	mov	rdi, rax
	call	tcc_define_symbol
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, .LC281[rip]
	lea	rsi, .LC282[rip]
	mov	rdi, rax
	call	tcc_define_symbol
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, .LC84[rip]
	lea	rsi, .LC283[rip]
	mov	rdi, rax
	call	tcc_define_symbol
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, .LC84[rip]
	lea	rsi, .LC284[rip]
	mov	rdi, rax
	call	tcc_define_symbol
	mov	rax, QWORD PTR -16[rbp]
	lea	rsi, .LC285[rip]
	mov	rdi, rax
	call	tcc_add_library_path
	mov	rax, QWORD PTR -16[rbp]
	lea	rsi, .LC286[rip]
	mov	rdi, rax
	call	tcc_add_library_path
	mov	rax, QWORD PTR -16[rbp]
	lea	rsi, .LC287[rip]
	mov	rdi, rax
	call	tcc_add_library_path
	mov	rax, QWORD PTR -16[rbp]
	lea	rcx, 112[rax]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 104
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	dynarray_add
	mov	rax, QWORD PTR -16[rbp]
	mov	ecx, 6
	mov	edx, 1
	lea	rsi, .LC288[rip]
	mov	rdi, rax
	call	new_section
	mov	QWORD PTR text_section[rip], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	ecx, 3
	mov	edx, 1
	lea	rsi, .LC289[rip]
	mov	rdi, rax
	call	new_section
	mov	QWORD PTR data_section[rip], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	ecx, 3
	mov	edx, 8
	lea	rsi, .LC290[rip]
	mov	rdi, rax
	call	new_section
	mov	QWORD PTR bss_section[rip], rax
	mov	rax, QWORD PTR -16[rbp]
	sub	rsp, 8
	push	-2147483648
	lea	r9, .LC291[rip]
	lea	r8, .LC292[rip]
	mov	ecx, 0
	mov	edx, 2
	lea	rsi, .LC293[rip]
	mov	rdi, rax
	call	new_symtab
	add	rsp, 16
	mov	QWORD PTR symtab_section[rip], rax
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rax, QWORD PTR 88[rax]
	mov	QWORD PTR strtab_section[rip], rax
	mov	rax, QWORD PTR -16[rbp]
	sub	rsp, 8
	push	-2147483648
	lea	r9, .LC294[rip]
	lea	r8, .LC295[rip]
	mov	ecx, -2147483648
	mov	edx, 2
	lea	rsi, .LC296[rip]
	mov	rdi, rax
	call	new_symtab
	add	rsp, 16
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 160[rdx], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR 196[rax], 1
	mov	rax, QWORD PTR -16[rbp]
.L3796:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE313:
	.size	tcc_new, .-tcc_new
	.globl	tcc_delete
	.type	tcc_delete, @function
tcc_delete:
.LFB314:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	edi, 0
	call	free_defines
	mov	eax, DWORD PTR tok_ident[rip]
	sub	eax, 256
	mov	DWORD PTR -4[rbp], eax
	mov	DWORD PTR -8[rbp], 0
	jmp	.L3810
.L3811:
	mov	rdx, QWORD PTR table_ident[rip]
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	tcc_free
	add	DWORD PTR -8[rbp], 1
.L3810:
	mov	eax, DWORD PTR -8[rbp]
	cmp	eax, DWORD PTR -4[rbp]
	jl	.L3811
	mov	rax, QWORD PTR table_ident[rip]
	mov	rdi, rax
	call	tcc_free
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rax, QWORD PTR 104[rax]
	mov	rdi, rax
	call	free_section
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 160[rax]
	mov	rax, QWORD PTR 104[rax]
	mov	rdi, rax
	call	free_section
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 160[rax]
	mov	rax, QWORD PTR 88[rax]
	mov	rdi, rax
	call	free_section
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 160[rax]
	mov	rdi, rax
	call	free_section
	mov	DWORD PTR -8[rbp], 1
	jmp	.L3812
.L3813:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 104[rax]
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	free_section
	add	DWORD PTR -8[rbp], 1
.L3812:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 112[rax]
	cmp	DWORD PTR -8[rbp], eax
	jl	.L3813
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 104[rax]
	mov	rdi, rax
	call	tcc_free
	mov	DWORD PTR -8[rbp], 0
	jmp	.L3814
.L3815:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 88[rax]
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	tcc_free
	add	DWORD PTR -8[rbp], 1
.L3814:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 96[rax]
	cmp	DWORD PTR -8[rbp], eax
	jl	.L3815
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 88[rax]
	mov	rdi, rax
	call	tcc_free
	mov	DWORD PTR -8[rbp], 0
	jmp	.L3816
.L3817:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 72[rax]
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	tcc_free
	add	DWORD PTR -8[rbp], 1
.L3816:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 80[rax]
	cmp	DWORD PTR -8[rbp], eax
	jl	.L3817
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 72[rax]
	mov	rdi, rax
	call	tcc_free
	mov	DWORD PTR -8[rbp], 0
	jmp	.L3818
.L3819:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	tcc_free
	add	DWORD PTR -8[rbp], 1
.L3818:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 64[rax]
	cmp	DWORD PTR -8[rbp], eax
	jl	.L3819
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 56[rax]
	mov	rdi, rax
	call	tcc_free
	mov	DWORD PTR -8[rbp], 0
	jmp	.L3820
.L3821:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	tcc_free
	add	DWORD PTR -8[rbp], 1
.L3820:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	DWORD PTR -8[rbp], eax
	jl	.L3821
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdi, rax
	call	tcc_free
	mov	DWORD PTR -8[rbp], 0
	jmp	.L3822
.L3823:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	tcc_free
	add	DWORD PTR -8[rbp], 1
.L3822:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 48[rax]
	cmp	DWORD PTR -8[rbp], eax
	jl	.L3823
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	rdi, rax
	call	tcc_free
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	tcc_free
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE314:
	.size	tcc_delete, .-tcc_delete
	.globl	tcc_add_include_path
	.type	tcc_add_include_path, @function
tcc_add_include_path:
.LFB315:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	tcc_strdup
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, 32[rax]
	mov	rax, QWORD PTR -24[rbp]
	lea	rcx, 24[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, rax
	mov	rdi, rcx
	call	dynarray_add
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE315:
	.size	tcc_add_include_path, .-tcc_add_include_path
	.globl	tcc_add_sysinclude_path
	.type	tcc_add_sysinclude_path, @function
tcc_add_sysinclude_path:
.LFB316:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	tcc_strdup
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, 48[rax]
	mov	rax, QWORD PTR -24[rbp]
	lea	rcx, 40[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, rax
	mov	rdi, rcx
	call	dynarray_add
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE316:
	.size	tcc_add_sysinclude_path, .-tcc_add_sysinclude_path
	.section	.rodata
.LC297:
	.string	"file '%s' not found"
.LC298:
	.string	"S"
.LC299:
	.string	"s"
.LC300:
	.string	"could not read header"
.LC301:
	.string	"unrecognized ELF file"
.LC302:
	.string	"!<arch>\n"
.LC303:
	.string	"unrecognized file type"
	.text
	.type	tcc_add_file_internal, @function
tcc_add_file_internal:
.LFB317:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	add	rsp, -128
	mov	QWORD PTR -104[rbp], rdi
	mov	QWORD PTR -112[rbp], rsi
	mov	DWORD PTR -116[rbp], edx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -112[rbp]
	mov	esi, 47
	mov	rdi, rax
	call	strrchr@PLT
	mov	QWORD PTR -80[rbp], rax
	cmp	QWORD PTR -80[rbp], 0
	je	.L3829
	add	QWORD PTR -80[rbp], 1
	jmp	.L3830
.L3829:
	mov	rax, QWORD PTR -112[rbp]
	mov	QWORD PTR -80[rbp], rax
.L3830:
	mov	rax, QWORD PTR -80[rbp]
	mov	esi, 46
	mov	rdi, rax
	call	strrchr@PLT
	mov	QWORD PTR -88[rbp], rax
	cmp	QWORD PTR -88[rbp], 0
	je	.L3831
	add	QWORD PTR -88[rbp], 1
.L3831:
	mov	rax, QWORD PTR file[rip]
	mov	QWORD PTR -72[rbp], rax
	mov	rdx, QWORD PTR -112[rbp]
	mov	rax, QWORD PTR -104[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	tcc_open
	mov	QWORD PTR file[rip], rax
	mov	rax, QWORD PTR file[rip]
	test	rax, rax
	jne	.L3832
	mov	eax, DWORD PTR -116[rbp]
	and	eax, 1
	test	eax, eax
	je	.L3833
	mov	rax, QWORD PTR -112[rbp]
	mov	rsi, rax
	lea	rdi, .LC297[rip]
	mov	eax, 0
	call	error_noabort
.L3833:
	mov	DWORD PTR -96[rbp], -1
	jmp	.L3834
.L3832:
	cmp	QWORD PTR -88[rbp], 0
	je	.L3835
	mov	rax, QWORD PTR -88[rbp]
	lea	rsi, .LC221[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L3836
.L3835:
	mov	rax, QWORD PTR -104[rbp]
	mov	rdi, rax
	call	tcc_compile
	mov	DWORD PTR -96[rbp], eax
	jmp	.L3837
.L3836:
	mov	rax, QWORD PTR -88[rbp]
	lea	rsi, .LC298[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L3838
	mov	rax, QWORD PTR -104[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	tcc_assemble
	mov	DWORD PTR -96[rbp], eax
	jmp	.L3837
.L3838:
	mov	rax, QWORD PTR -88[rbp]
	lea	rsi, .LC299[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L3839
	mov	rax, QWORD PTR -104[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	tcc_assemble
	mov	DWORD PTR -96[rbp], eax
	jmp	.L3837
.L3839:
	mov	rax, QWORD PTR file[rip]
	mov	eax, DWORD PTR 16[rax]
	mov	DWORD PTR -92[rbp], eax
	lea	rcx, -64[rbp]
	mov	eax, DWORD PTR -92[rbp]
	mov	edx, 52
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	mov	DWORD PTR -96[rbp], eax
	mov	eax, DWORD PTR -92[rbp]
	mov	edx, 0
	mov	esi, 0
	mov	edi, eax
	call	lseek@PLT
	cmp	DWORD PTR -96[rbp], 0
	jg	.L3840
	lea	rdi, .LC300[rip]
	mov	eax, 0
	call	error_noabort
	jmp	.L3841
.L3840:
	cmp	DWORD PTR -96[rbp], 52
	jne	.L3852
	movzx	eax, BYTE PTR -64[rbp]
	cmp	al, 127
	jne	.L3844
	movzx	eax, BYTE PTR -63[rbp]
	cmp	al, 69
	jne	.L3844
	movzx	eax, BYTE PTR -62[rbp]
	cmp	al, 76
	jne	.L3844
	movzx	eax, BYTE PTR -61[rbp]
	cmp	al, 70
	jne	.L3844
	mov	rax, QWORD PTR file[rip]
	mov	DWORD PTR 20[rax], 0
	movzx	eax, WORD PTR -48[rbp]
	cmp	ax, 1
	jne	.L3845
	mov	ecx, DWORD PTR -92[rbp]
	mov	rax, QWORD PTR -104[rbp]
	mov	edx, 0
	mov	esi, ecx
	mov	rdi, rax
	call	tcc_load_object_file
	mov	DWORD PTR -96[rbp], eax
	jmp	.L3837
.L3845:
	movzx	eax, WORD PTR -48[rbp]
	cmp	ax, 3
	jne	.L3847
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L3848
	lea	rcx, __PRETTY_FUNCTION__.0[rip]
	mov	edx, 21008
	lea	rsi, .LC2[rip]
	lea	rdi, .LC3[rip]
	call	__assert_fail@PLT
.L3848:
	mov	eax, DWORD PTR -116[rbp]
	and	eax, 2
	test	eax, eax
	setne	al
	movzx	ecx, al
	mov	rdx, QWORD PTR -112[rbp]
	mov	esi, DWORD PTR -92[rbp]
	mov	rax, QWORD PTR -104[rbp]
	mov	rdi, rax
	call	tcc_load_dll
	mov	DWORD PTR -96[rbp], eax
	jmp	.L3837
.L3847:
	lea	rdi, .LC301[rip]
	mov	eax, 0
	call	error_noabort
	jmp	.L3841
.L3844:
	lea	rax, -64[rbp]
	mov	edx, 8
	lea	rsi, .LC302[rip]
	mov	rdi, rax
	call	memcmp@PLT
	test	eax, eax
	jne	.L3853
	mov	rax, QWORD PTR file[rip]
	mov	DWORD PTR 20[rax], 0
	mov	edx, DWORD PTR -92[rbp]
	mov	rax, QWORD PTR -104[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	tcc_load_archive
	mov	DWORD PTR -96[rbp], eax
	jmp	.L3837
.L3852:
	nop
	jmp	.L3843
.L3853:
	nop
.L3843:
	mov	rax, QWORD PTR -104[rbp]
	mov	rdi, rax
	call	tcc_load_ldscript
	mov	DWORD PTR -96[rbp], eax
	cmp	DWORD PTR -96[rbp], 0
	jns	.L3854
	lea	rdi, .LC303[rip]
	mov	eax, 0
	call	error_noabort
	jmp	.L3841
.L3854:
	nop
.L3837:
	mov	rax, QWORD PTR file[rip]
	mov	rdi, rax
	call	tcc_close
.L3834:
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR file[rip], rax
	mov	eax, DWORD PTR -96[rbp]
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L3850
	jmp	.L3851
.L3841:
	mov	DWORD PTR -96[rbp], -1
	jmp	.L3837
.L3851:
	call	__stack_chk_fail@PLT
.L3850:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE317:
	.size	tcc_add_file_internal, .-tcc_add_file_internal
	.globl	tcc_add_file
	.type	tcc_add_file, @function
tcc_add_file:
.LFB318:
	.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	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, 1
	mov	rsi, rcx
	mov	rdi, rax
	call	tcc_add_file_internal
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE318:
	.size	tcc_add_file, .-tcc_add_file
	.globl	tcc_add_library_path
	.type	tcc_add_library_path, @function
tcc_add_library_path:
.LFB319:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	tcc_strdup
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, 80[rax]
	mov	rax, QWORD PTR -24[rbp]
	lea	rcx, 72[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, rax
	mov	rdi, rcx
	call	dynarray_add
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE319:
	.size	tcc_add_library_path, .-tcc_add_library_path
	.type	tcc_add_dll, @function
tcc_add_dll:
.LFB320:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 1088
	mov	QWORD PTR -1064[rbp], rdi
	mov	QWORD PTR -1072[rbp], rsi
	mov	DWORD PTR -1076[rbp], edx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -1044[rbp], 0
	jmp	.L3860
.L3863:
	mov	rax, QWORD PTR -1064[rbp]
	mov	rdx, QWORD PTR 72[rax]
	mov	eax, DWORD PTR -1044[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -1072[rbp]
	lea	rax, -1040[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	lea	rdx, .LC218[rip]
	mov	esi, 1024
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	mov	edx, DWORD PTR -1076[rbp]
	lea	rcx, -1040[rbp]
	mov	rax, QWORD PTR -1064[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	tcc_add_file_internal
	test	eax, eax
	jne	.L3861
	mov	eax, 0
	jmp	.L3864
.L3861:
	add	DWORD PTR -1044[rbp], 1
.L3860:
	mov	rax, QWORD PTR -1064[rbp]
	mov	eax, DWORD PTR 80[rax]
	cmp	DWORD PTR -1044[rbp], eax
	jl	.L3863
	mov	eax, -1
.L3864:
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L3865
	call	__stack_chk_fail@PLT
.L3865:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE320:
	.size	tcc_add_dll, .-tcc_add_dll
	.section	.rodata
.LC304:
	.string	"lib%s.so"
.LC305:
	.string	"%s/lib%s.a"
	.text
	.globl	tcc_add_library
	.type	tcc_add_library, @function
tcc_add_library:
.LFB321:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 1072
	mov	QWORD PTR -1064[rbp], rdi
	mov	QWORD PTR -1072[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -1064[rbp]
	mov	eax, DWORD PTR 188[rax]
	test	eax, eax
	jne	.L3867
	mov	rdx, QWORD PTR -1072[rbp]
	lea	rax, -1040[rbp]
	mov	rcx, rdx
	lea	rdx, .LC304[rip]
	mov	esi, 1024
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	lea	rcx, -1040[rbp]
	mov	rax, QWORD PTR -1064[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	tcc_add_dll
	test	eax, eax
	jne	.L3867
	mov	eax, 0
	jmp	.L3872
.L3867:
	mov	DWORD PTR -1044[rbp], 0
	jmp	.L3869
.L3871:
	mov	rax, QWORD PTR -1064[rbp]
	mov	rdx, QWORD PTR 72[rax]
	mov	eax, DWORD PTR -1044[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rcx, QWORD PTR -1072[rbp]
	lea	rax, -1040[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	lea	rdx, .LC305[rip]
	mov	esi, 1024
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	lea	rcx, -1040[rbp]
	mov	rax, QWORD PTR -1064[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	tcc_add_file_internal
	test	eax, eax
	jne	.L3870
	mov	eax, 0
	jmp	.L3872
.L3870:
	add	DWORD PTR -1044[rbp], 1
.L3869:
	mov	rax, QWORD PTR -1064[rbp]
	mov	eax, DWORD PTR 80[rax]
	cmp	DWORD PTR -1044[rbp], eax
	jl	.L3871
	mov	eax, -1
.L3872:
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L3873
	call	__stack_chk_fail@PLT
.L3873:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE321:
	.size	tcc_add_library, .-tcc_add_library
	.globl	tcc_add_symbol
	.type	tcc_add_symbol, @function
tcc_add_symbol:
.LFB322:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	rax, QWORD PTR symtab_section[rip]
	mov	rsi, QWORD PTR -24[rbp]
	sub	rsp, 8
	push	QWORD PTR -16[rbp]
	mov	r9d, 65521
	mov	r8d, 0
	mov	ecx, 16
	mov	edx, 0
	mov	rdi, rax
	call	add_elf_sym
	add	rsp, 16
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE322:
	.size	tcc_add_symbol, .-tcc_add_symbol
	.section	.rodata
.LC306:
	.string	"/usr/local/include"
.LC307:
	.string	"/usr/include"
.LC308:
	.string	"%s/include"
.LC309:
	.string	"__BOUNDS_CHECKING_ON"
.LC310:
	.string	".bounds"
.LC311:
	.string	".lbounds"
.LC312:
	.string	"__CHAR_UNSIGNED__"
.LC313:
	.string	".stab"
.LC314:
	.string	".stabstr"
.LC315:
	.string	"/usr/lib/crt1.o"
.LC316:
	.string	"/usr/lib/crti.o"
	.text
	.globl	tcc_set_output_type
	.type	tcc_set_output_type, @function
tcc_set_output_type:
.LFB323:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 1056
	mov	QWORD PTR -1048[rbp], rdi
	mov	DWORD PTR -1052[rbp], esi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -1048[rbp]
	mov	edx, DWORD PTR -1052[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -1048[rbp]
	mov	eax, DWORD PTR 176[rax]
	test	eax, eax
	jne	.L3877
	mov	rax, QWORD PTR -1048[rbp]
	lea	rsi, .LC306[rip]
	mov	rdi, rax
	call	tcc_add_sysinclude_path
	mov	rax, QWORD PTR -1048[rbp]
	lea	rsi, .LC307[rip]
	mov	rdi, rax
	call	tcc_add_sysinclude_path
	mov	rdx, QWORD PTR tcc_lib_path[rip]
	lea	rax, -1040[rbp]
	mov	rcx, rdx
	lea	rdx, .LC308[rip]
	mov	esi, 1024
	mov	rdi, rax
	mov	eax, 0
	call	snprintf@PLT
	lea	rdx, -1040[rbp]
	mov	rax, QWORD PTR -1048[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	tcc_add_sysinclude_path
.L3877:
	mov	eax, DWORD PTR do_bounds_check[rip]
	test	eax, eax
	je	.L3878
	mov	rax, QWORD PTR -1048[rbp]
	mov	edx, 0
	lea	rsi, .LC309[rip]
	mov	rdi, rax
	call	tcc_define_symbol
	mov	rax, QWORD PTR -1048[rbp]
	mov	ecx, 2
	mov	edx, 1
	lea	rsi, .LC310[rip]
	mov	rdi, rax
	call	new_section
	mov	QWORD PTR bounds_section[rip], rax
	mov	rax, QWORD PTR -1048[rbp]
	mov	ecx, 2
	mov	edx, 1
	lea	rsi, .LC311[rip]
	mov	rdi, rax
	call	new_section
	mov	QWORD PTR lbounds_section[rip], rax
.L3878:
	mov	rax, QWORD PTR -1048[rbp]
	mov	eax, DWORD PTR 216[rax]
	test	eax, eax
	je	.L3879
	mov	rax, QWORD PTR -1048[rbp]
	mov	edx, 0
	lea	rsi, .LC312[rip]
	mov	rdi, rax
	call	tcc_define_symbol
.L3879:
	mov	eax, DWORD PTR do_debug[rip]
	test	eax, eax
	je	.L3880
	mov	rax, QWORD PTR -1048[rbp]
	mov	ecx, 0
	mov	edx, 1
	lea	rsi, .LC313[rip]
	mov	rdi, rax
	call	new_section
	mov	QWORD PTR stab_section[rip], rax
	mov	rax, QWORD PTR stab_section[rip]
	mov	DWORD PTR 48[rax], 24
	mov	rax, QWORD PTR -1048[rbp]
	mov	ecx, 0
	mov	edx, 3
	lea	rsi, .LC314[rip]
	mov	rdi, rax
	call	new_section
	mov	QWORD PTR stabstr_section[rip], rax
	mov	rax, QWORD PTR stabstr_section[rip]
	lea	rsi, .LC34[rip]
	mov	rdi, rax
	call	put_elf_str
	mov	rax, QWORD PTR stab_section[rip]
	mov	rdx, QWORD PTR stabstr_section[rip]
	mov	QWORD PTR 88[rax], rdx
	mov	r8d, 0
	mov	ecx, 0
	mov	edx, 0
	mov	esi, 0
	lea	rdi, .LC34[rip]
	call	put_stabs
.L3880:
	cmp	DWORD PTR -1052[rbp], 1
	je	.L3881
	cmp	DWORD PTR -1052[rbp], 2
	jne	.L3882
.L3881:
	mov	rax, QWORD PTR -1048[rbp]
	mov	eax, DWORD PTR 180[rax]
	test	eax, eax
	jne	.L3882
	cmp	DWORD PTR -1052[rbp], 2
	je	.L3883
	mov	rax, QWORD PTR -1048[rbp]
	lea	rsi, .LC315[rip]
	mov	rdi, rax
	call	tcc_add_file
.L3883:
	mov	rax, QWORD PTR -1048[rbp]
	lea	rsi, .LC316[rip]
	mov	rdi, rax
	call	tcc_add_file
.L3882:
	mov	eax, 0
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L3885
	call	__stack_chk_fail@PLT
.L3885:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE323:
	.size	tcc_set_output_type, .-tcc_set_output_type
	.section	.rodata
.LC317:
	.string	"unsupported"
.LC318:
	.string	"write-strings"
.LC319:
	.string	"error"
.LC320:
	.string	"implicit-function-declaration"
	.section	.data.rel.ro.local,"aw"
	.align 32
	.type	warning_defs, @object
	.size	warning_defs, 64
warning_defs:
	.value	228
	.value	0
	.zero	4
	.quad	.LC317
	.value	224
	.value	0
	.zero	4
	.quad	.LC318
	.value	232
	.value	0
	.zero	4
	.quad	.LC319
	.value	240
	.value	1
	.zero	4
	.quad	.LC320
	.text
	.type	set_flag, @function
set_flag:
.LFB324:
	.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	DWORD PTR -52[rbp], edx
	mov	QWORD PTR -64[rbp], rcx
	mov	DWORD PTR -56[rbp], r8d
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 110
	jne	.L3887
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	cmp	al, 111
	jne	.L3887
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	cmp	al, 45
	jne	.L3887
	add	QWORD PTR -8[rbp], 3
	cmp	DWORD PTR -56[rbp], 0
	sete	al
	movzx	eax, al
	mov	DWORD PTR -56[rbp], eax
.L3887:
	mov	DWORD PTR -20[rbp], 0
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -16[rbp], rax
	jmp	.L3888
.L3891:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	je	.L3895
	add	DWORD PTR -20[rbp], 1
	add	QWORD PTR -16[rbp], 16
.L3888:
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -52[rbp]
	jl	.L3891
	mov	eax, -1
	jmp	.L3892
.L3895:
	nop
.L3890:
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, WORD PTR 2[rax]
	movzx	eax, ax
	and	eax, 2
	test	eax, eax
	je	.L3893
	cmp	DWORD PTR -56[rbp], 0
	sete	al
	movzx	eax, al
	mov	DWORD PTR -56[rbp], eax
.L3893:
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	edx, ax
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -56[rbp]
	mov	DWORD PTR [rdx], eax
	mov	eax, 0
.L3892:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE324:
	.size	set_flag, .-set_flag
	.section	.rodata
.LC321:
	.string	"all"
	.text
	.globl	tcc_set_warning
	.type	tcc_set_warning, @function
tcc_set_warning:
.LFB325:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -36[rbp], edx
	mov	rax, QWORD PTR -32[rbp]
	lea	rsi, .LC321[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L3897
	mov	DWORD PTR -12[rbp], 0
	lea	rax, warning_defs[rip]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L3898
.L3900:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 2[rax]
	movzx	eax, ax
	and	eax, 1
	test	eax, eax
	je	.L3899
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	edx, ax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	DWORD PTR [rax], 1
.L3899:
	add	DWORD PTR -12[rbp], 1
	add	QWORD PTR -8[rbp], 16
.L3898:
	mov	eax, DWORD PTR -12[rbp]
	cmp	eax, 3
	jbe	.L3900
	mov	eax, 0
	jmp	.L3901
.L3897:
	mov	ecx, DWORD PTR -36[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	r8d, ecx
	mov	rcx, rdx
	mov	edx, 4
	lea	rsi, warning_defs[rip]
	mov	rdi, rax
	call	set_flag
.L3901:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE325:
	.size	tcc_set_warning, .-tcc_set_warning
	.section	.rodata
.LC322:
	.string	"unsigned-char"
.LC323:
	.string	"signed-char"
.LC324:
	.string	"common"
.LC325:
	.string	"leading-underscore"
	.section	.data.rel.ro.local
	.align 32
	.type	flag_defs, @object
	.size	flag_defs, 64
flag_defs:
	.value	216
	.value	0
	.zero	4
	.quad	.LC322
	.value	216
	.value	2
	.zero	4
	.quad	.LC323
	.value	184
	.value	2
	.zero	4
	.quad	.LC324
	.value	220
	.value	0
	.zero	4
	.quad	.LC325
	.text
	.globl	tcc_set_flag
	.type	tcc_set_flag, @function
tcc_set_flag:
.LFB326:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	DWORD PTR -20[rbp], edx
	mov	ecx, DWORD PTR -20[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	r8d, ecx
	mov	rcx, rdx
	mov	edx, 4
	lea	rsi, flag_defs[rip]
	mov	rdi, rax
	call	set_flag
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE326:
	.size	tcc_set_flag, .-tcc_set_flag
	.type	tcc_basename, @function
tcc_basename:
.LFB327:
	.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	esi, 47
	mov	rdi, rax
	call	strrchr@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L3905
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L3906
.L3905:
	add	QWORD PTR -8[rbp], 1
.L3906:
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE327:
	.size	tcc_basename, .-tcc_basename
	.type	getclock_us, @function
getclock_us:
.LFB328:
	.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	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rax, -32[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	gettimeofday@PLT
	mov	rax, QWORD PTR -32[rbp]
	imul	rdx, rax, 1000000
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L3910
	call	__stack_chk_fail@PLT
.L3910:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE328:
	.size	getclock_us, .-getclock_us
	.section	.rodata
	.align 8
.LC326:
	.ascii	"tcc version 0.9.23 - Tiny C Compiler - Copyright (C) 2001-20"
	.ascii	"13 Fabrice Bellard\nusage: tcc [-v] [-c] [-o outfile] [-Bdir"
	.ascii	"] [-bench] [-Idir] [-Dsym[=val]] [-Usym]\n           [-Wwarn"
	.ascii	"] [-g] [-b] [-bt N] [-Ldir] [-llib] [-shared] [-static]\n   "
	.ascii	"        [infile1 infile2...] [-run infile args...]\n\nGenera"
	.ascii	"l options:\n  -v          display current version\n  -c     "
	.ascii	"     compile only - generate an object file\n  -o outfile  s"
	.ascii	"et output filename\n  -Bdir       set tcc internal library p"
	.ascii	"ath\n  -bench      output compilation statistics\n  -run    "
	.ascii	"    run compiled source\n  -fflag      set or reset (with 'n"
	.ascii	"o-' prefix) 'flag' (see man page)\n  -Wwarning   set or rese"
	.ascii	"t (with 'no-' prefix) 'warning' (see man page)\n  -w        "
	.ascii	"  disable all warnings\nPreprocessor options:\n  -Idir      "
	.ascii	" add include path 'dir'\n  -Dsym[=val] define 'sym' with val"
	.ascii	"ue 'val'\n  -Usym       undefine 'sym'\nLinker options:\n  -"
	.ascii	"Ldir       add library path 'dir'\n  -llib       link with d"
	.ascii	"ynamic or static library 'lib'\n  -shared     generate a sha"
	.ascii	"red library\n  -static     static linking\n  -rdynamic   "
	.string	"export all global symbols to dynamic linker\n  -r          relocatable output\nDebugger options:\n  -g          generate runtime debug info\n  -b          compile with built-in memory and bounds checker (implies -g)\n  -bt N       show N callers in stack traces"
	.text
	.globl	help
	.type	help, @function
help:
.LFB329:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	rdi, .LC326[rip]
	call	puts@PLT
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE329:
	.size	help, .-help
	.section	.rodata
.LC327:
	.string	"h"
.LC328:
	.string	"?"
.LC329:
	.string	"I"
.LC330:
	.string	"D"
.LC331:
	.string	"U"
.LC332:
	.string	"L"
.LC333:
	.string	"B"
.LC334:
	.string	"l"
.LC335:
	.string	"bench"
.LC336:
	.string	"bt"
.LC337:
	.string	"b"
.LC338:
	.string	"g"
.LC339:
	.string	"static"
.LC340:
	.string	"shared"
.LC341:
	.string	"o"
.LC342:
	.string	"run"
.LC343:
	.string	"rdynamic"
.LC344:
	.string	"r"
.LC345:
	.string	"Wl,"
.LC346:
	.string	"W"
.LC347:
	.string	"O"
.LC348:
	.string	"m"
.LC349:
	.string	"f"
.LC350:
	.string	"nostdinc"
.LC351:
	.string	"nostdlib"
.LC352:
	.string	"print-search-dirs"
.LC353:
	.string	"v"
.LC354:
	.string	"w"
.LC355:
	.string	"pipe"
	.section	.data.rel.ro.local
	.align 32
	.type	tcc_options, @object
	.size	tcc_options, 496
tcc_options:
	.quad	.LC327
	.value	0
	.value	0
	.zero	4
	.quad	.LC328
	.value	0
	.value	0
	.zero	4
	.quad	.LC329
	.value	1
	.value	1
	.zero	4
	.quad	.LC330
	.value	2
	.value	1
	.zero	4
	.quad	.LC331
	.value	3
	.value	1
	.zero	4
	.quad	.LC332
	.value	4
	.value	1
	.zero	4
	.quad	.LC333
	.value	5
	.value	1
	.zero	4
	.quad	.LC334
	.value	6
	.value	3
	.zero	4
	.quad	.LC335
	.value	7
	.value	0
	.zero	4
	.quad	.LC336
	.value	8
	.value	1
	.zero	4
	.quad	.LC337
	.value	9
	.value	0
	.zero	4
	.quad	.LC338
	.value	10
	.value	3
	.zero	4
	.quad	.LC221
	.value	11
	.value	0
	.zero	4
	.quad	.LC339
	.value	12
	.value	0
	.zero	4
	.quad	.LC340
	.value	13
	.value	0
	.zero	4
	.quad	.LC341
	.value	14
	.value	1
	.zero	4
	.quad	.LC342
	.value	25
	.value	3
	.zero	4
	.quad	.LC343
	.value	24
	.value	0
	.zero	4
	.quad	.LC344
	.value	15
	.value	0
	.zero	4
	.quad	.LC345
	.value	16
	.value	3
	.zero	4
	.quad	.LC346
	.value	17
	.value	3
	.zero	4
	.quad	.LC347
	.value	18
	.value	3
	.zero	4
	.quad	.LC348
	.value	19
	.value	1
	.zero	4
	.quad	.LC349
	.value	20
	.value	3
	.zero	4
	.quad	.LC350
	.value	21
	.value	0
	.zero	4
	.quad	.LC351
	.value	22
	.value	0
	.zero	4
	.quad	.LC352
	.value	23
	.value	0
	.zero	4
	.quad	.LC353
	.value	26
	.value	0
	.zero	4
	.quad	.LC354
	.value	27
	.value	0
	.zero	4
	.quad	.LC355
	.value	28
	.value	0
	.zero	4
	.quad	0
	.zero	8
	.text
	.type	expand_args, @function
expand_args:
.LFB330:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -40[rbp], 0
	mov	QWORD PTR -32[rbp], 0
	jmp	.L3913
.L3914:
	add	QWORD PTR -64[rbp], 1
.L3913:
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	edi, eax
	call	is_space
	test	eax, eax
	jne	.L3914
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L3924
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR -24[rbp], rax
	jmp	.L3917
.L3919:
	add	QWORD PTR -64[rbp], 1
.L3917:
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L3918
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	edi, eax
	call	is_space
	test	eax, eax
	je	.L3919
.L3918:
	mov	rax, QWORD PTR -64[rbp]
	sub	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	add	eax, 1
	cdqe
	mov	rdi, rax
	call	tcc_malloc
	mov	QWORD PTR -16[rbp], rax
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -16[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	memcpy@PLT
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 0
	mov	rdx, QWORD PTR -16[rbp]
	lea	rcx, -40[rbp]
	lea	rax, -32[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	dynarray_add
	jmp	.L3913
.L3924:
	nop
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, DWORD PTR -40[rbp]
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L3922
	call	__stack_chk_fail@PLT
.L3922:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE330:
	.size	expand_args, .-expand_args
	.local	files
	.comm	files,8,8
	.local	nb_files
	.comm	nb_files,4,4
	.local	nb_libraries
	.comm	nb_libraries,4,4
	.local	multiple_files
	.comm	multiple_files,4,4
	.local	print_search_dirs
	.comm	print_search_dirs,4,4
	.local	output_type
	.comm	output_type,4,4
	.local	reloc_output
	.comm	reloc_output,4,4
	.local	outfile
	.comm	outfile,8,8
	.section	.rodata
.LC356:
	.string	"invalid option -- '%s'"
.LC357:
	.string	"argument to '%s' is missing"
.LC358:
	.string	"too many include paths"
.LC359:
	.string	"0.9.23"
.LC360:
	.string	"tcc version %s\n"
.LC361:
	.string	"-Ttext,"
.LC362:
	.string	"--oformat,"
.LC363:
	.string	"elf32-"
.LC364:
	.string	"binary"
.LC365:
	.string	"target %s not found"
	.align 8
.LC366:
	.string	"unsupported linker option '%s'"
.LC367:
	.string	"unsupported option '%s'"
	.text
	.globl	parse_args
	.type	parse_args, @function
parse_args:
.LFB331:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 112
	mov	QWORD PTR -88[rbp], rdi
	mov	DWORD PTR -92[rbp], esi
	mov	QWORD PTR -104[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -80[rbp], 0
.L3984:
	mov	eax, DWORD PTR -80[rbp]
	cmp	eax, DWORD PTR -92[rbp]
	jl	.L3926
	mov	eax, DWORD PTR nb_files[rip]
	test	eax, eax
	jne	.L3927
	mov	eax, DWORD PTR print_search_dirs[rip]
	test	eax, eax
	jne	.L3927
	jmp	.L3928
.L3926:
	mov	eax, DWORD PTR -80[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -80[rbp], edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 45
	je	.L3929
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, rax
	lea	rsi, nb_files[rip]
	lea	rdi, files[rip]
	call	dynarray_add
	mov	eax, DWORD PTR multiple_files[rip]
	test	eax, eax
	jne	.L3984
	sub	DWORD PTR -80[rbp], 1
	jmp	.L3927
.L3929:
	lea	rax, tcc_options[rip]
	mov	QWORD PTR -64[rbp], rax
.L3937:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -48[rbp], rax
	cmp	QWORD PTR -48[rbp], 0
	jne	.L3931
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rax
	lea	rdi, .LC356[rip]
	mov	eax, 0
	call	error
.L3931:
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 1
	mov	QWORD PTR -40[rbp], rax
.L3936:
	mov	rax, QWORD PTR -48[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L3989
	mov	rax, QWORD PTR -40[rbp]
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -48[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	dl, al
	jne	.L3990
	add	QWORD PTR -48[rbp], 1
	add	QWORD PTR -40[rbp], 1
	jmp	.L3936
.L3990:
	nop
	add	QWORD PTR -64[rbp], 16
	jmp	.L3937
.L3989:
	nop
.L3933:
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, WORD PTR 10[rax]
	movzx	eax, ax
	and	eax, 1
	test	eax, eax
	je	.L3938
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L3939
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, WORD PTR 10[rax]
	movzx	eax, ax
	and	eax, 2
	test	eax, eax
	je	.L3940
.L3939:
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -56[rbp], rax
	jmp	.L3943
.L3940:
	mov	eax, DWORD PTR -80[rbp]
	cmp	eax, DWORD PTR -92[rbp]
	jl	.L3942
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rax
	lea	rdi, .LC357[rip]
	mov	eax, 0
	call	error
.L3942:
	mov	eax, DWORD PTR -80[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -80[rbp], edx
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -56[rbp], rax
	jmp	.L3943
.L3938:
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L3991
	mov	QWORD PTR -56[rbp], 0
.L3943:
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, WORD PTR 8[rax]
	movzx	eax, ax
	cmp	eax, 27
	ja	.L3945
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L3947[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L3947[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L3947:
	.long	.L3928-.L3947
	.long	.L3971-.L3947
	.long	.L3970-.L3947
	.long	.L3969-.L3947
	.long	.L3968-.L3947
	.long	.L3967-.L3947
	.long	.L3966-.L3947
	.long	.L3965-.L3947
	.long	.L3964-.L3947
	.long	.L3963-.L3947
	.long	.L3962-.L3947
	.long	.L3961-.L3947
	.long	.L3960-.L3947
	.long	.L3959-.L3947
	.long	.L3958-.L3947
	.long	.L3957-.L3947
	.long	.L3956-.L3947
	.long	.L3955-.L3947
	.long	.L3945-.L3947
	.long	.L3945-.L3947
	.long	.L3954-.L3947
	.long	.L3953-.L3947
	.long	.L3952-.L3947
	.long	.L3951-.L3947
	.long	.L3950-.L3947
	.long	.L3949-.L3947
	.long	.L3948-.L3947
	.long	.L3946-.L3947
	.text
.L3991:
	nop
.L3928:
	call	help
	mov	edi, 1
	call	exit@PLT
.L3971:
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	tcc_add_include_path
	test	eax, eax
	jns	.L3992
	lea	rdi, .LC358[rip]
	mov	eax, 0
	call	error
	jmp	.L3992
.L3970:
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, 61
	mov	rdi, rax
	call	strchr@PLT
	mov	QWORD PTR -32[rbp], rax
	cmp	QWORD PTR -32[rbp], 0
	je	.L3973
	mov	rax, QWORD PTR -32[rbp]
	mov	BYTE PTR [rax], 0
	add	QWORD PTR -32[rbp], 1
.L3973:
	mov	rdx, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	tcc_define_symbol
	jmp	.L3930
.L3969:
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	tcc_undefine_symbol
	jmp	.L3930
.L3968:
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	tcc_add_library_path
	jmp	.L3930
.L3967:
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR tcc_lib_path[rip], rax
	jmp	.L3930
.L3966:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, rax
	lea	rsi, nb_files[rip]
	lea	rdi, files[rip]
	call	dynarray_add
	mov	eax, DWORD PTR nb_libraries[rip]
	add	eax, 1
	mov	DWORD PTR nb_libraries[rip], eax
	jmp	.L3930
.L3965:
	mov	DWORD PTR do_bench[rip], 1
	jmp	.L3930
.L3964:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	atoi@PLT
	mov	DWORD PTR num_callers[rip], eax
	jmp	.L3930
.L3963:
	mov	DWORD PTR do_bounds_check[rip], 1
	mov	DWORD PTR do_debug[rip], 1
	jmp	.L3930
.L3962:
	mov	DWORD PTR do_debug[rip], 1
	jmp	.L3930
.L3961:
	mov	DWORD PTR multiple_files[rip], 1
	mov	DWORD PTR output_type[rip], 3
	jmp	.L3930
.L3960:
	mov	rax, QWORD PTR -88[rbp]
	mov	DWORD PTR 188[rax], 1
	jmp	.L3930
.L3959:
	mov	DWORD PTR output_type[rip], 2
	jmp	.L3930
.L3958:
	mov	DWORD PTR multiple_files[rip], 1
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR outfile[rip], rax
	jmp	.L3930
.L3957:
	mov	DWORD PTR reloc_output[rip], 1
	mov	DWORD PTR output_type[rip], 3
	jmp	.L3930
.L3953:
	mov	rax, QWORD PTR -88[rbp]
	mov	DWORD PTR 176[rax], 1
	jmp	.L3930
.L3952:
	mov	rax, QWORD PTR -88[rbp]
	mov	DWORD PTR 180[rax], 1
	jmp	.L3930
.L3951:
	mov	DWORD PTR print_search_dirs[rip], 1
	jmp	.L3930
.L3949:
	mov	rdx, QWORD PTR -56[rbp]
	lea	rax, -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	expand_args
	mov	DWORD PTR -76[rbp], eax
	cmp	DWORD PTR -76[rbp], 0
	jle	.L3974
	mov	rdx, QWORD PTR -72[rbp]
	mov	ecx, DWORD PTR -76[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	parse_args
.L3974:
	mov	DWORD PTR multiple_files[rip], 0
	mov	DWORD PTR output_type[rip], 0
	jmp	.L3930
.L3948:
	lea	rsi, .LC359[rip]
	lea	rdi, .LC360[rip]
	mov	eax, 0
	call	printf@PLT
	mov	edi, 0
	call	exit@PLT
.L3954:
	mov	rcx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	edx, 1
	mov	rsi, rcx
	mov	rdi, rax
	call	tcc_set_flag
	test	eax, eax
	jns	.L3993
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 228[rax]
	test	eax, eax
	je	.L3993
	jmp	.L3976
.L3955:
	mov	rcx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	edx, 1
	mov	rsi, rcx
	mov	rdi, rax
	call	tcc_set_warning
	test	eax, eax
	jns	.L3994
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 228[rax]
	test	eax, eax
	je	.L3994
	jmp	.L3976
.L3946:
	mov	rax, QWORD PTR -88[rbp]
	mov	DWORD PTR 236[rax], 1
	jmp	.L3930
.L3950:
	mov	rax, QWORD PTR -88[rbp]
	mov	DWORD PTR 192[rax], 1
	jmp	.L3930
.L3956:
	lea	rdx, -72[rbp]
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC361[rip]
	mov	rdi, rax
	call	strstart
	test	eax, eax
	je	.L3978
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, 16
	mov	esi, 0
	mov	rdi, rax
	call	strtoul@PLT
	mov	rdx, QWORD PTR -88[rbp]
	mov	QWORD PTR 200[rdx], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	DWORD PTR 208[rax], 1
	jmp	.L3930
.L3978:
	lea	rdx, -72[rbp]
	mov	rax, QWORD PTR -56[rbp]
	lea	rsi, .LC362[rip]
	mov	rdi, rax
	call	strstart
	test	eax, eax
	je	.L3980
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, 0
	lea	rsi, .LC363[rip]
	mov	rdi, rax
	call	strstart
	test	eax, eax
	je	.L3981
	mov	rax, QWORD PTR -88[rbp]
	mov	DWORD PTR 212[rax], 0
	jmp	.L3930
.L3981:
	mov	rax, QWORD PTR -72[rbp]
	lea	rsi, .LC364[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L3982
	mov	rax, QWORD PTR -88[rbp]
	mov	DWORD PTR 212[rax], 1
	jmp	.L3930
.L3982:
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rax
	lea	rdi, .LC365[rip]
	mov	eax, 0
	call	error
	jmp	.L3930
.L3980:
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rax
	lea	rdi, .LC366[rip]
	mov	eax, 0
	call	error
	jmp	.L3930
.L3945:
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 228[rax]
	test	eax, eax
	je	.L3995
	nop
.L3976:
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rax
	lea	rdi, .LC367[rip]
	mov	eax, 0
	call	warning
	jmp	.L3995
.L3992:
	nop
	jmp	.L3984
.L3993:
	nop
	jmp	.L3984
.L3994:
	nop
	jmp	.L3984
.L3995:
	nop
.L3930:
	jmp	.L3984
.L3927:
	mov	eax, DWORD PTR -80[rbp]
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L3986
	call	__stack_chk_fail@PLT
.L3986:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE331:
	.size	parse_args, .-parse_args
	.section	.rodata
.LC368:
	.string	"install: %s/\n"
	.align 8
.LC369:
	.string	"cannot specify multiple files with -c"
	.align 8
.LC370:
	.string	"cannot specify libraries with -c"
.LC371:
	.string	"a.out"
.LC372:
	.string	"cannot find %s"
	.align 8
.LC375:
	.string	"%d idents, %d lines, %d bytes, %0.3f s, %d lines/s, %0.1f MB/s\n"
	.text
	.globl	main2
	.type	main2, @function
main2:
.LFB332:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 1120
	mov	DWORD PTR -1108[rbp], edi
	mov	QWORD PTR -1120[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -1080[rbp], 0
	call	tcc_new
	mov	QWORD PTR -1064[rbp], rax
	mov	DWORD PTR output_type[rip], 1
	mov	QWORD PTR outfile[rip], 0
	mov	DWORD PTR multiple_files[rip], 1
	mov	QWORD PTR files[rip], 0
	mov	DWORD PTR nb_files[rip], 0
	mov	DWORD PTR nb_libraries[rip], 0
	mov	DWORD PTR reloc_output[rip], 0
	mov	DWORD PTR print_search_dirs[rip], 0
	mov	rax, QWORD PTR -1120[rbp]
	lea	rdx, 8[rax]
	mov	eax, DWORD PTR -1108[rbp]
	lea	ecx, -1[rax]
	mov	rax, QWORD PTR -1064[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	parse_args
	add	eax, 1
	mov	DWORD PTR -1088[rbp], eax
	mov	eax, DWORD PTR print_search_dirs[rip]
	test	eax, eax
	je	.L3997
	mov	rax, QWORD PTR tcc_lib_path[rip]
	mov	rsi, rax
	lea	rdi, .LC368[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, 0
	jmp	.L4018
.L3997:
	mov	eax, DWORD PTR nb_files[rip]
	mov	edx, DWORD PTR nb_libraries[rip]
	sub	eax, edx
	mov	DWORD PTR -1084[rbp], eax
	mov	rax, QWORD PTR outfile[rip]
	test	rax, rax
	je	.L3999
	mov	eax, DWORD PTR output_type[rip]
	test	eax, eax
	jne	.L3999
	mov	DWORD PTR output_type[rip], 1
.L3999:
	mov	eax, DWORD PTR output_type[rip]
	cmp	eax, 3
	jne	.L4000
	mov	eax, DWORD PTR reloc_output[rip]
	test	eax, eax
	jne	.L4000
	cmp	DWORD PTR -1084[rbp], 1
	je	.L4001
	lea	rdi, .LC369[rip]
	mov	eax, 0
	call	error
.L4001:
	mov	eax, DWORD PTR nb_libraries[rip]
	test	eax, eax
	je	.L4000
	lea	rdi, .LC370[rip]
	mov	eax, 0
	call	error
.L4000:
	mov	eax, DWORD PTR output_type[rip]
	test	eax, eax
	je	.L4002
	mov	rax, QWORD PTR outfile[rip]
	test	rax, rax
	jne	.L4002
	mov	rax, QWORD PTR files[rip]
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	tcc_basename
	mov	rdx, rax
	lea	rax, -1040[rbp]
	mov	esi, 1023
	mov	rdi, rax
	call	pstrcpy
	mov	eax, DWORD PTR output_type[rip]
	cmp	eax, 3
	jne	.L4021
	mov	eax, DWORD PTR reloc_output[rip]
	test	eax, eax
	jne	.L4021
	lea	rax, -1040[rbp]
	mov	esi, 46
	mov	rdi, rax
	call	strrchr@PLT
	mov	QWORD PTR -1056[rbp], rax
	cmp	QWORD PTR -1056[rbp], 0
	je	.L4022
	mov	rax, QWORD PTR -1056[rbp]
	add	rax, 1
	mov	WORD PTR [rax], 111
	jmp	.L4005
.L4021:
	nop
	jmp	.L4003
.L4022:
	nop
.L4003:
	lea	rax, -1040[rbp]
	lea	rdx, .LC371[rip]
	mov	esi, 1024
	mov	rdi, rax
	call	pstrcpy
.L4005:
	lea	rax, -1040[rbp]
	mov	QWORD PTR outfile[rip], rax
.L4002:
	mov	eax, DWORD PTR do_bench[rip]
	test	eax, eax
	je	.L4006
	call	getclock_us
	mov	QWORD PTR -1080[rbp], rax
.L4006:
	mov	edx, DWORD PTR output_type[rip]
	mov	rax, QWORD PTR -1064[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	tcc_set_output_type
	mov	DWORD PTR -1096[rbp], 0
	jmp	.L4007
.L4011:
	mov	rdx, QWORD PTR files[rip]
	mov	eax, DWORD PTR -1096[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1048[rbp], rax
	mov	rax, QWORD PTR -1048[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 45
	jne	.L4008
	mov	rax, QWORD PTR -1048[rbp]
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -1064[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	tcc_add_library
	test	eax, eax
	jns	.L4009
	mov	rax, QWORD PTR -1048[rbp]
	mov	rsi, rax
	lea	rdi, .LC372[rip]
	mov	eax, 0
	call	error
	jmp	.L4009
.L4008:
	mov	rdx, QWORD PTR -1048[rbp]
	mov	rax, QWORD PTR -1064[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	tcc_add_file
	test	eax, eax
	jns	.L4009
	mov	DWORD PTR -1092[rbp], 1
	jmp	.L4010
.L4009:
	add	DWORD PTR -1096[rbp], 1
.L4007:
	mov	eax, DWORD PTR nb_files[rip]
	cmp	DWORD PTR -1096[rbp], eax
	jl	.L4011
	mov	rax, QWORD PTR files[rip]
	mov	rdi, rax
	call	tcc_free
	mov	eax, DWORD PTR do_bench[rip]
	test	eax, eax
	je	.L4012
	call	getclock_us
	sub	rax, QWORD PTR -1080[rbp]
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	movsd	xmm1, QWORD PTR .LC373[rip]
	divsd	xmm0, xmm1
	movsd	QWORD PTR -1072[rbp], xmm0
	movsd	xmm0, QWORD PTR .LC374[rip]
	comisd	xmm0, QWORD PTR -1072[rbp]
	jbe	.L4013
	movsd	xmm0, QWORD PTR .LC374[rip]
	movsd	QWORD PTR -1072[rbp], xmm0
.L4013:
	mov	eax, DWORD PTR total_bytes[rip]
	test	eax, eax
	jg	.L4015
	mov	DWORD PTR total_bytes[rip], 1
.L4015:
	mov	eax, DWORD PTR total_bytes[rip]
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, eax
	divsd	xmm0, QWORD PTR -1072[rbp]
	movsd	xmm1, QWORD PTR .LC373[rip]
	movapd	xmm2, xmm0
	divsd	xmm2, xmm1
	mov	eax, DWORD PTR total_lines[rip]
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, eax
	divsd	xmm0, QWORD PTR -1072[rbp]
	cvttsd2si	edi, xmm0
	mov	edx, DWORD PTR total_bytes[rip]
	mov	eax, DWORD PTR total_lines[rip]
	mov	ecx, DWORD PTR tok_ident[rip]
	lea	esi, -256[rcx]
	mov	rcx, QWORD PTR -1072[rbp]
	movapd	xmm1, xmm2
	mov	r8d, edi
	movq	xmm0, rcx
	mov	ecx, edx
	mov	edx, eax
	lea	rdi, .LC375[rip]
	mov	eax, 2
	call	printf@PLT
.L4012:
	mov	rax, QWORD PTR -1064[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L4016
	mov	eax, DWORD PTR -1088[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1120[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -1108[rbp]
	sub	eax, DWORD PTR -1088[rbp]
	mov	ecx, eax
	mov	rax, QWORD PTR -1064[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	tcc_run
	mov	DWORD PTR -1092[rbp], eax
	jmp	.L4010
.L4016:
	mov	rdx, QWORD PTR outfile[rip]
	mov	rax, QWORD PTR -1064[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	tcc_output_file
	mov	DWORD PTR -1092[rbp], 0
.L4010:
	mov	eax, DWORD PTR do_bounds_check[rip]
	test	eax, eax
	jne	.L4017
	mov	rax, QWORD PTR -1064[rbp]
	mov	rdi, rax
	call	tcc_delete
.L4017:
	mov	eax, DWORD PTR -1092[rbp]
.L4018:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L4019
	call	__stack_chk_fail@PLT
.L4019:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE332:
	.size	main2, .-main2
	.globl	main
	.type	main, @function
main:
.LFB333:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -4[rbp], 0
	jmp	.L4024
.L4025:
	mov	rdx, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR -20[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	main2
	add	DWORD PTR -4[rbp], 1
.L4024:
	cmp	DWORD PTR -4[rbp], 29
	jle	.L4025
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE333:
	.size	main, .-main
	.globl	__tcc_fpu_control
	.data
	.align 2
	.type	__tcc_fpu_control, @object
	.size	__tcc_fpu_control, 2
__tcc_fpu_control:
	.value	4991
	.globl	__tcc_int_fpu_control
	.align 2
	.type	__tcc_int_fpu_control, @object
	.size	__tcc_int_fpu_control, 2
__tcc_int_fpu_control:
	.value	8063
	.section	.rodata
	.align 8
	.type	__PRETTY_FUNCTION__.4, @object
	.size	__PRETTY_FUNCTION__.4, 12
__PRETTY_FUNCTION__.4:
	.string	"resolve_sym"
	.local	cstr_buf.3
	.comm	cstr_buf.3,32,32
	.local	buf.2
	.comm	buf.2,1025,32
	.data
	.type	reg_saved.1, @object
	.size	reg_saved.1, 3
reg_saved.1:
	.ascii	"\003\006\007"
	.section	.rodata
	.align 16
	.type	__PRETTY_FUNCTION__.0, @object
	.size	__PRETTY_FUNCTION__.0, 22
__PRETTY_FUNCTION__.0:
	.string	"tcc_add_file_internal"
	.align 8
.LC51:
	.long	0
	.long	1106247680
	.align 8
.LC373:
	.long	0
	.long	1093567616
	.align 8
.LC374:
	.long	-755914244
	.long	1062232653
	.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	"1087615.c"
	.text
	.comm	dummy_char_star,4,4
	.comm	dummy_size_t,4,4
	.local	file
	.comm	file,4,4
	.local	ch
	.comm	ch,4,4
	.local	tok
	.comm	tok,4,4
	.local	tokc
	.comm	tokc,8,8
	.local	tokcstr
	.comm	tokcstr,16,4
	.local	tok_flags
	.comm	tok_flags,4,4
	.local	macro_ptr
	.comm	macro_ptr,4,4
	.local	macro_ptr_allocated
	.comm	macro_ptr_allocated,4,4
	.local	unget_saved_macro_ptr
	.comm	unget_saved_macro_ptr,4,4
	.local	unget_saved_buffer
	.comm	unget_saved_buffer,20,4
	.local	unget_buffer_enabled
	.comm	unget_buffer_enabled,4,4
	.local	parse_flags
	.comm	parse_flags,4,4
	.local	text_section
	.comm	text_section,4,4
	.local	data_section
	.comm	data_section,4,4
	.local	bss_section
	.comm	bss_section,4,4
	.local	cur_text_section
	.comm	cur_text_section,4,4
	.local	last_text_section
	.comm	last_text_section,4,4
	.local	bounds_section
	.comm	bounds_section,4,4
	.local	lbounds_section
	.comm	lbounds_section,4,4
	.local	symtab_section
	.comm	symtab_section,4,4
	.local	strtab_section
	.comm	strtab_section,4,4
	.local	stab_section
	.comm	stab_section,4,4
	.local	stabstr_section
	.comm	stabstr_section,4,4
	.local	rsym
	.comm	rsym,4,4
	.local	anon_sym
	.comm	anon_sym,4,4
	.local	ind
	.comm	ind,4,4
	.local	loc
	.comm	loc,4,4
	.local	const_wanted
	.comm	const_wanted,4,4
	.local	nocode_wanted
	.comm	nocode_wanted,4,4
	.local	global_expr
	.comm	global_expr,4,4
	.local	func_vt
	.comm	func_vt,8,4
	.local	func_vc
	.comm	func_vc,4,4
	.local	last_line_num
	.comm	last_line_num,4,4
	.local	last_ind
	.comm	last_ind,4,4
	.local	func_ind
	.comm	func_ind,4,4
	.local	tok_ident
	.comm	tok_ident,4,4
	.local	table_ident
	.comm	table_ident,4,4
	.local	hash_ident
	.comm	hash_ident,32768,4
	.local	token_buf
	.comm	token_buf,1025,4
	.local	funcname
	.comm	funcname,4,4
	.local	global_stack
	.comm	global_stack,4,4
	.local	local_stack
	.comm	local_stack,4,4
	.local	define_stack
	.comm	define_stack,4,4
	.local	global_label_stack
	.comm	global_label_stack,4,4
	.local	local_label_stack
	.comm	local_label_stack,4,4
	.local	sym_free_first
	.comm	sym_free_first,4,4
	.local	vstack
	.comm	vstack,8192,8
	.local	vtop
	.comm	vtop,4,4
	.local	char_pointer_type
	.comm	char_pointer_type,8,4
	.local	func_old_type
	.comm	func_old_type,8,4
	.local	int_type
	.comm	int_type,8,4
	.local	isidnum_table
	.comm	isidnum_table,256,4
	.local	do_debug
	.comm	do_debug,4,4
	.local	do_bounds_check
	.comm	do_bounds_check,4,4
	.local	do_bench
	.comm	do_bench,4,4
	.local	total_lines
	.comm	total_lines,4,4
	.local	total_bytes
	.comm	total_bytes,4,4
	.data
	.align	2
	.type	gnu_ext, %object
	.size	gnu_ext, 4
gnu_ext:
	.word	1
	.align	2
	.type	tcc_ext, %object
	.size	tcc_ext, 4
tcc_ext:
	.word	1
	.align	2
	.type	num_callers, %object
	.size	num_callers, 4
num_callers:
	.word	6
	.local	rt_bound_error_msg
	.comm	rt_bound_error_msg,4,4
	.local	tcc_state
	.comm	tcc_state,4,4
	.section	.rodata
	.align	2
.LC0:
	.ascii	"tinycc-extras\000"
	.data
	.align	2
	.type	tcc_lib_path, %object
	.size	tcc_lib_path, 4
tcc_lib_path:
	.word	.LC0
	.align	2
	.type	tok_two_chars, %object
	.size	tok_two_chars, 64
tok_two_chars:
	.ascii	"<=\236>=\235!=\225&&\240||\241++\244--\242==\224<<\001"
	.ascii	">>\002+=\253-=\255*=\252/=\257%=\245&=\246^=\336|=\374"
	.ascii	"->\313..\250##\266\000"
	.section	.rodata
	.align	2
	.type	tcc_keywords, %object
	.size	tcc_keywords, 4934
tcc_keywords:
	.ascii	"int\000void\000char\000if\000else\000while\000break"
	.ascii	"\000return\000for\000extern\000static\000unsigned\000"
	.ascii	"goto\000do\000continue\000switch\000case\000const\000"
	.ascii	"__const\000__const__\000volatile\000__volatile\000_"
	.ascii	"_volatile__\000long\000register\000signed\000__sign"
	.ascii	"ed\000__signed__\000auto\000inline\000__inline\000_"
	.ascii	"_inline__\000restrict\000__restrict\000__restrict__"
	.ascii	"\000__extension__\000float\000double\000_Bool\000sh"
	.ascii	"ort\000struct\000union\000typedef\000default\000enu"
	.ascii	"m\000sizeof\000__attribute\000__attribute__\000__al"
	.ascii	"ignof\000__alignof__\000typeof\000__typeof\000__typ"
	.ascii	"eof__\000__label__\000asm\000__asm\000__asm__\000de"
	.ascii	"fine\000include\000include_next\000ifdef\000ifndef\000"
	.ascii	"elif\000endif\000defined\000undef\000error\000warni"
	.ascii	"ng\000line\000pragma\000__LINE__\000__FILE__\000__D"
	.ascii	"ATE__\000__TIME__\000__FUNCTION__\000__VA_ARGS__\000"
	.ascii	"__func__\000section\000__section__\000aligned\000__"
	.ascii	"aligned__\000packed\000__packed__\000unused\000__un"
	.ascii	"used__\000cdecl\000__cdecl\000__cdecl__\000stdcall\000"
	.ascii	"__stdcall\000__stdcall__\000dllexport\000noreturn\000"
	.ascii	"__noreturn__\000__builtin_types_compatible_p\000__b"
	.ascii	"uiltin_constant_p\000regparm\000__regparm__\000pack"
	.ascii	"\000memcpy\000memset\000alloca\000__divdi3\000__mod"
	.ascii	"di3\000__udivdi3\000__umoddi3\000__sardi3\000__shrd"
	.ascii	"i3\000__shldi3\000__tcc_int_fpu_control\000__tcc_fp"
	.ascii	"u_control\000__ulltof\000__ulltod\000__ulltold\000_"
	.ascii	"_fixunssfdi\000__fixunsdfdi\000__fixunsxfdi\000__ch"
	.ascii	"kstk\000__bound_ptr_add\000__bound_ptr_indir1\000__"
	.ascii	"bound_ptr_indir2\000__bound_ptr_indir4\000__bound_p"
	.ascii	"tr_indir8\000__bound_ptr_indir12\000__bound_ptr_ind"
	.ascii	"ir16\000__bound_local_new\000__bound_local_delete\000"
	.ascii	"malloc\000free\000realloc\000memalign\000calloc\000"
	.ascii	"memmove\000strlen\000strcpy\000byte\000align\000ski"
	.ascii	"p\000space\000string\000asciz\000ascii\000globl\000"
	.ascii	"global\000text\000data\000bss\000previous\000fill\000"
	.ascii	"org\000quad\000al\000cl\000dl\000bl\000ah\000ch\000"
	.ascii	"dh\000bh\000ax\000cx\000dx\000bx\000sp\000bp\000si\000"
	.ascii	"di\000eax\000ecx\000edx\000ebx\000esp\000ebp\000esi"
	.ascii	"\000edi\000mm0\000mm1\000mm2\000mm3\000mm4\000mm5\000"
	.ascii	"mm6\000mm7\000xmm0\000xmm1\000xmm2\000xmm3\000xmm4\000"
	.ascii	"xmm5\000xmm6\000xmm7\000cr0\000cr1\000cr2\000cr3\000"
	.ascii	"cr4\000cr5\000cr6\000cr7\000tr0\000tr1\000tr2\000tr"
	.ascii	"3\000tr4\000tr5\000tr6\000tr7\000db0\000db1\000db2\000"
	.ascii	"db3\000db4\000db5\000db6\000db7\000dr0\000dr1\000dr"
	.ascii	"2\000dr3\000dr4\000dr5\000dr6\000dr7\000es\000cs\000"
	.ascii	"ss\000ds\000fs\000gs\000st\000movb\000movw\000movl\000"
	.ascii	"mov\000addb\000addw\000addl\000add\000orb\000orw\000"
	.ascii	"orl\000or\000adcb\000adcw\000adcl\000adc\000sbbb\000"
	.ascii	"sbbw\000sbbl\000sbb\000andb\000andw\000andl\000and\000"
	.ascii	"subb\000subw\000subl\000sub\000xorb\000xorw\000xorl"
	.ascii	"\000xor\000cmpb\000cmpw\000cmpl\000cmp\000incb\000i"
	.ascii	"ncw\000incl\000inc\000decb\000decw\000decl\000dec\000"
	.ascii	"notb\000notw\000notl\000not\000negb\000negw\000negl"
	.ascii	"\000neg\000mulb\000mulw\000mull\000mul\000imulb\000"
	.ascii	"imulw\000imull\000imul\000divb\000divw\000divl\000d"
	.ascii	"iv\000idivb\000idivw\000idivl\000idiv\000xchgb\000x"
	.ascii	"c"
	.ascii	"hgw\000xchgl\000xchg\000testb\000testw\000testl\000"
	.ascii	"test\000rolb\000rolw\000roll\000rol\000rorb\000rorw"
	.ascii	"\000rorl\000ror\000rclb\000rclw\000rcll\000rcl\000r"
	.ascii	"crb\000rcrw\000rcrl\000rcr\000shlb\000shlw\000shll\000"
	.ascii	"shl\000shrb\000shrw\000shrl\000shr\000sarb\000sarw\000"
	.ascii	"sarl\000sar\000shldw\000shldl\000shld\000shrdw\000s"
	.ascii	"hrdl\000shrd\000pushw\000pushl\000push\000popw\000p"
	.ascii	"opl\000pop\000inb\000inw\000inl\000in\000outb\000ou"
	.ascii	"tw\000outl\000out\000movzbw\000movzbl\000movzb\000m"
	.ascii	"ovzwl\000movsbw\000movsbl\000movswl\000leaw\000leal"
	.ascii	"\000lea\000les\000lds\000lss\000lfs\000lgs\000call\000"
	.ascii	"jmp\000lcall\000ljmp\000jo\000jno\000jb\000jc\000jn"
	.ascii	"ae\000jnb\000jnc\000jae\000je\000jz\000jne\000jnz\000"
	.ascii	"jbe\000jna\000jnbe\000ja\000js\000jns\000jp\000jpe\000"
	.ascii	"jnp\000jpo\000jl\000jnge\000jnl\000jge\000jle\000jn"
	.ascii	"g\000jnle\000jg\000seto\000setno\000setb\000setc\000"
	.ascii	"setnae\000setnb\000setnc\000setae\000sete\000setz\000"
	.ascii	"setne\000setnz\000setbe\000setna\000setnbe\000seta\000"
	.ascii	"sets\000setns\000setp\000setpe\000setnp\000setpo\000"
	.ascii	"setl\000setnge\000setnl\000setge\000setle\000setng\000"
	.ascii	"setnle\000setg\000cmovo\000cmovno\000cmovb\000cmovc"
	.ascii	"\000cmovnae\000cmovnb\000cmovnc\000cmovae\000cmove\000"
	.ascii	"cmovz\000cmovne\000cmovnz\000cmovbe\000cmovna\000cm"
	.ascii	"ovnbe\000cmova\000cmovs\000cmovns\000cmovp\000cmovp"
	.ascii	"e\000cmovnp\000cmovpo\000cmovl\000cmovnge\000cmovnl"
	.ascii	"\000cmovge\000cmovle\000cmovng\000cmovnle\000cmovg\000"
	.ascii	"bsfw\000bsfl\000bsf\000bsrw\000bsrl\000bsr\000btw\000"
	.ascii	"btl\000bt\000btsw\000btsl\000bts\000btrw\000btrl\000"
	.ascii	"btr\000btcw\000btcl\000btc\000lslw\000lsll\000lsl\000"
	.ascii	"fadd\000faddp\000fadds\000fiaddl\000faddl\000fiadds"
	.ascii	"\000fmul\000fmulp\000fmuls\000fimull\000fmull\000fi"
	.ascii	"muls\000fcom\000fcom_1\000fcoms\000ficoml\000fcoml\000"
	.ascii	"ficoms\000fcomp\000fcompp\000fcomps\000ficompl\000f"
	.ascii	"compl\000ficomps\000fsub\000fsubp\000fsubs\000fisub"
	.ascii	"l\000fsubl\000fisubs\000fsubr\000fsubrp\000fsubrs\000"
	.ascii	"fisubrl\000fsubrl\000fisubrs\000fdiv\000fdivp\000fd"
	.ascii	"ivs\000fidivl\000fdivl\000fidivs\000fdivr\000fdivrp"
	.ascii	"\000fdivrs\000fidivrl\000fdivrl\000fidivrs\000xaddb"
	.ascii	"\000xaddw\000xaddl\000xadd\000cmpxchgb\000cmpxchgw\000"
	.ascii	"cmpxchgl\000cmpxchg\000cmpsb\000cmpsw\000cmpsl\000c"
	.ascii	"mps\000scmpb\000scmpw\000scmpl\000scmp\000insb\000i"
	.ascii	"nsw\000insl\000ins\000outsb\000outsw\000outsl\000ou"
	.ascii	"ts\000lodsb\000lodsw\000lodsl\000lods\000slodb\000s"
	.ascii	"lodw\000slodl\000slod\000movsb\000movsw\000movsl\000"
	.ascii	"movs\000smovb\000smovw\000smovl\000smov\000scasb\000"
	.ascii	"scasw\000scasl\000scas\000sscab\000sscaw\000sscal\000"
	.ascii	"ssca\000stosb\000stosw\000stosl\000stos\000sstob\000"
	.ascii	"sstow\000sstol\000ssto\000pusha\000popa\000clc\000c"
	.ascii	"ld\000cli\000clts\000cmc\000lahf\000sahf\000pushfl\000"
	.ascii	"popfl\000pushf\000popf\000stc\000std\000sti\000aaa\000"
	.ascii	"aas\000daa\000das\000aad\000aam\000cbw\000cwd\000cw"
	.ascii	"de\000cdq\000cbtw\000cwtl\000cwtd\000cltd\000int3\000"
	.ascii	"into\000iret\000rsm\000hlt\000wait\000nop\000xlat\000"
	.ascii	"aword\000addr16\000word\000data16\000lock\000rep\000"
	.ascii	"repe\000repz\000repne\000repnz\000invd\000wbinvd\000"
	.ascii	"cpuid\000wrmsr\000rdtsc\000rdmsr\000rdpmc\000ud2\000"
	.ascii	"leave\000ret\000lret\000fucompp\000ftst\000fxam\000"
	.ascii	"fld1\000fldl2t\000fldl2e\000fldpi\000fldlg2\000fldl"
	.ascii	"n2\000fldz\000f2xm1\000fyl2x\000fptan\000fpatan\000"
	.ascii	"fxtract\000fprem1\000f"
	.ascii	"decstp\000fincstp\000fprem\000fyl2xp1\000fsqrt\000f"
	.ascii	"sincos\000frndint\000fscale\000fsin\000fcos\000fchs"
	.ascii	"\000fabs\000fninit\000fnclex\000fnop\000fwait\000fx"
	.ascii	"ch\000fnstsw\000emms\000enter\000loopne\000loopnz\000"
	.ascii	"loope\000loopz\000loop\000jecxz\000fld\000fldl\000f"
	.ascii	"lds\000fildl\000fildq\000fildll\000fldt\000fbld\000"
	.ascii	"fst\000fstl\000fsts\000fstps\000fstpl\000fist\000fi"
	.ascii	"stp\000fistl\000fistpl\000fstp\000fistpq\000fistpll"
	.ascii	"\000fstpt\000fbstp\000fucom\000fucomp\000finit\000f"
	.ascii	"ldcw\000fnstcw\000fstcw\000fstsw\000fclex\000fnsten"
	.ascii	"v\000fstenv\000fldenv\000fnsave\000fsave\000frstor\000"
	.ascii	"ffree\000ffreep\000fxsave\000fxrstor\000arpl\000lar"
	.ascii	"\000lgdt\000lidt\000lldt\000lmsw\000ltr\000sgdt\000"
	.ascii	"sidt\000sldt\000smsw\000str\000verr\000verw\000bswa"
	.ascii	"p\000invlpg\000boundl\000boundw\000cmpxchg8b\000fcm"
	.ascii	"ovb\000fcmove\000fcmovbe\000fcmovu\000fcmovnb\000fc"
	.ascii	"movne\000fcmovnbe\000fcmovnu\000fucomi\000fcomi\000"
	.ascii	"fucomip\000fcomip\000movd\000movq\000packssdw\000pa"
	.ascii	"cksswb\000packuswb\000paddb\000paddw\000paddd\000pa"
	.ascii	"ddsb\000paddsw\000paddusb\000paddusw\000pand\000pan"
	.ascii	"dn\000pcmpeqb\000pcmpeqw\000pcmpeqd\000pcmpgtb\000p"
	.ascii	"cmpgtw\000pcmpgtd\000pmaddwd\000pmulhw\000pmullw\000"
	.ascii	"por\000psllw\000pslld\000psllq\000psraw\000psrad\000"
	.ascii	"psrlw\000psrld\000psrlq\000psubb\000psubw\000psubd\000"
	.ascii	"psubsb\000psubsw\000psubusb\000psubusw\000punpckhbw"
	.ascii	"\000punpckhwd\000punpckhdq\000punpcklbw\000punpcklw"
	.ascii	"d\000punpckldq\000pxor\000\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_float, %function
is_float:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	and	r3, r3, #15
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #10
	beq	.L2
	ldr	r3, [fp, #-8]
	cmp	r3, #9
	beq	.L2
	ldr	r3, [fp, #-8]
	cmp	r3, #8
	bne	.L3
.L2:
	mov	r3, #1
	b	.L5
.L3:
	mov	r3, #0
.L5:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	is_float, .-is_float
	.global	reg_classes
	.data
	.align	2
	.type	reg_classes, %object
	.size	reg_classes, 16
reg_classes:
	.word	5
	.word	17
	.word	33
	.word	10
	.local	func_sub_sp_offset
	.comm	func_sub_sp_offset,4,4
	.local	func_bound_offset
	.comm	func_bound_offset,4,4
	.local	func_ret_sub
	.comm	func_ret_sub,4,4
	.text
	.align	2
	.global	g
	.syntax unified
	.arm
	.fpu softvfp
	.type	g, %function
g:
	@ 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, .L8
	ldr	r3, [r3]
	add	r3, r3, #1
	str	r3, [fp, #-8]
	ldr	r3, .L8+4
	ldr	r3, [r3]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	bcs	.L7
	ldr	r3, .L8+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	mov	r1, r2
	mov	r0, r3
	bl	section_realloc
.L7:
	ldr	r3, .L8+4
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	ldr	r2, .L8
	ldr	r2, [r2]
	add	r3, r3, r2
	ldr	r2, [fp, #-16]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r2, .L8
	ldr	r3, [fp, #-8]
	str	r3, [r2]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L9:
	.align	2
.L8:
	.word	ind
	.word	cur_text_section
	.size	g, .-g
	.align	2
	.global	o
	.syntax unified
	.arm
	.fpu softvfp
	.type	o, %function
o:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	b	.L11
.L12:
	ldr	r3, [fp, #-8]
	mov	r0, r3
	bl	g
	ldr	r3, [fp, #-8]
	lsr	r3, r3, #8
	str	r3, [fp, #-8]
.L11:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L12
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	o, .-o
	.align	2
	.global	gen_le32
	.syntax unified
	.arm
	.fpu softvfp
	.type	gen_le32, %function
gen_le32:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	g
	ldr	r3, [fp, #-8]
	asr	r3, r3, #8
	mov	r0, r3
	bl	g
	ldr	r3, [fp, #-8]
	asr	r3, r3, #16
	mov	r0, r3
	bl	g
	ldr	r3, [fp, #-8]
	asr	r3, r3, #24
	mov	r0, r3
	bl	g
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	gen_le32, .-gen_le32
	.align	2
	.global	gsym_addr
	.syntax unified
	.arm
	.fpu softvfp
	.type	gsym_addr, %function
gsym_addr:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	b	.L15
.L16:
	ldr	r3, .L17
	ldr	r3, [r3]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-16]
	sub	r3, r2, r3
	sub	r2, r3, #4
	ldr	r3, [fp, #-12]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	str	r3, [fp, #-16]
.L15:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L16
	nop
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L18:
	.align	2
.L17:
	.word	cur_text_section
	.size	gsym_addr, .-gsym_addr
	.align	2
	.global	gsym
	.syntax unified
	.arm
	.fpu softvfp
	.type	gsym, %function
gsym:
	@ 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, .L20
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	gsym_addr
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L21:
	.align	2
.L20:
	.word	ind
	.size	gsym, .-gsym
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	oad, %function
oad:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	mov	r0, r3
	bl	o
	ldr	r3, .L25
	ldr	r3, [r3]
	add	r3, r3, #4
	str	r3, [fp, #-8]
	ldr	r3, .L25+4
	ldr	r3, [r3]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	bcs	.L23
	ldr	r3, .L25+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	mov	r1, r2
	mov	r0, r3
	bl	section_realloc
.L23:
	ldr	r3, .L25+4
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	ldr	r2, .L25
	ldr	r2, [r2]
	add	r3, r3, r2
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, .L25
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r2, .L25
	ldr	r3, [fp, #-8]
	str	r3, [r2]
	ldr	r3, [fp, #-20]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L26:
	.align	2
.L25:
	.word	ind
	.word	cur_text_section
	.size	oad, .-oad
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	gen_addr32, %function
gen_addr32:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	ldr	r3, [fp, #-8]
	and	r3, r3, #512
	cmp	r3, #0
	beq	.L28
	ldr	r3, .L29
	ldr	r0, [r3]
	ldr	r3, .L29+4
	ldr	r3, [r3]
	mov	r2, r3
	mov	r3, #1
	ldr	r1, [fp, #-12]
	bl	greloc
.L28:
	ldr	r0, [fp, #-16]
	bl	gen_le32
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L30:
	.align	2
.L29:
	.word	cur_text_section
	.word	ind
	.size	gen_addr32, .-gen_addr32
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	gen_modrm, %function
gen_modrm:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	and	r3, r3, #255
	cmp	r3, #240
	bne	.L32
	ldr	r3, [fp, #-8]
	orr	r3, r3, #5
	mov	r0, r3
	bl	o
	ldr	r2, [fp, #-20]
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-12]
	bl	gen_addr32
	b	.L36
.L32:
	ldr	r3, [fp, #-12]
	and	r3, r3, #255
	cmp	r3, #242
	bne	.L34
	ldr	r3, [fp, #-20]
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-20]
	cmp	r3, r2
	bne	.L35
	ldr	r3, [fp, #-8]
	orr	r3, r3, #69
	mov	r0, r3
	bl	o
	ldr	r0, [fp, #-20]
	bl	g
	b	.L36
.L35:
	ldr	r3, [fp, #-8]
	orr	r3, r3, #133
	ldr	r1, [fp, #-20]
	mov	r0, r3
	bl	oad
	b	.L36
.L34:
	ldr	r3, [fp, #-12]
	and	r2, r3, #255
	ldr	r3, [fp, #-8]
	orr	r3, r2, r3
	mov	r0, r3
	bl	g
.L36:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	gen_modrm, .-gen_modrm
	.section	.rodata
	.align	2
.LC1:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	load
	.syntax unified
	.arm
	.fpu softvfp
	.type	load, %function
load:
	@ args = 0, pretend = 0, frame = 72
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #72
	str	r0, [fp, #-72]
	str	r1, [fp, #-76]
	ldr	r3, .L56
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-76]
	ldrh	r3, [r3, #8]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-76]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-76]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-64]
	and	r3, r3, #255
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-64]
	and	r3, r3, #256
	cmp	r3, #0
	beq	.L38
	ldr	r3, [fp, #-52]
	cmp	r3, #241
	bne	.L39
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r3, .L56+4
	strh	r3, [fp, #-36]	@ movhi
	ldr	r3, [fp, #-56]
	str	r3, [fp, #-28]
	sub	r3, fp, #44
	mov	r1, r3
	ldr	r0, [fp, #-72]
	bl	load
	ldr	r3, [fp, #-72]
	str	r3, [fp, #-64]
.L39:
	ldr	r3, [fp, #-60]
	and	r3, r3, #15
	cmp	r3, #8
	bne	.L40
	mov	r0, #217
	bl	o
	mov	r3, #0
	str	r3, [fp, #-72]
	b	.L41
.L40:
	ldr	r3, [fp, #-60]
	and	r3, r3, #15
	cmp	r3, #9
	bne	.L42
	mov	r0, #221
	bl	o
	mov	r3, #0
	str	r3, [fp, #-72]
	b	.L41
.L42:
	ldr	r3, [fp, #-60]
	and	r3, r3, #15
	cmp	r3, #10
	bne	.L43
	mov	r0, #219
	bl	o
	mov	r3, #5
	str	r3, [fp, #-72]
	b	.L41
.L43:
	ldr	r3, [fp, #-60]
	bic	r3, r3, #1920
	cmp	r3, #1
	bne	.L44
	ldr	r0, .L56+8
	bl	o
	b	.L41
.L44:
	ldr	r3, [fp, #-60]
	bic	r3, r3, #1920
	cmp	r3, #17
	bne	.L45
	ldr	r0, .L56+12
	bl	o
	b	.L41
.L45:
	ldr	r3, [fp, #-60]
	bic	r3, r3, #1920
	cmp	r3, #2
	bne	.L46
	ldr	r0, .L56+16
	bl	o
	b	.L41
.L46:
	ldr	r3, [fp, #-60]
	bic	r3, r3, #1920
	cmp	r3, #18
	bne	.L47
	ldr	r0, .L56+20
	bl	o
	b	.L41
.L47:
	mov	r0, #139
	bl	o
.L41:
	ldr	r3, [fp, #-76]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-56]
	ldr	r1, [fp, #-64]
	ldr	r0, [fp, #-72]
	bl	gen_modrm
	b	.L55
.L38:
	ldr	r3, [fp, #-52]
	cmp	r3, #240
	bne	.L49
	ldr	r3, [fp, #-72]
	add	r3, r3, #184
	mov	r0, r3
	bl	o
	ldr	r3, [fp, #-76]
	ldr	r3, [r3, #24]
	ldr	r2, [fp, #-56]
	mov	r1, r3
	ldr	r0, [fp, #-64]
	bl	gen_addr32
	b	.L55
.L49:
	ldr	r3, [fp, #-52]
	cmp	r3, #242
	bne	.L50
	mov	r0, #141
	bl	o
	ldr	r3, [fp, #-76]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-56]
	mov	r1, #242
	ldr	r0, [fp, #-72]
	bl	gen_modrm
	b	.L55
.L50:
	ldr	r3, [fp, #-52]
	cmp	r3, #243
	bne	.L51
	ldr	r3, [fp, #-72]
	add	r3, r3, #184
	mov	r1, #0
	mov	r0, r3
	bl	oad
	mov	r0, #15
	bl	o
	ldr	r3, [fp, #-56]
	mov	r0, r3
	bl	o
	ldr	r3, [fp, #-72]
	add	r3, r3, #192
	mov	r0, r3
	bl	o
	b	.L55
.L51:
	ldr	r3, [fp, #-52]
	cmp	r3, #244
	beq	.L52
	ldr	r3, [fp, #-52]
	cmp	r3, #245
	bne	.L53
.L52:
	ldr	r3, [fp, #-52]
	and	r3, r3, #1
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-72]
	add	r3, r3, #184
	ldr	r1, [fp, #-48]
	mov	r0, r3
	bl	oad
	ldr	r0, .L56+24
	bl	o
	ldr	r0, [fp, #-56]
	bl	gsym
	ldr	r3, [fp, #-72]
	add	r2, r3, #184
	ldr	r3, [fp, #-48]
	eor	r3, r3, #1
	mov	r1, r3
	mov	r0, r2
	bl	oad
	b	.L55
.L53:
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-72]
	cmp	r2, r3
	beq	.L55
	mov	r0, #137
	bl	o
	ldr	r3, [fp, #-72]
	add	r2, r3, #192
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #3
	add	r3, r2, r3
	mov	r0, r3
	bl	o
.L55:
	nop
	ldr	r3, .L56
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L54
	bl	__stack_chk_fail
.L54:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L57:
	.align	2
.L56:
	.word	.LC1
	.word	498
	.word	48655
	.word	46607
	.word	48911
	.word	46863
	.word	1515
	.size	load, .-load
	.align	2
	.global	store
	.syntax unified
	.arm
	.fpu softvfp
	.type	store, %function
store:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-28]
	ldrh	r3, [r3, #8]
	and	r3, r3, #255
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-20]
	and	r3, r3, #15
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #8
	bne	.L59
	mov	r0, #217
	bl	o
	mov	r3, #2
	str	r3, [fp, #-24]
	b	.L60
.L59:
	ldr	r3, [fp, #-8]
	cmp	r3, #9
	bne	.L61
	mov	r0, #221
	bl	o
	mov	r3, #2
	str	r3, [fp, #-24]
	b	.L60
.L61:
	ldr	r3, [fp, #-8]
	cmp	r3, #10
	bne	.L62
	ldr	r0, .L70
	bl	o
	mov	r0, #219
	bl	o
	mov	r3, #7
	str	r3, [fp, #-24]
	b	.L60
.L62:
	ldr	r3, [fp, #-8]
	cmp	r3, #2
	bne	.L63
	mov	r0, #102
	bl	o
.L63:
	ldr	r3, [fp, #-8]
	cmp	r3, #1
	beq	.L64
	ldr	r3, [fp, #-8]
	cmp	r3, #11
	bne	.L65
.L64:
	mov	r0, #136
	bl	o
	b	.L60
.L65:
	mov	r0, #137
	bl	o
.L60:
	ldr	r3, [fp, #-12]
	cmp	r3, #240
	beq	.L66
	ldr	r3, [fp, #-12]
	cmp	r3, #242
	beq	.L66
	ldr	r3, [fp, #-28]
	ldrh	r3, [r3, #8]
	and	r3, r3, #256
	cmp	r3, #0
	beq	.L67
.L66:
	ldr	r3, [fp, #-28]
	ldrh	r3, [r3, #8]
	mov	r1, r3
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-16]
	ldr	r0, [fp, #-24]
	bl	gen_modrm
	b	.L69
.L67:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	beq	.L69
	ldr	r3, [fp, #-12]
	add	r2, r3, #192
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #3
	add	r3, r2, r3
	mov	r0, r3
	bl	o
.L69:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L71:
	.align	2
.L70:
	.word	49369
	.size	store, .-store
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	gadd_sp, %function
gadd_sp:
	@ 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]
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-8]
	cmp	r3, r2
	bne	.L73
	ldr	r0, .L76
	bl	o
	ldr	r0, [fp, #-8]
	bl	g
	b	.L75
.L73:
	ldr	r1, [fp, #-8]
	ldr	r0, .L76+4
	bl	oad
.L75:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L77:
	.align	2
.L76:
	.word	50307
	.word	50305
	.size	gadd_sp, .-gadd_sp
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	gcall_or_jmp, %function
gcall_or_jmp:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	ldr	r3, .L84
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	lsl	r3, r3, #23
	lsr	r3, r3, #23
	cmp	r3, #240
	bne	.L79
	ldr	r3, .L84
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #512
	cmp	r3, #0
	beq	.L80
	ldr	r3, .L84+4
	ldr	r0, [r3]
	ldr	r3, .L84
	ldr	r3, [r3]
	ldr	r1, [r3, #24]
	ldr	r3, .L84+8
	ldr	r3, [r3]
	add	r3, r3, #1
	mov	r2, r3
	mov	r3, #2
	bl	greloc
	b	.L81
.L80:
	ldr	r3, .L84+12
	ldr	r0, [r3]
	ldr	r3, .L84+4
	ldr	r1, [r3]
	ldr	r3, .L84+8
	ldr	r3, [r3]
	add	r3, r3, #1
	mov	r2, r3
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #2
	bl	put_elf_reloc
.L81:
	ldr	r3, [fp, #-16]
	add	r2, r3, #232
	ldr	r3, .L84
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	sub	r3, r3, #4
	mov	r1, r3
	mov	r0, r2
	bl	oad
	b	.L83
.L79:
	mov	r0, #1
	bl	gv
	str	r0, [fp, #-8]
	mov	r0, #255
	bl	o
	ldr	r3, [fp, #-8]
	add	r2, r3, #208
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #4
	add	r3, r2, r3
	mov	r0, r3
	bl	o
.L83:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L85:
	.align	2
.L84:
	.word	vtop
	.word	cur_text_section
	.word	ind
	.word	symtab_section
	.size	gcall_or_jmp, .-gcall_or_jmp
	.data
	.align	2
	.type	fastcall_regs, %object
	.size	fastcall_regs, 3
fastcall_regs:
	.ascii	"\000\002\001"
	.section	.rodata
	.align	2
.LC2:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	gfunc_call
	.syntax unified
	.arm
	.fpu softvfp
	.type	gfunc_call, %function
gfunc_call:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-48]
	ldr	r3, .L106
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-32]
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L87
.L98:
	ldr	r3, .L106+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #7
	bne	.L88
	ldr	r3, .L106+4
	ldr	r3, [r3]
	mov	r2, r3
	sub	r3, fp, #40
	mov	r1, r3
	mov	r0, r2
	bl	type_size
	str	r0, [fp, #-36]
	ldr	r3, [fp, #-36]
	add	r3, r3, #3
	bic	r3, r3, #3
	str	r3, [fp, #-36]
	ldr	r1, [fp, #-36]
	ldr	r0, .L106+8
	bl	oad
	mov	r0, #1
	bl	get_reg
	str	r0, [fp, #-12]
	mov	r0, #137
	bl	o
	ldr	r3, [fp, #-12]
	add	r3, r3, #224
	mov	r0, r3
	bl	o
	ldr	r3, .L106+4
	ldr	r3, [r3]
	mov	r0, r3
	ldr	r3, [fp, #-12]
	orr	r3, r3, #256
	mov	r2, #0
	mov	r1, r3
	bl	vset
	bl	vswap
	bl	vstore
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-32]
	b	.L89
.L88:
	ldr	r3, .L106+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_float
	mov	r3, r0
	cmp	r3, #0
	beq	.L90
	mov	r0, #2
	bl	gv
	ldr	r3, .L106+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #8
	bne	.L91
	mov	r3, #4
	str	r3, [fp, #-36]
	b	.L92
.L91:
	ldr	r3, .L106+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #9
	bne	.L93
	mov	r3, #8
	str	r3, [fp, #-36]
	b	.L92
.L93:
	mov	r3, #12
	str	r3, [fp, #-36]
.L92:
	ldr	r1, [fp, #-36]
	ldr	r0, .L106+8
	bl	oad
	ldr	r3, [fp, #-36]
	cmp	r3, #12
	bne	.L94
	ldr	r0, .L106+12
	bl	o
	b	.L95
.L94:
	ldr	r3, [fp, #-36]
	add	r3, r3, #23552
	add	r3, r3, #213
	mov	r0, r3
	bl	o
.L95:
	mov	r0, #36
	bl	g
	mov	r0, #0
	bl	g
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-32]
	b	.L89
.L90:
	mov	r0, #1
	bl	gv
	str	r0, [fp, #-12]
	ldr	r3, .L106+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #12
	bne	.L96
	mov	r3, #8
	str	r3, [fp, #-36]
	ldr	r3, .L106+4
	ldr	r3, [r3]
	ldrh	r3, [r3, #10]
	add	r3, r3, #80
	mov	r0, r3
	bl	o
	b	.L97
.L96:
	mov	r3, #4
	str	r3, [fp, #-36]
.L97:
	ldr	r3, [fp, #-12]
	add	r3, r3, #80
	mov	r0, r3
	bl	o
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-32]
.L89:
	ldr	r3, .L106+4
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldr	r2, .L106+4
	str	r3, [r2]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L87:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-48]
	cmp	r2, r3
	blt	.L98
	mov	r0, #0
	bl	save_regs
	ldr	r3, .L106+4
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #1
	ble	.L99
	ldr	r3, [fp, #-20]
	cmp	r3, #4
	bgt	.L99
	ldr	r3, [fp, #-20]
	sub	r3, r3, #1
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L100
.L102:
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	ble	.L105
	ldr	r2, .L106+16
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	add	r3, r3, #88
	mov	r0, r3
	bl	o
	ldr	r3, [fp, #-32]
	sub	r3, r3, #4
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L100:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L102
	b	.L99
.L105:
	nop
.L99:
	mov	r0, #0
	bl	gcall_or_jmp
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	beq	.L103
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	cmp	r3, #1
	beq	.L103
	ldr	r0, [fp, #-32]
	bl	gadd_sp
.L103:
	ldr	r3, .L106+4
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldr	r2, .L106+4
	str	r3, [r2]
	nop
	ldr	r3, .L106
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L104
	bl	__stack_chk_fail
.L104:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L107:
	.align	2
.L106:
	.word	.LC2
	.word	vtop
	.word	60545
	.word	31963
	.word	fastcall_regs
	.size	gfunc_call, .-gfunc_call
	.section	.rodata
	.align	2
.LC3:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	gfunc_prolog
	.syntax unified
	.arm
	.fpu softvfp
	.type	gfunc_prolog, %function
gfunc_prolog:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-48]
	ldr	r3, .L120
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-20]
	mov	r3, #8
	str	r3, [fp, #-40]
	ldr	r3, .L120+4
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-20]
	cmp	r3, #1
	ble	.L109
	ldr	r3, [fp, #-20]
	cmp	r3, #4
	bgt	.L109
	ldr	r3, [fp, #-20]
	sub	r3, r3, #1
	str	r3, [fp, #-36]
	b	.L110
.L109:
	mov	r3, #0
	str	r3, [fp, #-36]
.L110:
	mov	r3, #0
	str	r3, [fp, #-32]
	ldr	r3, .L120+8
	ldr	r3, [r3]
	add	r3, r3, #9
	ldr	r2, .L120+8
	str	r3, [r2]
	ldr	r3, .L120+8
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, .L120+12
	str	r2, [r3]
	ldr	r2, .L120+16
	ldr	r3, [fp, #-24]
	add	r3, r3, #12
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	ldr	r3, .L120+16
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #7
	bne	.L112
	ldr	r2, .L120+20
	ldr	r3, [fp, #-40]
	str	r3, [r2]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
	b	.L112
.L115:
	ldr	r3, [fp, #-24]
	add	r3, r3, #12
	str	r3, [fp, #-16]
	sub	r3, fp, #44
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	type_size
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r3, r3, #3
	bic	r3, r3, #3
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-36]
	cmp	r2, r3
	bge	.L113
	ldr	r3, .L120+4
	ldr	r3, [r3]
	sub	r3, r3, #4
	ldr	r2, .L120+4
	str	r3, [r2]
	mov	r0, #137
	bl	o
	ldr	r2, .L120+24
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, .L120+4
	ldr	r3, [r3]
	mov	r2, #0
	mov	r1, #242
	bl	gen_modrm
	ldr	r3, .L120+4
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	b	.L114
.L113:
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-28]
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-40]
.L114:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	bic	r0, r3, #536870912
	ldr	r3, [fp, #-28]
	ldr	r2, .L120+28
	ldr	r1, [fp, #-16]
	bl	sym_push
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L112:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #20]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L115
	ldr	r3, .L120+32
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-20]
	cmp	r3, #1
	bne	.L116
	ldr	r3, [fp, #-40]
	sub	r3, r3, #8
	ldr	r2, .L120+32
	str	r3, [r2]
.L116:
	ldr	r3, .L120+36
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L119
	mov	r1, #0
	mov	r0, #184
	bl	oad
	mov	r1, #0
	mov	r0, #184
	bl	oad
	ldr	r3, .L120+40
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r2, .L120+44
	str	r3, [r2]
.L119:
	nop
	ldr	r3, .L120
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L118
	bl	__stack_chk_fail
.L118:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L121:
	.align	2
.L120:
	.word	.LC3
	.word	loc
	.word	ind
	.word	func_sub_sp_offset
	.word	func_vt
	.word	func_vc
	.word	fastcall_regs
	.word	498
	.word	func_ret_sub
	.word	do_bounds_check
	.word	lbounds_section
	.word	func_bound_offset
	.size	gfunc_prolog, .-gfunc_prolog
	.align	2
	.global	gfunc_epilog
	.syntax unified
	.arm
	.fpu softvfp
	.type	gfunc_epilog, %function
gfunc_epilog:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	ldr	r3, .L126
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L123
	ldr	r3, .L126+4
	ldr	r3, [r3]
	ldr	r2, [r3]
	ldr	r3, .L126+8
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L123
	ldr	r3, .L126+4
	ldr	r3, [r3]
	mov	r1, #4
	mov	r0, r3
	bl	section_ptr_add
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-28]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L126+12
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r3, .L126+16
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, .L126+12
	str	r2, [r3]
	ldr	r3, .L126+4
	ldr	r1, [r3]
	ldr	r3, .L126+8
	ldr	r2, [r3]
	ldr	r3, .L126+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r0, .L126+20
	bl	get_sym_ref
	str	r0, [fp, #-20]
	ldr	r3, .L126+24
	ldr	r0, [r3]
	ldr	r3, .L126+12
	ldr	r3, [r3]
	add	r3, r3, #1
	mov	r2, r3
	mov	r3, #1
	ldr	r1, [fp, #-20]
	bl	greloc
	mov	r1, #0
	mov	r0, #184
	bl	oad
	mov	r2, #0
	ldr	r1, .L126+28
	ldr	r0, .L126+32
	bl	external_global_sym
	str	r0, [fp, #-16]
	ldr	r3, .L126+24
	ldr	r0, [r3]
	ldr	r3, .L126+12
	ldr	r3, [r3]
	add	r3, r3, #1
	mov	r2, r3
	mov	r3, #2
	ldr	r1, [fp, #-16]
	bl	greloc
	mvn	r1, #3
	mov	r0, #232
	bl	oad
	ldr	r2, .L126+12
	ldr	r3, [fp, #-24]
	str	r3, [r2]
	ldr	r0, .L126+36
	bl	o
	ldr	r3, .L126+24
	ldr	r0, [r3]
	ldr	r3, .L126+12
	ldr	r3, [r3]
	add	r3, r3, #1
	mov	r2, r3
	mov	r3, #1
	ldr	r1, [fp, #-20]
	bl	greloc
	mov	r1, #0
	mov	r0, #184
	bl	oad
	mov	r2, #0
	ldr	r1, .L126+28
	ldr	r0, .L126+40
	bl	external_global_sym
	str	r0, [fp, #-16]
	ldr	r3, .L126+24
	ldr	r0, [r3]
	ldr	r3, .L126+12
	ldr	r3, [r3]
	add	r3, r3, #1
	mov	r2, r3
	mov	r3, #2
	ldr	r1, [fp, #-16]
	bl	greloc
	mvn	r1, #3
	mov	r0, #232
	bl	oad
	ldr	r0, .L126+44
	bl	o
.L123:
	mov	r0, #201
	bl	o
	ldr	r3, .L126+48
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L124
	mov	r0, #195
	bl	o
	b	.L125
.L124:
	mov	r0, #194
	bl	o
	ldr	r3, .L126+48
	ldr	r3, [r3]
	mov	r0, r3
	bl	g
	ldr	r3, .L126+48
	ldr	r3, [r3]
	asr	r3, r3, #8
	mov	r0, r3
	bl	g
.L125:
	ldr	r3, .L126+52
	ldr	r3, [r3]
	rsb	r3, r3, #3
	bic	r3, r3, #3
	str	r3, [fp, #-12]
	ldr	r3, .L126+12
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, .L126+16
	ldr	r3, [r3]
	sub	r3, r3, #9
	mov	r2, r3
	ldr	r3, .L126+12
	str	r2, [r3]
	ldr	r0, .L126+56
	bl	o
	ldr	r0, .L126+60
	bl	o
	ldr	r0, [fp, #-12]
	bl	gen_le32
	ldr	r2, .L126+12
	ldr	r3, [fp, #-8]
	str	r3, [r2]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L127:
	.align	2
.L126:
	.word	do_bounds_check
	.word	lbounds_section
	.word	func_bound_offset
	.word	ind
	.word	func_sub_sp_offset
	.word	char_pointer_type
	.word	cur_text_section
	.word	func_old_type
	.word	381
	.word	21072
	.word	382
	.word	22618
	.word	func_ret_sub
	.word	loc
	.word	15042901
	.word	60545
	.size	gfunc_epilog, .-gfunc_epilog
	.align	2
	.global	gjmp
	.syntax unified
	.arm
	.fpu softvfp
	.type	gjmp, %function
gjmp:
	@ 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	r1, [fp, #-8]
	mov	r0, #233
	bl	oad
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	gjmp, .-gjmp
	.align	2
	.global	gjmp_addr
	.syntax unified
	.arm
	.fpu softvfp
	.type	gjmp_addr, %function
gjmp_addr:
	@ 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, .L134
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	sub	r3, r2, r3
	sub	r3, r3, #2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-8]
	cmp	r3, r2
	bne	.L131
	mov	r0, #235
	bl	g
	ldr	r0, [fp, #-8]
	bl	g
	b	.L133
.L131:
	ldr	r3, .L134
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	sub	r3, r2, r3
	sub	r3, r3, #5
	mov	r1, r3
	mov	r0, #233
	bl	oad
.L133:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L135:
	.align	2
.L134:
	.word	ind
	.size	gjmp_addr, .-gjmp_addr
	.align	2
	.global	gtst
	.syntax unified
	.arm
	.fpu softvfp
	.type	gtst, %function
gtst:
	@ 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, .L148
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #255
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #243
	bne	.L137
	mov	r0, #15
	bl	g
	ldr	r3, .L148
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	sub	r2, r3, #16
	ldr	r3, [fp, #-16]
	eor	r3, r3, r2
	ldr	r1, [fp, #-20]
	mov	r0, r3
	bl	oad
	str	r0, [fp, #-20]
	b	.L138
.L137:
	ldr	r3, [fp, #-8]
	cmp	r3, #244
	beq	.L139
	ldr	r3, [fp, #-8]
	cmp	r3, #245
	bne	.L140
.L139:
	ldr	r3, [fp, #-8]
	and	r3, r3, #1
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bne	.L141
	ldr	r3, .L148
	ldr	r3, [r3]
	add	r3, r3, #16
	str	r3, [fp, #-12]
	b	.L142
.L143:
	ldr	r3, .L148+4
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-12]
	ldr	r2, [r2]
	add	r3, r3, r2
	str	r3, [fp, #-12]
.L142:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L143
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, .L148
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-20]
	b	.L138
.L141:
	ldr	r0, [fp, #-20]
	bl	gjmp
	str	r0, [fp, #-20]
	ldr	r3, .L148
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	mov	r0, r3
	bl	gsym
	b	.L138
.L140:
	ldr	r3, .L148
	ldr	r3, [r3]
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_float
	mov	r3, r0
	cmp	r3, #0
	beq	.L145
	mov	r0, #0
	bl	vpushi
	mov	r0, #149
	bl	gen_op
.L145:
	ldr	r3, .L148
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	lsl	r3, r3, #22
	lsr	r3, r3, #22
	cmp	r3, #240
	bne	.L146
	ldr	r3, .L148
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-16]
	cmp	r3, r2
	beq	.L138
	ldr	r0, [fp, #-20]
	bl	gjmp
	str	r0, [fp, #-20]
	b	.L138
.L146:
	mov	r0, #1
	bl	gv
	str	r0, [fp, #-8]
	mov	r0, #133
	bl	o
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	add	r3, r3, #192
	mov	r0, r3
	bl	o
	mov	r0, #15
	bl	g
	ldr	r3, [fp, #-16]
	eor	r3, r3, #133
	ldr	r1, [fp, #-20]
	mov	r0, r3
	bl	oad
	str	r0, [fp, #-20]
.L138:
	ldr	r3, .L148
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldr	r2, .L148
	str	r3, [r2]
	ldr	r3, [fp, #-20]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L149:
	.align	2
.L148:
	.word	vtop
	.word	cur_text_section
	.size	gtst, .-gtst
	.align	2
	.global	gen_opi
	.syntax unified
	.arm
	.fpu softvfp
	.type	gen_opi, %function
gen_opi:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #205
	bgt	.L151
	ldr	r3, [fp, #-24]
	cmp	r3, #176
	bge	.L152
	ldr	r3, [fp, #-24]
	cmp	r3, #124
	beq	.L153
	ldr	r3, [fp, #-24]
	cmp	r3, #124
	bgt	.L151
	ldr	r3, [fp, #-24]
	cmp	r3, #47
	bgt	.L154
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bgt	.L155
	b	.L151
.L152:
	ldr	r3, [fp, #-24]
	sub	r3, r3, #176
	cmp	r3, #29
	ldrls	pc, [pc, r3, asl #2]
	b	.L151
.L157:
	.word	.L162
	.word	.L162
	.word	.L162
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L162
	.word	.L161
	.word	.L160
	.word	.L159
	.word	.L158
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L156
.L155:
	ldr	r3, [fp, #-24]
	sub	r3, r3, #1
	cmp	r3, #46
	ldrls	pc, [pc, r3, asl #2]
	b	.L151
.L163:
	.word	.L167
	.word	.L166
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L162
	.word	.L165
	.word	.L151
	.word	.L151
	.word	.L151
	.word	.L164
	.word	.L161
	.word	.L151
	.word	.L159
	.word	.L151
	.word	.L162
.L154:
	ldr	r3, [fp, #-24]
	cmp	r3, #94
	beq	.L168
	b	.L151
.L161:
	mov	r3, #0
	str	r3, [fp, #-16]
.L169:
	ldr	r3, .L186
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	lsl	r3, r3, #22
	lsr	r3, r3, #22
	cmp	r3, #240
	bne	.L170
	bl	vswap
	mov	r0, #1
	bl	gv
	str	r0, [fp, #-20]
	bl	vswap
	ldr	r3, .L186
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-8]
	cmp	r3, r2
	bne	.L171
	mov	r0, #131
	bl	o
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #3
	orr	r2, r3, #192
	ldr	r3, [fp, #-20]
	orr	r3, r2, r3
	mov	r0, r3
	bl	o
	ldr	r0, [fp, #-8]
	bl	g
	b	.L172
.L171:
	mov	r0, #129
	bl	o
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #3
	orr	r2, r3, #192
	ldr	r3, [fp, #-20]
	orr	r3, r2, r3
	ldr	r1, [fp, #-8]
	mov	r0, r3
	bl	oad
	b	.L172
.L170:
	mov	r1, #1
	mov	r0, #1
	bl	gv2
	ldr	r3, .L186
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldrh	r3, [r3, #8]
	str	r3, [fp, #-20]
	ldr	r3, .L186
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #3
	orr	r3, r3, #1
	mov	r0, r3
	bl	o
	ldr	r3, [fp, #-20]
	add	r2, r3, #192
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #3
	add	r3, r2, r3
	mov	r0, r3
	bl	o
.L172:
	ldr	r3, .L186
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldr	r2, .L186
	str	r3, [r2]
	ldr	r3, [fp, #-24]
	cmp	r3, #145
	ble	.L185
	ldr	r3, [fp, #-24]
	cmp	r3, #159
	bgt	.L185
	ldr	r3, .L186
	ldr	r3, [r3]
	mov	r2, #243
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, .L186
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	str	r2, [r3, #16]
	b	.L185
.L159:
	mov	r3, #5
	str	r3, [fp, #-16]
	b	.L169
.L160:
	mov	r3, #2
	str	r3, [fp, #-16]
	b	.L169
.L158:
	mov	r3, #3
	str	r3, [fp, #-16]
	b	.L169
.L165:
	mov	r3, #4
	str	r3, [fp, #-16]
	b	.L169
.L168:
	mov	r3, #6
	str	r3, [fp, #-16]
	b	.L169
.L153:
	mov	r3, #1
	str	r3, [fp, #-16]
	b	.L169
.L164:
	mov	r1, #1
	mov	r0, #1
	bl	gv2
	ldr	r3, .L186
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldrh	r3, [r3, #8]
	str	r3, [fp, #-20]
	ldr	r3, .L186
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	str	r3, [fp, #-12]
	ldr	r3, .L186
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldr	r2, .L186
	str	r3, [r2]
	ldr	r0, .L186+4
	bl	o
	ldr	r3, [fp, #-12]
	add	r2, r3, #192
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #3
	add	r3, r2, r3
	mov	r0, r3
	bl	o
	b	.L174
.L167:
	mov	r3, #4
	str	r3, [fp, #-16]
	b	.L175
.L156:
	mov	r3, #5
	str	r3, [fp, #-16]
	b	.L175
.L166:
	mov	r3, #7
	str	r3, [fp, #-16]
.L175:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #3
	orr	r3, r3, #192
	str	r3, [fp, #-16]
	ldr	r3, .L186
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	lsl	r3, r3, #22
	lsr	r3, r3, #22
	cmp	r3, #240
	bne	.L176
	bl	vswap
	mov	r0, #1
	bl	gv
	str	r0, [fp, #-20]
	bl	vswap
	ldr	r3, .L186
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	and	r3, r3, #31
	str	r3, [fp, #-8]
	mov	r0, #193
	bl	o
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-20]
	orr	r3, r2, r3
	mov	r0, r3
	bl	o
	ldr	r0, [fp, #-8]
	bl	g
	b	.L177
.L176:
	mov	r1, #16
	mov	r0, #1
	bl	gv2
	ldr	r3, .L186
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldrh	r3, [r3, #8]
	str	r3, [fp, #-20]
	mov	r0, #211
	bl	o
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-20]
	orr	r3, r2, r3
	mov	r0, r3
	bl	o
.L177:
	ldr	r3, .L186
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldr	r2, .L186
	str	r3, [r2]
	b	.L174
.L162:
	mov	r1, #16
	mov	r0, #4
	bl	gv2
	ldr	r3, .L186
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldrh	r3, [r3, #8]
	str	r3, [fp, #-20]
	ldr	r3, .L186
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	str	r3, [fp, #-12]
	ldr	r3, .L186
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldr	r2, .L186
	str	r3, [r2]
	mov	r0, #2
	bl	save_reg
	ldr	r3, [fp, #-24]
	cmp	r3, #194
	bne	.L178
	mov	r0, #247
	bl	o
	ldr	r3, [fp, #-12]
	add	r3, r3, #224
	mov	r0, r3
	bl	o
	ldr	r3, .L186
	ldr	r3, [r3]
	mov	r2, #2
	strh	r2, [r3, #10]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L179
.L178:
	ldr	r3, [fp, #-24]
	cmp	r3, #176
	beq	.L180
	ldr	r3, [fp, #-24]
	cmp	r3, #177
	bne	.L181
.L180:
	ldr	r0, .L186+8
	bl	o
	ldr	r3, [fp, #-12]
	add	r3, r3, #240
	mov	r0, r3
	bl	o
	b	.L182
.L181:
	ldr	r0, .L186+12
	bl	o
	ldr	r3, [fp, #-12]
	add	r3, r3, #248
	mov	r0, r3
	bl	o
.L182:
	ldr	r3, [fp, #-24]
	cmp	r3, #37
	beq	.L183
	ldr	r3, [fp, #-24]
	cmp	r3, #177
	bne	.L184
.L183:
	mov	r3, #2
	str	r3, [fp, #-20]
	b	.L179
.L184:
	mov	r3, #0
	str	r3, [fp, #-20]
.L179:
	ldr	r3, .L186
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #8]	@ movhi
	b	.L174
.L151:
	mov	r3, #7
	str	r3, [fp, #-16]
	b	.L169
.L185:
	nop
.L174:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L187:
	.align	2
.L186:
	.word	vtop
	.word	44815
	.word	16241201
	.word	63385
	.size	gen_opi, .-gen_opi
	.section	.rodata
	.align	2
.LC4:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	gen_opf
	.syntax unified
	.arm
	.fpu softvfp
	.type	gen_opf, %function
gen_opf:
	@ args = 0, pretend = 0, frame = 72
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #72
	str	r0, [fp, #-72]
	ldr	r3, .L221
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L221+4
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldrh	r3, [r3, #8]
	lsl	r3, r3, #23
	lsr	r3, r3, #23
	cmp	r3, #240
	bne	.L189
	bl	vswap
	mov	r0, #2
	bl	gv
	bl	vswap
.L189:
	ldr	r3, .L221+4
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	lsl	r3, r3, #23
	lsr	r3, r3, #23
	cmp	r3, #240
	bne	.L190
	mov	r0, #2
	bl	gv
.L190:
	ldr	r3, .L221+4
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldrh	r3, [r3, #8]
	and	r3, r3, #256
	cmp	r3, #0
	beq	.L191
	ldr	r3, .L221+4
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #256
	cmp	r3, #0
	beq	.L191
	bl	vswap
	mov	r0, #2
	bl	gv
	bl	vswap
.L191:
	mov	r3, #0
	str	r3, [fp, #-56]
	ldr	r3, .L221+4
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldrh	r3, [r3, #8]
	and	r3, r3, #256
	cmp	r3, #0
	beq	.L192
	bl	vswap
	mov	r3, #1
	str	r3, [fp, #-56]
.L192:
	ldr	r3, [fp, #-72]
	cmp	r3, #145
	ble	.L193
	ldr	r3, [fp, #-72]
	cmp	r3, #159
	bgt	.L193
	ldr	r3, .L221+4
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #3
	bl	load
	mov	r0, #0
	bl	save_reg
	ldr	r3, [fp, #-72]
	cmp	r3, #157
	beq	.L194
	ldr	r3, [fp, #-72]
	cmp	r3, #159
	bne	.L195
.L194:
	ldr	r3, [fp, #-56]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-56]
	b	.L196
.L195:
	ldr	r3, [fp, #-72]
	cmp	r3, #148
	beq	.L197
	ldr	r3, [fp, #-72]
	cmp	r3, #149
	bne	.L196
.L197:
	mov	r3, #0
	str	r3, [fp, #-56]
.L196:
	ldr	r3, [fp, #-56]
	cmp	r3, #0
	beq	.L198
	ldr	r0, .L221+8
	bl	o
.L198:
	ldr	r0, .L221+12
	bl	o
	ldr	r0, .L221+16
	bl	o
	ldr	r3, [fp, #-72]
	cmp	r3, #148
	bne	.L199
	ldr	r0, .L221+20
	bl	o
	ldr	r0, .L221+24
	bl	o
	b	.L200
.L199:
	ldr	r3, [fp, #-72]
	cmp	r3, #149
	bne	.L201
	ldr	r0, .L221+20
	bl	o
	ldr	r0, .L221+28
	bl	o
	mov	r3, #149
	str	r3, [fp, #-72]
	b	.L200
.L201:
	ldr	r3, [fp, #-72]
	cmp	r3, #157
	beq	.L202
	ldr	r3, [fp, #-72]
	cmp	r3, #158
	bne	.L203
.L202:
	ldr	r0, .L221+32
	bl	o
	mov	r3, #148
	str	r3, [fp, #-72]
	b	.L200
.L203:
	ldr	r0, .L221+36
	bl	o
	mov	r3, #148
	str	r3, [fp, #-72]
.L200:
	ldr	r3, .L221+4
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldr	r2, .L221+4
	str	r3, [r2]
	ldr	r3, .L221+4
	ldr	r3, [r3]
	mov	r2, #243
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, .L221+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-72]
	str	r2, [r3, #16]
	b	.L204
.L193:
	ldr	r3, .L221+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #10
	bne	.L205
	ldr	r3, .L221+4
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #3
	bl	load
	ldr	r3, [fp, #-56]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-56]
.L205:
	ldr	r3, [fp, #-72]
	cmp	r3, #47
	beq	.L206
	ldr	r3, [fp, #-72]
	cmp	r3, #47
	bgt	.L207
	ldr	r3, [fp, #-72]
	cmp	r3, #42
	beq	.L208
	ldr	r3, [fp, #-72]
	cmp	r3, #45
	beq	.L209
.L207:
	mov	r3, #0
	str	r3, [fp, #-64]
	b	.L210
.L209:
	mov	r3, #4
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-56]
	cmp	r3, #0
	beq	.L219
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
	b	.L219
.L208:
	mov	r3, #1
	str	r3, [fp, #-64]
	b	.L210
.L206:
	mov	r3, #6
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-56]
	cmp	r3, #0
	beq	.L220
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
	b	.L220
.L219:
	nop
	b	.L210
.L220:
	nop
.L210:
	ldr	r3, .L221+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-48]
	ldr	r3, .L221+4
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-48]
	and	r3, r3, #15
	cmp	r3, #10
	bne	.L213
	mov	r0, #222
	bl	o
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #3
	add	r3, r3, #193
	mov	r0, r3
	bl	o
	b	.L214
.L213:
	ldr	r3, .L221+4
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	and	r3, r3, #255
	cmp	r3, #241
	bne	.L215
	mov	r0, #1
	bl	get_reg
	str	r0, [fp, #-52]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r3, .L221+40
	strh	r3, [fp, #-36]	@ movhi
	ldr	r3, [fp, #-60]
	str	r3, [fp, #-28]
	sub	r3, fp, #44
	mov	r1, r3
	ldr	r0, [fp, #-52]
	bl	load
	mov	r3, #0
	str	r3, [fp, #-60]
.L215:
	ldr	r3, [fp, #-48]
	and	r3, r3, #15
	cmp	r3, #9
	bne	.L216
	mov	r0, #220
	bl	o
	b	.L217
.L216:
	mov	r0, #216
	bl	o
.L217:
	ldr	r3, .L221+4
	ldr	r3, [r3]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-60]
	ldr	r1, [fp, #-52]
	ldr	r0, [fp, #-64]
	bl	gen_modrm
.L214:
	ldr	r3, .L221+4
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldr	r2, .L221+4
	str	r3, [r2]
.L204:
	nop
	ldr	r3, .L221
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L218
	bl	__stack_chk_fail
.L218:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L222:
	.align	2
.L221:
	.word	.LC4
	.word	vtop
	.word	51673
	.word	59866
	.word	57567
	.word	4580480
	.word	4258944
	.word	4256896
	.word	378102
	.word	4572406
	.word	498
	.size	gen_opf, .-gen_opf
	.align	2
	.global	gen_cvt_itof
	.syntax unified
	.arm
	.fpu softvfp
	.type	gen_cvt_itof, %function
gen_cvt_itof:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	mov	r0, #3
	bl	save_reg
	mov	r0, #1
	bl	gv
	ldr	r3, .L227
	ldr	r3, [r3]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #12
	bne	.L224
	ldr	r3, .L227
	ldr	r3, [r3]
	ldrh	r3, [r3, #10]
	add	r3, r3, #80
	mov	r0, r3
	bl	o
	ldr	r3, .L227
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #255
	add	r3, r3, #80
	mov	r0, r3
	bl	o
	ldr	r0, .L227+4
	bl	o
	ldr	r0, .L227+8
	bl	o
	b	.L225
.L224:
	ldr	r3, .L227
	ldr	r3, [r3]
	ldr	r3, [r3]
	and	r3, r3, #31
	cmp	r3, #16
	bne	.L226
	mov	r0, #106
	bl	o
	mov	r0, #0
	bl	g
	ldr	r3, .L227
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #255
	add	r3, r3, #80
	mov	r0, r3
	bl	o
	ldr	r0, .L227+4
	bl	o
	ldr	r0, .L227+8
	bl	o
	b	.L225
.L226:
	ldr	r3, .L227
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #255
	add	r3, r3, #80
	mov	r0, r3
	bl	o
	ldr	r0, .L227+12
	bl	o
	ldr	r0, .L227+16
	bl	o
.L225:
	ldr	r3, .L227
	ldr	r3, [r3]
	mov	r2, #3
	strh	r2, [r3, #8]	@ movhi
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L228:
	.align	2
.L227:
	.word	vtop
	.word	2370783
	.word	574595
	.word	2360539
	.word	312451
	.size	gen_cvt_itof, .-gen_cvt_itof
	.section	.rodata
	.align	2
.LC5:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	gen_cvt_ftoi
	.syntax unified
	.arm
	.fpu softvfp
	.type	gen_cvt_ftoi, %function
gen_cvt_ftoi:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-40]
	ldr	r3, .L237
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #18
	str	r3, [fp, #-16]
	mov	r0, #2
	bl	gv
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	beq	.L230
	mov	r3, #8
	str	r3, [fp, #-32]
	b	.L231
.L230:
	mov	r3, #4
	str	r3, [fp, #-32]
.L231:
	ldr	r0, .L237+4
	bl	o
	sub	r3, fp, #16
	mov	r2, #256
	mov	r1, r3
	ldr	r0, .L237+8
	bl	external_global_sym
	str	r0, [fp, #-28]
	ldr	r3, .L237+12
	ldr	r0, [r3]
	ldr	r3, .L237+16
	ldr	r3, [r3]
	mov	r2, r3
	mov	r3, #1
	ldr	r1, [fp, #-28]
	bl	greloc
	mov	r0, #0
	bl	gen_le32
	ldr	r1, [fp, #-32]
	ldr	r0, .L237+20
	bl	oad
	ldr	r3, [fp, #-32]
	cmp	r3, #4
	bne	.L232
	ldr	r0, .L237+24
	bl	o
	b	.L233
.L232:
	ldr	r0, .L237+28
	bl	o
.L233:
	mov	r0, #36
	bl	o
	ldr	r0, .L237+4
	bl	o
	sub	r3, fp, #16
	mov	r2, #256
	mov	r1, r3
	ldr	r0, .L237+32
	bl	external_global_sym
	str	r0, [fp, #-28]
	ldr	r3, .L237+12
	ldr	r0, [r3]
	ldr	r3, .L237+16
	ldr	r3, [r3]
	mov	r2, r3
	mov	r3, #1
	ldr	r1, [fp, #-28]
	bl	greloc
	mov	r0, #0
	bl	gen_le32
	mov	r0, #1
	bl	get_reg
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r3, r3, #88
	mov	r0, r3
	bl	o
	ldr	r3, [fp, #-32]
	cmp	r3, #8
	bne	.L234
	ldr	r3, [fp, #-40]
	cmp	r3, #12
	bne	.L235
	ldr	r3, .L237+36
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #8]	@ movhi
	mov	r0, #1
	bl	get_reg
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	add	r3, r3, #88
	mov	r0, r3
	bl	o
	ldr	r3, .L237+36
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #10]	@ movhi
	b	.L234
.L235:
	ldr	r0, .L237+40
	bl	o
.L234:
	ldr	r3, .L237+36
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #8]	@ movhi
	nop
	ldr	r3, .L237
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L236
	bl	__stack_chk_fail
.L236:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L238:
	.align	2
.L237:
	.word	.LC5
	.word	11737
	.word	365
	.word	cur_text_section
	.word	ind
	.word	60545
	.word	7387
	.word	15583
	.word	366
	.word	vtop
	.word	312451
	.size	gen_cvt_ftoi, .-gen_cvt_ftoi
	.align	2
	.global	gen_cvt_ftof
	.syntax unified
	.arm
	.fpu softvfp
	.type	gen_cvt_ftof, %function
gen_cvt_ftof:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	mov	r0, #2
	bl	gv
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	gen_cvt_ftof, .-gen_cvt_ftof
	.align	2
	.global	ggoto
	.syntax unified
	.arm
	.fpu softvfp
	.type	ggoto, %function
ggoto:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	mov	r0, #1
	bl	gcall_or_jmp
	ldr	r3, .L241
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldr	r2, .L241
	str	r3, [r2]
	nop
	pop	{fp, pc}
.L242:
	.align	2
.L241:
	.word	vtop
	.size	ggoto, .-ggoto
	.align	2
	.global	gen_bounded_ptr_add
	.syntax unified
	.arm
	.fpu softvfp
	.type	gen_bounded_ptr_add, %function
gen_bounded_ptr_add:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r1, #32
	mov	r0, #4
	bl	gv2
	ldr	r3, .L244
	ldr	r3, [r3]
	sub	r3, r3, #64
	ldr	r2, .L244
	str	r3, [r2]
	mov	r0, #0
	bl	save_regs
	mov	r2, #0
	ldr	r1, .L244+4
	ldr	r0, .L244+8
	bl	external_global_sym
	str	r0, [fp, #-8]
	ldr	r3, .L244+12
	ldr	r0, [r3]
	ldr	r3, .L244+16
	ldr	r3, [r3]
	add	r3, r3, #1
	mov	r2, r3
	mov	r3, #2
	ldr	r1, [fp, #-8]
	bl	greloc
	mvn	r1, #3
	mov	r0, #232
	bl	oad
	ldr	r3, .L244
	ldr	r3, [r3]
	add	r3, r3, #32
	ldr	r2, .L244
	str	r3, [r2]
	ldr	r3, .L244
	ldr	r3, [r3]
	mov	r2, #32768
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, .L244+12
	ldr	r3, [r3]
	ldr	r3, [r3, #60]
	ldr	r2, [r3]
	ldr	r3, .L244
	ldr	r3, [r3]
	sub	r2, r2, #8
	str	r2, [r3, #16]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L245:
	.align	2
.L244:
	.word	vtop
	.word	func_old_type
	.word	374
	.word	cur_text_section
	.word	ind
	.size	gen_bounded_ptr_add, .-gen_bounded_ptr_add
	.section	.rodata
	.align	2
.LC6:
	.ascii	"unhandled size when derefencing bounded pointer\000"
	.align	2
.LC7:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	gen_bounded_ptr_deref
	.syntax unified
	.arm
	.fpu softvfp
	.type	gen_bounded_ptr_deref, %function
gen_bounded_ptr_deref:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	ldr	r3, .L261
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-20]
	ldr	r3, .L261+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_float
	mov	r3, r0
	cmp	r3, #0
	bne	.L247
	ldr	r3, .L261+4
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #4096
	cmp	r3, #0
	beq	.L248
	mov	r3, #1
	str	r3, [fp, #-20]
	b	.L247
.L248:
	ldr	r3, .L261+4
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #8192
	cmp	r3, #0
	beq	.L247
	mov	r3, #2
	str	r3, [fp, #-20]
.L247:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L249
	ldr	r3, .L261+4
	ldr	r3, [r3]
	mov	r2, r3
	sub	r3, fp, #28
	mov	r1, r3
	mov	r0, r2
	bl	type_size
	str	r0, [fp, #-20]
.L249:
	ldr	r3, [fp, #-20]
	sub	r3, r3, #1
	cmp	r3, #15
	ldrls	pc, [pc, r3, asl #2]
	b	.L250
.L252:
	.word	.L257
	.word	.L256
	.word	.L250
	.word	.L255
	.word	.L250
	.word	.L250
	.word	.L250
	.word	.L254
	.word	.L250
	.word	.L250
	.word	.L250
	.word	.L253
	.word	.L250
	.word	.L250
	.word	.L250
	.word	.L251
.L257:
	ldr	r3, .L261+8
	str	r3, [fp, #-24]
	b	.L258
.L256:
	mov	r3, #376
	str	r3, [fp, #-24]
	b	.L258
.L255:
	ldr	r3, .L261+12
	str	r3, [fp, #-24]
	b	.L258
.L254:
	ldr	r3, .L261+16
	str	r3, [fp, #-24]
	b	.L258
.L253:
	ldr	r3, .L261+20
	str	r3, [fp, #-24]
	b	.L258
.L251:
	mov	r3, #380
	str	r3, [fp, #-24]
	b	.L258
.L250:
	ldr	r0, .L261+24
	bl	error
	mov	r3, #0
	str	r3, [fp, #-24]
	nop
.L258:
	ldr	r3, .L261+28
	ldr	r3, [r3]
	ldr	r3, [r3, #60]
	ldr	r2, [r3, #4]
	ldr	r3, .L261+4
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	mov	r2, #0
	ldr	r1, .L261+32
	ldr	r0, [fp, #-24]
	bl	external_global_sym
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	bne	.L259
	mov	r3, #0
	mov	r2, #0
	mov	r1, #0
	ldr	r0, [fp, #-12]
	bl	put_extern_sym
.L259:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #8]
	lsl	r3, r3, #8
	mov	r2, r3
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	and	r3, r3, #255
	add	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	nop
	ldr	r3, .L261
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L260
	bl	__stack_chk_fail
.L260:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L262:
	.align	2
.L261:
	.word	.LC7
	.word	vtop
	.word	375
	.word	377
	.word	378
	.word	379
	.word	.LC6
	.word	cur_text_section
	.word	func_old_type
	.size	gen_bounded_ptr_deref, .-gen_bounded_ptr_deref
	.section	.rodata
	.align	2
.LC8:
	.ascii	"the_stack_data/1087615.c\000"
	.align	2
.LC9:
	.ascii	"0\000"
	.text
	.align	2
	.global	resolve_sym
	.syntax unified
	.arm
	.fpu softvfp
	.type	resolve_sym, %function
resolve_sym:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	ldr	r3, .L264
	ldr	r2, .L264+4
	ldr	r1, .L264+8
	ldr	r0, .L264+12
	bl	__assert_fail
.L265:
	.align	2
.L264:
	.word	__PRETTY_FUNCTION__.11603
	.word	6631
	.word	.LC8
	.word	.LC9
	.size	resolve_sym, .-resolve_sym
	.align	2
	.global	ieee_finite
	.syntax unified
	.arm
	.fpu softvfp
	.type	ieee_finite, %function
ieee_finite:
	@ 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, #-20]
	str	r1, [fp, #-16]
	sub	r3, fp, #20
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	add	r3, r3, #4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, .L268
	orr	r3, r2, r3
	add	r3, r3, #1
	lsr	r3, r3, #31
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L269:
	.align	2
.L268:
	.word	-2146435073
	.size	ieee_finite, .-ieee_finite
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	pstrcpy, %function
pstrcpy:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #36
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	ble	.L271
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-28]
	sub	r3, r3, #1
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	b	.L272
.L275:
	ldr	r3, [fp, #-32]
	add	r2, r3, #1
	str	r2, [fp, #-32]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L277
	ldr	r3, [fp, #-16]
	add	r2, r3, #1
	str	r2, [fp, #-16]
	ldr	r2, [fp, #-8]
	and	r2, r2, #255
	strb	r2, [r3]
.L272:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	bcc	.L275
	b	.L274
.L277:
	nop
.L274:
	ldr	r3, [fp, #-16]
	mov	r2, #0
	strb	r2, [r3]
.L271:
	ldr	r3, [fp, #-24]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	pstrcpy, .-pstrcpy
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	pstrcat, %function
pstrcat:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r0, [fp, #-16]
	bl	strlen
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	bge	.L279
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	add	r0, r2, r3
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-8]
	sub	r3, r2, r3
	ldr	r2, [fp, #-24]
	mov	r1, r3
	bl	pstrcpy
.L279:
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	pstrcat, .-pstrcat
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	strstart, %function
strstart:
	@ 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, #-12]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-8]
	b	.L282
.L285:
	ldr	r3, [fp, #-12]
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r2, r3
	beq	.L283
	mov	r3, #0
	b	.L284
.L283:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L282:
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L285
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L286
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-12]
	str	r2, [r3]
.L286:
	mov	r3, #1
.L284:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	strstart, .-strstart
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_free, %function
tcc_free:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	free
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tcc_free, .-tcc_free
	.section	.rodata
	.align	2
.LC10:
	.ascii	"memory full\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_malloc, %function
tcc_malloc:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L289
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L289
	ldr	r0, .L291
	bl	error
.L289:
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L292:
	.align	2
.L291:
	.word	.LC10
	.size	tcc_malloc, .-tcc_malloc
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_mallocz, %function
tcc_mallocz:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	tcc_malloc
	str	r0, [fp, #-8]
	ldr	r2, [fp, #-16]
	mov	r1, #0
	ldr	r0, [fp, #-8]
	bl	memset
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tcc_mallocz, .-tcc_mallocz
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_realloc, %function
tcc_realloc:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	realloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tcc_realloc, .-tcc_realloc
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_strdup, %function
tcc_strdup:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	strlen
	mov	r3, r0
	add	r3, r3, #1
	mov	r0, r3
	bl	tcc_malloc
	str	r0, [fp, #-8]
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-8]
	bl	strcpy
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tcc_strdup, .-tcc_strdup
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	dynarray_add, %function
dynarray_add:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-8]
	sub	r2, r3, #1
	ldr	r3, [fp, #-8]
	and	r3, r3, r2
	cmp	r3, #0
	bne	.L300
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L301
	mov	r3, #1
	str	r3, [fp, #-16]
	b	.L302
.L301:
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #1
	str	r3, [fp, #-16]
.L302:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-12]
	bl	tcc_realloc
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L303
	ldr	r0, .L304
	bl	error
.L303:
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-12]
	str	r2, [r3]
.L300:
	ldr	r3, [fp, #-8]
	add	r2, r3, #1
	str	r2, [fp, #-8]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	ldr	r2, [fp, #-32]
	str	r2, [r3]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L305:
	.align	2
.L304:
	.word	.LC10
	.size	dynarray_add, .-dynarray_add
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	__sym_malloc, %function
__sym_malloc:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	mov	r0, #8192
	bl	tcc_malloc
	str	r0, [fp, #-8]
	ldr	r3, .L310
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-8]
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L307
.L308:
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-16]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-20]
	add	r3, r3, #32
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L307:
	ldr	r3, [fp, #-12]
	cmp	r3, #255
	bls	.L308
	ldr	r2, .L310
	ldr	r3, [fp, #-16]
	str	r3, [r2]
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L311:
	.align	2
.L310:
	.word	sym_free_first
	.size	__sym_malloc, .-__sym_malloc
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	sym_malloc, %function
sym_malloc:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	ldr	r3, .L315
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L313
	bl	__sym_malloc
	str	r0, [fp, #-8]
.L313:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #20]
	ldr	r2, .L315
	str	r3, [r2]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L316:
	.align	2
.L315:
	.word	sym_free_first
	.size	sym_malloc, .-sym_malloc
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	sym_free, %function
sym_free:
	@ 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, .L318
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #20]
	ldr	r2, .L318
	ldr	r3, [fp, #-8]
	str	r3, [r2]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L319:
	.align	2
.L318:
	.word	sym_free_first
	.size	sym_free, .-sym_free
	.align	2
	.global	new_section
	.syntax unified
	.arm
	.fpu softvfp
	.type	new_section, %function
new_section:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	ldr	r0, [fp, #-20]
	bl	strlen
	mov	r3, r0
	add	r3, r3, #76
	mov	r0, r3
	bl	tcc_mallocz
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	add	r3, r3, #72
	ldr	r1, [fp, #-20]
	mov	r0, r3
	bl	strcpy
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-24]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-28]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-24]
	sub	r3, r3, #2
	cmp	r3, #9
	ldrls	pc, [pc, r3, asl #2]
	b	.L321
.L323:
	.word	.L322
	.word	.L324
	.word	.L321
	.word	.L322
	.word	.L322
	.word	.L321
	.word	.L321
	.word	.L322
	.word	.L321
	.word	.L322
.L322:
	ldr	r3, [fp, #-8]
	mov	r2, #4
	str	r2, [r3, #32]
	b	.L325
.L324:
	ldr	r3, [fp, #-8]
	mov	r2, #1
	str	r2, [r3, #32]
	b	.L325
.L321:
	ldr	r3, [fp, #-8]
	mov	r2, #32
	str	r2, [r3, #32]
	nop
.L325:
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	blt	.L326
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #56]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	add	r0, r3, #52
	ldr	r3, [fp, #-16]
	add	r3, r3, #56
	ldr	r2, [fp, #-8]
	mov	r1, r3
	bl	dynarray_add
.L326:
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	new_section, .-new_section
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	free_section, %function
free_section:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	tcc_free
	ldr	r0, [fp, #-8]
	bl	tcc_free
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	free_section, .-free_section
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	section_realloc, %function
section_realloc:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L331
	mov	r3, #1
	str	r3, [fp, #-12]
	b	.L331
.L332:
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #1
	str	r3, [fp, #-12]
.L331:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	bcc	.L332
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	ldr	r1, [fp, #-12]
	mov	r0, r3
	bl	tcc_realloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L333
	ldr	r0, .L334
	bl	error
.L333:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-8]
	add	r0, r2, r3
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-12]
	sub	r3, r2, r3
	mov	r2, r3
	mov	r1, #0
	bl	memset
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #8]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L335:
	.align	2
.L334:
	.word	.LC10
	.size	section_realloc, .-section_realloc
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	section_ptr_add, %function
section_ptr_add:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	bls	.L337
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	section_realloc
.L337:
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	section_ptr_add, .-section_ptr_add
	.align	2
	.global	find_section
	.syntax unified
	.arm
	.fpu softvfp
	.type	find_section, %function
find_section:
	@ 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, #1
	str	r3, [fp, #-12]
	b	.L340
.L343:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	add	r3, r3, #72
	mov	r1, r3
	ldr	r0, [fp, #-20]
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L341
	ldr	r3, [fp, #-8]
	b	.L342
.L341:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L340:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #56]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L343
	mov	r3, #2
	mov	r2, #1
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	new_section
	mov	r3, r0
.L342:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	find_section, .-find_section
	.section	.rodata
	.align	2
.LC11:
	.ascii	"__bound_\000"
	.align	2
.LC12:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	put_extern_sym2, %function
put_extern_sym2:
	@ args = 4, pretend = 0, frame = 304
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #320
	str	r0, [fp, #-296]
	str	r1, [fp, #-300]
	str	r2, [fp, #-304]
	str	r3, [fp, #-308]
	ldr	r3, .L361
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-300]
	cmp	r3, #0
	bne	.L345
	mov	r3, #0
	str	r3, [fp, #-280]
	b	.L346
.L345:
	ldr	r3, [fp, #-300]
	cmp	r3, #1
	bne	.L347
	ldr	r3, .L361+4
	str	r3, [fp, #-280]
	b	.L346
.L347:
	ldr	r3, [fp, #-300]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-280]
.L346:
	ldr	r3, [fp, #-296]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	bne	.L348
	ldr	r3, [fp, #-296]
	ldr	r3, [r3, #12]
	and	r3, r3, #15
	cmp	r3, #6
	bne	.L349
	mov	r3, #2
	str	r3, [fp, #-288]
	b	.L350
.L349:
	mov	r3, #1
	str	r3, [fp, #-288]
.L350:
	ldr	r3, [fp, #-296]
	ldr	r3, [r3, #12]
	and	r3, r3, #256
	cmp	r3, #0
	beq	.L351
	mov	r3, #0
	str	r3, [fp, #-284]
	b	.L352
.L351:
	mov	r3, #1
	str	r3, [fp, #-284]
.L352:
	ldr	r3, [fp, #-296]
	ldr	r3, [r3]
	mov	r1, #0
	mov	r0, r3
	bl	get_tok_str
	str	r0, [fp, #-276]
	ldr	r3, .L361+8
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L353
	ldr	r3, [fp, #-296]
	ldr	r3, [r3]
	cmp	r3, #356
	bgt	.L354
	ldr	r2, .L361+12
	cmp	r3, r2
	bge	.L355
	b	.L353
.L354:
	sub	r3, r3, #388
	cmp	r3, #2
	bhi	.L353
.L355:
	sub	r3, fp, #264
	ldr	r2, .L361+16
	ldm	r2, {r0, r1, r2}
	stmia	r3!, {r0, r1}
	strb	r2, [r3]
	sub	r3, fp, #264
	ldr	r1, [fp, #-276]
	mov	r0, r3
	bl	strcat
	sub	r3, fp, #264
	str	r3, [fp, #-276]
	nop
.L353:
	ldr	r3, .L361+20
	ldr	r3, [r3]
	ldr	r3, [r3, #128]
	cmp	r3, #0
	beq	.L357
	ldr	r3, [fp, #4]
	cmp	r3, #0
	beq	.L357
	mov	r3, #95
	strb	r3, [fp, #-264]
	sub	r3, fp, #264
	add	r3, r3, #1
	ldr	r2, [fp, #-276]
	mov	r1, #255
	mov	r0, r3
	bl	pstrcpy
	sub	r3, fp, #264
	str	r3, [fp, #-276]
.L357:
	ldr	r3, [fp, #-284]
	lsl	r2, r3, #4
	ldr	r3, [fp, #-288]
	and	r3, r3, #15
	add	r3, r2, r3
	str	r3, [fp, #-268]
	ldr	r3, .L361+24
	ldr	r0, [r3]
	ldr	r3, [fp, #-276]
	str	r3, [sp, #8]
	ldr	r3, [fp, #-280]
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	ldr	r3, [fp, #-268]
	ldr	r2, [fp, #-308]
	ldr	r1, [fp, #-304]
	bl	add_elf_sym
	mov	r2, r0
	ldr	r3, [fp, #-296]
	str	r2, [r3, #8]
	b	.L360
.L348:
	ldr	r3, .L361+24
	ldr	r3, [r3]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-296]
	ldr	r3, [r3, #8]
	lsl	r3, r3, #4
	add	r3, r2, r3
	str	r3, [fp, #-272]
	ldr	r3, [fp, #-272]
	ldr	r2, [fp, #-304]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-272]
	ldr	r2, [fp, #-308]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-280]
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-272]
	strh	r2, [r3, #14]	@ movhi
.L360:
	nop
	ldr	r3, .L361
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L359
	bl	__stack_chk_fail
.L359:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L362:
	.align	2
.L361:
	.word	.LC12
	.word	65521
	.word	do_bounds_check
	.word	355
	.word	.LC11
	.word	tcc_state
	.word	symtab_section
	.size	put_extern_sym2, .-put_extern_sym2
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	put_extern_sym, %function
put_extern_sym:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	str	r3, [fp, #-20]
	mov	r3, #1
	str	r3, [sp]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	put_extern_sym2
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	put_extern_sym, .-put_extern_sym
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	greloc, %function
greloc:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	bne	.L365
	mov	r3, #0
	mov	r2, #0
	mov	r1, #0
	ldr	r0, [fp, #-12]
	bl	put_extern_sym
.L365:
	ldr	r3, .L366
	ldr	r0, [r3]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #8]
	str	r3, [sp]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-8]
	bl	put_elf_reloc
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L367:
	.align	2
.L366:
	.word	symtab_section
	.size	greloc, .-greloc
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	isid, %function
isid:
	@ 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, #96
	ble	.L369
	ldr	r3, [fp, #-8]
	cmp	r3, #122
	ble	.L370
.L369:
	ldr	r3, [fp, #-8]
	cmp	r3, #64
	ble	.L371
	ldr	r3, [fp, #-8]
	cmp	r3, #90
	ble	.L370
.L371:
	ldr	r3, [fp, #-8]
	cmp	r3, #95
	bne	.L372
.L370:
	mov	r3, #1
	b	.L374
.L372:
	mov	r3, #0
.L374:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	isid, .-isid
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	isnum, %function
isnum:
	@ 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, #47
	ble	.L376
	ldr	r3, [fp, #-8]
	cmp	r3, #57
	bgt	.L376
	mov	r3, #1
	b	.L378
.L376:
	mov	r3, #0
.L378:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	isnum, .-isnum
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	isoct, %function
isoct:
	@ 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, #47
	ble	.L380
	ldr	r3, [fp, #-8]
	cmp	r3, #55
	bgt	.L380
	mov	r3, #1
	b	.L382
.L380:
	mov	r3, #0
.L382:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	isoct, .-isoct
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	toup, %function
toup:
	@ 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, #96
	ble	.L384
	ldr	r3, [fp, #-8]
	cmp	r3, #122
	bgt	.L384
	ldr	r3, [fp, #-8]
	sub	r3, r3, #32
	b	.L385
.L384:
	ldr	r3, [fp, #-8]
.L385:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	toup, .-toup
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	strcat_vprintf, %function
strcat_vprintf:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	ldr	r0, [fp, #-16]
	bl	strlen
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	add	r0, r2, r3
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-8]
	sub	r3, r2, r3
	mov	r1, r3
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-24]
	bl	vsnprintf
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	strcat_vprintf, .-strcat_vprintf
	.section	.rodata
	.align	2
.LC13:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	strcat_printf, %function
strcat_printf:
	@ args = 4, pretend = 8, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 1
	push	{r2, r3}
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-24]
	ldr	r3, .L389
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	add	r3, fp, #8
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	strcat_vprintf
	nop
	ldr	r3, .L389
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L388
	bl	__stack_chk_fail
.L388:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, lr}
	add	sp, sp, #8
	bx	lr
.L390:
	.align	2
.L389:
	.word	.LC13
	.size	strcat_printf, .-strcat_printf
	.section	.rodata
	.align	2
.LC14:
	.ascii	"In file included from %s:%d:\012\000"
	.align	2
.LC15:
	.ascii	"%s:%d: \000"
	.align	2
.LC16:
	.ascii	"%s: \000"
	.align	2
.LC17:
	.ascii	"tcc: \000"
	.align	2
.LC18:
	.ascii	"warning: \000"
	.align	2
.LC19:
	.ascii	"%s\012\000"
	.align	2
.LC20:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	error1
	.syntax unified
	.arm
	.fpu softvfp
	.type	error1, %function
error1:
	@ args = 0, pretend = 0, frame = 2072
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #2080
	str	r0, [fp, #-2064]
	str	r1, [fp, #-2068]
	str	r2, [fp, #-2072]
	str	r3, [fp, #-2076]
	ldr	r3, .L404
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	strb	r3, [fp, #-2056]
	ldr	r3, .L404+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L392
	ldr	r3, [fp, #-2064]
	add	r3, r3, #568
	str	r3, [fp, #-2060]
	b	.L393
.L394:
	ldr	r3, [fp, #-2060]
	ldr	r3, [r3]
	add	r3, r3, #540
	add	r3, r3, #1
	ldr	r2, [fp, #-2060]
	ldr	r2, [r2]
	ldr	r2, [r2, #12]
	sub	r0, fp, #2048
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r2, [sp]
	ldr	r2, .L404+8
	mov	r1, #2048
	bl	strcat_printf
	ldr	r3, [fp, #-2060]
	add	r3, r3, #4
	str	r3, [fp, #-2060]
.L393:
	ldr	r3, [fp, #-2064]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-2060]
	cmp	r2, r3
	bcc	.L394
	ldr	r3, .L404+4
	ldr	r3, [r3]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	ble	.L395
	ldr	r3, .L404+4
	ldr	r3, [r3]
	add	r3, r3, #540
	add	r3, r3, #1
	ldr	r2, .L404+4
	ldr	r2, [r2]
	ldr	r2, [r2, #12]
	sub	r0, fp, #2048
	sub	r0, r0, #4
	sub	r0, r0, #4
	str	r2, [sp]
	ldr	r2, .L404+12
	mov	r1, #2048
	bl	strcat_printf
	b	.L396
.L395:
	ldr	r3, .L404+4
	ldr	r3, [r3]
	add	r3, r3, #540
	add	r3, r3, #1
	sub	r0, fp, #2048
	sub	r0, r0, #4
	sub	r0, r0, #4
	ldr	r2, .L404+16
	mov	r1, #2048
	bl	strcat_printf
	b	.L396
.L392:
	sub	r3, fp, #2048
	sub	r3, r3, #4
	sub	r3, r3, #4
	ldr	r2, .L404+20
	mov	r1, #2048
	mov	r0, r3
	bl	strcat_printf
.L396:
	ldr	r3, [fp, #-2068]
	cmp	r3, #0
	beq	.L397
	sub	r3, fp, #2048
	sub	r3, r3, #4
	sub	r3, r3, #4
	ldr	r2, .L404+24
	mov	r1, #2048
	mov	r0, r3
	bl	strcat_printf
.L397:
	sub	r0, fp, #2048
	sub	r0, r0, #4
	sub	r0, r0, #4
	ldr	r3, [fp, #-2076]
	ldr	r2, [fp, #-2072]
	mov	r1, #2048
	bl	strcat_vprintf
	ldr	r3, [fp, #-2064]
	ldr	r3, [r3, #156]
	cmp	r3, #0
	bne	.L398
	ldr	r3, .L404+28
	ldr	r0, [r3]
	sub	r3, fp, #2048
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r2, r3
	ldr	r1, .L404+32
	bl	fprintf
	b	.L399
.L398:
	ldr	r3, [fp, #-2064]
	ldr	r2, [r3, #156]
	ldr	r3, [fp, #-2064]
	ldr	r0, [r3, #152]
	sub	r3, fp, #2048
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r1, r3
	blx	r2
.L399:
	ldr	r3, [fp, #-2068]
	cmp	r3, #0
	beq	.L400
	ldr	r3, [fp, #-2064]
	ldr	r3, [r3, #140]
	cmp	r3, #0
	beq	.L403
.L400:
	ldr	r3, [fp, #-2064]
	ldr	r3, [r3, #560]
	add	r2, r3, #1
	ldr	r3, [fp, #-2064]
	str	r2, [r3, #560]
.L403:
	nop
	ldr	r3, .L404
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L402
	bl	__stack_chk_fail
.L402:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L405:
	.align	2
.L404:
	.word	.LC20
	.word	file
	.word	.LC14
	.word	.LC15
	.word	.LC16
	.word	.LC17
	.word	.LC18
	.word	stderr
	.word	.LC19
	.size	error1, .-error1
	.section	.rodata
	.align	2
.LC21:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	error_noabort
	.syntax unified
	.arm
	.fpu softvfp
	.type	error_noabort, %function
error_noabort:
	@ args = 4, pretend = 16, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 1
	push	{r0, r1, r2, r3}
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	ldr	r3, [fp, #4]
	str	r3, [fp, #-24]
	ldr	r3, .L408
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L408+4
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	add	r3, fp, #8
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-24]
	mov	r1, #0
	ldr	r0, [fp, #-12]
	bl	error1
	nop
	ldr	r3, .L408
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L407
	bl	__stack_chk_fail
.L407:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, lr}
	add	sp, sp, #16
	bx	lr
.L409:
	.align	2
.L408:
	.word	.LC21
	.word	tcc_state
	.size	error_noabort, .-error_noabort
	.section	.rodata
	.align	2
.LC22:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	error
	.syntax unified
	.arm
	.fpu softvfp
	.type	error, %function
error:
	@ args = 4, pretend = 16, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 1
	push	{r0, r1, r2, r3}
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	ldr	r3, [fp, #4]
	str	r3, [fp, #-24]
	ldr	r3, .L413
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L413+4
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	add	r3, fp, #8
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-24]
	mov	r1, #0
	ldr	r0, [fp, #-12]
	bl	error1
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #160]
	cmp	r3, #0
	beq	.L411
	ldr	r3, [fp, #-12]
	add	r3, r3, #168
	mov	r1, #1
	mov	r0, r3
	bl	longjmp
.L411:
	mov	r0, #1
	bl	exit
.L414:
	.align	2
.L413:
	.word	.LC22
	.word	tcc_state
	.size	error, .-error
	.section	.rodata
	.align	2
.LC23:
	.ascii	"%s expected\000"
	.text
	.align	2
	.global	expect
	.syntax unified
	.arm
	.fpu softvfp
	.type	expect, %function
expect:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r1, [fp, #-8]
	ldr	r0, .L416
	bl	error
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L417:
	.align	2
.L416:
	.word	.LC23
	.size	expect, .-expect
	.section	.rodata
	.align	2
.LC24:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	warning
	.syntax unified
	.arm
	.fpu softvfp
	.type	warning, %function
warning:
	@ args = 4, pretend = 16, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 1
	push	{r0, r1, r2, r3}
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	ldr	r3, [fp, #4]
	str	r3, [fp, #-24]
	ldr	r3, .L423
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L423+4
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #144]
	cmp	r3, #0
	bne	.L422
	add	r3, fp, #8
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-24]
	mov	r1, #1
	ldr	r0, [fp, #-12]
	bl	error1
	b	.L418
.L422:
	nop
.L418:
	ldr	r3, .L423
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L421
	bl	__stack_chk_fail
.L421:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, lr}
	add	sp, sp, #16
	bx	lr
.L424:
	.align	2
.L423:
	.word	.LC24
	.word	tcc_state
	.size	warning, .-warning
	.section	.rodata
	.align	2
.LC25:
	.ascii	"'%c' expected\000"
	.text
	.align	2
	.global	skip
	.syntax unified
	.arm
	.fpu softvfp
	.type	skip, %function
skip:
	@ 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, .L427
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	beq	.L426
	ldr	r1, [fp, #-8]
	ldr	r0, .L427+4
	bl	error
.L426:
	bl	next
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L428:
	.align	2
.L427:
	.word	tok
	.word	.LC25
	.size	skip, .-skip
	.section	.rodata
	.align	2
.LC26:
	.ascii	"lvalue\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	test_lvalue, %function
test_lvalue:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L432
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #256
	cmp	r3, #0
	bne	.L431
	ldr	r0, .L432+4
	bl	expect
.L431:
	nop
	pop	{fp, pc}
.L433:
	.align	2
.L432:
	.word	vtop
	.word	.LC26
	.size	test_lvalue, .-test_lvalue
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tok_alloc_new, %function
tok_alloc_new:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	ldr	r3, .L439
	ldr	r3, [r3]
	cmn	r3, #-268435455
	ble	.L435
	ldr	r0, .L439+4
	bl	error
.L435:
	ldr	r3, .L439
	ldr	r3, [r3]
	sub	r3, r3, #256
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #23
	lsr	r3, r3, #23
	cmp	r3, #0
	bne	.L436
	ldr	r3, .L439+8
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #512
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	tcc_realloc
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L437
	ldr	r0, .L439+4
	bl	error
.L437:
	ldr	r2, .L439+8
	ldr	r3, [fp, #-12]
	str	r3, [r2]
.L436:
	ldr	r3, [fp, #-32]
	add	r3, r3, #32
	mov	r0, r3
	bl	tcc_malloc
	str	r0, [fp, #-8]
	ldr	r3, .L439+8
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldr	r3, .L439
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L439
	str	r2, [r1]
	ldr	r2, [fp, #-8]
	str	r3, [r2, #20]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-32]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #28
	ldr	r2, [fp, #-32]
	ldr	r1, [fp, #-28]
	mov	r0, r3
	bl	memcpy
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	add	r3, r3, #28
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L440:
	.align	2
.L439:
	.word	tok_ident
	.word	.LC10
	.word	table_ident
	.size	tok_alloc_new, .-tok_alloc_new
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tok_alloc, %function
tok_alloc:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	mov	r3, #1
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L442
.L443:
	ldr	r2, [fp, #-12]
	mov	r3, r2
	lsl	r3, r3, #5
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-24]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L442:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	blt	.L443
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #19
	lsr	r3, r3, #19
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	ldr	r2, .L451
	add	r3, r3, r2
	str	r3, [fp, #-20]
.L448:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L450
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #24]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bne	.L446
	ldr	r3, [fp, #-8]
	add	r3, r3, #28
	ldr	r2, [fp, #-28]
	ldr	r1, [fp, #-24]
	mov	r0, r3
	bl	memcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L446
	ldr	r3, [fp, #-8]
	b	.L447
.L446:
	ldr	r3, [fp, #-8]
	str	r3, [fp, #-20]
	b	.L448
.L450:
	nop
	ldr	r2, [fp, #-28]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-20]
	bl	tok_alloc_new
	mov	r3, r0
.L447:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L452:
	.align	2
.L451:
	.word	hash_ident
	.size	tok_alloc, .-tok_alloc
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	cstr_realloc, %function
cstr_realloc:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L455
	mov	r3, #8
	str	r3, [fp, #-12]
	b	.L455
.L456:
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #1
	str	r3, [fp, #-12]
.L455:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	blt	.L456
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-12]
	mov	r1, r2
	mov	r0, r3
	bl	tcc_realloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L457
	ldr	r0, .L458
	bl	error
.L457:
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #4]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L459:
	.align	2
.L458:
	.word	.LC10
	.size	cstr_realloc, .-cstr_realloc
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	cstr_ccat, %function
cstr_ccat:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	add	r3, r3, #1
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	ble	.L461
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	cstr_realloc
.L461:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	sub	r3, r3, #1
	add	r3, r2, r3
	ldr	r2, [fp, #-20]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	cstr_ccat, .-cstr_ccat
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	cstr_cat, %function
cstr_cat:
	@ 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]
.L465:
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L467
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	cstr_ccat
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
	b	.L465
.L467:
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	cstr_cat, .-cstr_cat
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	cstr_wccat, %function
cstr_wccat:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	add	r3, r3, #4
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	ble	.L469
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	cstr_realloc
.L469:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	sub	r3, r3, #4
	add	r3, r2, r3
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	cstr_wccat, .-cstr_wccat
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	cstr_new, %function
cstr_new:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	mov	r2, #16
	mov	r1, #0
	ldr	r0, [fp, #-8]
	bl	memset
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	cstr_new, .-cstr_new
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	cstr_free, %function
cstr_free:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	mov	r0, r3
	bl	tcc_free
	ldr	r0, [fp, #-8]
	bl	cstr_new
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	cstr_free, .-cstr_free
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	add_char, %function
add_char:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #39
	beq	.L473
	ldr	r3, [fp, #-12]
	cmp	r3, #34
	beq	.L473
	ldr	r3, [fp, #-12]
	cmp	r3, #92
	bne	.L474
.L473:
	mov	r1, #92
	ldr	r0, [fp, #-8]
	bl	cstr_ccat
.L474:
	ldr	r3, [fp, #-12]
	cmp	r3, #31
	ble	.L475
	ldr	r3, [fp, #-12]
	cmp	r3, #126
	bgt	.L475
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	cstr_ccat
	b	.L478
.L475:
	mov	r1, #92
	ldr	r0, [fp, #-8]
	bl	cstr_ccat
	ldr	r3, [fp, #-12]
	cmp	r3, #10
	bne	.L477
	mov	r1, #110
	ldr	r0, [fp, #-8]
	bl	cstr_ccat
	b	.L478
.L477:
	ldr	r3, [fp, #-12]
	asr	r3, r3, #6
	and	r3, r3, #7
	add	r3, r3, #48
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	cstr_ccat
	ldr	r3, [fp, #-12]
	asr	r3, r3, #3
	and	r3, r3, #7
	add	r3, r3, #48
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	cstr_ccat
	ldr	r3, [fp, #-12]
	and	r3, r3, #7
	add	r3, r3, #48
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	cstr_ccat
.L478:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	add_char, .-add_char
	.section	.rodata
	.align	2
.LC27:
	.ascii	"%u\000"
	.align	2
.LC28:
	.ascii	"%llu\000"
	.align	2
.LC29:
	.ascii	"<<=\000"
	.align	2
.LC30:
	.ascii	">>=\000"
	.align	2
.LC31:
	.ascii	"L.%u\000"
	.text
	.align	2
	.global	get_tok_str
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_tok_str, %function
get_tok_str:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	ldr	r0, .L509
	bl	cstr_free
	ldr	r3, .L509
	ldr	r2, .L509+4
	str	r2, [r3, #4]
	ldr	r3, .L509
	ldr	r2, .L509+8
	str	r2, [r3, #8]
	ldr	r3, .L509+4
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-32]
	sub	r3, r3, #129
	cmp	r3, #77
	ldrls	pc, [pc, r3, asl #2]
	b	.L480
.L482:
	.word	.L490
	.word	.L489
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L488
	.word	.L480
	.word	.L480
	.word	.L487
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L484
	.word	.L486
	.word	.L485
	.word	.L480
	.word	.L486
	.word	.L485
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L484
	.word	.L483
	.word	.L483
	.word	.L480
	.word	.L480
	.word	.L480
	.word	.L481
.L484:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L509+12
	ldr	r0, [fp, #-16]
	bl	sprintf
	b	.L491
.L483:
	ldr	r3, [fp, #-36]
	ldmia	r3, {r2-r3}
	ldr	r1, .L509+16
	ldr	r0, [fp, #-16]
	bl	sprintf
	b	.L491
.L486:
	mov	r1, #39
	ldr	r0, .L509
	bl	cstr_ccat
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L509
	bl	add_char
	mov	r1, #39
	ldr	r0, .L509
	bl	cstr_ccat
	mov	r1, #0
	ldr	r0, .L509
	bl	cstr_ccat
	b	.L491
.L481:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	sub	r3, r3, #1
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L492
.L493:
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, .L509
	bl	add_char
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L492:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	blt	.L493
	mov	r1, #0
	ldr	r0, .L509
	bl	cstr_ccat
	b	.L491
.L485:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	mov	r1, #34
	ldr	r0, .L509
	bl	cstr_ccat
	ldr	r3, [fp, #-32]
	cmp	r3, #181
	bne	.L494
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	sub	r3, r3, #1
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L495
.L496:
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, .L509
	bl	add_char
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L495:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	blt	.L496
	b	.L497
.L494:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	lsr	r3, r3, #2
	sub	r3, r3, #1
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L498
.L499:
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L509
	bl	add_char
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L498:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	blt	.L499
.L497:
	mov	r1, #34
	ldr	r0, .L509
	bl	cstr_ccat
	mov	r1, #0
	ldr	r0, .L509
	bl	cstr_ccat
	b	.L491
.L488:
	mov	r3, #60
	str	r3, [fp, #-32]
	b	.L500
.L487:
	mov	r3, #62
	str	r3, [fp, #-32]
	b	.L500
.L490:
	ldr	r3, [fp, #-16]
	ldr	r2, .L509+20
	mov	r0, r3
	mov	r1, r2
	mov	r3, #4
	mov	r2, r3
	bl	memcpy
	mov	r3, r0
	b	.L501
.L489:
	ldr	r3, [fp, #-16]
	ldr	r2, .L509+24
	mov	r0, r3
	mov	r1, r2
	mov	r3, #4
	mov	r2, r3
	bl	memcpy
	mov	r3, r0
	b	.L501
.L480:
	ldr	r3, [fp, #-32]
	cmp	r3, #255
	bgt	.L502
	ldr	r3, .L509+28
	str	r3, [fp, #-24]
	b	.L503
.L505:
	ldr	r3, [fp, #-24]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	cmp	r3, r2
	bne	.L504
	ldr	r3, [fp, #-16]
	add	r2, r3, #1
	str	r2, [fp, #-16]
	ldr	r2, [fp, #-24]
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	ldr	r3, [fp, #-16]
	add	r1, r3, #1
	str	r1, [fp, #-16]
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, .L509+4
	b	.L501
.L504:
	ldr	r3, [fp, #-24]
	add	r3, r3, #3
	str	r3, [fp, #-24]
.L503:
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L505
	nop
.L500:
	ldr	r3, [fp, #-16]
	add	r2, r3, #1
	str	r2, [fp, #-16]
	ldr	r2, [fp, #-32]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	mov	r2, #0
	strb	r2, [r3]
	b	.L491
.L502:
	ldr	r3, .L509+32
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	bge	.L507
	ldr	r3, .L509+36
	ldr	r2, [r3]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1073741824
	sub	r3, r3, #256
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	add	r3, r3, #28
	b	.L501
.L507:
	ldr	r3, [fp, #-32]
	cmn	r3, #-268435455
	ble	.L508
	ldr	r3, [fp, #-32]
	add	r3, r3, #-268435456
	mov	r2, r3
	ldr	r1, .L509+40
	ldr	r0, [fp, #-16]
	bl	sprintf
	b	.L491
.L508:
	mov	r3, #0
	b	.L501
.L491:
	ldr	r3, .L509
	ldr	r3, [r3, #4]
.L501:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L510:
	.align	2
.L509:
	.word	cstr_buf.11877
	.word	buf.11876
	.word	1025
	.word	.LC27
	.word	.LC28
	.word	.LC29
	.word	.LC30
	.word	tok_two_chars
	.word	tok_ident
	.word	table_ident
	.word	.LC31
	.size	get_tok_str, .-get_tok_str
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	sym_push2, %function
sym_push2:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	bl	sym_malloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-24]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-28]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #20]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	sym_push2, .-sym_push2
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	sym_find2, %function
sym_find2:
	@ 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]
	b	.L514
.L517:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bne	.L515
	ldr	r3, [fp, #-8]
	b	.L516
.L515:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #24]
	str	r3, [fp, #-8]
.L514:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L517
	mov	r3, #0
.L516:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	sym_find2, .-sym_find2
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	struct_find, %function
struct_find:
	@ 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]
	sub	r3, r3, #256
	str	r3, [fp, #-8]
	ldr	r3, .L521
	ldr	r3, [r3]
	sub	r3, r3, #256
	mov	r2, r3
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	bhi	.L519
	mov	r3, #0
	b	.L520
.L519:
	ldr	r3, .L521+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #12]
.L520:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L522:
	.align	2
.L521:
	.word	tok_ident
	.word	table_ident
	.size	struct_find, .-struct_find
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	sym_find, %function
sym_find:
	@ 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]
	sub	r3, r3, #256
	str	r3, [fp, #-8]
	ldr	r3, .L526
	ldr	r3, [r3]
	sub	r3, r3, #256
	mov	r2, r3
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	bhi	.L524
	mov	r3, #0
	b	.L525
.L524:
	ldr	r3, .L526+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
.L525:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L527:
	.align	2
.L526:
	.word	tok_ident
	.word	table_ident
	.size	sym_find, .-sym_find
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	sym_push, %function
sym_push:
	@ 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]
	str	r3, [fp, #-36]
	ldr	r3, .L535
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L529
	ldr	r3, .L535
	str	r3, [fp, #-16]
	b	.L530
.L529:
	ldr	r3, .L535+4
	str	r3, [fp, #-16]
.L530:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3]
	ldr	r3, [fp, #-36]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-16]
	bl	sym_push2
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-32]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-24]
	and	r3, r3, #536870912
	cmp	r3, #0
	bne	.L531
	ldr	r3, [fp, #-24]
	bic	r3, r3, #1073741824
	cmn	r3, #-268435455
	bgt	.L531
	ldr	r3, .L535+8
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	bic	r3, r3, #1073741824
	add	r3, r3, #1073741824
	sub	r3, r3, #256
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-24]
	and	r3, r3, #1073741824
	cmp	r3, #0
	beq	.L532
	ldr	r3, [fp, #-8]
	add	r3, r3, #12
	str	r3, [fp, #-16]
	b	.L533
.L532:
	ldr	r3, [fp, #-8]
	add	r3, r3, #16
	str	r3, [fp, #-16]
.L533:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	str	r2, [r3]
.L531:
	ldr	r3, [fp, #-12]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L536:
	.align	2
.L535:
	.word	local_stack
	.word	global_stack
	.word	table_ident
	.size	sym_push, .-sym_push
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	global_identifier_push, %function
global_identifier_push:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-20]
	ldr	r1, [fp, #-16]
	ldr	r0, .L542
	bl	sym_push2
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-16]
	cmn	r3, #-268435455
	bgt	.L538
	ldr	r3, .L542+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1073741824
	sub	r3, r3, #256
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	add	r3, r3, #16
	str	r3, [fp, #-12]
	b	.L539
.L540:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	add	r3, r3, #28
	str	r3, [fp, #-12]
.L539:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L540
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #28]
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
.L538:
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L543:
	.align	2
.L542:
	.word	global_stack
	.word	table_ident
	.size	global_identifier_push, .-global_identifier_push
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	sym_pop, %function
sym_pop:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	b	.L545
.L549:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #24]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	and	r3, r3, #536870912
	cmp	r3, #0
	bne	.L546
	ldr	r3, [fp, #-12]
	bic	r3, r3, #1073741824
	cmn	r3, #-268435455
	bgt	.L546
	ldr	r3, .L550
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	bic	r3, r3, #1073741824
	add	r3, r3, #1073741824
	sub	r3, r3, #256
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	and	r3, r3, #1073741824
	cmp	r3, #0
	beq	.L547
	ldr	r3, [fp, #-8]
	add	r3, r3, #12
	str	r3, [fp, #-20]
	b	.L548
.L547:
	ldr	r3, [fp, #-8]
	add	r3, r3, #16
	str	r3, [fp, #-20]
.L548:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #28]
	ldr	r3, [fp, #-20]
	str	r2, [r3]
.L546:
	ldr	r0, [fp, #-24]
	bl	sym_free
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-24]
.L545:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-36]
	cmp	r2, r3
	bne	.L549
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-36]
	str	r2, [r3]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L551:
	.align	2
.L550:
	.word	table_ident
	.size	sym_pop, .-sym_pop
	.align	2
	.global	tcc_open
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_open, %function
tcc_open:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	mov	r1, #0
	ldr	r0, [fp, #-20]
	bl	open
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bge	.L553
	mov	r3, #0
	b	.L554
.L553:
	ldr	r0, .L556
	bl	tcc_malloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L555
	ldr	r0, [fp, #-12]
	bl	close
	mov	r3, #0
	b	.L554
.L555:
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1552
	add	r3, r3, #13
	ldr	r2, [fp, #-8]
	str	r3, [r2]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1552
	add	r3, r3, #13
	ldr	r2, [fp, #-8]
	str	r3, [r2, #4]
	ldr	r3, [fp, #-8]
	mov	r2, #92
	strb	r2, [r3, #1565]
	ldr	r3, [fp, #-8]
	add	r3, r3, #540
	add	r3, r3, #1
	ldr	r2, [fp, #-20]
	mov	r1, #1024
	mov	r0, r3
	bl	pstrcpy
	ldr	r3, [fp, #-8]
	mov	r2, #1
	str	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-8]
.L554:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L557:
	.align	2
.L556:
	.word	9760
	.size	tcc_open, .-tcc_open
	.align	2
	.global	tcc_close
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_close, %function
tcc_close:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #12]
	ldr	r3, .L559
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L559
	str	r3, [r2]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	mov	r0, r3
	bl	close
	ldr	r0, [fp, #-8]
	bl	tcc_free
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L560:
	.align	2
.L559:
	.word	total_lines
	.size	tcc_close, .-tcc_close
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_peekc_slow, %function
tcc_peekc_slow:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	bcc	.L562
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	cmn	r3, #1
	beq	.L563
	mov	r3, #8192
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r0, [r3, #8]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1552
	add	r3, r3, #13
	ldr	r2, [fp, #-8]
	mov	r1, r3
	bl	read
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bge	.L564
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L564
.L563:
	mov	r3, #0
	str	r3, [fp, #-8]
.L564:
	ldr	r3, .L567
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	ldr	r2, .L567
	str	r3, [r2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1552
	add	r3, r3, #13
	ldr	r2, [fp, #-16]
	str	r3, [r2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1552
	add	r3, r3, #13
	ldr	r2, [fp, #-8]
	add	r2, r3, r2
	ldr	r3, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	mov	r2, #92
	strb	r2, [r3]
.L562:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	bcs	.L565
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	b	.L566
.L565:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	mvn	r3, #0
.L566:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L568:
	.align	2
.L567:
	.word	total_bytes
	.size	tcc_peekc_slow, .-tcc_peekc_slow
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	handle_eob, %function
handle_eob:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L571
	ldr	r3, [r3]
	mov	r0, r3
	bl	tcc_peekc_slow
	mov	r3, r0
	mov	r0, r3
	pop	{fp, pc}
.L572:
	.align	2
.L571:
	.word	file
	.size	handle_eob, .-handle_eob
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	inp, %function
inp:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L576
	ldr	r3, [r3]
	ldr	r2, [r3]
	add	r2, r2, #1
	str	r2, [r3]
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L576+4
	str	r2, [r3]
	ldr	r3, .L576+4
	ldr	r3, [r3]
	cmp	r3, #92
	bne	.L575
	bl	handle_eob
	mov	r3, r0
	ldr	r2, .L576+4
	str	r3, [r2]
.L575:
	nop
	pop	{fp, pc}
.L577:
	.align	2
.L576:
	.word	file
	.word	ch
	.size	inp, .-inp
	.section	.rodata
	.align	2
.LC32:
	.ascii	"stray '\\' in program\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	handle_stray, %function
handle_stray:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	b	.L579
.L583:
	bl	inp
	ldr	r3, .L586
	ldr	r3, [r3]
	cmp	r3, #10
	bne	.L580
	ldr	r3, .L586+4
	ldr	r3, [r3]
	ldr	r2, [r3, #12]
	add	r2, r2, #1
	str	r2, [r3, #12]
	bl	inp
	b	.L579
.L580:
	ldr	r3, .L586
	ldr	r3, [r3]
	cmp	r3, #13
	bne	.L584
	bl	inp
	ldr	r3, .L586
	ldr	r3, [r3]
	cmp	r3, #10
	bne	.L585
	ldr	r3, .L586+4
	ldr	r3, [r3]
	ldr	r2, [r3, #12]
	add	r2, r2, #1
	str	r2, [r3, #12]
	bl	inp
	b	.L579
.L584:
	nop
	b	.L581
.L585:
	nop
.L581:
	ldr	r0, .L586+8
	bl	error
.L579:
	ldr	r3, .L586
	ldr	r3, [r3]
	cmp	r3, #92
	beq	.L583
	nop
	nop
	pop	{fp, pc}
.L587:
	.align	2
.L586:
	.word	ch
	.word	file
	.word	.LC32
	.size	handle_stray, .-handle_stray
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	handle_stray1, %function
handle_stray1:
	@ 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, .L593
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bcc	.L592
	ldr	r3, .L593
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	bl	handle_eob
	str	r0, [fp, #-8]
	ldr	r3, .L593
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-8]
	cmp	r3, #92
	bne	.L590
	b	.L589
.L592:
	nop
.L589:
	ldr	r3, .L593
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L593+4
	str	r2, [r3]
	bl	handle_stray
	ldr	r3, .L593
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
.L590:
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L594:
	.align	2
.L593:
	.word	file
	.word	ch
	.size	handle_stray1, .-handle_stray1
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	minp, %function
minp:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	bl	inp
	ldr	r3, .L598
	ldr	r3, [r3]
	cmp	r3, #92
	bne	.L597
	bl	handle_stray
.L597:
	nop
	pop	{fp, pc}
.L599:
	.align	2
.L598:
	.word	ch
	.size	minp, .-minp
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	parse_line_comment, %function
parse_line_comment:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L609:
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
.L601:
	ldr	r3, [fp, #-8]
	cmp	r3, #10
	beq	.L602
	ldr	r3, [fp, #-8]
	cmn	r3, #1
	beq	.L602
	ldr	r3, [fp, #-8]
	cmp	r3, #92
	bne	.L603
	ldr	r3, .L611
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	bl	handle_eob
	str	r0, [fp, #-8]
	ldr	r3, .L611
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-8]
	cmp	r3, #92
	bne	.L601
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #92
	bne	.L605
	ldr	r3, .L611
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	bl	handle_eob
	str	r0, [fp, #-8]
	ldr	r3, .L611
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-16]
.L605:
	ldr	r3, [fp, #-8]
	cmp	r3, #10
	bne	.L606
	ldr	r3, .L611
	ldr	r3, [r3]
	ldr	r2, [r3, #12]
	add	r2, r2, #1
	str	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #92
	bne	.L609
	ldr	r3, .L611
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	bl	handle_eob
	str	r0, [fp, #-8]
	ldr	r3, .L611
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	b	.L609
.L606:
	ldr	r3, [fp, #-8]
	cmp	r3, #13
	bne	.L609
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #92
	bne	.L608
	ldr	r3, .L611
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	bl	handle_eob
	str	r0, [fp, #-8]
	ldr	r3, .L611
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-16]
.L608:
	ldr	r3, [fp, #-8]
	cmp	r3, #10
	bne	.L609
	ldr	r3, .L611
	ldr	r3, [r3]
	ldr	r2, [r3, #12]
	add	r2, r2, #1
	str	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #92
	bne	.L609
	ldr	r3, .L611
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	bl	handle_eob
	str	r0, [fp, #-8]
	ldr	r3, .L611
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	b	.L609
.L603:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	b	.L609
.L602:
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L612:
	.align	2
.L611:
	.word	file
	.size	parse_line_comment, .-parse_line_comment
	.section	.rodata
	.align	2
.LC33:
	.ascii	"unexpected end of file in comment\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	parse_comment, %function
parse_comment:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L615:
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #10
	beq	.L614
	ldr	r3, [fp, #-8]
	cmp	r3, #42
	beq	.L614
	ldr	r3, [fp, #-8]
	cmp	r3, #92
	beq	.L614
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #10
	beq	.L614
	ldr	r3, [fp, #-8]
	cmp	r3, #42
	beq	.L614
	ldr	r3, [fp, #-8]
	cmp	r3, #92
	beq	.L614
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	b	.L615
.L614:
	ldr	r3, [fp, #-8]
	cmp	r3, #10
	bne	.L616
	ldr	r3, .L638
	ldr	r3, [r3]
	ldr	r2, [r3, #12]
	add	r2, r2, #1
	str	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	b	.L615
.L616:
	ldr	r3, [fp, #-8]
	cmp	r3, #42
	bne	.L618
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L631:
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #42
	bne	.L619
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	b	.L631
.L619:
	ldr	r3, [fp, #-8]
	cmp	r3, #47
	beq	.L635
	ldr	r3, [fp, #-8]
	cmp	r3, #92
	bne	.L636
	ldr	r3, .L638
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	bl	handle_eob
	str	r0, [fp, #-8]
	ldr	r3, .L638
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-8]
	cmp	r3, #92
	bne	.L631
	b	.L624
.L630:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #92
	bne	.L625
	ldr	r3, .L638
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	bl	handle_eob
	str	r0, [fp, #-8]
	ldr	r3, .L638
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-16]
.L625:
	ldr	r3, [fp, #-8]
	cmp	r3, #10
	bne	.L626
	ldr	r3, .L638
	ldr	r3, [r3]
	ldr	r2, [r3, #12]
	add	r2, r2, #1
	str	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #92
	bne	.L624
	ldr	r3, .L638
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	bl	handle_eob
	str	r0, [fp, #-8]
	ldr	r3, .L638
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	b	.L624
.L626:
	ldr	r3, [fp, #-8]
	cmp	r3, #13
	bne	.L637
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #92
	bne	.L628
	ldr	r3, .L638
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	bl	handle_eob
	str	r0, [fp, #-8]
	ldr	r3, .L638
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-16]
.L628:
	ldr	r3, [fp, #-8]
	cmp	r3, #10
	bne	.L624
	ldr	r3, .L638
	ldr	r3, [r3]
	ldr	r2, [r3, #12]
	add	r2, r2, #1
	str	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #92
	bne	.L624
	ldr	r3, .L638
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	bl	handle_eob
	str	r0, [fp, #-8]
	ldr	r3, .L638
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-16]
.L624:
	ldr	r3, [fp, #-8]
	cmp	r3, #92
	beq	.L630
	b	.L631
.L629:
.L618:
	ldr	r3, .L638
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	bl	handle_eob
	str	r0, [fp, #-8]
	ldr	r3, .L638
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-8]
	cmn	r3, #1
	bne	.L632
	ldr	r0, .L638+4
	bl	error
	b	.L615
.L632:
	ldr	r3, [fp, #-8]
	cmp	r3, #92
	bne	.L615
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	b	.L615
.L636:
	nop
	b	.L615
.L637:
	nop
	b	.L615
.L635:
	nop
.L622:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L639:
	.align	2
.L638:
	.word	file
	.word	.LC33
	.size	parse_comment, .-parse_comment
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_space, %function
is_space:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #32
	beq	.L641
	ldr	r3, [fp, #-8]
	cmp	r3, #9
	beq	.L641
	ldr	r3, [fp, #-8]
	cmp	r3, #11
	beq	.L641
	ldr	r3, [fp, #-8]
	cmp	r3, #12
	beq	.L641
	ldr	r3, [fp, #-8]
	cmp	r3, #13
	bne	.L642
.L641:
	mov	r3, #1
	b	.L644
.L642:
	mov	r3, #0
.L644:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	is_space, .-is_space
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	skip_spaces, %function
skip_spaces:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	b	.L646
.L647:
	bl	minp
.L646:
	ldr	r3, .L648
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_space
	mov	r3, r0
	cmp	r3, #0
	bne	.L647
	nop
	nop
	pop	{fp, pc}
.L649:
	.align	2
.L648:
	.word	ch
	.size	skip_spaces, .-skip_spaces
	.section	.rodata
	.align	2
.LC34:
	.ascii	"missing terminating %c character\000"
	.align	2
.LC35:
	.ascii	"'\012' after '\015'\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	parse_pp_string, %function
parse_pp_string:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L669:
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	beq	.L672
	ldr	r3, [fp, #-8]
	cmp	r3, #92
	bne	.L653
	ldr	r3, .L675
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	bl	handle_eob
	str	r0, [fp, #-8]
	ldr	r3, .L675
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-8]
	cmn	r3, #1
	bne	.L654
	nop
	b	.L655
.L673:
	nop
.L655:
	ldr	r1, [fp, #-20]
	ldr	r0, .L675+4
	bl	error
	b	.L669
.L654:
	ldr	r3, [fp, #-8]
	cmp	r3, #92
	bne	.L669
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #92
	bne	.L657
	ldr	r3, .L675
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	bl	handle_eob
	str	r0, [fp, #-8]
	ldr	r3, .L675
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-16]
.L657:
	ldr	r3, [fp, #-8]
	cmp	r3, #10
	bne	.L658
	ldr	r3, .L675
	ldr	r3, [r3]
	ldr	r2, [r3, #12]
	add	r2, r2, #1
	str	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	b	.L669
.L658:
	ldr	r3, [fp, #-8]
	cmp	r3, #13
	bne	.L659
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #92
	bne	.L660
	ldr	r3, .L675
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	bl	handle_eob
	str	r0, [fp, #-8]
	ldr	r3, .L675
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-16]
.L660:
	ldr	r3, [fp, #-8]
	cmp	r3, #10
	beq	.L661
	ldr	r0, .L675+8
	bl	expect
.L661:
	ldr	r3, .L675
	ldr	r3, [r3]
	ldr	r2, [r3, #12]
	add	r2, r2, #1
	str	r2, [r3, #12]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	b	.L669
.L659:
	ldr	r3, [fp, #-8]
	cmn	r3, #1
	beq	.L673
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L663
	mov	r1, #92
	ldr	r0, [fp, #-24]
	bl	cstr_ccat
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-24]
	bl	cstr_ccat
.L663:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	b	.L669
.L653:
	ldr	r3, [fp, #-8]
	cmp	r3, #10
	bne	.L664
	ldr	r3, .L675
	ldr	r3, [r3]
	ldr	r2, [r3, #12]
	add	r2, r2, #1
	str	r2, [r3, #12]
	b	.L665
.L664:
	ldr	r3, [fp, #-8]
	cmp	r3, #13
	bne	.L674
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #92
	bne	.L666
	ldr	r3, .L675
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	bl	handle_eob
	str	r0, [fp, #-8]
	ldr	r3, .L675
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-16]
.L666:
	ldr	r3, [fp, #-8]
	cmp	r3, #10
	beq	.L667
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L669
	mov	r1, #13
	ldr	r0, [fp, #-24]
	bl	cstr_ccat
	b	.L669
.L667:
	ldr	r3, .L675
	ldr	r3, [r3]
	ldr	r2, [r3, #12]
	add	r2, r2, #1
	str	r2, [r3, #12]
	b	.L665
.L674:
	nop
.L665:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L668
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-24]
	bl	cstr_ccat
.L668:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	b	.L669
.L672:
	nop
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L676:
	.align	2
.L675:
	.word	file
	.word	.LC34
	.word	.LC35
	.size	parse_pp_string, .-parse_pp_string
	.section	.rodata
	.align	2
.LC36:
	.ascii	"#endif\000"
	.text
	.align	2
	.global	preprocess_skip
	.syntax unified
	.arm
	.fpu softvfp
	.type	preprocess_skip, %function
preprocess_skip:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	ldr	r3, .L702
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	mov	r3, #1
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-20]
.L678:
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #47
	bgt	.L679
	ldr	r3, [fp, #-8]
	cmp	r3, #9
	blt	.L680
	ldr	r3, [fp, #-8]
	sub	r3, r3, #9
	cmp	r3, #38
	ldrls	pc, [pc, r3, asl #2]
	b	.L680
.L682:
	.word	.L685
	.word	.L686
	.word	.L685
	.word	.L685
	.word	.L685
	.word	.L680
	.word	.L680
	.word	.L680
	.word	.L680
	.word	.L680
	.word	.L680
	.word	.L680
	.word	.L680
	.word	.L680
	.word	.L680
	.word	.L680
	.word	.L680
	.word	.L680
	.word	.L680
	.word	.L680
	.word	.L680
	.word	.L680
	.word	.L680
	.word	.L685
	.word	.L680
	.word	.L683
	.word	.L684
	.word	.L680
	.word	.L680
	.word	.L680
	.word	.L683
	.word	.L680
	.word	.L680
	.word	.L680
	.word	.L680
	.word	.L680
	.word	.L680
	.word	.L680
	.word	.L681
.L679:
	ldr	r3, [fp, #-8]
	cmp	r3, #92
	beq	.L687
	b	.L680
.L685:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
	b	.L678
.L686:
	mov	r3, #1
	str	r3, [fp, #-16]
	ldr	r3, .L702
	ldr	r3, [r3]
	ldr	r2, [r3, #12]
	add	r2, r2, #1
	str	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
	b	.L678
.L687:
	ldr	r3, .L702
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	bl	handle_eob
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmn	r3, #1
	bne	.L688
	ldr	r0, .L702+4
	bl	expect
	b	.L689
.L688:
	ldr	r3, [fp, #-8]
	cmp	r3, #92
	bne	.L689
	ldr	r3, .L702
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L702+8
	str	r2, [r3]
	bl	handle_stray
.L689:
	ldr	r3, .L702
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	b	.L678
.L683:
	mov	r2, #0
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-12]
	bl	parse_pp_string
	str	r0, [fp, #-12]
	b	.L690
.L681:
	ldr	r3, .L702
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L702+8
	str	r2, [r3]
	bl	minp
	ldr	r3, .L702
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, .L702+8
	ldr	r3, [r3]
	cmp	r3, #42
	bne	.L691
	ldr	r0, [fp, #-12]
	bl	parse_comment
	str	r0, [fp, #-12]
	b	.L699
.L691:
	ldr	r3, .L702+8
	ldr	r3, [r3]
	cmp	r3, #47
	bne	.L699
	ldr	r0, [fp, #-12]
	bl	parse_line_comment
	str	r0, [fp, #-12]
	b	.L699
.L684:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L700
	ldr	r3, .L702
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	bl	next_nomacro
	ldr	r3, .L702
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L694
	ldr	r3, .L702+12
	ldr	r3, [r3]
	cmp	r3, #260
	beq	.L701
	ldr	r3, .L702+12
	ldr	r3, [r3]
	ldr	r2, .L702+16
	cmp	r3, r2
	beq	.L701
	ldr	r3, .L702+12
	ldr	r3, [r3]
	ldr	r2, .L702+20
	cmp	r3, r2
	beq	.L701
.L694:
	ldr	r3, .L702+12
	ldr	r3, [r3]
	ldr	r2, .L702+24
	cmp	r3, r2
	beq	.L697
	ldr	r3, .L702+12
	ldr	r3, [r3]
	cmp	r3, #316
	beq	.L697
	ldr	r3, .L702+12
	ldr	r3, [r3]
	ldr	r2, .L702+28
	cmp	r3, r2
	bne	.L698
.L697:
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
	b	.L700
.L698:
	ldr	r3, .L702+12
	ldr	r3, [r3]
	ldr	r2, .L702+20
	cmp	r3, r2
	bne	.L700
	ldr	r3, [fp, #-20]
	sub	r3, r3, #1
	str	r3, [fp, #-20]
	b	.L700
.L680:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
	b	.L690
.L699:
	nop
	b	.L690
.L700:
	nop
.L690:
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L678
.L701:
	nop
.L696:
	ldr	r3, .L702
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L703:
	.align	2
.L702:
	.word	file
	.word	.LC36
	.word	ch
	.word	tok
	.word	318
	.word	319
	.word	259
	.word	317
	.size	preprocess_skip, .-preprocess_skip
	.align	2
	.global	save_parse_state
	.syntax unified
	.arm
	.fpu softvfp
	.type	save_parse_state, %function
save_parse_state:
	@ 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, .L705
	ldr	r3, [r3]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #4]
	ldr	r3, .L705+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	str	r2, [r3]
	ldr	r3, .L705+8
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #8]
	ldr	r1, [fp, #-8]
	ldr	r3, .L705+12
	ldmia	r3, {r2-r3}
	str	r2, [r1, #16]
	str	r3, [r1, #20]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L706:
	.align	2
.L705:
	.word	file
	.word	macro_ptr
	.word	tok
	.word	tokc
	.size	save_parse_state, .-save_parse_state
	.align	2
	.global	restore_parse_state
	.syntax unified
	.arm
	.fpu softvfp
	.type	restore_parse_state, %function
restore_parse_state:
	@ 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, .L708
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	ldr	r2, [r2, #4]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	ldr	r2, .L708+4
	str	r3, [r2]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	ldr	r2, .L708+8
	str	r3, [r2]
	ldr	r1, .L708+12
	ldr	r3, [fp, #-8]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L709:
	.align	2
.L708:
	.word	file
	.word	macro_ptr
	.word	tok
	.word	tokc
	.size	restore_parse_state, .-restore_parse_state
	.section	.rodata
	.align	2
.LC37:
	.ascii	"unsupported token\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tok_ext_size, %function
tok_ext_size:
	@ 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]
	sub	r3, r3, #179
	cmp	r3, #27
	ldrls	pc, [pc, r3, asl #2]
	b	.L711
.L713:
	.word	.L715
	.word	.L715
	.word	.L712
	.word	.L711
	.word	.L715
	.word	.L712
	.word	.L715
	.word	.L715
	.word	.L711
	.word	.L711
	.word	.L711
	.word	.L711
	.word	.L711
	.word	.L714
	.word	.L716
	.word	.L711
	.word	.L711
	.word	.L711
	.word	.L711
	.word	.L711
	.word	.L711
	.word	.L715
	.word	.L714
	.word	.L714
	.word	.L711
	.word	.L711
	.word	.L711
	.word	.L712
.L715:
	mov	r3, #1
	b	.L717
.L712:
	ldr	r0, .L718
	bl	error
	mov	r3, #1
	b	.L717
.L714:
	mov	r3, #2
	b	.L717
.L716:
	mov	r3, #3
	b	.L717
.L711:
	mov	r3, #0
.L717:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L719:
	.align	2
.L718:
	.word	.LC37
	.size	tok_ext_size, .-tok_ext_size
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tok_str_new, %function
tok_str_new:
	@ 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]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	mvn	r2, #0
	str	r2, [r3, #12]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	tok_str_new, .-tok_str_new
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tok_str_free, %function
tok_str_free:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	tcc_free
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tok_str_free, .-tok_str_free
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tok_str_realloc, %function
tok_str_realloc:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	bne	.L723
	mov	r3, #8
	str	r3, [fp, #-12]
	b	.L724
.L723:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	lsl	r3, r3, #1
	str	r3, [fp, #-12]
.L724:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	tcc_realloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L725
	ldr	r0, .L727
	bl	error
.L725:
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L728:
	.align	2
.L727:
	.word	.LC10
	.size	tok_str_realloc, .-tok_str_realloc
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tok_str_add, %function
tok_str_add:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	blt	.L730
	ldr	r0, [fp, #-16]
	bl	tok_str_realloc
	str	r0, [fp, #-12]
.L730:
	ldr	r3, [fp, #-8]
	add	r2, r3, #1
	str	r2, [fp, #-8]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #4]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tok_str_add, .-tok_str_add
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tok_str_add2, %function
tok_str_add2:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-20]
	add	r2, r3, #3
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #8]
	cmp	r2, r3
	blt	.L732
	ldr	r0, [fp, #-24]
	bl	tok_str_realloc
	str	r0, [fp, #-16]
.L732:
	ldr	r3, [fp, #-20]
	add	r2, r3, #1
	str	r2, [fp, #-20]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-28]
	sub	r3, r3, #179
	cmp	r3, #27
	ldrls	pc, [pc, r3, asl #2]
	b	.L742
.L735:
	.word	.L737
	.word	.L737
	.word	.L734
	.word	.L742
	.word	.L737
	.word	.L734
	.word	.L737
	.word	.L737
	.word	.L742
	.word	.L742
	.word	.L742
	.word	.L742
	.word	.L742
	.word	.L736
	.word	.L738
	.word	.L742
	.word	.L742
	.word	.L742
	.word	.L742
	.word	.L742
	.word	.L742
	.word	.L737
	.word	.L736
	.word	.L736
	.word	.L742
	.word	.L742
	.word	.L742
	.word	.L734
.L737:
	ldr	r3, [fp, #-20]
	add	r2, r3, #1
	str	r2, [fp, #-20]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r2, [fp, #-32]
	ldr	r2, [r2]
	str	r2, [r3]
	b	.L739
.L734:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	ldr	r3, [r3]
	add	r3, r3, #19
	lsr	r3, r3, #2
	str	r3, [fp, #-12]
	b	.L740
.L741:
	ldr	r0, [fp, #-24]
	bl	tok_str_realloc
	str	r0, [fp, #-16]
.L740:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-12]
	add	r2, r2, r3
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #8]
	cmp	r2, r3
	bgt	.L741
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	add	r0, r3, #16
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r2, r3
	bl	memcpy
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	b	.L739
.L736:
	ldr	r3, [fp, #-20]
	add	r2, r3, #1
	str	r2, [fp, #-20]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r2, [fp, #-32]
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r3, [fp, #-20]
	add	r2, r3, #1
	str	r2, [fp, #-20]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r2, [fp, #-32]
	ldr	r2, [r2, #4]
	str	r2, [r3]
	b	.L739
.L738:
	ldr	r3, [fp, #-20]
	add	r2, r3, #1
	str	r2, [fp, #-20]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r2, [fp, #-32]
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r3, [fp, #-20]
	add	r2, r3, #1
	str	r2, [fp, #-20]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r2, [fp, #-32]
	ldr	r2, [r2, #4]
	str	r2, [r3]
	ldr	r3, [fp, #-20]
	add	r2, r3, #1
	str	r2, [fp, #-20]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r2, [fp, #-32]
	ldr	r2, [r2, #8]
	str	r2, [r3]
	b	.L739
.L742:
	nop
.L739:
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-20]
	str	r2, [r3, #4]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tok_str_add2, .-tok_str_add2
	.section	.rodata
	.align	2
.LC38:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tok_str_add_tok, %function
tok_str_add_tok:
	@ 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, .L746
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L746+4
	ldr	r3, [r3]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #12]
	cmp	r2, r3
	beq	.L744
	ldr	r3, .L746+4
	ldr	r3, [r3]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-24]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-20]
	sub	r3, fp, #20
	mov	r2, r3
	mov	r1, #186
	ldr	r0, [fp, #-24]
	bl	tok_str_add2
.L744:
	ldr	r3, .L746+8
	ldr	r3, [r3]
	ldr	r2, .L746+12
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	tok_str_add2
	nop
	ldr	r3, .L746
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L745
	bl	__stack_chk_fail
.L745:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L747:
	.align	2
.L746:
	.word	.LC38
	.word	file
	.word	tok
	.word	tokc
	.size	tok_str_add_tok, .-tok_str_add_tok
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	define_push, %function
define_push:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-20]
	ldr	r1, [fp, #-16]
	ldr	r0, .L749
	bl	sym_push2
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-28]
	str	r2, [r3, #20]
	ldr	r3, .L749+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1073741824
	sub	r3, r3, #256
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #4]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L750:
	.align	2
.L749:
	.word	define_stack
	.word	table_ident
	.size	define_push, .-define_push
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	define_undef, %function
define_undef:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #255
	ble	.L752
	ldr	r3, .L753
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	bge	.L752
	ldr	r3, .L753+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1073741824
	sub	r3, r3, #256
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, #0
	str	r2, [r3, #4]
.L752:
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L754:
	.align	2
.L753:
	.word	tok_ident
	.word	table_ident
	.size	define_undef, .-define_undef
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	define_find, %function
define_find:
	@ 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]
	sub	r3, r3, #256
	str	r3, [fp, #-8]
	ldr	r3, .L758
	ldr	r3, [r3]
	sub	r3, r3, #256
	mov	r2, r3
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	bhi	.L756
	mov	r3, #0
	b	.L757
.L756:
	ldr	r3, .L758+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
.L757:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L759:
	.align	2
.L758:
	.word	tok_ident
	.word	table_ident
	.size	define_find, .-define_find
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	free_defines, %function
free_defines:
	@ 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, .L765
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	b	.L761
.L764:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #24]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	beq	.L762
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	mov	r0, r3
	bl	tok_str_free
.L762:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #255
	ble	.L763
	ldr	r3, .L765+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	bge	.L763
	ldr	r3, .L765+8
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1073741824
	sub	r3, r3, #256
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, #0
	str	r2, [r3, #4]
.L763:
	ldr	r0, [fp, #-16]
	bl	sym_free
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-16]
.L761:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	bne	.L764
	ldr	r2, .L765
	ldr	r3, [fp, #-24]
	str	r3, [r2]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L766:
	.align	2
.L765:
	.word	define_stack
	.word	tok_ident
	.word	table_ident
	.size	free_defines, .-free_defines
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	label_find, %function
label_find:
	@ 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]
	sub	r3, r3, #256
	str	r3, [fp, #-8]
	ldr	r3, .L770
	ldr	r3, [r3]
	sub	r3, r3, #256
	mov	r2, r3
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	bhi	.L768
	mov	r3, #0
	b	.L769
.L768:
	ldr	r3, .L770+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #8]
.L769:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L771:
	.align	2
.L770:
	.word	tok_ident
	.word	table_ident
	.size	label_find, .-label_find
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	label_push, %function
label_push:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	mov	r3, #0
	mov	r2, #0
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	sym_push2
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-24]
	str	r2, [r3, #4]
	ldr	r3, .L777
	ldr	r2, [r3]
	ldr	r3, [fp, #-20]
	add	r3, r3, #1073741824
	sub	r3, r3, #256
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	add	r3, r3, #8
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	ldr	r2, .L777+4
	cmp	r3, r2
	bne	.L773
	b	.L774
.L775:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	add	r3, r3, #28
	str	r3, [fp, #-12]
.L774:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L775
.L773:
	ldr	r3, [fp, #-12]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L778:
	.align	2
.L777:
	.word	table_ident
	.word	global_label_stack
	.size	label_push, .-label_push
	.section	.rodata
	.align	2
.LC39:
	.ascii	"label '%s' declared but not used\000"
	.align	2
.LC40:
	.ascii	"label '%s' used but not defined\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	label_pop, %function
label_pop:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	b	.L780
.L784:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #24]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #4]
	cmp	r3, #2
	bne	.L781
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	mov	r1, #0
	mov	r0, r3
	bl	get_tok_str
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L785
	bl	warning
	b	.L782
.L781:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #4]
	cmp	r3, #1
	bne	.L783
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	mov	r1, #0
	mov	r0, r3
	bl	get_tok_str
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L785+4
	bl	error
	b	.L782
.L783:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	beq	.L782
	ldr	r3, .L785+8
	ldr	r1, [r3]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #20]
	mov	r2, r3
	mov	r3, #1
	ldr	r0, [fp, #-12]
	bl	put_extern_sym
.L782:
	ldr	r3, .L785+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	add	r3, r3, #1073741824
	sub	r3, r3, #256
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	ldr	r2, [r2, #28]
	str	r2, [r3, #8]
	ldr	r0, [fp, #-12]
	bl	sym_free
	ldr	r3, [fp, #-8]
	str	r3, [fp, #-12]
.L780:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	bne	.L784
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L786:
	.align	2
.L785:
	.word	.LC39
	.word	.LC40
	.word	cur_text_section
	.word	table_ident
	.size	label_pop, .-label_pop
	.section	.rodata
	.align	2
.LC41:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	expr_preprocess, %function
expr_preprocess:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	ldr	r3, .L797
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #24
	mov	r0, r3
	bl	tok_str_new
	b	.L788
.L794:
	bl	next
	ldr	r3, .L797+4
	ldr	r3, [r3]
	cmp	r3, #320
	bne	.L789
	bl	next_nomacro
	ldr	r3, .L797+4
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	cmp	r3, #40
	bne	.L790
	bl	next_nomacro
.L790:
	ldr	r3, .L797+4
	ldr	r3, [r3]
	mov	r0, r3
	bl	define_find
	mov	r3, r0
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-32]
	cmp	r3, #40
	bne	.L791
	bl	next_nomacro
.L791:
	ldr	r3, .L797+4
	mov	r2, #179
	str	r2, [r3]
	ldr	r2, .L797+8
	ldr	r3, [fp, #-28]
	str	r3, [r2]
	b	.L792
.L789:
	ldr	r3, .L797+4
	ldr	r3, [r3]
	cmp	r3, #255
	ble	.L792
	ldr	r3, .L797+4
	mov	r2, #179
	str	r2, [r3]
	ldr	r3, .L797+8
	mov	r2, #0
	str	r2, [r3]
.L792:
	sub	r3, fp, #24
	mov	r0, r3
	bl	tok_str_add_tok
.L788:
	ldr	r3, .L797+4
	ldr	r3, [r3]
	cmp	r3, #10
	beq	.L793
	ldr	r3, .L797+4
	ldr	r3, [r3]
	cmn	r3, #1
	bne	.L794
.L793:
	sub	r3, fp, #24
	mvn	r1, #0
	mov	r0, r3
	bl	tok_str_add
	sub	r3, fp, #24
	mov	r1, #0
	mov	r0, r3
	bl	tok_str_add
	ldr	r3, [fp, #-24]
	ldr	r2, .L797+12
	str	r3, [r2]
	bl	next
	bl	expr_const
	str	r0, [fp, #-28]
	ldr	r3, .L797+12
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-24]
	mov	r0, r3
	bl	tok_str_free
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	ldr	r2, .L797
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L796
	bl	__stack_chk_fail
.L796:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L798:
	.align	2
.L797:
	.word	.LC41
	.word	tok
	.word	tokc
	.word	macro_ptr
	.size	expr_preprocess, .-expr_preprocess
	.section	.rodata
	.align	2
.LC42:
	.ascii	"invalid macro name '%s'\000"
	.align	2
.LC43:
	.ascii	"badly punctuated parameter list\000"
	.align	2
.LC44:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	parse_define, %function
parse_define:
	@ args = 0, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #56
	ldr	r3, .L815
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L815+4
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	cmp	r3, #255
	bgt	.L800
	ldr	r3, .L815+4
	ldr	r3, [r3]
	ldr	r1, .L815+8
	mov	r0, r3
	bl	get_tok_str
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L815+12
	bl	error
.L800:
	mov	r3, #0
	str	r3, [fp, #-56]
	mov	r3, #0
	str	r3, [fp, #-48]
	ldr	r3, .L815+16
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	cmp	r3, #92
	bne	.L801
	ldr	r3, .L815+16
	ldr	r3, [r3]
	ldr	r3, [r3]
	mov	r0, r3
	bl	handle_stray1
	str	r0, [fp, #-36]
.L801:
	ldr	r3, [fp, #-36]
	cmp	r3, #40
	bne	.L802
	bl	next_nomacro
	bl	next_nomacro
	sub	r3, fp, #56
	str	r3, [fp, #-52]
	b	.L803
.L809:
	ldr	r3, .L815+4
	ldr	r3, [r3]
	str	r3, [fp, #-44]
	bl	next_nomacro
	mov	r3, #0
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-44]
	cmp	r3, #204
	bne	.L804
	ldr	r3, .L815+20
	str	r3, [fp, #-44]
	mov	r3, #1
	str	r3, [fp, #-40]
	b	.L805
.L804:
	ldr	r3, .L815+4
	ldr	r3, [r3]
	cmp	r3, #204
	bne	.L805
	ldr	r3, .L815+24
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L805
	mov	r3, #1
	str	r3, [fp, #-40]
	bl	next_nomacro
.L805:
	ldr	r3, [fp, #-44]
	cmp	r3, #255
	bgt	.L806
	ldr	r0, .L815+28
	bl	error
.L806:
	ldr	r3, [fp, #-44]
	orr	r1, r3, #536870912
	mov	r3, #0
	ldr	r2, [fp, #-40]
	ldr	r0, .L815+32
	bl	sym_push2
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-52]
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-28]
	add	r3, r3, #20
	str	r3, [fp, #-52]
	ldr	r3, .L815+4
	ldr	r3, [r3]
	cmp	r3, #44
	bne	.L814
	bl	next_nomacro
.L803:
	ldr	r3, .L815+4
	ldr	r3, [r3]
	cmp	r3, #41
	bne	.L809
	b	.L808
.L814:
	nop
.L808:
	mov	r3, #1
	str	r3, [fp, #-48]
.L802:
	sub	r3, fp, #24
	mov	r0, r3
	bl	tok_str_new
	bl	next_nomacro
	b	.L810
.L812:
	ldr	r3, .L815+4
	ldr	r1, [r3]
	sub	r3, fp, #24
	ldr	r2, .L815+8
	mov	r0, r3
	bl	tok_str_add2
	bl	next_nomacro
.L810:
	ldr	r3, .L815+4
	ldr	r3, [r3]
	cmp	r3, #10
	beq	.L811
	ldr	r3, .L815+4
	ldr	r3, [r3]
	cmn	r3, #1
	bne	.L812
.L811:
	sub	r3, fp, #24
	mov	r1, #0
	mov	r0, r3
	bl	tok_str_add
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-56]
	ldr	r1, [fp, #-48]
	ldr	r0, [fp, #-32]
	bl	define_push
	nop
	ldr	r3, .L815
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L813
	bl	__stack_chk_fail
.L813:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L816:
	.align	2
.L815:
	.word	.LC44
	.word	tok
	.word	tokc
	.word	.LC42
	.word	file
	.word	331
	.word	gnu_ext
	.word	.LC43
	.word	define_stack
	.size	parse_define, .-parse_define
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	hash_cached_include, %function
hash_cached_include:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	mov	r3, #1
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #5
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, r3, r2
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-12]
	b	.L818
.L819:
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #5
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	ldr	r2, [fp, #-12]
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L818:
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L819
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #23
	lsr	r3, r3, #23
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	hash_cached_include, .-hash_cached_include
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	search_cached_include, %function
search_cached_include:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-28]
	bl	hash_cached_include
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-12]
	add	r2, r2, #238
	ldr	r3, [r3, r2, lsl #2]
	str	r3, [fp, #-16]
.L826:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L828
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #28]
	ldr	r3, [fp, #-16]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #8]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-28]
	cmp	r3, r2
	bne	.L824
	ldr	r3, [fp, #-8]
	add	r3, r3, #9
	ldr	r1, [fp, #-32]
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L824
	ldr	r3, [fp, #-8]
	b	.L825
.L824:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-16]
	b	.L826
.L828:
	nop
	mov	r3, #0
.L825:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	search_cached_include, .-search_cached_include
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	add_cached_include, %function
add_cached_include:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	search_cached_include
	mov	r3, r0
	cmp	r3, #0
	bne	.L833
	ldr	r0, [fp, #-24]
	bl	strlen
	mov	r3, r0
	add	r3, r3, #12
	mov	r0, r3
	bl	tcc_malloc
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L834
	ldr	r3, [fp, #-20]
	and	r2, r3, #255
	ldr	r3, [fp, #-12]
	strb	r2, [r3, #8]
	ldr	r3, [fp, #-12]
	add	r3, r3, #9
	ldr	r1, [fp, #-24]
	mov	r0, r3
	bl	strcpy
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r0, r3, #28
	ldr	r3, [fp, #-16]
	add	r3, r3, #32
	ldr	r2, [fp, #-12]
	mov	r1, r3
	bl	dynarray_add
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-20]
	bl	hash_cached_include
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	add	r2, r2, #238
	ldr	r2, [r3, r2, lsl #2]
	ldr	r3, [fp, #-12]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r1, [r3, #32]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	add	r2, r2, #238
	str	r1, [r3, r2, lsl #2]
	b	.L829
.L833:
	nop
	b	.L829
.L834:
	nop
.L829:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	add_cached_include, .-add_cached_include
	.section	.rodata
	.align	2
.LC45:
	.ascii	"out of pack stack\000"
	.align	2
.LC46:
	.ascii	"invalid pack pragma\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	pragma_parse, %function
pragma_parse:
	@ 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]
	bl	next
	ldr	r3, .L850
	ldr	r3, [r3]
	ldr	r2, .L850+4
	cmp	r3, r2
	bne	.L847
	bl	next
	mov	r0, #40
	bl	skip
	ldr	r3, .L850
	ldr	r3, [r3]
	ldr	r2, .L850+8
	cmp	r3, r2
	bne	.L837
	bl	next
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #3032]
	ldr	r3, [fp, #-16]
	add	r3, r3, #2992
	add	r3, r3, #8
	cmp	r2, r3
	bhi	.L838
	nop
	b	.L839
.L848:
	nop
.L839:
	ldr	r0, .L850+12
	bl	error
.L838:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #3032]
	sub	r2, r3, #4
	ldr	r3, [fp, #-16]
	str	r2, [r3, #3032]
	b	.L847
.L837:
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, .L850
	ldr	r3, [r3]
	cmp	r3, #41
	beq	.L840
	ldr	r3, .L850
	ldr	r3, [r3]
	ldr	r2, .L850+16
	cmp	r3, r2
	bne	.L841
	bl	next
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #3032]
	ldr	r3, [fp, #-16]
	add	r3, r3, #2992
	add	r3, r3, #8
	add	r3, r3, #28
	cmp	r2, r3
	bcs	.L848
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #3032]
	add	r2, r3, #4
	ldr	r3, [fp, #-16]
	str	r2, [r3, #3032]
	mov	r0, #44
	bl	skip
.L841:
	ldr	r3, .L850
	ldr	r3, [r3]
	cmp	r3, #179
	beq	.L843
	nop
	b	.L844
.L849:
	nop
.L844:
	ldr	r0, .L850+20
	bl	error
.L843:
	ldr	r3, .L850+24
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	ble	.L849
	ldr	r3, [fp, #-8]
	cmp	r3, #16
	bgt	.L849
	ldr	r3, [fp, #-8]
	sub	r2, r3, #1
	ldr	r3, [fp, #-8]
	and	r3, r3, r2
	cmp	r3, #0
	bne	.L849
	bl	next
.L840:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #3032]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	mov	r0, #41
	bl	skip
.L847:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L851:
	.align	2
.L850:
	.word	tok
	.word	354
	.word	601
	.word	.LC45
	.word	598
	.word	.LC46
	.word	tokc
	.size	pragma_parse, .-pragma_parse
	.section	.rodata
	.align	2
.LC47:
	.ascii	"'#include' expects \"FILENAME\" or <FILENAME>\000"
	.align	2
.LC48:
	.ascii	"#include recursion too deep\000"
	.align	2
.LC49:
	.ascii	"/\000"
	.align	2
.LC50:
	.ascii	"include file '%s' not found\000"
	.align	2
.LC51:
	.ascii	"n\000"
	.align	2
.LC52:
	.ascii	"\000"
	.align	2
.LC53:
	.ascii	"invalid argument for '#if%sdef'\000"
	.align	2
.LC54:
	.ascii	"#else without matching #if\000"
	.align	2
.LC55:
	.ascii	"#else after #else\000"
	.align	2
.LC56:
	.ascii	"#elif without matching #if\000"
	.align	2
.LC57:
	.ascii	"#elif after #else\000"
	.align	2
.LC58:
	.ascii	"#endif without matching #if\000"
	.align	2
.LC59:
	.ascii	"#line\000"
	.align	2
.LC60:
	.ascii	"#error %s\000"
	.align	2
.LC61:
	.ascii	"#warning %s\000"
	.align	2
.LC62:
	.ascii	"invalid preprocessing directive #%s\000"
	.align	2
.LC63:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	preprocess, %function
preprocess:
	@ args = 0, pretend = 0, frame = 2112
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #2112
	sub	sp, sp, #8
	str	r0, [fp, #-2112]
	ldr	r3, .L945
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L945+4
	ldr	r3, [r3]
	str	r3, [fp, #-2084]
	ldr	r3, .L945+8
	ldr	r3, [r3]
	str	r3, [fp, #-2080]
	ldr	r3, .L945+8
	mov	r2, #7
	str	r2, [r3]
	bl	next_nomacro
.L853:
	ldr	r3, .L945+12
	ldr	r3, [r3]
	sub	r3, r3, #256
	sub	r3, r3, #3
	cmp	r3, #66
	ldrls	pc, [pc, r3, asl #2]
	b	.L854
.L856:
	.word	.L867
	.word	.L866
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L854
	.word	.L865
	.word	.L864
	.word	.L864
	.word	.L863
	.word	.L862
	.word	.L861
	.word	.L860
	.word	.L854
	.word	.L859
	.word	.L858
	.word	.L858
	.word	.L857
	.word	.L855
.L865:
	bl	next_nomacro
	bl	parse_define
	b	.L868
.L859:
	bl	next_nomacro
	ldr	r3, .L945+12
	ldr	r3, [r3]
	mov	r0, r3
	bl	define_find
	str	r0, [fp, #-2076]
	ldr	r3, [fp, #-2076]
	cmp	r3, #0
	beq	.L936
	ldr	r0, [fp, #-2076]
	bl	define_undef
	b	.L936
.L864:
	ldr	r3, .L945+16
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L945+20
	str	r2, [r3]
	bl	skip_spaces
	ldr	r3, .L945+20
	ldr	r3, [r3]
	cmp	r3, #60
	bne	.L870
	mov	r3, #62
	str	r3, [fp, #-2100]
	b	.L871
.L870:
	ldr	r3, .L945+20
	ldr	r3, [r3]
	cmp	r3, #34
	bne	.L872
	ldr	r3, .L945+20
	ldr	r3, [r3]
	str	r3, [fp, #-2100]
.L871:
	bl	minp
	sub	r3, fp, #2048
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-2096]
	b	.L873
.L876:
	sub	r3, fp, #2048
	sub	r3, r3, #4
	sub	r3, r3, #4
	ldr	r2, [fp, #-2096]
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, .L945+24
	cmp	r2, r3
	bhi	.L874
	ldr	r3, .L945+20
	ldr	r2, [r3]
	ldr	r3, [fp, #-2096]
	add	r1, r3, #1
	str	r1, [fp, #-2096]
	and	r2, r2, #255
	strb	r2, [r3]
.L874:
	bl	minp
.L873:
	ldr	r3, .L945+20
	ldr	r3, [r3]
	ldr	r2, [fp, #-2100]
	cmp	r2, r3
	beq	.L875
	ldr	r3, .L945+20
	ldr	r3, [r3]
	cmp	r3, #10
	beq	.L875
	ldr	r3, .L945+20
	ldr	r3, [r3]
	cmn	r3, #1
	bne	.L876
.L875:
	ldr	r3, [fp, #-2096]
	mov	r2, #0
	strb	r2, [r3]
	bl	minp
	b	.L877
.L872:
	bl	next
	mov	r3, #0
	strb	r3, [fp, #-2056]
	ldr	r3, .L945+12
	ldr	r3, [r3]
	cmp	r3, #181
	bne	.L883
	b	.L879
.L882:
	ldr	r3, .L945+12
	ldr	r3, [r3]
	cmp	r3, #181
	beq	.L880
	nop
	b	.L881
.L937:
	nop
.L881:
	ldr	r0, .L945+28
	bl	error
.L880:
	ldr	r3, .L945+32
	ldr	r3, [r3]
	ldr	r2, [r3, #4]
	sub	r3, fp, #2048
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r1, #1024
	mov	r0, r3
	bl	pstrcat
	bl	next
.L879:
	ldr	r3, .L945+12
	ldr	r3, [r3]
	cmp	r3, #10
	bne	.L882
	mov	r3, #34
	str	r3, [fp, #-2100]
	b	.L877
.L884:
	ldr	r3, .L945+12
	ldr	r3, [r3]
	ldr	r1, .L945+32
	mov	r0, r3
	bl	get_tok_str
	mov	r2, r0
	sub	r3, fp, #2048
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r1, #1024
	mov	r0, r3
	bl	pstrcat
	bl	next
.L883:
	ldr	r3, .L945+12
	ldr	r3, [r3]
	cmp	r3, #10
	bne	.L884
	sub	r3, fp, #2048
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	str	r3, [fp, #-2072]
	ldr	r3, [fp, #-2072]
	cmp	r3, #1
	ble	.L937
	ldrb	r3, [fp, #-2056]	@ zero_extendqisi2
	cmp	r3, #60
	bne	.L937
	ldr	r3, [fp, #-2072]
	sub	r3, r3, #1
	sub	r2, fp, #4
	add	r3, r2, r3
	ldrb	r3, [r3, #-2052]	@ zero_extendqisi2
	cmp	r3, #62
	bne	.L937
	sub	r3, fp, #2048
	sub	r3, r3, #4
	sub	r3, r3, #4
	add	r3, r3, #1
	ldr	r2, [fp, #-2072]
	sub	r2, r2, #2
	sub	r0, fp, #2048
	sub	r0, r0, #4
	sub	r0, r0, #4
	mov	r1, r3
	bl	memmove
	ldr	r3, [fp, #-2072]
	sub	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3, #-2052]
	mov	r3, #62
	str	r3, [fp, #-2100]
.L877:
	sub	r3, fp, #2048
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r2, r3
	ldr	r1, [fp, #-2100]
	ldr	r0, [fp, #-2084]
	bl	search_cached_include
	str	r0, [fp, #-2068]
	ldr	r3, [fp, #-2068]
	cmp	r3, #0
	beq	.L887
	ldr	r3, [fp, #-2068]
	ldr	r3, [r3]
	mov	r0, r3
	bl	define_find
	mov	r3, r0
	cmp	r3, #0
	bne	.L935
.L887:
	ldr	r3, [fp, #-2100]
	cmp	r3, #34
	bne	.L889
	mov	r3, #0
	str	r3, [fp, #-2108]
	ldr	r3, .L945+16
	ldr	r3, [r3]
	add	r3, r3, #540
	add	r3, r3, #1
	mov	r1, #47
	mov	r0, r3
	bl	strrchr
	str	r0, [fp, #-2064]
	ldr	r3, [fp, #-2064]
	cmp	r3, #0
	beq	.L890
	ldr	r3, [fp, #-2064]
	add	r2, r3, #1
	ldr	r3, .L945+16
	ldr	r3, [r3]
	add	r3, r3, #540
	add	r3, r3, #1
	sub	r3, r2, r3
	str	r3, [fp, #-2108]
.L890:
	ldr	r3, [fp, #-2108]
	cmp	r3, #1024
	bcc	.L891
	ldr	r3, .L945+36
	str	r3, [fp, #-2108]
.L891:
	ldr	r3, .L945+16
	ldr	r3, [r3]
	add	r1, r3, #540
	add	r1, r1, #1
	ldr	r2, [fp, #-2108]
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r0, r3
	bl	memcpy
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	ldr	r2, [fp, #-2108]
	add	r3, r3, r2
	mov	r2, #0
	strb	r2, [r3]
	sub	r2, fp, #2048
	sub	r2, r2, #4
	sub	r2, r2, #4
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r1, #1024
	mov	r0, r3
	bl	pstrcat
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r1, r3
	ldr	r0, [fp, #-2084]
	bl	tcc_open
	str	r0, [fp, #-2092]
	ldr	r3, [fp, #-2092]
	cmp	r3, #0
	beq	.L889
	ldr	r3, .L945+12
	ldr	r3, [r3]
	ldr	r2, .L945+40
	cmp	r3, r2
	bne	.L938
	ldr	r3, .L945+12
	ldr	r2, .L945+44
	str	r2, [r3]
.L889:
	ldr	r3, [fp, #-2084]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2084]
	add	r3, r3, #568
	add	r3, r3, #128
	cmp	r2, r3
	bcc	.L894
	ldr	r0, .L945+48
	bl	error
.L894:
	ldr	r3, [fp, #-2084]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-2084]
	ldr	r3, [r3, #24]
	add	r3, r2, r3
	str	r3, [fp, #-2060]
	mov	r3, #0
	str	r3, [fp, #-2104]
	b	.L895
.L900:
	ldr	r3, [fp, #-2084]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-2104]
	cmp	r2, r3
	bge	.L896
	ldr	r3, [fp, #-2084]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-2104]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-2088]
	b	.L897
.L896:
	ldr	r3, [fp, #-2084]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-2084]
	ldr	r3, [r3, #16]
	ldr	r1, [fp, #-2104]
	sub	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-2088]
.L897:
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	ldr	r2, [fp, #-2088]
	mov	r1, #1024
	mov	r0, r3
	bl	pstrcpy
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	ldr	r2, .L945+52
	mov	r1, #1024
	mov	r0, r3
	bl	pstrcat
	sub	r2, fp, #2048
	sub	r2, r2, #4
	sub	r2, r2, #4
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r1, #1024
	mov	r0, r3
	bl	pstrcat
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r1, r3
	ldr	r0, [fp, #-2084]
	bl	tcc_open
	str	r0, [fp, #-2092]
	ldr	r3, [fp, #-2092]
	cmp	r3, #0
	beq	.L898
	ldr	r3, .L945+12
	ldr	r3, [r3]
	ldr	r2, .L945+40
	cmp	r3, r2
	bne	.L939
	ldr	r3, .L945+12
	ldr	r2, .L945+44
	str	r2, [r3]
.L898:
	ldr	r3, [fp, #-2104]
	add	r3, r3, #1
	str	r3, [fp, #-2104]
.L895:
	ldr	r2, [fp, #-2104]
	ldr	r3, [fp, #-2060]
	cmp	r2, r3
	blt	.L900
	sub	r3, fp, #2048
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r1, r3
	ldr	r0, .L945+56
	bl	error
	mov	r3, #0
	str	r3, [fp, #-2092]
	b	.L893
.L938:
	nop
	b	.L893
.L939:
	nop
.L893:
	ldr	r3, [fp, #-2100]
	and	r2, r3, #255
	ldr	r3, [fp, #-2092]
	strb	r2, [r3, #28]
	ldr	r3, [fp, #-2092]
	add	r0, r3, #29
	sub	r3, fp, #2048
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r2, r3
	mov	r1, #512
	bl	pstrcpy
	ldr	r3, [fp, #-2084]
	ldr	r3, [r3, #4]
	add	r1, r3, #4
	ldr	r2, [fp, #-2084]
	str	r1, [r2, #4]
	ldr	r2, .L945+16
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r2, .L945+16
	ldr	r3, [fp, #-2092]
	str	r3, [r2]
	ldr	r3, .L945+60
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L901
	ldr	r3, .L945+16
	ldr	r3, [r3]
	add	r0, r3, #540
	add	r0, r0, #1
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #0
	mov	r1, #130
	bl	put_stabs
.L901:
	ldr	r3, .L945+64
	ldr	r3, [r3]
	orr	r3, r3, #3
	ldr	r2, .L945+64
	str	r3, [r2]
	ldr	r3, .L945+16
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L945+20
	str	r2, [r3]
	b	.L902
.L935:
	b	.L868
.L862:
	mov	r3, #1
	str	r3, [fp, #-2100]
	b	.L903
.L867:
	bl	expr_preprocess
	str	r0, [fp, #-2100]
	b	.L904
.L863:
	mov	r3, #0
	str	r3, [fp, #-2100]
.L903:
	bl	next_nomacro
	ldr	r3, .L945+12
	ldr	r3, [r3]
	cmp	r3, #255
	bgt	.L905
	ldr	r3, [fp, #-2100]
	cmp	r3, #0
	beq	.L906
	ldr	r3, .L945+68
	b	.L907
.L906:
	ldr	r3, .L945+72
.L907:
	mov	r1, r3
	ldr	r0, .L945+76
	bl	error
.L905:
	ldr	r3, [fp, #-2112]
	cmp	r3, #0
	beq	.L908
	ldr	r3, [fp, #-2100]
	cmp	r3, #0
	beq	.L908
	ldr	r3, .L945+16
	ldr	r3, [r3]
	ldr	r2, .L945+12
	ldr	r2, [r2]
	str	r2, [r3, #16]
.L908:
	ldr	r3, .L945+12
	ldr	r3, [r3]
	mov	r0, r3
	bl	define_find
	mov	r3, r0
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-2100]
	eor	r3, r3, r2
	str	r3, [fp, #-2100]
.L904:
	ldr	r3, [fp, #-2084]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-2084]
	add	r3, r3, #696
	add	r3, r3, #256
	cmp	r2, r3
	bcc	.L909
	ldr	r0, .L945+80
	bl	error
.L909:
	ldr	r3, [fp, #-2084]
	ldr	r3, [r3, #8]
	add	r1, r3, #4
	ldr	r2, [fp, #-2084]
	str	r1, [r2, #8]
	ldr	r2, [fp, #-2100]
	str	r2, [r3]
	b	.L910
.L866:
	ldr	r3, [fp, #-2084]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-2084]
	add	r3, r3, #696
	cmp	r2, r3
	bne	.L911
	ldr	r0, .L945+84
	bl	error
.L911:
	ldr	r3, [fp, #-2084]
	ldr	r3, [r3, #8]
	sub	r3, r3, #4
	ldr	r3, [r3]
	and	r3, r3, #2
	cmp	r3, #0
	beq	.L912
	ldr	r0, .L945+88
	bl	error
.L912:
	ldr	r3, [fp, #-2084]
	ldr	r3, [r3, #8]
	sub	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-2084]
	ldr	r3, [r3, #8]
	sub	r3, r3, #4
	eor	r2, r2, #3
	str	r2, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-2100]
	b	.L910
.L861:
	ldr	r3, [fp, #-2084]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-2084]
	add	r3, r3, #696
	cmp	r2, r3
	bne	.L913
	ldr	r0, .L945+92
	bl	error
.L913:
	ldr	r3, [fp, #-2084]
	ldr	r3, [r3, #8]
	ldr	r3, [r3, #-4]
	str	r3, [fp, #-2100]
	ldr	r3, [fp, #-2100]
	cmp	r3, #1
	ble	.L914
	ldr	r0, .L945+96
	bl	error
.L914:
	ldr	r3, [fp, #-2100]
	cmp	r3, #1
	beq	.L940
	bl	expr_preprocess
	str	r0, [fp, #-2100]
	ldr	r3, [fp, #-2084]
	ldr	r3, [r3, #8]
	sub	r3, r3, #4
	ldr	r2, [fp, #-2100]
	str	r2, [r3]
.L910:
	ldr	r3, [fp, #-2100]
	and	r3, r3, #1
	cmp	r3, #0
	bne	.L941
	b	.L916
.L940:
	nop
.L916:
	bl	preprocess_skip
	mov	r3, #0
	str	r3, [fp, #-2112]
	b	.L853
.L860:
	ldr	r3, [fp, #-2084]
	ldr	r2, [r3, #8]
	ldr	r3, .L945+16
	ldr	r3, [r3]
	ldr	r3, [r3, #24]
	cmp	r2, r3
	bhi	.L918
	ldr	r0, .L945+100
	bl	error
.L918:
	ldr	r3, [fp, #-2084]
	ldr	r3, [r3, #8]
	sub	r2, r3, #4
	ldr	r3, [fp, #-2084]
	str	r2, [r3, #8]
	ldr	r3, .L945+16
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	beq	.L942
	ldr	r3, [fp, #-2084]
	ldr	r2, [r3, #8]
	ldr	r3, .L945+16
	ldr	r3, [r3]
	ldr	r3, [r3, #24]
	cmp	r2, r3
	bne	.L942
	ldr	r3, .L945+16
	ldr	r2, [r3]
	ldr	r3, .L945+16
	ldr	r3, [r3]
	ldr	r2, [r2, #16]
	str	r2, [r3, #20]
	ldr	r3, .L945+16
	ldr	r3, [r3]
	mov	r2, #0
	str	r2, [r3, #16]
	b	.L920
.L921:
	bl	next_nomacro
.L920:
	ldr	r3, .L945+12
	ldr	r3, [r3]
	cmp	r3, #10
	bne	.L921
	ldr	r3, .L945+64
	ldr	r3, [r3]
	orr	r3, r3, #4
	ldr	r2, .L945+64
	str	r3, [r2]
	b	.L902
.L857:
	bl	next
	ldr	r3, .L945+12
	ldr	r3, [r3]
	cmp	r3, #179
	beq	.L922
	ldr	r0, .L945+104
	bl	error
.L922:
	ldr	r3, .L945+32
	ldr	r2, [r3]
	ldr	r3, .L945+16
	ldr	r3, [r3]
	sub	r2, r2, #1
	str	r2, [r3, #12]
	bl	next
	ldr	r3, .L945+12
	ldr	r3, [r3]
	cmp	r3, #10
	beq	.L943
	ldr	r3, .L945+12
	ldr	r3, [r3]
	cmp	r3, #181
	beq	.L924
	ldr	r0, .L945+104
	bl	error
.L924:
	ldr	r3, .L945+16
	ldr	r3, [r3]
	add	r3, r3, #540
	add	r3, r3, #1
	ldr	r2, .L945+32
	ldr	r2, [r2]
	ldr	r2, [r2, #4]
	mov	r1, #1024
	mov	r0, r3
	bl	pstrcpy
	b	.L943
.L858:
	ldr	r3, .L945+12
	ldr	r3, [r3]
	str	r3, [fp, #-2100]
	ldr	r3, .L945+16
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L945+20
	str	r2, [r3]
	bl	skip_spaces
	sub	r3, fp, #2048
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-2096]
	b	.L925
.L928:
	sub	r3, fp, #2048
	sub	r3, r3, #4
	sub	r3, r3, #4
	ldr	r2, [fp, #-2096]
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, .L945+24
	cmp	r2, r3
	bhi	.L926
	ldr	r3, .L945+20
	ldr	r2, [r3]
	ldr	r3, [fp, #-2096]
	add	r1, r3, #1
	str	r1, [fp, #-2096]
	and	r2, r2, #255
	strb	r2, [r3]
.L926:
	bl	minp
.L925:
	ldr	r3, .L945+20
	ldr	r3, [r3]
	cmp	r3, #10
	beq	.L927
	ldr	r3, .L945+20
	ldr	r3, [r3]
	cmn	r3, #1
	bne	.L928
.L927:
	ldr	r3, [fp, #-2096]
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-2100]
	ldr	r2, .L945+108
	cmp	r3, r2
	bne	.L929
	sub	r3, fp, #2048
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r1, r3
	ldr	r0, .L945+112
	bl	error
	b	.L868
.L929:
	sub	r3, fp, #2048
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r1, r3
	ldr	r0, .L945+116
	bl	warning
	b	.L868
.L855:
	ldr	r0, [fp, #-2084]
	bl	pragma_parse
	b	.L868
.L854:
	ldr	r3, .L945+12
	ldr	r3, [r3]
	cmp	r3, #10
	beq	.L944
	ldr	r3, .L945+12
	ldr	r3, [r3]
	cmp	r3, #33
	beq	.L944
	ldr	r3, .L945+12
	ldr	r3, [r3]
	cmp	r3, #179
	beq	.L944
	ldr	r3, [fp, #-2080]
	and	r3, r3, #8
	cmp	r3, #0
	bne	.L944
	ldr	r3, .L945+12
	ldr	r3, [r3]
	ldr	r1, .L945+32
	mov	r0, r3
	bl	get_tok_str
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L945+120
	bl	error
	b	.L944
.L936:
	nop
	b	.L932
.L941:
	nop
	b	.L932
.L942:
	nop
	b	.L932
.L943:
	nop
	b	.L932
.L944:
	nop
.L868:
	b	.L932
.L933:
	bl	next_nomacro
.L932:
	ldr	r3, .L945+12
	ldr	r3, [r3]
	cmp	r3, #10
	bne	.L933
	nop
.L902:
	ldr	r2, .L945+8
	ldr	r3, [fp, #-2080]
	str	r3, [r2]
	nop
	ldr	r3, .L945
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L934
	bl	__stack_chk_fail
.L934:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L946:
	.align	2
.L945:
	.word	.LC63
	.word	tcc_state
	.word	parse_flags
	.word	tok
	.word	file
	.word	ch
	.word	1022
	.word	.LC47
	.word	tokc
	.word	1023
	.word	315
	.word	314
	.word	.LC48
	.word	.LC49
	.word	.LC50
	.word	do_debug
	.word	tok_flags
	.word	.LC51
	.word	.LC52
	.word	.LC53
	.word	.LC10
	.word	.LC54
	.word	.LC55
	.word	.LC56
	.word	.LC57
	.word	.LC58
	.word	.LC59
	.word	322
	.word	.LC60
	.word	.LC61
	.word	.LC62
	.size	preprocess, .-preprocess
	.section	.rodata
	.align	2
.LC64:
	.ascii	"unknown escape sequence: '\\%c'\000"
	.align	2
.LC65:
	.ascii	"unknown escape sequence: '\\x%x'\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	parse_escape_string, %function
parse_escape_string:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-8]
.L977:
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L981
	ldr	r3, [fp, #-16]
	cmp	r3, #92
	bne	.L982
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	sub	r3, r3, #34
	cmp	r3, #86
	ldrls	pc, [pc, r3, asl #2]
	b	.L951
.L953:
	.word	.L983
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L983
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L963
	.word	.L963
	.word	.L963
	.word	.L963
	.word	.L963
	.word	.L963
	.word	.L963
	.word	.L963
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L983
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L983
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L961
	.word	.L960
	.word	.L951
	.word	.L951
	.word	.L959
	.word	.L958
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L957
	.word	.L951
	.word	.L951
	.word	.L951
	.word	.L956
	.word	.L951
	.word	.L955
	.word	.L951
	.word	.L954
	.word	.L951
	.word	.L952
.L963:
	ldr	r3, [fp, #-16]
	sub	r3, r3, #48
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	isoct
	mov	r3, r0
	cmp	r3, #0
	beq	.L964
	ldr	r3, [fp, #-12]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	sub	r3, r3, #48
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	isoct
	mov	r3, r0
	cmp	r3, #0
	beq	.L964
	ldr	r3, [fp, #-12]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	sub	r3, r3, #48
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L964:
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-16]
	b	.L965
.L952:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-12]
.L971:
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #96
	ble	.L966
	ldr	r3, [fp, #-16]
	cmp	r3, #102
	bgt	.L966
	ldr	r3, [fp, #-16]
	sub	r3, r3, #87
	str	r3, [fp, #-16]
	b	.L967
.L966:
	ldr	r3, [fp, #-16]
	cmp	r3, #64
	ble	.L968
	ldr	r3, [fp, #-16]
	cmp	r3, #70
	bgt	.L968
	ldr	r3, [fp, #-16]
	sub	r3, r3, #55
	str	r3, [fp, #-16]
	b	.L967
.L968:
	ldr	r0, [fp, #-16]
	bl	isnum
	mov	r3, r0
	cmp	r3, #0
	beq	.L984
	ldr	r3, [fp, #-16]
	sub	r3, r3, #48
	str	r3, [fp, #-16]
.L967:
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
	b	.L971
.L984:
	nop
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-16]
	b	.L965
.L961:
	mov	r3, #7
	str	r3, [fp, #-16]
	b	.L950
.L960:
	mov	r3, #8
	str	r3, [fp, #-16]
	b	.L950
.L958:
	mov	r3, #12
	str	r3, [fp, #-16]
	b	.L950
.L957:
	mov	r3, #10
	str	r3, [fp, #-16]
	b	.L950
.L956:
	mov	r3, #13
	str	r3, [fp, #-16]
	b	.L950
.L955:
	mov	r3, #9
	str	r3, [fp, #-16]
	b	.L950
.L954:
	mov	r3, #11
	str	r3, [fp, #-16]
	b	.L950
.L959:
	ldr	r3, .L987
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L985
	mov	r3, #27
	str	r3, [fp, #-16]
	b	.L950
.L985:
	nop
.L951:
	ldr	r3, [fp, #-16]
	cmp	r3, #32
	ble	.L973
	ldr	r3, [fp, #-16]
	cmp	r3, #126
	bgt	.L973
	ldr	r1, [fp, #-16]
	ldr	r0, .L987+4
	bl	warning
	b	.L950
.L973:
	ldr	r1, [fp, #-16]
	ldr	r0, .L987+8
	bl	warning
	b	.L950
.L982:
	nop
	b	.L950
.L983:
	nop
.L950:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L965:
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	bne	.L975
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-24]
	bl	cstr_ccat
	b	.L977
.L975:
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-24]
	bl	cstr_wccat
	b	.L977
.L981:
	nop
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	bne	.L978
	mov	r1, #0
	ldr	r0, [fp, #-24]
	bl	cstr_ccat
	b	.L986
.L978:
	mov	r1, #0
	ldr	r0, [fp, #-24]
	bl	cstr_wccat
.L986:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L988:
	.align	2
.L987:
	.word	gnu_ext
	.word	.LC64
	.word	.LC65
	.size	parse_escape_string, .-parse_escape_string
	.align	2
	.global	bn_lshift
	.syntax unified
	.arm
	.fpu softvfp
	.type	bn_lshift, %function
bn_lshift:
	@ 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]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L990
.L991:
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-20]
	lsl	r1, r2, r3
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	ldr	r0, [fp, #-16]
	add	r3, r0, r3
	orr	r2, r1, r2
	str	r2, [r3]
	ldr	r3, [fp, #-20]
	rsb	r3, r3, #32
	ldr	r2, [fp, #-8]
	lsr	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L990:
	ldr	r3, [fp, #-12]
	cmp	r3, #1
	ble	.L991
	nop
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	bn_lshift, .-bn_lshift
	.align	2
	.global	bn_zero
	.syntax unified
	.arm
	.fpu softvfp
	.type	bn_zero, %function
bn_zero:
	@ 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, #-8]
	b	.L993
.L994:
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L993:
	ldr	r3, [fp, #-8]
	cmp	r3, #1
	ble	.L994
	nop
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	bn_zero, .-bn_zero
	.section	.rodata
	.align	2
.LC66:
	.ascii	"number too long\000"
	.align	2
.LC67:
	.ascii	"invalid digit\000"
	.align	2
.LC68:
	.ascii	"exponent\000"
	.align	2
.LC69:
	.ascii	"exponent digits\000"
	.global	__aeabi_ui2d
	.global	__aeabi_dmul
	.global	__aeabi_dadd
	.global	__aeabi_d2f
	.align	2
.LC70:
	.ascii	"integer constant overflow\000"
	.align	2
.LC71:
	.ascii	"three 'l's in integer constant\000"
	.align	2
.LC72:
	.ascii	"two 'u's in integer constant\000"
	.align	2
.LC73:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	parse_number
	.syntax unified
	.arm
	.fpu softvfp
	.type	parse_number, %function
parse_number:
	@ args = 0, pretend = 0, frame = 88
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	sub	sp, sp, #88
	str	r0, [fp, #-104]
	ldr	r3, .L1099
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	ldr	r3, .L1099+4
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-104]
	add	r2, r3, #1
	str	r2, [fp, #-104]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-104]
	add	r2, r3, #1
	str	r2, [fp, #-104]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-72]
	add	r2, r3, #1
	str	r2, [fp, #-72]
	ldr	r2, [fp, #-96]
	and	r2, r2, #255
	strb	r2, [r3]
	mov	r3, #10
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-96]
	cmp	r3, #46
	beq	.L1088
	ldr	r3, [fp, #-96]
	cmp	r3, #48
	bne	.L998
	ldr	r3, [fp, #-76]
	cmp	r3, #120
	beq	.L999
	ldr	r3, [fp, #-76]
	cmp	r3, #88
	bne	.L1000
.L999:
	ldr	r3, [fp, #-72]
	sub	r3, r3, #1
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-104]
	add	r2, r3, #1
	str	r2, [fp, #-104]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-76]
	mov	r3, #16
	str	r3, [fp, #-100]
	b	.L998
.L1000:
	ldr	r3, .L1099+8
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L998
	ldr	r3, [fp, #-76]
	cmp	r3, #98
	beq	.L1001
	ldr	r3, [fp, #-76]
	cmp	r3, #66
	bne	.L998
.L1001:
	ldr	r3, [fp, #-72]
	sub	r3, r3, #1
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-104]
	add	r2, r3, #1
	str	r2, [fp, #-104]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-76]
	mov	r3, #2
	str	r3, [fp, #-100]
.L998:
	ldr	r3, [fp, #-76]
	cmp	r3, #96
	ble	.L1002
	ldr	r3, [fp, #-76]
	cmp	r3, #102
	bgt	.L1002
	ldr	r3, [fp, #-76]
	sub	r3, r3, #87
	str	r3, [fp, #-96]
	b	.L1003
.L1002:
	ldr	r3, [fp, #-76]
	cmp	r3, #64
	ble	.L1004
	ldr	r3, [fp, #-76]
	cmp	r3, #70
	bgt	.L1004
	ldr	r3, [fp, #-76]
	sub	r3, r3, #55
	str	r3, [fp, #-96]
	b	.L1003
.L1004:
	ldr	r0, [fp, #-76]
	bl	isnum
	mov	r3, r0
	cmp	r3, #0
	beq	.L1089
	ldr	r3, [fp, #-76]
	sub	r3, r3, #48
	str	r3, [fp, #-96]
.L1003:
	ldr	r2, [fp, #-96]
	ldr	r3, [fp, #-100]
	cmp	r2, r3
	bge	.L1090
	ldr	r2, .L1099+12
	ldr	r3, [fp, #-72]
	cmp	r3, r2
	bcc	.L1008
	nop
	b	.L1009
.L1092:
	nop
	b	.L1009
.L1093:
	nop
	b	.L1009
.L1094:
	nop
	b	.L1009
.L1095:
	nop
	b	.L1009
.L1096:
	nop
.L1009:
	ldr	r0, .L1099+16
	bl	error
.L1008:
	ldr	r3, [fp, #-72]
	add	r2, r3, #1
	str	r2, [fp, #-72]
	ldr	r2, [fp, #-76]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-104]
	add	r2, r3, #1
	str	r2, [fp, #-104]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-76]
	b	.L998
.L1089:
	nop
	b	.L1006
.L1090:
	nop
.L1006:
	ldr	r3, [fp, #-76]
	cmp	r3, #46
	beq	.L1010
	ldr	r3, [fp, #-76]
	cmp	r3, #101
	beq	.L1011
	ldr	r3, [fp, #-76]
	cmp	r3, #69
	bne	.L1012
.L1011:
	ldr	r3, [fp, #-100]
	cmp	r3, #10
	beq	.L1010
.L1012:
	ldr	r3, [fp, #-76]
	cmp	r3, #112
	beq	.L1013
	ldr	r3, [fp, #-76]
	cmp	r3, #80
	bne	.L1014
.L1013:
	ldr	r3, [fp, #-100]
	cmp	r3, #16
	beq	.L1010
	ldr	r3, [fp, #-100]
	cmp	r3, #2
	bne	.L1014
.L1010:
	ldr	r3, [fp, #-100]
	cmp	r3, #10
	beq	.L1015
	ldr	r3, [fp, #-72]
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-100]
	cmp	r3, #16
	bne	.L1016
	mov	r3, #4
	str	r3, [fp, #-92]
	b	.L1017
.L1016:
	mov	r3, #2
	str	r3, [fp, #-92]
.L1017:
	sub	r3, fp, #32
	mov	r0, r3
	bl	bn_zero
	ldr	r3, .L1099+4
	str	r3, [fp, #-72]
.L1023:
	ldr	r3, [fp, #-72]
	add	r2, r3, #1
	str	r2, [fp, #-72]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-96]
	cmp	r3, #0
	beq	.L1091
	ldr	r3, [fp, #-96]
	cmp	r3, #96
	ble	.L1020
	ldr	r3, [fp, #-96]
	sub	r3, r3, #87
	str	r3, [fp, #-96]
	b	.L1021
.L1020:
	ldr	r3, [fp, #-96]
	cmp	r3, #64
	ble	.L1022
	ldr	r3, [fp, #-96]
	sub	r3, r3, #55
	str	r3, [fp, #-96]
	b	.L1021
.L1022:
	ldr	r3, [fp, #-96]
	sub	r3, r3, #48
	str	r3, [fp, #-96]
.L1021:
	sub	r3, fp, #32
	ldr	r2, [fp, #-96]
	ldr	r1, [fp, #-92]
	mov	r0, r3
	bl	bn_lshift
	b	.L1023
.L1091:
	nop
	mov	r3, #0
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-76]
	cmp	r3, #46
	bne	.L1024
	ldr	r3, [fp, #-104]
	add	r2, r3, #1
	str	r2, [fp, #-104]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-76]
.L1029:
	ldr	r3, [fp, #-76]
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-96]
	cmp	r3, #96
	ble	.L1025
	ldr	r3, [fp, #-96]
	cmp	r3, #102
	bgt	.L1025
	ldr	r3, [fp, #-96]
	sub	r3, r3, #87
	str	r3, [fp, #-96]
	b	.L1026
.L1025:
	ldr	r3, [fp, #-96]
	cmp	r3, #64
	ble	.L1027
	ldr	r3, [fp, #-96]
	cmp	r3, #70
	bgt	.L1027
	ldr	r3, [fp, #-96]
	sub	r3, r3, #55
	str	r3, [fp, #-96]
	b	.L1026
.L1027:
	ldr	r3, [fp, #-96]
	cmp	r3, #47
	ble	.L1024
	ldr	r3, [fp, #-96]
	cmp	r3, #57
	bgt	.L1024
	ldr	r3, [fp, #-96]
	sub	r3, r3, #48
	str	r3, [fp, #-96]
.L1026:
	ldr	r2, [fp, #-96]
	ldr	r3, [fp, #-100]
	cmp	r2, r3
	blt	.L1028
	ldr	r0, .L1099+20
	bl	error
.L1028:
	sub	r3, fp, #32
	ldr	r2, [fp, #-96]
	ldr	r1, [fp, #-92]
	mov	r0, r3
	bl	bn_lshift
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-92]
	add	r3, r2, r3
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-104]
	add	r2, r3, #1
	str	r2, [fp, #-104]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-76]
	b	.L1029
.L1024:
	ldr	r3, [fp, #-76]
	cmp	r3, #112
	beq	.L1030
	ldr	r3, [fp, #-76]
	cmp	r3, #80
	beq	.L1030
	ldr	r0, .L1099+24
	bl	expect
.L1030:
	ldr	r3, [fp, #-104]
	add	r2, r3, #1
	str	r2, [fp, #-104]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-76]
	mov	r3, #1
	str	r3, [fp, #-84]
	mov	r3, #0
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-76]
	cmp	r3, #43
	bne	.L1031
	ldr	r3, [fp, #-104]
	add	r2, r3, #1
	str	r2, [fp, #-104]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-76]
	b	.L1032
.L1031:
	ldr	r3, [fp, #-76]
	cmp	r3, #45
	bne	.L1032
	mvn	r3, #0
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-104]
	add	r2, r3, #1
	str	r2, [fp, #-104]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-76]
.L1032:
	ldr	r3, [fp, #-76]
	cmp	r3, #47
	ble	.L1033
	ldr	r3, [fp, #-76]
	cmp	r3, #57
	ble	.L1035
.L1033:
	ldr	r0, .L1099+28
	bl	expect
	b	.L1035
.L1037:
	ldr	r2, [fp, #-80]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	mov	r2, r3
	ldr	r3, [fp, #-76]
	add	r3, r2, r3
	sub	r3, r3, #48
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-104]
	add	r2, r3, #1
	str	r2, [fp, #-104]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-76]
.L1035:
	ldr	r3, [fp, #-76]
	cmp	r3, #47
	ble	.L1036
	ldr	r3, [fp, #-76]
	cmp	r3, #57
	ble	.L1037
.L1036:
	ldr	r3, [fp, #-80]
	ldr	r2, [fp, #-84]
	mul	r3, r2, r3
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-28]
	mov	r0, r3
	bl	__aeabi_ui2d
	mov	r2, #0
	ldr	r3, .L1099+32
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r3, [fp, #-32]
	mov	r0, r3
	bl	__aeabi_ui2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-80]
	ldr	r3, [fp, #-88]
	sub	r3, r2, r3
	mov	r2, r3
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	bl	ldexp
	str	r0, [fp, #-44]
	str	r1, [fp, #-40]
	ldr	r0, [fp, #-76]
	bl	toup
	str	r0, [fp, #-96]
	ldr	r3, [fp, #-96]
	cmp	r3, #70
	bne	.L1038
	ldr	r3, [fp, #-104]
	add	r2, r3, #1
	str	r2, [fp, #-104]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-76]
	ldr	r3, .L1099+36
	mov	r2, #185
	str	r2, [r3]
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	bl	__aeabi_d2f
	mov	r3, r0
	ldr	r2, .L1099+40
	str	r3, [r2]	@ float
	b	.L1059
.L1038:
	ldr	r3, [fp, #-96]
	cmp	r3, #76
	bne	.L1040
	ldr	r3, [fp, #-104]
	add	r2, r3, #1
	str	r2, [fp, #-104]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-76]
	ldr	r3, .L1099+36
	mov	r2, #193
	str	r2, [r3]
	ldr	r1, .L1099+40
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	b	.L1059
.L1040:
	ldr	r3, .L1099+36
	mov	r2, #192
	str	r2, [r3]
	ldr	r1, .L1099+40
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	b	.L1059
.L1015:
	ldr	r3, [fp, #-76]
	cmp	r3, #46
	bne	.L1041
	ldr	r2, .L1099+12
	ldr	r3, [fp, #-72]
	cmp	r3, r2
	bcs	.L1092
	ldr	r3, [fp, #-72]
	add	r2, r3, #1
	str	r2, [fp, #-72]
	ldr	r2, [fp, #-76]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-104]
	add	r2, r3, #1
	str	r2, [fp, #-104]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-76]
	b	.L1043
.L1088:
	nop
.L997:
	b	.L1043
.L1045:
	ldr	r2, .L1099+12
	ldr	r3, [fp, #-72]
	cmp	r3, r2
	bcs	.L1093
	ldr	r3, [fp, #-72]
	add	r2, r3, #1
	str	r2, [fp, #-72]
	ldr	r2, [fp, #-76]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-104]
	add	r2, r3, #1
	str	r2, [fp, #-104]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-76]
.L1043:
	ldr	r3, [fp, #-76]
	cmp	r3, #47
	ble	.L1041
	ldr	r3, [fp, #-76]
	cmp	r3, #57
	ble	.L1045
.L1041:
	ldr	r3, [fp, #-76]
	cmp	r3, #101
	beq	.L1046
	ldr	r3, [fp, #-76]
	cmp	r3, #69
	bne	.L1047
.L1046:
	ldr	r2, .L1099+12
	ldr	r3, [fp, #-72]
	cmp	r3, r2
	bcs	.L1094
	ldr	r3, [fp, #-72]
	add	r2, r3, #1
	str	r2, [fp, #-72]
	ldr	r2, [fp, #-76]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-104]
	add	r2, r3, #1
	str	r2, [fp, #-104]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	cmp	r3, #45
	beq	.L1049
	ldr	r3, [fp, #-76]
	cmp	r3, #43
	bne	.L1050
.L1049:
	ldr	r2, .L1099+12
	ldr	r3, [fp, #-72]
	cmp	r3, r2
	bcs	.L1095
	ldr	r3, [fp, #-72]
	add	r2, r3, #1
	str	r2, [fp, #-72]
	ldr	r2, [fp, #-76]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-104]
	add	r2, r3, #1
	str	r2, [fp, #-104]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-76]
.L1050:
	ldr	r3, [fp, #-76]
	cmp	r3, #47
	ble	.L1052
	ldr	r3, [fp, #-76]
	cmp	r3, #57
	ble	.L1054
.L1052:
	ldr	r0, .L1099+28
	bl	expect
	b	.L1054
.L1056:
	ldr	r2, .L1099+12
	ldr	r3, [fp, #-72]
	cmp	r3, r2
	bcs	.L1096
	ldr	r3, [fp, #-72]
	add	r2, r3, #1
	str	r2, [fp, #-72]
	ldr	r2, [fp, #-76]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-104]
	add	r2, r3, #1
	str	r2, [fp, #-104]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-76]
.L1054:
	ldr	r3, [fp, #-76]
	cmp	r3, #47
	ble	.L1047
	ldr	r3, [fp, #-76]
	cmp	r3, #57
	ble	.L1056
.L1047:
	ldr	r3, [fp, #-72]
	mov	r2, #0
	strb	r2, [r3]
	ldr	r0, [fp, #-76]
	bl	toup
	str	r0, [fp, #-96]
	bl	__errno_location
	mov	r3, r0
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-96]
	cmp	r3, #70
	bne	.L1057
	ldr	r3, [fp, #-104]
	add	r2, r3, #1
	str	r2, [fp, #-104]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-76]
	ldr	r3, .L1099+36
	mov	r2, #185
	str	r2, [r3]
	mov	r1, #0
	ldr	r0, .L1099+4
	bl	strtof
	mov	r3, r0
	ldr	r2, .L1099+40
	str	r3, [r2]	@ float
	b	.L1059
.L1057:
	ldr	r3, [fp, #-96]
	cmp	r3, #76
	bne	.L1058
	ldr	r3, [fp, #-104]
	add	r2, r3, #1
	str	r2, [fp, #-104]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-76]
	ldr	r3, .L1099+36
	mov	r2, #193
	str	r2, [r3]
	mov	r1, #0
	ldr	r0, .L1099+4
	bl	strtold
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L1099+40
	stm	r1, {r2-r3}
	b	.L1059
.L1058:
	ldr	r3, .L1099+36
	mov	r2, #192
	str	r2, [r3]
	mov	r1, #0
	ldr	r0, .L1099+4
	bl	strtod
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L1099+40
	stm	r1, {r2-r3}
	b	.L1059
.L1014:
	ldr	r3, [fp, #-72]
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, .L1099+4
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-100]
	cmp	r3, #10
	bne	.L1060
	ldr	r3, [fp, #-72]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #48
	bne	.L1060
	mov	r3, #8
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-72]
	add	r3, r3, #1
	str	r3, [fp, #-72]
.L1060:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
.L1067:
	ldr	r3, [fp, #-72]
	add	r2, r3, #1
	str	r2, [fp, #-72]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-96]
	cmp	r3, #0
	beq	.L1097
	ldr	r3, [fp, #-96]
	cmp	r3, #96
	ble	.L1063
	ldr	r3, [fp, #-96]
	sub	r3, r3, #87
	str	r3, [fp, #-96]
	b	.L1064
.L1063:
	ldr	r3, [fp, #-96]
	cmp	r3, #64
	ble	.L1065
	ldr	r3, [fp, #-96]
	sub	r3, r3, #55
	str	r3, [fp, #-96]
	b	.L1064
.L1065:
	ldr	r3, [fp, #-96]
	sub	r3, r3, #48
	str	r3, [fp, #-96]
	ldr	r2, [fp, #-96]
	ldr	r3, [fp, #-100]
	cmp	r2, r3
	blt	.L1064
	ldr	r0, .L1099+20
	bl	error
.L1064:
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-100]
	mov	r0, r3
	asr	r1, r0, #31
	ldr	r3, [fp, #-60]
	mul	r2, r1, r3
	ldr	r3, [fp, #-56]
	mul	r3, r0, r3
	add	ip, r2, r3
	ldr	lr, [fp, #-60]
	umull	r2, r3, lr, r0
	add	r1, ip, r3
	mov	r3, r1
	ldr	r1, [fp, #-96]
	mov	r0, r1
	asr	r1, r0, #31
	adds	r6, r2, r0
	adc	r7, r3, r1
	str	r6, [fp, #-60]
	str	r7, [fp, #-56]
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	cmp	r1, r3
	cmpeq	r0, r2
	bcs	.L1067
	ldr	r0, .L1099+44
	bl	error
	b	.L1067
.L1097:
	nop
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mvn	r1, #0
	and	r4, r2, r0
	and	r5, r3, r1
	orrs	r3, r4, r5
	beq	.L1068
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	cmp	r2, #0
	sbcs	r3, r3, #0
	bge	.L1069
	ldr	r3, .L1099+36
	mov	r2, #202
	str	r2, [r3]
	b	.L1070
.L1069:
	ldr	r3, .L1099+36
	mov	r2, #201
	str	r2, [r3]
	b	.L1070
.L1068:
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	mvn	r0, #-2147483648
	mov	r1, #0
	cmp	r3, r1
	cmpeq	r2, r0
	bls	.L1071
	ldr	r3, .L1099+36
	mov	r2, #200
	str	r2, [r3]
	b	.L1070
.L1071:
	ldr	r3, .L1099+36
	mov	r2, #179
	str	r2, [r3]
.L1070:
	mov	r3, #0
	str	r3, [fp, #-68]
	mov	r3, #0
	str	r3, [fp, #-64]
.L1082:
	ldr	r0, [fp, #-76]
	bl	toup
	str	r0, [fp, #-96]
	ldr	r3, [fp, #-96]
	cmp	r3, #76
	bne	.L1072
	ldr	r3, [fp, #-68]
	cmp	r3, #1
	ble	.L1073
	ldr	r0, .L1099+48
	bl	error
.L1073:
	ldr	r3, [fp, #-68]
	add	r3, r3, #1
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	cmp	r3, #2
	bne	.L1074
	ldr	r3, .L1099+36
	ldr	r3, [r3]
	cmp	r3, #179
	bne	.L1075
	ldr	r3, .L1099+36
	mov	r2, #201
	str	r2, [r3]
	b	.L1074
.L1075:
	ldr	r3, .L1099+36
	ldr	r3, [r3]
	cmp	r3, #200
	bne	.L1074
	ldr	r3, .L1099+36
	mov	r2, #202
	str	r2, [r3]
.L1074:
	ldr	r3, [fp, #-104]
	add	r2, r3, #1
	str	r2, [fp, #-104]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-76]
	b	.L1082
.L1072:
	ldr	r3, [fp, #-96]
	cmp	r3, #85
	bne	.L1098
	ldr	r3, [fp, #-64]
	cmp	r3, #0
	ble	.L1078
	ldr	r0, .L1099+52
	bl	error
.L1078:
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
	ldr	r3, .L1099+36
	ldr	r3, [r3]
	cmp	r3, #179
	bne	.L1079
	ldr	r3, .L1099+36
	mov	r2, #200
	str	r2, [r3]
	b	.L1080
.L1079:
	ldr	r3, .L1099+36
	ldr	r3, [r3]
	cmp	r3, #201
	bne	.L1080
	ldr	r3, .L1099+36
	mov	r2, #202
	str	r2, [r3]
.L1080:
	ldr	r3, [fp, #-104]
	add	r2, r3, #1
	str	r2, [fp, #-104]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-76]
	b	.L1082
.L1098:
	nop
	ldr	r3, .L1099+36
	ldr	r3, [r3]
	cmp	r3, #179
	beq	.L1083
	ldr	r3, .L1099+36
	ldr	r3, [r3]
	cmp	r3, #200
	bne	.L1084
.L1083:
	ldr	r3, [fp, #-60]
	ldr	r2, .L1099+40
	str	r3, [r2]
	b	.L1059
.L1084:
	ldr	r1, .L1099+40
	sub	r3, fp, #60
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
.L1059:
	nop
	ldr	r3, .L1099
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L1085
	bl	__stack_chk_fail
.L1085:
	sub	sp, fp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, fp, pc}
.L1100:
	.align	2
.L1099:
	.word	.LC73
	.word	token_buf
	.word	tcc_ext
	.word	token_buf+1024
	.word	.LC66
	.word	.LC67
	.word	.LC68
	.word	.LC69
	.word	1106247680
	.word	tok
	.word	tokc
	.word	.LC70
	.word	.LC71
	.word	.LC72
	.size	parse_number, .-parse_number
	.section	.rodata
	.align	2
.LC74:
	.ascii	"'.'\000"
	.align	2
.LC75:
	.ascii	"empty character constant\000"
	.align	2
.LC76:
	.ascii	"multi-character character constant\000"
	.align	2
.LC77:
	.ascii	"unrecognized character \\x%02x\000"
	.align	2
.LC78:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	next_nomacro1, %function
next_nomacro1:
	@ args = 0, pretend = 0, frame = 72
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #72
	ldr	r3, .L1244
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L1244+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
.L1102:
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	sub	r3, r3, #9
	cmp	r3, #117
	ldrls	pc, [pc, r3, asl #2]
	b	.L1103
.L1105:
	.word	.L1125
	.word	.L1126
	.word	.L1125
	.word	.L1125
	.word	.L1125
	.word	.L1103
	.word	.L1103
	.word	.L1103
	.word	.L1103
	.word	.L1103
	.word	.L1103
	.word	.L1103
	.word	.L1103
	.word	.L1103
	.word	.L1103
	.word	.L1103
	.word	.L1103
	.word	.L1103
	.word	.L1103
	.word	.L1103
	.word	.L1103
	.word	.L1103
	.word	.L1103
	.word	.L1125
	.word	.L1124
	.word	.L1120
	.word	.L1123
	.word	.L1104
	.word	.L1122
	.word	.L1121
	.word	.L1120
	.word	.L1104
	.word	.L1104
	.word	.L1119
	.word	.L1118
	.word	.L1104
	.word	.L1117
	.word	.L1116
	.word	.L1115
	.word	.L1114
	.word	.L1114
	.word	.L1114
	.word	.L1114
	.word	.L1114
	.word	.L1114
	.word	.L1114
	.word	.L1114
	.word	.L1114
	.word	.L1114
	.word	.L1104
	.word	.L1104
	.word	.L1113
	.word	.L1112
	.word	.L1111
	.word	.L1104
	.word	.L1104
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1110
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1104
	.word	.L1109
	.word	.L1104
	.word	.L1108
	.word	.L1107
	.word	.L1103
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1107
	.word	.L1104
	.word	.L1106
	.word	.L1104
	.word	.L1104
.L1125:
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	b	.L1102
.L1109:
	ldr	r3, .L1244+4
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-60]
	cmp	r2, r3
	bcc	.L1127
	ldr	r3, .L1244+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-60]
	str	r2, [r3]
	bl	handle_eob
	ldr	r3, .L1244+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
	ldr	r3, .L1244+4
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-60]
	cmp	r2, r3
	bcs	.L1238
	b	.L1102
.L1127:
	ldr	r3, .L1244+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-60]
	str	r2, [r3]
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L1244+8
	str	r2, [r3]
	bl	handle_stray
	ldr	r3, .L1244+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
	b	.L1102
.L1238:
	nop
.L1129:
	ldr	r3, .L1244+12
	ldr	r3, [r3]
	str	r3, [fp, #-40]
	ldr	r3, .L1244+16
	ldr	r3, [r3]
	and	r3, r3, #4
	cmp	r3, #0
	beq	.L1130
	ldr	r3, .L1244+52
	mov	r2, #10
	str	r2, [r3]
	b	.L1136
.L1130:
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-40]
	add	r3, r3, #568
	cmp	r2, r3
	beq	.L1132
	ldr	r3, .L1244+16
	ldr	r3, [r3]
	and	r3, r3, #1
	cmp	r3, #0
	bne	.L1133
.L1132:
	ldr	r3, .L1244+52
	mvn	r2, #0
	str	r2, [r3]
	b	.L1136
.L1133:
	ldr	r3, .L1244+64
	ldr	r3, [r3]
	and	r3, r3, #4
	cmp	r3, #0
	beq	.L1134
	ldr	r3, .L1244+4
	ldr	r3, [r3]
	ldrb	r3, [r3, #28]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r3, .L1244+4
	ldr	r3, [r3]
	add	r2, r3, #29
	ldr	r3, .L1244+4
	ldr	r3, [r3]
	ldr	r3, [r3, #20]
	ldr	r0, [fp, #-40]
	bl	add_cached_include
.L1134:
	ldr	r3, .L1244+20
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L1135
	mov	r2, #0
	mov	r1, #0
	mov	r0, #162
	bl	put_stabd
.L1135:
	ldr	r3, .L1244+4
	ldr	r3, [r3]
	mov	r0, r3
	bl	tcc_close
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #4]
	sub	r2, r3, #4
	ldr	r3, [fp, #-40]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #4]
	ldr	r3, [r3]
	ldr	r2, .L1244+4
	str	r3, [r2]
	ldr	r3, .L1244+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
	b	.L1102
.L1126:
	ldr	r3, .L1244+16
	ldr	r3, [r3]
	and	r3, r3, #4
	cmp	r3, #0
	beq	.L1137
	ldr	r3, .L1244+52
	mov	r2, #10
	str	r2, [r3]
	b	.L1136
.L1137:
	ldr	r3, .L1244+4
	ldr	r3, [r3]
	ldr	r2, [r3, #12]
	add	r2, r2, #1
	str	r2, [r3, #12]
	ldr	r3, .L1244+64
	ldr	r3, [r3]
	orr	r3, r3, #1
	ldr	r2, .L1244+64
	str	r3, [r2]
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	b	.L1102
.L1123:
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	cmp	r3, #92
	bne	.L1139
	ldr	r0, [fp, #-60]
	bl	handle_stray1
	str	r0, [fp, #-72]
	ldr	r3, .L1244+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
.L1139:
	ldr	r3, .L1244+64
	ldr	r3, [r3]
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L1140
	ldr	r3, .L1244+16
	ldr	r3, [r3]
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L1140
	ldr	r3, .L1244+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-60]
	str	r2, [r3]
	ldr	r3, .L1244+64
	ldr	r3, [r3]
	and	r3, r3, #2
	mov	r0, r3
	bl	preprocess
	ldr	r3, .L1244+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
	b	.L1102
.L1140:
	ldr	r3, [fp, #-72]
	cmp	r3, #35
	bne	.L1141
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, .L1244+52
	mov	r2, #182
	str	r2, [r3]
	b	.L1136
.L1141:
	ldr	r3, .L1244+16
	ldr	r3, [r3]
	and	r3, r3, #8
	cmp	r3, #0
	beq	.L1143
	ldr	r3, [fp, #-60]
	sub	r3, r3, #1
	mov	r0, r3
	bl	parse_line_comment
	str	r0, [fp, #-60]
	b	.L1102
.L1143:
	ldr	r3, .L1244+52
	mov	r2, #35
	str	r2, [r3]
	b	.L1136
.L1243:
	nop
.L1107:
	ldr	r3, [fp, #-60]
	str	r3, [fp, #-56]
	mov	r3, #1
	str	r3, [fp, #-52]
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #5
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, r3, r2
	ldr	r3, [fp, #-72]
	add	r3, r2, r3
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
.L1146:
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-72]
	ldr	r2, .L1244+24
	ldr	r3, [fp, #-72]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L1239
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #5
	add	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, r3, r2
	ldr	r3, [fp, #-72]
	add	r3, r2, r3
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	b	.L1146
.L1239:
	nop
	ldr	r3, [fp, #-72]
	cmp	r3, #92
	beq	.L1147
	ldr	r2, [fp, #-60]
	ldr	r3, [fp, #-56]
	sub	r3, r2, r3
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #19
	lsr	r3, r3, #19
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #2
	ldr	r2, .L1244+28
	add	r3, r3, r2
	str	r3, [fp, #-48]
.L1152:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-64]
	cmp	r3, #0
	beq	.L1240
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #24]
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	bne	.L1150
	ldr	r3, [fp, #-64]
	add	r3, r3, #28
	ldr	r2, [fp, #-32]
	ldr	r1, [fp, #-56]
	mov	r0, r3
	bl	memcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L1241
.L1150:
	ldr	r3, [fp, #-64]
	str	r3, [fp, #-48]
	b	.L1152
.L1240:
	nop
	ldr	r2, [fp, #-32]
	ldr	r1, [fp, #-56]
	ldr	r0, [fp, #-48]
	bl	tok_alloc_new
	str	r0, [fp, #-64]
.L1151:
	b	.L1153
.L1147:
	ldr	r0, .L1244+32
	bl	cstr_free
	b	.L1154
.L1155:
	ldr	r3, [fp, #-56]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, .L1244+32
	bl	cstr_ccat
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	str	r3, [fp, #-56]
.L1154:
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-60]
	cmp	r2, r3
	bcc	.L1155
	ldr	r3, [fp, #-60]
	sub	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	cmp	r3, #92
	bne	.L1242
	ldr	r0, [fp, #-60]
	bl	handle_stray1
	str	r0, [fp, #-72]
	ldr	r3, .L1244+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
	b	.L1157
.L1242:
	nop
.L1156:
	b	.L1157
.L1158:
	ldr	r1, [fp, #-72]
	ldr	r0, .L1244+32
	bl	cstr_ccat
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	cmp	r3, #92
	bne	.L1157
	ldr	r0, [fp, #-60]
	bl	handle_stray1
	str	r0, [fp, #-72]
	ldr	r3, .L1244+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
.L1157:
	ldr	r2, .L1244+24
	ldr	r3, [fp, #-72]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L1158
	ldr	r3, .L1244+32
	ldr	r3, [r3, #4]
	ldr	r2, .L1244+32
	ldr	r2, [r2]
	mov	r1, r2
	mov	r0, r3
	bl	tok_alloc
	str	r0, [fp, #-64]
	b	.L1153
.L1241:
	nop
.L1153:
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #20]
	ldr	r2, .L1244+52
	str	r3, [r2]
	b	.L1136
.L1110:
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	cmp	r3, #92
	beq	.L1159
	ldr	r3, [fp, #-36]
	cmp	r3, #39
	beq	.L1159
	ldr	r3, [fp, #-36]
	cmp	r3, #34
	bne	.L1243
.L1159:
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	cmp	r3, #92
	bne	.L1160
	ldr	r0, [fp, #-60]
	bl	handle_stray1
	str	r0, [fp, #-72]
	ldr	r3, .L1244+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
.L1160:
	ldr	r3, [fp, #-72]
	cmp	r3, #39
	beq	.L1161
	ldr	r3, [fp, #-72]
	cmp	r3, #34
	bne	.L1162
.L1161:
	mov	r3, #1
	str	r3, [fp, #-68]
	b	.L1163
.L1162:
	ldr	r0, .L1244+32
	bl	cstr_free
	mov	r1, #76
	ldr	r0, .L1244+32
	bl	cstr_ccat
	b	.L1156
.L1114:
	ldr	r0, .L1244+32
	bl	cstr_free
.L1164:
.L1169:
	ldr	r3, [fp, #-72]
	str	r3, [fp, #-36]
	ldr	r1, [fp, #-72]
	ldr	r0, .L1244+32
	bl	cstr_ccat
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	cmp	r3, #92
	bne	.L1165
	ldr	r0, [fp, #-60]
	bl	handle_stray1
	str	r0, [fp, #-72]
	ldr	r3, .L1244+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
.L1165:
	ldr	r0, [fp, #-72]
	bl	isnum
	mov	r3, r0
	cmp	r3, #0
	bne	.L1169
	ldr	r0, [fp, #-72]
	bl	isid
	mov	r3, r0
	cmp	r3, #0
	bne	.L1169
	ldr	r3, [fp, #-72]
	cmp	r3, #46
	beq	.L1169
	ldr	r3, [fp, #-72]
	cmp	r3, #43
	beq	.L1167
	ldr	r3, [fp, #-72]
	cmp	r3, #45
	bne	.L1168
.L1167:
	ldr	r3, [fp, #-36]
	cmp	r3, #101
	beq	.L1169
	ldr	r3, [fp, #-36]
	cmp	r3, #69
	beq	.L1169
	ldr	r3, [fp, #-36]
	cmp	r3, #112
	beq	.L1169
	ldr	r3, [fp, #-36]
	cmp	r3, #80
	bne	.L1168
	b	.L1169
.L1168:
	mov	r1, #0
	ldr	r0, .L1244+32
	bl	cstr_ccat
	ldr	r3, .L1244+36
	ldr	r2, .L1244+32
	str	r2, [r3]
	ldr	r3, .L1244+52
	mov	r2, #206
	str	r2, [r3]
	b	.L1136
.L1116:
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	cmp	r3, #92
	bne	.L1170
	ldr	r0, [fp, #-60]
	bl	handle_stray1
	str	r0, [fp, #-72]
	ldr	r3, .L1244+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
.L1170:
	ldr	r0, [fp, #-72]
	bl	isnum
	mov	r3, r0
	cmp	r3, #0
	beq	.L1171
	ldr	r0, .L1244+32
	bl	cstr_free
	mov	r1, #46
	ldr	r0, .L1244+32
	bl	cstr_ccat
	b	.L1169
.L1171:
	ldr	r3, [fp, #-72]
	cmp	r3, #46
	bne	.L1172
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	cmp	r3, #92
	bne	.L1173
	ldr	r0, [fp, #-60]
	bl	handle_stray1
	str	r0, [fp, #-72]
	ldr	r3, .L1244+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
.L1173:
	ldr	r3, [fp, #-72]
	cmp	r3, #46
	beq	.L1174
	ldr	r0, .L1244+40
	bl	expect
.L1174:
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	cmp	r3, #92
	bne	.L1175
	ldr	r0, [fp, #-60]
	bl	handle_stray1
	str	r0, [fp, #-72]
	ldr	r3, .L1244+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
.L1175:
	ldr	r3, .L1244+52
	mov	r2, #204
	str	r2, [r3]
	b	.L1136
.L1172:
	ldr	r3, .L1244+52
	mov	r2, #46
	str	r2, [r3]
	b	.L1136
.L1120:
	mov	r3, #0
	str	r3, [fp, #-68]
.L1163:
	ldr	r3, [fp, #-72]
	str	r3, [fp, #-28]
	sub	r3, fp, #24
	mov	r0, r3
	bl	cstr_new
	sub	r3, fp, #24
	mov	r2, r3
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-60]
	bl	parse_pp_string
	str	r0, [fp, #-60]
	sub	r3, fp, #24
	mov	r1, #0
	mov	r0, r3
	bl	cstr_ccat
	ldr	r0, .L1244+32
	bl	cstr_free
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-68]
	mov	r1, r3
	ldr	r0, .L1244+32
	bl	parse_escape_string
	sub	r3, fp, #24
	mov	r0, r3
	bl	cstr_free
	ldr	r3, [fp, #-28]
	cmp	r3, #39
	bne	.L1177
	ldr	r3, [fp, #-68]
	cmp	r3, #0
	bne	.L1178
	mov	r3, #1
	str	r3, [fp, #-44]
	b	.L1179
.L1178:
	mov	r3, #4
	str	r3, [fp, #-44]
.L1179:
	ldr	r3, .L1244+32
	ldr	r3, [r3]
	ldr	r2, [fp, #-44]
	cmp	r2, r3
	blt	.L1180
	ldr	r0, .L1244+44
	bl	error
.L1180:
	ldr	r3, .L1244+32
	ldr	r2, [r3]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #1
	cmp	r2, r3
	ble	.L1181
	ldr	r0, .L1244+48
	bl	warning
.L1181:
	ldr	r3, [fp, #-68]
	cmp	r3, #0
	bne	.L1182
	ldr	r3, .L1244+32
	ldr	r3, [r3, #4]
	ldrsb	r3, [r3]
	mov	r2, r3
	ldr	r3, .L1244+36
	str	r2, [r3]
	ldr	r3, .L1244+52
	mov	r2, #180
	str	r2, [r3]
	b	.L1136
.L1182:
	ldr	r3, .L1244+32
	ldr	r3, [r3, #4]
	ldr	r3, [r3]
	ldr	r2, .L1244+36
	str	r3, [r2]
	ldr	r3, .L1244+52
	mov	r2, #183
	str	r2, [r3]
	b	.L1136
.L1177:
	ldr	r3, .L1244+36
	ldr	r2, .L1244+32
	str	r2, [r3]
	ldr	r3, [fp, #-68]
	cmp	r3, #0
	bne	.L1184
	ldr	r3, .L1244+52
	mov	r2, #181
	str	r2, [r3]
	b	.L1136
.L1184:
	ldr	r3, .L1244+52
	mov	r2, #184
	str	r2, [r3]
	b	.L1136
.L1113:
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	cmp	r3, #92
	bne	.L1185
	ldr	r0, [fp, #-60]
	bl	handle_stray1
	str	r0, [fp, #-72]
	ldr	r3, .L1244+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
.L1185:
	ldr	r3, [fp, #-72]
	cmp	r3, #61
	bne	.L1186
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, .L1244+52
	mov	r2, #158
	str	r2, [r3]
	b	.L1136
.L1186:
	ldr	r3, [fp, #-72]
	cmp	r3, #60
	bne	.L1188
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	cmp	r3, #92
	bne	.L1189
	ldr	r0, [fp, #-60]
	bl	handle_stray1
	str	r0, [fp, #-72]
	ldr	r3, .L1244+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
.L1189:
	ldr	r3, [fp, #-72]
	cmp	r3, #61
	bne	.L1190
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, .L1244+52
	mov	r2, #129
	str	r2, [r3]
	b	.L1136
.L1190:
	ldr	r3, .L1244+52
	mov	r2, #1
	str	r2, [r3]
	b	.L1136
.L1188:
	ldr	r3, .L1244+52
	mov	r2, #156
	str	r2, [r3]
	b	.L1136
.L1111:
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	cmp	r3, #92
	bne	.L1191
	ldr	r0, [fp, #-60]
	bl	handle_stray1
	str	r0, [fp, #-72]
	ldr	r3, .L1244+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
.L1191:
	ldr	r3, [fp, #-72]
	cmp	r3, #61
	bne	.L1192
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, .L1244+52
	mov	r2, #157
	str	r2, [r3]
	b	.L1136
.L1192:
	ldr	r3, [fp, #-72]
	cmp	r3, #62
	bne	.L1194
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	cmp	r3, #92
	bne	.L1195
	ldr	r0, [fp, #-60]
	bl	handle_stray1
	str	r0, [fp, #-72]
	ldr	r3, .L1244+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
.L1195:
	ldr	r3, [fp, #-72]
	cmp	r3, #61
	bne	.L1196
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, .L1244+52
	mov	r2, #130
	str	r2, [r3]
	b	.L1136
.L1196:
	ldr	r3, .L1244+52
	mov	r2, #2
	str	r2, [r3]
	b	.L1136
.L1194:
	ldr	r3, .L1244+52
	mov	r2, #159
	str	r2, [r3]
	b	.L1136
.L1121:
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	cmp	r3, #92
	bne	.L1197
	ldr	r0, [fp, #-60]
	bl	handle_stray1
	str	r0, [fp, #-72]
	ldr	r3, .L1244+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
.L1197:
	ldr	r3, [fp, #-72]
	cmp	r3, #38
	bne	.L1198
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, .L1244+52
	mov	r2, #160
	str	r2, [r3]
	b	.L1136
.L1198:
	ldr	r3, [fp, #-72]
	cmp	r3, #61
	bne	.L1200
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, .L1244+52
	mov	r2, #166
	str	r2, [r3]
	b	.L1136
.L1200:
	ldr	r3, .L1244+52
	mov	r2, #38
	str	r2, [r3]
	b	.L1136
.L1106:
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	cmp	r3, #92
	bne	.L1201
	ldr	r0, [fp, #-60]
	bl	handle_stray1
	str	r0, [fp, #-72]
	ldr	r3, .L1244+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
.L1201:
	ldr	r3, [fp, #-72]
	cmp	r3, #124
	bne	.L1202
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, .L1244+52
	mov	r2, #161
	str	r2, [r3]
	b	.L1136
.L1202:
	ldr	r3, [fp, #-72]
	cmp	r3, #61
	bne	.L1204
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, .L1244+52
	mov	r2, #252
	str	r2, [r3]
	b	.L1136
.L1204:
	ldr	r3, .L1244+52
	mov	r2, #124
	str	r2, [r3]
	b	.L1136
.L1118:
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	cmp	r3, #92
	bne	.L1205
	ldr	r0, [fp, #-60]
	bl	handle_stray1
	str	r0, [fp, #-72]
	ldr	r3, .L1244+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
.L1205:
	ldr	r3, [fp, #-72]
	cmp	r3, #43
	bne	.L1206
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, .L1244+52
	mov	r2, #164
	str	r2, [r3]
	b	.L1136
.L1206:
	ldr	r3, [fp, #-72]
	cmp	r3, #61
	bne	.L1208
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, .L1244+52
	mov	r2, #171
	str	r2, [r3]
	b	.L1136
.L1208:
	ldr	r3, .L1244+52
	mov	r2, #43
	str	r2, [r3]
	b	.L1136
.L1245:
	.align	2
.L1244:
	.word	.LC78
	.word	file
	.word	ch
	.word	tcc_state
	.word	parse_flags
	.word	do_debug
	.word	isidnum_table
	.word	hash_ident
	.word	tokcstr
	.word	tokc
	.word	.LC74
	.word	.LC75
	.word	.LC76
	.word	tok
	.word	.LC77
	.word	file
	.word	tok_flags
	.word	.LC78
.L1117:
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	cmp	r3, #92
	bne	.L1209
	ldr	r0, [fp, #-60]
	bl	handle_stray1
	str	r0, [fp, #-72]
	ldr	r3, .L1244+60
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
.L1209:
	ldr	r3, [fp, #-72]
	cmp	r3, #45
	bne	.L1210
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, .L1244+52
	mov	r2, #162
	str	r2, [r3]
	b	.L1136
.L1210:
	ldr	r3, [fp, #-72]
	cmp	r3, #61
	bne	.L1212
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, .L1244+52
	mov	r2, #173
	str	r2, [r3]
	b	.L1136
.L1212:
	ldr	r3, [fp, #-72]
	cmp	r3, #62
	bne	.L1213
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, .L1244+52
	mov	r2, #203
	str	r2, [r3]
	b	.L1136
.L1213:
	ldr	r3, .L1244+52
	mov	r2, #45
	str	r2, [r3]
	b	.L1136
.L1124:
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	cmp	r3, #92
	bne	.L1214
	ldr	r0, [fp, #-60]
	bl	handle_stray1
	str	r0, [fp, #-72]
	ldr	r3, .L1244+60
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
.L1214:
	ldr	r3, [fp, #-72]
	cmp	r3, #61
	bne	.L1215
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, .L1244+52
	mov	r2, #149
	str	r2, [r3]
	b	.L1136
.L1215:
	ldr	r3, .L1244+52
	mov	r2, #33
	str	r2, [r3]
	b	.L1136
.L1112:
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	cmp	r3, #92
	bne	.L1217
	ldr	r0, [fp, #-60]
	bl	handle_stray1
	str	r0, [fp, #-72]
	ldr	r3, .L1244+60
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
.L1217:
	ldr	r3, [fp, #-72]
	cmp	r3, #61
	bne	.L1218
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, .L1244+52
	mov	r2, #148
	str	r2, [r3]
	b	.L1136
.L1218:
	ldr	r3, .L1244+52
	mov	r2, #61
	str	r2, [r3]
	b	.L1136
.L1119:
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	cmp	r3, #92
	bne	.L1220
	ldr	r0, [fp, #-60]
	bl	handle_stray1
	str	r0, [fp, #-72]
	ldr	r3, .L1244+60
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
.L1220:
	ldr	r3, [fp, #-72]
	cmp	r3, #61
	bne	.L1221
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, .L1244+52
	mov	r2, #170
	str	r2, [r3]
	b	.L1136
.L1221:
	ldr	r3, .L1244+52
	mov	r2, #42
	str	r2, [r3]
	b	.L1136
.L1122:
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	cmp	r3, #92
	bne	.L1223
	ldr	r0, [fp, #-60]
	bl	handle_stray1
	str	r0, [fp, #-72]
	ldr	r3, .L1244+60
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
.L1223:
	ldr	r3, [fp, #-72]
	cmp	r3, #61
	bne	.L1224
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, .L1244+52
	mov	r2, #165
	str	r2, [r3]
	b	.L1136
.L1224:
	ldr	r3, .L1244+52
	mov	r2, #37
	str	r2, [r3]
	b	.L1136
.L1108:
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	cmp	r3, #92
	bne	.L1226
	ldr	r0, [fp, #-60]
	bl	handle_stray1
	str	r0, [fp, #-72]
	ldr	r3, .L1244+60
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
.L1226:
	ldr	r3, [fp, #-72]
	cmp	r3, #61
	bne	.L1227
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, .L1244+52
	mov	r2, #222
	str	r2, [r3]
	b	.L1136
.L1227:
	ldr	r3, .L1244+52
	mov	r2, #94
	str	r2, [r3]
	b	.L1136
.L1115:
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	cmp	r3, #92
	bne	.L1229
	ldr	r0, [fp, #-60]
	bl	handle_stray1
	str	r0, [fp, #-72]
	ldr	r3, .L1244+60
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
.L1229:
	ldr	r3, [fp, #-72]
	cmp	r3, #42
	bne	.L1230
	ldr	r0, [fp, #-60]
	bl	parse_comment
	str	r0, [fp, #-60]
	b	.L1102
.L1230:
	ldr	r3, [fp, #-72]
	cmp	r3, #47
	bne	.L1231
	ldr	r0, [fp, #-60]
	bl	parse_line_comment
	str	r0, [fp, #-60]
	b	.L1102
.L1231:
	ldr	r3, [fp, #-72]
	cmp	r3, #61
	bne	.L1232
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, .L1244+52
	mov	r2, #175
	str	r2, [r3]
	b	.L1136
.L1232:
	ldr	r3, .L1244+52
	mov	r2, #47
	str	r2, [r3]
	b	.L1136
.L1104:
	ldr	r2, .L1244+52
	ldr	r3, [fp, #-72]
	str	r3, [r2]
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
	b	.L1136
.L1103:
	ldr	r1, [fp, #-72]
	ldr	r0, .L1244+56
	bl	error
	nop
.L1136:
	ldr	r3, .L1244+60
	ldr	r3, [r3]
	ldr	r2, [fp, #-60]
	str	r2, [r3]
	ldr	r3, .L1244+64
	mov	r2, #0
	str	r2, [r3]
	nop
	ldr	r3, .L1244+68
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L1234
	bl	__stack_chk_fail
.L1234:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	next_nomacro1, .-next_nomacro1
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	next_nomacro, %function
next_nomacro:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L1259
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L1247
	nop
.L1248:
	ldr	r3, .L1259
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r2, .L1259+4
	str	r3, [r2]
	ldr	r3, .L1259+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L1257
	ldr	r3, .L1259
	ldr	r3, [r3]
	add	r2, r3, #4
	ldr	r1, .L1259
	str	r2, [r1]
	ldr	r3, [r3]
	ldr	r2, .L1259+4
	str	r3, [r2]
	ldr	r3, .L1259+4
	ldr	r3, [r3]
	sub	r3, r3, #179
	cmp	r3, #27
	ldrls	pc, [pc, r3, asl #2]
	b	.L1258
.L1252:
	.word	.L1254
	.word	.L1254
	.word	.L1251
	.word	.L1258
	.word	.L1254
	.word	.L1251
	.word	.L1254
	.word	.L1254
	.word	.L1258
	.word	.L1258
	.word	.L1258
	.word	.L1258
	.word	.L1258
	.word	.L1253
	.word	.L1255
	.word	.L1258
	.word	.L1258
	.word	.L1258
	.word	.L1258
	.word	.L1258
	.word	.L1258
	.word	.L1254
	.word	.L1253
	.word	.L1253
	.word	.L1258
	.word	.L1258
	.word	.L1258
	.word	.L1251
.L1254:
	ldr	r3, .L1259
	ldr	r3, [r3]
	add	r2, r3, #4
	ldr	r1, .L1259
	str	r2, [r1]
	ldr	r3, [r3]
	ldr	r2, .L1259+8
	str	r3, [r2]
	b	.L1258
.L1251:
	ldr	r3, .L1259
	ldr	r3, [r3]
	ldr	r2, .L1259+8
	str	r3, [r2]
	ldr	r3, .L1259
	ldr	r2, [r3]
	ldr	r3, .L1259+8
	ldr	r3, [r3]
	add	r2, r2, #16
	str	r2, [r3, #4]
	ldr	r3, .L1259
	ldr	r2, [r3]
	ldr	r3, .L1259+8
	ldr	r3, [r3]
	ldr	r3, [r3]
	add	r3, r3, #19
	lsr	r3, r3, #2
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, .L1259
	str	r3, [r2]
	b	.L1258
.L1253:
	ldr	r3, .L1259
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r2, .L1259+8
	str	r3, [r2]
	ldr	r3, .L1259
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	ldr	r2, .L1259+8
	str	r3, [r2, #4]
	ldr	r3, .L1259
	ldr	r3, [r3]
	add	r3, r3, #8
	ldr	r2, .L1259
	str	r3, [r2]
	b	.L1258
.L1255:
	ldr	r3, .L1259
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r2, .L1259+8
	str	r3, [r2]
	ldr	r3, .L1259
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	ldr	r2, .L1259+8
	str	r3, [r2, #4]
	ldr	r3, .L1259
	ldr	r3, [r3]
	ldr	r3, [r3, #8]
	ldr	r2, .L1259+8
	str	r3, [r2, #8]
	ldr	r3, .L1259
	ldr	r3, [r3]
	add	r3, r3, #12
	ldr	r2, .L1259
	str	r3, [r2]
.L1258:
	nop
	ldr	r3, .L1259+4
	ldr	r3, [r3]
	cmp	r3, #186
	bne	.L1257
	ldr	r3, .L1259+12
	ldr	r3, [r3]
	ldr	r2, .L1259+8
	ldr	r2, [r2]
	str	r2, [r3, #12]
	b	.L1248
.L1247:
	bl	next_nomacro1
.L1257:
	nop
	pop	{fp, pc}
.L1260:
	.align	2
.L1259:
	.word	macro_ptr
	.word	tok
	.word	tokc
	.word	file
	.size	next_nomacro, .-next_nomacro
	.section	.rodata
	.align	2
.LC79:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	macro_arg_subst, %function
macro_arg_subst:
	@ args = 0, pretend = 0, frame = 88
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #88
	str	r0, [fp, #-80]
	str	r1, [fp, #-84]
	str	r2, [fp, #-88]
	ldr	r3, .L1321
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #52
	mov	r0, r3
	bl	tok_str_new
	mov	r3, #0
	str	r3, [fp, #-72]
.L1310:
	ldr	r3, [fp, #-84]
	add	r2, r3, #4
	str	r2, [fp, #-84]
	ldr	r3, [r3]
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	sub	r3, r3, #179
	cmp	r3, #27
	ldrls	pc, [pc, r3, asl #2]
	b	.L1313
.L1264:
	.word	.L1266
	.word	.L1266
	.word	.L1263
	.word	.L1313
	.word	.L1266
	.word	.L1263
	.word	.L1266
	.word	.L1266
	.word	.L1313
	.word	.L1313
	.word	.L1313
	.word	.L1313
	.word	.L1313
	.word	.L1265
	.word	.L1267
	.word	.L1313
	.word	.L1313
	.word	.L1313
	.word	.L1313
	.word	.L1313
	.word	.L1313
	.word	.L1266
	.word	.L1265
	.word	.L1265
	.word	.L1313
	.word	.L1313
	.word	.L1313
	.word	.L1263
.L1266:
	ldr	r3, [fp, #-84]
	add	r2, r3, #4
	str	r2, [fp, #-84]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	b	.L1313
.L1263:
	ldr	r3, [fp, #-84]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-84]
	add	r2, r2, #16
	str	r2, [r3, #4]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	add	r3, r3, #19
	lsr	r3, r3, #2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-84]
	add	r3, r2, r3
	str	r3, [fp, #-84]
	b	.L1313
.L1265:
	ldr	r3, [fp, #-84]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-84]
	add	r3, r3, #8
	str	r3, [fp, #-84]
	b	.L1313
.L1267:
	ldr	r3, [fp, #-84]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-84]
	add	r3, r3, #12
	str	r3, [fp, #-84]
.L1313:
	nop
	ldr	r3, [fp, #-68]
	cmp	r3, #0
	beq	.L1314
	ldr	r3, [fp, #-68]
	cmp	r3, #35
	bne	.L1271
	ldr	r3, [fp, #-84]
	add	r2, r3, #4
	str	r2, [fp, #-84]
	ldr	r3, [r3]
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	sub	r3, r3, #179
	cmp	r3, #27
	ldrls	pc, [pc, r3, asl #2]
	b	.L1315
.L1274:
	.word	.L1276
	.word	.L1276
	.word	.L1273
	.word	.L1315
	.word	.L1276
	.word	.L1273
	.word	.L1276
	.word	.L1276
	.word	.L1315
	.word	.L1315
	.word	.L1315
	.word	.L1315
	.word	.L1315
	.word	.L1275
	.word	.L1277
	.word	.L1315
	.word	.L1315
	.word	.L1315
	.word	.L1315
	.word	.L1315
	.word	.L1315
	.word	.L1276
	.word	.L1275
	.word	.L1275
	.word	.L1315
	.word	.L1315
	.word	.L1315
	.word	.L1273
.L1276:
	ldr	r3, [fp, #-84]
	add	r2, r3, #4
	str	r2, [fp, #-84]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	b	.L1315
.L1273:
	ldr	r3, [fp, #-84]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-84]
	add	r2, r2, #16
	str	r2, [r3, #4]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	add	r3, r3, #19
	lsr	r3, r3, #2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-84]
	add	r3, r2, r3
	str	r3, [fp, #-84]
	b	.L1315
.L1275:
	ldr	r3, [fp, #-84]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-84]
	add	r3, r3, #8
	str	r3, [fp, #-84]
	b	.L1315
.L1277:
	ldr	r3, [fp, #-84]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-84]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-84]
	add	r3, r3, #12
	str	r3, [fp, #-84]
.L1315:
	nop
	ldr	r3, [fp, #-68]
	cmp	r3, #0
	beq	.L1316
	ldr	r1, [fp, #-68]
	ldr	r0, [fp, #-88]
	bl	sym_find2
	str	r0, [fp, #-60]
	ldr	r3, [fp, #-60]
	cmp	r3, #0
	beq	.L1280
	sub	r3, fp, #36
	mov	r0, r3
	bl	cstr_new
	ldr	r3, [fp, #-60]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-76]
	mov	r3, #0
	str	r3, [fp, #-64]
	b	.L1281
.L1290:
	ldr	r3, [fp, #-64]
	cmp	r3, #0
	beq	.L1282
	sub	r3, fp, #36
	mov	r1, #32
	mov	r0, r3
	bl	cstr_ccat
.L1282:
	ldr	r3, [fp, #-76]
	add	r2, r3, #4
	str	r2, [fp, #-76]
	ldr	r3, [r3]
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	sub	r3, r3, #179
	cmp	r3, #27
	ldrls	pc, [pc, r3, asl #2]
	b	.L1317
.L1285:
	.word	.L1287
	.word	.L1287
	.word	.L1284
	.word	.L1317
	.word	.L1287
	.word	.L1284
	.word	.L1287
	.word	.L1287
	.word	.L1317
	.word	.L1317
	.word	.L1317
	.word	.L1317
	.word	.L1317
	.word	.L1286
	.word	.L1288
	.word	.L1317
	.word	.L1317
	.word	.L1317
	.word	.L1317
	.word	.L1317
	.word	.L1317
	.word	.L1287
	.word	.L1286
	.word	.L1286
	.word	.L1317
	.word	.L1317
	.word	.L1317
	.word	.L1284
.L1287:
	ldr	r3, [fp, #-76]
	add	r2, r3, #4
	str	r2, [fp, #-76]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	b	.L1317
.L1284:
	ldr	r3, [fp, #-76]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-76]
	add	r2, r2, #16
	str	r2, [r3, #4]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	add	r3, r3, #19
	lsr	r3, r3, #2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	str	r3, [fp, #-76]
	b	.L1317
.L1286:
	ldr	r3, [fp, #-76]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-76]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-76]
	add	r3, r3, #8
	str	r3, [fp, #-76]
	b	.L1317
.L1288:
	ldr	r3, [fp, #-76]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-76]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-76]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-76]
	add	r3, r3, #12
	str	r3, [fp, #-76]
.L1317:
	nop
	sub	r3, fp, #20
	mov	r1, r3
	ldr	r0, [fp, #-68]
	bl	get_tok_str
	mov	r2, r0
	sub	r3, fp, #36
	mov	r1, r2
	mov	r0, r3
	bl	cstr_cat
	mov	r3, #1
	str	r3, [fp, #-64]
.L1281:
	ldr	r3, [fp, #-76]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L1290
	sub	r3, fp, #36
	mov	r1, #0
	mov	r0, r3
	bl	cstr_ccat
	sub	r3, fp, #36
	str	r3, [fp, #-20]
	sub	r2, fp, #20
	sub	r3, fp, #52
	mov	r1, #181
	mov	r0, r3
	bl	tok_str_add2
	sub	r3, fp, #36
	mov	r0, r3
	bl	cstr_free
	b	.L1291
.L1280:
	sub	r2, fp, #20
	sub	r3, fp, #52
	ldr	r1, [fp, #-68]
	mov	r0, r3
	bl	tok_str_add2
	b	.L1291
.L1271:
	ldr	r3, [fp, #-68]
	cmp	r3, #255
	ble	.L1292
	ldr	r1, [fp, #-68]
	ldr	r0, [fp, #-88]
	bl	sym_find2
	str	r0, [fp, #-60]
	ldr	r3, [fp, #-60]
	cmp	r3, #0
	beq	.L1293
	ldr	r3, [fp, #-60]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-84]
	ldr	r3, [r3]
	cmp	r3, #182
	beq	.L1294
	ldr	r3, [fp, #-72]
	cmp	r3, #182
	bne	.L1295
.L1294:
	ldr	r3, .L1321+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L1318
	ldr	r3, [fp, #-60]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	beq	.L1318
	ldr	r3, [fp, #-72]
	cmp	r3, #182
	bne	.L1318
	ldr	r3, [fp, #-48]
	cmp	r3, #1
	ble	.L1318
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-48]
	sub	r3, r3, #-1073741822
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #44
	bne	.L1318
	ldr	r3, [fp, #-76]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L1297
	ldr	r3, [fp, #-48]
	sub	r3, r3, #2
	str	r3, [fp, #-48]
	b	.L1299
.L1297:
	ldr	r3, [fp, #-48]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	b	.L1308
.L1318:
	nop
.L1296:
.L1308:
	ldr	r3, [fp, #-76]
	add	r2, r3, #4
	str	r2, [fp, #-76]
	ldr	r3, [r3]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	sub	r3, r3, #179
	cmp	r3, #27
	ldrls	pc, [pc, r3, asl #2]
	b	.L1319
.L1302:
	.word	.L1304
	.word	.L1304
	.word	.L1301
	.word	.L1319
	.word	.L1304
	.word	.L1301
	.word	.L1304
	.word	.L1304
	.word	.L1319
	.word	.L1319
	.word	.L1319
	.word	.L1319
	.word	.L1319
	.word	.L1303
	.word	.L1305
	.word	.L1319
	.word	.L1319
	.word	.L1319
	.word	.L1319
	.word	.L1319
	.word	.L1319
	.word	.L1304
	.word	.L1303
	.word	.L1303
	.word	.L1319
	.word	.L1319
	.word	.L1319
	.word	.L1301
.L1304:
	ldr	r3, [fp, #-76]
	add	r2, r3, #4
	str	r2, [fp, #-76]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	b	.L1319
.L1301:
	ldr	r3, [fp, #-76]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-76]
	add	r2, r2, #16
	str	r2, [r3, #4]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	add	r3, r3, #19
	lsr	r3, r3, #2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	str	r3, [fp, #-76]
	b	.L1319
.L1303:
	ldr	r3, [fp, #-76]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-76]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-76]
	add	r3, r3, #8
	str	r3, [fp, #-76]
	b	.L1319
.L1305:
	ldr	r3, [fp, #-76]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-76]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-76]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-76]
	add	r3, r3, #12
	str	r3, [fp, #-76]
.L1319:
	nop
	ldr	r3, [fp, #-56]
	cmp	r3, #0
	beq	.L1320
	sub	r2, fp, #20
	sub	r3, fp, #52
	ldr	r1, [fp, #-56]
	mov	r0, r3
	bl	tok_str_add2
	b	.L1308
.L1320:
	nop
.L1299:
	b	.L1291
.L1295:
	sub	r0, fp, #52
	mov	r3, #0
	ldr	r2, [fp, #-76]
	ldr	r1, [fp, #-80]
	bl	macro_subst
	b	.L1291
.L1293:
	sub	r3, fp, #52
	ldr	r1, [fp, #-68]
	mov	r0, r3
	bl	tok_str_add
	b	.L1291
.L1292:
	sub	r2, fp, #20
	sub	r3, fp, #52
	ldr	r1, [fp, #-68]
	mov	r0, r3
	bl	tok_str_add2
.L1291:
	ldr	r3, [fp, #-68]
	str	r3, [fp, #-72]
	b	.L1310
.L1314:
	nop
	b	.L1270
.L1316:
	nop
.L1270:
	sub	r3, fp, #52
	mov	r1, #0
	mov	r0, r3
	bl	tok_str_add
	ldr	r3, [fp, #-52]
	ldr	r2, .L1321
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1312
	bl	__stack_chk_fail
.L1312:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1322:
	.align	2
.L1321:
	.word	.LC79
	.word	gnu_ext
	.size	macro_arg_subst, .-macro_arg_subst
	.section	.rodata
	.align	2
	.type	ab_month_name, %object
	.size	ab_month_name, 48
ab_month_name:
	.ascii	"Jan\000"
	.ascii	"Feb\000"
	.ascii	"Mar\000"
	.ascii	"Apr\000"
	.ascii	"May\000"
	.ascii	"Jun\000"
	.ascii	"Jul\000"
	.ascii	"Aug\000"
	.ascii	"Sep\000"
	.ascii	"Oct\000"
	.ascii	"Nov\000"
	.ascii	"Dec\000"
	.align	2
.LC80:
	.ascii	"%d\000"
	.align	2
.LC81:
	.ascii	"%s %2d %d\000"
	.align	2
.LC82:
	.ascii	"%02d:%02d:%02d\000"
	.align	2
.LC83:
	.ascii	"macro '%s' used with too many args\000"
	.align	2
.LC84:
	.ascii	",\000"
	.align	2
.LC85:
	.ascii	"macro '%s' used with too few args\000"
	.align	2
.LC86:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	macro_subst_tok, %function
macro_subst_tok:
	@ args = 0, pretend = 0, frame = 144
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #152
	str	r0, [fp, #-136]
	str	r1, [fp, #-140]
	str	r2, [fp, #-144]
	str	r3, [fp, #-148]
	ldr	r3, .L1361
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L1361+4
	ldr	r3, [r3]
	ldr	r2, .L1361+8
	cmp	r3, r2
	bne	.L1324
	ldr	r3, .L1361+12
	ldr	r3, [r3]
	ldr	r3, [r3, #12]
	sub	r0, fp, #40
	ldr	r2, .L1361+16
	mov	r1, #32
	bl	snprintf
	sub	r3, fp, #40
	str	r3, [fp, #-100]
	mov	r3, #206
	str	r3, [fp, #-104]
	b	.L1325
.L1324:
	ldr	r3, .L1361+4
	ldr	r3, [r3]
	ldr	r2, .L1361+20
	cmp	r3, r2
	bne	.L1326
	ldr	r3, .L1361+12
	ldr	r3, [r3]
	add	r3, r3, #540
	add	r3, r3, #1
	str	r3, [fp, #-100]
	b	.L1327
.L1326:
	ldr	r3, .L1361+4
	ldr	r3, [r3]
	cmp	r3, #328
	beq	.L1328
	ldr	r3, .L1361+4
	ldr	r3, [r3]
	ldr	r2, .L1361+24
	cmp	r3, r2
	bne	.L1329
.L1328:
	sub	r3, fp, #84
	mov	r0, r3
	bl	time
	sub	r3, fp, #84
	mov	r0, r3
	bl	localtime
	str	r0, [fp, #-88]
	ldr	r3, .L1361+4
	ldr	r3, [r3]
	cmp	r3, #328
	bne	.L1330
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #16]
	lsl	r3, r3, #2
	ldr	r2, .L1361+28
	add	r1, r3, r2
	ldr	r3, [fp, #-88]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #20]
	add	r3, r3, #1888
	add	r3, r3, #12
	sub	r0, fp, #40
	str	r3, [sp, #4]
	str	r2, [sp]
	mov	r3, r1
	ldr	r2, .L1361+32
	mov	r1, #32
	bl	snprintf
	b	.L1331
.L1330:
	ldr	r3, [fp, #-88]
	ldr	r1, [r3, #8]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-88]
	ldr	r2, [r2]
	sub	r0, fp, #40
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, r1
	ldr	r2, .L1361+36
	mov	r1, #32
	bl	snprintf
.L1331:
	sub	r3, fp, #40
	str	r3, [fp, #-100]
.L1327:
	mov	r3, #181
	str	r3, [fp, #-104]
.L1325:
	sub	r3, fp, #68
	mov	r0, r3
	bl	cstr_new
	sub	r3, fp, #68
	ldr	r1, [fp, #-100]
	mov	r0, r3
	bl	cstr_cat
	sub	r3, fp, #68
	mov	r1, #0
	mov	r0, r3
	bl	cstr_ccat
	sub	r3, fp, #68
	str	r3, [fp, #-52]
	sub	r3, fp, #52
	mov	r2, r3
	ldr	r1, [fp, #-104]
	ldr	r0, [fp, #-136]
	bl	tok_str_add2
	sub	r3, fp, #68
	mov	r0, r3
	bl	cstr_free
	b	.L1332
.L1329:
	ldr	r3, [fp, #-144]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-112]
	mov	r3, #0
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-144]
	ldr	r3, [r3, #12]
	cmp	r3, #1
	bne	.L1333
	nop
.L1334:
	ldr	r3, .L1361+40
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L1335
	ldr	r3, .L1361+40
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-108]
	cmp	r3, #0
	bne	.L1336
	ldr	r3, [fp, #-148]
	cmp	r3, #0
	beq	.L1336
	ldr	r3, [fp, #-148]
	ldr	r3, [r3]
	str	r3, [fp, #-96]
	ldr	r3, .L1361+40
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-96]
	cmp	r3, #0
	beq	.L1334
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #4]
	ldr	r2, .L1361+40
	str	r3, [r2]
	ldr	r3, [fp, #-96]
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-96]
	ldr	r2, [r3]
	ldr	r3, [fp, #-148]
	str	r2, [r3]
	b	.L1334
.L1335:
	ldr	r3, .L1361+12
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L1361+44
	str	r2, [r3]
	b	.L1338
.L1339:
	bl	minp
.L1338:
	ldr	r3, .L1361+44
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_space
	mov	r3, r0
	cmp	r3, #0
	bne	.L1339
	ldr	r3, .L1361+44
	ldr	r3, [r3]
	cmp	r3, #10
	beq	.L1339
	ldr	r3, .L1361+44
	ldr	r3, [r3]
	str	r3, [fp, #-108]
.L1336:
	ldr	r3, [fp, #-108]
	cmp	r3, #40
	beq	.L1340
	mvn	r3, #0
	b	.L1358
.L1340:
	bl	next_nomacro
	bl	next_nomacro
	mov	r3, #0
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-144]
	ldr	r3, [r3, #20]
	str	r3, [fp, #-124]
.L1354:
	ldr	r3, [fp, #-128]
	cmp	r3, #0
	bne	.L1342
	ldr	r3, [fp, #-124]
	cmp	r3, #0
	bne	.L1342
	ldr	r3, .L1361+4
	ldr	r3, [r3]
	cmp	r3, #41
	beq	.L1360
.L1342:
	ldr	r3, [fp, #-124]
	cmp	r3, #0
	bne	.L1344
	ldr	r3, [fp, #-144]
	ldr	r3, [r3]
	mov	r1, #0
	mov	r0, r3
	bl	get_tok_str
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L1361+48
	bl	error
.L1344:
	sub	r3, fp, #84
	mov	r0, r3
	bl	tok_str_new
	mov	r3, #0
	str	r3, [fp, #-116]
	b	.L1345
.L1350:
	ldr	r3, .L1361+4
	ldr	r3, [r3]
	cmp	r3, #40
	bne	.L1346
	ldr	r3, [fp, #-116]
	add	r3, r3, #1
	str	r3, [fp, #-116]
	b	.L1347
.L1346:
	ldr	r3, .L1361+4
	ldr	r3, [r3]
	cmp	r3, #41
	bne	.L1347
	ldr	r3, [fp, #-116]
	sub	r3, r3, #1
	str	r3, [fp, #-116]
.L1347:
	ldr	r3, .L1361+4
	ldr	r1, [r3]
	sub	r3, fp, #84
	ldr	r2, .L1361+52
	mov	r0, r3
	bl	tok_str_add2
	bl	next_nomacro
.L1345:
	ldr	r3, [fp, #-116]
	cmp	r3, #0
	bgt	.L1348
	ldr	r3, .L1361+4
	ldr	r3, [r3]
	cmp	r3, #41
	beq	.L1349
	ldr	r3, .L1361+4
	ldr	r3, [r3]
	cmp	r3, #44
	bne	.L1348
	ldr	r3, [fp, #-124]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	beq	.L1349
.L1348:
	ldr	r3, .L1361+4
	ldr	r3, [r3]
	cmn	r3, #1
	bne	.L1350
.L1349:
	sub	r3, fp, #84
	mov	r1, #0
	mov	r0, r3
	bl	tok_str_add
	ldr	r3, [fp, #-124]
	ldr	r3, [r3]
	bic	r1, r3, #536870912
	ldr	r3, [fp, #-124]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-84]
	sub	r0, fp, #128
	bl	sym_push2
	ldr	r3, [fp, #-124]
	ldr	r3, [r3, #20]
	str	r3, [fp, #-124]
	ldr	r3, .L1361+4
	ldr	r3, [r3]
	cmp	r3, #41
	bne	.L1351
	ldr	r3, [fp, #-124]
	cmp	r3, #0
	beq	.L1343
	ldr	r3, [fp, #-124]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	beq	.L1343
	ldr	r3, .L1361+56
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L1343
	b	.L1352
.L1351:
	ldr	r3, .L1361+4
	ldr	r3, [r3]
	cmp	r3, #44
	beq	.L1353
	ldr	r0, .L1361+60
	bl	expect
.L1353:
	bl	next_nomacro
.L1352:
	b	.L1354
.L1360:
	nop
.L1343:
	ldr	r3, [fp, #-124]
	cmp	r3, #0
	beq	.L1355
	ldr	r3, [fp, #-144]
	ldr	r3, [r3]
	mov	r1, #0
	mov	r0, r3
	bl	get_tok_str
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L1361+64
	bl	error
.L1355:
	ldr	r3, [fp, #-128]
	mov	r2, r3
	ldr	r1, [fp, #-112]
	ldr	r0, [fp, #-140]
	bl	macro_arg_subst
	str	r0, [fp, #-112]
	ldr	r3, [fp, #-128]
	str	r3, [fp, #-124]
	b	.L1356
.L1357:
	ldr	r3, [fp, #-124]
	ldr	r3, [r3, #24]
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-124]
	ldr	r3, [r3, #8]
	mov	r0, r3
	bl	tok_str_free
	ldr	r0, [fp, #-124]
	bl	sym_free
	ldr	r3, [fp, #-92]
	str	r3, [fp, #-124]
.L1356:
	ldr	r3, [fp, #-124]
	cmp	r3, #0
	bne	.L1357
	mov	r3, #1
	str	r3, [fp, #-120]
.L1333:
	ldr	r3, [fp, #-144]
	ldr	r1, [r3]
	mov	r3, #0
	mov	r2, #0
	ldr	r0, [fp, #-140]
	bl	sym_push2
	ldr	r3, [fp, #-148]
	ldr	r2, [fp, #-112]
	ldr	r1, [fp, #-140]
	ldr	r0, [fp, #-136]
	bl	macro_subst
	ldr	r3, [fp, #-140]
	ldr	r3, [r3]
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-140]
	str	r2, [r3]
	ldr	r0, [fp, #-92]
	bl	sym_free
	ldr	r3, [fp, #-120]
	cmp	r3, #0
	beq	.L1332
	ldr	r0, [fp, #-112]
	bl	tok_str_free
.L1332:
	mov	r3, #0
.L1358:
	ldr	r2, .L1361
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1359
	bl	__stack_chk_fail
.L1359:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1362:
	.align	2
.L1361:
	.word	.LC86
	.word	tok
	.word	326
	.word	file
	.word	.LC80
	.word	327
	.word	329
	.word	ab_month_name
	.word	.LC81
	.word	.LC82
	.word	macro_ptr
	.word	ch
	.word	.LC83
	.word	tokc
	.word	gnu_ext
	.word	.LC84
	.word	.LC85
	.size	macro_subst_tok, .-macro_subst_tok
	.section	.rodata
	.align	2
.LC87:
	.ascii	"pasting \"%s\" and \"%s\" does not give a valid pre"
	.ascii	"processing token\000"
	.align	2
.LC88:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	macro_twosharps, %function
macro_twosharps:
	@ args = 0, pretend = 0, frame = 104
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #108
	str	r0, [fp, #-112]
	ldr	r3, .L1428
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	sub	r3, fp, #28
	mov	r2, #8
	mov	r1, #0
	mov	r0, r3
	bl	memset
	ldr	r3, [fp, #-112]
	str	r3, [fp, #-96]
.L1375:
	ldr	r3, [fp, #-112]
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-112]
	add	r2, r3, #4
	str	r2, [fp, #-112]
	ldr	r3, [r3]
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	sub	r3, r3, #179
	cmp	r3, #27
	ldrls	pc, [pc, r3, asl #2]
	b	.L1418
.L1366:
	.word	.L1368
	.word	.L1368
	.word	.L1365
	.word	.L1418
	.word	.L1368
	.word	.L1365
	.word	.L1368
	.word	.L1368
	.word	.L1418
	.word	.L1418
	.word	.L1418
	.word	.L1418
	.word	.L1418
	.word	.L1367
	.word	.L1369
	.word	.L1418
	.word	.L1418
	.word	.L1418
	.word	.L1418
	.word	.L1418
	.word	.L1418
	.word	.L1368
	.word	.L1367
	.word	.L1367
	.word	.L1418
	.word	.L1418
	.word	.L1418
	.word	.L1365
.L1368:
	ldr	r3, [fp, #-112]
	add	r2, r3, #4
	str	r2, [fp, #-112]
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	b	.L1418
.L1365:
	ldr	r3, [fp, #-112]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-112]
	add	r2, r2, #16
	str	r2, [r3, #4]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	add	r3, r3, #19
	lsr	r3, r3, #2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-112]
	add	r3, r2, r3
	str	r3, [fp, #-112]
	b	.L1418
.L1367:
	ldr	r3, [fp, #-112]
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-112]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-112]
	add	r3, r3, #8
	str	r3, [fp, #-112]
	b	.L1418
.L1369:
	ldr	r3, [fp, #-112]
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-112]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-112]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-112]
	add	r3, r3, #12
	str	r3, [fp, #-112]
.L1418:
	nop
	ldr	r3, [fp, #-88]
	cmp	r3, #0
	bne	.L1371
	mov	r3, #0
	b	.L1413
.L1371:
	ldr	r3, [fp, #-112]
	ldr	r3, [r3]
	cmp	r3, #182
	beq	.L1419
	b	.L1375
.L1419:
	nop
	sub	r3, fp, #44
	mov	r0, r3
	bl	cstr_new
	sub	r3, fp, #60
	mov	r0, r3
	bl	tok_str_new
	ldr	r2, .L1428+4
	ldr	r3, [fp, #-88]
	str	r3, [r2]
	ldr	r1, .L1428+8
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-96]
	str	r3, [fp, #-108]
	b	.L1376
.L1384:
	ldr	r3, [fp, #-108]
	add	r2, r3, #4
	str	r2, [fp, #-108]
	ldr	r3, [r3]
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	sub	r3, r3, #179
	cmp	r3, #27
	ldrls	pc, [pc, r3, asl #2]
	b	.L1420
.L1379:
	.word	.L1381
	.word	.L1381
	.word	.L1378
	.word	.L1420
	.word	.L1381
	.word	.L1378
	.word	.L1381
	.word	.L1381
	.word	.L1420
	.word	.L1420
	.word	.L1420
	.word	.L1420
	.word	.L1420
	.word	.L1380
	.word	.L1382
	.word	.L1420
	.word	.L1420
	.word	.L1420
	.word	.L1420
	.word	.L1420
	.word	.L1420
	.word	.L1381
	.word	.L1380
	.word	.L1380
	.word	.L1420
	.word	.L1420
	.word	.L1420
	.word	.L1378
.L1381:
	ldr	r3, [fp, #-108]
	add	r2, r3, #4
	str	r2, [fp, #-108]
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	b	.L1420
.L1378:
	ldr	r3, [fp, #-108]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-108]
	add	r2, r2, #16
	str	r2, [r3, #4]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	add	r3, r3, #19
	lsr	r3, r3, #2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-108]
	add	r3, r2, r3
	str	r3, [fp, #-108]
	b	.L1420
.L1380:
	ldr	r3, [fp, #-108]
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-108]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-108]
	add	r3, r3, #8
	str	r3, [fp, #-108]
	b	.L1420
.L1382:
	ldr	r3, [fp, #-108]
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-108]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-108]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-108]
	add	r3, r3, #12
	str	r3, [fp, #-108]
.L1420:
	nop
	sub	r2, fp, #28
	sub	r3, fp, #60
	ldr	r1, [fp, #-88]
	mov	r0, r3
	bl	tok_str_add2
.L1376:
	ldr	r2, [fp, #-108]
	ldr	r3, [fp, #-92]
	cmp	r2, r3
	bcc	.L1384
	ldr	r3, .L1428+12
	ldr	r3, [r3]
	str	r3, [fp, #-84]
	ldr	r2, .L1428+12
	ldr	r3, [fp, #-112]
	str	r3, [r2]
	b	.L1385
.L1409:
	ldr	r3, .L1428+12
	ldr	r3, [r3]
	add	r3, r3, #4
	ldr	r2, .L1428+12
	str	r3, [r2]
	ldr	r3, .L1428+12
	ldr	r3, [r3]
	str	r3, [fp, #-92]
	ldr	r3, .L1428+12
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	cmp	r3, #0
	beq	.L1385
	ldr	r3, .L1428+12
	ldr	r3, [r3]
	add	r2, r3, #4
	ldr	r1, .L1428+12
	str	r2, [r1]
	ldr	r3, [r3]
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	sub	r3, r3, #179
	cmp	r3, #27
	ldrls	pc, [pc, r3, asl #2]
	b	.L1421
.L1388:
	.word	.L1390
	.word	.L1390
	.word	.L1387
	.word	.L1421
	.word	.L1390
	.word	.L1387
	.word	.L1390
	.word	.L1390
	.word	.L1421
	.word	.L1421
	.word	.L1421
	.word	.L1421
	.word	.L1421
	.word	.L1389
	.word	.L1391
	.word	.L1421
	.word	.L1421
	.word	.L1421
	.word	.L1421
	.word	.L1421
	.word	.L1421
	.word	.L1390
	.word	.L1389
	.word	.L1389
	.word	.L1421
	.word	.L1421
	.word	.L1421
	.word	.L1387
.L1390:
	ldr	r3, .L1428+12
	ldr	r3, [r3]
	add	r2, r3, #4
	ldr	r1, .L1428+12
	str	r2, [r1]
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	b	.L1421
.L1387:
	ldr	r3, .L1428+12
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, .L1428+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-28]
	add	r2, r2, #16
	str	r2, [r3, #4]
	ldr	r3, .L1428+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	add	r3, r3, #19
	lsr	r3, r3, #2
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, .L1428+12
	str	r3, [r2]
	b	.L1421
.L1389:
	ldr	r3, .L1428+12
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, .L1428+12
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-24]
	ldr	r3, .L1428+12
	ldr	r3, [r3]
	add	r3, r3, #8
	ldr	r2, .L1428+12
	str	r3, [r2]
	b	.L1421
.L1391:
	ldr	r3, .L1428+12
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, .L1428+12
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-24]
	ldr	r3, .L1428+12
	ldr	r3, [r3]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-20]
	ldr	r3, .L1428+12
	ldr	r3, [r3]
	add	r3, r3, #12
	ldr	r2, .L1428+12
	str	r3, [r2]
.L1421:
	nop
	sub	r3, fp, #44
	mov	r0, r3
	bl	cstr_free
	ldr	r3, .L1428+4
	ldr	r3, [r3]
	ldr	r1, .L1428+8
	mov	r0, r3
	bl	get_tok_str
	str	r0, [fp, #-80]
	sub	r3, fp, #44
	ldr	r1, [fp, #-80]
	mov	r0, r3
	bl	cstr_cat
	sub	r3, fp, #28
	mov	r1, r3
	ldr	r0, [fp, #-88]
	bl	get_tok_str
	str	r0, [fp, #-76]
	sub	r3, fp, #44
	ldr	r1, [fp, #-76]
	mov	r0, r3
	bl	cstr_cat
	sub	r3, fp, #44
	mov	r1, #0
	mov	r0, r3
	bl	cstr_ccat
	ldr	r3, .L1428+4
	ldr	r3, [r3]
	cmp	r3, #255
	bgt	.L1393
	ldr	r3, .L1428+4
	ldr	r3, [r3]
	cmp	r3, #206
	bne	.L1394
.L1393:
	ldr	r3, [fp, #-88]
	cmp	r3, #255
	bgt	.L1395
	ldr	r3, [fp, #-88]
	cmp	r3, #206
	bne	.L1394
.L1395:
	ldr	r3, .L1428+4
	ldr	r3, [r3]
	cmp	r3, #206
	bne	.L1396
	ldr	r2, .L1428+8
	sub	r3, fp, #44
	str	r3, [r2]
	b	.L1385
.L1396:
	ldr	r3, [fp, #-88]
	cmp	r3, #206
	bne	.L1398
	ldr	r3, [fp, #-76]
	str	r3, [fp, #-104]
.L1402:
	ldr	r3, [fp, #-104]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	cmp	r3, #0
	beq	.L1422
	ldr	r3, [fp, #-104]
	add	r3, r3, #1
	str	r3, [fp, #-104]
	ldr	r0, [fp, #-72]
	bl	isnum
	mov	r3, r0
	cmp	r3, #0
	bne	.L1402
	ldr	r0, [fp, #-72]
	bl	isid
	mov	r3, r0
	cmp	r3, #0
	beq	.L1423
	b	.L1402
.L1422:
	nop
.L1398:
	ldr	r4, [fp, #-40]
	ldr	r3, [fp, #-40]
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	tok_alloc
	str	r0, [fp, #-68]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #20]
	ldr	r2, .L1428+4
	str	r3, [r2]
	b	.L1385
.L1394:
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-64]
	ldr	r1, .L1428+16
	ldr	r0, [fp, #-64]
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L1403
	ldr	r3, .L1428+4
	mov	r2, #130
	str	r2, [r3]
	b	.L1385
.L1403:
	ldr	r1, .L1428+20
	ldr	r0, [fp, #-64]
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L1404
	ldr	r3, .L1428+4
	mov	r2, #129
	str	r2, [r3]
	b	.L1385
.L1404:
	ldr	r0, [fp, #-64]
	bl	strlen
	mov	r3, r0
	cmp	r3, #2
	bne	.L1424
	ldr	r3, .L1428+24
	str	r3, [fp, #-100]
.L1408:
	ldr	r3, [fp, #-100]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L1425
	ldr	r3, [fp, #-100]
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-64]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r2, r3
	bne	.L1406
	ldr	r3, [fp, #-100]
	add	r3, r3, #1
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r2, r3
	beq	.L1426
.L1406:
	ldr	r3, [fp, #-100]
	add	r3, r3, #3
	str	r3, [fp, #-100]
	b	.L1408
.L1426:
	nop
	ldr	r3, [fp, #-100]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L1428+4
	str	r2, [r3]
	b	.L1385
.L1423:
	nop
	b	.L1401
.L1424:
	nop
	b	.L1401
.L1425:
	nop
.L1401:
	sub	r3, fp, #44
	mov	r0, r3
	bl	cstr_free
	ldr	r3, .L1428+4
	ldr	r3, [r3]
	ldr	r1, .L1428+8
	mov	r0, r3
	bl	get_tok_str
	str	r0, [fp, #-80]
	sub	r3, fp, #44
	ldr	r1, [fp, #-80]
	mov	r0, r3
	bl	cstr_cat
	sub	r3, fp, #44
	mov	r1, #0
	mov	r0, r3
	bl	cstr_ccat
	sub	r3, fp, #28
	mov	r1, r3
	ldr	r0, [fp, #-88]
	bl	get_tok_str
	str	r0, [fp, #-76]
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-76]
	mov	r1, r3
	ldr	r0, .L1428+28
	bl	warning
	ldr	r3, .L1428+4
	ldr	r1, [r3]
	sub	r3, fp, #60
	ldr	r2, .L1428+8
	mov	r0, r3
	bl	tok_str_add2
	ldr	r2, .L1428+4
	ldr	r3, [fp, #-88]
	str	r3, [r2]
	ldr	r1, .L1428+8
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	stm	r1, {r2-r3}
.L1385:
	ldr	r3, .L1428+12
	ldr	r3, [r3]
	ldr	r3, [r3]
	cmp	r3, #182
	beq	.L1409
	ldr	r3, .L1428+4
	ldr	r1, [r3]
	sub	r3, fp, #60
	ldr	r2, .L1428+8
	mov	r0, r3
	bl	tok_str_add2
	bl	next_nomacro
	ldr	r3, .L1428+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L1427
	b	.L1385
.L1427:
	nop
	ldr	r2, .L1428+12
	ldr	r3, [fp, #-84]
	str	r3, [r2]
	sub	r3, fp, #44
	mov	r0, r3
	bl	cstr_free
	sub	r3, fp, #60
	mov	r1, #0
	mov	r0, r3
	bl	tok_str_add
	ldr	r3, [fp, #-60]
.L1413:
	ldr	r2, .L1428
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1414
	bl	__stack_chk_fail
.L1414:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1429:
	.align	2
.L1428:
	.word	.LC88
	.word	tok
	.word	tokc
	.word	macro_ptr
	.word	.LC30
	.word	.LC29
	.word	tok_two_chars
	.word	.LC87
	.size	macro_twosharps, .-macro_twosharps
	.section	.rodata
	.align	2
.LC89:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	macro_subst, %function
macro_subst:
	@ args = 0, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #64
	str	r0, [fp, #-56]
	str	r1, [fp, #-60]
	str	r2, [fp, #-64]
	str	r3, [fp, #-68]
	ldr	r3, .L1456
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-64]
	str	r3, [fp, #-48]
	ldr	r0, [fp, #-48]
	bl	macro_twosharps
	str	r0, [fp, #-44]
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	beq	.L1447
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-48]
.L1447:
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	beq	.L1450
	ldr	r3, [fp, #-48]
	add	r2, r3, #4
	str	r2, [fp, #-48]
	ldr	r3, [r3]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	sub	r3, r3, #179
	cmp	r3, #27
	ldrls	pc, [pc, r3, asl #2]
	b	.L1451
.L1436:
	.word	.L1438
	.word	.L1438
	.word	.L1435
	.word	.L1451
	.word	.L1438
	.word	.L1435
	.word	.L1438
	.word	.L1438
	.word	.L1451
	.word	.L1451
	.word	.L1451
	.word	.L1451
	.word	.L1451
	.word	.L1437
	.word	.L1439
	.word	.L1451
	.word	.L1451
	.word	.L1451
	.word	.L1451
	.word	.L1451
	.word	.L1451
	.word	.L1438
	.word	.L1437
	.word	.L1437
	.word	.L1451
	.word	.L1451
	.word	.L1451
	.word	.L1435
.L1438:
	ldr	r3, [fp, #-48]
	add	r2, r3, #4
	str	r2, [fp, #-48]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	b	.L1451
.L1435:
	ldr	r3, [fp, #-48]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-48]
	add	r2, r2, #16
	str	r2, [r3, #4]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	add	r3, r3, #19
	lsr	r3, r3, #2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	str	r3, [fp, #-48]
	b	.L1451
.L1437:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-48]
	add	r3, r3, #8
	str	r3, [fp, #-48]
	b	.L1451
.L1439:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-48]
	add	r3, r3, #12
	str	r3, [fp, #-48]
.L1451:
	nop
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	beq	.L1452
	ldr	r0, [fp, #-40]
	bl	define_find
	str	r0, [fp, #-36]
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L1453
	ldr	r3, [fp, #-60]
	ldr	r3, [r3]
	ldr	r1, [fp, #-40]
	mov	r0, r3
	bl	sym_find2
	mov	r3, r0
	cmp	r3, #0
	bne	.L1454
	ldr	r3, .L1456+4
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-68]
	cmp	r3, #0
	beq	.L1444
	ldr	r3, [fp, #-68]
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-68]
	sub	r2, fp, #28
	str	r2, [r3]
.L1444:
	ldr	r2, .L1456+4
	ldr	r3, [fp, #-48]
	str	r3, [r2]
	ldr	r2, .L1456+8
	ldr	r3, [fp, #-40]
	str	r3, [r2]
	ldr	r3, [fp, #-68]
	ldr	r2, [fp, #-36]
	ldr	r1, [fp, #-60]
	ldr	r0, [fp, #-56]
	bl	macro_subst_tok
	str	r0, [fp, #-32]
	ldr	r3, .L1456+4
	ldr	r3, [r3]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-24]
	ldr	r2, .L1456+4
	str	r3, [r2]
	ldr	r3, [fp, #-68]
	cmp	r3, #0
	beq	.L1445
	ldr	r3, [fp, #-68]
	ldr	r2, [r3]
	sub	r3, fp, #28
	cmp	r2, r3
	bne	.L1445
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-68]
	str	r2, [r3]
.L1445:
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	beq	.L1447
	b	.L1442
.L1453:
	nop
	b	.L1442
.L1454:
	nop
.L1442:
	sub	r3, fp, #20
	mov	r2, r3
	ldr	r1, [fp, #-40]
	ldr	r0, [fp, #-56]
	bl	tok_str_add2
	b	.L1447
.L1450:
	nop
	b	.L1433
.L1452:
	nop
.L1433:
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	beq	.L1455
	ldr	r0, [fp, #-44]
	bl	tok_str_free
.L1455:
	nop
	ldr	r3, .L1456
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L1449
	bl	__stack_chk_fail
.L1449:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1457:
	.align	2
.L1456:
	.word	.LC89
	.word	macro_ptr
	.word	tok
	.size	macro_subst, .-macro_subst
	.section	.rodata
	.align	2
.LC90:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	next, %function
next:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	ldr	r3, .L1467
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
.L1459:
	bl	next_nomacro
	ldr	r3, .L1467+4
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L1460
	ldr	r3, .L1467+8
	ldr	r3, [r3]
	cmp	r3, #255
	ble	.L1461
	ldr	r3, .L1467+12
	ldr	r3, [r3]
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L1461
	ldr	r3, .L1467+8
	ldr	r3, [r3]
	mov	r0, r3
	bl	define_find
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	beq	.L1461
	sub	r3, fp, #24
	mov	r0, r3
	bl	tok_str_new
	mov	r3, #0
	str	r3, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-32]
	sub	r3, fp, #32
	sub	r1, fp, #36
	sub	r0, fp, #24
	ldr	r2, [fp, #-28]
	bl	macro_subst_tok
	mov	r3, r0
	cmp	r3, #0
	bne	.L1461
	sub	r3, fp, #24
	mov	r1, #0
	mov	r0, r3
	bl	tok_str_add
	ldr	r3, [fp, #-24]
	ldr	r2, .L1467+4
	str	r3, [r2]
	ldr	r3, [fp, #-24]
	ldr	r2, .L1467+16
	str	r3, [r2]
	b	.L1459
.L1460:
	ldr	r3, .L1467+8
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L1461
	ldr	r3, .L1467+20
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L1462
	ldr	r3, .L1467+24
	ldr	r3, [r3]
	ldr	r2, .L1467+4
	str	r3, [r2]
	ldr	r3, .L1467+20
	mov	r2, #0
	str	r2, [r3]
	b	.L1459
.L1462:
	ldr	r3, .L1467+16
	ldr	r3, [r3]
	mov	r0, r3
	bl	tok_str_free
	ldr	r3, .L1467+4
	mov	r2, #0
	str	r2, [r3]
	b	.L1459
.L1461:
	ldr	r3, .L1467+8
	ldr	r3, [r3]
	cmp	r3, #206
	bne	.L1466
	ldr	r3, .L1467+12
	ldr	r3, [r3]
	and	r3, r3, #2
	cmp	r3, #0
	beq	.L1466
	ldr	r3, .L1467+28
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	parse_number
.L1466:
	nop
	ldr	r3, .L1467
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L1465
	bl	__stack_chk_fail
.L1465:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1468:
	.align	2
.L1467:
	.word	.LC90
	.word	macro_ptr
	.word	tok
	.word	parse_flags
	.word	macro_ptr_allocated
	.word	unget_buffer_enabled
	.word	unget_saved_macro_ptr
	.word	tokc
	.size	next, .-next
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	unget_tok, %function
unget_tok:
	@ 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, .L1472
	ldr	r3, [r3]
	ldr	r2, .L1472+4
	str	r3, [r2]
	ldr	r3, .L1472+8
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, .L1472+12
	str	r3, [fp, #-12]
	ldr	r2, .L1472
	ldr	r3, [fp, #-12]
	str	r3, [r2]
	ldr	r3, [fp, #-12]
	add	r2, r3, #4
	str	r2, [fp, #-12]
	ldr	r2, .L1472+16
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r3, .L1472+16
	ldr	r3, [r3]
	mov	r0, r3
	bl	tok_ext_size
	mov	r3, r0
	sub	r3, r3, #1
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L1470
.L1471:
	ldr	r3, [fp, #-12]
	add	r2, r3, #4
	str	r2, [fp, #-12]
	ldr	r1, .L1472+20
	ldr	r2, [fp, #-16]
	ldr	r2, [r1, r2, lsl #2]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L1470:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	blt	.L1471
	ldr	r3, [fp, #-12]
	mov	r2, #0
	str	r2, [r3]
	ldr	r2, .L1472+16
	ldr	r3, [fp, #-24]
	str	r3, [r2]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1473:
	.align	2
.L1472:
	.word	macro_ptr
	.word	unget_saved_macro_ptr
	.word	unget_buffer_enabled
	.word	unget_saved_buffer
	.word	tok
	.word	tokc
	.size	unget_tok, .-unget_tok
	.align	2
	.global	swap
	.syntax unified
	.arm
	.fpu softvfp
	.type	swap, %function
swap:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-20]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	swap, .-swap
	.align	2
	.global	vsetc
	.syntax unified
	.arm
	.fpu softvfp
	.type	vsetc, %function
vsetc:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r3, .L1479
	ldr	r3, [r3]
	ldr	r2, .L1479+4
	cmp	r3, r2
	bcc	.L1476
	ldr	r0, .L1479+8
	bl	error
.L1476:
	ldr	r3, .L1479
	ldr	r3, [r3]
	ldr	r2, .L1479+12
	cmp	r3, r2
	bcc	.L1477
	ldr	r3, .L1479
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #255
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #243
	beq	.L1478
	ldr	r3, [fp, #-8]
	bic	r3, r3, #1
	cmp	r3, #244
	bne	.L1477
.L1478:
	mov	r0, #1
	bl	gv
.L1477:
	ldr	r3, .L1479
	ldr	r3, [r3]
	add	r3, r3, #32
	ldr	r2, .L1479
	str	r3, [r2]
	ldr	r3, .L1479
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	ldr	r3, .L1479
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, .L1479
	ldr	r3, [r3]
	mov	r2, #240
	strh	r2, [r3, #10]	@ movhi
	ldr	r3, .L1479
	ldr	r1, [r3]
	ldr	r3, [fp, #-24]
	ldmia	r3, {r2-r3}
	str	r2, [r1, #16]
	str	r3, [r1, #20]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1480:
	.align	2
.L1479:
	.word	vtop
	.word	vstack+8160
	.word	.LC10
	.word	vstack
	.size	vsetc, .-vsetc
	.section	.rodata
	.align	2
.LC91:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	vpushi
	.syntax unified
	.arm
	.fpu softvfp
	.type	vpushi, %function
vpushi:
	@ 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, .L1483
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-20]
	sub	r3, fp, #20
	mov	r2, r3
	mov	r1, #240
	ldr	r0, .L1483+4
	bl	vsetc
	nop
	ldr	r3, .L1483
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L1482
	bl	__stack_chk_fail
.L1482:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1484:
	.align	2
.L1483:
	.word	.LC91
	.word	int_type
	.size	vpushi, .-vpushi
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_sym_ref, %function
get_sym_ref:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	ldr	r3, .L1487
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L1487
	str	r2, [r1]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	orr	r3, r3, #256
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-12]
	bl	global_identifier_push
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	mov	r2, #752
	str	r2, [r3, #4]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-8]
	bl	put_extern_sym
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1488:
	.align	2
.L1487:
	.word	anon_sym
	.size	get_sym_ref, .-get_sym_ref
	.section	.rodata
	.align	2
.LC92:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	vpush_ref, %function
vpush_ref:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #36
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	str	r3, [fp, #-44]
	ldr	r3, .L1491
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-28]
	sub	r3, fp, #28
	mov	r2, r3
	mov	r1, #752
	ldr	r0, [fp, #-32]
	bl	vsetc
	ldr	r3, .L1491+4
	ldr	r4, [r3]
	ldr	r3, [fp, #-44]
	ldr	r2, [fp, #-40]
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	get_sym_ref
	mov	r3, r0
	str	r3, [r4, #24]
	nop
	ldr	r3, .L1491
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L1490
	bl	__stack_chk_fail
.L1490:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1492:
	.align	2
.L1491:
	.word	.LC92
	.word	vtop
	.size	vpush_ref, .-vpush_ref
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	external_global_sym, %function
external_global_sym:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r0, [fp, #-16]
	bl	sym_find
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L1494
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	orr	r3, r3, #128
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	global_identifier_push
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-24]
	orr	r2, r3, #752
	ldr	r3, [fp, #-8]
	str	r2, [r3, #4]
.L1494:
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	external_global_sym, .-external_global_sym
	.section	.rodata
	.align	2
.LC93:
	.ascii	"incompatible types for redefinition of '%s'\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	external_sym, %function
external_sym:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r0, [fp, #-16]
	bl	sym_find
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L1497
	ldr	r3, [fp, #-24]
	orr	r2, r3, #752
	mov	r3, #0
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	sym_push
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #12]
	orr	r2, r3, #128
	ldr	r3, [fp, #-8]
	str	r2, [r3, #12]
	b	.L1498
.L1497:
	ldr	r3, [fp, #-8]
	add	r3, r3, #12
	ldr	r1, [fp, #-20]
	mov	r0, r3
	bl	is_compatible_types
	mov	r3, r0
	cmp	r3, #0
	bne	.L1498
	mov	r1, #0
	ldr	r0, [fp, #-16]
	bl	get_tok_str
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L1500
	bl	error
.L1498:
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1501:
	.align	2
.L1500:
	.word	.LC93
	.size	external_sym, .-external_sym
	.section	.rodata
	.align	2
.LC94:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	vpush_global_sym, %function
vpush_global_sym:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	ldr	r3, .L1504
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r2, #0
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-36]
	bl	external_global_sym
	str	r0, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-20]
	sub	r3, fp, #20
	mov	r2, r3
	mov	r1, #752
	ldr	r0, [fp, #-32]
	bl	vsetc
	ldr	r3, .L1504+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	str	r2, [r3, #24]
	nop
	ldr	r3, .L1504
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L1503
	bl	__stack_chk_fail
.L1503:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1505:
	.align	2
.L1504:
	.word	.LC94
	.word	vtop
	.size	vpush_global_sym, .-vpush_global_sym
	.section	.rodata
	.align	2
.LC95:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	vset
	.syntax unified
	.arm
	.fpu softvfp
	.type	vset, %function
vset:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	ldr	r3, .L1508
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-20]
	sub	r3, fp, #20
	mov	r2, r3
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-24]
	bl	vsetc
	nop
	ldr	r3, .L1508
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L1507
	bl	__stack_chk_fail
.L1507:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1509:
	.align	2
.L1508:
	.word	.LC95
	.size	vset, .-vset
	.section	.rodata
	.align	2
.LC96:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	vseti
	.syntax unified
	.arm
	.fpu softvfp
	.type	vseti, %function
vseti:
	@ 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, .L1512
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-16]
	sub	r3, fp, #16
	ldr	r2, [fp, #-28]
	ldr	r1, [fp, #-24]
	mov	r0, r3
	bl	vset
	nop
	ldr	r3, .L1512
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L1511
	bl	__stack_chk_fail
.L1511:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1513:
	.align	2
.L1512:
	.word	.LC96
	.size	vseti, .-vseti
	.section	.rodata
	.align	2
.LC97:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	vswap
	.syntax unified
	.arm
	.fpu softvfp
	.type	vswap, %function
vswap:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	ldr	r3, .L1516
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L1516+4
	ldr	r3, [r3]
	sub	ip, fp, #44
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	ldr	r3, .L1516+4
	ldr	r3, [r3]
	ldr	r2, .L1516+4
	ldr	r2, [r2]
	mov	lr, r2
	sub	ip, r3, #32
	ldmia	ip!, {r0, r1, r2, r3}
	stmia	lr!, {r0, r1, r2, r3}
	ldm	ip, {r0, r1, r2, r3}
	stm	lr, {r0, r1, r2, r3}
	ldr	r3, .L1516+4
	ldr	r3, [r3]
	sub	r3, r3, #32
	mov	lr, r3
	sub	ip, fp, #44
	ldmia	ip!, {r0, r1, r2, r3}
	stmia	lr!, {r0, r1, r2, r3}
	ldm	ip, {r0, r1, r2, r3}
	stm	lr, {r0, r1, r2, r3}
	nop
	ldr	r3, .L1516
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L1515
	bl	__stack_chk_fail
.L1515:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1517:
	.align	2
.L1516:
	.word	.LC97
	.word	vtop
	.size	vswap, .-vswap
	.align	2
	.global	vpushv
	.syntax unified
	.arm
	.fpu softvfp
	.type	vpushv, %function
vpushv:
	@ 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, .L1520
	ldr	r3, [r3]
	ldr	r2, .L1520+4
	cmp	r3, r2
	bcc	.L1519
	ldr	r0, .L1520+8
	bl	error
.L1519:
	ldr	r3, .L1520
	ldr	r3, [r3]
	add	r3, r3, #32
	ldr	r2, .L1520
	str	r3, [r2]
	ldr	r3, .L1520
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	mov	ip, r2
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1521:
	.align	2
.L1520:
	.word	vtop
	.word	vstack+8160
	.word	.LC10
	.size	vpushv, .-vpushv
	.align	2
	.global	vdup
	.syntax unified
	.arm
	.fpu softvfp
	.type	vdup, %function
vdup:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L1523
	ldr	r3, [r3]
	mov	r0, r3
	bl	vpushv
	nop
	pop	{fp, pc}
.L1524:
	.align	2
.L1523:
	.word	vtop
	.size	vdup, .-vdup
	.section	.rodata
	.align	2
.LC98:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	save_reg
	.syntax unified
	.arm
	.fpu softvfp
	.type	save_reg, %function
save_reg:
	@ args = 0, pretend = 0, frame = 72
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #72
	str	r0, [fp, #-72]
	ldr	r3, .L1538
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-60]
	mov	r3, #0
	str	r3, [fp, #-64]
	ldr	r3, .L1538+4
	str	r3, [fp, #-56]
	b	.L1526
.L1536:
	ldr	r3, [fp, #-56]
	ldrh	r3, [r3, #8]
	and	r3, r3, #255
	ldr	r2, [fp, #-72]
	cmp	r2, r3
	beq	.L1527
	ldr	r3, [fp, #-56]
	ldrh	r3, [r3, #10]
	and	r3, r3, #255
	ldr	r2, [fp, #-72]
	cmp	r2, r3
	bne	.L1528
.L1527:
	ldr	r3, [fp, #-60]
	cmp	r3, #0
	bne	.L1529
	ldr	r3, [fp, #-56]
	ldrh	r3, [r3, #8]
	and	r3, r3, #255
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-56]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-56]
	ldrh	r3, [r3, #8]
	and	r3, r3, #256
	cmp	r3, #0
	bne	.L1530
	ldr	r3, [fp, #-52]
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_float
	mov	r3, r0
	cmp	r3, #0
	bne	.L1531
	ldr	r3, [fp, #-52]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #12
	beq	.L1531
.L1530:
	ldr	r3, .L1538+8
	str	r3, [fp, #-52]
.L1531:
	sub	r3, fp, #68
	mov	r1, r3
	ldr	r0, [fp, #-52]
	bl	type_size
	str	r0, [fp, #-48]
	ldr	r3, .L1538+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-48]
	sub	r2, r2, r3
	ldr	r3, [fp, #-68]
	rsb	r3, r3, #0
	and	r3, r3, r2
	ldr	r2, .L1538+12
	str	r3, [r2]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3]
	str	r3, [fp, #-44]
	ldr	r3, .L1538+16
	strh	r3, [fp, #-36]	@ movhi
	ldr	r3, .L1538+12
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	sub	r3, fp, #44
	mov	r1, r3
	ldr	r0, [fp, #-72]
	bl	store
	ldr	r3, [fp, #-72]
	cmp	r3, #3
	bne	.L1532
	ldr	r0, .L1538+20
	bl	o
.L1532:
	ldr	r3, [fp, #-52]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #12
	bne	.L1533
	ldr	r3, [fp, #-28]
	add	r3, r3, #4
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-56]
	ldrh	r3, [r3, #10]
	mov	r2, r3
	sub	r3, fp, #44
	mov	r1, r3
	mov	r0, r2
	bl	store
.L1533:
	ldr	r3, .L1538+12
	ldr	r3, [r3]
	str	r3, [fp, #-64]
	mov	r3, #1
	str	r3, [fp, #-60]
.L1529:
	ldr	r3, [fp, #-56]
	ldrh	r3, [r3, #8]
	and	r3, r3, #256
	cmp	r3, #0
	beq	.L1534
	ldr	r3, [fp, #-56]
	ldrh	r3, [r3, #8]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	and	r3, r3, #32512
	lsl	r3, r3, #16
	asr	r3, r3, #16
	orr	r3, r3, #241
	lsl	r3, r3, #16
	asr	r3, r3, #16
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-56]
	strh	r2, [r3, #8]	@ movhi
	b	.L1535
.L1534:
	ldr	r3, [fp, #-56]
	ldr	r3, [r3]
	mov	r0, r3
	bl	lvalue_type
	mov	r3, r0
	lsl	r3, r3, #16
	asr	r3, r3, #16
	orr	r3, r3, #242
	lsl	r3, r3, #16
	asr	r3, r3, #16
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-56]
	strh	r2, [r3, #8]	@ movhi
.L1535:
	ldr	r3, [fp, #-56]
	mov	r2, #240
	strh	r2, [r3, #10]	@ movhi
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-56]
	str	r2, [r3, #16]
.L1528:
	ldr	r3, [fp, #-56]
	add	r3, r3, #32
	str	r3, [fp, #-56]
.L1526:
	ldr	r3, .L1538+24
	ldr	r3, [r3]
	ldr	r2, [fp, #-56]
	cmp	r2, r3
	bls	.L1536
	nop
	ldr	r3, .L1538
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L1537
	bl	__stack_chk_fail
.L1537:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1539:
	.align	2
.L1538:
	.word	.LC98
	.word	vstack
	.word	int_type
	.word	loc
	.word	498
	.word	55773
	.word	vtop
	.size	save_reg, .-save_reg
	.align	2
	.global	get_reg_ex
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_reg_ex, %function
get_reg_ex:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L1541
.L1548:
	ldr	r2, .L1549
	ldr	r3, [fp, #-16]
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-28]
	and	r3, r3, r2
	cmp	r3, #0
	beq	.L1542
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, .L1549+4
	str	r3, [fp, #-12]
	b	.L1543
.L1546:
	ldr	r3, [fp, #-12]
	ldrh	r3, [r3, #8]
	and	r3, r3, #255
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	beq	.L1544
	ldr	r3, [fp, #-12]
	ldrh	r3, [r3, #10]
	and	r3, r3, #255
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bne	.L1545
.L1544:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L1545:
	ldr	r3, [fp, #-12]
	add	r3, r3, #32
	str	r3, [fp, #-12]
.L1543:
	ldr	r3, .L1549+8
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bls	.L1546
	ldr	r3, [fp, #-8]
	cmp	r3, #1
	bgt	.L1542
	ldr	r3, [fp, #-16]
	b	.L1547
.L1542:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L1541:
	ldr	r3, [fp, #-16]
	cmp	r3, #3
	ble	.L1548
	ldr	r0, [fp, #-24]
	bl	get_reg
	mov	r3, r0
.L1547:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1550:
	.align	2
.L1549:
	.word	reg_classes
	.word	vstack
	.word	vtop
	.size	get_reg_ex, .-get_reg_ex
	.align	2
	.global	get_reg
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_reg, %function
get_reg:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L1552
.L1559:
	ldr	r2, .L1568
	ldr	r3, [fp, #-12]
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-16]
	and	r3, r3, r2
	cmp	r3, #0
	beq	.L1565
	ldr	r3, .L1568+4
	str	r3, [fp, #-8]
	b	.L1554
.L1557:
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #8]
	and	r3, r3, #255
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	beq	.L1566
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #10]
	and	r3, r3, #255
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	beq	.L1566
	ldr	r3, [fp, #-8]
	add	r3, r3, #32
	str	r3, [fp, #-8]
.L1554:
	ldr	r3, .L1568+8
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	bls	.L1557
	ldr	r3, [fp, #-12]
	b	.L1558
.L1565:
	nop
	b	.L1553
.L1566:
	nop
.L1553:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L1552:
	ldr	r3, [fp, #-12]
	cmp	r3, #3
	ble	.L1559
	ldr	r3, .L1568+4
	str	r3, [fp, #-8]
	b	.L1560
.L1564:
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #8]
	and	r3, r3, #255
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #239
	bgt	.L1561
	ldr	r2, .L1568
	ldr	r3, [fp, #-12]
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-16]
	and	r3, r3, r2
	cmp	r3, #0
	bne	.L1567
.L1561:
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #10]
	and	r3, r3, #255
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #239
	bgt	.L1563
	ldr	r2, .L1568
	ldr	r3, [fp, #-12]
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-16]
	and	r3, r3, r2
	cmp	r3, #0
	beq	.L1563
	b	.L1562
.L1567:
	nop
.L1562:
	ldr	r0, [fp, #-12]
	bl	save_reg
	ldr	r3, [fp, #-12]
	b	.L1558
.L1563:
	ldr	r3, [fp, #-8]
	add	r3, r3, #32
	str	r3, [fp, #-8]
.L1560:
	ldr	r3, .L1568+8
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	bls	.L1564
	mvn	r3, #0
.L1558:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1569:
	.align	2
.L1568:
	.word	reg_classes
	.word	vstack
	.word	vtop
	.size	get_reg, .-get_reg
	.align	2
	.global	save_regs
	.syntax unified
	.arm
	.fpu softvfp
	.type	save_regs, %function
save_regs:
	@ 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, .L1574
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #5
	rsb	r3, r3, #0
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, .L1574+4
	str	r3, [fp, #-16]
	b	.L1571
.L1573:
	ldr	r3, [fp, #-16]
	ldrh	r3, [r3, #8]
	and	r3, r3, #255
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #239
	bgt	.L1572
	ldr	r0, [fp, #-8]
	bl	save_reg
.L1572:
	ldr	r3, [fp, #-16]
	add	r3, r3, #32
	str	r3, [fp, #-16]
.L1571:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	bls	.L1573
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1575:
	.align	2
.L1574:
	.word	vtop
	.word	vstack
	.size	save_regs, .-save_regs
	.section	.rodata
	.align	2
.LC99:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	move_reg
	.syntax unified
	.arm
	.fpu softvfp
	.type	move_reg, %function
move_reg:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	ldr	r3, .L1580
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	beq	.L1579
	ldr	r0, [fp, #-48]
	bl	save_reg
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-36]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-28]
	sub	r3, fp, #44
	mov	r1, r3
	ldr	r0, [fp, #-48]
	bl	load
.L1579:
	nop
	ldr	r3, .L1580
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L1578
	bl	__stack_chk_fail
.L1578:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1581:
	.align	2
.L1580:
	.word	.LC99
	.size	move_reg, .-move_reg
	.align	2
	.global	gaddrof
	.syntax unified
	.arm
	.fpu softvfp
	.type	gaddrof, %function
gaddrof:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	ldr	r3, .L1585
	ldr	r3, [r3]
	ldrh	r2, [r3, #8]
	ldr	r3, .L1585
	ldr	r3, [r3]
	bic	r2, r2, #256
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, .L1585
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #255
	cmp	r3, #241
	bne	.L1584
	ldr	r3, .L1585
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	bic	r3, r3, #28928
	bic	r3, r3, #255
	lsl	r3, r3, #16
	asr	r3, r3, #16
	orr	r3, r3, #496
	orr	r3, r3, #2
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, .L1585
	ldr	r3, [r3]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #8]	@ movhi
.L1584:
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L1586:
	.align	2
.L1585:
	.word	vtop
	.size	gaddrof, .-gaddrof
	.align	2
	.global	gbound
	.syntax unified
	.arm
	.fpu softvfp
	.type	gbound, %function
gbound:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	ldr	r3, .L1591
	ldr	r3, [r3]
	ldrh	r2, [r3, #8]
	ldr	r3, .L1591
	ldr	r3, [r3]
	bic	r2, r2, #2048
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, .L1591
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #256
	cmp	r3, #0
	beq	.L1590
	ldr	r3, .L1591
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	cmp	r3, #0
	blt	.L1589
	ldr	r3, .L1591
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #28928
	str	r3, [fp, #-16]
	ldr	r3, .L1591
	ldr	r2, [r3]
	sub	r3, fp, #12
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	ldr	r3, .L1591
	ldr	r3, [r3]
	mov	r2, #0
	str	r2, [r3]
	bl	gaddrof
	mov	r0, #0
	bl	vpushi
	bl	gen_bounded_ptr_add
	ldr	r3, .L1591
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	orr	r3, r2, r3
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, .L1591
	ldr	r3, [r3]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, .L1591
	ldr	r3, [r3]
	mov	r2, r3
	sub	r3, fp, #12
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
.L1589:
	bl	gen_bounded_ptr_deref
.L1590:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1592:
	.align	2
.L1591:
	.word	vtop
	.size	gbound, .-gbound
	.section	.rodata
	.align	2
.LC100:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	gv
	.syntax unified
	.arm
	.fpu softvfp
	.type	gv, %function
gv:
	@ args = 0, pretend = 0, frame = 80
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #80
	str	r0, [fp, #-80]
	ldr	r3, .L1614
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	and	r3, r3, #64
	cmp	r3, #0
	beq	.L1594
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	asr	r3, r3, #16
	and	r3, r3, #63
	str	r3, [fp, #-28]
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	asr	r3, r3, #22
	and	r3, r3, #63
	str	r3, [fp, #-24]
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	ldr	r1, [r3]
	ldr	r3, .L1614+4
	ldr	r2, [r3]
	ldr	r3, .L1614+8
	and	r3, r3, r1
	str	r3, [r2]
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	rsb	r3, r3, #32
	mov	r0, r3
	bl	vpushi
	mov	r0, #1
	bl	gen_op
	ldr	r3, [fp, #-24]
	rsb	r3, r3, #32
	mov	r0, r3
	bl	vpushi
	mov	r0, #2
	bl	gen_op
	ldr	r0, [fp, #-80]
	bl	gv
	str	r0, [fp, #-68]
	b	.L1595
.L1594:
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_float
	mov	r3, r0
	cmp	r3, #0
	beq	.L1596
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	lsl	r3, r3, #23
	lsr	r3, r3, #23
	cmp	r3, #240
	bne	.L1596
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	mov	r2, r3
	sub	r3, fp, #72
	mov	r1, r3
	mov	r0, r2
	bl	type_size
	str	r0, [fp, #-52]
	ldr	r3, .L1614+12
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r2, [fp, #-72]
	add	r3, r3, r2
	sub	r3, r3, #1
	ldr	r2, [fp, #-72]
	rsb	r2, r2, #0
	and	r3, r3, r2
	str	r3, [fp, #-48]
	ldr	r3, .L1614+12
	ldr	r3, [r3]
	ldr	r2, [fp, #-48]
	str	r2, [r3]
	ldr	r3, .L1614+12
	ldr	r3, [r3]
	ldr	r2, [fp, #-52]
	mov	r1, r2
	mov	r0, r3
	bl	section_ptr_add
	str	r0, [fp, #-44]
	ldr	r3, [fp, #-52]
	asr	r3, r3, #2
	str	r3, [fp, #-52]
	mov	r3, #0
	str	r3, [fp, #-60]
	b	.L1597
.L1598:
	ldr	r3, .L1614+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #2
	ldr	r1, [fp, #-44]
	add	r3, r1, r3
	ldr	r1, [fp, #-60]
	add	r1, r1, #4
	ldr	r2, [r2, r1, lsl #2]
	str	r2, [r3]
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
.L1597:
	ldr	r2, [fp, #-60]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	blt	.L1598
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	mov	r0, r3
	ldr	r3, .L1614+12
	ldr	r1, [r3]
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-48]
	bl	get_sym_ref
	str	r0, [fp, #-40]
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	ldrh	r2, [r3, #8]
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	orr	r2, r2, #768
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	str	r2, [r3, #24]
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	mov	r2, #0
	str	r2, [r3, #16]
.L1596:
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #2048
	cmp	r3, #0
	beq	.L1599
	bl	gbound
.L1599:
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #255
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	cmp	r3, #239
	bgt	.L1600
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #256
	cmp	r3, #0
	bne	.L1600
	ldr	r2, .L1614+16
	ldr	r3, [fp, #-68]
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-80]
	and	r3, r3, r2
	cmp	r3, #0
	beq	.L1600
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #12
	bne	.L1601
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	ldrh	r3, [r3, #10]
	mov	r2, r3
	ldr	r3, .L1614+16
	ldr	r2, [r3, r2, lsl #2]
	ldr	r3, [fp, #-80]
	and	r3, r3, r2
	cmp	r3, #0
	bne	.L1601
.L1600:
	ldr	r0, [fp, #-80]
	bl	get_reg
	str	r0, [fp, #-68]
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #12
	bne	.L1602
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	lsl	r3, r3, #23
	lsr	r3, r3, #23
	cmp	r3, #240
	bne	.L1603
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	str	r2, [r3, #16]
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-68]
	bl	load
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-68]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #8]	@ movhi
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	mov	r3, r2
	mov	r0, r3
	bl	vpushi
	b	.L1604
.L1603:
	ldr	r3, [fp, #-68]
	cmp	r3, #239
	bgt	.L1605
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #256
	cmp	r3, #0
	beq	.L1606
.L1605:
	mov	r0, #1
	bl	save_regs
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-68]
	bl	load
	bl	vdup
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldr	r2, [fp, #-68]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	mov	r2, #0
	str	r2, [r3]
	bl	gaddrof
	mov	r0, #4
	bl	vpushi
	mov	r0, #43
	bl	gen_op
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	ldrh	r2, [r3, #8]
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	orr	r2, r2, #256
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #8]	@ movhi
	b	.L1604
.L1606:
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-68]
	bl	load
	bl	vdup
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldr	r2, [fp, #-68]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	sub	r2, r3, #32
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	ldrh	r2, [r2, #10]
	strh	r2, [r3, #8]	@ movhi
.L1604:
	mov	r3, #1
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-80]
	cmp	r3, #4
	bne	.L1607
	mov	r3, #32
	str	r3, [fp, #-64]
.L1607:
	ldr	r0, [fp, #-64]
	bl	get_reg
	str	r0, [fp, #-32]
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	load
	bl	vpop
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #10]	@ movhi
	b	.L1601
.L1602:
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #256
	cmp	r3, #0
	beq	.L1608
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_float
	mov	r3, r0
	cmp	r3, #0
	bne	.L1608
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	str	r3, [fp, #-36]
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #4096
	cmp	r3, #0
	beq	.L1609
	mov	r3, #1
	str	r3, [fp, #-56]
	b	.L1610
.L1609:
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #8192
	cmp	r3, #0
	beq	.L1610
	mov	r3, #2
	str	r3, [fp, #-56]
.L1610:
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #16384
	cmp	r3, #0
	beq	.L1611
	ldr	r3, [fp, #-56]
	orr	r3, r3, #16
	str	r3, [fp, #-56]
.L1611:
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-56]
	str	r2, [r3]
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-68]
	bl	load
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-36]
	str	r2, [r3]
	b	.L1601
.L1608:
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-68]
	bl	load
.L1601:
	ldr	r3, .L1614+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-68]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #8]	@ movhi
.L1595:
	ldr	r3, [fp, #-68]
	ldr	r2, .L1614
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1613
	bl	__stack_chk_fail
.L1613:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1615:
	.align	2
.L1614:
	.word	.LC100
	.word	vtop
	.word	65471
	.word	data_section
	.word	reg_classes
	.size	gv, .-gv
	.align	2
	.global	gv2
	.syntax unified
	.arm
	.fpu softvfp
	.type	gv2, %function
gv2:
	@ 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, .L1621
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #255
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #243
	beq	.L1617
	ldr	r3, [fp, #-8]
	bic	r3, r3, #1
	cmp	r3, #244
	beq	.L1617
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	bgt	.L1617
	bl	vswap
	ldr	r0, [fp, #-16]
	bl	gv
	bl	vswap
	ldr	r0, [fp, #-20]
	bl	gv
	ldr	r3, .L1621
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldrh	r3, [r3, #8]
	and	r3, r3, #255
	cmp	r3, #239
	ble	.L1619
	bl	vswap
	ldr	r0, [fp, #-16]
	bl	gv
	bl	vswap
	b	.L1619
.L1617:
	ldr	r0, [fp, #-20]
	bl	gv
	bl	vswap
	ldr	r0, [fp, #-16]
	bl	gv
	bl	vswap
	ldr	r3, .L1621
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #255
	cmp	r3, #239
	ble	.L1620
	ldr	r0, [fp, #-20]
	bl	gv
	b	.L1620
.L1619:
.L1620:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1622:
	.align	2
.L1621:
	.word	vtop
	.size	gv2, .-gv2
	.align	2
	.global	lexpand
	.syntax unified
	.arm
	.fpu softvfp
	.type	lexpand, %function
lexpand:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	ldr	r3, .L1624
	ldr	r3, [r3]
	ldr	r3, [r3]
	and	r3, r3, #16
	str	r3, [fp, #-8]
	mov	r0, #1
	bl	gv
	bl	vdup
	ldr	r3, .L1624
	ldr	r3, [r3]
	sub	r2, r3, #32
	ldr	r3, .L1624
	ldr	r3, [r3]
	ldrh	r2, [r2, #10]
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, .L1624
	ldr	r3, [r3]
	mov	r2, #240
	strh	r2, [r3, #10]	@ movhi
	ldr	r3, .L1624
	ldr	r3, [r3]
	sub	r3, r3, #32
	mov	r2, #240
	strh	r2, [r3, #10]	@ movhi
	ldr	r3, .L1624
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldr	r3, .L1624
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1625:
	.align	2
.L1624:
	.word	vtop
	.size	lexpand, .-lexpand
	.align	2
	.global	lbuild
	.syntax unified
	.arm
	.fpu softvfp
	.type	lbuild, %function
lbuild:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	mov	r1, #1
	mov	r0, #1
	bl	gv2
	ldr	r3, .L1627
	ldr	r2, [r3]
	ldr	r3, .L1627
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldrh	r2, [r2, #8]
	strh	r2, [r3, #10]	@ movhi
	ldr	r3, .L1627
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	bl	vpop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1628:
	.align	2
.L1627:
	.word	vtop
	.size	lbuild, .-lbuild
	.section	.rodata
	.align	2
.LC101:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	vrotb
	.syntax unified
	.arm
	.fpu softvfp
	.type	vrotb, %function
vrotb:
	@ args = 0, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #56
	str	r0, [fp, #-56]
	ldr	r3, .L1633
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L1633+4
	ldr	r1, [r3]
	ldr	r2, [fp, #-56]
	mov	r3, r2
	lsl	r3, r3, #27
	sub	r3, r3, r2
	lsl	r3, r3, #5
	add	r3, r3, #32
	add	r3, r1, r3
	sub	ip, fp, #44
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	ldr	r3, [fp, #-56]
	rsb	r3, r3, #1
	str	r3, [fp, #-48]
	b	.L1630
.L1631:
	ldr	r3, .L1633+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	lsl	r3, r3, #5
	add	r1, r2, r3
	ldr	r3, .L1633+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #5
	add	r3, r2, r3
	mov	ip, r3
	mov	lr, r1
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
.L1630:
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bne	.L1631
	ldr	r3, .L1633+4
	ldr	r3, [r3]
	mov	lr, r3
	sub	ip, fp, #44
	ldmia	ip!, {r0, r1, r2, r3}
	stmia	lr!, {r0, r1, r2, r3}
	ldm	ip, {r0, r1, r2, r3}
	stm	lr, {r0, r1, r2, r3}
	nop
	ldr	r3, .L1633
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L1632
	bl	__stack_chk_fail
.L1632:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1634:
	.align	2
.L1633:
	.word	.LC101
	.word	vtop
	.size	vrotb, .-vrotb
	.section	.rodata
	.align	2
.LC102:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	vrott
	.syntax unified
	.arm
	.fpu softvfp
	.type	vrott, %function
vrott:
	@ args = 0, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #56
	str	r0, [fp, #-56]
	ldr	r3, .L1639
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L1639+4
	ldr	r3, [r3]
	sub	ip, fp, #44
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	mov	r3, #0
	str	r3, [fp, #-48]
	b	.L1636
.L1637:
	ldr	r3, .L1639+4
	ldr	r1, [r3]
	ldr	r3, [fp, #-48]
	add	r2, r3, #1
	mov	r3, r2
	lsl	r3, r3, #27
	sub	r3, r3, r2
	lsl	r3, r3, #5
	add	r0, r1, r3
	ldr	r3, .L1639+4
	ldr	r1, [r3]
	ldr	r2, [fp, #-48]
	mov	r3, r2
	lsl	r3, r3, #27
	sub	r3, r3, r2
	lsl	r3, r3, #5
	add	r3, r1, r3
	mov	ip, r3
	mov	lr, r0
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
.L1636:
	ldr	r3, [fp, #-56]
	sub	r3, r3, #1
	ldr	r2, [fp, #-48]
	cmp	r2, r3
	blt	.L1637
	ldr	r3, .L1639+4
	ldr	r1, [r3]
	ldr	r2, [fp, #-56]
	mov	r3, r2
	lsl	r3, r3, #27
	sub	r3, r3, r2
	lsl	r3, r3, #5
	add	r3, r3, #32
	add	r3, r1, r3
	mov	lr, r3
	sub	ip, fp, #44
	ldmia	ip!, {r0, r1, r2, r3}
	stmia	lr!, {r0, r1, r2, r3}
	ldm	ip, {r0, r1, r2, r3}
	stm	lr, {r0, r1, r2, r3}
	nop
	ldr	r3, .L1639
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L1638
	bl	__stack_chk_fail
.L1638:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1640:
	.align	2
.L1639:
	.word	.LC102
	.word	vtop
	.size	vrott, .-vrott
	.align	2
	.global	vpop
	.syntax unified
	.arm
	.fpu softvfp
	.type	vpop, %function
vpop:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	ldr	r3, .L1645
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #255
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #3
	bne	.L1642
	ldr	r3, .L1645+4
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L1642
	ldr	r0, .L1645+8
	bl	o
	b	.L1643
.L1642:
	ldr	r3, [fp, #-8]
	cmp	r3, #244
	beq	.L1644
	ldr	r3, [fp, #-8]
	cmp	r3, #245
	bne	.L1643
.L1644:
	ldr	r3, .L1645
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	mov	r0, r3
	bl	gsym
.L1643:
	ldr	r3, .L1645
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldr	r2, .L1645
	str	r3, [r2]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1646:
	.align	2
.L1645:
	.word	vtop
	.word	nocode_wanted
	.word	55773
	.size	vpop, .-vpop
	.section	.rodata
	.align	2
.LC103:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	gv_dup
	.syntax unified
	.arm
	.fpu softvfp
	.type	gv_dup, %function
gv_dup:
	@ args = 0, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #56
	ldr	r3, .L1653
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L1653+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	and	r3, r3, #15
	cmp	r3, #12
	bne	.L1648
	bl	lexpand
	bl	gv_dup
	bl	vswap
	mov	r0, #3
	bl	vrotb
	bl	gv_dup
	mov	r0, #4
	bl	vrotb
	ldr	r0, [fp, #-56]
	bl	lbuild
	mov	r0, #3
	bl	vrotb
	mov	r0, #3
	bl	vrotb
	bl	vswap
	ldr	r0, [fp, #-56]
	bl	lbuild
	bl	vswap
	b	.L1652
.L1648:
	mov	r3, #1
	str	r3, [fp, #-60]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r0, [fp, #-56]
	bl	is_float
	mov	r3, r0
	cmp	r3, #0
	beq	.L1650
	mov	r3, #2
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-56]
	str	r3, [fp, #-44]
.L1650:
	ldr	r0, [fp, #-60]
	bl	gv
	str	r0, [fp, #-52]
	ldr	r0, [fp, #-60]
	bl	get_reg
	str	r0, [fp, #-48]
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-36]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-28]
	sub	r3, fp, #44
	mov	r1, r3
	ldr	r0, [fp, #-48]
	bl	load
	bl	vdup
	ldr	r3, .L1653+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-48]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #8]	@ movhi
.L1652:
	nop
	ldr	r3, .L1653
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L1651
	bl	__stack_chk_fail
.L1651:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1654:
	.align	2
.L1653:
	.word	.LC103
	.word	vtop
	.size	gv_dup, .-gv_dup
	.section	.rodata
	.align	2
.LC104:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	gen_opl
	.syntax unified
	.arm
	.fpu softvfp
	.type	gen_opl, %function
gen_opl:
	@ args = 0, pretend = 0, frame = 80
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #80
	str	r0, [fp, #-80]
	ldr	r3, .L1706
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-80]
	cmp	r3, #205
	bgt	.L1656
	ldr	r3, [fp, #-80]
	cmp	r3, #176
	bge	.L1657
	ldr	r3, [fp, #-80]
	cmp	r3, #124
	beq	.L1658
	ldr	r3, [fp, #-80]
	cmp	r3, #124
	bgt	.L1656
	ldr	r3, [fp, #-80]
	cmp	r3, #47
	bgt	.L1659
	ldr	r3, [fp, #-80]
	cmp	r3, #0
	bgt	.L1660
	b	.L1656
.L1657:
	ldr	r3, [fp, #-80]
	sub	r3, r3, #176
	cmp	r3, #29
	ldrls	pc, [pc, r3, asl #2]
	b	.L1656
.L1662:
	.word	.L1665
	.word	.L1664
	.word	.L1663
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1661
.L1660:
	ldr	r3, [fp, #-80]
	sub	r3, r3, #1
	cmp	r3, #46
	ldrls	pc, [pc, r3, asl #2]
	b	.L1656
.L1666:
	.word	.L1661
	.word	.L1661
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1667
	.word	.L1658
	.word	.L1656
	.word	.L1656
	.word	.L1656
	.word	.L1658
	.word	.L1658
	.word	.L1656
	.word	.L1658
	.word	.L1656
	.word	.L1663
.L1659:
	ldr	r3, [fp, #-80]
	cmp	r3, #94
	beq	.L1658
	b	.L1656
.L1663:
	ldr	r3, .L1706+4
	str	r3, [fp, #-56]
	b	.L1668
.L1665:
	mov	r3, #360
	str	r3, [fp, #-56]
	b	.L1668
.L1667:
	ldr	r3, .L1706+8
	str	r3, [fp, #-56]
	b	.L1668
.L1664:
	ldr	r3, .L1706+12
	str	r3, [fp, #-56]
.L1668:
	ldr	r1, [fp, #-56]
	ldr	r0, .L1706+16
	bl	vpush_global_sym
	mov	r0, #3
	bl	vrott
	mov	r0, #2
	bl	gfunc_call
	mov	r0, #0
	bl	vpushi
	ldr	r3, .L1706+20
	ldr	r3, [r3]
	mov	r2, #0
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, .L1706+20
	ldr	r3, [r3]
	mov	r2, #2
	strh	r2, [r3, #10]	@ movhi
	b	.L1669
.L1658:
	ldr	r3, .L1706+20
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-52]
	bl	vswap
	bl	lexpand
	mov	r0, #3
	bl	vrotb
	bl	lexpand
	ldr	r3, .L1706+20
	ldr	r3, [r3]
	sub	ip, fp, #44
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	ldr	r3, .L1706+20
	ldr	r3, [r3]
	ldr	r2, .L1706+20
	ldr	r2, [r2]
	mov	lr, r2
	sub	ip, r3, #96
	ldmia	ip!, {r0, r1, r2, r3}
	stmia	lr!, {r0, r1, r2, r3}
	ldm	ip, {r0, r1, r2, r3}
	stm	lr, {r0, r1, r2, r3}
	ldr	r3, .L1706+20
	ldr	r3, [r3]
	sub	r3, r3, #96
	mov	lr, r3
	sub	ip, fp, #44
	ldmia	ip!, {r0, r1, r2, r3}
	stmia	lr!, {r0, r1, r2, r3}
	ldm	ip, {r0, r1, r2, r3}
	stm	lr, {r0, r1, r2, r3}
	ldr	r3, .L1706+20
	ldr	r3, [r3]
	sub	ip, fp, #44
	sub	lr, r3, #64
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	ldr	r3, .L1706+20
	ldr	r3, [r3]
	ldr	r2, .L1706+20
	ldr	r2, [r2]
	sub	r2, r2, #64
	mov	lr, r2
	sub	ip, r3, #96
	ldmia	ip!, {r0, r1, r2, r3}
	stmia	lr!, {r0, r1, r2, r3}
	ldm	ip, {r0, r1, r2, r3}
	stm	lr, {r0, r1, r2, r3}
	ldr	r3, .L1706+20
	ldr	r3, [r3]
	sub	r3, r3, #96
	mov	lr, r3
	sub	ip, fp, #44
	ldmia	ip!, {r0, r1, r2, r3}
	stmia	lr!, {r0, r1, r2, r3}
	ldm	ip, {r0, r1, r2, r3}
	stm	lr, {r0, r1, r2, r3}
	bl	vswap
	ldr	r3, [fp, #-80]
	cmp	r3, #42
	bne	.L1670
	ldr	r3, .L1706+20
	ldr	r3, [r3]
	sub	r3, r3, #32
	mov	r0, r3
	bl	vpushv
	ldr	r3, .L1706+20
	ldr	r3, [r3]
	sub	r3, r3, #32
	mov	r0, r3
	bl	vpushv
	mov	r0, #194
	bl	gen_op
	bl	lexpand
	mov	r3, #0
	str	r3, [fp, #-60]
	b	.L1671
.L1672:
	mov	r0, #6
	bl	vrotb
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
.L1671:
	ldr	r3, [fp, #-60]
	cmp	r3, #3
	ble	.L1672
	ldr	r3, .L1706+20
	ldr	r3, [r3]
	sub	ip, fp, #44
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	ldr	r3, .L1706+20
	ldr	r3, [r3]
	ldr	r2, .L1706+20
	ldr	r2, [r2]
	mov	lr, r2
	sub	ip, r3, #64
	ldmia	ip!, {r0, r1, r2, r3}
	stmia	lr!, {r0, r1, r2, r3}
	ldm	ip, {r0, r1, r2, r3}
	stm	lr, {r0, r1, r2, r3}
	ldr	r3, .L1706+20
	ldr	r3, [r3]
	sub	r3, r3, #64
	mov	lr, r3
	sub	ip, fp, #44
	ldmia	ip!, {r0, r1, r2, r3}
	stmia	lr!, {r0, r1, r2, r3}
	ldm	ip, {r0, r1, r2, r3}
	stm	lr, {r0, r1, r2, r3}
	mov	r0, #42
	bl	gen_op
	mov	r0, #3
	bl	vrotb
	mov	r0, #3
	bl	vrotb
	mov	r0, #42
	bl	gen_op
	mov	r0, #43
	bl	gen_op
	mov	r0, #43
	bl	gen_op
	b	.L1673
.L1670:
	ldr	r3, [fp, #-80]
	cmp	r3, #43
	beq	.L1674
	ldr	r3, [fp, #-80]
	cmp	r3, #45
	bne	.L1675
.L1674:
	ldr	r3, [fp, #-80]
	cmp	r3, #43
	bne	.L1676
	mov	r3, #195
	str	r3, [fp, #-64]
	b	.L1677
.L1676:
	mov	r3, #197
	str	r3, [fp, #-64]
.L1677:
	ldr	r0, [fp, #-64]
	bl	gen_op
	mov	r0, #3
	bl	vrotb
	mov	r0, #3
	bl	vrotb
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	mov	r0, r3
	bl	gen_op
	b	.L1673
.L1675:
	ldr	r0, [fp, #-80]
	bl	gen_op
	mov	r0, #3
	bl	vrotb
	mov	r0, #3
	bl	vrotb
	ldr	r0, [fp, #-80]
	bl	gen_op
.L1673:
	ldr	r0, [fp, #-52]
	bl	lbuild
	b	.L1669
.L1661:
	ldr	r3, .L1706+20
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	lsl	r3, r3, #22
	lsr	r3, r3, #22
	cmp	r3, #240
	bne	.L1678
	ldr	r3, .L1706+20
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldr	r3, [r3]
	str	r3, [fp, #-52]
	bl	vswap
	bl	lexpand
	mov	r0, #3
	bl	vrotb
	ldr	r3, .L1706+20
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-48]
	bl	vpop
	ldr	r3, [fp, #-80]
	cmp	r3, #1
	beq	.L1679
	bl	vswap
.L1679:
	ldr	r3, [fp, #-48]
	cmp	r3, #31
	ble	.L1680
	bl	vpop
	ldr	r3, [fp, #-48]
	cmp	r3, #32
	ble	.L1681
	ldr	r3, [fp, #-48]
	sub	r3, r3, #32
	mov	r0, r3
	bl	vpushi
	ldr	r0, [fp, #-80]
	bl	gen_op
.L1681:
	ldr	r3, [fp, #-80]
	cmp	r3, #2
	beq	.L1682
	mov	r0, #0
	bl	vpushi
	b	.L1683
.L1682:
	bl	gv_dup
	mov	r0, #31
	bl	vpushi
	mov	r0, #2
	bl	gen_op
.L1683:
	bl	vswap
	b	.L1684
.L1680:
	bl	vswap
	bl	gv_dup
	ldr	r0, [fp, #-48]
	bl	vpushi
	ldr	r0, [fp, #-80]
	bl	gen_op
	bl	vswap
	ldr	r3, [fp, #-48]
	rsb	r3, r3, #32
	mov	r0, r3
	bl	vpushi
	ldr	r3, [fp, #-80]
	cmp	r3, #1
	bne	.L1685
	mov	r0, #205
	bl	gen_op
	b	.L1686
.L1685:
	mov	r0, #1
	bl	gen_op
.L1686:
	mov	r0, #3
	bl	vrotb
	ldr	r0, [fp, #-48]
	bl	vpushi
	ldr	r3, [fp, #-80]
	cmp	r3, #1
	bne	.L1687
	mov	r0, #1
	bl	gen_op
	b	.L1688
.L1687:
	mov	r0, #205
	bl	gen_op
.L1688:
	mov	r0, #124
	bl	gen_op
.L1684:
	ldr	r3, [fp, #-80]
	cmp	r3, #1
	beq	.L1689
	bl	vswap
.L1689:
	ldr	r0, [fp, #-52]
	bl	lbuild
	b	.L1705
.L1678:
	ldr	r3, [fp, #-80]
	cmp	r3, #205
	beq	.L1691
	ldr	r3, [fp, #-80]
	cmp	r3, #205
	bgt	.L1705
	ldr	r3, [fp, #-80]
	cmp	r3, #1
	beq	.L1692
	ldr	r3, [fp, #-80]
	cmp	r3, #2
	bne	.L1705
	ldr	r3, .L1706+24
	str	r3, [fp, #-56]
	b	.L1668
.L1691:
	ldr	r3, .L1706+28
	str	r3, [fp, #-56]
	b	.L1668
.L1692:
	mov	r3, #364
	str	r3, [fp, #-56]
	b	.L1668
.L1656:
	ldr	r3, .L1706+20
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-52]
	bl	vswap
	bl	lexpand
	mov	r0, #3
	bl	vrotb
	bl	lexpand
	ldr	r3, .L1706+20
	ldr	r3, [r3]
	sub	ip, fp, #44
	sub	lr, r3, #32
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	ldr	r3, .L1706+20
	ldr	r3, [r3]
	ldr	r2, .L1706+20
	ldr	r2, [r2]
	sub	r2, r2, #32
	mov	lr, r2
	sub	ip, r3, #64
	ldmia	ip!, {r0, r1, r2, r3}
	stmia	lr!, {r0, r1, r2, r3}
	ldm	ip, {r0, r1, r2, r3}
	stm	lr, {r0, r1, r2, r3}
	ldr	r3, .L1706+20
	ldr	r3, [r3]
	sub	r3, r3, #64
	mov	lr, r3
	sub	ip, fp, #44
	ldmia	ip!, {r0, r1, r2, r3}
	stmia	lr!, {r0, r1, r2, r3}
	ldm	ip, {r0, r1, r2, r3}
	stm	lr, {r0, r1, r2, r3}
	ldr	r3, [fp, #-80]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-64]
	cmp	r3, #156
	bne	.L1693
	mov	r3, #158
	str	r3, [fp, #-64]
	b	.L1694
.L1693:
	ldr	r3, [fp, #-64]
	cmp	r3, #159
	bne	.L1695
	mov	r3, #157
	str	r3, [fp, #-64]
	b	.L1694
.L1695:
	ldr	r3, [fp, #-64]
	cmp	r3, #146
	bne	.L1696
	mov	r3, #150
	str	r3, [fp, #-64]
	b	.L1694
.L1696:
	ldr	r3, [fp, #-64]
	cmp	r3, #151
	bne	.L1694
	mov	r3, #147
	str	r3, [fp, #-64]
.L1694:
	mov	r3, #0
	str	r3, [fp, #-72]
	mov	r3, #0
	str	r3, [fp, #-68]
	ldr	r0, [fp, #-64]
	bl	gen_op
	ldr	r3, [fp, #-64]
	cmp	r3, #149
	beq	.L1697
	mov	r1, #0
	mov	r0, #1
	bl	gtst
	str	r0, [fp, #-72]
.L1697:
	ldr	r3, [fp, #-80]
	cmp	r3, #148
	beq	.L1698
	ldr	r3, [fp, #-72]
	cmp	r3, #0
	bne	.L1699
	mov	r1, #0
	mov	r0, #0
	bl	gtst
	str	r0, [fp, #-68]
	b	.L1698
.L1699:
	mov	r1, #0
	ldr	r0, .L1706+32
	bl	oad
	str	r0, [fp, #-68]
.L1698:
	ldr	r3, [fp, #-80]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-64]
	cmp	r3, #156
	bne	.L1700
	mov	r3, #146
	str	r3, [fp, #-64]
	b	.L1701
.L1700:
	ldr	r3, [fp, #-64]
	cmp	r3, #158
	bne	.L1702
	mov	r3, #150
	str	r3, [fp, #-64]
	b	.L1701
.L1702:
	ldr	r3, [fp, #-64]
	cmp	r3, #159
	bne	.L1703
	mov	r3, #151
	str	r3, [fp, #-64]
	b	.L1701
.L1703:
	ldr	r3, [fp, #-64]
	cmp	r3, #157
	bne	.L1701
	mov	r3, #147
	str	r3, [fp, #-64]
.L1701:
	ldr	r0, [fp, #-64]
	bl	gen_op
	ldr	r1, [fp, #-72]
	mov	r0, #1
	bl	gtst
	str	r0, [fp, #-72]
	ldr	r0, [fp, #-68]
	bl	gsym
	ldr	r1, [fp, #-72]
	mov	r0, #245
	bl	vseti
	b	.L1669
.L1705:
	nop
.L1669:
	nop
	ldr	r3, .L1706
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L1704
	bl	__stack_chk_fail
.L1704:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1707:
	.align	2
.L1706:
	.word	.LC104
	.word	358
	.word	359
	.word	361
	.word	func_old_type
	.word	vtop
	.word	362
	.word	363
	.word	34063
	.size	gen_opl, .-gen_opl
	.section	.rodata
	.align	2
.LC105:
	.ascii	"division by zero in constant\000"
	.global	__aeabi_idiv
	.global	__aeabi_idivmod
	.global	__aeabi_uidiv
	.global	__aeabi_uidivmod
	.align	2
.LC106:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	gen_opic
	.syntax unified
	.arm
	.fpu softvfp
	.type	gen_opic, %function
gen_opic:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-40]
	ldr	r3, .L1777
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L1777+4
	ldr	r3, [r3]
	sub	r3, r3, #32
	str	r3, [fp, #-16]
	ldr	r3, .L1777+4
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	ldrh	r3, [r3, #8]
	lsl	r3, r3, #22
	lsr	r3, r3, #22
	cmp	r3, #240
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-12]
	ldrh	r3, [r3, #8]
	lsl	r3, r3, #22
	lsr	r3, r3, #22
	cmp	r3, #240
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	beq	.L1709
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	beq	.L1709
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-40]
	cmp	r3, #47
	bgt	.L1710
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	bgt	.L1711
	b	.L1772
.L1737:
	ldr	r3, [fp, #-40]
	sub	r3, r3, #94
	cmp	r3, #111
	ldrls	pc, [pc, r3, asl #2]
	b	.L1772
.L1714:
	.word	.L1729
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1728
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1727
	.word	.L1726
	.word	.L1725
	.word	.L1724
	.word	.L1723
	.word	.L1722
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1721
	.word	.L1720
	.word	.L1719
	.word	.L1718
	.word	.L1717
	.word	.L1716
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1715
	.word	.L1715
	.word	.L1715
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1713
.L1711:
	ldr	r3, [fp, #-40]
	sub	r3, r3, #1
	cmp	r3, #46
	ldrls	pc, [pc, r3, asl #2]
	b	.L1772
.L1730:
	.word	.L1736
	.word	.L1735
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1715
	.word	.L1734
	.word	.L1772
	.word	.L1772
	.word	.L1772
	.word	.L1733
	.word	.L1732
	.word	.L1772
	.word	.L1731
	.word	.L1772
	.word	.L1715
.L1710:
	ldr	r3, [fp, #-40]
	cmp	r3, #205
	bgt	.L1772
	ldr	r3, [fp, #-40]
	cmp	r3, #94
	bge	.L1737
	b	.L1772
.L1732:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-24]
	add	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
	b	.L1738
.L1731:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-24]
	sub	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
	b	.L1738
.L1734:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-24]
	and	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
	b	.L1738
.L1729:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-24]
	eor	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
	b	.L1738
.L1728:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-24]
	orr	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
	b	.L1738
.L1733:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-24]
	mul	r2, r3, r2
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
	b	.L1738
.L1715:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L1739
	ldr	r3, .L1777+8
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L1773
	ldr	r0, .L1777+12
	bl	error
	b	.L1773
.L1739:
	ldr	r3, [fp, #-40]
	cmp	r3, #177
	beq	.L1742
	ldr	r3, [fp, #-40]
	cmp	r3, #177
	bgt	.L1743
	ldr	r3, [fp, #-40]
	cmp	r3, #37
	beq	.L1744
	ldr	r3, [fp, #-40]
	cmp	r3, #176
	beq	.L1745
.L1743:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #16]
	ldr	r1, [fp, #-24]
	mov	r0, r3
	bl	__aeabi_idiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
	b	.L1746
.L1744:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #16]
	ldr	r1, [fp, #-24]
	mov	r0, r3
	bl	__aeabi_idivmod
	mov	r3, r1
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
	b	.L1746
.L1745:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #16]
	mov	r2, r3
	ldr	r3, [fp, #-24]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
	b	.L1746
.L1742:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #16]
	mov	r2, r3
	ldr	r3, [fp, #-24]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidivmod
	mov	r3, r1
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
	nop
.L1746:
	b	.L1738
.L1736:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-24]
	lsl	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
	b	.L1738
.L1713:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #16]
	mov	r2, r3
	ldr	r3, [fp, #-24]
	lsr	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
	b	.L1738
.L1735:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-24]
	asr	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
	b	.L1738
.L1727:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #16]
	mov	r2, r3
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	movcc	r3, #1
	movcs	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
	b	.L1738
.L1726:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #16]
	mov	r2, r3
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	movcs	r3, #1
	movcc	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
	b	.L1738
.L1725:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
	b	.L1738
.L1724:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
	b	.L1738
.L1723:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #16]
	mov	r2, r3
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
	b	.L1738
.L1722:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #16]
	mov	r2, r3
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	movhi	r3, #1
	movls	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
	b	.L1738
.L1721:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	movgt	r3, #1
	movle	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
	b	.L1738
.L1720:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
	b	.L1738
.L1719:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	movge	r3, #1
	movlt	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
	b	.L1738
.L1718:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	movlt	r3, #1
	movge	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
	b	.L1738
.L1717:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	beq	.L1747
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L1747
	mov	r2, #1
	b	.L1748
.L1747:
	mov	r2, #0
.L1748:
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
	b	.L1738
.L1716:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L1749
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L1750
.L1749:
	mov	r2, #1
	b	.L1751
.L1750:
	mov	r2, #0
.L1751:
	ldr	r3, [fp, #-16]
	str	r2, [r3, #16]
	nop
.L1738:
	ldr	r3, .L1777+4
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldr	r2, .L1777+4
	str	r3, [r2]
	b	.L1752
.L1709:
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	beq	.L1753
	ldr	r3, [fp, #-40]
	cmp	r3, #43
	beq	.L1754
	ldr	r3, [fp, #-40]
	cmp	r3, #38
	beq	.L1754
	ldr	r3, [fp, #-40]
	cmp	r3, #94
	beq	.L1754
	ldr	r3, [fp, #-40]
	cmp	r3, #124
	beq	.L1754
	ldr	r3, [fp, #-40]
	cmp	r3, #42
	bne	.L1753
.L1754:
	bl	vswap
	sub	r2, fp, #28
	sub	r3, fp, #32
	mov	r1, r2
	mov	r0, r3
	bl	swap
.L1753:
	ldr	r3, .L1777+4
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	beq	.L1755
	ldr	r3, [fp, #-40]
	cmp	r3, #42
	beq	.L1756
	ldr	r3, [fp, #-40]
	cmp	r3, #47
	beq	.L1756
	ldr	r3, [fp, #-40]
	cmp	r3, #176
	beq	.L1756
	ldr	r3, [fp, #-40]
	cmp	r3, #178
	bne	.L1757
.L1756:
	ldr	r3, [fp, #-24]
	cmp	r3, #1
	beq	.L1758
.L1757:
	ldr	r3, [fp, #-40]
	cmp	r3, #43
	beq	.L1759
	ldr	r3, [fp, #-40]
	cmp	r3, #45
	beq	.L1759
	ldr	r3, [fp, #-40]
	cmp	r3, #124
	beq	.L1759
	ldr	r3, [fp, #-40]
	cmp	r3, #94
	beq	.L1759
	ldr	r3, [fp, #-40]
	cmp	r3, #1
	beq	.L1759
	ldr	r3, [fp, #-40]
	cmp	r3, #205
	beq	.L1759
	ldr	r3, [fp, #-40]
	cmp	r3, #2
	bne	.L1760
.L1759:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L1758
.L1760:
	ldr	r3, [fp, #-40]
	cmp	r3, #38
	bne	.L1755
	ldr	r3, [fp, #-24]
	cmn	r3, #1
	bne	.L1755
.L1758:
	ldr	r3, .L1777+4
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldr	r2, .L1777+4
	str	r3, [r2]
	b	.L1752
.L1755:
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	beq	.L1761
	ldr	r3, [fp, #-40]
	cmp	r3, #42
	beq	.L1762
	ldr	r3, [fp, #-40]
	cmp	r3, #178
	beq	.L1762
	ldr	r3, [fp, #-40]
	cmp	r3, #176
	bne	.L1761
.L1762:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	ble	.L1774
	ldr	r3, [fp, #-24]
	sub	r2, r3, #1
	ldr	r3, [fp, #-24]
	and	r3, r3, r2
	cmp	r3, #0
	bne	.L1774
	mvn	r3, #0
	str	r3, [fp, #-20]
	b	.L1764
.L1765:
	ldr	r3, [fp, #-24]
	asr	r3, r3, #1
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L1764:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L1765
	ldr	r3, .L1777+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-40]
	cmp	r3, #42
	bne	.L1766
	mov	r3, #1
	str	r3, [fp, #-40]
	b	.L1774
.L1766:
	ldr	r3, [fp, #-40]
	cmp	r3, #178
	bne	.L1767
	mov	r3, #2
	str	r3, [fp, #-40]
	b	.L1774
.L1767:
	mov	r3, #205
	str	r3, [fp, #-40]
	b	.L1774
.L1761:
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	beq	.L1775
	ldr	r3, [fp, #-40]
	cmp	r3, #43
	beq	.L1768
	ldr	r3, [fp, #-40]
	cmp	r3, #45
	bne	.L1775
.L1768:
	ldr	r3, .L1777+4
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldrh	r3, [r3, #8]
	lsl	r3, r3, #22
	lsr	r3, r3, #22
	cmp	r3, #752
	bne	.L1775
	ldr	r3, [fp, #-40]
	cmp	r3, #45
	bne	.L1769
	ldr	r3, [fp, #-24]
	rsb	r3, r3, #0
	str	r3, [fp, #-24]
.L1769:
	ldr	r3, .L1777+4
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldr	r2, .L1777+4
	str	r3, [r2]
	ldr	r3, .L1777+4
	ldr	r3, [r3]
	ldr	r1, [r3, #16]
	ldr	r3, .L1777+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	add	r2, r1, r2
	str	r2, [r3, #16]
	b	.L1752
.L1772:
	nop
	b	.L1741
.L1773:
	nop
	b	.L1741
.L1774:
	nop
	b	.L1741
.L1775:
	nop
.L1741:
	ldr	r3, .L1777+16
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L1770
	ldr	r0, [fp, #-40]
	bl	gen_opi
	b	.L1776
.L1770:
	ldr	r3, .L1777+4
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldr	r2, .L1777+4
	str	r3, [r2]
	b	.L1776
.L1752:
.L1776:
	nop
	ldr	r3, .L1777
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L1771
	bl	__stack_chk_fail
.L1771:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1778:
	.align	2
.L1777:
	.word	.LC106
	.word	vtop
	.word	const_wanted
	.word	.LC105
	.word	nocode_wanted
	.size	gen_opic, .-gen_opic
	.global	__aeabi_f2d
	.global	__aeabi_dsub
	.global	__aeabi_dcmpeq
	.global	__aeabi_ddiv
	.align	2
	.global	gen_opif
	.syntax unified
	.arm
	.fpu softvfp
	.type	gen_opif, %function
gen_opif:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-40]
	ldr	r3, .L1808
	ldr	r3, [r3]
	sub	r3, r3, #32
	str	r3, [fp, #-36]
	ldr	r3, .L1808
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-36]
	ldrh	r3, [r3, #8]
	lsl	r3, r3, #22
	lsr	r3, r3, #22
	cmp	r3, #240
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-32]
	ldrh	r3, [r3, #8]
	lsl	r3, r3, #22
	lsr	r3, r3, #22
	cmp	r3, #240
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	beq	.L1803
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L1803
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	cmp	r3, #8
	bne	.L1781
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #16]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #16]	@ float
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-12]
	str	r3, [fp, #-8]
	b	.L1782
.L1781:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	cmp	r3, #9
	bne	.L1783
	ldr	r3, [fp, #-36]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-32]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-12]
	str	r3, [fp, #-8]
	b	.L1782
.L1783:
	ldr	r3, [fp, #-36]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-32]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-12]
	str	r3, [fp, #-8]
.L1782:
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	ieee_finite
	mov	r3, r0
	cmp	r3, #0
	beq	.L1804
	sub	r1, fp, #12
	ldmia	r1, {r0-r1}
	bl	ieee_finite
	mov	r3, r0
	cmp	r3, #0
	beq	.L1804
	ldr	r3, [fp, #-40]
	sub	r3, r3, #42
	cmp	r3, #5
	ldrls	pc, [pc, r3, asl #2]
	b	.L1805
.L1788:
	.word	.L1791
	.word	.L1790
	.word	.L1805
	.word	.L1789
	.word	.L1805
	.word	.L1787
.L1790:
	sub	r3, fp, #12
	ldmia	r3, {r2-r3}
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	b	.L1792
.L1789:
	sub	r3, fp, #12
	ldmia	r3, {r2-r3}
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	b	.L1792
.L1791:
	sub	r3, fp, #12
	ldmia	r3, {r2-r3}
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	b	.L1792
.L1787:
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #12
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpeq
	mov	r3, r0
	cmp	r3, #0
	beq	.L1802
	ldr	r3, .L1808+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L1806
	ldr	r0, .L1808+8
	bl	error
	b	.L1806
.L1802:
	sub	r3, fp, #12
	ldmia	r3, {r2-r3}
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	nop
.L1792:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	cmp	r3, #8
	bne	.L1796
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_d2f
	mov	r2, r0
	ldr	r3, [fp, #-36]
	str	r2, [r3, #16]	@ float
	b	.L1797
.L1796:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	cmp	r3, #9
	bne	.L1798
	ldr	r1, [fp, #-36]
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	str	r2, [r1, #16]
	str	r3, [r1, #20]
	b	.L1797
.L1798:
	ldr	r1, [fp, #-36]
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	str	r2, [r1, #16]
	str	r3, [r1, #20]
.L1797:
	ldr	r3, .L1808
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldr	r2, .L1808
	str	r3, [r2]
	b	.L1807
.L1803:
	nop
	b	.L1780
.L1804:
	nop
	b	.L1780
.L1805:
	nop
	b	.L1780
.L1806:
	nop
.L1780:
	ldr	r3, .L1808+12
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L1800
	ldr	r0, [fp, #-40]
	bl	gen_opf
	b	.L1807
.L1800:
	ldr	r3, .L1808
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldr	r2, .L1808
	str	r3, [r2]
.L1807:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1809:
	.align	2
.L1808:
	.word	vtop
	.word	const_wanted
	.word	.LC105
	.word	nocode_wanted
	.size	gen_opif, .-gen_opif
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	pointed_type, %function
pointed_type:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	add	r3, r3, #12
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	pointed_type, .-pointed_type
	.section	.rodata
	.align	2
.LC107:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	pointed_size, %function
pointed_size:
	@ 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, .L1815
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r0, [fp, #-16]
	bl	pointed_type
	mov	r2, r0
	sub	r3, fp, #12
	mov	r1, r3
	mov	r0, r2
	bl	type_size
	mov	r3, r0
	ldr	r2, .L1815
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1814
	bl	__stack_chk_fail
.L1814:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1816:
	.align	2
.L1815:
	.word	.LC107
	.size	pointed_size, .-pointed_size
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_null_pointer, %function
is_null_pointer:
	@ 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]
	ldrh	r3, [r3, #8]
	lsl	r3, r3, #22
	lsr	r3, r3, #22
	cmp	r3, #240
	beq	.L1818
	mov	r3, #0
	b	.L1819
.L1818:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #0
	bne	.L1820
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	beq	.L1821
.L1820:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #12
	bne	.L1822
	ldr	r3, [fp, #-8]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	orrs	r3, r2, r3
	bne	.L1822
.L1821:
	mov	r3, #1
	b	.L1819
.L1822:
	mov	r3, #0
.L1819:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	is_null_pointer, .-is_null_pointer
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_integer_btype, %function
is_integer_btype:
	@ 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, #1
	beq	.L1825
	ldr	r3, [fp, #-8]
	cmp	r3, #2
	beq	.L1825
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L1825
	ldr	r3, [fp, #-8]
	cmp	r3, #12
	bne	.L1826
.L1825:
	mov	r3, #1
	b	.L1828
.L1826:
	mov	r3, #0
.L1828:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	is_integer_btype, .-is_integer_btype
	.section	.rodata
	.align	2
.LC108:
	.ascii	"comparison between pointer and integer\000"
	.align	2
.LC109:
	.ascii	"invalid operands to binary %s\000"
	.align	2
.LC110:
	.ascii	"comparison of distinct pointer types lacks a cast\000"
	.align	2
.LC111:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	check_comparison_pointer_types, %function
check_comparison_pointer_types:
	@ args = 0, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #56
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	str	r2, [fp, #-56]
	ldr	r3, .L1850
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r0, [fp, #-48]
	bl	is_null_pointer
	mov	r3, r0
	cmp	r3, #0
	bne	.L1846
	ldr	r0, [fp, #-52]
	bl	is_null_pointer
	mov	r3, r0
	cmp	r3, #0
	bne	.L1846
	ldr	r3, [fp, #-48]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-52]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	and	r3, r3, #15
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	and	r3, r3, #15
	str	r3, [fp, #-28]
	ldr	r0, [fp, #-32]
	bl	is_integer_btype
	mov	r3, r0
	cmp	r3, #0
	bne	.L1833
	ldr	r0, [fp, #-28]
	bl	is_integer_btype
	mov	r3, r0
	cmp	r3, #0
	beq	.L1834
.L1833:
	ldr	r3, [fp, #-56]
	cmp	r3, #45
	beq	.L1834
	ldr	r0, .L1850+4
	bl	warning
	b	.L1829
.L1834:
	ldr	r3, [fp, #-32]
	cmp	r3, #4
	bne	.L1835
	ldr	r0, [fp, #-40]
	bl	pointed_type
	str	r0, [fp, #-40]
	b	.L1836
.L1835:
	ldr	r3, [fp, #-32]
	cmp	r3, #6
	bne	.L1847
.L1836:
	ldr	r3, [fp, #-28]
	cmp	r3, #4
	bne	.L1838
	ldr	r0, [fp, #-36]
	bl	pointed_type
	str	r0, [fp, #-36]
	b	.L1839
.L1838:
	ldr	r3, [fp, #-28]
	cmp	r3, #6
	beq	.L1839
	b	.L1837
.L1847:
	nop
	b	.L1837
.L1849:
	nop
.L1837:
	mov	r1, #0
	ldr	r0, [fp, #-56]
	bl	get_tok_str
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L1850+8
	bl	error
.L1839:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #3
	beq	.L1848
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #3
	beq	.L1848
	ldr	r2, [fp, #-40]
	sub	r3, fp, #24
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	ldr	r2, [fp, #-36]
	sub	r3, fp, #16
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	ldr	r3, [fp, #-24]
	bic	r3, r3, #6144
	bic	r3, r3, #16
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-16]
	bic	r3, r3, #6144
	bic	r3, r3, #16
	str	r3, [fp, #-16]
	sub	r2, fp, #16
	sub	r3, fp, #24
	mov	r1, r2
	mov	r0, r3
	bl	is_compatible_types
	mov	r3, r0
	cmp	r3, #0
	bne	.L1829
	ldr	r3, [fp, #-56]
	cmp	r3, #45
	beq	.L1849
	ldr	r0, .L1850+12
	bl	warning
	b	.L1829
.L1846:
	nop
	b	.L1829
.L1848:
	nop
.L1829:
	ldr	r3, .L1850
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L1845
	bl	__stack_chk_fail
.L1845:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1851:
	.align	2
.L1850:
	.word	.LC111
	.word	.LC108
	.word	.LC109
	.word	.LC110
	.size	check_comparison_pointer_types, .-check_comparison_pointer_types
	.section	.rodata
	.align	2
.LC112:
	.ascii	"cannot use pointers here\000"
	.align	2
.LC113:
	.ascii	"invalid operands for binary operation\000"
	.align	2
.LC114:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	gen_op
	.syntax unified
	.arm
	.fpu softvfp
	.type	gen_op, %function
gen_op:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-48]
	ldr	r3, .L1897
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L1897+4
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldr	r3, [r3]
	str	r3, [fp, #-40]
	ldr	r3, .L1897+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-40]
	and	r3, r3, #15
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	and	r3, r3, #15
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-28]
	cmp	r3, #4
	beq	.L1853
	ldr	r3, [fp, #-24]
	cmp	r3, #4
	bne	.L1854
.L1853:
	ldr	r3, [fp, #-48]
	cmp	r3, #145
	ble	.L1855
	ldr	r3, [fp, #-48]
	cmp	r3, #159
	bgt	.L1855
	ldr	r3, .L1897+4
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldr	r2, .L1897+4
	ldr	r1, [r2]
	ldr	r2, [fp, #-48]
	mov	r0, r3
	bl	check_comparison_pointer_types
	mov	r3, #16
	str	r3, [fp, #-32]
	b	.L1856
.L1855:
	ldr	r3, [fp, #-28]
	cmp	r3, #4
	bne	.L1857
	ldr	r3, [fp, #-24]
	cmp	r3, #4
	bne	.L1857
	ldr	r3, [fp, #-48]
	cmp	r3, #45
	beq	.L1858
	ldr	r0, .L1897+8
	bl	error
.L1858:
	ldr	r3, .L1897+4
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldr	r2, .L1897+4
	ldr	r1, [r2]
	ldr	r2, [fp, #-48]
	mov	r0, r3
	bl	check_comparison_pointer_types
	ldr	r3, .L1897+4
	ldr	r3, [r3]
	sub	r3, r3, #32
	mov	r0, r3
	bl	pointed_size
	str	r0, [fp, #-20]
	ldr	r0, [fp, #-48]
	bl	gen_opic
	ldr	r3, .L1897+4
	ldr	r3, [r3]
	mov	r2, #0
	str	r2, [r3]
	ldr	r0, [fp, #-20]
	bl	vpushi
	mov	r0, #178
	bl	gen_op
	b	.L1865
.L1857:
	ldr	r3, [fp, #-48]
	cmp	r3, #45
	beq	.L1860
	ldr	r3, [fp, #-48]
	cmp	r3, #43
	beq	.L1860
	ldr	r0, .L1897+8
	bl	error
.L1860:
	ldr	r3, [fp, #-24]
	cmp	r3, #4
	bne	.L1861
	bl	vswap
	sub	r2, fp, #36
	sub	r3, fp, #40
	mov	r1, r2
	mov	r0, r3
	bl	swap
.L1861:
	ldr	r3, .L1897+4
	ldr	r3, [r3]
	sub	r2, r3, #32
	sub	r3, fp, #16
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	ldr	r3, .L1897+4
	ldr	r3, [r3]
	sub	r3, r3, #32
	mov	r0, r3
	bl	pointed_size
	mov	r3, r0
	mov	r0, r3
	bl	vpushi
	mov	r0, #42
	bl	gen_op
	ldr	r3, .L1897+12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L1862
	ldr	r3, .L1897+16
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L1862
	ldr	r3, [fp, #-48]
	cmp	r3, #45
	bne	.L1863
	mov	r0, #0
	bl	vpushi
	bl	vswap
	mov	r0, #45
	bl	gen_op
.L1863:
	bl	gen_bounded_ptr_add
	b	.L1864
.L1862:
	ldr	r0, [fp, #-48]
	bl	gen_opic
.L1864:
	ldr	r3, .L1897+4
	ldr	r3, [r3]
	mov	r2, r3
	sub	r3, fp, #16
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	b	.L1865
.L1854:
	ldr	r0, [fp, #-28]
	bl	is_float
	mov	r3, r0
	cmp	r3, #0
	bne	.L1866
	ldr	r0, [fp, #-24]
	bl	is_float
	mov	r3, r0
	cmp	r3, #0
	beq	.L1867
.L1866:
	ldr	r3, [fp, #-28]
	cmp	r3, #10
	beq	.L1868
	ldr	r3, [fp, #-24]
	cmp	r3, #10
	bne	.L1869
.L1868:
	mov	r3, #10
	str	r3, [fp, #-32]
	b	.L1870
.L1869:
	ldr	r3, [fp, #-28]
	cmp	r3, #9
	beq	.L1871
	ldr	r3, [fp, #-24]
	cmp	r3, #9
	bne	.L1872
.L1871:
	mov	r3, #9
	str	r3, [fp, #-32]
	b	.L1870
.L1872:
	mov	r3, #8
	str	r3, [fp, #-32]
.L1870:
	ldr	r3, [fp, #-48]
	cmp	r3, #43
	beq	.L1894
	ldr	r3, [fp, #-48]
	cmp	r3, #45
	beq	.L1894
	ldr	r3, [fp, #-48]
	cmp	r3, #42
	beq	.L1894
	ldr	r3, [fp, #-48]
	cmp	r3, #47
	beq	.L1894
	ldr	r3, [fp, #-48]
	cmp	r3, #145
	ble	.L1874
	ldr	r3, [fp, #-48]
	cmp	r3, #159
	ble	.L1894
.L1874:
	ldr	r0, .L1897+20
	bl	error
	b	.L1894
.L1867:
	ldr	r3, [fp, #-28]
	cmp	r3, #12
	beq	.L1875
	ldr	r3, [fp, #-24]
	cmp	r3, #12
	bne	.L1876
.L1875:
	mov	r3, #12
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-40]
	and	r3, r3, #31
	cmp	r3, #28
	beq	.L1877
	ldr	r3, [fp, #-36]
	and	r3, r3, #31
	cmp	r3, #28
	bne	.L1895
.L1877:
	ldr	r3, [fp, #-32]
	orr	r3, r3, #16
	str	r3, [fp, #-32]
	b	.L1895
.L1876:
	mov	r3, #0
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-40]
	and	r3, r3, #31
	cmp	r3, #16
	beq	.L1879
	ldr	r3, [fp, #-36]
	and	r3, r3, #31
	cmp	r3, #16
	bne	.L1896
.L1879:
	ldr	r3, [fp, #-32]
	orr	r3, r3, #16
	str	r3, [fp, #-32]
	b	.L1856
.L1894:
	nop
	b	.L1856
.L1895:
	nop
	b	.L1856
.L1896:
	nop
.L1856:
	ldr	r3, [fp, #-32]
	and	r3, r3, #16
	cmp	r3, #0
	beq	.L1880
	ldr	r3, [fp, #-48]
	cmp	r3, #2
	bne	.L1881
	mov	r3, #205
	str	r3, [fp, #-48]
	b	.L1880
.L1881:
	ldr	r3, [fp, #-48]
	cmp	r3, #47
	bne	.L1882
	mov	r3, #176
	str	r3, [fp, #-48]
	b	.L1880
.L1882:
	ldr	r3, [fp, #-48]
	cmp	r3, #37
	bne	.L1883
	mov	r3, #177
	str	r3, [fp, #-48]
	b	.L1880
.L1883:
	ldr	r3, [fp, #-48]
	cmp	r3, #156
	bne	.L1884
	mov	r3, #146
	str	r3, [fp, #-48]
	b	.L1880
.L1884:
	ldr	r3, [fp, #-48]
	cmp	r3, #159
	bne	.L1885
	mov	r3, #151
	str	r3, [fp, #-48]
	b	.L1880
.L1885:
	ldr	r3, [fp, #-48]
	cmp	r3, #158
	bne	.L1886
	mov	r3, #150
	str	r3, [fp, #-48]
	b	.L1880
.L1886:
	ldr	r3, [fp, #-48]
	cmp	r3, #157
	bne	.L1880
	mov	r3, #147
	str	r3, [fp, #-48]
.L1880:
	bl	vswap
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-16]
	sub	r3, fp, #16
	mov	r0, r3
	bl	gen_cast
	bl	vswap
	ldr	r3, [fp, #-48]
	cmp	r3, #205
	beq	.L1887
	ldr	r3, [fp, #-48]
	cmp	r3, #2
	beq	.L1887
	ldr	r3, [fp, #-48]
	cmp	r3, #1
	bne	.L1888
.L1887:
	mov	r3, #0
	str	r3, [fp, #-16]
.L1888:
	sub	r3, fp, #16
	mov	r0, r3
	bl	gen_cast
	ldr	r0, [fp, #-32]
	bl	is_float
	mov	r3, r0
	cmp	r3, #0
	beq	.L1889
	ldr	r0, [fp, #-48]
	bl	gen_opif
	b	.L1890
.L1889:
	ldr	r3, [fp, #-32]
	and	r3, r3, #15
	cmp	r3, #12
	bne	.L1891
	ldr	r0, [fp, #-48]
	bl	gen_opl
	b	.L1890
.L1891:
	ldr	r0, [fp, #-48]
	bl	gen_opic
.L1890:
	ldr	r3, [fp, #-48]
	cmp	r3, #145
	ble	.L1892
	ldr	r3, [fp, #-48]
	cmp	r3, #159
	bgt	.L1892
	ldr	r3, .L1897+4
	ldr	r3, [r3]
	mov	r2, #0
	str	r2, [r3]
	b	.L1865
.L1892:
	ldr	r3, .L1897+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	str	r2, [r3]
.L1865:
	nop
	ldr	r3, .L1897
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L1893
	bl	__stack_chk_fail
.L1893:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1898:
	.align	2
.L1897:
	.word	.LC114
	.word	vtop
	.word	.LC112
	.word	do_bounds_check
	.word	const_wanted
	.word	.LC113
	.size	gen_op, .-gen_op
	.align	2
	.global	gen_cvt_itof1
	.syntax unified
	.arm
	.fpu softvfp
	.type	gen_cvt_itof1, %function
gen_cvt_itof1:
	@ 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, .L1906
	ldr	r3, [r3]
	ldr	r3, [r3]
	and	r3, r3, #31
	cmp	r3, #28
	bne	.L1900
	ldr	r3, [fp, #-8]
	cmp	r3, #8
	bne	.L1901
	ldr	r1, .L1906+4
	ldr	r0, .L1906+8
	bl	vpush_global_sym
	b	.L1902
.L1901:
	ldr	r3, [fp, #-8]
	cmp	r3, #9
	bne	.L1903
	mov	r1, #368
	ldr	r0, .L1906+8
	bl	vpush_global_sym
	b	.L1902
.L1903:
	ldr	r1, .L1906+12
	ldr	r0, .L1906+8
	bl	vpush_global_sym
.L1902:
	mov	r0, #2
	bl	vrott
	mov	r0, #1
	bl	gfunc_call
	mov	r0, #0
	bl	vpushi
	ldr	r3, .L1906
	ldr	r3, [r3]
	mov	r2, #3
	strh	r2, [r3, #8]	@ movhi
	b	.L1905
.L1900:
	ldr	r0, [fp, #-8]
	bl	gen_cvt_itof
.L1905:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1907:
	.align	2
.L1906:
	.word	vtop
	.word	367
	.word	func_old_type
	.word	369
	.size	gen_cvt_itof1, .-gen_cvt_itof1
	.align	2
	.global	gen_cvt_ftoi1
	.syntax unified
	.arm
	.fpu softvfp
	.type	gen_cvt_ftoi1, %function
gen_cvt_ftoi1:
	@ 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]
	cmp	r3, #28
	bne	.L1909
	ldr	r3, .L1915
	ldr	r3, [r3]
	ldr	r3, [r3]
	and	r3, r3, #15
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #8
	bne	.L1910
	ldr	r1, .L1915+4
	ldr	r0, .L1915+8
	bl	vpush_global_sym
	b	.L1911
.L1910:
	ldr	r3, [fp, #-8]
	cmp	r3, #9
	bne	.L1912
	ldr	r1, .L1915+12
	ldr	r0, .L1915+8
	bl	vpush_global_sym
	b	.L1911
.L1912:
	mov	r1, #372
	ldr	r0, .L1915+8
	bl	vpush_global_sym
.L1911:
	mov	r0, #2
	bl	vrott
	mov	r0, #1
	bl	gfunc_call
	mov	r0, #0
	bl	vpushi
	ldr	r3, .L1915
	ldr	r3, [r3]
	mov	r2, #0
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, .L1915
	ldr	r3, [r3]
	mov	r2, #2
	strh	r2, [r3, #10]	@ movhi
	b	.L1914
.L1909:
	ldr	r0, [fp, #-16]
	bl	gen_cvt_ftoi
.L1914:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1916:
	.align	2
.L1915:
	.word	vtop
	.word	370
	.word	func_old_type
	.word	371
	.size	gen_cvt_ftoi1, .-gen_cvt_ftoi1
	.align	2
	.global	force_charshort_cast
	.syntax unified
	.arm
	.fpu softvfp
	.type	force_charshort_cast, %function
force_charshort_cast:
	@ 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]
	and	r3, r3, #15
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #1
	bne	.L1918
	mov	r3, #8
	str	r3, [fp, #-12]
	b	.L1919
.L1918:
	mov	r3, #16
	str	r3, [fp, #-12]
.L1919:
	ldr	r3, [fp, #-16]
	and	r3, r3, #16
	cmp	r3, #0
	beq	.L1920
	mov	r2, #1
	ldr	r3, [fp, #-12]
	lsl	r3, r2, r3
	sub	r3, r3, #1
	mov	r0, r3
	bl	vpushi
	mov	r0, #38
	bl	gen_op
	b	.L1922
.L1920:
	ldr	r3, [fp, #-12]
	rsb	r3, r3, #32
	str	r3, [fp, #-12]
	ldr	r0, [fp, #-12]
	bl	vpushi
	mov	r0, #1
	bl	gen_op
	ldr	r0, [fp, #-12]
	bl	vpushi
	mov	r0, #2
	bl	gen_op
.L1922:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	force_charshort_cast, .-force_charshort_cast
	.global	__aeabi_ui2f
	.global	__aeabi_i2f
	.global	__aeabi_i2d
	.global	__aeabi_d2uiz
	.global	__aeabi_d2iz
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	gen_cast, %function
gen_cast:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #36
	str	r0, [fp, #-40]
	ldr	r3, .L1983
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #1024
	cmp	r3, #0
	beq	.L1924
	ldr	r3, .L1983
	ldr	r3, [r3]
	ldrh	r2, [r3, #8]
	ldr	r3, .L1983
	ldr	r3, [r3]
	bic	r2, r2, #1024
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, .L1983
	ldr	r3, [r3]
	ldr	r3, [r3]
	mov	r0, r3
	bl	force_charshort_cast
.L1924:
	ldr	r3, .L1983
	ldr	r3, [r3]
	ldr	r3, [r3]
	and	r3, r3, #64
	cmp	r3, #0
	beq	.L1925
	mov	r0, #1
	bl	gv
.L1925:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	and	r3, r3, #31
	str	r3, [fp, #-32]
	ldr	r3, .L1983
	ldr	r3, [r3]
	ldr	r3, [r3]
	and	r3, r3, #31
	str	r3, [fp, #-28]
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	beq	.L1926
	ldr	r3, .L1983+4
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L1926
	ldr	r0, [fp, #-28]
	bl	is_float
	str	r0, [fp, #-24]
	ldr	r0, [fp, #-32]
	bl	is_float
	str	r0, [fp, #-20]
	ldr	r3, .L1983
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	lsl	r3, r3, #22
	lsr	r3, r3, #22
	cmp	r3, #240
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L1927
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L1927
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L1928
	ldr	r3, [fp, #-32]
	cmp	r3, #8
	bne	.L1929
	ldr	r3, [fp, #-28]
	cmp	r3, #9
	bne	.L1929
	ldr	r3, .L1983
	ldr	r3, [r3]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	ldr	r1, .L1983
	ldr	r4, [r1]
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4, #16]	@ float
	b	.L1935
.L1929:
	ldr	r3, [fp, #-32]
	cmp	r3, #8
	bne	.L1931
	ldr	r3, [fp, #-28]
	cmp	r3, #10
	bne	.L1931
	ldr	r3, .L1983
	ldr	r3, [r3]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	ldr	r1, .L1983
	ldr	r4, [r1]
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4, #16]	@ float
	b	.L1935
.L1931:
	ldr	r3, [fp, #-32]
	cmp	r3, #9
	bne	.L1932
	ldr	r3, [fp, #-28]
	cmp	r3, #8
	bne	.L1932
	ldr	r3, .L1983
	ldr	r3, [r3]
	ldr	r3, [r3, #16]	@ float
	ldr	r2, .L1983
	ldr	r4, [r2]
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [r4, #16]
	str	r3, [r4, #20]
	b	.L1935
.L1932:
	ldr	r3, [fp, #-32]
	cmp	r3, #9
	bne	.L1933
	ldr	r3, [fp, #-28]
	cmp	r3, #10
	bne	.L1933
	ldr	r3, .L1983
	ldr	r3, [r3]
	ldr	r2, .L1983
	ldr	r1, [r2]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	str	r2, [r1, #16]
	str	r3, [r1, #20]
	b	.L1935
.L1933:
	ldr	r3, [fp, #-32]
	cmp	r3, #10
	bne	.L1934
	ldr	r3, [fp, #-28]
	cmp	r3, #8
	bne	.L1934
	ldr	r3, .L1983
	ldr	r3, [r3]
	ldr	r3, [r3, #16]	@ float
	ldr	r2, .L1983
	ldr	r4, [r2]
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [r4, #16]
	str	r3, [r4, #20]
	b	.L1935
.L1934:
	ldr	r3, [fp, #-32]
	cmp	r3, #10
	bne	.L1974
	ldr	r3, [fp, #-28]
	cmp	r3, #9
	bne	.L1974
	ldr	r3, .L1983
	ldr	r3, [r3]
	ldr	r2, .L1983
	ldr	r1, [r2]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	str	r2, [r1, #16]
	str	r3, [r1, #20]
	b	.L1974
.L1928:
	ldr	r0, [fp, #-32]
	bl	gen_cvt_ftof
	b	.L1974
.L1935:
	b	.L1974
.L1927:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L1936
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L1975
	ldr	r3, [fp, #-28]
	cmp	r3, #28
	beq	.L1976
	ldr	r3, [fp, #-28]
	cmp	r3, #28
	bgt	.L1939
	ldr	r3, [fp, #-28]
	cmp	r3, #12
	beq	.L1976
	ldr	r3, [fp, #-28]
	cmp	r3, #16
	bne	.L1939
	ldr	r3, [fp, #-32]
	cmp	r3, #10
	beq	.L1941
	ldr	r3, [fp, #-32]
	cmp	r3, #10
	bgt	.L1977
	ldr	r3, [fp, #-32]
	cmp	r3, #8
	beq	.L1943
	ldr	r3, [fp, #-32]
	cmp	r3, #9
	beq	.L1944
	b	.L1977
.L1943:
	ldr	r3, .L1983
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r2, .L1983
	ldr	r4, [r2]
	mov	r0, r3
	bl	__aeabi_ui2f
	mov	r3, r0
	str	r3, [r4, #16]	@ float
	b	.L1942
.L1944:
	ldr	r3, .L1983
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r2, .L1983
	ldr	r4, [r2]
	mov	r0, r3
	bl	__aeabi_ui2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [r4, #16]
	str	r3, [r4, #20]
	b	.L1942
.L1941:
	ldr	r3, .L1983
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r2, .L1983
	ldr	r4, [r2]
	mov	r0, r3
	bl	__aeabi_ui2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [r4, #16]
	str	r3, [r4, #20]
	nop
.L1942:
	b	.L1977
.L1939:
	ldr	r3, [fp, #-32]
	cmp	r3, #10
	beq	.L1946
	ldr	r3, [fp, #-32]
	cmp	r3, #10
	bgt	.L1978
	ldr	r3, [fp, #-32]
	cmp	r3, #8
	beq	.L1948
	ldr	r3, [fp, #-32]
	cmp	r3, #9
	beq	.L1949
	b	.L1978
.L1948:
	ldr	r3, .L1983
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r2, .L1983
	ldr	r4, [r2]
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r3, r0
	str	r3, [r4, #16]	@ float
	b	.L1947
.L1949:
	ldr	r3, .L1983
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r2, .L1983
	ldr	r4, [r2]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [r4, #16]
	str	r3, [r4, #20]
	b	.L1947
.L1946:
	ldr	r3, .L1983
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r2, .L1983
	ldr	r4, [r2]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [r4, #16]
	str	r3, [r4, #20]
	nop
.L1947:
	b	.L1978
.L1975:
	nop
	b	.L1937
.L1976:
	nop
.L1937:
	ldr	r0, [fp, #-32]
	bl	gen_cvt_itof1
	b	.L1926
.L1936:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L1950
	ldr	r3, [fp, #-32]
	cmp	r3, #16
	beq	.L1951
	ldr	r3, [fp, #-32]
	cmp	r3, #28
	beq	.L1951
	ldr	r3, [fp, #-32]
	cmp	r3, #12
	beq	.L1951
	mov	r3, #0
	str	r3, [fp, #-32]
.L1951:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L1979
	ldr	r3, [fp, #-32]
	cmp	r3, #28
	beq	.L1980
	ldr	r3, [fp, #-32]
	cmp	r3, #28
	bgt	.L1954
	ldr	r3, [fp, #-32]
	cmp	r3, #12
	beq	.L1980
	ldr	r3, [fp, #-32]
	cmp	r3, #16
	bne	.L1954
	ldr	r3, [fp, #-28]
	cmp	r3, #10
	beq	.L1956
	ldr	r3, [fp, #-28]
	cmp	r3, #10
	bgt	.L1981
	ldr	r3, [fp, #-28]
	cmp	r3, #8
	beq	.L1958
	ldr	r3, [fp, #-28]
	cmp	r3, #9
	beq	.L1959
	b	.L1981
.L1958:
	ldr	r3, .L1983
	ldr	r3, [r3]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	ldr	r1, .L1983
	ldr	r4, [r1]
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2uiz
	mov	r3, r0
	str	r3, [r4, #16]
	b	.L1957
.L1959:
	ldr	r3, .L1983
	ldr	r3, [r3]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	ldr	r1, .L1983
	ldr	r4, [r1]
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2uiz
	mov	r3, r0
	str	r3, [r4, #16]
	b	.L1957
.L1956:
	ldr	r3, .L1983
	ldr	r3, [r3]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	ldr	r1, .L1983
	ldr	r4, [r1]
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2uiz
	mov	r3, r0
	str	r3, [r4, #16]
	nop
.L1957:
	b	.L1981
.L1954:
	ldr	r3, [fp, #-28]
	cmp	r3, #10
	beq	.L1961
	ldr	r3, [fp, #-28]
	cmp	r3, #10
	bgt	.L1982
	ldr	r3, [fp, #-28]
	cmp	r3, #8
	beq	.L1963
	ldr	r3, [fp, #-28]
	cmp	r3, #9
	beq	.L1964
	b	.L1982
.L1963:
	ldr	r3, .L1983
	ldr	r3, [r3]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	ldr	r1, .L1983
	ldr	r4, [r1]
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
	str	r3, [r4, #16]
	b	.L1962
.L1964:
	ldr	r3, .L1983
	ldr	r3, [r3]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	ldr	r1, .L1983
	ldr	r4, [r1]
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
	str	r3, [r4, #16]
	b	.L1962
.L1961:
	ldr	r3, .L1983
	ldr	r3, [r3]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	ldr	r1, .L1983
	ldr	r4, [r1]
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
	str	r3, [r4, #16]
	nop
.L1962:
	b	.L1982
.L1979:
	nop
	b	.L1952
.L1980:
	nop
.L1952:
	ldr	r0, [fp, #-32]
	bl	gen_cvt_ftoi1
	b	.L1965
.L1981:
	nop
	b	.L1965
.L1982:
	nop
.L1965:
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	bne	.L1926
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	and	r3, r3, #31
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	beq	.L1926
	ldr	r3, .L1983
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	str	r2, [r3]
	ldr	r0, [fp, #-40]
	bl	gen_cast
	b	.L1926
.L1950:
	ldr	r3, [fp, #-32]
	and	r3, r3, #15
	cmp	r3, #12
	bne	.L1966
	ldr	r3, [fp, #-28]
	and	r3, r3, #15
	cmp	r3, #12
	beq	.L1926
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L1967
	ldr	r3, [fp, #-28]
	cmp	r3, #16
	bne	.L1968
	ldr	r3, .L1983
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r2, .L1983
	ldr	r1, [r2]
	mov	r2, r3
	mov	r3, #0
	str	r2, [r1, #16]
	str	r3, [r1, #20]
	b	.L1926
.L1968:
	ldr	r3, .L1983
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r2, .L1983
	ldr	r1, [r2]
	mov	r2, r3
	asr	r3, r2, #31
	str	r2, [r1, #16]
	str	r3, [r1, #20]
	b	.L1926
.L1967:
	mov	r0, #1
	bl	gv
	ldr	r3, [fp, #-28]
	cmp	r3, #16
	bne	.L1969
	mov	r0, #0
	bl	vpushi
	mov	r0, #1
	bl	gv
	b	.L1970
.L1969:
	bl	gv_dup
	mov	r0, #31
	bl	vpushi
	mov	r0, #2
	bl	gen_op
.L1970:
	ldr	r3, .L1983
	ldr	r2, [r3]
	ldr	r3, .L1983
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldrh	r2, [r2, #8]
	strh	r2, [r3, #10]	@ movhi
	bl	vpop
	b	.L1926
.L1966:
	ldr	r3, [fp, #-32]
	cmp	r3, #11
	bne	.L1971
	mov	r0, #0
	bl	vpushi
	mov	r0, #149
	bl	gen_op
	b	.L1926
.L1971:
	ldr	r3, [fp, #-32]
	and	r3, r3, #15
	cmp	r3, #1
	beq	.L1972
	ldr	r3, [fp, #-32]
	and	r3, r3, #15
	cmp	r3, #2
	bne	.L1973
.L1972:
	ldr	r0, [fp, #-32]
	bl	force_charshort_cast
	b	.L1926
.L1973:
	ldr	r3, [fp, #-32]
	and	r3, r3, #15
	cmp	r3, #0
	bne	.L1926
	ldr	r3, [fp, #-28]
	cmp	r3, #12
	bne	.L1926
	bl	lexpand
	bl	vpop
	b	.L1926
.L1974:
	nop
	b	.L1926
.L1977:
	nop
	b	.L1926
.L1978:
	nop
.L1926:
	ldr	r3, .L1983
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1984:
	.align	2
.L1983:
	.word	vtop
	.word	nocode_wanted
	.size	gen_cast, .-gen_cast
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	type_size, %function
type_size:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	and	r3, r3, #15
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #7
	bne	.L1986
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	b	.L1987
.L1986:
	ldr	r3, [fp, #-12]
	cmp	r3, #4
	bne	.L1988
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	and	r3, r3, #32
	cmp	r3, #0
	beq	.L1989
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	add	r3, r3, #12
	ldr	r1, [fp, #-20]
	mov	r0, r3
	bl	type_size
	mov	r2, r0
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	mul	r3, r2, r3
	b	.L1987
.L1989:
	ldr	r3, [fp, #-20]
	mov	r2, #4
	str	r2, [r3]
	mov	r3, #4
	b	.L1987
.L1988:
	ldr	r3, [fp, #-12]
	cmp	r3, #10
	bne	.L1990
	ldr	r3, [fp, #-20]
	mov	r2, #4
	str	r2, [r3]
	mov	r3, #12
	b	.L1987
.L1990:
	ldr	r3, [fp, #-12]
	cmp	r3, #9
	beq	.L1991
	ldr	r3, [fp, #-12]
	cmp	r3, #12
	bne	.L1992
.L1991:
	ldr	r3, [fp, #-20]
	mov	r2, #4
	str	r2, [r3]
	mov	r3, #8
	b	.L1987
.L1992:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L1993
	ldr	r3, [fp, #-12]
	cmp	r3, #5
	beq	.L1993
	ldr	r3, [fp, #-12]
	cmp	r3, #8
	bne	.L1994
.L1993:
	ldr	r3, [fp, #-20]
	mov	r2, #4
	str	r2, [r3]
	mov	r3, #4
	b	.L1987
.L1994:
	ldr	r3, [fp, #-12]
	cmp	r3, #2
	bne	.L1995
	ldr	r3, [fp, #-20]
	mov	r2, #2
	str	r2, [r3]
	mov	r3, #2
	b	.L1987
.L1995:
	ldr	r3, [fp, #-20]
	mov	r2, #1
	str	r2, [r3]
	mov	r3, #1
.L1987:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	type_size, .-type_size
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	mk_pointer, %function
mk_pointer:
	@ 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]
	mvn	r3, #0
	mov	r2, #0
	ldr	r1, [fp, #-16]
	mov	r0, #536870912
	bl	sym_push
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	and	r3, r3, #1920
	orr	r2, r3, #4
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #4]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	mk_pointer, .-mk_pointer
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_compatible_func, %function
is_compatible_func:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	add	r2, r3, #12
	ldr	r3, [fp, #-8]
	add	r3, r3, #12
	mov	r1, r3
	mov	r0, r2
	bl	is_compatible_types
	mov	r3, r0
	cmp	r3, #0
	bne	.L1998
	mov	r3, #0
	b	.L1999
.L1998:
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	beq	.L2000
	mov	r3, #0
	b	.L1999
.L2000:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #8]
	cmp	r3, #2
	beq	.L2001
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	cmp	r3, #2
	bne	.L2002
.L2001:
	mov	r3, #1
	b	.L1999
.L2002:
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	cmp	r2, r3
	beq	.L2004
	mov	r3, #0
	b	.L1999
.L2007:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L2005
	mov	r3, #0
	b	.L1999
.L2005:
	ldr	r3, [fp, #-12]
	add	r2, r3, #12
	ldr	r3, [fp, #-8]
	add	r3, r3, #12
	mov	r1, r3
	mov	r0, r2
	bl	is_compatible_types
	mov	r3, r0
	cmp	r3, #0
	bne	.L2006
	mov	r3, #0
	b	.L1999
.L2006:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #20]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #20]
	str	r3, [fp, #-8]
.L2004:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L2007
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L2008
	mov	r3, #0
	b	.L1999
.L2008:
	mov	r3, #1
.L1999:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	is_compatible_func, .-is_compatible_func
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_compatible_types, %function
is_compatible_types:
	@ 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]
	ldr	r3, [r3]
	bic	r3, r3, #1920
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	bic	r3, r3, #1920
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	beq	.L2010
	mov	r3, #0
	b	.L2011
.L2010:
	ldr	r3, [fp, #-16]
	and	r3, r3, #15
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #4
	bne	.L2012
	ldr	r0, [fp, #-24]
	bl	pointed_type
	str	r0, [fp, #-24]
	ldr	r0, [fp, #-28]
	bl	pointed_type
	str	r0, [fp, #-28]
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-24]
	bl	is_compatible_types
	mov	r3, r0
	b	.L2011
.L2012:
	ldr	r3, [fp, #-8]
	cmp	r3, #7
	bne	.L2013
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	b	.L2011
.L2013:
	ldr	r3, [fp, #-8]
	cmp	r3, #6
	bne	.L2014
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-24]
	bl	is_compatible_func
	mov	r3, r0
	b	.L2011
.L2014:
	mov	r3, #1
.L2011:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	is_compatible_types, .-is_compatible_types
	.section	.rodata
	.align	2
.LC115:
	.ascii	"const \000"
	.align	2
.LC116:
	.ascii	"volatile \000"
	.align	2
.LC117:
	.ascii	"unsigned \000"
	.align	2
.LC118:
	.ascii	"void\000"
	.align	2
.LC119:
	.ascii	"_Bool\000"
	.align	2
.LC120:
	.ascii	"char\000"
	.align	2
.LC121:
	.ascii	"short\000"
	.align	2
.LC122:
	.ascii	"int\000"
	.align	2
.LC123:
	.ascii	"long\000"
	.align	2
.LC124:
	.ascii	"long long\000"
	.align	2
.LC125:
	.ascii	"float\000"
	.align	2
.LC126:
	.ascii	"double\000"
	.align	2
.LC127:
	.ascii	"long double\000"
	.align	2
.LC128:
	.ascii	"struct \000"
	.align	2
.LC129:
	.ascii	"enum \000"
	.align	2
.LC130:
	.ascii	"<anonymous>\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:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	type_to_str
	.syntax unified
	.arm
	.fpu softvfp
	.type	type_to_str, %function
type_to_str:
	@ args = 0, pretend = 0, frame = 304
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #304
	str	r0, [fp, #-296]
	str	r1, [fp, #-300]
	str	r2, [fp, #-304]
	str	r3, [fp, #-308]
	ldr	r3, .L2045
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-304]
	ldr	r3, [r3]
	bic	r3, r3, #1920
	str	r3, [fp, #-280]
	ldr	r3, [fp, #-280]
	and	r3, r3, #15
	str	r3, [fp, #-276]
	ldr	r3, [fp, #-296]
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-280]
	and	r3, r3, #2048
	cmp	r3, #0
	beq	.L2016
	ldr	r2, .L2045+4
	ldr	r1, [fp, #-300]
	ldr	r0, [fp, #-296]
	bl	pstrcat
.L2016:
	ldr	r3, [fp, #-280]
	and	r3, r3, #4096
	cmp	r3, #0
	beq	.L2017
	ldr	r2, .L2045+8
	ldr	r1, [fp, #-300]
	ldr	r0, [fp, #-296]
	bl	pstrcat
.L2017:
	ldr	r3, [fp, #-280]
	and	r3, r3, #16
	cmp	r3, #0
	beq	.L2018
	ldr	r2, .L2045+12
	ldr	r1, [fp, #-300]
	ldr	r0, [fp, #-296]
	bl	pstrcat
.L2018:
	ldr	r3, [fp, #-276]
	cmp	r3, #13
	ldrls	pc, [pc, r3, asl #2]
	b	.L2019
.L2021:
	.word	.L2033
	.word	.L2032
	.word	.L2031
	.word	.L2030
	.word	.L2029
	.word	.L2027
	.word	.L2028
	.word	.L2027
	.word	.L2026
	.word	.L2025
	.word	.L2024
	.word	.L2023
	.word	.L2022
	.word	.L2020
.L2030:
	ldr	r3, .L2045+16
	str	r3, [fp, #-284]
	b	.L2034
.L2023:
	ldr	r3, .L2045+20
	str	r3, [fp, #-284]
	b	.L2034
.L2032:
	ldr	r3, .L2045+24
	str	r3, [fp, #-284]
	b	.L2034
.L2031:
	ldr	r3, .L2045+28
	str	r3, [fp, #-284]
	b	.L2034
.L2033:
	ldr	r3, .L2045+32
	str	r3, [fp, #-284]
	b	.L2034
.L2020:
	ldr	r3, .L2045+36
	str	r3, [fp, #-284]
	b	.L2034
.L2022:
	ldr	r3, .L2045+40
	str	r3, [fp, #-284]
	b	.L2034
.L2026:
	ldr	r3, .L2045+44
	str	r3, [fp, #-284]
	b	.L2034
.L2025:
	ldr	r3, .L2045+48
	str	r3, [fp, #-284]
	b	.L2034
.L2024:
	ldr	r3, .L2045+52
	str	r3, [fp, #-284]
.L2034:
	ldr	r2, [fp, #-284]
	ldr	r1, [fp, #-300]
	ldr	r0, [fp, #-296]
	bl	pstrcat
	b	.L2019
.L2027:
	ldr	r3, [fp, #-276]
	cmp	r3, #7
	bne	.L2035
	ldr	r3, .L2045+56
	str	r3, [fp, #-284]
	b	.L2036
.L2035:
	ldr	r3, .L2045+60
	str	r3, [fp, #-284]
.L2036:
	ldr	r2, [fp, #-284]
	ldr	r1, [fp, #-300]
	ldr	r0, [fp, #-296]
	bl	pstrcat
	ldr	r3, [fp, #-304]
	ldr	r3, [r3, #4]
	ldr	r3, [r3]
	bic	r3, r3, #1073741824
	str	r3, [fp, #-268]
	ldr	r3, [fp, #-268]
	cmn	r3, #-268435455
	ble	.L2037
	ldr	r2, .L2045+64
	ldr	r1, [fp, #-300]
	ldr	r0, [fp, #-296]
	bl	pstrcat
	b	.L2019
.L2037:
	mov	r1, #0
	ldr	r0, [fp, #-268]
	bl	get_tok_str
	mov	r3, r0
	mov	r2, r3
	ldr	r1, [fp, #-300]
	ldr	r0, [fp, #-296]
	bl	pstrcat
	b	.L2019
.L2028:
	ldr	r3, [fp, #-304]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-272]
	ldr	r3, [fp, #-272]
	add	r2, r3, #12
	ldr	r3, [fp, #-308]
	ldr	r1, [fp, #-300]
	ldr	r0, [fp, #-296]
	bl	type_to_str
	ldr	r2, .L2045+68
	ldr	r1, [fp, #-300]
	ldr	r0, [fp, #-296]
	bl	pstrcat
	ldr	r3, [fp, #-272]
	ldr	r3, [r3, #20]
	str	r3, [fp, #-288]
	b	.L2039
.L2040:
	ldr	r3, [fp, #-288]
	add	r2, r3, #12
	sub	r0, fp, #264
	mov	r3, #0
	mov	r1, #256
	bl	type_to_str
	sub	r3, fp, #264
	mov	r2, r3
	ldr	r1, [fp, #-300]
	ldr	r0, [fp, #-296]
	bl	pstrcat
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #20]
	str	r3, [fp, #-288]
	ldr	r3, [fp, #-288]
	cmp	r3, #0
	beq	.L2039
	ldr	r2, .L2045+72
	ldr	r1, [fp, #-300]
	ldr	r0, [fp, #-296]
	bl	pstrcat
.L2039:
	ldr	r3, [fp, #-288]
	cmp	r3, #0
	bne	.L2040
	ldr	r2, .L2045+76
	ldr	r1, [fp, #-300]
	ldr	r0, [fp, #-296]
	bl	pstrcat
	b	.L2041
.L2029:
	ldr	r3, [fp, #-304]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-272]
	sub	r3, fp, #264
	ldr	r2, .L2045+80
	mov	r1, #256
	mov	r0, r3
	bl	pstrcpy
	ldr	r3, [fp, #-308]
	cmp	r3, #0
	beq	.L2042
	sub	r3, fp, #264
	ldr	r2, [fp, #-308]
	mov	r1, #256
	mov	r0, r3
	bl	pstrcat
.L2042:
	ldr	r3, [fp, #-272]
	add	r2, r3, #12
	sub	r3, fp, #264
	ldr	r1, [fp, #-300]
	ldr	r0, [fp, #-296]
	bl	type_to_str
	b	.L2041
.L2019:
	ldr	r3, [fp, #-308]
	cmp	r3, #0
	beq	.L2044
	ldr	r2, .L2045+84
	ldr	r1, [fp, #-300]
	ldr	r0, [fp, #-296]
	bl	pstrcat
	ldr	r2, [fp, #-308]
	ldr	r1, [fp, #-300]
	ldr	r0, [fp, #-296]
	bl	pstrcat
	b	.L2041
.L2044:
	nop
.L2041:
	nop
	ldr	r3, .L2045
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2043
	bl	__stack_chk_fail
.L2043:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2046:
	.align	2
.L2045:
	.word	.LC136
	.word	.LC115
	.word	.LC116
	.word	.LC117
	.word	.LC118
	.word	.LC119
	.word	.LC120
	.word	.LC121
	.word	.LC122
	.word	.LC123
	.word	.LC124
	.word	.LC125
	.word	.LC126
	.word	.LC127
	.word	.LC128
	.word	.LC129
	.word	.LC130
	.word	.LC131
	.word	.LC132
	.word	.LC133
	.word	.LC134
	.word	.LC135
	.size	type_to_str, .-type_to_str
	.section	.rodata
	.align	2
.LC137:
	.ascii	"assignment of read-only location\000"
	.align	2
.LC138:
	.ascii	"assignment makes pointer from integer without a cas"
	.ascii	"t\000"
	.align	2
.LC139:
	.ascii	"assignment discards qualifiers from pointer target "
	.ascii	"type\000"
	.align	2
.LC140:
	.ascii	"assignment makes integer from pointer without a cas"
	.ascii	"t\000"
	.align	2
.LC141:
	.ascii	"cannot cast '%s' to '%s'\000"
	.align	2
.LC142:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	gen_assign_cast, %function
gen_assign_cast:
	@ args = 0, pretend = 0, frame = 560
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #560
	str	r0, [fp, #-560]
	ldr	r3, .L2075
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L2075+4
	ldr	r3, [r3]
	str	r3, [fp, #-556]
	ldr	r3, [fp, #-560]
	ldr	r3, [r3]
	and	r3, r3, #15
	str	r3, [fp, #-552]
	ldr	r3, [fp, #-556]
	ldr	r3, [r3]
	and	r3, r3, #15
	str	r3, [fp, #-548]
	ldr	r3, [fp, #-560]
	ldr	r3, [r3]
	and	r3, r3, #2048
	cmp	r3, #0
	beq	.L2048
	ldr	r0, .L2075+8
	bl	warning
.L2048:
	ldr	r3, [fp, #-552]
	cmp	r3, #12
	ldrls	pc, [pc, r3, asl #2]
	b	.L2049
.L2051:
	.word	.L2050
	.word	.L2050
	.word	.L2050
	.word	.L2049
	.word	.L2053
	.word	.L2049
	.word	.L2049
	.word	.L2052
	.word	.L2049
	.word	.L2049
	.word	.L2049
	.word	.L2049
	.word	.L2050
.L2053:
	ldr	r3, .L2075+4
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_null_pointer
	mov	r3, r0
	cmp	r3, #0
	bne	.L2068
	ldr	r0, [fp, #-548]
	bl	is_integer_btype
	mov	r3, r0
	cmp	r3, #0
	beq	.L2055
	ldr	r0, .L2075+12
	bl	warning
	b	.L2049
.L2055:
	ldr	r0, [fp, #-560]
	bl	pointed_type
	str	r0, [fp, #-544]
	ldr	r3, [fp, #-548]
	cmp	r3, #6
	bne	.L2056
	ldr	r3, [fp, #-544]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #3
	beq	.L2069
	ldr	r0, [fp, #-560]
	bl	pointed_type
	mov	r3, r0
	ldr	r1, [fp, #-556]
	mov	r0, r3
	bl	is_compatible_types
	mov	r3, r0
	cmp	r3, #0
	bne	.L2069
	b	.L2058
.L2056:
	ldr	r3, [fp, #-548]
	cmp	r3, #4
	bne	.L2070
	ldr	r0, [fp, #-556]
	bl	pointed_type
	str	r0, [fp, #-540]
	ldr	r3, [fp, #-544]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #3
	beq	.L2060
	ldr	r3, [fp, #-540]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #3
	beq	.L2060
	ldr	r2, [fp, #-544]
	sub	r3, fp, #536
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	ldr	r2, [fp, #-540]
	sub	r3, fp, #528
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	ldr	r3, [fp, #-536]
	bic	r3, r3, #6144
	bic	r3, r3, #16
	str	r3, [fp, #-536]
	ldr	r3, [fp, #-528]
	bic	r3, r3, #6144
	bic	r3, r3, #16
	str	r3, [fp, #-528]
	sub	r2, fp, #528
	sub	r3, fp, #536
	mov	r1, r2
	mov	r0, r3
	bl	is_compatible_types
	mov	r3, r0
	cmp	r3, #0
	beq	.L2071
.L2060:
	ldr	r3, [fp, #-544]
	ldr	r3, [r3]
	and	r3, r3, #2048
	cmp	r3, #0
	bne	.L2061
	ldr	r3, [fp, #-540]
	ldr	r3, [r3]
	and	r3, r3, #2048
	cmp	r3, #0
	bne	.L2062
.L2061:
	ldr	r3, [fp, #-544]
	ldr	r3, [r3]
	and	r3, r3, #4096
	cmp	r3, #0
	bne	.L2072
	ldr	r3, [fp, #-540]
	ldr	r3, [r3]
	and	r3, r3, #4096
	cmp	r3, #0
	beq	.L2072
.L2062:
	ldr	r0, .L2075+16
	bl	warning
	b	.L2072
.L2050:
	ldr	r3, [fp, #-548]
	cmp	r3, #4
	beq	.L2064
	ldr	r3, [fp, #-548]
	cmp	r3, #6
	bne	.L2073
.L2064:
	ldr	r0, .L2075+20
	bl	warning
	b	.L2073
.L2052:
	ldr	r2, [fp, #-560]
	sub	r3, fp, #536
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	ldr	r2, [fp, #-556]
	sub	r3, fp, #528
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	ldr	r3, [fp, #-536]
	bic	r3, r3, #6144
	str	r3, [fp, #-536]
	ldr	r3, [fp, #-528]
	bic	r3, r3, #6144
	str	r3, [fp, #-528]
	sub	r2, fp, #528
	sub	r3, fp, #536
	mov	r1, r2
	mov	r0, r3
	bl	is_compatible_types
	mov	r3, r0
	cmp	r3, #0
	bne	.L2074
	b	.L2058
.L2070:
	nop
	b	.L2058
.L2071:
	nop
.L2058:
	sub	r0, fp, #520
	mov	r3, #0
	ldr	r2, [fp, #-556]
	mov	r1, #256
	bl	type_to_str
	sub	r0, fp, #264
	mov	r3, #0
	ldr	r2, [fp, #-560]
	mov	r1, #256
	bl	type_to_str
	sub	r2, fp, #264
	sub	r3, fp, #520
	mov	r1, r3
	ldr	r0, .L2075+24
	bl	error
	b	.L2074
.L2068:
	nop
	b	.L2049
.L2069:
	nop
	b	.L2049
.L2072:
	nop
	b	.L2049
.L2073:
	nop
	b	.L2049
.L2074:
	nop
.L2049:
	ldr	r0, [fp, #-560]
	bl	gen_cast
	nop
	ldr	r3, .L2075
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2067
	bl	__stack_chk_fail
.L2067:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2076:
	.align	2
.L2075:
	.word	.LC142
	.word	vtop
	.word	.LC137
	.word	.LC138
	.word	.LC139
	.word	.LC140
	.word	.LC141
	.size	gen_assign_cast, .-gen_assign_cast
	.section	.rodata
	.align	2
.LC143:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	vstore
	.syntax unified
	.arm
	.fpu softvfp
	.type	vstore, %function
vstore:
	@ args = 0, pretend = 0, frame = 88
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #88
	ldr	r3, .L2094
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L2094+4
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldr	r3, [r3]
	str	r3, [fp, #-76]
	ldr	r3, .L2094+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	and	r3, r3, #15
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-76]
	and	r3, r3, #15
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-72]
	cmp	r3, #0
	beq	.L2078
	ldr	r3, [fp, #-72]
	cmp	r3, #2
	bne	.L2079
.L2078:
	ldr	r3, [fp, #-68]
	cmp	r3, #1
	beq	.L2080
.L2079:
	ldr	r3, [fp, #-72]
	cmp	r3, #0
	bne	.L2081
	ldr	r3, [fp, #-68]
	cmp	r3, #2
	bne	.L2081
.L2080:
	mov	r3, #1024
	str	r3, [fp, #-80]
	ldr	r3, .L2094+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-76]
	bic	r2, r2, #1920
	str	r2, [r3]
	ldr	r3, [fp, #-76]
	and	r3, r3, #2048
	cmp	r3, #0
	beq	.L2083
	ldr	r0, .L2094+8
	bl	warning
	b	.L2083
.L2081:
	mov	r3, #0
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-76]
	and	r3, r3, #64
	cmp	r3, #0
	bne	.L2083
	ldr	r3, .L2094+4
	ldr	r3, [r3]
	sub	r3, r3, #32
	mov	r0, r3
	bl	gen_assign_cast
.L2083:
	ldr	r3, [fp, #-72]
	cmp	r3, #7
	bne	.L2084
	ldr	r3, .L2094+12
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L2085
	ldr	r3, .L2094+4
	ldr	r3, [r3]
	mov	r2, r3
	sub	r3, fp, #88
	mov	r1, r3
	mov	r0, r2
	bl	type_size
	str	r0, [fp, #-48]
	ldr	r1, .L2094+16
	ldr	r0, .L2094+20
	bl	vpush_global_sym
	ldr	r3, .L2094+4
	ldr	r3, [r3]
	sub	r3, r3, #64
	mov	r0, r3
	bl	vpushv
	ldr	r3, .L2094+4
	ldr	r3, [r3]
	mov	r2, #0
	str	r2, [r3]
	bl	gaddrof
	ldr	r3, .L2094+4
	ldr	r3, [r3]
	sub	r3, r3, #64
	mov	r0, r3
	bl	vpushv
	ldr	r3, .L2094+4
	ldr	r3, [r3]
	mov	r2, #0
	str	r2, [r3]
	bl	gaddrof
	ldr	r0, [fp, #-48]
	bl	vpushi
	mov	r0, #3
	bl	gfunc_call
	bl	vswap
	bl	vpop
	b	.L2093
.L2085:
	bl	vswap
	bl	vpop
	b	.L2093
.L2084:
	ldr	r3, [fp, #-76]
	and	r3, r3, #64
	cmp	r3, #0
	beq	.L2087
	ldr	r3, [fp, #-76]
	asr	r3, r3, #16
	and	r3, r3, #63
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-76]
	asr	r3, r3, #22
	and	r3, r3, #63
	str	r3, [fp, #-52]
	ldr	r3, .L2094+4
	ldr	r3, [r3]
	sub	r2, r3, #32
	ldr	r1, [fp, #-76]
	ldr	r3, .L2094+24
	and	r3, r3, r1
	str	r3, [r2]
	bl	vdup
	ldr	r3, .L2094+4
	ldr	r3, [r3]
	ldr	r2, .L2094+4
	ldr	r2, [r2]
	sub	r2, r2, #32
	mov	lr, r2
	sub	ip, r3, #64
	ldmia	ip!, {r0, r1, r2, r3}
	stmia	lr!, {r0, r1, r2, r3}
	ldm	ip, {r0, r1, r2, r3}
	stm	lr, {r0, r1, r2, r3}
	mov	r2, #1
	ldr	r3, [fp, #-52]
	lsl	r3, r2, r3
	sub	r3, r3, #1
	mov	r0, r3
	bl	vpushi
	mov	r0, #38
	bl	gen_op
	ldr	r0, [fp, #-56]
	bl	vpushi
	mov	r0, #1
	bl	gen_op
	bl	vswap
	mov	r2, #1
	ldr	r3, [fp, #-52]
	lsl	r3, r2, r3
	sub	r2, r3, #1
	ldr	r3, [fp, #-56]
	lsl	r3, r2, r3
	mvn	r3, r3
	mov	r0, r3
	bl	vpushi
	mov	r0, #38
	bl	gen_op
	mov	r0, #124
	bl	gen_op
	bl	vstore
	b	.L2093
.L2087:
	ldr	r3, .L2094+4
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldrh	r3, [r3, #8]
	and	r3, r3, #2048
	cmp	r3, #0
	beq	.L2088
	bl	vswap
	bl	gbound
	bl	vswap
.L2088:
	ldr	r3, .L2094+12
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L2089
	mov	r3, #1
	str	r3, [fp, #-84]
	ldr	r0, [fp, #-76]
	bl	is_float
	mov	r3, r0
	cmp	r3, #0
	beq	.L2090
	mov	r3, #2
	str	r3, [fp, #-84]
.L2090:
	ldr	r0, [fp, #-84]
	bl	gv
	str	r0, [fp, #-64]
	ldr	r3, .L2094+4
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldrh	r3, [r3, #8]
	and	r3, r3, #255
	cmp	r3, #241
	bne	.L2091
	mov	r0, #1
	bl	get_reg
	str	r0, [fp, #-60]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r3, .L2094+28
	strh	r3, [fp, #-36]	@ movhi
	ldr	r3, .L2094+4
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldr	r3, [r3, #16]
	str	r3, [fp, #-28]
	sub	r3, fp, #44
	mov	r1, r3
	ldr	r0, [fp, #-60]
	bl	load
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	orr	r3, r3, #256
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, .L2094+4
	ldr	r3, [r3]
	sub	r3, r3, #32
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #8]	@ movhi
.L2091:
	ldr	r3, .L2094+4
	ldr	r3, [r3]
	sub	r3, r3, #32
	mov	r1, r3
	ldr	r0, [fp, #-64]
	bl	store
	ldr	r3, [fp, #-76]
	and	r3, r3, #15
	cmp	r3, #12
	bne	.L2089
	bl	vswap
	ldr	r3, .L2094+4
	ldr	r3, [r3]
	mov	r2, #0
	str	r2, [r3]
	bl	gaddrof
	mov	r0, #4
	bl	vpushi
	mov	r0, #43
	bl	gen_op
	ldr	r3, .L2094+4
	ldr	r3, [r3]
	ldrh	r2, [r3, #8]
	ldr	r3, .L2094+4
	ldr	r3, [r3]
	orr	r2, r2, #256
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #8]	@ movhi
	bl	vswap
	ldr	r3, .L2094+4
	ldr	r3, [r3]
	ldrh	r3, [r3, #10]
	mov	r2, r3
	ldr	r3, .L2094+4
	ldr	r3, [r3]
	sub	r3, r3, #32
	mov	r1, r3
	mov	r0, r2
	bl	store
.L2089:
	bl	vswap
	ldr	r3, .L2094+4
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldr	r2, .L2094+4
	str	r3, [r2]
	ldr	r3, .L2094+4
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, [fp, #-80]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	orr	r3, r2, r3
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, .L2094+4
	ldr	r3, [r3]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #8]	@ movhi
.L2093:
	nop
	ldr	r3, .L2094
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2092
	bl	__stack_chk_fail
.L2092:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2095:
	.align	2
.L2094:
	.word	.LC143
	.word	vtop
	.word	.LC137
	.word	nocode_wanted
	.word	355
	.word	func_old_type
	.word	65471
	.word	498
	.size	vstore, .-vstore
	.align	2
	.global	inc
	.syntax unified
	.arm
	.fpu softvfp
	.type	inc, %function
inc:
	@ 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]
	bl	test_lvalue
	bl	vdup
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L2097
	bl	gv_dup
	mov	r0, #3
	bl	vrotb
	mov	r0, #3
	bl	vrotb
.L2097:
	ldr	r3, [fp, #-12]
	sub	r3, r3, #163
	mov	r0, r3
	bl	vpushi
	mov	r0, #43
	bl	gen_op
	bl	vstore
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L2099
	bl	vpop
.L2099:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	inc, .-inc
	.section	.rodata
	.align	2
.LC144:
	.ascii	"attribute name\000"
	.align	2
.LC145:
	.ascii	"section name\000"
	.align	2
.LC146:
	.ascii	"alignment must be a positive power of two\000"
	.align	2
.LC147:
	.ascii	"'%s' attribute ignored\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	parse_attribute, %function
parse_attribute:
	@ 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]
	b	.L2101
.L2132:
	bl	next
	mov	r0, #40
	bl	skip
	mov	r0, #40
	bl	skip
	b	.L2102
.L2131:
	ldr	r3, .L2136
	ldr	r3, [r3]
	cmp	r3, #255
	bgt	.L2103
	ldr	r0, .L2136+4
	bl	expect
.L2103:
	ldr	r3, .L2136
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	bl	next
	ldr	r3, [fp, #-8]
	sub	r3, r3, #332
	sub	r3, r3, #1
	cmp	r3, #20
	ldrls	pc, [pc, r3, asl #2]
	b	.L2104
.L2106:
	.word	.L2114
	.word	.L2114
	.word	.L2113
	.word	.L2113
	.word	.L2112
	.word	.L2112
	.word	.L2133
	.word	.L2133
	.word	.L2110
	.word	.L2110
	.word	.L2110
	.word	.L2109
	.word	.L2109
	.word	.L2109
	.word	.L2108
	.word	.L2133
	.word	.L2133
	.word	.L2104
	.word	.L2104
	.word	.L2105
	.word	.L2105
.L2114:
	mov	r0, #40
	bl	skip
	ldr	r3, .L2136
	ldr	r3, [r3]
	cmp	r3, #181
	beq	.L2115
	ldr	r0, .L2136+8
	bl	expect
.L2115:
	ldr	r3, .L2136+12
	ldr	r2, [r3]
	ldr	r3, .L2136+16
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	mov	r1, r3
	mov	r0, r2
	bl	find_section
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #8]
	bl	next
	mov	r0, #41
	bl	skip
	b	.L2116
.L2113:
	ldr	r3, .L2136
	ldr	r3, [r3]
	cmp	r3, #40
	bne	.L2117
	bl	next
	bl	expr_const
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	ble	.L2118
	ldr	r3, [fp, #-12]
	sub	r2, r3, #1
	ldr	r3, [fp, #-12]
	and	r3, r3, r2
	cmp	r3, #0
	beq	.L2119
.L2118:
	ldr	r0, .L2136+20
	bl	error
.L2119:
	mov	r0, #41
	bl	skip
	b	.L2120
.L2117:
	mov	r3, #8
	str	r3, [fp, #-12]
.L2120:
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	b	.L2116
.L2112:
	ldr	r3, [fp, #-16]
	mov	r2, #1
	str	r2, [r3, #4]
	b	.L2116
.L2110:
	ldr	r3, [fp, #-16]
	mov	r2, #0
	strb	r2, [r3, #12]
	b	.L2116
.L2109:
	ldr	r3, [fp, #-16]
	mov	r2, #1
	strb	r2, [r3, #12]
	b	.L2116
.L2105:
	mov	r0, #40
	bl	skip
	bl	expr_const
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #3
	ble	.L2121
	mov	r3, #3
	str	r3, [fp, #-12]
	b	.L2122
.L2121:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bge	.L2122
	mov	r3, #0
	str	r3, [fp, #-12]
.L2122:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	ble	.L2123
	ldr	r3, [fp, #-12]
	and	r3, r3, #255
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3, #12]
.L2123:
	mov	r0, #41
	bl	skip
	b	.L2116
.L2108:
	ldr	r3, [fp, #-16]
	mov	r2, #1
	strb	r2, [r3, #13]
	b	.L2116
.L2104:
	ldr	r3, .L2136+12
	ldr	r3, [r3]
	ldr	r3, [r3, #136]
	cmp	r3, #0
	beq	.L2124
	mov	r1, #0
	ldr	r0, [fp, #-8]
	bl	get_tok_str
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L2136+24
	bl	warning
.L2124:
	ldr	r3, .L2136
	ldr	r3, [r3]
	cmp	r3, #40
	bne	.L2134
	bl	next
	b	.L2126
.L2128:
	bl	next
.L2126:
	ldr	r3, .L2136
	ldr	r3, [r3]
	cmp	r3, #41
	beq	.L2127
	ldr	r3, .L2136
	ldr	r3, [r3]
	cmn	r3, #1
	bne	.L2128
.L2127:
	bl	next
	b	.L2134
.L2133:
	nop
	b	.L2116
.L2134:
	nop
.L2116:
	ldr	r3, .L2136
	ldr	r3, [r3]
	cmp	r3, #44
	bne	.L2135
	bl	next
.L2102:
	ldr	r3, .L2136
	ldr	r3, [r3]
	cmp	r3, #41
	bne	.L2131
	b	.L2130
.L2135:
	nop
.L2130:
	mov	r0, #41
	bl	skip
	mov	r0, #41
	bl	skip
.L2101:
	ldr	r3, .L2136
	ldr	r3, [r3]
	ldr	r2, .L2136+28
	cmp	r3, r2
	beq	.L2132
	ldr	r3, .L2136
	ldr	r3, [r3]
	ldr	r2, .L2136+32
	cmp	r3, r2
	beq	.L2132
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2137:
	.align	2
.L2136:
	.word	tok
	.word	.LC144
	.word	.LC145
	.word	tcc_state
	.word	tokc
	.word	.LC146
	.word	.LC147
	.word	302
	.word	303
	.size	parse_attribute, .-parse_attribute
	.section	.rodata
	.align	2
.LC148:
	.ascii	"struct/union/enum name\000"
	.align	2
.LC149:
	.ascii	"invalid type\000"
	.align	2
.LC150:
	.ascii	"struct/union/enum already defined\000"
	.align	2
.LC151:
	.ascii	"identifier\000"
	.align	2
.LC152:
	.ascii	"invalid type for '%s'\000"
	.align	2
.LC153:
	.ascii	"negative width in bit-field '%s'\000"
	.align	2
.LC154:
	.ascii	"zero width for bit-field '%s'\000"
	.align	2
.LC155:
	.ascii	"bitfields must have scalar type\000"
	.align	2
.LC156:
	.ascii	"width of '%s' exceeds its type\000"
	.align	2
.LC157:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	struct_decl, %function
struct_decl:
	@ args = 0, pretend = 0, frame = 104
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #104
	str	r0, [fp, #-104]
	str	r1, [fp, #-108]
	ldr	r3, .L2180
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L2180+4
	ldr	r3, [r3]
	str	r3, [fp, #-60]
	bl	next
	ldr	r3, .L2180+4
	ldr	r3, [r3]
	cmp	r3, #123
	beq	.L2139
	ldr	r3, .L2180+4
	ldr	r3, [r3]
	str	r3, [fp, #-100]
	bl	next
	ldr	r3, [fp, #-100]
	cmp	r3, #255
	bgt	.L2140
	ldr	r0, .L2180+8
	bl	expect
.L2140:
	ldr	r3, [fp, #-100]
	mov	r0, r3
	bl	struct_find
	str	r0, [fp, #-68]
	ldr	r3, [fp, #-68]
	cmp	r3, #0
	beq	.L2141
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-60]
	cmp	r2, r3
	beq	.L2176
	ldr	r0, .L2180+12
	bl	error
	b	.L2176
.L2139:
	ldr	r3, .L2180+16
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L2180+16
	str	r2, [r1]
	str	r3, [fp, #-100]
.L2141:
	ldr	r3, [fp, #-60]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-100]
	orr	r0, r3, #1073741824
	sub	r1, fp, #40
	mvn	r3, #0
	mov	r2, #0
	bl	sym_push
	str	r0, [fp, #-68]
	ldr	r3, [fp, #-68]
	mov	r2, #0
	str	r2, [r3, #4]
	b	.L2143
.L2176:
	nop
.L2143:
	ldr	r3, [fp, #-104]
	ldr	r2, [fp, #-108]
	str	r2, [r3]
	ldr	r3, [fp, #-104]
	ldr	r2, [fp, #-68]
	str	r2, [r3, #4]
	ldr	r3, .L2180+4
	ldr	r3, [r3]
	cmp	r3, #123
	bne	.L2177
	bl	next
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #8]
	cmn	r3, #1
	beq	.L2145
	ldr	r0, .L2180+20
	bl	error
.L2145:
	mov	r3, #0
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-60]
	cmp	r3, #300
	bne	.L2146
.L2152:
	ldr	r3, .L2180+4
	ldr	r3, [r3]
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-100]
	cmp	r3, #312
	bgt	.L2147
	ldr	r0, .L2180+24
	bl	expect
.L2147:
	bl	next
	ldr	r3, .L2180+4
	ldr	r3, [r3]
	cmp	r3, #61
	bne	.L2148
	bl	next
	bl	expr_const
	str	r0, [fp, #-88]
.L2148:
	ldr	r0, [fp, #-100]
	ldr	r3, [fp, #-88]
	mov	r2, #240
	ldr	r1, .L2180+28
	bl	sym_push
	str	r0, [fp, #-44]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #12]
	orr	r2, r3, #256
	ldr	r3, [fp, #-44]
	str	r2, [r3, #12]
	ldr	r3, .L2180+4
	ldr	r3, [r3]
	cmp	r3, #44
	bne	.L2178
	bl	next
	ldr	r3, [fp, #-88]
	add	r3, r3, #1
	str	r3, [fp, #-88]
	ldr	r3, .L2180+4
	ldr	r3, [r3]
	cmp	r3, #125
	beq	.L2179
	b	.L2152
.L2178:
	nop
	b	.L2150
.L2179:
	nop
.L2150:
	mov	r0, #125
	bl	skip
	b	.L2177
.L2146:
	mov	r3, #1
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-68]
	add	r3, r3, #20
	str	r3, [fp, #-64]
	mov	r3, #0
	str	r3, [fp, #-76]
	mov	r3, #0
	str	r3, [fp, #-84]
	b	.L2153
.L2174:
	sub	r2, fp, #24
	sub	r3, fp, #32
	mov	r1, r2
	mov	r0, r3
	bl	parse_btype
.L2173:
	mvn	r3, #0
	str	r3, [fp, #-80]
	mov	r3, #0
	str	r3, [fp, #-100]
	sub	r3, fp, #40
	sub	r2, fp, #32
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	ldr	r3, .L2180+4
	ldr	r3, [r3]
	cmp	r3, #58
	beq	.L2154
	sub	r2, fp, #100
	sub	r1, fp, #24
	sub	r0, fp, #40
	mov	r3, #2
	bl	type_decl
	ldr	r3, [fp, #-40]
	and	r3, r3, #15
	cmp	r3, #6
	beq	.L2155
	ldr	r3, [fp, #-40]
	and	r3, r3, #1920
	cmp	r3, #0
	beq	.L2154
.L2155:
	ldr	r3, [fp, #-100]
	mov	r1, #0
	mov	r0, r3
	bl	get_tok_str
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L2180+32
	bl	error
.L2154:
	ldr	r3, .L2180+4
	ldr	r3, [r3]
	cmp	r3, #58
	bne	.L2156
	bl	next
	bl	expr_const
	str	r0, [fp, #-80]
	ldr	r3, [fp, #-80]
	cmp	r3, #0
	bge	.L2157
	ldr	r3, [fp, #-100]
	mov	r1, #0
	mov	r0, r3
	bl	get_tok_str
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L2180+36
	bl	error
.L2157:
	ldr	r3, [fp, #-100]
	cmp	r3, #0
	beq	.L2156
	ldr	r3, [fp, #-80]
	cmp	r3, #0
	bne	.L2156
	ldr	r3, [fp, #-100]
	mov	r1, #0
	mov	r0, r3
	bl	get_tok_str
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L2180+40
	bl	error
.L2156:
	sub	r2, fp, #96
	sub	r3, fp, #40
	mov	r1, r2
	mov	r0, r3
	bl	type_size
	str	r0, [fp, #-56]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L2158
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-96]
	cmp	r2, r3
	ble	.L2159
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-96]
	b	.L2159
.L2158:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L2160
	mov	r3, #1
	str	r3, [fp, #-96]
	b	.L2159
.L2160:
	ldr	r3, .L2180+44
	ldr	r3, [r3]
	ldr	r3, [r3, #3032]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2159
	ldr	r3, .L2180+44
	ldr	r3, [r3]
	ldr	r3, [r3, #3032]
	ldr	r2, [r3]
	ldr	r3, [fp, #-96]
	cmp	r2, r3
	bge	.L2159
	ldr	r3, .L2180+44
	ldr	r3, [r3]
	ldr	r3, [r3, #3032]
	ldr	r3, [r3]
	str	r3, [fp, #-96]
.L2159:
	mov	r3, #0
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-80]
	cmp	r3, #0
	blt	.L2161
	ldr	r3, [fp, #-40]
	and	r3, r3, #15
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	cmp	r3, #0
	beq	.L2162
	ldr	r3, [fp, #-52]
	cmp	r3, #1
	beq	.L2162
	ldr	r3, [fp, #-52]
	cmp	r3, #2
	beq	.L2162
	ldr	r3, [fp, #-52]
	cmp	r3, #11
	beq	.L2162
	ldr	r3, [fp, #-52]
	cmp	r3, #5
	beq	.L2162
	ldr	r0, .L2180+48
	bl	error
.L2162:
	ldr	r3, [fp, #-56]
	lsl	r3, r3, #3
	str	r3, [fp, #-48]
	ldr	r2, [fp, #-80]
	ldr	r3, [fp, #-48]
	cmp	r2, r3
	ble	.L2163
	ldr	r3, [fp, #-100]
	mov	r1, #0
	mov	r0, r3
	bl	get_tok_str
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L2180+52
	bl	error
	b	.L2164
.L2163:
	ldr	r2, [fp, #-80]
	ldr	r3, [fp, #-48]
	cmp	r2, r3
	bne	.L2165
	mov	r3, #0
	str	r3, [fp, #-76]
	b	.L2164
.L2165:
	ldr	r3, [fp, #-80]
	cmp	r3, #0
	bne	.L2166
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	ble	.L2164
	ldr	r3, [fp, #-48]
	str	r3, [fp, #-76]
	b	.L2164
.L2166:
	ldr	r2, [fp, #-76]
	ldr	r3, [fp, #-80]
	add	r3, r2, r3
	ldr	r2, [fp, #-48]
	cmp	r2, r3
	bge	.L2167
	mov	r3, #0
	str	r3, [fp, #-76]
.L2167:
	ldr	r3, [fp, #-76]
	str	r3, [fp, #-72]
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #16
	orr	r1, r3, #64
	ldr	r3, [fp, #-80]
	lsl	r3, r3, #22
	orr	r3, r1, r3
	orr	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-76]
	ldr	r3, [fp, #-80]
	add	r3, r2, r3
	str	r3, [fp, #-76]
	b	.L2164
.L2161:
	mov	r3, #0
	str	r3, [fp, #-76]
.L2164:
	ldr	r3, [fp, #-100]
	cmp	r3, #0
	beq	.L2168
	ldr	r3, [fp, #-72]
	cmp	r3, #0
	bne	.L2169
	ldr	r3, [fp, #-60]
	cmp	r3, #296
	bne	.L2170
	ldr	r2, [fp, #-96]
	ldr	r3, [fp, #-88]
	add	r3, r2, r3
	sub	r2, r3, #1
	ldr	r3, [fp, #-96]
	rsb	r3, r3, #0
	and	r3, r3, r2
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	str	r3, [fp, #-84]
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-56]
	add	r3, r2, r3
	str	r3, [fp, #-88]
	b	.L2171
.L2170:
	mov	r3, #0
	str	r3, [fp, #-84]
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-88]
	cmp	r2, r3
	ble	.L2171
	ldr	r3, [fp, #-56]
	str	r3, [fp, #-88]
.L2171:
	ldr	r3, [fp, #-96]
	ldr	r2, [fp, #-92]
	cmp	r2, r3
	bge	.L2169
	ldr	r3, [fp, #-96]
	str	r3, [fp, #-92]
.L2169:
	ldr	r3, [fp, #-100]
	orr	r0, r3, #536870912
	sub	r1, fp, #40
	ldr	r3, [fp, #-84]
	mov	r2, #0
	bl	sym_push
	str	r0, [fp, #-44]
	ldr	r3, [fp, #-64]
	ldr	r2, [fp, #-44]
	str	r2, [r3]
	ldr	r3, [fp, #-44]
	add	r3, r3, #20
	str	r3, [fp, #-64]
.L2168:
	ldr	r3, .L2180+4
	ldr	r3, [r3]
	cmp	r3, #59
	beq	.L2172
	ldr	r3, .L2180+4
	ldr	r3, [r3]
	cmn	r3, #1
	beq	.L2172
	mov	r0, #44
	bl	skip
	b	.L2173
.L2172:
	mov	r0, #59
	bl	skip
.L2153:
	ldr	r3, .L2180+4
	ldr	r3, [r3]
	cmp	r3, #125
	bne	.L2174
	mov	r0, #125
	bl	skip
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-92]
	add	r3, r2, r3
	sub	r2, r3, #1
	ldr	r3, [fp, #-92]
	rsb	r3, r3, #0
	and	r2, r2, r3
	ldr	r3, [fp, #-68]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-68]
	ldr	r2, [fp, #-92]
	str	r2, [r3, #4]
.L2177:
	nop
	ldr	r3, .L2180
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2175
	bl	__stack_chk_fail
.L2175:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2181:
	.align	2
.L2180:
	.word	.LC157
	.word	tok
	.word	.LC148
	.word	.LC149
	.word	anon_sym
	.word	.LC150
	.word	.LC151
	.word	int_type
	.word	.LC152
	.word	.LC153
	.word	.LC154
	.word	tcc_state
	.word	.LC155
	.word	.LC156
	.size	struct_decl, .-struct_decl
	.section	.rodata
	.align	2
.LC158:
	.ascii	"too many basic types\000"
	.align	2
.LC159:
	.ascii	"signed and unsigned modifier\000"
	.align	2
.LC160:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	parse_btype, %function
parse_btype:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	ldr	r3, .L2230
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r2, #16
	mov	r1, #0
	ldr	r0, [fp, #-44]
	bl	memset
	mov	r3, #0
	str	r3, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-36]
.L2222:
	ldr	r3, .L2230+4
	ldr	r3, [r3]
	sub	r3, r3, #256
	cmp	r3, #52
	ldrls	pc, [pc, r3, asl #2]
	b	.L2183
.L2185:
	.word	.L2206
	.word	.L2205
	.word	.L2204
	.word	.L2183
	.word	.L2183
	.word	.L2183
	.word	.L2183
	.word	.L2183
	.word	.L2183
	.word	.L2203
	.word	.L2202
	.word	.L2201
	.word	.L2183
	.word	.L2183
	.word	.L2183
	.word	.L2183
	.word	.L2183
	.word	.L2200
	.word	.L2200
	.word	.L2200
	.word	.L2199
	.word	.L2199
	.word	.L2199
	.word	.L2198
	.word	.L2195
	.word	.L2197
	.word	.L2197
	.word	.L2197
	.word	.L2195
	.word	.L2196
	.word	.L2196
	.word	.L2196
	.word	.L2195
	.word	.L2195
	.word	.L2195
	.word	.L2194
	.word	.L2193
	.word	.L2192
	.word	.L2191
	.word	.L2190
	.word	.L2189
	.word	.L2189
	.word	.L2188
	.word	.L2183
	.word	.L2187
	.word	.L2183
	.word	.L2186
	.word	.L2186
	.word	.L2183
	.word	.L2183
	.word	.L2184
	.word	.L2184
	.word	.L2184
.L2194:
	bl	next
	b	.L2207
.L2204:
	mov	r3, #1
	str	r3, [fp, #-32]
.L2208:
	bl	next
.L2209:
	ldr	r3, [fp, #-36]
	and	r3, r3, #15
	cmp	r3, #0
	beq	.L2210
	ldr	r0, .L2230+8
	bl	error
.L2210:
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-32]
	orr	r3, r2, r3
	str	r3, [fp, #-36]
	mov	r3, #1
	str	r3, [fp, #-24]
	b	.L2211
.L2205:
	mov	r3, #3
	str	r3, [fp, #-32]
	b	.L2208
.L2190:
	mov	r3, #2
	str	r3, [fp, #-32]
	b	.L2208
.L2206:
	bl	next
	mov	r3, #1
	str	r3, [fp, #-24]
	b	.L2211
.L2198:
	bl	next
	ldr	r3, [fp, #-36]
	and	r3, r3, #15
	cmp	r3, #9
	bne	.L2212
	ldr	r3, [fp, #-36]
	bic	r3, r3, #15
	orr	r3, r3, #10
	str	r3, [fp, #-36]
	b	.L2211
.L2212:
	ldr	r3, [fp, #-36]
	and	r3, r3, #15
	cmp	r3, #13
	bne	.L2214
	ldr	r3, [fp, #-36]
	bic	r3, r3, #15
	orr	r3, r3, #12
	str	r3, [fp, #-36]
	b	.L2211
.L2214:
	mov	r3, #13
	str	r3, [fp, #-32]
	b	.L2209
.L2191:
	mov	r3, #11
	str	r3, [fp, #-32]
	b	.L2208
.L2193:
	mov	r3, #8
	str	r3, [fp, #-32]
	b	.L2208
.L2192:
	bl	next
	ldr	r3, [fp, #-36]
	and	r3, r3, #15
	cmp	r3, #13
	bne	.L2215
	ldr	r3, [fp, #-36]
	bic	r3, r3, #15
	orr	r3, r3, #10
	str	r3, [fp, #-36]
	b	.L2211
.L2215:
	mov	r3, #9
	str	r3, [fp, #-32]
	b	.L2209
.L2187:
	sub	r3, fp, #16
	mov	r1, #5
	mov	r0, r3
	bl	struct_decl
.L2217:
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-40]
	str	r2, [r3, #4]
	b	.L2209
.L2189:
	sub	r3, fp, #16
	mov	r1, #7
	mov	r0, r3
	bl	struct_decl
	b	.L2217
.L2200:
	ldr	r3, [fp, #-36]
	orr	r3, r3, #2048
	str	r3, [fp, #-36]
	bl	next
	b	.L2211
.L2199:
	ldr	r3, [fp, #-36]
	orr	r3, r3, #4096
	str	r3, [fp, #-36]
	bl	next
	b	.L2211
.L2197:
	mov	r3, #1
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-36]
	orr	r3, r3, #8192
	str	r3, [fp, #-36]
	bl	next
	b	.L2211
.L2195:
	bl	next
	b	.L2211
.L2201:
	ldr	r3, [fp, #-36]
	orr	r3, r3, #16
	str	r3, [fp, #-36]
	bl	next
	mov	r3, #1
	str	r3, [fp, #-24]
	b	.L2211
.L2203:
	ldr	r3, [fp, #-36]
	orr	r3, r3, #128
	str	r3, [fp, #-36]
	bl	next
	b	.L2211
.L2202:
	ldr	r3, [fp, #-36]
	orr	r3, r3, #256
	str	r3, [fp, #-36]
	bl	next
	b	.L2211
.L2188:
	ldr	r3, [fp, #-36]
	orr	r3, r3, #512
	str	r3, [fp, #-36]
	bl	next
	b	.L2211
.L2196:
	ldr	r3, [fp, #-36]
	orr	r3, r3, #1024
	str	r3, [fp, #-36]
	bl	next
	b	.L2211
.L2186:
	ldr	r0, [fp, #-44]
	bl	parse_attribute
	b	.L2211
.L2184:
	bl	next
	sub	r3, fp, #16
	mov	r0, r3
	bl	parse_expr_type
	b	.L2217
.L2183:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L2228
	ldr	r3, .L2230+4
	ldr	r3, [r3]
	mov	r0, r3
	bl	sym_find
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L2229
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	and	r3, r3, #512
	cmp	r3, #0
	beq	.L2229
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	bic	r3, r3, #512
	ldr	r2, [fp, #-36]
	orr	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-40]
	str	r2, [r3, #4]
	bl	next
	nop
.L2211:
	mov	r3, #1
	str	r3, [fp, #-28]
.L2207:
	b	.L2222
.L2228:
	nop
	b	.L2219
.L2229:
	nop
.L2219:
	ldr	r2, [fp, #-36]
	ldr	r3, .L2230+12
	and	r3, r3, r2
	ldr	r2, .L2230+12
	cmp	r3, r2
	bne	.L2223
	ldr	r0, .L2230+16
	bl	error
.L2223:
	ldr	r3, .L2230+20
	ldr	r3, [r3]
	ldr	r3, [r3, #124]
	cmp	r3, #0
	beq	.L2224
	ldr	r2, [fp, #-36]
	ldr	r3, .L2230+24
	and	r3, r3, r2
	cmp	r3, #1
	bne	.L2224
	ldr	r3, [fp, #-36]
	orr	r3, r3, #16
	str	r3, [fp, #-36]
.L2224:
	ldr	r3, [fp, #-36]
	bic	r3, r3, #8192
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	and	r3, r3, #15
	cmp	r3, #13
	bne	.L2225
	ldr	r3, [fp, #-36]
	bic	r3, r3, #15
	str	r3, [fp, #-36]
.L2225:
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-36]
	str	r2, [r3]
	ldr	r3, [fp, #-28]
	ldr	r2, .L2230
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L2227
	bl	__stack_chk_fail
.L2227:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2231:
	.align	2
.L2230:
	.word	.LC160
	.word	tok
	.word	.LC158
	.word	8208
	.word	.LC159
	.word	tcc_state
	.word	8223
	.size	parse_btype, .-parse_btype
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	convert_parameter_type, %function
convert_parameter_type:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	bic	r2, r3, #6144
	ldr	r3, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	bic	r2, r3, #32
	ldr	r3, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #6
	bne	.L2234
	ldr	r0, [fp, #-8]
	bl	mk_pointer
.L2234:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	convert_parameter_type, .-convert_parameter_type
	.section	.rodata
	.align	2
.LC161:
	.ascii	"parameter declared as void\000"
	.align	2
.LC162:
	.ascii	"invalid array size\000"
	.align	2
.LC163:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	post_type, %function
post_type:
	@ args = 0, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #64
	str	r0, [fp, #-64]
	str	r1, [fp, #-68]
	ldr	r3, .L2252
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L2252+4
	ldr	r3, [r3]
	cmp	r3, #40
	bne	.L2236
	bl	next
	mov	r3, #0
	str	r3, [fp, #-48]
	mov	r3, #0
	str	r3, [fp, #-52]
	sub	r3, fp, #52
	str	r3, [fp, #-44]
	b	.L2237
.L2244:
	ldr	r3, [fp, #-48]
	cmp	r3, #2
	beq	.L2249
	sub	r2, fp, #24
	sub	r3, fp, #32
	mov	r1, r2
	mov	r0, r3
	bl	parse_btype
	mov	r3, r0
	cmp	r3, #0
	bne	.L2239
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	beq	.L2240
	ldr	r0, .L2252+8
	bl	error
	b	.L2239
.L2240:
	mov	r3, #2
	str	r3, [fp, #-48]
	b	.L2238
.L2239:
	mov	r3, #1
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-32]
	and	r3, r3, #15
	cmp	r3, #3
	bne	.L2241
	ldr	r3, .L2252+4
	ldr	r3, [r3]
	cmp	r3, #41
	beq	.L2250
.L2241:
	sub	r2, fp, #56
	sub	r1, fp, #24
	sub	r0, fp, #32
	mov	r3, #3
	bl	type_decl
	ldr	r3, [fp, #-32]
	and	r3, r3, #15
	cmp	r3, #3
	bne	.L2243
	ldr	r0, .L2252+12
	bl	error
	b	.L2243
.L2249:
	nop
.L2238:
	ldr	r3, .L2252+4
	ldr	r3, [r3]
	str	r3, [fp, #-56]
	mov	r3, #0
	str	r3, [fp, #-32]
	bl	next
.L2243:
	sub	r3, fp, #32
	mov	r0, r3
	bl	convert_parameter_type
	ldr	r3, [fp, #-56]
	orr	r0, r3, #536870912
	sub	r1, fp, #32
	mov	r3, #0
	mov	r2, #0
	bl	sym_push
	str	r0, [fp, #-36]
	ldr	r3, [fp, #-44]
	ldr	r2, [fp, #-36]
	str	r2, [r3]
	ldr	r3, [fp, #-36]
	add	r3, r3, #20
	str	r3, [fp, #-44]
	ldr	r3, .L2252+4
	ldr	r3, [r3]
	cmp	r3, #44
	bne	.L2237
	bl	next
	ldr	r3, [fp, #-48]
	cmp	r3, #1
	bne	.L2237
	ldr	r3, .L2252+4
	ldr	r3, [r3]
	cmp	r3, #204
	bne	.L2237
	mov	r3, #3
	str	r3, [fp, #-48]
	bl	next
	b	.L2242
.L2237:
	ldr	r3, .L2252+4
	ldr	r3, [r3]
	cmp	r3, #41
	bne	.L2244
	b	.L2242
.L2250:
	nop
.L2242:
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bne	.L2245
	mov	r3, #2
	str	r3, [fp, #-48]
.L2245:
	mov	r0, #41
	bl	skip
	ldr	r3, [fp, #-64]
	ldr	r3, [r3]
	and	r3, r3, #1920
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-64]
	ldr	r3, [r3]
	bic	r2, r3, #3968
	ldr	r3, [fp, #-64]
	str	r2, [r3]
	ldr	r1, [fp, #-68]
	ldr	r0, [fp, #-64]
	bl	post_type
	ldr	r3, [fp, #-68]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-48]
	ldr	r1, [fp, #-64]
	mov	r0, #536870912
	bl	sym_push
	str	r0, [fp, #-36]
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-36]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-40]
	orr	r2, r3, #6
	ldr	r3, [fp, #-64]
	str	r2, [r3]
	ldr	r3, [fp, #-64]
	ldr	r2, [fp, #-36]
	str	r2, [r3, #4]
	b	.L2251
.L2236:
	ldr	r3, .L2252+4
	ldr	r3, [r3]
	cmp	r3, #91
	bne	.L2251
	bl	next
	mvn	r3, #0
	str	r3, [fp, #-56]
	ldr	r3, .L2252+4
	ldr	r3, [r3]
	cmp	r3, #93
	beq	.L2247
	bl	expr_const
	mov	r3, r0
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	cmp	r3, #0
	bge	.L2247
	ldr	r0, .L2252+16
	bl	error
.L2247:
	mov	r0, #93
	bl	skip
	ldr	r3, [fp, #-64]
	ldr	r3, [r3]
	and	r3, r3, #1920
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-64]
	ldr	r3, [r3]
	bic	r2, r3, #1920
	ldr	r3, [fp, #-64]
	str	r2, [r3]
	ldr	r1, [fp, #-68]
	ldr	r0, [fp, #-64]
	bl	post_type
	ldr	r3, [fp, #-56]
	mov	r2, #0
	ldr	r1, [fp, #-64]
	mov	r0, #536870912
	bl	sym_push
	str	r0, [fp, #-36]
	ldr	r3, [fp, #-40]
	orr	r2, r3, #36
	ldr	r3, [fp, #-64]
	str	r2, [r3]
	ldr	r3, [fp, #-64]
	ldr	r2, [fp, #-36]
	str	r2, [r3, #4]
.L2251:
	nop
	ldr	r3, .L2252
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2248
	bl	__stack_chk_fail
.L2248:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2253:
	.align	2
.L2252:
	.word	.LC163
	.word	tok
	.word	.LC149
	.word	.LC161
	.word	.LC162
	.size	post_type, .-post_type
	.section	.rodata
	.align	2
.LC164:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	type_decl, %function
type_decl:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	str	r3, [fp, #-44]
	ldr	r3, .L2281
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	b	.L2255
.L2262:
	mov	r3, #0
	str	r3, [fp, #-24]
.L2256:
	bl	next
	ldr	r3, .L2281+4
	ldr	r3, [r3]
	ldr	r2, .L2281+8
	cmp	r3, r2
	bgt	.L2257
	cmp	r3, #288
	bge	.L2256
	cmp	r3, #276
	bge	.L2259
	cmp	r3, #272
	bgt	.L2260
	b	.L2257
.L2259:
	sub	r3, r3, #276
	cmp	r3, #2
	bhi	.L2257
	b	.L2279
.L2260:
	ldr	r3, [fp, #-24]
	orr	r3, r3, #2048
	str	r3, [fp, #-24]
	b	.L2256
.L2279:
	ldr	r3, [fp, #-24]
	orr	r3, r3, #4096
	str	r3, [fp, #-24]
	b	.L2256
.L2257:
	ldr	r0, [fp, #-32]
	bl	mk_pointer
	ldr	r3, [fp, #-32]
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	orr	r2, r2, r3
	ldr	r3, [fp, #-32]
	str	r2, [r3]
.L2255:
	ldr	r3, .L2281+4
	ldr	r3, [r3]
	cmp	r3, #42
	beq	.L2262
	ldr	r3, .L2281+4
	ldr	r3, [r3]
	ldr	r2, .L2281+12
	cmp	r3, r2
	beq	.L2263
	ldr	r3, .L2281+4
	ldr	r3, [r3]
	ldr	r2, .L2281+16
	cmp	r3, r2
	bne	.L2264
.L2263:
	ldr	r0, [fp, #-36]
	bl	parse_attribute
.L2264:
	mov	r3, #0
	str	r3, [fp, #-16]
	ldr	r3, .L2281+4
	ldr	r3, [r3]
	cmp	r3, #40
	bne	.L2265
	bl	next
	ldr	r3, .L2281+4
	ldr	r3, [r3]
	ldr	r2, .L2281+12
	cmp	r3, r2
	beq	.L2266
	ldr	r3, .L2281+4
	ldr	r3, [r3]
	ldr	r2, .L2281+16
	cmp	r3, r2
	bne	.L2267
.L2266:
	ldr	r0, [fp, #-36]
	bl	parse_attribute
.L2267:
	sub	r0, fp, #16
	ldr	r3, [fp, #-44]
	ldr	r2, [fp, #-40]
	ldr	r1, [fp, #-36]
	bl	type_decl
	mov	r0, #41
	bl	skip
	b	.L2268
.L2265:
	ldr	r3, .L2281+4
	ldr	r3, [r3]
	cmp	r3, #255
	ble	.L2269
	ldr	r3, [fp, #-44]
	and	r3, r3, #2
	cmp	r3, #0
	beq	.L2269
	ldr	r3, .L2281+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	str	r2, [r3]
	bl	next
	b	.L2268
.L2269:
	ldr	r3, [fp, #-44]
	and	r3, r3, #1
	cmp	r3, #0
	bne	.L2270
	ldr	r0, .L2281+20
	bl	expect
.L2270:
	ldr	r3, [fp, #-40]
	mov	r2, #0
	str	r2, [r3]
.L2268:
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	post_type
	ldr	r3, .L2281+4
	ldr	r3, [r3]
	ldr	r2, .L2281+12
	cmp	r3, r2
	beq	.L2271
	ldr	r3, .L2281+4
	ldr	r3, [r3]
	ldr	r2, .L2281+16
	cmp	r3, r2
	bne	.L2272
.L2271:
	ldr	r0, [fp, #-36]
	bl	parse_attribute
.L2272:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L2280
	sub	r3, fp, #16
	str	r3, [fp, #-28]
.L2277:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	add	r3, r3, #12
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L2277
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-32]
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	nop
	ldr	r3, [fp, #-32]
	mov	r2, r3
	sub	r3, fp, #16
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	b	.L2254
.L2280:
	nop
.L2254:
	ldr	r3, .L2281
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2278
	bl	__stack_chk_fail
.L2278:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2282:
	.align	2
.L2281:
	.word	.LC164
	.word	tok
	.word	290
	.word	302
	.word	303
	.word	.LC151
	.size	type_decl, .-type_decl
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	lvalue_type, %function
lvalue_type:
	@ 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, #256
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	and	r3, r3, #15
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #1
	beq	.L2284
	ldr	r3, [fp, #-8]
	cmp	r3, #11
	bne	.L2285
.L2284:
	ldr	r3, [fp, #-12]
	orr	r3, r3, #4096
	str	r3, [fp, #-12]
	b	.L2286
.L2285:
	ldr	r3, [fp, #-8]
	cmp	r3, #2
	bne	.L2287
	ldr	r3, [fp, #-12]
	orr	r3, r3, #8192
	str	r3, [fp, #-12]
	b	.L2286
.L2287:
	ldr	r3, [fp, #-12]
	b	.L2288
.L2286:
	ldr	r3, [fp, #-16]
	and	r3, r3, #16
	cmp	r3, #0
	beq	.L2289
	ldr	r3, [fp, #-12]
	orr	r3, r3, #16384
	str	r3, [fp, #-12]
.L2289:
	ldr	r3, [fp, #-12]
.L2288:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	lvalue_type, .-lvalue_type
	.section	.rodata
	.align	2
.LC165:
	.ascii	"pointer\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	indir, %function
indir:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L2295
	ldr	r3, [r3]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #4
	beq	.L2291
	ldr	r0, .L2295+4
	bl	expect
.L2291:
	ldr	r3, .L2295
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #256
	cmp	r3, #0
	beq	.L2292
	ldr	r3, .L2295+8
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L2292
	mov	r0, #1
	bl	gv
.L2292:
	ldr	r3, .L2295
	ldr	r3, [r3]
	mov	r0, r3
	bl	pointed_type
	mov	r2, r0
	ldr	r3, .L2295
	ldr	r3, [r3]
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	ldr	r3, .L2295
	ldr	r3, [r3]
	ldr	r3, [r3]
	and	r3, r3, #32
	cmp	r3, #0
	bne	.L2294
	ldr	r3, .L2295
	ldr	r3, [r3]
	ldr	r3, [r3]
	mov	r0, r3
	bl	lvalue_type
	mov	r1, r0
	ldr	r3, .L2295
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	lsl	r3, r3, #16
	asr	r2, r3, #16
	lsl	r3, r1, #16
	asr	r3, r3, #16
	orr	r3, r2, r3
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, .L2295
	ldr	r3, [r3]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, .L2295+12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2294
	ldr	r3, .L2295
	ldr	r3, [r3]
	ldrh	r2, [r3, #8]
	ldr	r3, .L2295
	ldr	r3, [r3]
	orr	r2, r2, #2048
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #8]	@ movhi
.L2294:
	nop
	pop	{fp, pc}
.L2296:
	.align	2
.L2295:
	.word	vtop
	.word	.LC165
	.word	nocode_wanted
	.word	do_bounds_check
	.size	indir, .-indir
	.section	.rodata
	.align	2
.LC166:
	.ascii	"too many arguments to function\000"
	.align	2
.LC167:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	gfunc_param_typed, %function
gfunc_param_typed:
	@ 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, .L2305
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #2
	beq	.L2298
	ldr	r3, [fp, #-20]
	cmp	r3, #3
	bne	.L2299
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bne	.L2299
.L2298:
	ldr	r3, .L2305+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #8
	bne	.L2301
	mov	r3, #9
	str	r3, [fp, #-16]
	sub	r3, fp, #16
	mov	r0, r3
	bl	gen_cast
	b	.L2301
.L2299:
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bne	.L2302
	ldr	r0, .L2305+8
	bl	error
	b	.L2304
.L2302:
	ldr	r2, [fp, #-28]
	sub	r3, fp, #16
	add	r2, r2, #12
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	ldr	r3, [fp, #-16]
	bic	r3, r3, #2048
	str	r3, [fp, #-16]
	sub	r3, fp, #16
	mov	r0, r3
	bl	gen_assign_cast
	b	.L2304
.L2301:
.L2304:
	nop
	ldr	r3, .L2305
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2303
	bl	__stack_chk_fail
.L2303:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2306:
	.align	2
.L2305:
	.word	.LC167
	.word	vtop
	.word	.LC166
	.size	gfunc_param_typed, .-gfunc_param_typed
	.section	.rodata
	.align	2
.LC168:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	parse_expr_type, %function
parse_expr_type:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	ldr	r3, .L2311
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r0, #40
	bl	skip
	sub	r3, fp, #24
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	parse_btype
	mov	r3, r0
	cmp	r3, #0
	beq	.L2308
	sub	r2, fp, #28
	sub	r1, fp, #24
	mov	r3, #1
	ldr	r0, [fp, #-32]
	bl	type_decl
	b	.L2309
.L2308:
	ldr	r0, [fp, #-32]
	bl	expr_type
.L2309:
	mov	r0, #41
	bl	skip
	nop
	ldr	r3, .L2311
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2310
	bl	__stack_chk_fail
.L2310:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2312:
	.align	2
.L2311:
	.word	.LC168
	.size	parse_expr_type, .-parse_expr_type
	.section	.rodata
	.align	2
.LC169:
	.ascii	"type\000"
	.align	2
.LC170:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	parse_type, %function
parse_type:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	ldr	r3, .L2316
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #24
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	parse_btype
	mov	r3, r0
	cmp	r3, #0
	bne	.L2314
	ldr	r0, .L2316+4
	bl	expect
.L2314:
	sub	r2, fp, #28
	sub	r1, fp, #24
	mov	r3, #1
	ldr	r0, [fp, #-32]
	bl	type_decl
	nop
	ldr	r3, .L2316
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2315
	bl	__stack_chk_fail
.L2315:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2317:
	.align	2
.L2316:
	.word	.LC170
	.word	.LC169
	.size	parse_type, .-parse_type
	.section	.rodata
	.align	2
.LC171:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	vpush_tokc, %function
vpush_tokc:
	@ 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, .L2320
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-16]
	sub	r3, fp, #16
	ldr	r2, .L2320+4
	mov	r1, #240
	mov	r0, r3
	bl	vsetc
	nop
	ldr	r3, .L2320
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2319
	bl	__stack_chk_fail
.L2319:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2321:
	.align	2
.L2320:
	.word	.LC171
	.word	tokc
	.size	vpush_tokc, .-vpush_tokc
	.section	.rodata
	.align	2
.LC172:
	.ascii	"pointer not accepted for unary plus\000"
	.align	2
.LC173:
	.ascii	"sizeof applied to an incomplete type\000"
	.align	2
.LC174:
	.ascii	"label identifier\000"
	.align	2
.LC175:
	.ascii	"'%s' undeclared\000"
	.align	2
.LC176:
	.ascii	"implicit declaration of function '%s'\000"
	.align	2
.LC177:
	.ascii	"struct or union\000"
	.align	2
.LC178:
	.ascii	"field not found\000"
	.align	2
.LC179:
	.ascii	"function pointer\000"
	.align	2
.LC180:
	.ascii	"too few arguments to function\000"
	.align	2
.LC181:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	unary, %function
unary:
	@ args = 0, pretend = 0, frame = 112
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #120
	ldr	r3, .L2428
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
.L2323:
	ldr	r3, .L2428+4
	ldr	r3, [r3]
	cmp	r3, #352
	bge	.L2324
	ldr	r2, .L2428+8
	cmp	r3, r2
	bge	.L2325
	cmp	r3, #45
	bgt	.L2326
	cmp	r3, #33
	bge	.L2327
	b	.L2324
.L2325:
	sub	r3, r3, #288
	sub	r3, r3, #3
	cmp	r3, #60
	ldrls	pc, [pc, r3, asl #2]
	b	.L2324
.L2329:
	.word	.L2334
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2333
	.word	.L2324
	.word	.L2324
	.word	.L2333
	.word	.L2333
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2332
	.word	.L2324
	.word	.L2331
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2330
	.word	.L2328
.L2355:
	sub	r3, r3, #126
	cmp	r3, #76
	ldrls	pc, [pc, r3, asl #2]
	b	.L2324
.L2336:
	.word	.L2347
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2346
	.word	.L2324
	.word	.L2345
	.word	.L2324
	.word	.L2345
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2343
	.word	.L2343
	.word	.L2344
	.word	.L2324
	.word	.L2343
	.word	.L2342
	.word	.L2341
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2340
	.word	.L2339
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2338
	.word	.L2337
	.word	.L2335
.L2327:
	sub	r3, r3, #33
	cmp	r3, #12
	ldrls	pc, [pc, r3, asl #2]
	b	.L2324
.L2349:
	.word	.L2354
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2324
	.word	.L2353
	.word	.L2324
	.word	.L2352
	.word	.L2324
	.word	.L2351
	.word	.L2350
	.word	.L2324
	.word	.L2348
.L2326:
	cmp	r3, #202
	bgt	.L2324
	cmp	r3, #126
	bge	.L2355
	b	.L2324
.L2334:
	bl	next
	b	.L2323
.L2343:
	ldr	r3, .L2428+12
	ldr	r3, [r3]
	mov	r0, r3
	bl	vpushi
	bl	next
	b	.L2419
.L2338:
	mov	r0, #16
	bl	vpush_tokc
	bl	next
	b	.L2419
.L2337:
	mov	r0, #12
	bl	vpush_tokc
	bl	next
	b	.L2419
.L2335:
	mov	r0, #28
	bl	vpush_tokc
	bl	next
	b	.L2419
.L2341:
	mov	r0, #8
	bl	vpush_tokc
	bl	next
	b	.L2419
.L2340:
	mov	r0, #9
	bl	vpush_tokc
	bl	next
	b	.L2419
.L2339:
	mov	r0, #10
	bl	vpush_tokc
	bl	next
	b	.L2419
.L2332:
	ldr	r3, .L2428+16
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2421
.L2331:
	ldr	r3, .L2428+20
	ldr	r3, [r3]
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	add	r3, r3, #1
	str	r3, [fp, #-80]
	mov	r3, #1
	str	r3, [fp, #-68]
	sub	r3, fp, #68
	mov	r0, r3
	bl	mk_pointer
	ldr	r3, [fp, #-68]
	orr	r3, r3, #32
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-64]
	ldr	r2, [fp, #-80]
	str	r2, [r3, #8]
	ldr	r3, .L2428+24
	ldr	r1, [r3]
	ldr	r3, .L2428+24
	ldr	r3, [r3]
	ldr	r2, [r3]
	ldr	r3, [fp, #-80]
	sub	r0, fp, #68
	bl	vpush_ref
	ldr	r3, .L2428+24
	ldr	r3, [r3]
	ldr	r2, [fp, #-80]
	mov	r1, r2
	mov	r0, r3
	bl	section_ptr_add
	str	r0, [fp, #-76]
	ldr	r3, .L2428+20
	ldr	r3, [r3]
	ldr	r2, [fp, #-80]
	mov	r1, r3
	ldr	r0, [fp, #-76]
	bl	memcpy
	bl	next
	b	.L2419
.L2342:
	mov	r3, #0
	str	r3, [fp, #-108]
	b	.L2357
.L2344:
	mov	r3, #1
	str	r3, [fp, #-108]
.L2357:
	ldr	r3, .L2428+28
	ldr	r3, [r3]
	ldr	r3, [r3, #132]
	cmp	r3, #0
	beq	.L2358
	ldr	r3, [fp, #-108]
	orr	r3, r3, #2048
	str	r3, [fp, #-108]
.L2358:
	ldr	r3, [fp, #-108]
	str	r3, [fp, #-68]
	sub	r3, fp, #68
	mov	r0, r3
	bl	mk_pointer
	ldr	r3, [fp, #-68]
	orr	r3, r3, #32
	str	r3, [fp, #-68]
	sub	r3, fp, #60
	mov	r2, #16
	mov	r1, #0
	mov	r0, r3
	bl	memset
	sub	r1, fp, #60
	sub	r0, fp, #68
	mov	r3, #0
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #2
	mov	r2, #240
	bl	decl_initializer_alloc
	b	.L2419
.L2352:
	bl	next
	sub	r2, fp, #60
	sub	r3, fp, #68
	mov	r1, r2
	mov	r0, r3
	bl	parse_btype
	mov	r3, r0
	cmp	r3, #0
	beq	.L2359
	sub	r2, fp, #116
	sub	r1, fp, #60
	sub	r0, fp, #68
	mov	r3, #1
	bl	type_decl
	mov	r0, #41
	bl	skip
	ldr	r3, .L2428+4
	ldr	r3, [r3]
	cmp	r3, #123
	bne	.L2360
	ldr	r3, .L2428+32
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2361
	mov	r3, #240
	str	r3, [fp, #-104]
	b	.L2362
.L2361:
	mov	r3, #242
	str	r3, [fp, #-104]
.L2362:
	ldr	r3, [fp, #-68]
	and	r3, r3, #32
	cmp	r3, #0
	bne	.L2363
	ldr	r3, [fp, #-68]
	mov	r0, r3
	bl	lvalue_type
	mov	r2, r0
	ldr	r3, [fp, #-104]
	orr	r3, r3, r2
	str	r3, [fp, #-104]
.L2363:
	sub	r3, fp, #60
	mov	r2, #16
	mov	r1, #0
	mov	r0, r3
	bl	memset
	sub	r1, fp, #60
	sub	r0, fp, #68
	mov	r3, #0
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #1
	ldr	r2, [fp, #-104]
	bl	decl_initializer_alloc
	b	.L2419
.L2360:
	bl	unary
	sub	r3, fp, #68
	mov	r0, r3
	bl	gen_cast
	b	.L2419
.L2359:
	ldr	r3, .L2428+4
	ldr	r3, [r3]
	cmp	r3, #123
	bne	.L2365
	mov	r0, #0
	bl	save_regs
	mov	r3, #1
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #0
	mov	r1, #0
	mov	r0, #0
	bl	block
	mov	r0, #41
	bl	skip
	b	.L2419
.L2365:
	bl	gexpr
	mov	r0, #41
	bl	skip
	b	.L2419
.L2351:
	bl	next
	bl	unary
	bl	indir
	b	.L2419
.L2353:
	bl	next
	bl	unary
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #6
	beq	.L2366
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	ldr	r3, [r3]
	and	r3, r3, #32
	cmp	r3, #0
	bne	.L2366
	bl	test_lvalue
.L2366:
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	mov	r0, r3
	bl	mk_pointer
	bl	gaddrof
	b	.L2419
.L2354:
	bl	next
	bl	unary
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	lsl	r3, r3, #22
	lsr	r3, r3, #22
	cmp	r3, #240
	bne	.L2367
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r2, r3, #255
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	str	r2, [r3, #16]
	b	.L2419
.L2367:
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #255
	cmp	r3, #243
	bne	.L2369
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	ldr	r2, [r3, #16]
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	eor	r2, r2, #1
	str	r2, [r3, #16]
	b	.L2419
.L2369:
	mov	r1, #0
	mov	r0, #1
	bl	gtst
	mov	r3, r0
	mov	r1, r3
	mov	r0, #244
	bl	vseti
	b	.L2419
.L2347:
	bl	next
	bl	unary
	mvn	r0, #0
	bl	vpushi
	mov	r0, #94
	bl	gen_op
	b	.L2419
.L2350:
	bl	next
	bl	unary
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #4
	bne	.L2370
	ldr	r0, .L2428+36
	bl	error
.L2370:
	mov	r0, #0
	bl	vpushi
	mov	r0, #43
	bl	gen_op
	b	.L2419
.L2333:
	ldr	r3, .L2428+4
	ldr	r3, [r3]
	str	r3, [fp, #-108]
	bl	next
	ldr	r3, .L2428+4
	ldr	r3, [r3]
	cmp	r3, #40
	bne	.L2371
	sub	r3, fp, #68
	mov	r0, r3
	bl	parse_expr_type
	b	.L2372
.L2371:
	sub	r3, fp, #68
	mov	r0, r3
	bl	unary_type
.L2372:
	sub	r2, fp, #112
	sub	r3, fp, #68
	mov	r1, r2
	mov	r0, r3
	bl	type_size
	str	r0, [fp, #-72]
	ldr	r3, [fp, #-108]
	ldr	r2, .L2428+40
	cmp	r3, r2
	bne	.L2373
	ldr	r3, [fp, #-72]
	cmp	r3, #0
	bge	.L2374
	ldr	r0, .L2428+44
	bl	error
.L2374:
	ldr	r0, [fp, #-72]
	bl	vpushi
	b	.L2419
.L2373:
	ldr	r3, [fp, #-112]
	mov	r0, r3
	bl	vpushi
	b	.L2419
.L2330:
	bl	next
	mov	r0, #40
	bl	skip
	sub	r3, fp, #68
	mov	r0, r3
	bl	parse_type
	mov	r0, #44
	bl	skip
	sub	r3, fp, #60
	mov	r0, r3
	bl	parse_type
	mov	r0, #41
	bl	skip
	ldr	r3, [fp, #-68]
	bic	r3, r3, #6144
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-60]
	bic	r3, r3, #6144
	str	r3, [fp, #-60]
	sub	r2, fp, #60
	sub	r3, fp, #68
	mov	r1, r2
	mov	r0, r3
	bl	is_compatible_types
	mov	r3, r0
	mov	r0, r3
	bl	vpushi
	b	.L2419
.L2328:
	bl	next
	mov	r0, #40
	bl	skip
	ldr	r3, .L2428+116
	ldr	r3, [r3]
	str	r3, [fp, #-88]
	ldr	r3, .L2428+116
	mov	r2, #1
	str	r2, [r3]
	bl	gexpr
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	lsl	r3, r3, #22
	lsr	r3, r3, #22
	cmp	r3, #240
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-84]
	bl	vpop
	ldr	r2, .L2428+116
	ldr	r3, [fp, #-88]
	str	r3, [r2]
	mov	r0, #41
	bl	skip
	ldr	r0, [fp, #-84]
	bl	vpushi
	b	.L2419
.L2345:
	ldr	r3, .L2428+4
	ldr	r3, [r3]
	str	r3, [fp, #-108]
	bl	next
	bl	unary
	ldr	r1, [fp, #-108]
	mov	r0, #0
	bl	inc
	b	.L2419
.L2348:
	bl	next
	mov	r0, #0
	bl	vpushi
	bl	unary
	mov	r0, #45
	bl	gen_op
	b	.L2419
.L2346:
	ldr	r3, .L2428+16
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2422
	bl	next
	ldr	r3, .L2428+4
	ldr	r3, [r3]
	cmp	r3, #312
	bgt	.L2377
	ldr	r0, .L2428+48
	bl	expect
.L2377:
	ldr	r3, .L2428+4
	ldr	r3, [r3]
	mov	r0, r3
	bl	label_find
	str	r0, [fp, #-100]
	ldr	r3, [fp, #-100]
	cmp	r3, #0
	bne	.L2378
	ldr	r3, .L2428+4
	ldr	r3, [r3]
	mov	r2, #1
	mov	r1, r3
	ldr	r0, .L2428+52
	bl	label_push
	str	r0, [fp, #-100]
	b	.L2379
.L2378:
	ldr	r3, [fp, #-100]
	ldr	r3, [r3, #4]
	cmp	r3, #2
	bne	.L2379
	ldr	r3, [fp, #-100]
	mov	r2, #1
	str	r2, [r3, #4]
.L2379:
	ldr	r3, [fp, #-100]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	bne	.L2380
	ldr	r3, [fp, #-100]
	mov	r2, #3
	str	r2, [r3, #12]
	ldr	r3, [fp, #-100]
	add	r3, r3, #12
	mov	r0, r3
	bl	mk_pointer
	ldr	r3, [fp, #-100]
	ldr	r3, [r3, #12]
	orr	r2, r3, #256
	ldr	r3, [fp, #-100]
	str	r2, [r3, #12]
.L2380:
	ldr	r3, [fp, #-100]
	add	r3, r3, #12
	mov	r2, #0
	mov	r1, #752
	mov	r0, r3
	bl	vset
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	ldr	r2, [fp, #-100]
	str	r2, [r3, #24]
	bl	next
	b	.L2419
.L2421:
	nop
	b	.L2324
.L2422:
	nop
.L2324:
	ldr	r3, .L2428+4
	ldr	r3, [r3]
	str	r3, [fp, #-108]
	bl	next
	ldr	r3, [fp, #-108]
	cmp	r3, #312
	bgt	.L2381
	ldr	r0, .L2428+56
	bl	expect
.L2381:
	ldr	r0, [fp, #-108]
	bl	sym_find
	str	r0, [fp, #-100]
	ldr	r3, [fp, #-100]
	cmp	r3, #0
	bne	.L2382
	ldr	r3, .L2428+4
	ldr	r3, [r3]
	cmp	r3, #40
	beq	.L2383
	mov	r1, #0
	ldr	r0, [fp, #-108]
	bl	get_tok_str
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L2428+60
	bl	error
.L2383:
	ldr	r3, .L2428+28
	ldr	r3, [r3]
	ldr	r3, [r3, #148]
	cmp	r3, #0
	beq	.L2384
	mov	r1, #0
	ldr	r0, [fp, #-108]
	bl	get_tok_str
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L2428+64
	bl	warning
.L2384:
	mov	r2, #0
	ldr	r1, .L2428+68
	ldr	r0, [fp, #-108]
	bl	external_global_sym
	str	r0, [fp, #-100]
.L2382:
	ldr	r3, [fp, #-100]
	ldr	r2, [r3, #12]
	ldr	r3, .L2428+72
	and	r3, r3, r2
	ldr	r2, .L2428+76
	cmp	r3, r2
	bne	.L2385
	ldr	r3, [fp, #-100]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	bne	.L2386
	ldr	r3, .L2428+80
	ldr	r1, [r3]
	mov	r3, #0
	mov	r2, #0
	ldr	r0, [fp, #-100]
	bl	put_extern_sym
.L2386:
	mov	r3, #752
	str	r3, [fp, #-104]
	b	.L2387
.L2385:
	ldr	r3, [fp, #-100]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-104]
.L2387:
	ldr	r3, [fp, #-100]
	add	r0, r3, #12
	ldr	r3, [fp, #-100]
	ldr	r3, [r3, #8]
	mov	r2, r3
	ldr	r1, [fp, #-104]
	bl	vset
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #512
	cmp	r3, #0
	beq	.L2423
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	ldr	r2, [fp, #-100]
	str	r2, [r3, #24]
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	mov	r2, #0
	str	r2, [r3, #16]
.L2423:
	nop
.L2419:
	ldr	r3, .L2428+4
	ldr	r3, [r3]
	cmp	r3, #164
	beq	.L2389
	ldr	r3, .L2428+4
	ldr	r3, [r3]
	cmp	r3, #162
	bne	.L2390
.L2389:
	ldr	r3, .L2428+4
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #1
	bl	inc
	bl	next
	b	.L2391
.L2390:
	ldr	r3, .L2428+4
	ldr	r3, [r3]
	cmp	r3, #46
	beq	.L2392
	ldr	r3, .L2428+4
	ldr	r3, [r3]
	cmp	r3, #203
	bne	.L2393
.L2392:
	ldr	r3, .L2428+4
	ldr	r3, [r3]
	cmp	r3, #203
	bne	.L2394
	bl	indir
.L2394:
	bl	test_lvalue
	bl	gaddrof
	bl	next
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #7
	beq	.L2395
	ldr	r0, .L2428+84
	bl	expect
.L2395:
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-100]
	ldr	r3, .L2428+4
	ldr	r3, [r3]
	orr	r3, r3, #536870912
	ldr	r2, .L2428+4
	str	r3, [r2]
	b	.L2396
.L2398:
	ldr	r3, [fp, #-100]
	ldr	r2, [r3]
	ldr	r3, .L2428+4
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L2424
.L2396:
	ldr	r3, [fp, #-100]
	ldr	r3, [r3, #20]
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-100]
	cmp	r3, #0
	bne	.L2398
	b	.L2397
.L2424:
	nop
.L2397:
	ldr	r3, [fp, #-100]
	cmp	r3, #0
	bne	.L2399
	ldr	r0, .L2428+88
	bl	error
.L2399:
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	ldr	r2, .L2428+92
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	ldr	r3, [fp, #-100]
	ldr	r3, [r3, #8]
	mov	r0, r3
	bl	vpushi
	mov	r0, #43
	bl	gen_op
	ldr	r3, .L2428+120
	ldr	r2, [r3]
	ldr	r3, [fp, #-100]
	add	r3, r3, #12
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	ldr	r3, [r3]
	and	r3, r3, #32
	cmp	r3, #0
	bne	.L2400
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	ldr	r3, [r3]
	mov	r0, r3
	bl	lvalue_type
	mov	r1, r0
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	lsl	r3, r3, #16
	asr	r2, r3, #16
	lsl	r3, r1, #16
	asr	r3, r3, #16
	orr	r3, r2, r3
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, .L2428+96
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2400
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	ldrh	r2, [r3, #8]
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	orr	r2, r2, #2048
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #8]	@ movhi
.L2400:
	bl	next
	b	.L2391
.L2393:
	ldr	r3, .L2428+4
	ldr	r3, [r3]
	cmp	r3, #91
	bne	.L2401
	bl	next
	bl	gexpr
	mov	r0, #43
	bl	gen_op
	bl	indir
	mov	r0, #93
	bl	skip
	b	.L2419
.L2401:
	ldr	r3, .L2428+4
	ldr	r3, [r3]
	cmp	r3, #40
	bne	.L2425
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #6
	beq	.L2403
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	ldr	r3, [r3]
	and	r3, r3, #47
	cmp	r3, #4
	bne	.L2426
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	mov	r0, r3
	bl	pointed_type
	mov	r2, r0
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #6
	beq	.L2405
	b	.L2404
.L2426:
	nop
.L2404:
	ldr	r0, .L2428+100
	bl	expect
	b	.L2405
.L2403:
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	ldrh	r2, [r3, #8]
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	bic	r2, r2, #256
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #8]	@ movhi
.L2405:
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-100]
	bl	next
	ldr	r3, [fp, #-100]
	ldr	r3, [r3, #20]
	str	r3, [fp, #-96]
	mov	r3, #0
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-100]
	ldr	r3, [r3, #12]
	and	r3, r3, #15
	cmp	r3, #7
	bne	.L2406
	ldr	r3, [fp, #-100]
	add	r3, r3, #12
	sub	r2, fp, #112
	mov	r1, r2
	mov	r0, r3
	bl	type_size
	str	r0, [fp, #-72]
	ldr	r3, .L2428+104
	ldr	r2, [r3]
	ldr	r3, [fp, #-72]
	sub	r2, r2, r3
	ldr	r3, [fp, #-112]
	rsb	r3, r3, #0
	and	r3, r3, r2
	ldr	r2, .L2428+104
	str	r3, [r2]
	ldr	r2, [fp, #-100]
	sub	r3, fp, #44
	add	r2, r2, #12
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	ldr	r3, .L2428+108
	strh	r3, [fp, #-36]	@ movhi
	ldr	r3, .L2428+104
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #242
	bl	vseti
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	str	r3, [fp, #-92]
	b	.L2407
.L2406:
	ldr	r2, [fp, #-100]
	sub	r3, fp, #44
	add	r2, r2, #12
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	mov	r3, #240
	strh	r3, [fp, #-34]	@ movhi
	ldr	r3, [fp, #-44]
	mov	r0, r3
	bl	is_float
	mov	r3, r0
	cmp	r3, #0
	beq	.L2408
	mov	r3, #3
	strh	r3, [fp, #-36]	@ movhi
	b	.L2409
.L2408:
	ldr	r3, [fp, #-44]
	and	r3, r3, #15
	cmp	r3, #12
	bne	.L2410
	mov	r3, #2
	strh	r3, [fp, #-34]	@ movhi
.L2410:
	mov	r3, #0
	strh	r3, [fp, #-36]	@ movhi
.L2409:
	mov	r3, #0
	str	r3, [fp, #-28]
.L2407:
	ldr	r3, .L2428+4
	ldr	r3, [r3]
	cmp	r3, #41
	beq	.L2411
.L2414:
	bl	expr_eq
	ldr	r1, [fp, #-96]
	ldr	r0, [fp, #-100]
	bl	gfunc_param_typed
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-96]
	cmp	r3, #0
	beq	.L2412
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #20]
	str	r3, [fp, #-96]
.L2412:
	ldr	r3, .L2428+4
	ldr	r3, [r3]
	cmp	r3, #41
	beq	.L2427
	mov	r0, #44
	bl	skip
	b	.L2414
.L2429:
	.align	2
.L2428:
	.word	.LC181
	.word	tok
	.word	291
	.word	tokc
	.word	gnu_ext
	.word	funcname
	.word	data_section
	.word	tcc_state
	.word	global_expr
	.word	.LC172
	.word	301
	.word	.LC173
	.word	.LC174
	.word	global_label_stack
	.word	.LC151
	.word	.LC175
	.word	.LC176
	.word	func_old_type
	.word	1295
	.word	1286
	.word	text_section
	.word	.LC177
	.word	.LC178
	.word	char_pointer_type
	.word	do_bounds_check
	.word	.LC179
	.word	loc
	.word	498
	.word	.LC180
	.word	nocode_wanted
	.word	vtop
	.word	.LC181
.L2427:
	nop
.L2411:
	ldr	r3, [fp, #-96]
	cmp	r3, #0
	beq	.L2415
	ldr	r0, .L2428+112
	bl	error
.L2415:
	mov	r0, #41
	bl	skip
	ldr	r3, .L2428+116
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L2416
	ldr	r0, [fp, #-92]
	bl	gfunc_call
	b	.L2417
.L2416:
	ldr	r3, .L2428+120
	ldr	r2, [r3]
	ldr	r1, [fp, #-92]
	mvn	r3, #-134217728
	sub	r3, r3, r1
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, .L2428+120
	str	r3, [r2]
.L2417:
	ldrh	r3, [fp, #-36]
	mov	r1, r3
	sub	r3, fp, #44
	add	r2, r3, #16
	sub	r3, fp, #44
	mov	r0, r3
	bl	vsetc
	ldr	r3, .L2428+120
	ldr	r3, [r3]
	ldrh	r2, [fp, #-34]
	strh	r2, [r3, #10]	@ movhi
.L2391:
	b	.L2419
.L2425:
	nop
	nop
	ldr	r3, .L2428+124
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2420
	bl	__stack_chk_fail
.L2420:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	unary, .-unary
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	uneq, %function
uneq:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	bl	unary
	ldr	r3, .L2437
	ldr	r3, [r3]
	cmp	r3, #61
	beq	.L2431
	ldr	r3, .L2437
	ldr	r3, [r3]
	cmp	r3, #164
	ble	.L2432
	ldr	r3, .L2437
	ldr	r3, [r3]
	cmp	r3, #175
	ble	.L2431
.L2432:
	ldr	r3, .L2437
	ldr	r3, [r3]
	cmp	r3, #222
	beq	.L2431
	ldr	r3, .L2437
	ldr	r3, [r3]
	cmp	r3, #252
	beq	.L2431
	ldr	r3, .L2437
	ldr	r3, [r3]
	cmp	r3, #129
	beq	.L2431
	ldr	r3, .L2437
	ldr	r3, [r3]
	cmp	r3, #130
	bne	.L2436
.L2431:
	bl	test_lvalue
	ldr	r3, .L2437
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	bl	next
	ldr	r3, [fp, #-8]
	cmp	r3, #61
	bne	.L2434
	bl	expr_eq
	b	.L2435
.L2434:
	bl	vdup
	bl	expr_eq
	ldr	r3, [fp, #-8]
	and	r3, r3, #127
	mov	r0, r3
	bl	gen_op
.L2435:
	bl	vstore
.L2436:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2438:
	.align	2
.L2437:
	.word	tok
	.size	uneq, .-uneq
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	expr_prod, %function
expr_prod:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	bl	uneq
	b	.L2440
.L2441:
	ldr	r3, .L2442
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	bl	next
	bl	uneq
	ldr	r0, [fp, #-8]
	bl	gen_op
.L2440:
	ldr	r3, .L2442
	ldr	r3, [r3]
	cmp	r3, #42
	beq	.L2441
	ldr	r3, .L2442
	ldr	r3, [r3]
	cmp	r3, #47
	beq	.L2441
	ldr	r3, .L2442
	ldr	r3, [r3]
	cmp	r3, #37
	beq	.L2441
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2443:
	.align	2
.L2442:
	.word	tok
	.size	expr_prod, .-expr_prod
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	expr_sum, %function
expr_sum:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	bl	expr_prod
	b	.L2445
.L2446:
	ldr	r3, .L2447
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	bl	next
	bl	expr_prod
	ldr	r0, [fp, #-8]
	bl	gen_op
.L2445:
	ldr	r3, .L2447
	ldr	r3, [r3]
	cmp	r3, #43
	beq	.L2446
	ldr	r3, .L2447
	ldr	r3, [r3]
	cmp	r3, #45
	beq	.L2446
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2448:
	.align	2
.L2447:
	.word	tok
	.size	expr_sum, .-expr_sum
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	expr_shift, %function
expr_shift:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	bl	expr_sum
	b	.L2450
.L2451:
	ldr	r3, .L2452
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	bl	next
	bl	expr_sum
	ldr	r0, [fp, #-8]
	bl	gen_op
.L2450:
	ldr	r3, .L2452
	ldr	r3, [r3]
	cmp	r3, #1
	beq	.L2451
	ldr	r3, .L2452
	ldr	r3, [r3]
	cmp	r3, #2
	beq	.L2451
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2453:
	.align	2
.L2452:
	.word	tok
	.size	expr_shift, .-expr_shift
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	expr_cmp, %function
expr_cmp:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	bl	expr_shift
	b	.L2455
.L2457:
	ldr	r3, .L2458
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	bl	next
	bl	expr_shift
	ldr	r0, [fp, #-8]
	bl	gen_op
.L2455:
	ldr	r3, .L2458
	ldr	r3, [r3]
	cmp	r3, #149
	ble	.L2456
	ldr	r3, .L2458
	ldr	r3, [r3]
	cmp	r3, #159
	ble	.L2457
.L2456:
	ldr	r3, .L2458
	ldr	r3, [r3]
	cmp	r3, #146
	beq	.L2457
	ldr	r3, .L2458
	ldr	r3, [r3]
	cmp	r3, #147
	beq	.L2457
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2459:
	.align	2
.L2458:
	.word	tok
	.size	expr_cmp, .-expr_cmp
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	expr_cmpeq, %function
expr_cmpeq:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	bl	expr_cmp
	b	.L2461
.L2462:
	ldr	r3, .L2463
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	bl	next
	bl	expr_cmp
	ldr	r0, [fp, #-8]
	bl	gen_op
.L2461:
	ldr	r3, .L2463
	ldr	r3, [r3]
	cmp	r3, #148
	beq	.L2462
	ldr	r3, .L2463
	ldr	r3, [r3]
	cmp	r3, #149
	beq	.L2462
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2464:
	.align	2
.L2463:
	.word	tok
	.size	expr_cmpeq, .-expr_cmpeq
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	expr_and, %function
expr_and:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	bl	expr_cmpeq
	b	.L2466
.L2467:
	bl	next
	bl	expr_cmpeq
	mov	r0, #38
	bl	gen_op
.L2466:
	ldr	r3, .L2468
	ldr	r3, [r3]
	cmp	r3, #38
	beq	.L2467
	nop
	nop
	pop	{fp, pc}
.L2469:
	.align	2
.L2468:
	.word	tok
	.size	expr_and, .-expr_and
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	expr_xor, %function
expr_xor:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	bl	expr_and
	b	.L2471
.L2472:
	bl	next
	bl	expr_and
	mov	r0, #94
	bl	gen_op
.L2471:
	ldr	r3, .L2473
	ldr	r3, [r3]
	cmp	r3, #94
	beq	.L2472
	nop
	nop
	pop	{fp, pc}
.L2474:
	.align	2
.L2473:
	.word	tok
	.size	expr_xor, .-expr_xor
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	expr_or, %function
expr_or:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	bl	expr_xor
	b	.L2476
.L2477:
	bl	next
	bl	expr_xor
	mov	r0, #124
	bl	gen_op
.L2476:
	ldr	r3, .L2478
	ldr	r3, [r3]
	cmp	r3, #124
	beq	.L2477
	nop
	nop
	pop	{fp, pc}
.L2479:
	.align	2
.L2478:
	.word	tok
	.size	expr_or, .-expr_or
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	expr_land_const, %function
expr_land_const:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	bl	expr_or
	b	.L2481
.L2482:
	bl	next
	bl	expr_or
	mov	r0, #160
	bl	gen_op
.L2481:
	ldr	r3, .L2483
	ldr	r3, [r3]
	cmp	r3, #160
	beq	.L2482
	nop
	nop
	pop	{fp, pc}
.L2484:
	.align	2
.L2483:
	.word	tok
	.size	expr_land_const, .-expr_land_const
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	expr_lor_const, %function
expr_lor_const:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	bl	expr_land_const
	b	.L2486
.L2487:
	bl	next
	bl	expr_land_const
	mov	r0, #161
	bl	gen_op
.L2486:
	ldr	r3, .L2488
	ldr	r3, [r3]
	cmp	r3, #161
	beq	.L2487
	nop
	nop
	pop	{fp, pc}
.L2489:
	.align	2
.L2488:
	.word	tok
	.size	expr_lor_const, .-expr_lor_const
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	expr_land, %function
expr_land:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	bl	expr_or
	ldr	r3, .L2495
	ldr	r3, [r3]
	cmp	r3, #160
	bne	.L2494
	mov	r3, #0
	str	r3, [fp, #-8]
.L2493:
	ldr	r1, [fp, #-8]
	mov	r0, #1
	bl	gtst
	str	r0, [fp, #-8]
	ldr	r3, .L2495
	ldr	r3, [r3]
	cmp	r3, #160
	beq	.L2492
	ldr	r1, [fp, #-8]
	mov	r0, #245
	bl	vseti
	nop
	b	.L2494
.L2492:
	bl	next
	bl	expr_or
	b	.L2493
.L2494:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2496:
	.align	2
.L2495:
	.word	tok
	.size	expr_land, .-expr_land
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	expr_lor, %function
expr_lor:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	bl	expr_land
	ldr	r3, .L2502
	ldr	r3, [r3]
	cmp	r3, #161
	bne	.L2501
	mov	r3, #0
	str	r3, [fp, #-8]
.L2500:
	ldr	r1, [fp, #-8]
	mov	r0, #0
	bl	gtst
	str	r0, [fp, #-8]
	ldr	r3, .L2502
	ldr	r3, [r3]
	cmp	r3, #161
	beq	.L2499
	ldr	r1, [fp, #-8]
	mov	r0, #244
	bl	vseti
	nop
	b	.L2501
.L2499:
	bl	next
	bl	expr_land
	b	.L2500
.L2501:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2503:
	.align	2
.L2502:
	.word	tok
	.size	expr_lor, .-expr_lor
	.section	.rodata
	.align	2
.LC182:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	expr_eq, %function
expr_eq:
	@ args = 0, pretend = 0, frame = 112
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #112
	ldr	r3, .L2538
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L2538+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2505
	bl	expr_lor_const
	ldr	r3, .L2538+8
	ldr	r3, [r3]
	cmp	r3, #63
	bne	.L2536
	ldr	r3, .L2538+12
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-72]
	bl	vpop
	bl	next
	ldr	r3, .L2538+8
	ldr	r3, [r3]
	cmp	r3, #58
	bne	.L2507
	ldr	r3, .L2538+16
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2507
	ldr	r3, [fp, #-72]
	str	r3, [fp, #-104]
	b	.L2508
.L2507:
	bl	gexpr
	ldr	r3, .L2538+12
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-104]
	bl	vpop
.L2508:
	mov	r0, #58
	bl	skip
	bl	expr_eq
	ldr	r3, [fp, #-72]
	cmp	r3, #0
	beq	.L2536
	ldr	r3, .L2538+12
	ldr	r3, [r3]
	ldr	r2, [fp, #-104]
	str	r2, [r3, #16]
	b	.L2536
.L2505:
	bl	expr_lor
	ldr	r3, .L2538+8
	ldr	r3, [r3]
	cmp	r3, #63
	bne	.L2536
	bl	next
	ldr	r3, .L2538+12
	ldr	r3, [r3]
	ldr	r2, .L2538+20
	cmp	r3, r2
	beq	.L2509
	ldr	r3, .L2538+12
	ldr	r3, [r3]
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_float
	mov	r3, r0
	cmp	r3, #0
	beq	.L2510
	mov	r3, #2
	str	r3, [fp, #-108]
	b	.L2511
.L2510:
	mov	r3, #1
	str	r3, [fp, #-108]
.L2511:
	ldr	r0, [fp, #-108]
	bl	gv
	mov	r0, #1
	bl	save_regs
.L2509:
	ldr	r3, .L2538+8
	ldr	r3, [r3]
	cmp	r3, #58
	bne	.L2512
	ldr	r3, .L2538+16
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2512
	bl	gv_dup
	mov	r1, #0
	mov	r0, #1
	bl	gtst
	str	r0, [fp, #-112]
	b	.L2513
.L2512:
	mov	r1, #0
	mov	r0, #1
	bl	gtst
	str	r0, [fp, #-112]
	bl	gexpr
.L2513:
	ldr	r3, .L2538+12
	ldr	r2, [r3]
	sub	r3, fp, #60
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	ldr	r3, .L2538+12
	ldr	r3, [r3]
	sub	ip, fp, #44
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	ldr	r3, .L2538+12
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldr	r2, .L2538+12
	str	r3, [r2]
	mov	r0, #58
	bl	skip
	mov	r0, #0
	bl	gjmp
	str	r0, [fp, #-100]
	ldr	r0, [fp, #-112]
	bl	gsym
	bl	expr_eq
	ldr	r3, .L2538+12
	ldr	r2, [r3]
	sub	r3, fp, #52
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	ldr	r3, [fp, #-60]
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-96]
	and	r3, r3, #15
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-52]
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	and	r3, r3, #15
	str	r3, [fp, #-84]
	ldr	r0, [fp, #-92]
	bl	is_float
	mov	r3, r0
	cmp	r3, #0
	bne	.L2514
	ldr	r0, [fp, #-84]
	bl	is_float
	mov	r3, r0
	cmp	r3, #0
	beq	.L2515
.L2514:
	ldr	r3, [fp, #-92]
	cmp	r3, #10
	beq	.L2516
	ldr	r3, [fp, #-84]
	cmp	r3, #10
	bne	.L2517
.L2516:
	mov	r3, #10
	str	r3, [fp, #-68]
	b	.L2518
.L2517:
	ldr	r3, [fp, #-92]
	cmp	r3, #9
	beq	.L2519
	ldr	r3, [fp, #-84]
	cmp	r3, #9
	bne	.L2520
.L2519:
	mov	r3, #9
	str	r3, [fp, #-68]
	b	.L2518
.L2520:
	mov	r3, #8
	str	r3, [fp, #-68]
	b	.L2521
.L2518:
	b	.L2521
.L2515:
	ldr	r3, [fp, #-92]
	cmp	r3, #12
	beq	.L2522
	ldr	r3, [fp, #-84]
	cmp	r3, #12
	bne	.L2523
.L2522:
	mov	r3, #12
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-96]
	and	r3, r3, #31
	cmp	r3, #28
	beq	.L2524
	ldr	r3, [fp, #-88]
	and	r3, r3, #31
	cmp	r3, #28
	bne	.L2537
.L2524:
	ldr	r3, [fp, #-68]
	orr	r3, r3, #16
	str	r3, [fp, #-68]
	b	.L2537
.L2523:
	ldr	r3, [fp, #-92]
	cmp	r3, #4
	beq	.L2526
	ldr	r3, [fp, #-84]
	cmp	r3, #4
	bne	.L2527
.L2526:
	sub	r3, fp, #68
	sub	r2, fp, #60
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	b	.L2521
.L2527:
	ldr	r3, [fp, #-92]
	cmp	r3, #7
	beq	.L2528
	ldr	r3, [fp, #-84]
	cmp	r3, #7
	bne	.L2529
.L2528:
	sub	r3, fp, #68
	sub	r2, fp, #60
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	b	.L2521
.L2529:
	ldr	r3, [fp, #-92]
	cmp	r3, #3
	beq	.L2530
	ldr	r3, [fp, #-84]
	cmp	r3, #3
	bne	.L2531
.L2530:
	mov	r3, #3
	str	r3, [fp, #-68]
	b	.L2521
.L2531:
	mov	r3, #0
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-96]
	and	r3, r3, #31
	cmp	r3, #16
	beq	.L2532
	ldr	r3, [fp, #-88]
	and	r3, r3, #31
	cmp	r3, #16
	bne	.L2521
.L2532:
	ldr	r3, [fp, #-68]
	orr	r3, r3, #16
	str	r3, [fp, #-68]
	b	.L2521
.L2537:
	nop
.L2521:
	sub	r3, fp, #68
	mov	r0, r3
	bl	gen_cast
	mov	r3, #1
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-68]
	mov	r0, r3
	bl	is_float
	mov	r3, r0
	cmp	r3, #0
	beq	.L2533
	mov	r3, #2
	str	r3, [fp, #-108]
	b	.L2534
.L2533:
	ldr	r3, [fp, #-68]
	and	r3, r3, #15
	cmp	r3, #12
	bne	.L2534
	mov	r3, #4
	str	r3, [fp, #-108]
.L2534:
	ldr	r0, [fp, #-108]
	bl	gv
	str	r0, [fp, #-80]
	mov	r0, #0
	bl	gjmp
	str	r0, [fp, #-112]
	ldr	r0, [fp, #-100]
	bl	gsym
	ldr	r3, .L2538+12
	ldr	r3, [r3]
	mov	lr, r3
	sub	ip, fp, #44
	ldmia	ip!, {r0, r1, r2, r3}
	stmia	lr!, {r0, r1, r2, r3}
	ldm	ip, {r0, r1, r2, r3}
	stm	lr, {r0, r1, r2, r3}
	sub	r3, fp, #68
	mov	r0, r3
	bl	gen_cast
	ldr	r0, [fp, #-108]
	bl	gv
	str	r0, [fp, #-76]
	ldr	r1, [fp, #-76]
	ldr	r0, [fp, #-80]
	bl	move_reg
	ldr	r3, .L2538+12
	ldr	r3, [r3]
	ldr	r2, [fp, #-80]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #8]	@ movhi
	ldr	r0, [fp, #-112]
	bl	gsym
.L2536:
	nop
	ldr	r3, .L2538
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2535
	bl	__stack_chk_fail
.L2535:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2539:
	.align	2
.L2538:
	.word	.LC182
	.word	const_wanted
	.word	tok
	.word	vtop
	.word	gnu_ext
	.word	vstack
	.size	expr_eq, .-expr_eq
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	gexpr, %function
gexpr:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
.L2543:
	bl	expr_eq
	ldr	r3, .L2546
	ldr	r3, [r3]
	cmp	r3, #44
	bne	.L2545
	bl	vpop
	bl	next
	b	.L2543
.L2545:
	nop
	nop
	pop	{fp, pc}
.L2547:
	.align	2
.L2546:
	.word	tok
	.size	gexpr, .-gexpr
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	expr_type, %function
expr_type:
	@ 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, .L2549
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, .L2549
	mov	r2, #1
	str	r2, [r3]
	bl	gexpr
	ldr	r3, .L2549+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	bl	vpop
	ldr	r2, .L2549
	ldr	r3, [fp, #-8]
	str	r3, [r2]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2550:
	.align	2
.L2549:
	.word	nocode_wanted
	.word	vtop
	.size	expr_type, .-expr_type
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	unary_type, %function
unary_type:
	@ 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, .L2552
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, .L2552
	mov	r2, #1
	str	r2, [r3]
	bl	unary
	ldr	r3, .L2552+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	bl	vpop
	ldr	r2, .L2552
	ldr	r3, [fp, #-8]
	str	r3, [r2]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2553:
	.align	2
.L2552:
	.word	nocode_wanted
	.word	vtop
	.size	unary_type, .-unary_type
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	expr_const1, %function
expr_const1:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	ldr	r3, .L2555
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, .L2555
	mov	r2, #1
	str	r2, [r3]
	bl	expr_eq
	ldr	r2, .L2555
	ldr	r3, [fp, #-8]
	str	r3, [r2]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2556:
	.align	2
.L2555:
	.word	const_wanted
	.size	expr_const1, .-expr_const1
	.section	.rodata
	.align	2
.LC183:
	.ascii	"constant expression\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	expr_const, %function
expr_const:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	bl	expr_const1
	ldr	r3, .L2560
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	lsl	r3, r3, #22
	lsr	r3, r3, #22
	cmp	r3, #240
	beq	.L2558
	ldr	r0, .L2560+4
	bl	expect
.L2558:
	ldr	r3, .L2560
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-8]
	bl	vpop
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2561:
	.align	2
.L2560:
	.word	vtop
	.word	.LC183
	.size	expr_const, .-expr_const
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_label, %function
is_label:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	ldr	r3, .L2566
	ldr	r3, [r3]
	cmp	r3, #312
	bgt	.L2563
	mov	r3, #0
	b	.L2564
.L2563:
	ldr	r3, .L2566
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	bl	next
	ldr	r3, .L2566
	ldr	r3, [r3]
	cmp	r3, #58
	bne	.L2565
	bl	next
	ldr	r3, [fp, #-8]
	b	.L2564
.L2565:
	ldr	r0, [fp, #-8]
	bl	unget_tok
	mov	r3, #0
.L2564:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2567:
	.align	2
.L2566:
	.word	tok
	.size	is_label, .-is_label
	.section	.rodata
	.align	2
.LC184:
	.ascii	"cannot break\000"
	.align	2
.LC185:
	.ascii	"cannot continue\000"
	.align	2
.LC186:
	.ascii	"switch\000"
	.align	2
.LC187:
	.ascii	"empty case range\000"
	.align	2
.LC188:
	.ascii	"too many 'default'\000"
	.align	2
.LC189:
	.ascii	"duplicate label '%s'\000"
	.align	2
.LC190:
	.ascii	"deprecated use of label at end of compound statemen"
	.ascii	"t\000"
	.align	2
.LC191:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	block, %function
block:
	@ args = 8, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #72
	str	r0, [fp, #-56]
	str	r1, [fp, #-60]
	str	r2, [fp, #-64]
	str	r3, [fp, #-68]
	ldr	r3, .L2632
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L2632+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2569
	ldr	r3, .L2632+8
	ldr	r3, [r3]
	ldr	r2, [r3, #12]
	ldr	r3, .L2632+12
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L2570
	ldr	r3, .L2632+16
	ldr	r2, [r3]
	ldr	r3, .L2632+20
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L2569
.L2570:
	ldr	r3, .L2632+8
	ldr	r3, [r3]
	ldr	r1, [r3, #12]
	ldr	r3, .L2632+20
	ldr	r2, [r3]
	ldr	r3, .L2632+24
	ldr	r3, [r3]
	sub	r3, r2, r3
	mov	r2, r1
	mov	r1, #0
	mov	r0, #68
	bl	put_stabn
	ldr	r3, .L2632+20
	ldr	r3, [r3]
	ldr	r2, .L2632+16
	str	r3, [r2]
	ldr	r3, .L2632+8
	ldr	r3, [r3]
	ldr	r3, [r3, #12]
	ldr	r2, .L2632+12
	str	r3, [r2]
.L2569:
	ldr	r3, [fp, #8]
	cmp	r3, #0
	beq	.L2571
	mov	r0, #0
	bl	vpushi
	ldr	r3, .L2632+28
	ldr	r3, [r3]
	mov	r2, #3
	str	r2, [r3]
.L2571:
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	ldr	r2, .L2632+36
	cmp	r3, r2
	bne	.L2572
	bl	next
	mov	r0, #40
	bl	skip
	bl	gexpr
	mov	r0, #41
	bl	skip
	mov	r1, #0
	mov	r0, #1
	bl	gtst
	mov	r3, r0
	str	r3, [fp, #-48]
	mov	r3, #0
	str	r3, [sp, #4]
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-68]
	ldr	r2, [fp, #-64]
	ldr	r1, [fp, #-60]
	ldr	r0, [fp, #-56]
	bl	block
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #260
	bne	.L2573
	bl	next
	mov	r0, #0
	bl	gjmp
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-48]
	mov	r0, r3
	bl	gsym
	mov	r3, #0
	str	r3, [sp, #4]
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-68]
	ldr	r2, [fp, #-64]
	ldr	r1, [fp, #-60]
	ldr	r0, [fp, #-56]
	bl	block
	ldr	r0, [fp, #-28]
	bl	gsym
	b	.L2631
.L2573:
	ldr	r3, [fp, #-48]
	mov	r0, r3
	bl	gsym
	b	.L2631
.L2572:
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	ldr	r2, .L2632+40
	cmp	r3, r2
	bne	.L2575
	bl	next
	ldr	r3, .L2632+20
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	mov	r0, #40
	bl	skip
	bl	gexpr
	mov	r0, #41
	bl	skip
	mov	r1, #0
	mov	r0, #1
	bl	gtst
	mov	r3, r0
	str	r3, [fp, #-48]
	mov	r3, #0
	str	r3, [fp, #-44]
	sub	r1, fp, #44
	sub	r0, fp, #48
	mov	r3, #0
	str	r3, [sp, #4]
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-68]
	ldr	r2, [fp, #-64]
	bl	block
	ldr	r0, [fp, #-28]
	bl	gjmp_addr
	ldr	r3, [fp, #-48]
	mov	r0, r3
	bl	gsym
	ldr	r3, [fp, #-44]
	ldr	r1, [fp, #-28]
	mov	r0, r3
	bl	gsym_addr
	b	.L2631
.L2575:
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	cmp	r3, #123
	bne	.L2576
	bl	next
	ldr	r3, .L2632+44
	ldr	r3, [r3]
	str	r3, [fp, #-40]
	ldr	r3, .L2632+48
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	ldr	r2, .L2632+52
	cmp	r3, r2
	bne	.L2582
	bl	next
.L2581:
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	cmp	r3, #312
	bgt	.L2578
	ldr	r0, .L2632+56
	bl	expect
.L2578:
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	mov	r2, #2
	mov	r1, r3
	ldr	r0, .L2632+48
	bl	label_push
	bl	next
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	cmp	r3, #44
	bne	.L2579
	bl	next
	b	.L2581
.L2579:
	mov	r0, #59
	bl	skip
	nop
	b	.L2582
.L2584:
	mov	r0, #242
	bl	decl
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	cmp	r3, #125
	beq	.L2582
	ldr	r3, [fp, #8]
	cmp	r3, #0
	beq	.L2583
	bl	vpop
.L2583:
	ldr	r3, [fp, #8]
	str	r3, [sp, #4]
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-68]
	ldr	r2, [fp, #-64]
	ldr	r1, [fp, #-60]
	ldr	r0, [fp, #-56]
	bl	block
.L2582:
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	cmp	r3, #125
	bne	.L2584
	ldr	r1, [fp, #-20]
	ldr	r0, .L2632+48
	bl	label_pop
	ldr	r1, [fp, #-40]
	ldr	r0, .L2632+44
	bl	sym_pop
	bl	next
	b	.L2631
.L2576:
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	ldr	r2, .L2632+60
	cmp	r3, r2
	bne	.L2585
	bl	next
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	cmp	r3, #59
	beq	.L2586
	bl	gexpr
	ldr	r0, .L2632+64
	bl	gen_assign_cast
	ldr	r3, .L2632+64
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #7
	bne	.L2587
	ldr	r2, .L2632+64
	sub	r3, fp, #16
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	sub	r3, fp, #16
	mov	r0, r3
	bl	mk_pointer
	ldr	r3, .L2632+68
	ldr	r2, [r3]
	sub	r3, fp, #16
	ldr	r1, .L2632+72
	mov	r0, r3
	bl	vset
	bl	indir
	bl	vswap
	bl	vstore
	b	.L2588
.L2587:
	ldr	r3, .L2632+64
	ldr	r3, [r3]
	mov	r0, r3
	bl	is_float
	mov	r3, r0
	cmp	r3, #0
	beq	.L2589
	mov	r0, #8
	bl	gv
	b	.L2588
.L2589:
	mov	r0, #4
	bl	gv
.L2588:
	ldr	r3, .L2632+28
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldr	r2, .L2632+28
	str	r3, [r2]
.L2586:
	mov	r0, #59
	bl	skip
	ldr	r3, .L2632+76
	ldr	r3, [r3]
	mov	r0, r3
	bl	gjmp
	mov	r3, r0
	ldr	r2, .L2632+76
	str	r3, [r2]
	b	.L2631
.L2585:
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	ldr	r2, .L2632+80
	cmp	r3, r2
	bne	.L2590
	ldr	r3, [fp, #-56]
	cmp	r3, #0
	bne	.L2591
	ldr	r0, .L2632+84
	bl	error
.L2591:
	ldr	r3, [fp, #-56]
	ldr	r3, [r3]
	mov	r0, r3
	bl	gjmp
	mov	r2, r0
	ldr	r3, [fp, #-56]
	str	r2, [r3]
	bl	next
	mov	r0, #59
	bl	skip
	b	.L2631
.L2590:
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	ldr	r2, .L2632+88
	cmp	r3, r2
	bne	.L2592
	ldr	r3, [fp, #-60]
	cmp	r3, #0
	bne	.L2593
	ldr	r0, .L2632+92
	bl	error
.L2593:
	ldr	r3, [fp, #-60]
	ldr	r3, [r3]
	mov	r0, r3
	bl	gjmp
	mov	r2, r0
	ldr	r3, [fp, #-60]
	str	r2, [r3]
	bl	next
	mov	r0, #59
	bl	skip
	b	.L2631
.L2592:
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	cmp	r3, #264
	bne	.L2594
	bl	next
	mov	r0, #40
	bl	skip
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	cmp	r3, #59
	beq	.L2595
	bl	gexpr
	bl	vpop
.L2595:
	mov	r0, #59
	bl	skip
	ldr	r3, .L2632+20
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, .L2632+20
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-48]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	cmp	r3, #59
	beq	.L2596
	bl	gexpr
	mov	r1, #0
	mov	r0, #1
	bl	gtst
	mov	r3, r0
	str	r3, [fp, #-48]
.L2596:
	mov	r0, #59
	bl	skip
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	cmp	r3, #41
	beq	.L2597
	mov	r0, #0
	bl	gjmp
	str	r0, [fp, #-24]
	ldr	r3, .L2632+20
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	bl	gexpr
	bl	vpop
	ldr	r0, [fp, #-28]
	bl	gjmp_addr
	ldr	r0, [fp, #-24]
	bl	gsym
.L2597:
	mov	r0, #41
	bl	skip
	sub	r1, fp, #44
	sub	r0, fp, #48
	mov	r3, #0
	str	r3, [sp, #4]
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-68]
	ldr	r2, [fp, #-64]
	bl	block
	ldr	r3, [fp, #-16]
	mov	r0, r3
	bl	gjmp_addr
	ldr	r3, [fp, #-48]
	mov	r0, r3
	bl	gsym
	ldr	r3, [fp, #-44]
	ldr	r2, [fp, #-16]
	mov	r1, r2
	mov	r0, r3
	bl	gsym_addr
	b	.L2631
.L2594:
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	ldr	r2, .L2632+96
	cmp	r3, r2
	bne	.L2598
	bl	next
	mov	r3, #0
	str	r3, [fp, #-48]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r3, .L2632+20
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	sub	r1, fp, #44
	sub	r0, fp, #48
	mov	r3, #0
	str	r3, [sp, #4]
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-68]
	ldr	r2, [fp, #-64]
	bl	block
	ldr	r0, .L2632+40
	bl	skip
	mov	r0, #40
	bl	skip
	ldr	r3, [fp, #-44]
	mov	r0, r3
	bl	gsym
	bl	gexpr
	mov	r1, #0
	mov	r0, #0
	bl	gtst
	mov	r3, r0
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r1, [fp, #-28]
	mov	r0, r3
	bl	gsym_addr
	mov	r0, #41
	bl	skip
	ldr	r3, [fp, #-48]
	mov	r0, r3
	bl	gsym
	mov	r0, #59
	bl	skip
	b	.L2631
.L2598:
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	ldr	r2, .L2632+100
	cmp	r3, r2
	bne	.L2599
	bl	next
	mov	r0, #40
	bl	skip
	bl	gexpr
	mov	r0, #1
	bl	gv
	str	r0, [fp, #4]
	bl	vpop
	mov	r0, #41
	bl	skip
	mov	r3, #0
	str	r3, [fp, #-48]
	mov	r0, #0
	bl	gjmp
	mov	r3, r0
	str	r3, [fp, #-44]
	mov	r3, #0
	str	r3, [fp, #-16]
	sub	r1, fp, #16
	sub	r2, fp, #44
	sub	r0, fp, #48
	mov	r3, #0
	str	r3, [sp, #4]
	ldr	r3, [fp, #4]
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, [fp, #-60]
	bl	block
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L2600
	ldr	r3, .L2632+20
	ldr	r3, [r3]
	str	r3, [fp, #-16]
.L2600:
	ldr	r3, [fp, #-44]
	ldr	r2, [fp, #-16]
	mov	r1, r2
	mov	r0, r3
	bl	gsym_addr
	ldr	r3, [fp, #-48]
	mov	r0, r3
	bl	gsym
	b	.L2631
.L2599:
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	cmp	r3, #272
	bne	.L2601
	ldr	r3, [fp, #-64]
	cmp	r3, #0
	bne	.L2602
	ldr	r0, .L2632+104
	bl	expect
.L2602:
	bl	next
	bl	expr_const
	str	r0, [fp, #-32]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-36]
	ldr	r3, .L2632+108
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2603
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	cmp	r3, #204
	bne	.L2603
	bl	next
	bl	expr_const
	str	r0, [fp, #-36]
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	bge	.L2603
	ldr	r0, .L2632+112
	bl	warning
.L2603:
	mov	r0, #0
	bl	gjmp
	mov	r3, r0
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-64]
	ldr	r3, [r3]
	mov	r0, r3
	bl	gsym
	mov	r1, #0
	ldr	r0, [fp, #4]
	bl	vseti
	ldr	r0, [fp, #-32]
	bl	vpushi
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-36]
	cmp	r2, r3
	bne	.L2604
	mov	r0, #148
	bl	gen_op
	mov	r1, #0
	mov	r0, #1
	bl	gtst
	mov	r2, r0
	ldr	r3, [fp, #-64]
	str	r2, [r3]
	b	.L2605
.L2604:
	mov	r0, #157
	bl	gen_op
	mov	r1, #0
	mov	r0, #1
	bl	gtst
	mov	r2, r0
	ldr	r3, [fp, #-64]
	str	r2, [r3]
	mov	r1, #0
	ldr	r0, [fp, #4]
	bl	vseti
	ldr	r0, [fp, #-36]
	bl	vpushi
	mov	r0, #158
	bl	gen_op
	ldr	r3, [fp, #-64]
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #1
	bl	gtst
	mov	r2, r0
	ldr	r3, [fp, #-64]
	str	r2, [r3]
.L2605:
	ldr	r3, [fp, #-44]
	mov	r0, r3
	bl	gsym
	mov	r0, #58
	bl	skip
	mov	r3, #0
	str	r3, [fp, #8]
	b	.L2606
.L2601:
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	ldr	r2, .L2632+116
	cmp	r3, r2
	bne	.L2607
	bl	next
	mov	r0, #58
	bl	skip
	ldr	r3, [fp, #-68]
	cmp	r3, #0
	bne	.L2608
	ldr	r0, .L2632+104
	bl	expect
.L2608:
	ldr	r3, [fp, #-68]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2609
	ldr	r0, .L2632+120
	bl	error
.L2609:
	ldr	r3, .L2632+20
	ldr	r2, [r3]
	ldr	r3, [fp, #-68]
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #8]
	b	.L2606
.L2607:
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	cmp	r3, #268
	bne	.L2610
	bl	next
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	cmp	r3, #42
	bne	.L2611
	ldr	r3, .L2632+108
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2611
	bl	next
	bl	gexpr
	ldr	r3, .L2632+28
	ldr	r3, [r3]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #4
	beq	.L2612
	ldr	r0, .L2632+124
	bl	expect
.L2612:
	bl	ggoto
	b	.L2613
.L2611:
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	cmp	r3, #312
	ble	.L2614
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	mov	r0, r3
	bl	label_find
	str	r0, [fp, #-40]
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	bne	.L2615
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	mov	r2, #1
	mov	r1, r3
	ldr	r0, .L2632+128
	bl	label_push
	str	r0, [fp, #-40]
	b	.L2616
.L2615:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #4]
	cmp	r3, #2
	bne	.L2616
	ldr	r3, [fp, #-40]
	mov	r2, #1
	str	r2, [r3, #4]
.L2616:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #4]
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L2617
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #20]
	mov	r0, r3
	bl	gjmp
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-40]
	str	r2, [r3, #20]
	b	.L2618
.L2617:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #20]
	mov	r0, r3
	bl	gjmp_addr
.L2618:
	bl	next
	b	.L2613
.L2614:
	ldr	r0, .L2632+56
	bl	expect
.L2613:
	mov	r0, #59
	bl	skip
	b	.L2631
.L2610:
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	ldr	r2, .L2632+132
	cmp	r3, r2
	beq	.L2619
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	ldr	r2, .L2632+136
	cmp	r3, r2
	beq	.L2619
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	cmp	r3, #312
	bne	.L2620
.L2619:
	bl	asm_instr
	b	.L2631
.L2620:
	bl	is_label
	mov	r3, r0
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	beq	.L2621
	ldr	r3, [fp, #-44]
	mov	r0, r3
	bl	label_find
	str	r0, [fp, #-40]
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	beq	.L2622
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L2623
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	mov	r1, #0
	mov	r0, r3
	bl	get_tok_str
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L2632+140
	bl	error
.L2623:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #20]
	mov	r0, r3
	bl	gsym
	ldr	r3, [fp, #-40]
	mov	r2, #0
	str	r2, [r3, #4]
	b	.L2624
.L2622:
	ldr	r3, [fp, #-44]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, .L2632+128
	bl	label_push
	str	r0, [fp, #-40]
.L2624:
	ldr	r3, .L2632+20
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-40]
	str	r2, [r3, #20]
.L2606:
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	cmp	r3, #125
	bne	.L2625
	ldr	r0, .L2632+144
	bl	warning
	b	.L2631
.L2625:
	ldr	r3, [fp, #8]
	cmp	r3, #0
	beq	.L2626
	bl	vpop
.L2626:
	ldr	r3, [fp, #8]
	str	r3, [sp, #4]
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-68]
	ldr	r2, [fp, #-64]
	ldr	r1, [fp, #-60]
	ldr	r0, [fp, #-56]
	bl	block
	b	.L2631
.L2621:
	ldr	r3, .L2632+32
	ldr	r3, [r3]
	cmp	r3, #59
	beq	.L2627
	ldr	r3, [fp, #8]
	cmp	r3, #0
	beq	.L2628
	bl	vpop
	bl	gexpr
	b	.L2627
.L2628:
	bl	gexpr
	bl	vpop
.L2627:
	mov	r0, #59
	bl	skip
.L2631:
	nop
	ldr	r3, .L2632
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2629
	bl	__stack_chk_fail
.L2629:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2633:
	.align	2
.L2632:
	.word	.LC191
	.word	do_debug
	.word	file
	.word	last_line_num
	.word	last_ind
	.word	ind
	.word	func_ind
	.word	vtop
	.word	tok
	.word	259
	.word	261
	.word	local_stack
	.word	local_label_stack
	.word	309
	.word	.LC174
	.word	263
	.word	func_vt
	.word	func_vc
	.word	498
	.word	rsym
	.word	262
	.word	.LC184
	.word	270
	.word	.LC185
	.word	269
	.word	271
	.word	.LC186
	.word	gnu_ext
	.word	.LC187
	.word	299
	.word	.LC188
	.word	.LC165
	.word	global_label_stack
	.word	310
	.word	311
	.word	.LC189
	.word	.LC190
	.size	block, .-block
	.section	.rodata
	.align	2
.LC192:
	.ascii	"array type\000"
	.align	2
.LC193:
	.ascii	"invalid index\000"
	.align	2
.LC194:
	.ascii	"struct/union type\000"
	.align	2
.LC195:
	.ascii	"field\000"
	.align	2
.LC196:
	.ascii	"=\000"
	.align	2
.LC197:
	.ascii	"too many field init\000"
	.align	2
.LC198:
	.ascii	"range init not supported yet for dynamic storage\000"
	.align	2
.LC199:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	decl_designator, %function
decl_designator:
	@ args = 8, pretend = 0, frame = 88
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #96
	str	r0, [fp, #-72]
	str	r1, [fp, #-76]
	str	r2, [fp, #-80]
	str	r3, [fp, #-84]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-88]
	ldr	r3, .L2673
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-60]
	mov	r3, #0
	str	r3, [fp, #-44]
	mov	r3, #1
	str	r3, [fp, #-48]
	ldr	r3, .L2673+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2669
	bl	is_label
	str	r0, [fp, #-52]
	ldr	r3, [fp, #-52]
	cmp	r3, #0
	beq	.L2669
	b	.L2636
.L2657:
	ldr	r3, .L2673+8
	ldr	r3, [r3]
	cmp	r3, #91
	bne	.L2638
	ldr	r3, [fp, #-72]
	ldr	r3, [r3]
	and	r3, r3, #32
	cmp	r3, #0
	bne	.L2639
	ldr	r0, .L2673+12
	bl	expect
.L2639:
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-32]
	bl	next
	bl	expr_const
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	blt	.L2640
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	blt	.L2641
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	blt	.L2641
.L2640:
	ldr	r0, .L2673+16
	bl	expect
.L2641:
	ldr	r3, .L2673+8
	ldr	r3, [r3]
	cmp	r3, #204
	bne	.L2642
	ldr	r3, .L2673+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2642
	bl	next
	bl	expr_const
	str	r0, [fp, #-56]
	ldr	r3, [fp, #-56]
	cmp	r3, #0
	blt	.L2643
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	blt	.L2644
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-56]
	cmp	r2, r3
	bge	.L2643
.L2644:
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	bge	.L2670
.L2643:
	ldr	r0, .L2673+16
	bl	expect
	b	.L2670
.L2642:
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-56]
	b	.L2646
.L2670:
	nop
.L2646:
	mov	r0, #93
	bl	skip
	ldr	r3, [fp, #-60]
	cmp	r3, #0
	bne	.L2647
	ldr	r3, [fp, #-84]
	ldr	r2, [fp, #-56]
	str	r2, [r3]
.L2647:
	ldr	r0, [fp, #-72]
	bl	pointed_type
	str	r0, [fp, #-72]
	sub	r3, fp, #68
	mov	r1, r3
	ldr	r0, [fp, #-72]
	bl	type_size
	str	r0, [fp, #-44]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-44]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-80]
	add	r3, r3, r2
	str	r3, [fp, #-80]
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-28]
	sub	r3, r2, r3
	add	r3, r3, #1
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	cmp	r3, #1
	beq	.L2648
	mov	r3, #1
	str	r3, [fp, #-60]
	b	.L2649
.L2638:
	bl	next
	ldr	r3, .L2673+8
	ldr	r3, [r3]
	str	r3, [fp, #-52]
	bl	next
.L2636:
	ldr	r3, [fp, #-72]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #7
	beq	.L2650
	ldr	r0, .L2673+20
	bl	expect
.L2650:
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-52]
	orr	r3, r3, #536870912
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #20]
	str	r3, [fp, #-64]
	b	.L2651
.L2654:
	ldr	r3, [fp, #-64]
	ldr	r3, [r3]
	ldr	r2, [fp, #-52]
	cmp	r2, r3
	beq	.L2671
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #20]
	str	r3, [fp, #-64]
.L2651:
	ldr	r3, [fp, #-64]
	cmp	r3, #0
	bne	.L2654
	b	.L2653
.L2671:
	nop
.L2653:
	ldr	r3, [fp, #-64]
	cmp	r3, #0
	bne	.L2655
	ldr	r0, .L2673+24
	bl	expect
.L2655:
	ldr	r3, [fp, #-60]
	cmp	r3, #0
	bne	.L2656
	ldr	r3, [fp, #-88]
	ldr	r2, [fp, #-64]
	str	r2, [r3]
.L2656:
	ldr	r2, [fp, #-64]
	sub	r3, fp, #16
	add	r2, r2, #12
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-72]
	ldr	r3, [r3]
	and	r3, r3, #1920
	orr	r3, r2, r3
	str	r3, [fp, #-16]
	sub	r3, fp, #16
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #8]
	mov	r2, r3
	ldr	r3, [fp, #-80]
	add	r3, r3, r2
	str	r3, [fp, #-80]
.L2648:
	mov	r3, #1
	str	r3, [fp, #-60]
	b	.L2637
.L2669:
	nop
.L2637:
	ldr	r3, .L2673+8
	ldr	r3, [r3]
	cmp	r3, #91
	beq	.L2657
	ldr	r3, .L2673+8
	ldr	r3, [r3]
	cmp	r3, #46
	beq	.L2657
.L2649:
	ldr	r3, [fp, #-60]
	cmp	r3, #0
	beq	.L2658
	ldr	r3, .L2673+8
	ldr	r3, [r3]
	cmp	r3, #61
	bne	.L2659
	bl	next
	b	.L2660
.L2659:
	ldr	r3, .L2673+4
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L2660
	ldr	r0, .L2673+28
	bl	expect
	b	.L2660
.L2658:
	ldr	r3, [fp, #-72]
	ldr	r3, [r3]
	and	r3, r3, #32
	cmp	r3, #0
	beq	.L2661
	ldr	r3, [fp, #-84]
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r0, [fp, #-72]
	bl	pointed_type
	str	r0, [fp, #-72]
	sub	r3, fp, #68
	mov	r1, r3
	ldr	r0, [fp, #-72]
	bl	type_size
	mov	r2, r0
	ldr	r3, [fp, #-28]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-80]
	add	r3, r3, r2
	str	r3, [fp, #-80]
	b	.L2660
.L2661:
	ldr	r3, [fp, #-88]
	ldr	r3, [r3]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-64]
	cmp	r3, #0
	bne	.L2662
	ldr	r0, .L2673+32
	bl	error
.L2662:
	ldr	r2, [fp, #-64]
	sub	r3, fp, #16
	add	r2, r2, #12
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-72]
	ldr	r3, [r3]
	and	r3, r3, #1920
	orr	r3, r2, r3
	str	r3, [fp, #-16]
	sub	r3, fp, #16
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-64]
	ldr	r3, [r3, #8]
	mov	r2, r3
	ldr	r3, [fp, #-80]
	add	r3, r3, r2
	str	r3, [fp, #-80]
.L2660:
	ldr	r3, [fp, #8]
	str	r3, [sp]
	mov	r3, #0
	ldr	r2, [fp, #-80]
	ldr	r1, [fp, #-76]
	ldr	r0, [fp, #-72]
	bl	decl_initializer
	ldr	r3, [fp, #8]
	cmp	r3, #0
	bne	.L2672
	ldr	r3, [fp, #-48]
	cmp	r3, #1
	ble	.L2672
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	bne	.L2664
	ldr	r0, .L2673+36
	bl	error
.L2664:
	ldr	r3, [fp, #-48]
	ldr	r2, [fp, #-44]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-80]
	add	r3, r3, r2
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-76]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	bls	.L2665
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-76]
	bl	section_realloc
.L2665:
	ldr	r3, [fp, #-76]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-80]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-40]
	mov	r3, #1
	str	r3, [fp, #-36]
	b	.L2666
.L2667:
	ldr	r3, [fp, #-44]
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-44]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	memcpy
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L2666:
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-48]
	cmp	r2, r3
	blt	.L2667
.L2672:
	nop
	ldr	r3, .L2673
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2668
	bl	__stack_chk_fail
.L2668:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2674:
	.align	2
.L2673:
	.word	.LC199
	.word	gnu_ext
	.word	tok
	.word	.LC192
	.word	.LC193
	.word	.LC194
	.word	.LC195
	.word	.LC196
	.word	.LC197
	.word	.LC198
	.size	decl_designator, .-decl_designator
	.section	.rodata
	.align	2
.LC200:
	.ascii	"initializer element is not constant\000"
	.align	2
.LC201:
	.ascii	"initializer element is not computable at load time\000"
	.align	2
.LC202:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	init_putv, %function
init_putv:
	@ args = 4, pretend = 0, frame = 128
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #128
	str	r0, [fp, #-80]
	str	r1, [fp, #-84]
	str	r2, [fp, #-88]
	str	r3, [fp, #-92]
	ldr	r3, .L2699
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	mov	r3,#0
	ldr	r3, [fp, #4]
	cmp	r3, #2
	beq	.L2676
	ldr	r3, [fp, #4]
	cmp	r3, #2
	bgt	.L2677
	ldr	r3, [fp, #4]
	cmp	r3, #0
	beq	.L2678
	ldr	r3, [fp, #4]
	cmp	r3, #1
	beq	.L2679
	b	.L2677
.L2678:
	ldr	r0, [fp, #-92]
	bl	vpushi
	b	.L2677
.L2679:
	ldr	r3, .L2699+4
	ldr	r3, [r3]
	str	r3, [fp, #-64]
	ldr	r2, .L2699+4
	mov	r3, #1
	str	r3, [r2]
	bl	expr_const1
	ldr	r2, .L2699+4
	ldr	r3, [fp, #-64]
	str	r3, [r2]
	ldr	r3, .L2699+8
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	lsl	r3, r3, #23
	lsr	r3, r3, #23
	cmp	r3, #240
	beq	.L2697
	ldr	r0, .L2699+12
	bl	error
	b	.L2697
.L2676:
	bl	expr_eq
	b	.L2677
.L2697:
	nop
.L2677:
	ldr	r3, [fp, #-80]
	sub	r2, fp, #40
	ldm	r3, {r0, r1}
	stm	r2, {r0, r1}
	ldr	r3, [fp, #-40]
	bic	r3, r3, #2048
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-84]
	cmp	r3, #0
	beq	.L2681
	sub	r3, fp, #40
	mov	r0, r3
	bl	gen_assign_cast
	ldr	r3, [fp, #-80]
	ldr	r3, [r3]
	and	r3, r3, #15
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-84]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-88]
	add	r3, r2, r3
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-80]
	ldr	r3, [r3]
	and	r3, r3, #64
	cmp	r3, #0
	bne	.L2682
	mov	r3, #0
	str	r3, [fp, #-72]
	mov	r3, #32
	str	r3, [fp, #-68]
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	b	.L2683
.L2682:
	ldr	r3, .L2699+8
	ldr	r3, [r3]
	ldr	r3, [r3]
	asr	r3, r3, #16
	and	r3, r3, #63
	str	r3, [fp, #-72]
	ldr	r3, .L2699+8
	ldr	r3, [r3]
	ldr	r3, [r3]
	asr	r3, r3, #22
	and	r3, r3, #63
	str	r3, [fp, #-68]
	mov	r2, #1
	mov	r3, #0
	ldr	r1, [fp, #-68]
	sub	ip, r1, #32
	rsb	r0, r1, #32
	lsl	r5, r3, r1
	orr	r5, r5, r2, lsl ip
	orr	r5, r5, r2, lsr r0
	lsl	r4, r2, r1
	subs	r3, r4, #1
	str	r3, [fp, #-116]
	sbc	r3, r5, #0
	str	r3, [fp, #-112]
	sub	r4, fp, #116
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-52]
	str	r4, [fp, #-48]
.L2683:
	ldr	r3, .L2699+8
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #512
	cmp	r3, #0
	beq	.L2684
	ldr	r3, [fp, #-60]
	cmp	r3, #1
	beq	.L2685
	ldr	r3, [fp, #-60]
	cmp	r3, #2
	beq	.L2685
	ldr	r3, [fp, #-60]
	cmp	r3, #9
	beq	.L2685
	ldr	r3, [fp, #-60]
	cmp	r3, #10
	beq	.L2685
	ldr	r3, [fp, #-60]
	cmp	r3, #12
	beq	.L2685
	ldr	r3, [fp, #-60]
	cmp	r3, #0
	bne	.L2684
	ldr	r3, [fp, #-68]
	cmp	r3, #32
	beq	.L2684
.L2685:
	ldr	r0, .L2699+16
	bl	error
.L2684:
	ldr	r3, [fp, #-60]
	sub	r3, r3, #1
	cmp	r3, #11
	ldrls	pc, [pc, r3, asl #2]
	b	.L2686
.L2688:
	.word	.L2692
	.word	.L2691
	.word	.L2686
	.word	.L2686
	.word	.L2686
	.word	.L2686
	.word	.L2686
	.word	.L2686
	.word	.L2690
	.word	.L2689
	.word	.L2686
	.word	.L2687
.L2692:
	ldr	r3, [fp, #-56]
	ldrb	ip, [r3]	@ zero_extendqisi2
	ldr	r3, .L2699+8
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	mov	r0, r3
	asr	r1, r0, #31
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	and	lr, r0, r2
	str	lr, [fp, #-124]
	and	r3, r1, r3
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-72]
	sub	r1, r3, #32
	rsb	r2, r3, #32
	sub	r5, fp, #124
	ldmia	r5, {r4-r5}
	mov	r0, r5
	lsl	r0, r0, r3
	str	r0, [fp, #-96]
	ldr	r0, [fp, #-96]
	mov	lr, r4
	orr	r1, r0, lr, lsl r1
	str	r1, [fp, #-96]
	ldr	r1, [fp, #-96]
	mov	r0, r4
	orr	r2, r1, r0, lsr r2
	str	r2, [fp, #-96]
	mov	r2, r4
	lsl	r3, r2, r3
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-100]
	and	r3, r3, #255
	orr	r3, ip, r3
	and	r2, r3, #255
	ldr	r3, [fp, #-56]
	strb	r2, [r3]
	b	.L2693
.L2691:
	ldr	r3, [fp, #-56]
	ldrsh	r3, [r3]
	lsl	r3, r3, #16
	lsr	ip, r3, #16
	ldr	r3, .L2699+8
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	mov	r0, r3
	asr	r1, r0, #31
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	and	lr, r0, r2
	str	lr, [fp, #-132]
	and	r3, r1, r3
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-72]
	sub	r1, r3, #32
	rsb	r2, r3, #32
	sub	r5, fp, #132
	ldmia	r5, {r4-r5}
	mov	r0, r5
	lsl	r9, r0, r3
	mov	r0, r4
	orr	r9, r9, r0, lsl r1
	mov	lr, r4
	orr	r9, r9, lr, lsr r2
	mov	r2, r4
	lsl	r8, r2, r3
	lsl	r3, r8, #16
	lsr	r3, r3, #16
	orr	r3, ip, r3
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, [fp, #-56]
	strh	r2, [r3]	@ movhi
	b	.L2693
.L2690:
	ldr	r3, .L2699+8
	ldr	r3, [r3]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-56]
	stm	r1, {r2-r3}
	b	.L2693
.L2689:
	ldr	r3, .L2699+8
	ldr	r3, [r3]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-56]
	stm	r1, {r2-r3}
	b	.L2693
.L2687:
	ldr	r3, [fp, #-56]
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	ldr	r3, .L2699+8
	ldr	r3, [r3]
	add	r3, r3, #16
	ldmia	r3, {r2-r3}
	mov	r4, r2
	mov	r5, r3
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	and	ip, r4, r2
	str	ip, [fp, #-140]
	and	r3, r5, r3
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-72]
	sub	ip, r3, #32
	rsb	r2, r3, #32
	sub	r5, fp, #140
	ldmia	r5, {r4-r5}
	mov	lr, r5
	lsl	r7, lr, r3
	mov	lr, r4
	orr	r7, r7, lr, lsl ip
	mov	ip, r4
	orr	r7, r7, ip, lsr r2
	mov	r2, r4
	lsl	r6, r2, r3
	orr	r3, r0, r6
	str	r3, [fp, #-148]
	orr	r3, r1, r7
	str	r3, [fp, #-144]
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-56]
	stm	r1, {r2-r3}
	b	.L2693
.L2686:
	ldr	r3, .L2699+8
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #512
	cmp	r3, #0
	beq	.L2694
	ldr	r3, .L2699+8
	ldr	r3, [r3]
	ldr	r1, [r3, #24]
	mov	r3, #1
	ldr	r2, [fp, #-88]
	ldr	r0, [fp, #-84]
	bl	greloc
.L2694:
	ldr	r3, [fp, #-56]
	ldr	r3, [r3]
	mov	ip, r3
	ldr	r3, .L2699+8
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	mov	r0, r3
	asr	r1, r0, #31
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	and	lr, r0, r2
	str	lr, [fp, #-156]
	and	r3, r1, r3
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-72]
	sub	r1, r3, #32
	rsb	r2, r3, #32
	sub	r5, fp, #156
	ldmia	r5, {r4-r5}
	mov	r0, r5
	lsl	r0, r0, r3
	str	r0, [fp, #-104]
	ldr	r0, [fp, #-104]
	mov	lr, r4
	orr	r1, r0, lr, lsl r1
	str	r1, [fp, #-104]
	ldr	r1, [fp, #-104]
	mov	r0, r4
	orr	r2, r1, r0, lsr r2
	str	r2, [fp, #-104]
	mov	r2, r4
	lsl	r3, r2, r3
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-108]
	orr	r3, ip, r3
	mov	r2, r3
	ldr	r3, [fp, #-56]
	str	r2, [r3]
	nop
.L2693:
	ldr	r3, .L2699+8
	ldr	r3, [r3]
	sub	r3, r3, #32
	ldr	r2, .L2699+8
	str	r3, [r2]
	b	.L2698
.L2681:
	ldr	r2, [fp, #-88]
	sub	r3, fp, #40
	mov	r1, #242
	mov	r0, r3
	bl	vset
	bl	vswap
	bl	vstore
	bl	vpop
.L2698:
	nop
	ldr	r3, .L2699
	ldr	r2, [r3]
	ldr	r3, [fp, #-32]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2696
	bl	__stack_chk_fail
.L2696:
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
.L2700:
	.align	2
.L2699:
	.word	.LC202
	.word	global_expr
	.word	vtop
	.word	.LC200
	.word	.LC201
	.size	init_putv, .-init_putv
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	init_putz, %function
init_putz:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L2703
	mov	r1, #356
	ldr	r0, .L2704
	bl	vpush_global_sym
	ldr	r3, [fp, #-16]
	mov	r1, r3
	mov	r0, #242
	bl	vseti
	mov	r0, #0
	bl	vpushi
	ldr	r0, [fp, #-20]
	bl	vpushi
	mov	r0, #3
	bl	gfunc_call
.L2703:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2705:
	.align	2
.L2704:
	.word	func_old_type
	.size	init_putz, .-init_putz
	.section	.rodata
	.align	2
.LC203:
	.ascii	"initializer-string for array is too long\000"
	.align	2
.LC204:
	.ascii	"index too large\000"
	.align	2
.LC205:
	.ascii	"cast\000"
	.align	2
.LC206:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	decl_initializer, %function
decl_initializer:
	@ args = 4, pretend = 0, frame = 104
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #112
	str	r0, [fp, #-96]
	str	r1, [fp, #-100]
	str	r2, [fp, #-104]
	str	r3, [fp, #-108]
	ldr	r3, .L2775
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-96]
	ldr	r3, [r3]
	and	r3, r3, #32
	cmp	r3, #0
	beq	.L2707
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-88]
	mov	r3, #0
	str	r3, [fp, #-84]
	ldr	r0, [fp, #-96]
	bl	pointed_type
	str	r0, [fp, #-44]
	sub	r3, fp, #32
	mov	r1, r3
	ldr	r0, [fp, #-44]
	bl	type_size
	str	r0, [fp, #-40]
	mov	r3, #1
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-108]
	cmp	r3, #0
	beq	.L2708
	ldr	r3, .L2775+4
	ldr	r3, [r3]
	cmp	r3, #184
	beq	.L2708
	ldr	r3, .L2775+4
	ldr	r3, [r3]
	cmp	r3, #181
	bne	.L2709
.L2708:
	ldr	r3, .L2775+4
	ldr	r3, [r3]
	cmp	r3, #123
	bne	.L2710
.L2709:
	mov	r0, #123
	bl	skip
	mov	r3, #0
	str	r3, [fp, #-80]
.L2710:
	ldr	r3, .L2775+4
	ldr	r3, [r3]
	cmp	r3, #184
	bne	.L2711
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #0
	beq	.L2714
.L2711:
	ldr	r3, .L2775+4
	ldr	r3, [r3]
	cmp	r3, #181
	bne	.L2713
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #1
	bne	.L2713
	b	.L2714
.L2725:
	ldr	r3, .L2775+8
	ldr	r3, [r3]
	str	r3, [fp, #-36]
	ldr	r3, .L2775+4
	ldr	r3, [r3]
	cmp	r3, #181
	bne	.L2715
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
	b	.L2716
.L2715:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	lsr	r3, r3, #2
	str	r3, [fp, #-60]
.L2716:
	ldr	r3, [fp, #-60]
	sub	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-88]
	cmp	r3, #0
	blt	.L2717
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-84]
	sub	r3, r2, r3
	ldr	r2, [fp, #-76]
	cmp	r2, r3
	ble	.L2717
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-84]
	sub	r3, r2, r3
	str	r3, [fp, #-76]
.L2717:
	ldr	r3, [fp, #4]
	cmp	r3, #0
	bne	.L2718
	ldr	r2, [fp, #-60]
	ldr	r3, [fp, #-76]
	cmp	r2, r3
	ble	.L2719
	ldr	r0, .L2775+12
	bl	warning
.L2719:
	ldr	r3, [fp, #-100]
	cmp	r3, #0
	beq	.L2720
	ldr	r3, .L2775+4
	ldr	r3, [r3]
	cmp	r3, #181
	bne	.L2720
	ldr	r3, [fp, #-40]
	cmp	r3, #1
	bne	.L2720
	ldr	r3, [fp, #-100]
	ldr	r2, [r3, #4]
	ldr	r1, [fp, #-84]
	ldr	r3, [fp, #-104]
	add	r3, r1, r3
	add	r0, r2, r3
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-76]
	mov	r1, r3
	bl	memcpy
	b	.L2718
.L2720:
	mov	r3, #0
	str	r3, [fp, #-68]
	b	.L2721
.L2724:
	ldr	r3, .L2775+4
	ldr	r3, [r3]
	cmp	r3, #181
	bne	.L2722
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-68]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-56]
	b	.L2723
.L2722:
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-56]
.L2723:
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-68]
	add	r3, r2, r3
	ldr	r2, [fp, #-40]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-104]
	add	r2, r2, r3
	mov	r3, #0
	str	r3, [sp]
	ldr	r3, [fp, #-56]
	ldr	r1, [fp, #-100]
	ldr	r0, [fp, #-44]
	bl	init_putv
	ldr	r3, [fp, #-68]
	add	r3, r3, #1
	str	r3, [fp, #-68]
.L2721:
	ldr	r2, [fp, #-68]
	ldr	r3, [fp, #-76]
	cmp	r2, r3
	blt	.L2724
.L2718:
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-76]
	add	r3, r2, r3
	str	r3, [fp, #-84]
	bl	next
.L2714:
	ldr	r3, .L2775+4
	ldr	r3, [r3]
	cmp	r3, #181
	beq	.L2725
	ldr	r3, .L2775+4
	ldr	r3, [r3]
	cmp	r3, #184
	beq	.L2725
	ldr	r3, [fp, #-88]
	cmp	r3, #0
	blt	.L2726
	ldr	r3, [fp, #-88]
	ldr	r2, [fp, #-84]
	cmp	r2, r3
	bge	.L2769
.L2726:
	ldr	r3, [fp, #4]
	cmp	r3, #0
	bne	.L2728
	ldr	r3, [fp, #-84]
	ldr	r2, [fp, #-40]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-104]
	add	r2, r2, r3
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	ldr	r1, [fp, #-100]
	ldr	r0, [fp, #-44]
	bl	init_putv
.L2728:
	ldr	r3, [fp, #-84]
	add	r3, r3, #1
	str	r3, [fp, #-84]
	b	.L2769
.L2713:
	mov	r3, #0
	str	r3, [fp, #-92]
	b	.L2730
.L2736:
	sub	r2, fp, #92
	ldr	r3, [fp, #4]
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #-104]
	ldr	r1, [fp, #-100]
	ldr	r0, [fp, #-96]
	bl	decl_designator
	ldr	r3, [fp, #-88]
	cmp	r3, #0
	blt	.L2731
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-88]
	cmp	r2, r3
	blt	.L2731
	ldr	r0, .L2775+16
	bl	error
.L2731:
	ldr	r3, [fp, #4]
	cmp	r3, #0
	bne	.L2732
	ldr	r3, [fp, #-92]
	ldr	r2, [fp, #-84]
	cmp	r2, r3
	bge	.L2732
	ldr	r3, [fp, #-84]
	ldr	r2, [fp, #-40]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-104]
	add	r1, r2, r3
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-84]
	sub	r3, r2, r3
	ldr	r2, [fp, #-40]
	mul	r3, r2, r3
	mov	r2, r1
	ldr	r1, [fp, #-100]
	ldr	r0, [fp, #-44]
	bl	init_putz
.L2732:
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	ldr	r2, [fp, #-84]
	cmp	r2, r3
	bge	.L2733
	ldr	r3, [fp, #-92]
	str	r3, [fp, #-84]
.L2733:
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-88]
	cmp	r2, r3
	blt	.L2734
	ldr	r3, [fp, #-80]
	cmp	r3, #0
	bne	.L2770
.L2734:
	ldr	r3, .L2775+4
	ldr	r3, [r3]
	cmp	r3, #125
	beq	.L2771
	mov	r0, #44
	bl	skip
.L2730:
	ldr	r3, .L2775+4
	ldr	r3, [r3]
	cmp	r3, #125
	bne	.L2736
	b	.L2729
.L2769:
	nop
	b	.L2729
.L2770:
	nop
	b	.L2729
.L2771:
	nop
.L2729:
	ldr	r3, [fp, #-80]
	cmp	r3, #0
	bne	.L2737
	mov	r0, #125
	bl	skip
.L2737:
	ldr	r3, [fp, #4]
	cmp	r3, #0
	bne	.L2738
	ldr	r3, [fp, #-88]
	cmp	r3, #0
	blt	.L2738
	ldr	r3, [fp, #-88]
	ldr	r2, [fp, #-84]
	cmp	r2, r3
	bge	.L2738
	ldr	r3, [fp, #-84]
	ldr	r2, [fp, #-40]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-104]
	add	r1, r2, r3
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-84]
	sub	r3, r2, r3
	ldr	r2, [fp, #-40]
	mul	r3, r2, r3
	mov	r2, r1
	ldr	r1, [fp, #-100]
	ldr	r0, [fp, #-44]
	bl	init_putz
.L2738:
	ldr	r3, [fp, #-88]
	cmp	r3, #0
	bge	.L2772
	ldr	r3, [fp, #-48]
	ldr	r2, [fp, #-84]
	str	r2, [r3, #8]
	b	.L2772
.L2707:
	ldr	r3, [fp, #-96]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #7
	bne	.L2740
	ldr	r3, [fp, #-100]
	cmp	r3, #0
	bne	.L2741
	ldr	r3, [fp, #-108]
	cmp	r3, #0
	beq	.L2741
	ldr	r3, .L2775+4
	ldr	r3, [r3]
	cmp	r3, #123
	bne	.L2740
.L2741:
	mov	r3, #0
	str	r3, [fp, #-52]
	ldr	r3, .L2775+4
	ldr	r3, [r3]
	cmp	r3, #40
	bne	.L2742
	bl	next
	b	.L2743
.L2744:
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
	bl	next
.L2743:
	ldr	r3, .L2775+4
	ldr	r3, [r3]
	cmp	r3, #40
	beq	.L2744
	sub	r2, fp, #24
	sub	r3, fp, #32
	mov	r1, r2
	mov	r0, r3
	bl	parse_btype
	mov	r3, r0
	cmp	r3, #0
	bne	.L2745
	ldr	r0, .L2775+20
	bl	expect
.L2745:
	sub	r2, fp, #88
	sub	r1, fp, #24
	sub	r0, fp, #32
	mov	r3, #1
	bl	type_decl
	mov	r0, #41
	bl	skip
.L2742:
	mov	r3, #1
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-108]
	cmp	r3, #0
	bne	.L2746
	ldr	r3, .L2775+4
	ldr	r3, [r3]
	cmp	r3, #123
	bne	.L2747
.L2746:
	mov	r0, #123
	bl	skip
	mov	r3, #0
	str	r3, [fp, #-80]
.L2747:
	ldr	r3, [fp, #-96]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #20]
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-84]
	mov	r3, #0
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-88]
	b	.L2748
.L2754:
	ldr	r3, [fp, #4]
	str	r3, [sp, #4]
	sub	r3, fp, #24
	str	r3, [sp]
	mov	r3, #0
	ldr	r2, [fp, #-104]
	ldr	r1, [fp, #-100]
	ldr	r0, [fp, #-96]
	bl	decl_designator
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-92]
	ldr	r3, [fp, #4]
	cmp	r3, #0
	bne	.L2749
	ldr	r3, [fp, #-92]
	ldr	r2, [fp, #-84]
	cmp	r2, r3
	bge	.L2749
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-104]
	add	r1, r2, r3
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-84]
	sub	r3, r2, r3
	mov	r2, r1
	ldr	r1, [fp, #-100]
	ldr	r0, [fp, #-96]
	bl	init_putz
.L2749:
	ldr	r3, [fp, #-24]
	add	r3, r3, #12
	sub	r2, fp, #32
	mov	r1, r2
	mov	r0, r3
	bl	type_size
	mov	r2, r0
	ldr	r3, [fp, #-92]
	add	r3, r2, r3
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	ldr	r2, [fp, #-84]
	cmp	r2, r3
	bge	.L2750
	ldr	r3, [fp, #-92]
	str	r3, [fp, #-84]
.L2750:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #20]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-80]
	cmp	r3, #0
	beq	.L2751
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L2773
.L2751:
	ldr	r3, .L2775+4
	ldr	r3, [r3]
	cmp	r3, #125
	beq	.L2774
	mov	r0, #44
	bl	skip
.L2748:
	ldr	r3, .L2775+4
	ldr	r3, [r3]
	cmp	r3, #125
	bne	.L2754
	b	.L2752
.L2773:
	nop
	b	.L2752
.L2774:
	nop
.L2752:
	ldr	r3, [fp, #4]
	cmp	r3, #0
	bne	.L2755
	ldr	r3, [fp, #-88]
	ldr	r2, [fp, #-84]
	cmp	r2, r3
	bge	.L2755
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-104]
	add	r1, r2, r3
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-84]
	sub	r3, r2, r3
	mov	r2, r1
	ldr	r1, [fp, #-100]
	ldr	r0, [fp, #-96]
	bl	init_putz
.L2755:
	ldr	r3, [fp, #-80]
	cmp	r3, #0
	bne	.L2757
	mov	r0, #125
	bl	skip
	b	.L2757
.L2758:
	mov	r0, #41
	bl	skip
	ldr	r3, [fp, #-52]
	sub	r3, r3, #1
	str	r3, [fp, #-52]
.L2757:
	ldr	r3, [fp, #-52]
	cmp	r3, #0
	bne	.L2758
	b	.L2768
.L2740:
	ldr	r3, .L2775+4
	ldr	r3, [r3]
	cmp	r3, #123
	bne	.L2759
	bl	next
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-108]
	ldr	r2, [fp, #-104]
	ldr	r1, [fp, #-100]
	ldr	r0, [fp, #-96]
	bl	decl_initializer
	mov	r0, #125
	bl	skip
	b	.L2772
.L2759:
	ldr	r3, [fp, #4]
	cmp	r3, #0
	beq	.L2760
	mov	r3, #0
	str	r3, [fp, #-72]
	b	.L2761
.L2765:
	ldr	r3, .L2775+4
	ldr	r3, [r3]
	cmp	r3, #40
	bne	.L2762
	ldr	r3, [fp, #-72]
	add	r3, r3, #1
	str	r3, [fp, #-72]
	b	.L2763
.L2762:
	ldr	r3, .L2775+4
	ldr	r3, [r3]
	cmp	r3, #41
	bne	.L2763
	ldr	r3, [fp, #-72]
	sub	r3, r3, #1
	str	r3, [fp, #-72]
.L2763:
	bl	next
.L2761:
	ldr	r3, [fp, #-72]
	cmp	r3, #0
	bgt	.L2764
	ldr	r3, .L2775+4
	ldr	r3, [r3]
	cmp	r3, #125
	beq	.L2772
	ldr	r3, .L2775+4
	ldr	r3, [r3]
	cmp	r3, #44
	beq	.L2772
.L2764:
	ldr	r3, .L2775+4
	ldr	r3, [r3]
	cmn	r3, #1
	bne	.L2765
	b	.L2772
.L2760:
	mov	r3, #1
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-100]
	cmp	r3, #0
	bne	.L2766
	mov	r3, #2
	str	r3, [fp, #-64]
.L2766:
	ldr	r3, [fp, #-64]
	str	r3, [sp]
	mov	r3, #0
	ldr	r2, [fp, #-104]
	ldr	r1, [fp, #-100]
	ldr	r0, [fp, #-96]
	bl	init_putv
	b	.L2772
.L2768:
.L2772:
	nop
	ldr	r3, .L2775
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2767
	bl	__stack_chk_fail
.L2767:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2776:
	.align	2
.L2775:
	.word	.LC206
	.word	tok
	.word	tokc
	.word	.LC203
	.word	.LC204
	.word	.LC205
	.size	decl_initializer, .-decl_initializer
	.section	.rodata
	.align	2
.LC207:
	.ascii	"unknown type size\000"
	.align	2
.LC208:
	.ascii	"unexpected end of file in initializer\000"
	.align	2
.LC209:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	decl_initializer_alloc, %function
decl_initializer_alloc:
	@ args = 8, pretend = 0, frame = 112
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #120
	str	r0, [fp, #-104]
	str	r1, [fp, #-108]
	str	r2, [fp, #-112]
	str	r3, [fp, #-116]
	ldr	r3, .L2817
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #100
	mov	r1, r3
	ldr	r0, [fp, #-104]
	bl	type_size
	str	r0, [fp, #-96]
	sub	r3, fp, #60
	mov	r0, r3
	bl	tok_str_new
	ldr	r3, [fp, #-96]
	cmp	r3, #0
	bge	.L2778
	ldr	r3, [fp, #-116]
	cmp	r3, #0
	bne	.L2779
	ldr	r0, .L2817+4
	bl	error
.L2779:
	ldr	r3, [fp, #-116]
	cmp	r3, #2
	bne	.L2780
	b	.L2781
.L2782:
	sub	r3, fp, #60
	mov	r0, r3
	bl	tok_str_add_tok
	bl	next
.L2781:
	ldr	r3, .L2817+8
	ldr	r3, [r3]
	cmp	r3, #181
	beq	.L2782
	ldr	r3, .L2817+8
	ldr	r3, [r3]
	cmp	r3, #184
	beq	.L2782
	b	.L2783
.L2780:
	mov	r3, #0
	str	r3, [fp, #-84]
	b	.L2784
.L2789:
	ldr	r3, .L2817+8
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L2785
	ldr	r0, .L2817+12
	bl	error
.L2785:
	sub	r3, fp, #60
	mov	r0, r3
	bl	tok_str_add_tok
	ldr	r3, .L2817+8
	ldr	r3, [r3]
	cmp	r3, #123
	bne	.L2786
	ldr	r3, [fp, #-84]
	add	r3, r3, #1
	str	r3, [fp, #-84]
	b	.L2787
.L2786:
	ldr	r3, .L2817+8
	ldr	r3, [r3]
	cmp	r3, #125
	bne	.L2787
	ldr	r3, [fp, #-84]
	cmp	r3, #0
	beq	.L2813
	ldr	r3, [fp, #-84]
	sub	r3, r3, #1
	str	r3, [fp, #-84]
.L2787:
	bl	next
.L2784:
	ldr	r3, [fp, #-84]
	cmp	r3, #0
	bgt	.L2789
	ldr	r3, .L2817+8
	ldr	r3, [r3]
	cmp	r3, #44
	beq	.L2783
	ldr	r3, .L2817+8
	ldr	r3, [r3]
	cmp	r3, #59
	bne	.L2789
	b	.L2783
.L2813:
	nop
.L2783:
	sub	r3, fp, #60
	mvn	r1, #0
	mov	r0, r3
	bl	tok_str_add
	sub	r3, fp, #60
	mov	r1, #0
	mov	r0, r3
	bl	tok_str_add
	sub	r3, fp, #36
	mov	r0, r3
	bl	save_parse_state
	ldr	r3, [fp, #-60]
	ldr	r2, .L2817+16
	str	r3, [r2]
	bl	next
	mov	r3, #1
	str	r3, [sp]
	mov	r3, #1
	mov	r2, #0
	mov	r1, #0
	ldr	r0, [fp, #-104]
	bl	decl_initializer
	ldr	r3, [fp, #-60]
	ldr	r2, .L2817+16
	str	r3, [r2]
	bl	next
	sub	r3, fp, #100
	mov	r1, r3
	ldr	r0, [fp, #-104]
	bl	type_size
	str	r0, [fp, #-96]
	ldr	r3, [fp, #-96]
	cmp	r3, #0
	bge	.L2778
	ldr	r0, .L2817+4
	bl	error
.L2778:
	ldr	r3, [fp, #-108]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2790
	ldr	r3, [fp, #-108]
	ldr	r2, [r3]
	ldr	r3, [fp, #-100]
	cmp	r2, r3
	ble	.L2791
	ldr	r3, [fp, #-108]
	ldr	r3, [r3]
	str	r3, [fp, #-100]
	b	.L2791
.L2790:
	ldr	r3, [fp, #-108]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L2791
	mov	r3, #1
	str	r3, [fp, #-100]
.L2791:
	ldr	r3, [fp, #-112]
	and	r3, r3, #255
	cmp	r3, #242
	bne	.L2792
	mov	r3, #0
	str	r3, [fp, #-80]
	ldr	r3, .L2817+20
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2793
	ldr	r3, [fp, #-104]
	ldr	r3, [r3]
	and	r3, r3, #32
	cmp	r3, #0
	beq	.L2793
	ldr	r3, .L2817+24
	ldr	r3, [r3]
	sub	r3, r3, #1
	ldr	r2, .L2817+24
	str	r3, [r2]
.L2793:
	ldr	r3, .L2817+24
	ldr	r2, [r3]
	ldr	r3, [fp, #-96]
	sub	r2, r2, r3
	ldr	r3, [fp, #-100]
	rsb	r3, r3, #0
	and	r3, r3, r2
	ldr	r2, .L2817+24
	str	r3, [r2]
	ldr	r3, .L2817+24
	ldr	r3, [r3]
	str	r3, [fp, #-92]
	ldr	r3, .L2817+20
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2794
	ldr	r3, [fp, #-104]
	ldr	r3, [r3]
	and	r3, r3, #32
	cmp	r3, #0
	beq	.L2794
	ldr	r3, .L2817+24
	ldr	r3, [r3]
	sub	r3, r3, #1
	ldr	r2, .L2817+24
	str	r3, [r2]
	ldr	r3, .L2817+28
	ldr	r3, [r3]
	mov	r1, #8
	mov	r0, r3
	bl	section_ptr_add
	str	r0, [fp, #-64]
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-64]
	str	r2, [r3]
	ldr	r3, [fp, #-64]
	add	r3, r3, #4
	ldr	r2, [fp, #-96]
	str	r2, [r3]
.L2794:
	ldr	r3, [fp, #4]
	cmp	r3, #0
	beq	.L2795
	ldr	r3, [fp, #-92]
	ldr	r2, [fp, #-112]
	ldr	r1, [fp, #-104]
	ldr	r0, [fp, #4]
	bl	sym_push
	b	.L2796
.L2795:
	ldr	r2, [fp, #-92]
	ldr	r1, [fp, #-112]
	ldr	r0, [fp, #-104]
	bl	vset
	b	.L2796
.L2792:
	mov	r3, #0
	str	r3, [fp, #-76]
	ldr	r3, [fp, #4]
	cmp	r3, #0
	beq	.L2797
	ldr	r3, [fp, #8]
	cmp	r3, #240
	bne	.L2797
	ldr	r0, [fp, #4]
	bl	sym_find
	str	r0, [fp, #-76]
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	beq	.L2797
	ldr	r3, [fp, #-76]
	add	r3, r3, #12
	ldr	r1, [fp, #-104]
	mov	r0, r3
	bl	is_compatible_types
	mov	r3, r0
	cmp	r3, #0
	bne	.L2798
	mov	r1, #0
	ldr	r0, [fp, #4]
	bl	get_tok_str
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L2817+32
	bl	error
.L2798:
	ldr	r3, [fp, #-76]
	ldr	r3, [r3, #12]
	and	r3, r3, #128
	cmp	r3, #0
	beq	.L2799
	ldr	r3, [fp, #-76]
	ldr	r3, [r3, #12]
	bic	r2, r3, #128
	ldr	r3, [fp, #-76]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-76]
	ldr	r3, [r3, #12]
	and	r3, r3, #32
	cmp	r3, #0
	beq	.L2797
	ldr	r3, [fp, #-76]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	bge	.L2797
	ldr	r3, [fp, #-104]
	ldr	r3, [r3, #4]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	blt	.L2797
	ldr	r3, [fp, #-104]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-76]
	ldr	r3, [r3, #16]
	ldr	r2, [r2, #8]
	str	r2, [r3, #8]
	b	.L2797
.L2799:
	ldr	r3, [fp, #-116]
	cmp	r3, #0
	beq	.L2814
.L2797:
	ldr	r3, [fp, #-108]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-80]
	cmp	r3, #0
	bne	.L2801
	ldr	r3, [fp, #-116]
	cmp	r3, #0
	beq	.L2802
	ldr	r3, .L2817+36
	ldr	r3, [r3]
	str	r3, [fp, #-80]
	b	.L2801
.L2802:
	ldr	r3, .L2817+40
	ldr	r3, [r3]
	ldr	r3, [r3, #96]
	cmp	r3, #0
	beq	.L2801
	ldr	r3, .L2817+44
	ldr	r3, [r3]
	str	r3, [fp, #-80]
.L2801:
	ldr	r3, [fp, #-80]
	cmp	r3, #0
	beq	.L2803
	ldr	r3, [fp, #-80]
	ldr	r3, [r3]
	str	r3, [fp, #-88]
	ldr	r2, [fp, #-100]
	ldr	r3, [fp, #-88]
	add	r3, r2, r3
	sub	r2, r3, #1
	ldr	r3, [fp, #-100]
	rsb	r3, r3, #0
	and	r3, r3, r2
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	str	r3, [fp, #-92]
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-96]
	add	r3, r2, r3
	str	r3, [fp, #-88]
	ldr	r3, .L2817+20
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2804
	ldr	r3, [fp, #-88]
	add	r3, r3, #1
	str	r3, [fp, #-88]
.L2804:
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-80]
	str	r2, [r3]
	ldr	r3, [fp, #-80]
	ldr	r3, [r3, #20]
	cmp	r3, #8
	beq	.L2805
	ldr	r3, [fp, #-80]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-88]
	cmp	r2, r3
	bcs	.L2805
	ldr	r3, [fp, #-88]
	mov	r1, r3
	ldr	r0, [fp, #-80]
	bl	section_realloc
.L2805:
	ldr	r3, [fp, #-80]
	ldr	r2, [r3, #32]
	ldr	r3, [fp, #-100]
	cmp	r2, r3
	bge	.L2806
	ldr	r2, [fp, #-100]
	ldr	r3, [fp, #-80]
	str	r2, [r3, #32]
	b	.L2806
.L2803:
	mov	r3, #0
	str	r3, [fp, #-92]
.L2806:
	ldr	r3, [fp, #4]
	cmp	r3, #0
	beq	.L2807
	ldr	r3, [fp, #8]
	cmp	r3, #240
	bne	.L2815
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	bne	.L2809
	b	.L2808
.L2815:
	nop
.L2808:
	ldr	r3, [fp, #-112]
	orr	r2, r3, #512
	mov	r3, #0
	ldr	r1, [fp, #-104]
	ldr	r0, [fp, #4]
	bl	sym_push
	str	r0, [fp, #-76]
.L2809:
	ldr	r3, [fp, #-80]
	cmp	r3, #0
	beq	.L2810
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-96]
	ldr	r1, [fp, #-80]
	ldr	r0, [fp, #-76]
	bl	put_extern_sym
	b	.L2811
.L2810:
	ldr	r3, [fp, #-100]
	mov	r2, r3
	ldr	r3, [fp, #-96]
	mov	r1, #0
	ldr	r0, [fp, #-76]
	bl	put_extern_sym
	ldr	r3, .L2817+48
	ldr	r3, [r3]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-76]
	ldr	r3, [r3, #8]
	lsl	r3, r3, #4
	add	r3, r2, r3
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	mvn	r2, #13
	strh	r2, [r3, #14]	@ movhi
	b	.L2811
.L2807:
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-96]
	ldr	r1, [fp, #-80]
	ldr	r0, [fp, #-104]
	bl	get_sym_ref
	str	r0, [fp, #-76]
	mov	r3, #0
	str	r3, [fp, #-44]
	sub	r3, fp, #44
	mov	r2, r3
	mov	r1, #752
	ldr	r0, [fp, #-104]
	bl	vsetc
	ldr	r3, .L2817+52
	ldr	r3, [r3]
	ldr	r2, [fp, #-76]
	str	r2, [r3, #24]
.L2811:
	ldr	r3, .L2817+20
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2796
	ldr	r3, .L2817+56
	ldr	r0, [r3]
	ldr	r3, .L2817+56
	ldr	r3, [r3]
	ldr	r2, [r3]
	mov	r3, #1
	ldr	r1, [fp, #-76]
	bl	greloc
	ldr	r3, .L2817+56
	ldr	r3, [r3]
	mov	r1, #8
	mov	r0, r3
	bl	section_ptr_add
	str	r0, [fp, #-68]
	ldr	r3, [fp, #-68]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-68]
	add	r3, r3, #4
	ldr	r2, [fp, #-96]
	str	r2, [r3]
.L2796:
	ldr	r3, [fp, #-116]
	cmp	r3, #0
	beq	.L2816
	ldr	r2, [fp, #-92]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #1
	ldr	r1, [fp, #-80]
	ldr	r0, [fp, #-104]
	bl	decl_initializer
	ldr	r3, [fp, #-60]
	cmp	r3, #0
	beq	.L2816
	ldr	r3, [fp, #-60]
	mov	r0, r3
	bl	tok_str_free
	sub	r3, fp, #36
	mov	r0, r3
	bl	restore_parse_state
	b	.L2800
.L2814:
	nop
	b	.L2800
.L2816:
	nop
.L2800:
	nop
	ldr	r3, .L2817
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2812
	bl	__stack_chk_fail
.L2812:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2818:
	.align	2
.L2817:
	.word	.LC209
	.word	.LC207
	.word	tok
	.word	.LC208
	.word	macro_ptr
	.word	do_bounds_check
	.word	loc
	.word	lbounds_section
	.word	.LC93
	.word	data_section
	.word	tcc_state
	.word	bss_section
	.word	symtab_section
	.word	vtop
	.word	bounds_section
	.size	decl_initializer_alloc, .-decl_initializer_alloc
	.section	.rodata
	.align	2
.LC210:
	.ascii	"%s:%c1\000"
	.align	2
.LC211:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	put_func_debug
	.syntax unified
	.arm
	.fpu softvfp
	.type	put_func_debug, %function
put_func_debug:
	@ args = 0, pretend = 0, frame = 528
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #544
	str	r0, [fp, #-528]
	ldr	r3, .L2823
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L2823+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-528]
	ldr	r3, [r3, #12]
	and	r3, r3, #256
	cmp	r3, #0
	beq	.L2820
	mov	r3, #102
	b	.L2821
.L2820:
	mov	r3, #70
.L2821:
	sub	r0, fp, #520
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, .L2823+8
	mov	r1, #512
	bl	snprintf
	ldr	r3, .L2823+12
	ldr	r3, [r3]
	ldr	r1, [r3, #12]
	ldr	r3, .L2823+16
	ldr	r3, [r3]
	ldr	r2, [fp, #-528]
	ldr	r2, [r2, #8]
	sub	r0, fp, #520
	str	r2, [sp, #8]
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, r1
	mov	r2, #0
	mov	r1, #36
	bl	put_stabs_r
	ldr	r3, .L2823+20
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L2823+24
	mov	r2, #0
	str	r2, [r3]
	nop
	ldr	r3, .L2823
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2822
	bl	__stack_chk_fail
.L2822:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2824:
	.align	2
.L2823:
	.word	.LC211
	.word	funcname
	.word	.LC210
	.word	file
	.word	cur_text_section
	.word	last_ind
	.word	last_line_num
	.size	put_func_debug, .-put_func_debug
	.section	.rodata
	.align	2
.LC212:
	.ascii	"declaration list\000"
	.align	2
.LC213:
	.ascii	"declaration for parameter '%s' but no such paramete"
	.ascii	"r\000"
	.align	2
.LC214:
	.ascii	"storage class specified for '%s'\000"
	.align	2
.LC215:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	func_decl_list, %function
func_decl_list:
	@ args = 0, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #56
	str	r0, [fp, #-56]
	ldr	r3, .L2845
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	b	.L2826
.L2840:
	sub	r2, fp, #24
	sub	r3, fp, #40
	mov	r1, r2
	mov	r0, r3
	bl	parse_btype
	mov	r3, r0
	cmp	r3, #0
	bne	.L2827
	ldr	r0, .L2845+4
	bl	expect
.L2827:
	ldr	r3, [fp, #-40]
	and	r3, r3, #15
	cmp	r3, #5
	beq	.L2828
	ldr	r3, [fp, #-40]
	and	r3, r3, #15
	cmp	r3, #7
	bne	.L2838
.L2828:
	ldr	r3, .L2845+8
	ldr	r3, [r3]
	cmp	r3, #59
	beq	.L2830
.L2838:
	sub	r3, fp, #32
	sub	r2, fp, #40
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	sub	r2, fp, #48
	sub	r1, fp, #24
	sub	r0, fp, #32
	mov	r3, #2
	bl	type_decl
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #20]
	str	r3, [fp, #-44]
	b	.L2831
.L2834:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	bic	r2, r3, #536870912
	ldr	r3, [fp, #-48]
	cmp	r2, r3
	beq	.L2842
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #20]
	str	r3, [fp, #-44]
.L2831:
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	bne	.L2834
	ldr	r3, [fp, #-48]
	mov	r1, #0
	mov	r0, r3
	bl	get_tok_str
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L2845+12
	bl	error
	b	.L2833
.L2842:
	nop
.L2833:
	ldr	r3, [fp, #-32]
	and	r3, r3, #1920
	cmp	r3, #0
	beq	.L2835
	ldr	r3, [fp, #-48]
	mov	r1, #0
	mov	r0, r3
	bl	get_tok_str
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L2845+16
	bl	error
.L2835:
	sub	r3, fp, #32
	mov	r0, r3
	bl	convert_parameter_type
	ldr	r3, [fp, #-44]
	add	r3, r3, #12
	sub	r2, fp, #32
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	ldr	r3, .L2845+8
	ldr	r3, [r3]
	cmp	r3, #44
	bne	.L2843
	bl	next
	b	.L2838
.L2843:
	nop
.L2830:
	mov	r0, #59
	bl	skip
.L2826:
	ldr	r3, .L2845+8
	ldr	r3, [r3]
	cmp	r3, #123
	beq	.L2844
	ldr	r3, .L2845+8
	ldr	r3, [r3]
	cmp	r3, #59
	beq	.L2844
	ldr	r3, .L2845+8
	ldr	r3, [r3]
	cmp	r3, #44
	beq	.L2844
	ldr	r3, .L2845+8
	ldr	r3, [r3]
	cmn	r3, #1
	bne	.L2840
.L2844:
	nop
	ldr	r3, .L2845
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2841
	bl	__stack_chk_fail
.L2841:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2846:
	.align	2
.L2845:
	.word	.LC215
	.word	.LC212
	.word	tok
	.word	.LC213
	.word	.LC214
	.size	func_decl_list, .-func_decl_list
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	gen_function, %function
gen_function:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-8]
	ldr	r3, .L2850
	ldr	r3, [r3]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, .L2850+4
	str	r2, [r3]
	ldr	r3, .L2850
	ldr	r1, [r3]
	ldr	r3, .L2850+4
	ldr	r3, [r3]
	mov	r2, r3
	mov	r3, #0
	ldr	r0, [fp, #-8]
	bl	put_extern_sym
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r1, #0
	mov	r0, r3
	bl	get_tok_str
	mov	r3, r0
	ldr	r2, .L2850+8
	str	r3, [r2]
	ldr	r3, .L2850+4
	ldr	r3, [r3]
	ldr	r2, .L2850+12
	str	r3, [r2]
	ldr	r3, .L2850+16
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2848
	ldr	r0, [fp, #-8]
	bl	put_func_debug
.L2848:
	mov	r3, #0
	mov	r2, #0
	mov	r1, #536870912
	ldr	r0, .L2850+20
	bl	sym_push2
	ldr	r3, [fp, #-8]
	add	r3, r3, #12
	mov	r0, r3
	bl	gfunc_prolog
	ldr	r3, .L2850+24
	mov	r2, #0
	str	r2, [r3]
	mov	r3, #0
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #0
	mov	r1, #0
	mov	r0, #0
	bl	block
	ldr	r3, .L2850+24
	ldr	r3, [r3]
	mov	r0, r3
	bl	gsym
	bl	gfunc_epilog
	ldr	r3, .L2850+4
	ldr	r2, [r3]
	ldr	r3, .L2850
	ldr	r3, [r3]
	str	r2, [r3]
	mov	r1, #0
	ldr	r0, .L2850+28
	bl	label_pop
	mov	r1, #0
	ldr	r0, .L2850+20
	bl	sym_pop
	ldr	r3, .L2850+4
	ldr	r2, [r3]
	ldr	r3, .L2850+12
	ldr	r3, [r3]
	sub	r1, r2, r3
	ldr	r3, .L2850+32
	ldr	r3, [r3]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	lsl	r3, r3, #4
	add	r3, r2, r3
	mov	r2, r1
	str	r2, [r3, #8]
	ldr	r3, .L2850+16
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2849
	ldr	r3, .L2850+4
	ldr	r2, [r3]
	ldr	r3, .L2850+12
	ldr	r3, [r3]
	sub	r3, r2, r3
	mov	r2, #0
	mov	r1, #0
	mov	r0, #36
	bl	put_stabn
.L2849:
	ldr	r3, .L2850+8
	ldr	r2, .L2850+36
	str	r2, [r3]
	ldr	r3, .L2850+40
	mov	r2, #3
	str	r2, [r3]
	ldr	r3, .L2850+4
	mov	r2, #0
	str	r2, [r3]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2851:
	.align	2
.L2850:
	.word	cur_text_section
	.word	ind
	.word	funcname
	.word	func_ind
	.word	do_debug
	.word	local_stack
	.word	rsym
	.word	global_label_stack
	.word	symtab_section
	.word	.LC52
	.word	func_vt
	.size	gen_function, .-gen_function
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	gen_inline_functions, %function
gen_inline_functions:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
.L2858:
	mov	r3, #0
	str	r3, [fp, #-16]
	ldr	r3, .L2864
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	b	.L2853
.L2855:
	ldr	r3, [fp, #-20]
	add	r3, r3, #12
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #6
	bne	.L2854
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	and	r3, r3, #1280
	cmp	r3, #1280
	bne	.L2854
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	beq	.L2854
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-20]
	mov	r2, #752
	str	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	bic	r2, r3, #1024
	ldr	r3, [fp, #-12]
	str	r2, [r3]
	ldr	r2, .L2864+4
	ldr	r3, [fp, #-8]
	str	r3, [r2]
	bl	next
	ldr	r3, .L2864+8
	ldr	r3, [r3]
	ldr	r2, .L2864+12
	str	r3, [r2]
	ldr	r0, [fp, #-20]
	bl	gen_function
	ldr	r3, .L2864+4
	mov	r2, #0
	str	r2, [r3]
	ldr	r0, [fp, #-8]
	bl	tok_str_free
	mov	r3, #1
	str	r3, [fp, #-16]
.L2854:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #24]
	str	r3, [fp, #-20]
.L2853:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L2855
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L2863
	b	.L2858
.L2863:
	nop
	ldr	r3, .L2864
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	b	.L2859
.L2861:
	ldr	r3, [fp, #-20]
	add	r3, r3, #12
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #6
	bne	.L2860
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	and	r3, r3, #1280
	cmp	r3, #1280
	bne	.L2860
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	tok_str_free
	ldr	r3, [fp, #-20]
	mov	r2, #0
	str	r2, [r3, #4]
.L2860:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #24]
	str	r3, [fp, #-20]
.L2859:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L2861
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2865:
	.align	2
.L2864:
	.word	global_stack
	.word	macro_ptr
	.word	text_section
	.word	cur_text_section
	.size	gen_inline_functions, .-gen_inline_functions
	.section	.rodata
	.align	2
.LC216:
	.ascii	"cannot use local functions\000"
	.align	2
.LC217:
	.ascii	"function definition\000"
	.align	2
.LC218:
	.ascii	"unexpected end of file\000"
	.align	2
.LC219:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	decl, %function
decl:
	@ args = 0, pretend = 0, frame = 88
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #96
	str	r0, [fp, #-88]
	ldr	r3, .L2914
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
.L2908:
	sub	r2, fp, #40
	sub	r3, fp, #48
	mov	r1, r2
	mov	r0, r3
	bl	parse_btype
	mov	r3, r0
	cmp	r3, #0
	bne	.L2867
	ldr	r3, .L2914+4
	ldr	r3, [r3]
	cmp	r3, #59
	bne	.L2868
	bl	next
	b	.L2869
.L2868:
	ldr	r3, [fp, #-88]
	cmp	r3, #240
	bne	.L2870
	ldr	r3, .L2914+4
	ldr	r3, [r3]
	ldr	r2, .L2914+8
	cmp	r3, r2
	beq	.L2871
	ldr	r3, .L2914+4
	ldr	r3, [r3]
	ldr	r2, .L2914+12
	cmp	r3, r2
	beq	.L2871
	ldr	r3, .L2914+4
	ldr	r3, [r3]
	cmp	r3, #312
	bne	.L2870
.L2871:
	bl	asm_global_instr
	b	.L2869
.L2870:
	ldr	r3, [fp, #-88]
	cmp	r3, #242
	beq	.L2911
	ldr	r3, .L2914+4
	ldr	r3, [r3]
	cmp	r3, #312
	ble	.L2911
	mov	r3, #0
	str	r3, [fp, #-48]
.L2867:
	ldr	r3, [fp, #-48]
	and	r3, r3, #15
	cmp	r3, #5
	beq	.L2873
	ldr	r3, [fp, #-48]
	and	r3, r3, #15
	cmp	r3, #7
	bne	.L2907
.L2873:
	ldr	r3, .L2914+4
	ldr	r3, [r3]
	cmp	r3, #59
	bne	.L2907
	bl	next
	b	.L2869
.L2907:
	sub	r3, fp, #56
	sub	r2, fp, #48
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	sub	r2, fp, #80
	sub	r1, fp, #40
	sub	r0, fp, #56
	mov	r3, #2
	bl	type_decl
	ldr	r3, [fp, #-56]
	and	r3, r3, #15
	cmp	r3, #6
	bne	.L2875
	ldr	r3, [fp, #-52]
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #8]
	cmp	r3, #2
	bne	.L2875
	ldr	r0, [fp, #-72]
	bl	func_decl_list
.L2875:
	ldr	r3, .L2914+4
	ldr	r3, [r3]
	cmp	r3, #123
	bne	.L2876
	ldr	r3, [fp, #-88]
	cmp	r3, #242
	bne	.L2877
	ldr	r0, .L2914+16
	bl	error
.L2877:
	ldr	r3, [fp, #-56]
	and	r3, r3, #6
	cmp	r3, #0
	bne	.L2878
	ldr	r0, .L2914+20
	bl	expect
.L2878:
	ldr	r3, [fp, #-52]
	str	r3, [fp, #-72]
	b	.L2879
.L2880:
	ldr	r3, [fp, #-72]
	ldr	r3, [r3]
	bic	r3, r3, #536870912
	cmp	r3, #0
	bne	.L2879
	ldr	r0, .L2914+24
	bl	expect
.L2879:
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #20]
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	cmp	r3, #0
	bne	.L2880
	ldr	r3, [fp, #-56]
	and	r3, r3, #1152
	cmp	r3, #1152
	bne	.L2881
	ldr	r3, [fp, #-56]
	bic	r3, r3, #384
	orr	r3, r3, #256
	str	r3, [fp, #-56]
.L2881:
	ldr	r3, [fp, #-80]
	mov	r0, r3
	bl	sym_find
	str	r0, [fp, #-72]
	ldr	r3, [fp, #-72]
	cmp	r3, #0
	beq	.L2882
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #12]
	and	r3, r3, #15
	cmp	r3, #6
	bne	.L2912
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #16]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L2885
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L2885
	ldr	r3, [fp, #-72]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-52]
	ldr	r2, [r2, #4]
	str	r2, [r3, #4]
.L2885:
	ldr	r3, [fp, #-72]
	add	r3, r3, #12
	sub	r2, fp, #56
	mov	r1, r2
	mov	r0, r3
	bl	is_compatible_types
	mov	r3, r0
	cmp	r3, #0
	bne	.L2886
	b	.L2884
.L2912:
	nop
.L2884:
	ldr	r3, [fp, #-80]
	mov	r1, #0
	mov	r0, r3
	bl	get_tok_str
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L2914+28
	bl	error
.L2886:
	ldr	r3, [fp, #-72]
	add	r3, r3, #12
	sub	r2, fp, #56
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	b	.L2887
.L2882:
	ldr	r3, [fp, #-80]
	ldr	r1, [fp, #-56]
	mov	r2, #0
	mov	r0, r3
	bl	global_identifier_push
	str	r0, [fp, #-72]
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-72]
	str	r2, [r3, #16]
.L2887:
	ldr	r3, [fp, #-56]
	and	r3, r3, #1280
	cmp	r3, #1280
	bne	.L2888
	sub	r3, fp, #24
	mov	r0, r3
	bl	tok_str_new
	mov	r3, #0
	str	r3, [fp, #-68]
.L2893:
	ldr	r3, .L2914+4
	ldr	r3, [r3]
	cmn	r3, #1
	bne	.L2889
	ldr	r0, .L2914+32
	bl	error
.L2889:
	sub	r3, fp, #24
	mov	r0, r3
	bl	tok_str_add_tok
	ldr	r3, .L2914+4
	ldr	r3, [r3]
	str	r3, [fp, #-60]
	bl	next
	ldr	r3, [fp, #-60]
	cmp	r3, #123
	bne	.L2890
	ldr	r3, [fp, #-68]
	add	r3, r3, #1
	str	r3, [fp, #-68]
	b	.L2893
.L2890:
	ldr	r3, [fp, #-60]
	cmp	r3, #125
	bne	.L2893
	ldr	r3, [fp, #-68]
	sub	r3, r3, #1
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	cmp	r3, #0
	beq	.L2913
	b	.L2893
.L2913:
	nop
	sub	r3, fp, #24
	mvn	r1, #0
	mov	r0, r3
	bl	tok_str_add
	sub	r3, fp, #24
	mov	r1, #0
	mov	r0, r3
	bl	tok_str_add
	ldr	r3, [fp, #-24]
	mov	r2, r3
	ldr	r3, [fp, #-72]
	str	r2, [r3, #4]
	b	.L2869
.L2888:
	ldr	r3, [fp, #-32]
	ldr	r2, .L2914+36
	str	r3, [r2]
	ldr	r3, .L2914+36
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L2895
	ldr	r3, .L2914+40
	ldr	r3, [r3]
	ldr	r2, .L2914+36
	str	r3, [r2]
.L2895:
	ldr	r3, [fp, #-72]
	mov	r2, #752
	str	r2, [r3, #4]
	ldr	r0, [fp, #-72]
	bl	gen_function
	b	.L2869
.L2876:
	ldr	r3, [fp, #-48]
	and	r3, r3, #512
	cmp	r3, #0
	beq	.L2896
	ldr	r0, [fp, #-80]
	sub	r1, fp, #56
	mov	r3, #0
	mov	r2, #0
	bl	sym_push
	str	r0, [fp, #-72]
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #12]
	orr	r2, r3, #512
	ldr	r3, [fp, #-72]
	str	r2, [r3, #12]
	b	.L2897
.L2896:
	ldr	r3, [fp, #-56]
	and	r3, r3, #15
	cmp	r3, #6
	bne	.L2898
	ldrb	r3, [fp, #-28]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L2899
	ldrb	r2, [fp, #-28]	@ zero_extendqisi2
	ldr	r3, [fp, #-52]
	str	r2, [r3, #4]
.L2899:
	ldr	r3, [fp, #-80]
	sub	r1, fp, #56
	mov	r2, #0
	mov	r0, r3
	bl	external_sym
	b	.L2897
.L2898:
	mov	r3, #0
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-56]
	and	r3, r3, #32
	cmp	r3, #0
	bne	.L2900
	ldr	r3, [fp, #-56]
	mov	r0, r3
	bl	lvalue_type
	mov	r2, r0
	ldr	r3, [fp, #-76]
	orr	r3, r3, r2
	str	r3, [fp, #-76]
.L2900:
	ldr	r3, .L2914+4
	ldr	r3, [r3]
	cmp	r3, #61
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-48]
	and	r3, r3, #128
	cmp	r3, #0
	bne	.L2901
	ldr	r3, [fp, #-56]
	and	r3, r3, #32
	cmp	r3, #0
	beq	.L2902
	ldr	r3, [fp, #-56]
	and	r3, r3, #256
	cmp	r3, #0
	beq	.L2902
	ldr	r3, [fp, #-64]
	cmp	r3, #0
	bne	.L2902
	ldr	r3, [fp, #-88]
	cmp	r3, #240
	bne	.L2902
	ldr	r3, [fp, #-52]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	bge	.L2902
.L2901:
	ldr	r3, [fp, #-80]
	sub	r1, fp, #56
	ldr	r2, [fp, #-76]
	mov	r0, r3
	bl	external_sym
	b	.L2897
.L2902:
	ldr	r3, [fp, #-56]
	and	r3, r3, #256
	cmp	r3, #0
	beq	.L2903
	ldr	r3, [fp, #-76]
	orr	r3, r3, #240
	str	r3, [fp, #-76]
	b	.L2904
.L2903:
	ldr	r2, [fp, #-76]
	ldr	r3, [fp, #-88]
	orr	r3, r2, r3
	str	r3, [fp, #-76]
.L2904:
	ldr	r3, [fp, #-64]
	cmp	r3, #0
	beq	.L2905
	bl	next
.L2905:
	ldr	r3, [fp, #-80]
	sub	r1, fp, #40
	sub	r0, fp, #56
	ldr	r2, [fp, #-88]
	str	r2, [sp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-64]
	ldr	r2, [fp, #-76]
	bl	decl_initializer_alloc
.L2897:
	ldr	r3, .L2914+4
	ldr	r3, [r3]
	cmp	r3, #44
	beq	.L2906
	mov	r0, #59
	bl	skip
	b	.L2869
.L2906:
	bl	next
	b	.L2907
.L2869:
	b	.L2908
.L2911:
	nop
	ldr	r3, .L2914
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2909
	bl	__stack_chk_fail
.L2909:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2915:
	.align	2
.L2914:
	.word	.LC219
	.word	tok
	.word	310
	.word	311
	.word	.LC216
	.word	.LC217
	.word	.LC151
	.word	.LC93
	.word	.LC218
	.word	cur_text_section
	.word	text_section
	.size	decl, .-decl
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	preprocess_init, %function
preprocess_init:
	@ 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]
	add	r2, r3, #568
	ldr	r3, [fp, #-8]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	add	r2, r3, #696
	ldr	r3, [fp, #-8]
	str	r2, [r3, #8]
	ldr	r3, .L2917
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	ldr	r2, [r2, #8]
	str	r2, [r3, #24]
	ldr	r2, .L2917+4
	ldr	r3, .L2917+8
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #3000]
	ldr	r3, [fp, #-8]
	add	r3, r3, #2992
	add	r3, r3, #8
	ldr	r2, [fp, #-8]
	str	r3, [r2, #3032]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L2918:
	.align	2
.L2917:
	.word	file
	.word	vstack-32
	.word	vtop
	.size	preprocess_init, .-preprocess_init
	.section	.rodata
	.align	2
.LC220:
	.ascii	"declaration\000"
	.align	2
.LC221:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_compile, %function
tcc_compile:
	@ args = 0, pretend = 0, frame = 536
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #552
	str	r0, [fp, #-536]
	ldr	r3, .L2928
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r0, [fp, #-536]
	bl	preprocess_init
	ldr	r3, .L2928+4
	ldr	r2, .L2928+8
	str	r2, [r3]
	ldr	r3, .L2928+12
	mov	r2, #268435456
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-528]
	ldr	r3, .L2928+16
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2920
	ldr	r3, .L2928+20
	ldr	r0, [r3]
	ldr	r3, .L2928+24
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	mov	r2, #0
	str	r2, [sp, #8]
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #3
	mov	r2, #0
	mov	r1, #0
	bl	put_elf_sym
	mov	r3, r0
	str	r3, [fp, #-528]
	sub	r3, fp, #520
	mov	r1, #512
	mov	r0, r3
	bl	getcwd
	mov	r3, r0
	ldr	r2, .L2928+28
	str	r3, [r2]
	sub	r3, fp, #520
	ldr	r2, .L2928+32
	mov	r1, #512
	mov	r0, r3
	bl	pstrcat
	ldr	r3, .L2928+24
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r2, .L2928+24
	ldr	r2, [r2]
	ldr	r1, [fp, #-528]
	sub	r0, fp, #520
	str	r1, [sp, #8]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #0
	mov	r1, #100
	bl	put_stabs_r
	ldr	r3, .L2928+36
	ldr	r3, [r3]
	add	r0, r3, #540
	add	r0, r0, #1
	ldr	r3, .L2928+24
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r2, .L2928+24
	ldr	r2, [r2]
	ldr	r1, [fp, #-528]
	str	r1, [sp, #8]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #0
	mov	r1, #100
	bl	put_stabs_r
.L2920:
	ldr	r3, .L2928+20
	ldr	r0, [r3]
	ldr	r3, .L2928+36
	ldr	r3, [r3]
	add	r3, r3, #540
	add	r3, r3, #1
	str	r3, [sp, #8]
	ldr	r3, .L2928+40
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #4
	mov	r2, #0
	mov	r1, #0
	bl	put_elf_sym
	ldr	r3, .L2928+44
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L2928+48
	mov	r2, #1
	str	r2, [r3]
	ldr	r0, .L2928+48
	bl	mk_pointer
	ldr	r3, .L2928+52
	mov	r2, #6
	str	r2, [r3]
	mov	r3, #2
	mov	r2, #0
	ldr	r1, .L2928+44
	mov	r0, #536870912
	bl	sym_push
	mov	r3, r0
	ldr	r2, .L2928+52
	str	r3, [r2, #4]
	ldr	r3, .L2928+56
	ldr	r3, [r3]
	str	r3, [fp, #-524]
	ldr	r3, [fp, #-536]
	add	r3, r3, #168
	mov	r0, r3
	bl	_setjmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L2922
	ldr	r3, [fp, #-536]
	mov	r2, #0
	str	r2, [r3, #560]
	ldr	r3, [fp, #-536]
	mov	r2, #1
	str	r2, [r3, #160]
	ldr	r3, .L2928+36
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L2928+60
	str	r2, [r3]
	ldr	r3, .L2928+64
	mov	r2, #3
	str	r2, [r3]
	ldr	r3, .L2928+68
	mov	r2, #3
	str	r2, [r3]
	bl	next
	mov	r0, #240
	bl	decl
	ldr	r3, .L2928+72
	ldr	r3, [r3]
	cmn	r3, #1
	beq	.L2923
	ldr	r0, .L2928+76
	bl	expect
.L2923:
	ldr	r3, .L2928+16
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L2922
	ldr	r3, .L2928+24
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r2, .L2928+24
	ldr	r2, [r2]
	ldr	r1, [fp, #-528]
	str	r1, [sp, #8]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #0
	mov	r1, #100
	mov	r0, #0
	bl	put_stabs_r
.L2922:
	ldr	r3, [fp, #-536]
	mov	r2, #0
	str	r2, [r3, #160]
	ldr	r0, [fp, #-524]
	bl	free_defines
	bl	gen_inline_functions
	mov	r1, #0
	ldr	r0, .L2928+80
	bl	sym_pop
	ldr	r3, [fp, #-536]
	ldr	r3, [r3, #560]
	cmp	r3, #0
	beq	.L2924
	mvn	r3, #0
	b	.L2926
.L2924:
	mov	r3, #0
.L2926:
	ldr	r2, .L2928
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L2927
	bl	__stack_chk_fail
.L2927:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2929:
	.align	2
.L2928:
	.word	.LC221
	.word	funcname
	.word	.LC52
	.word	anon_sym
	.word	do_debug
	.word	symtab_section
	.word	text_section
	.word	dummy_char_star
	.word	.LC49
	.word	file
	.word	65521
	.word	int_type
	.word	char_pointer_type
	.word	func_old_type
	.word	define_stack
	.word	ch
	.word	tok_flags
	.word	parse_flags
	.word	tok
	.word	.LC220
	.word	global_stack
	.size	tcc_compile, .-tcc_compile
	.section	.rodata
	.align	2
.LC222:
	.ascii	"1\000"
	.align	2
.LC223:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	tcc_define_symbol
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_define_symbol, %function
tcc_define_symbol:
	@ args = 0, pretend = 0, frame = 9784
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #9728
	sub	sp, sp, #60
	sub	r3, fp, #8192
	sub	r3, r3, #12
	str	r0, [r3, #-1580]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	str	r1, [r3, #-1584]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	str	r2, [r3, #-1588]
	ldr	r3, .L2933
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	sub	r3, fp, #9728
	sub	r3, r3, #12
	sub	r3, r3, #36
	str	r3, [r2, #-1576]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-1576]
	add	r3, r3, #1552
	add	r3, r3, #13
	sub	r2, fp, #8192
	sub	r2, r2, #12
	ldr	r2, [r2, #-1584]
	mov	r1, #8192
	mov	r0, r3
	bl	pstrcpy
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-1576]
	add	r3, r3, #1552
	add	r3, r3, #13
	ldr	r2, .L2933+4
	mov	r1, #8192
	mov	r0, r3
	bl	pstrcat
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-1588]
	cmp	r3, #0
	bne	.L2931
	sub	r3, fp, #8192
	sub	r3, r3, #12
	mov	r2, r3
	ldr	r3, .L2933+8
	str	r3, [r2, #-1588]
.L2931:
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-1576]
	add	r3, r3, #1552
	add	r3, r3, #13
	sub	r2, fp, #8192
	sub	r2, r2, #12
	ldr	r2, [r2, #-1588]
	mov	r1, #8192
	mov	r0, r3
	bl	pstrcat
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-1576]
	mvn	r2, #0
	str	r2, [r3, #8]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-1576]
	add	r3, r3, #1552
	add	r3, r3, #13
	sub	r2, fp, #8192
	sub	r2, r2, #12
	ldr	r2, [r2, #-1576]
	str	r3, [r2]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-1576]
	add	r4, r3, #1552
	add	r4, r4, #13
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-1576]
	add	r3, r3, #1552
	add	r3, r3, #13
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	add	r2, r4, r3
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-1576]
	str	r2, [r3, #4]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-1576]
	ldr	r3, [r3, #4]
	mov	r2, #92
	strb	r2, [r3]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-1576]
	mov	r2, #0
	strb	r2, [r3, #541]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-1576]
	mov	r2, #1
	str	r2, [r3, #12]
	ldr	r2, .L2933+12
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-1576]
	str	r3, [r2]
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-1580]
	add	r2, r3, #568
	sub	r3, fp, #8192
	sub	r3, r3, #12
	ldr	r3, [r3, #-1580]
	str	r2, [r3, #4]
	ldr	r3, .L2933+12
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L2933+16
	str	r2, [r3]
	bl	next_nomacro
	bl	parse_define
	ldr	r3, .L2933+12
	mov	r2, #0
	str	r2, [r3]
	nop
	ldr	r3, .L2933
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2932
	bl	__stack_chk_fail
.L2932:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L2934:
	.align	2
.L2933:
	.word	.LC223
	.word	.LC135
	.word	.LC222
	.word	file
	.word	ch
	.size	tcc_define_symbol, .-tcc_define_symbol
	.align	2
	.global	tcc_undefine_symbol
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_undefine_symbol, %function
tcc_undefine_symbol:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r0, [fp, #-20]
	bl	strlen
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-20]
	bl	tok_alloc
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #20]
	mov	r0, r3
	bl	define_find
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L2937
	ldr	r0, [fp, #-8]
	bl	define_undef
.L2937:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tcc_undefine_symbol, .-tcc_undefine_symbol
	.section	.rodata
	.align	2
	.type	reg_to_size, %object
	.size	reg_to_size, 5
reg_to_size:
	.ascii	"\000\000\001\000\002"
	.align	2
	.type	test_bits, %object
	.size	test_bits, 30
test_bits:
	.ascii	"\000\001\002\002\002\003\003\003\004\004\005\005\006"
	.ascii	"\006\007\007\010\011\012\012\013\013\014\014\015\015"
	.ascii	"\016\016\017\017"
	.align	2
	.type	asm_instrs, %object
	.size	asm_instrs, 2730
asm_instrs:
	.short	796
	.short	166
	.short	6
	.byte	0
	.space	3
	.short	800
	.short	166
	.short	6
	.byte	0
	.space	3
	.short	804
	.short	108
	.short	6
	.byte	0
	.space	3
	.short	808
	.short	110
	.short	6
	.byte	0
	.space	3
	.short	812
	.short	172
	.short	6
	.byte	0
	.space	3
	.short	816
	.short	172
	.short	6
	.byte	0
	.space	3
	.short	820
	.short	164
	.short	6
	.byte	0
	.space	3
	.short	824
	.short	164
	.short	6
	.byte	0
	.space	3
	.short	828
	.short	174
	.short	6
	.byte	0
	.space	3
	.short	832
	.short	174
	.short	6
	.byte	0
	.space	3
	.short	836
	.short	170
	.short	6
	.byte	0
	.space	3
	.short	840
	.short	170
	.short	6
	.byte	0
	.space	3
	.short	719
	.short	4028
	.short	20
	.byte	2
	.ascii	"\226\026\000"
	.short	722
	.short	4029
	.short	20
	.byte	2
	.ascii	"\226\026\000"
	.short	725
	.short	4003
	.short	20
	.byte	2
	.ascii	"\026\226\000"
	.short	725
	.short	4026
	.short	-32748
	.byte	2
	.ascii	"\012\226\000"
	.short	728
	.short	4011
	.short	20
	.byte	2
	.ascii	"\026\226\000"
	.short	728
	.short	4026
	.short	-24556
	.byte	2
	.ascii	"\012\226\000"
	.short	731
	.short	4019
	.short	20
	.byte	2
	.ascii	"\026\226\000"
	.short	731
	.short	4026
	.short	-16364
	.byte	2
	.ascii	"\012\226\000"
	.short	734
	.short	4027
	.short	20
	.byte	2
	.ascii	"\026\226\000"
	.short	734
	.short	4026
	.short	-8172
	.byte	2
	.ascii	"\012\226\000"
	.short	486
	.short	160
	.short	6
	.byte	2
	.ascii	"\022\016\000"
	.short	486
	.short	162
	.short	6
	.byte	2
	.ascii	"\016\022\000"
	.short	486
	.short	136
	.short	22
	.byte	2
	.ascii	"\025\225\000"
	.short	486
	.short	138
	.short	22
	.byte	2
	.ascii	"\225\025\000"
	.short	486
	.short	176
	.short	14
	.byte	2
	.ascii	"\024\025\000"
	.short	486
	.short	198
	.short	22
	.byte	2
	.ascii	"\024\225\000"
	.short	487
	.short	140
	.short	20
	.byte	2
	.ascii	"\010\225\000"
	.short	487
	.short	142
	.short	20
	.byte	2
	.ascii	"\225\010\000"
	.short	487
	.short	3872
	.short	20
	.byte	2
	.ascii	"\005\002\000"
	.short	487
	.short	3873
	.short	20
	.byte	2
	.ascii	"\007\002\000"
	.short	487
	.short	3876
	.short	20
	.byte	2
	.ascii	"\006\002\000"
	.short	487
	.short	3874
	.short	20
	.byte	2
	.ascii	"\002\005\000"
	.short	487
	.short	3875
	.short	20
	.byte	2
	.ascii	"\002\007\000"
	.short	487
	.short	3878
	.short	20
	.byte	2
	.ascii	"\002\006\000"
	.short	615
	.short	4030
	.short	16
	.byte	2
	.ascii	"\200\002\000"
	.short	614
	.short	4030
	.short	272
	.byte	2
	.ascii	"\200\001\000"
	.short	616
	.short	4031
	.short	16
	.byte	2
	.ascii	"\201\002\000"
	.short	610
	.short	4022
	.short	20
	.byte	2
	.ascii	"\200\026\000"
	.short	613
	.short	4023
	.short	16
	.byte	2
	.ascii	"\201\002\000"
	.short	596
	.short	80
	.short	12
	.byte	1
	.ascii	"\026\000"
	.space	1
	.short	596
	.short	255
	.short	-16364
	.byte	1
	.ascii	"\226\000"
	.space	1
	.short	596
	.short	106
	.short	4
	.byte	1
	.ascii	"\013\000"
	.space	1
	.short	596
	.short	104
	.short	4
	.byte	1
	.ascii	"\015\000"
	.space	1
	.short	596
	.short	6
	.short	4
	.byte	1
	.ascii	"\010\000"
	.space	1
	.short	599
	.short	88
	.short	12
	.byte	1
	.ascii	"\026\000"
	.space	1
	.short	599
	.short	143
	.short	20
	.byte	1
	.ascii	"\226\000"
	.space	1
	.short	599
	.short	7
	.short	4
	.byte	1
	.ascii	"\010\000"
	.space	1
	.short	555
	.short	144
	.short	12
	.byte	2
	.ascii	"\025\016\000"
	.short	555
	.short	144
	.short	12
	.byte	2
	.ascii	"\016\025\000"
	.short	554
	.short	134
	.short	22
	.byte	2
	.ascii	"\025\225\000"
	.short	554
	.short	134
	.short	22
	.byte	2
	.ascii	"\225\025\000"
	.short	602
	.short	228
	.short	6
	.byte	2
	.ascii	"\012\016\000"
	.short	602
	.short	228
	.short	6
	.byte	1
	.ascii	"\012\000"
	.space	1
	.short	602
	.short	236
	.short	6
	.byte	2
	.ascii	"\021\016\000"
	.short	602
	.short	236
	.short	6
	.byte	1
	.ascii	"\021\000"
	.space	1
	.short	606
	.short	230
	.short	6
	.byte	2
	.ascii	"\016\012\000"
	.short	606
	.short	230
	.short	6
	.byte	1
	.ascii	"\012\000"
	.space	1
	.short	606
	.short	238
	.short	6
	.byte	2
	.ascii	"\016\021\000"
	.short	606
	.short	238
	.short	6
	.byte	1
	.ascii	"\021\000"
	.space	1
	.short	617
	.short	141
	.short	20
	.byte	2
	.ascii	"\200\025\000"
	.short	620
	.short	196
	.short	16
	.byte	2
	.ascii	"\200\002\000"
	.short	621
	.short	197
	.short	16
	.byte	2
	.ascii	"\200\002\000"
	.short	622
	.short	4018
	.short	16
	.byte	2
	.ascii	"\200\002\000"
	.short	623
	.short	4020
	.short	16
	.byte	2
	.ascii	"\200\002\000"
	.short	624
	.short	4021
	.short	16
	.byte	2
	.ascii	"\200\002\000"
	.short	490
	.short	0
	.short	534
	.byte	2
	.ascii	"\025\225\000"
	.short	490
	.short	2
	.short	534
	.byte	2
	.ascii	"\225\025\000"
	.short	490
	.short	4
	.short	518
	.byte	2
	.ascii	"\024\016\000"
	.short	490
	.short	128
	.short	534
	.byte	2
	.ascii	"\024\225\000"
	.short	491
	.short	131
	.short	532
	.byte	2
	.ascii	"\013\225\000"
	.short	558
	.short	132
	.short	22
	.byte	2
	.ascii	"\225\025\000"
	.short	558
	.short	132
	.short	22
	.byte	2
	.ascii	"\025\225\000"
	.short	558
	.short	168
	.short	6
	.byte	2
	.ascii	"\024\016\000"
	.short	558
	.short	246
	.short	22
	.byte	2
	.ascii	"\024\225\000"
	.short	523
	.short	64
	.short	12
	.byte	1
	.ascii	"\026\000"
	.space	1
	.short	522
	.short	254
	.short	22
	.byte	1
	.ascii	"\225\000"
	.space	1
	.short	527
	.short	72
	.short	12
	.byte	1
	.ascii	"\026\000"
	.space	1
	.short	526
	.short	254
	.short	8214
	.byte	1
	.ascii	"\225\000"
	.space	1
	.short	530
	.short	246
	.short	16406
	.byte	1
	.ascii	"\225\000"
	.space	1
	.short	534
	.short	246
	.short	24598
	.byte	1
	.ascii	"\225\000"
	.space	1
	.short	538
	.short	246
	.short	-32746
	.byte	1
	.ascii	"\225\000"
	.space	1
	.short	542
	.short	246
	.short	-24554
	.byte	1
	.ascii	"\225\000"
	.space	1
	.short	543
	.short	4015
	.short	20
	.byte	2
	.ascii	"\225\025\000"
	.short	543
	.short	107
	.short	20
	.byte	3
	.ascii	"\013\226\026"
	.short	543
	.short	107
	.short	20
	.byte	2
	.ascii	"\013\026\000"
	.short	543
	.short	105
	.short	20
	.byte	3
	.ascii	"\027\226\026"
	.short	543
	.short	105
	.short	20
	.byte	2
	.ascii	"\027\026\000"
	.short	546
	.short	246
	.short	-16362
	.byte	1
	.ascii	"\225\000"
	.space	1
	.short	546
	.short	246
	.short	-16362
	.byte	2
	.ascii	"\225\016\000"
	.short	550
	.short	246
	.short	-8170
	.byte	1
	.ascii	"\225\000"
	.space	1
	.short	550
	.short	246
	.short	-8170
	.byte	2
	.ascii	"\225\016\000"
	.short	562
	.short	192
	.short	150
	.byte	2
	.ascii	"\012\225\000"
	.short	562
	.short	210
	.short	150
	.byte	2
	.ascii	"\020\225\000"
	.short	562
	.short	208
	.short	150
	.byte	1
	.ascii	"\225\000"
	.space	1
	.short	590
	.short	4004
	.short	20
	.byte	3
	.ascii	"\012\026\226"
	.short	590
	.short	4005
	.short	20
	.byte	3
	.ascii	"\020\026\226"
	.short	590
	.short	4005
	.short	20
	.byte	2
	.ascii	"\026\226\000"
	.short	593
	.short	4012
	.short	20
	.byte	3
	.ascii	"\012\026\226"
	.short	593
	.short	4013
	.short	20
	.byte	3
	.ascii	"\020\026\226"
	.short	593
	.short	4013
	.short	20
	.byte	2
	.ascii	"\026\226\000"
	.short	625
	.short	255
	.short	16400
	.byte	1
	.ascii	"\023\000"
	.space	1
	.short	625
	.short	232
	.short	1
	.byte	1
	.ascii	"\022\000"
	.space	1
	.short	626
	.short	255
	.short	-32752
	.byte	1
	.ascii	"\023\000"
	.space	1
	.short	626
	.short	235
	.short	1025
	.byte	1
	.ascii	"\022\000"
	.space	1
	.short	627
	.short	154
	.short	0
	.byte	2
	.ascii	"\014\015\000"
	.short	627
	.short	255
	.short	24576
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	628
	.short	234
	.short	0
	.byte	2
	.ascii	"\014\015\000"
	.short	628
	.short	255
	.short	-24576
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	256
	.short	205
	.short	0
	.byte	1
	.ascii	"\012\000"
	.space	1
	.short	659
	.short	3984
	.short	80
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	938
	.short	200
	.short	0
	.byte	2
	.ascii	"\014\012\000"
	.short	901
	.short	194
	.short	0
	.byte	1
	.ascii	"\014\000"
	.space	1
	.short	902
	.short	202
	.short	0
	.byte	1
	.ascii	"\014\000"
	.space	1
	.short	629
	.short	112
	.short	1089
	.byte	1
	.ascii	"\022\000"
	.space	1
	.short	939
	.short	224
	.short	1024
	.byte	1
	.ascii	"\022\000"
	.space	1
	.short	940
	.short	224
	.short	1024
	.byte	1
	.ascii	"\022\000"
	.space	1
	.short	941
	.short	225
	.short	1024
	.byte	1
	.ascii	"\022\000"
	.space	1
	.short	942
	.short	225
	.short	1024
	.byte	1
	.ascii	"\022\000"
	.space	1
	.short	943
	.short	226
	.short	1024
	.byte	1
	.ascii	"\022\000"
	.space	1
	.short	944
	.short	227
	.short	1024
	.byte	1
	.ascii	"\022\000"
	.space	1
	.short	758
	.short	-10023
	.short	0
	.byte	0
	.space	3
	.short	740
	.short	-10048
	.short	2056
	.byte	1
	.ascii	"\011\000"
	.space	1
	.short	740
	.short	-10048
	.short	2056
	.byte	2
	.ascii	"\011\017\000"
	.short	740
	.short	-8511
	.short	2048
	.byte	0
	.space	3
	.short	741
	.short	-8512
	.short	2056
	.byte	1
	.ascii	"\011\000"
	.space	1
	.short	741
	.short	-8512
	.short	2056
	.byte	2
	.ascii	"\011\017\000"
	.short	741
	.short	-8512
	.short	2056
	.byte	2
	.ascii	"\017\011\000"
	.short	741
	.short	-8511
	.short	2048
	.byte	0
	.space	3
	.short	742
	.short	216
	.short	2064
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	743
	.short	218
	.short	2064
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	744
	.short	220
	.short	2064
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	745
	.short	222
	.short	2064
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	945
	.short	-9792
	.short	8
	.byte	1
	.ascii	"\011\000"
	.space	1
	.short	946
	.short	-9792
	.short	8
	.byte	1
	.ascii	"\011\000"
	.space	1
	.short	947
	.short	217
	.short	16
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	946
	.short	221
	.short	16
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	948
	.short	219
	.short	16
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	949
	.short	223
	.short	-24560
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	950
	.short	223
	.short	-24560
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	951
	.short	219
	.short	-24560
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	952
	.short	223
	.short	-32752
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	953
	.short	-8752
	.short	8
	.byte	1
	.ascii	"\011\000"
	.space	1
	.short	954
	.short	-8752
	.short	8
	.byte	1
	.ascii	"\011\000"
	.space	1
	.short	955
	.short	217
	.short	16400
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	956
	.short	217
	.short	24592
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	954
	.short	221
	.short	16400
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	957
	.short	221
	.short	24592
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	958
	.short	223
	.short	16400
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	959
	.short	223
	.short	24592
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	960
	.short	219
	.short	16400
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	961
	.short	219
	.short	24592
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	962
	.short	-8744
	.short	8
	.byte	1
	.ascii	"\011\000"
	.space	1
	.short	963
	.short	223
	.short	-8176
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	964
	.short	223
	.short	-8176
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	965
	.short	219
	.short	-8176
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	966
	.short	223
	.short	-16368
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	935
	.short	-9784
	.short	8
	.byte	1
	.ascii	"\011\000"
	.space	1
	.short	967
	.short	-8736
	.short	8
	.byte	1
	.ascii	"\011\000"
	.space	1
	.short	968
	.short	-8728
	.short	8
	.byte	1
	.ascii	"\011\000"
	.space	1
	.short	969
	.short	-9245
	.short	32
	.byte	0
	.space	3
	.short	970
	.short	217
	.short	-24560
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	971
	.short	217
	.short	-8176
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	972
	.short	217
	.short	-8144
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	936
	.short	-8224
	.short	0
	.byte	1
	.ascii	"\016\000"
	.space	1
	.short	936
	.short	221
	.short	-8176
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	973
	.short	-8224
	.short	32
	.byte	1
	.ascii	"\016\000"
	.space	1
	.short	973
	.short	-8224
	.short	32
	.byte	0
	.space	3
	.short	973
	.short	221
	.short	-8144
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	974
	.short	-9246
	.short	32
	.byte	0
	.space	3
	.short	975
	.short	217
	.short	-16368
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	976
	.short	217
	.short	-16336
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	977
	.short	217
	.short	-32752
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	978
	.short	221
	.short	-16368
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	979
	.short	221
	.short	-16336
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	980
	.short	221
	.short	-32752
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	981
	.short	-8768
	.short	-32760
	.byte	1
	.ascii	"\011\000"
	.space	1
	.short	982
	.short	-8256
	.short	-32760
	.byte	1
	.ascii	"\011\000"
	.space	1
	.short	983
	.short	4014
	.short	16
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	984
	.short	4014
	.short	8208
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	985
	.short	99
	.short	16
	.byte	2
	.ascii	"\001\201\000"
	.short	986
	.short	3842
	.short	16
	.byte	2
	.ascii	"\202\002\000"
	.short	987
	.short	3841
	.short	16400
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	988
	.short	3841
	.short	24592
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	989
	.short	3840
	.short	16400
	.byte	1
	.ascii	"\225\000"
	.space	1
	.short	990
	.short	3841
	.short	-16368
	.byte	1
	.ascii	"\225\000"
	.space	1
	.short	737
	.short	3843
	.short	20
	.byte	2
	.ascii	"\225\025\000"
	.short	991
	.short	3840
	.short	24592
	.byte	1
	.ascii	"\225\000"
	.space	1
	.short	992
	.short	3841
	.short	16
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	993
	.short	3841
	.short	8208
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	994
	.short	3840
	.short	16
	.byte	1
	.ascii	"\225\000"
	.space	1
	.short	995
	.short	3841
	.short	-32752
	.byte	1
	.ascii	"\225\000"
	.space	1
	.short	996
	.short	3840
	.short	8208
	.byte	1
	.ascii	"\201\000"
	.space	1
	.short	997
	.short	3840
	.short	-32752
	.byte	1
	.ascii	"\225\000"
	.space	1
	.short	998
	.short	3840
	.short	-24560
	.byte	1
	.ascii	"\225\000"
	.space	1
	.short	999
	.short	4040
	.short	8
	.byte	1
	.ascii	"\002\000"
	.space	1
	.short	788
	.short	4032
	.short	22
	.byte	2
	.ascii	"\025\225\000"
	.short	792
	.short	4016
	.short	22
	.byte	2
	.ascii	"\025\225\000"
	.short	1000
	.short	3841
	.short	-8176
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	1001
	.short	98
	.short	16
	.byte	2
	.ascii	"\002\200\000"
	.short	1002
	.short	98
	.short	272
	.byte	2
	.ascii	"\001\200\000"
	.short	1003
	.short	4039
	.short	8208
	.byte	1
	.ascii	"\200\000"
	.space	1
	.short	689
	.short	3904
	.short	80
	.byte	2
	.ascii	"\202\002\000"
	.short	1004
	.short	-9536
	.short	8
	.byte	2
	.ascii	"\011\017\000"
	.short	1005
	.short	-9528
	.short	8
	.byte	2
	.ascii	"\011\017\000"
	.short	1006
	.short	-9520
	.short	8
	.byte	2
	.ascii	"\011\017\000"
	.short	1007
	.short	-9512
	.short	8
	.byte	2
	.ascii	"\011\017\000"
	.short	1008
	.short	-9280
	.short	8
	.byte	2
	.ascii	"\011\017\000"
	.short	1009
	.short	-9272
	.short	8
	.byte	2
	.ascii	"\011\017\000"
	.short	1010
	.short	-9264
	.short	8
	.byte	2
	.ascii	"\011\017\000"
	.short	1011
	.short	-9256
	.short	8
	.byte	2
	.ascii	"\011\017\000"
	.short	1012
	.short	-9240
	.short	8
	.byte	2
	.ascii	"\011\017\000"
	.short	1013
	.short	-9232
	.short	8
	.byte	2
	.ascii	"\011\017\000"
	.short	1014
	.short	-8216
	.short	8
	.byte	2
	.ascii	"\011\017\000"
	.short	1015
	.short	-8208
	.short	8
	.byte	2
	.ascii	"\011\017\000"
	.short	1016
	.short	3950
	.short	16
	.byte	2
	.ascii	"\202\003\000"
	.short	1016
	.short	3966
	.short	16
	.byte	2
	.ascii	"\003\202\000"
	.short	1017
	.short	3951
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1017
	.short	3967
	.short	16
	.byte	2
	.ascii	"\003\203\000"
	.short	1018
	.short	3947
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1019
	.short	3939
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1020
	.short	3943
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1021
	.short	4092
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1022
	.short	4093
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1023
	.short	4094
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1024
	.short	4076
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1025
	.short	4077
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1026
	.short	4060
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1027
	.short	4061
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1028
	.short	4059
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1029
	.short	4063
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1030
	.short	3956
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1031
	.short	3957
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1032
	.short	3958
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1033
	.short	3940
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1034
	.short	3941
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1035
	.short	3942
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1036
	.short	4085
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1037
	.short	4069
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1038
	.short	4053
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1039
	.short	4075
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1040
	.short	4081
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1040
	.short	3953
	.short	-16368
	.byte	2
	.ascii	"\012\003\000"
	.short	1041
	.short	4082
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1041
	.short	3954
	.short	-16368
	.byte	2
	.ascii	"\012\003\000"
	.short	1042
	.short	4083
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1042
	.short	3955
	.short	-16368
	.byte	2
	.ascii	"\012\003\000"
	.short	1043
	.short	4065
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1043
	.short	3953
	.short	-32752
	.byte	2
	.ascii	"\012\003\000"
	.short	1044
	.short	4066
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1044
	.short	3954
	.short	-32752
	.byte	2
	.ascii	"\012\003\000"
	.short	1045
	.short	4049
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1045
	.short	3953
	.short	16400
	.byte	2
	.ascii	"\012\003\000"
	.short	1046
	.short	4050
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1046
	.short	3954
	.short	16400
	.byte	2
	.ascii	"\012\003\000"
	.short	1047
	.short	4051
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1047
	.short	3955
	.short	16400
	.byte	2
	.ascii	"\012\003\000"
	.short	1048
	.short	4088
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1049
	.short	4089
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1050
	.short	4090
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1051
	.short	4072
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1052
	.short	4073
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1053
	.short	4056
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1054
	.short	4057
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1055
	.short	3944
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1056
	.short	3945
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1057
	.short	3946
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1058
	.short	3936
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1059
	.short	3937
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1060
	.short	3938
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	1061
	.short	4079
	.short	16
	.byte	2
	.ascii	"\203\003\000"
	.short	0
	.space	8
	.align	2
	.type	op0_codes, %object
	.size	op0_codes, 188
op0_codes:
	.short	96
	.short	97
	.short	248
	.short	252
	.short	250
	.short	3846
	.short	245
	.short	159
	.short	158
	.short	156
	.short	157
	.short	156
	.short	157
	.short	249
	.short	253
	.short	251
	.short	55
	.short	63
	.short	39
	.short	47
	.short	-10998
	.short	-11254
	.short	26264
	.short	26265
	.short	152
	.short	153
	.short	26264
	.short	152
	.short	26265
	.short	153
	.short	204
	.short	206
	.short	207
	.short	4010
	.short	244
	.short	155
	.short	144
	.short	215
	.short	103
	.short	103
	.short	102
	.short	102
	.short	240
	.short	243
	.short	243
	.short	243
	.short	242
	.short	242
	.short	3848
	.short	3849
	.short	4002
	.short	3888
	.short	3889
	.short	3890
	.short	3891
	.short	3851
	.short	201
	.short	195
	.short	203
	.short	-9495
	.short	-9756
	.short	-9755
	.short	-9752
	.short	-9751
	.short	-9750
	.short	-9749
	.short	-9748
	.short	-9747
	.short	-9746
	.short	-9744
	.short	-9743
	.short	-9742
	.short	-9741
	.short	-9740
	.short	-9739
	.short	-9738
	.short	-9737
	.short	-9736
	.short	-9735
	.short	-9734
	.short	-9733
	.short	-9732
	.short	-9731
	.short	-9730
	.short	-9729
	.short	-9760
	.short	-9759
	.short	-9245
	.short	-9246
	.short	-9776
	.short	155
	.short	-9783
	.short	-8224
	.short	3959
	.align	2
.LC224:
	.ascii	"1, 2, 4 or 8 constant\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_reg_shift, %function
get_reg_shift:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	asm_int_expr
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	sub	r3, r3, #1
	cmp	r3, #7
	ldrls	pc, [pc, r3, asl #2]
	b	.L2939
.L2941:
	.word	.L2944
	.word	.L2943
	.word	.L2939
	.word	.L2942
	.word	.L2939
	.word	.L2939
	.word	.L2939
	.word	.L2940
.L2944:
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L2945
.L2943:
	mov	r3, #1
	str	r3, [fp, #-12]
	b	.L2945
.L2942:
	mov	r3, #2
	str	r3, [fp, #-12]
	b	.L2945
.L2940:
	mov	r3, #3
	str	r3, [fp, #-12]
	b	.L2945
.L2939:
	ldr	r0, .L2947
	bl	expect
	mov	r3, #0
	str	r3, [fp, #-12]
	nop
.L2945:
	ldr	r3, [fp, #-12]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2948:
	.align	2
.L2947:
	.word	.LC224
	.size	get_reg_shift, .-get_reg_shift
	.section	.rodata
	.align	2
.LC225:
	.ascii	"32 bit register\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	asm_parse_reg, %function
asm_parse_reg:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	ldr	r3, .L2955
	ldr	r3, [r3]
	cmp	r3, #37
	bne	.L2953
	bl	next
	ldr	r3, .L2955
	ldr	r3, [r3]
	ldr	r2, .L2955+4
	cmp	r3, r2
	ble	.L2954
	ldr	r3, .L2955
	ldr	r3, [r3]
	ldr	r2, .L2955+8
	cmp	r3, r2
	bgt	.L2954
	ldr	r3, .L2955
	ldr	r3, [r3]
	sub	r3, r3, #420
	sub	r3, r3, #3
	str	r3, [fp, #-8]
	bl	next
	ldr	r3, [fp, #-8]
	b	.L2952
.L2953:
	nop
	b	.L2951
.L2954:
	nop
.L2951:
	ldr	r0, .L2955+12
	bl	expect
	mov	r3, #0
.L2952:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2956:
	.align	2
.L2955:
	.word	tok
	.word	422
	.word	430
	.word	.LC225
	.size	asm_parse_reg, .-asm_parse_reg
	.section	.rodata
	.align	2
.LC226:
	.ascii	"unknown register\000"
	.align	2
.LC227:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	parse_operand, %function
parse_operand:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	ldr	r3, .L2990
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-28]
	ldr	r3, .L2990+4
	ldr	r3, [r3]
	cmp	r3, #42
	bne	.L2958
	bl	next
	mov	r3, #524288
	str	r3, [fp, #-28]
.L2958:
	ldr	r3, .L2990+4
	ldr	r3, [r3]
	cmp	r3, #37
	bne	.L2959
	bl	next
	ldr	r3, .L2990+4
	ldr	r3, [r3]
	ldr	r2, .L2990+8
	cmp	r3, r2
	ble	.L2960
	ldr	r3, .L2990+4
	ldr	r3, [r3]
	ldr	r2, .L2990+12
	cmp	r3, r2
	bgt	.L2960
	ldr	r3, .L2990+4
	ldr	r3, [r3]
	sub	r3, r3, #404
	sub	r3, r3, #3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	asr	r3, r3, #3
	mov	r2, #1
	lsl	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-36]
	str	r2, [r3]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	and	r3, r3, #7
	lsl	r3, r3, #24
	asr	r2, r3, #24
	ldr	r3, [fp, #-36]
	strb	r2, [r3, #4]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	and	r3, r3, #7
	cmp	r3, #0
	beq	.L2961
	ldr	r3, [fp, #-36]
	ldrsb	r3, [r3, #4]
	cmp	r3, #0
	bne	.L2961
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	orr	r2, r3, #16384
	ldr	r3, [fp, #-36]
	str	r2, [r3]
	b	.L2962
.L2961:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L2963
	ldr	r3, [fp, #-36]
	ldrsb	r3, [r3, #4]
	cmp	r3, #1
	bne	.L2963
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	orr	r2, r3, #65536
	ldr	r3, [fp, #-36]
	str	r2, [r3]
	b	.L2962
.L2963:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	cmp	r3, #2
	bne	.L2985
	ldr	r3, [fp, #-36]
	ldrsb	r3, [r3, #4]
	cmp	r3, #2
	bne	.L2985
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	orr	r2, r3, #131072
	ldr	r3, [fp, #-36]
	str	r2, [r3]
	b	.L2985
.L2962:
	b	.L2985
.L2960:
	ldr	r3, .L2990+4
	ldr	r3, [r3]
	ldr	r2, .L2990+12
	cmp	r3, r2
	ble	.L2965
	ldr	r3, .L2990+4
	ldr	r3, [r3]
	ldr	r2, .L2990+16
	cmp	r3, r2
	bgt	.L2965
	ldr	r3, [fp, #-36]
	mov	r2, #128
	str	r2, [r3]
	ldr	r3, .L2990+4
	ldr	r3, [r3]
	and	r3, r3, #255
	add	r3, r3, #41
	and	r3, r3, #255
	lsl	r3, r3, #24
	asr	r2, r3, #24
	ldr	r3, [fp, #-36]
	strb	r2, [r3, #4]
	b	.L2964
.L2965:
	ldr	r3, .L2990+4
	ldr	r3, [r3]
	ldr	r2, .L2990+16
	cmp	r3, r2
	ble	.L2966
	ldr	r3, .L2990+4
	ldr	r3, [r3]
	cmp	r3, #484
	bgt	.L2966
	ldr	r3, [fp, #-36]
	mov	r2, #256
	str	r2, [r3]
	ldr	r3, .L2990+4
	ldr	r3, [r3]
	and	r3, r3, #255
	add	r3, r3, #33
	and	r3, r3, #255
	lsl	r3, r3, #24
	asr	r2, r3, #24
	ldr	r3, [fp, #-36]
	strb	r2, [r3, #4]
	b	.L2964
.L2966:
	ldr	r3, .L2990+4
	ldr	r3, [r3]
	ldr	r2, .L2990+20
	cmp	r3, r2
	bne	.L2986
	ldr	r3, [fp, #-36]
	mov	r2, #512
	str	r2, [r3]
	ldr	r3, [fp, #-36]
	mov	r2, #0
	strb	r2, [r3, #4]
	bl	next
	ldr	r3, .L2990+4
	ldr	r3, [r3]
	cmp	r3, #40
	bne	.L2968
	bl	next
	ldr	r3, .L2990+4
	ldr	r3, [r3]
	cmp	r3, #206
	bne	.L2987
	ldr	r3, .L2990+24
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3]	@ zero_extendqisi2
	sub	r3, r3, #48
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #7
	bhi	.L2988
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L2988
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #24
	asr	r2, r3, #24
	ldr	r3, [fp, #-36]
	strb	r2, [r3, #4]
	bl	next
	mov	r0, #41
	bl	skip
.L2968:
	ldr	r3, [fp, #-36]
	ldrsb	r3, [r3, #4]
	cmp	r3, #0
	bne	.L2989
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	orr	r2, r3, #32768
	ldr	r3, [fp, #-36]
	str	r2, [r3]
	b	.L2989
.L2986:
	nop
	b	.L2967
.L2987:
	nop
	b	.L2967
.L2988:
	nop
.L2967:
	ldr	r0, .L2990+28
	bl	error
	b	.L2964
.L2985:
	nop
.L2964:
	bl	next
.L2973:
	b	.L2974
.L2959:
	ldr	r3, .L2990+4
	ldr	r3, [r3]
	cmp	r3, #36
	bne	.L2975
	bl	next
	sub	r3, fp, #16
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	asm_expr
	ldr	r3, [fp, #-36]
	mov	r2, #8192
	str	r2, [r3]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-36]
	str	r2, [r3, #8]
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-36]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	bne	.L2974
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-36]
	ldr	r2, [r2, #8]
	and	r2, r2, #255
	cmp	r3, r2
	bne	.L2976
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	orr	r2, r3, #1024
	ldr	r3, [fp, #-36]
	str	r2, [r3]
.L2976:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-36]
	ldr	r2, [r2, #8]
	lsl	r2, r2, #24
	asr	r2, r2, #24
	cmp	r3, r2
	bne	.L2977
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	orr	r2, r3, #2048
	ldr	r3, [fp, #-36]
	str	r2, [r3]
.L2977:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-36]
	ldr	r2, [r2, #8]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	cmp	r3, r2
	bne	.L2974
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	orr	r2, r3, #4096
	ldr	r3, [fp, #-36]
	str	r2, [r3]
	b	.L2974
.L2975:
	ldr	r3, [fp, #-36]
	mov	r2, #1073741824
	str	r2, [r3]
	ldr	r3, [fp, #-36]
	mvn	r2, #0
	strb	r2, [r3, #4]
	ldr	r3, [fp, #-36]
	mvn	r2, #0
	strb	r2, [r3, #5]
	ldr	r3, [fp, #-36]
	mov	r2, #0
	strb	r2, [r3, #6]
	ldr	r3, .L2990+4
	ldr	r3, [r3]
	cmp	r3, #40
	beq	.L2978
	sub	r3, fp, #16
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	asm_expr
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-36]
	str	r2, [r3, #8]
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-36]
	str	r2, [r3, #12]
	b	.L2979
.L2978:
	ldr	r3, [fp, #-36]
	mov	r2, #0
	str	r2, [r3, #8]
	ldr	r3, [fp, #-36]
	mov	r2, #0
	str	r2, [r3, #12]
.L2979:
	ldr	r3, .L2990+4
	ldr	r3, [r3]
	cmp	r3, #40
	bne	.L2980
	bl	next
	ldr	r3, .L2990+4
	ldr	r3, [r3]
	cmp	r3, #44
	beq	.L2981
	bl	asm_parse_reg
	mov	r3, r0
	lsl	r3, r3, #24
	asr	r2, r3, #24
	ldr	r3, [fp, #-36]
	strb	r2, [r3, #4]
.L2981:
	ldr	r3, .L2990+4
	ldr	r3, [r3]
	cmp	r3, #44
	bne	.L2982
	bl	next
	ldr	r3, .L2990+4
	ldr	r3, [r3]
	cmp	r3, #44
	beq	.L2983
	bl	asm_parse_reg
	mov	r3, r0
	lsl	r3, r3, #24
	asr	r2, r3, #24
	ldr	r3, [fp, #-36]
	strb	r2, [r3, #5]
.L2983:
	mov	r0, #44
	bl	skip
	ldr	r0, [fp, #-32]
	bl	get_reg_shift
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-36]
	strb	r2, [r3, #6]
.L2982:
	mov	r0, #41
	bl	skip
.L2980:
	ldr	r3, [fp, #-36]
	ldrsb	r3, [r3, #4]
	cmn	r3, #1
	bne	.L2974
	ldr	r3, [fp, #-36]
	ldrsb	r3, [r3, #5]
	cmn	r3, #1
	bne	.L2974
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	orr	r2, r3, #262144
	ldr	r3, [fp, #-36]
	str	r2, [r3]
	b	.L2974
.L2989:
	nop
.L2974:
	ldr	r3, [fp, #-36]
	ldr	r2, [r3]
	ldr	r3, [fp, #-28]
	orr	r2, r2, r3
	ldr	r3, [fp, #-36]
	str	r2, [r3]
	nop
	ldr	r3, .L2990
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2984
	bl	__stack_chk_fail
.L2984:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2991:
	.align	2
.L2990:
	.word	.LC227
	.word	tok
	.word	406
	.word	470
	.word	478
	.word	485
	.word	tokc
	.word	.LC226
	.size	parse_operand, .-parse_operand
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	gen_expr32, %function
gen_expr32:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L2993
	ldr	r3, .L2994
	ldr	r0, [r3]
	ldr	r3, [fp, #-8]
	ldr	r1, [r3, #4]
	ldr	r3, .L2994+4
	ldr	r3, [r3]
	mov	r2, r3
	mov	r3, #1
	bl	greloc
.L2993:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r0, r3
	bl	gen_le32
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L2995:
	.align	2
.L2994:
	.word	cur_text_section
	.word	ind
	.size	gen_expr32, .-gen_expr32
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	gen_disp32, %function
gen_disp32:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L2997
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #4]
	ldr	r3, .L3001
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	cmp	r2, r3
	bne	.L2998
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	ldr	r2, [r2, #20]
	add	r3, r3, r2
	ldr	r2, .L3001+4
	ldr	r2, [r2]
	sub	r3, r3, r2
	sub	r3, r3, #4
	mov	r0, r3
	bl	gen_le32
	b	.L3000
.L2998:
	ldr	r3, .L3001
	ldr	r0, [r3]
	ldr	r3, .L3001+4
	ldr	r3, [r3]
	mov	r2, r3
	mov	r3, #2
	ldr	r1, [fp, #-8]
	bl	greloc
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	sub	r3, r3, #4
	mov	r0, r3
	bl	gen_le32
	b	.L3000
.L2997:
	ldr	r3, .L3001+8
	ldr	r0, [r3]
	ldr	r3, .L3001
	ldr	r1, [r3]
	ldr	r3, .L3001+4
	ldr	r3, [r3]
	mov	r2, r3
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #2
	bl	put_elf_reloc
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	sub	r3, r3, #4
	mov	r0, r3
	bl	gen_le32
.L3000:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3002:
	.align	2
.L3001:
	.word	cur_text_section
	.word	ind
	.word	symtab_section
	.size	gen_disp32, .-gen_disp32
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	gen_le16, %function
gen_le16:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	g
	ldr	r3, [fp, #-8]
	asr	r3, r3, #8
	mov	r0, r3
	bl	g
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	gen_le16, .-gen_le16
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	asm_modrm, %function
asm_modrm:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	and	r3, r3, #31
	cmp	r3, #0
	beq	.L3005
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #3
	add	r3, r3, #192
	ldr	r2, [fp, #-28]
	ldrsb	r2, [r2, #4]
	add	r3, r3, r2
	mov	r0, r3
	bl	g
	b	.L3017
.L3005:
	ldr	r3, [fp, #-28]
	ldrsb	r3, [r3, #4]
	cmn	r3, #1
	bne	.L3007
	ldr	r3, [fp, #-28]
	ldrsb	r3, [r3, #5]
	cmn	r3, #1
	bne	.L3007
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #3
	add	r3, r3, #5
	mov	r0, r3
	bl	g
	ldr	r3, [fp, #-28]
	add	r3, r3, #8
	mov	r0, r3
	bl	gen_expr32
	b	.L3017
.L3007:
	ldr	r3, [fp, #-28]
	ldrsb	r3, [r3, #4]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmn	r3, #1
	bne	.L3008
	mov	r3, #5
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L3009
.L3008:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	bne	.L3010
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	bne	.L3010
	ldr	r3, [fp, #-28]
	ldrsb	r3, [r3, #4]
	cmp	r3, #5
	beq	.L3010
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L3009
.L3010:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-28]
	ldr	r2, [r2, #8]
	lsl	r2, r2, #24
	asr	r2, r2, #24
	cmp	r3, r2
	bne	.L3011
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	bne	.L3011
	mov	r3, #64
	str	r3, [fp, #-20]
	b	.L3009
.L3011:
	mov	r3, #128
	str	r3, [fp, #-20]
.L3009:
	ldr	r3, [fp, #-28]
	ldrsb	r3, [r3, #4]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-28]
	ldrsb	r3, [r3, #5]
	cmn	r3, #1
	beq	.L3012
	mov	r3, #4
	str	r3, [fp, #-16]
.L3012:
	ldr	r3, [fp, #-24]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-20]
	add	r2, r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	mov	r0, r3
	bl	g
	ldr	r3, [fp, #-16]
	cmp	r3, #4
	bne	.L3013
	ldr	r3, [fp, #-28]
	ldrsb	r3, [r3, #5]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmn	r3, #1
	bne	.L3014
	mov	r3, #4
	str	r3, [fp, #-12]
.L3014:
	ldr	r3, [fp, #-28]
	ldrb	r3, [r3, #6]	@ zero_extendqisi2
	lsl	r2, r3, #6
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #3
	add	r2, r2, r3
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	mov	r0, r3
	bl	g
.L3013:
	ldr	r3, [fp, #-20]
	cmp	r3, #64
	bne	.L3015
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #8]
	mov	r0, r3
	bl	g
	b	.L3017
.L3015:
	ldr	r3, [fp, #-20]
	cmp	r3, #128
	beq	.L3016
	ldr	r3, [fp, #-28]
	ldrsb	r3, [r3, #4]
	cmn	r3, #1
	bne	.L3017
.L3016:
	ldr	r3, [fp, #-28]
	add	r3, r3, #8
	mov	r0, r3
	bl	gen_expr32
.L3017:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	asm_modrm, .-asm_modrm
	.section	.rodata
	.align	2
.LC228:
	.ascii	"incorrect number of operands\000"
	.align	2
.LC229:
	.ascii	"unknown opcode '%s'\000"
	.align	2
.LC230:
	.ascii	"cannot infer opcode suffix\000"
	.align	2
.LC231:
	.ascii	"invalid displacement\000"
	.align	2
.LC232:
	.ascii	"cannot relocate\000"
	.align	2
.LC233:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	asm_opcode, %function
asm_opcode:
	@ args = 0, pretend = 0, frame = 136
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #136
	str	r0, [fp, #-136]
	str	r1, [fp, #-140]
	ldr	r3, .L3147
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #56
	str	r3, [fp, #-104]
	mov	r3, #0
	str	r3, [fp, #-112]
.L3022:
	ldr	r3, .L3147+4
	ldr	r3, [r3]
	cmp	r3, #59
	beq	.L3019
	ldr	r3, .L3147+4
	ldr	r3, [r3]
	cmp	r3, #10
	beq	.L3019
	ldr	r3, [fp, #-112]
	cmp	r3, #2
	ble	.L3020
	ldr	r0, .L3147+8
	bl	error
.L3020:
	ldr	r1, [fp, #-104]
	ldr	r0, [fp, #-136]
	bl	parse_operand
	ldr	r3, [fp, #-104]
	add	r3, r3, #16
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-112]
	add	r3, r3, #1
	str	r3, [fp, #-112]
	ldr	r3, .L3147+4
	ldr	r3, [r3]
	cmp	r3, #44
	bne	.L3129
	bl	next
	b	.L3022
.L3129:
	nop
.L3019:
	mov	r3, #0
	str	r3, [fp, #-116]
	mov	r3, #0
	str	r3, [fp, #-108]
	ldr	r3, .L3147+12
	str	r3, [fp, #-132]
	b	.L3023
.L3055:
	mov	r3, #0
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3, #4]
	and	r3, r3, #2048
	cmp	r3, #0
	beq	.L3024
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-140]
	sub	r3, r3, r2
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-120]
	cmp	r3, #47
	bhi	.L3130
	ldr	r1, [fp, #-120]
	ldr	r3, .L3147+16
	smull	r0, r2, r3, r1
	asr	r3, r1, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #1
	sub	r2, r1, r3
	cmp	r2, #0
	beq	.L3026
	b	.L3130
.L3024:
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3, #4]
	and	r3, r3, #512
	cmp	r3, #0
	beq	.L3028
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-140]
	cmp	r3, r2
	blt	.L3131
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3]
	add	r3, r3, #31
	ldr	r2, [fp, #-140]
	cmp	r2, r3
	ble	.L3132
	b	.L3131
.L3028:
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3, #4]
	and	r3, r3, #128
	cmp	r3, #0
	beq	.L3032
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-140]
	cmp	r3, r2
	blt	.L3133
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3]
	add	r3, r3, #27
	ldr	r2, [fp, #-140]
	cmp	r2, r3
	ble	.L3134
	b	.L3133
.L3032:
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3, #4]
	and	r3, r3, #64
	cmp	r3, #0
	beq	.L3035
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-140]
	cmp	r3, r2
	blt	.L3135
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3]
	add	r3, r3, #29
	ldr	r2, [fp, #-140]
	cmp	r2, r3
	ble	.L3026
	b	.L3135
.L3035:
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3, #4]
	and	r3, r3, #2
	cmp	r3, #0
	beq	.L3037
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-140]
	cmp	r3, r2
	blt	.L3136
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3]
	add	r3, r3, #3
	ldr	r2, [fp, #-140]
	cmp	r2, r3
	bgt	.L3136
	b	.L3031
.L3132:
	nop
	b	.L3031
.L3134:
	nop
.L3031:
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-140]
	sub	r3, r3, r2
	and	r3, r3, #3
	str	r3, [fp, #-108]
	b	.L3026
.L3037:
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3, #4]
	and	r3, r3, #4
	cmp	r3, #0
	beq	.L3039
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-140]
	cmp	r3, r2
	blt	.L3137
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3]
	add	r3, r3, #2
	ldr	r2, [fp, #-140]
	cmp	r2, r3
	bgt	.L3137
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-140]
	sub	r3, r3, r2
	add	r3, r3, #1
	str	r3, [fp, #-108]
	b	.L3026
.L3039:
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-140]
	cmp	r3, r2
	bne	.L3138
.L3026:
	ldr	r3, [fp, #-132]
	ldrb	r3, [r3, #6]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-112]
	cmp	r3, r2
	bne	.L3139
	mov	r3, #0
	str	r3, [fp, #-128]
	b	.L3043
.L3053:
	ldr	r2, [fp, #-132]
	ldr	r3, [fp, #-128]
	add	r3, r2, r3
	add	r3, r3, #7
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-100]
	and	r3, r3, #31
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-96]
	sub	r3, r3, #20
	cmp	r3, #3
	ldrls	pc, [pc, r3, asl #2]
	b	.L3044
.L3046:
	.word	.L3049
	.word	.L3048
	.word	.L3047
	.word	.L3045
.L3049:
	mov	r3, #13312
	str	r3, [fp, #-120]
	b	.L3050
.L3048:
	mov	r3, #7
	str	r3, [fp, #-120]
	b	.L3050
.L3047:
	mov	r3, #6
	str	r3, [fp, #-120]
	b	.L3050
.L3045:
	mov	r3, #12288
	str	r3, [fp, #-120]
	b	.L3050
.L3044:
	mov	r2, #1
	ldr	r3, [fp, #-96]
	lsl	r3, r2, r3
	str	r3, [fp, #-120]
	nop
.L3050:
	ldr	r3, [fp, #-100]
	and	r3, r3, #128
	cmp	r3, #0
	beq	.L3051
	ldr	r3, [fp, #-120]
	orr	r3, r3, #1073741824
	str	r3, [fp, #-120]
.L3051:
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r2, [fp, #-120]
	str	r2, [r3, #-64]
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #4
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r2, [r3, #-52]
	ldr	r3, [fp, #-120]
	and	r3, r3, r2
	cmp	r3, #0
	beq	.L3140
	ldr	r3, [fp, #-128]
	add	r3, r3, #1
	str	r3, [fp, #-128]
.L3043:
	ldr	r2, [fp, #-128]
	ldr	r3, [fp, #-112]
	cmp	r2, r3
	blt	.L3053
	b	.L3054
.L3130:
	nop
	b	.L3027
.L3131:
	nop
	b	.L3027
.L3133:
	nop
	b	.L3027
.L3135:
	nop
	b	.L3027
.L3136:
	nop
	b	.L3027
.L3137:
	nop
	b	.L3027
.L3138:
	nop
	b	.L3027
.L3139:
	nop
	b	.L3027
.L3140:
	nop
.L3027:
	ldr	r3, [fp, #-132]
	add	r3, r3, #10
	str	r3, [fp, #-132]
.L3023:
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3]
	cmp	r3, #0
	bne	.L3055
.L3054:
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3]
	cmp	r3, #0
	bne	.L3056
	ldr	r3, [fp, #-140]
	cmp	r3, #844
	blt	.L3057
	ldr	r3, [fp, #-140]
	ldr	r2, .L3147+20
	cmp	r3, r2
	bgt	.L3057
	ldr	r3, [fp, #-140]
	sub	r3, r3, #844
	ldr	r2, .L3147+24
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	and	r3, r3, #65280
	cmp	r3, #0
	beq	.L3058
	ldr	r3, [fp, #-92]
	asr	r3, r3, #8
	mov	r0, r3
	bl	g
.L3058:
	ldr	r0, [fp, #-92]
	bl	g
	b	.L3018
.L3057:
	mov	r1, #0
	ldr	r0, [fp, #-140]
	bl	get_tok_str
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L3147+28
	bl	error
.L3056:
	ldr	r3, [fp, #-108]
	cmp	r3, #3
	bne	.L3060
	mov	r3, #0
	str	r3, [fp, #-128]
	b	.L3061
.L3064:
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #4
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-52]
	and	r3, r3, #7
	cmp	r3, #0
	beq	.L3062
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-64]
	and	r3, r3, #196608
	cmp	r3, #0
	bne	.L3062
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #4
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-52]
	and	r3, r3, #7
	ldr	r2, .L3147+32
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	str	r3, [fp, #-108]
.L3062:
	ldr	r3, [fp, #-128]
	add	r3, r3, #1
	str	r3, [fp, #-128]
.L3061:
	ldr	r3, [fp, #-108]
	cmp	r3, #3
	bne	.L3063
	ldr	r2, [fp, #-128]
	ldr	r3, [fp, #-112]
	cmp	r2, r3
	blt	.L3064
.L3063:
	ldr	r3, [fp, #-108]
	cmp	r3, #3
	bne	.L3060
	ldr	r3, [fp, #-140]
	ldr	r2, .L3147+36
	cmp	r3, r2
	beq	.L3065
	ldr	r3, [fp, #-140]
	ldr	r2, .L3147+40
	cmp	r3, r2
	bne	.L3066
.L3065:
	ldr	r3, [fp, #-56]
	and	r3, r3, #10496
	cmp	r3, #0
	beq	.L3066
	mov	r3, #2
	str	r3, [fp, #-108]
	b	.L3060
.L3066:
	ldr	r0, .L3147+44
	bl	error
.L3060:
	ldr	r3, [fp, #-108]
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-108]
	cmp	r3, #1
	beq	.L3067
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3, #4]
	and	r3, r3, #256
	cmp	r3, #0
	beq	.L3068
.L3067:
	mov	r0, #102
	bl	g
	b	.L3069
.L3068:
	ldr	r3, [fp, #-108]
	cmp	r3, #2
	bne	.L3069
	mov	r3, #1
	str	r3, [fp, #-108]
.L3069:
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3, #4]
	and	r3, r3, #32
	cmp	r3, #0
	beq	.L3070
	mov	r0, #155
	bl	g
.L3070:
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3, #2]
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-120]
	cmp	r3, #105
	beq	.L3071
	ldr	r3, [fp, #-120]
	cmp	r3, #105
	bne	.L3072
.L3071:
	mov	r3, #3
	str	r3, [fp, #-112]
	sub	ip, fp, #24
	sub	r3, fp, #40
	ldm	r3, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	b	.L3073
.L3072:
	ldr	r3, [fp, #-120]
	cmp	r3, #205
	bne	.L3074
	ldr	r3, [fp, #-48]
	cmp	r3, #3
	bne	.L3074
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	bne	.L3074
	ldr	r3, [fp, #-120]
	sub	r3, r3, #1
	str	r3, [fp, #-120]
	mov	r3, #0
	str	r3, [fp, #-112]
	b	.L3073
.L3074:
	ldr	r3, [fp, #-120]
	cmp	r3, #6
	beq	.L3075
	ldr	r3, [fp, #-120]
	cmp	r3, #7
	bne	.L3076
.L3075:
	ldrsb	r3, [fp, #-52]
	cmp	r3, #3
	ble	.L3077
	ldr	r3, [fp, #-120]
	add	r3, r3, #3984
	add	r3, r3, #10
	ldrsb	r2, [fp, #-52]
	sub	r2, r2, #4
	lsl	r2, r2, #3
	add	r3, r3, r2
	str	r3, [fp, #-120]
	b	.L3078
.L3077:
	ldrsb	r3, [fp, #-52]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-120]
	add	r3, r2, r3
	str	r3, [fp, #-120]
.L3078:
	mov	r3, #0
	str	r3, [fp, #-112]
	b	.L3073
.L3076:
	ldr	r3, [fp, #-120]
	cmp	r3, #5
	bgt	.L3079
	ldr	r3, [fp, #-140]
	sub	r3, r3, #488
	sub	r3, r3, #2
	asr	r3, r3, #2
	lsl	r3, r3, #3
	ldr	r2, [fp, #-120]
	add	r3, r2, r3
	str	r3, [fp, #-120]
	b	.L3073
.L3079:
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3, #4]
	and	r3, r3, #2064
	cmp	r3, #2048
	bne	.L3073
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-140]
	sub	r3, r3, r2
	ldr	r2, .L3147+16
	smull	r1, r2, r3, r2
	asr	r3, r3, #31
	sub	r3, r2, r3
	lsl	r3, r3, #3
	ldr	r2, [fp, #-120]
	add	r3, r2, r3
	str	r3, [fp, #-120]
.L3073:
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3, #4]
	and	r3, r3, #8
	cmp	r3, #0
	beq	.L3080
	mov	r3, #0
	str	r3, [fp, #-128]
	b	.L3081
.L3084:
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r2, [r3, #-64]
	ldr	r3, .L3147+48
	and	r3, r3, r2
	cmp	r3, #0
	beq	.L3082
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #4
	sub	r2, fp, #4
	add	r3, r2, r3
	ldrsb	r3, [r3, #-48]
	mov	r2, r3
	ldr	r3, [fp, #-120]
	add	r3, r3, r2
	str	r3, [fp, #-120]
	b	.L3083
.L3082:
	ldr	r3, [fp, #-128]
	add	r3, r3, #1
	str	r3, [fp, #-128]
.L3081:
	ldr	r2, [fp, #-128]
	ldr	r3, [fp, #-112]
	cmp	r2, r3
	blt	.L3084
.L3083:
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3, #2]
	cmp	r3, #176
	bne	.L3080
	ldr	r3, [fp, #-108]
	cmp	r3, #0
	ble	.L3080
	ldr	r3, [fp, #-120]
	add	r3, r3, #7
	str	r3, [fp, #-120]
.L3080:
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3, #4]
	and	r3, r3, #2
	cmp	r3, #0
	beq	.L3085
	ldr	r2, [fp, #-120]
	ldr	r3, [fp, #-108]
	add	r3, r2, r3
	str	r3, [fp, #-120]
.L3085:
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3, #4]
	and	r3, r3, #64
	cmp	r3, #0
	beq	.L3086
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-140]
	sub	r3, r3, r2
	ldr	r2, .L3147+52
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-120]
	add	r3, r3, r2
	str	r3, [fp, #-120]
.L3086:
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3, #4]
	and	r3, r3, #1024
	cmp	r3, #0
	beq	.L3087
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-84]
	cmp	r3, #0
	beq	.L3141
	ldr	r3, [fp, #-84]
	ldr	r2, [r3, #4]
	ldr	r3, .L3147+56
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	cmp	r2, r3
	bne	.L3142
	ldr	r3, [fp, #-48]
	ldr	r2, [fp, #-84]
	ldr	r2, [r2, #20]
	add	r3, r3, r2
	ldr	r2, .L3147+60
	ldr	r2, [r2]
	sub	r3, r3, r2
	sub	r3, r3, #2
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-80]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldr	r3, [fp, #-80]
	cmp	r3, r2
	bne	.L3143
	mov	r3, #1
	str	r3, [fp, #-116]
	ldr	r3, [fp, #-80]
	str	r3, [fp, #-48]
	b	.L3087
.L3141:
	nop
	b	.L3089
.L3142:
	nop
	b	.L3089
.L3143:
	nop
.L3089:
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3, #4]
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L3091
	ldr	r3, [fp, #-120]
	cmp	r3, #235
	bne	.L3092
	mov	r3, #233
	str	r3, [fp, #-120]
	b	.L3087
.L3092:
	ldr	r3, [fp, #-120]
	add	r3, r3, #3856
	str	r3, [fp, #-120]
	b	.L3087
.L3091:
	ldr	r0, .L3147+64
	bl	error
.L3087:
	ldr	r3, [fp, #-120]
	asr	r3, r3, #8
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	beq	.L3093
	ldr	r0, [fp, #-76]
	bl	g
.L3093:
	ldr	r0, [fp, #-120]
	bl	g
	mov	r3, #0
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3, #4]
	and	r3, r3, #128
	cmp	r3, #0
	beq	.L3094
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-140]
	sub	r3, r3, r2
	asr	r3, r3, #2
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-124]
	cmp	r3, #6
	bne	.L3095
	mov	r3, #7
	str	r3, [fp, #-124]
	b	.L3095
.L3094:
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3, #4]
	and	r3, r3, #512
	cmp	r3, #0
	beq	.L3096
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-140]
	sub	r3, r3, r2
	asr	r3, r3, #2
	str	r3, [fp, #-124]
	b	.L3095
.L3096:
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3, #4]
	and	r3, r3, #2048
	cmp	r3, #0
	beq	.L3097
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-140]
	sub	r3, r3, r2
	ldr	r2, .L3147+16
	smull	r1, r2, r3, r2
	asr	r3, r3, #31
	sub	r3, r2, r3
	str	r3, [fp, #-124]
	b	.L3095
.L3097:
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3, #4]
	lsr	r3, r3, #13
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	and	r3, r3, #7
	str	r3, [fp, #-124]
.L3095:
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3, #4]
	and	r3, r3, #16
	cmp	r3, #0
	beq	.L3098
	mov	r3, #0
	str	r3, [fp, #-128]
	b	.L3099
.L3102:
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-64]
	and	r3, r3, #1073741824
	cmp	r3, #0
	bne	.L3144
	ldr	r3, [fp, #-128]
	add	r3, r3, #1
	str	r3, [fp, #-128]
.L3099:
	ldr	r2, [fp, #-128]
	ldr	r3, [fp, #-112]
	cmp	r2, r3
	blt	.L3102
	mov	r3, #0
	str	r3, [fp, #-128]
	b	.L3103
.L3105:
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r2, [r3, #-64]
	ldr	r3, .L3147+68
	and	r3, r3, r2
	cmp	r3, #0
	bne	.L3145
	ldr	r3, [fp, #-128]
	add	r3, r3, #1
	str	r3, [fp, #-128]
.L3103:
	ldr	r2, [fp, #-128]
	ldr	r3, [fp, #-112]
	cmp	r2, r3
	blt	.L3105
	b	.L3101
.L3144:
	nop
	b	.L3101
.L3145:
	nop
.L3101:
	ldr	r3, [fp, #-128]
	str	r3, [fp, #-72]
	mov	r3, #0
	str	r3, [fp, #-128]
	b	.L3106
.L3109:
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-64]
	str	r3, [fp, #-120]
	ldr	r2, [fp, #-128]
	ldr	r3, [fp, #-72]
	cmp	r2, r3
	beq	.L3107
	ldr	r3, [fp, #-120]
	lsl	r3, r3, #23
	lsr	r3, r3, #23
	cmp	r3, #0
	beq	.L3107
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #4
	sub	r2, fp, #4
	add	r3, r2, r3
	ldrsb	r3, [r3, #-48]
	str	r3, [fp, #-124]
	b	.L3108
.L3107:
	ldr	r3, [fp, #-128]
	add	r3, r3, #1
	str	r3, [fp, #-128]
.L3106:
	ldr	r2, [fp, #-128]
	ldr	r3, [fp, #-112]
	cmp	r2, r3
	blt	.L3109
.L3108:
	sub	r2, fp, #56
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #4
	add	r3, r2, r3
	mov	r1, r3
	ldr	r0, [fp, #-124]
	bl	asm_modrm
.L3098:
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3, #2]
	cmp	r3, #154
	beq	.L3110
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3, #2]
	cmp	r3, #234
	bne	.L3111
.L3110:
	sub	r3, fp, #56
	add	r3, r3, #24
	mov	r0, r3
	bl	gen_expr32
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	beq	.L3112
	ldr	r0, .L3147+72
	bl	error
.L3112:
	ldr	r3, [fp, #-48]
	mov	r0, r3
	bl	gen_le16
	b	.L3018
.L3111:
	mov	r3, #0
	str	r3, [fp, #-128]
	b	.L3114
.L3127:
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-64]
	str	r3, [fp, #-120]
	ldr	r2, [fp, #-120]
	ldr	r3, .L3147+76
	and	r3, r3, r2
	cmp	r3, #0
	beq	.L3115
	ldr	r3, [fp, #-120]
	cmp	r3, #13312
	beq	.L3116
	ldr	r3, [fp, #-120]
	cmp	r3, #12288
	bne	.L3117
.L3116:
	ldr	r3, [fp, #-88]
	cmp	r3, #0
	bne	.L3118
	mov	r3, #1024
	str	r3, [fp, #-120]
	b	.L3117
.L3118:
	ldr	r3, [fp, #-88]
	cmp	r3, #1
	bne	.L3119
	mov	r3, #4096
	str	r3, [fp, #-120]
	b	.L3117
.L3119:
	mov	r3, #8192
	str	r3, [fp, #-120]
.L3117:
	ldr	r3, [fp, #-120]
	and	r3, r3, #3072
	cmp	r3, #0
	beq	.L3120
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #4
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-40]
	cmp	r3, #0
	bne	.L3146
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #4
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-44]
	mov	r0, r3
	bl	g
	b	.L3115
.L3120:
	ldr	r3, [fp, #-120]
	and	r3, r3, #4096
	cmp	r3, #0
	beq	.L3123
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #4
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-40]
	cmp	r3, #0
	beq	.L3124
	b	.L3122
.L3146:
	nop
.L3122:
	ldr	r0, .L3147+72
	bl	error
.L3124:
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #4
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-44]
	mov	r0, r3
	bl	gen_le16
	b	.L3115
.L3123:
	ldr	r3, [fp, #-132]
	ldrh	r3, [r3, #4]
	mov	r2, r3
	ldr	r3, .L3147+80
	and	r3, r3, r2
	cmp	r3, #0
	beq	.L3125
	ldr	r3, [fp, #-116]
	cmp	r3, #0
	beq	.L3126
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #4
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-44]
	mov	r0, r3
	bl	g
	b	.L3115
.L3126:
	sub	r2, fp, #56
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #4
	add	r3, r3, #8
	add	r3, r2, r3
	mov	r0, r3
	bl	gen_disp32
	b	.L3115
.L3125:
	sub	r2, fp, #56
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #4
	add	r3, r3, #8
	add	r3, r2, r3
	mov	r0, r3
	bl	gen_expr32
.L3115:
	ldr	r3, [fp, #-128]
	add	r3, r3, #1
	str	r3, [fp, #-128]
.L3114:
	ldr	r2, [fp, #-128]
	ldr	r3, [fp, #-112]
	cmp	r2, r3
	blt	.L3127
.L3018:
	ldr	r3, .L3147
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L3128
	bl	__stack_chk_fail
.L3128:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3148:
	.align	2
.L3147:
	.word	.LC233
	.word	tok
	.word	.LC228
	.word	asm_instrs
	.word	715827883
	.word	937
	.word	op0_codes
	.word	.LC229
	.word	reg_to_size
	.word	598
	.word	601
	.word	.LC230
	.word	519
	.word	test_bits
	.word	cur_text_section
	.word	ind
	.word	.LC231
	.word	524319
	.word	.LC232
	.word	277504
	.word	1025
	.size	asm_opcode, .-asm_opcode
	.section	.rodata
	.align	2
.LC234:
	.ascii	"unknown constraint '%c'\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	constraint_priority, %function
constraint_priority:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-16]
.L3161:
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L3164
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-8]
	sub	r3, r3, #65
	cmp	r3, #49
	ldrls	pc, [pc, r3, asl #2]
	b	.L3152
.L3154:
	.word	.L3158
	.word	.L3152
	.word	.L3152
	.word	.L3157
	.word	.L3152
	.word	.L3152
	.word	.L3152
	.word	.L3152
	.word	.L3156
	.word	.L3152
	.word	.L3152
	.word	.L3152
	.word	.L3156
	.word	.L3156
	.word	.L3152
	.word	.L3152
	.word	.L3152
	.word	.L3152
	.word	.L3157
	.word	.L3152
	.word	.L3152
	.word	.L3152
	.word	.L3152
	.word	.L3152
	.word	.L3152
	.word	.L3152
	.word	.L3152
	.word	.L3152
	.word	.L3152
	.word	.L3152
	.word	.L3152
	.word	.L3152
	.word	.L3157
	.word	.L3157
	.word	.L3157
	.word	.L3157
	.word	.L3152
	.word	.L3152
	.word	.L3156
	.word	.L3152
	.word	.L3156
	.word	.L3152
	.word	.L3152
	.word	.L3152
	.word	.L3156
	.word	.L3152
	.word	.L3152
	.word	.L3152
	.word	.L3155
	.word	.L3153
.L3158:
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L3159
.L3157:
	mov	r3, #1
	str	r3, [fp, #-12]
	b	.L3159
.L3155:
	mov	r3, #2
	str	r3, [fp, #-12]
	b	.L3159
.L3153:
	mov	r3, #3
	str	r3, [fp, #-12]
	b	.L3159
.L3156:
	mov	r3, #4
	str	r3, [fp, #-12]
	b	.L3159
.L3152:
	ldr	r1, [fp, #-8]
	ldr	r0, .L3165
	bl	error
	mov	r3, #0
	str	r3, [fp, #-12]
.L3159:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	ble	.L3161
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-16]
	b	.L3161
.L3164:
	nop
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3166:
	.align	2
.L3165:
	.word	.LC234
	.size	constraint_priority, .-constraint_priority
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	skip_constraint_modifiers, %function
skip_constraint_modifiers:
	@ 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]
	b	.L3168
.L3169:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L3168:
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #61
	beq	.L3169
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #38
	beq	.L3169
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #43
	beq	.L3169
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #37
	beq	.L3169
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	skip_constraint_modifiers, .-skip_constraint_modifiers
	.section	.rodata
	.align	2
.LC235:
	.ascii	"invalid reference in constraint %d ('%s')\000"
	.align	2
.LC236:
	.ascii	"cannot reference twice the same operand\000"
	.align	2
.LC237:
	.ascii	"'%c' modifier can only be applied to outputs\000"
	.align	2
.LC238:
	.ascii	"asm constraint %d ('%s') could not be satisfied\000"
	.align	2
.LC239:
	.ascii	"could not find free output register for reloading\000"
	.align	2
.LC240:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	asm_compute_constraints, %function
asm_compute_constraints:
	@ args = 4, pretend = 0, frame = 200
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #200
	str	r0, [fp, #-184]
	str	r1, [fp, #-188]
	str	r2, [fp, #-192]
	str	r3, [fp, #-196]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-200]
	ldr	r3, .L3258
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-180]
	b	.L3172
.L3173:
	ldr	r2, [fp, #-180]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-184]
	add	r3, r3, r2
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-160]
	mvn	r2, #0
	str	r2, [r3, #32]
	ldr	r3, [fp, #-160]
	mvn	r2, #0
	str	r2, [r3, #28]
	ldr	r3, [fp, #-160]
	mvn	r2, #0
	str	r2, [r3, #40]
	ldr	r3, [fp, #-160]
	mov	r2, #0
	str	r2, [r3, #48]
	ldr	r3, [fp, #-160]
	mov	r2, #0
	str	r2, [r3, #52]
	ldr	r3, [fp, #-180]
	add	r3, r3, #1
	str	r3, [fp, #-180]
.L3172:
	ldr	r2, [fp, #-180]
	ldr	r3, [fp, #-188]
	cmp	r2, r3
	blt	.L3173
	mov	r3, #0
	str	r3, [fp, #-180]
	b	.L3174
.L3181:
	ldr	r2, [fp, #-180]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-184]
	add	r3, r3, r2
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-160]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-164]
	ldr	r0, [fp, #-164]
	bl	skip_constraint_modifiers
	str	r0, [fp, #-164]
	ldr	r3, [fp, #-164]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	isnum
	mov	r3, r0
	cmp	r3, #0
	bne	.L3175
	ldr	r3, [fp, #-164]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #91
	bne	.L3176
.L3175:
	mov	r3, #0
	ldr	r2, [fp, #-164]
	ldr	r1, [fp, #-188]
	ldr	r0, [fp, #-184]
	bl	find_constraint
	str	r0, [fp, #-140]
	ldr	r2, [fp, #-140]
	ldr	r3, [fp, #-180]
	cmp	r2, r3
	bcs	.L3177
	ldr	r2, [fp, #-180]
	ldr	r3, [fp, #-192]
	cmp	r2, r3
	bge	.L3178
.L3177:
	ldr	r2, [fp, #-164]
	ldr	r1, [fp, #-180]
	ldr	r0, .L3258+4
	bl	error
.L3178:
	ldr	r3, [fp, #-160]
	ldr	r2, [fp, #-140]
	str	r2, [r3, #28]
	ldr	r2, [fp, #-140]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-184]
	add	r3, r3, r2
	ldr	r3, [r3, #32]
	cmp	r3, #0
	blt	.L3179
	ldr	r0, .L3258+8
	bl	error
.L3179:
	ldr	r2, [fp, #-140]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-184]
	add	r3, r3, r2
	ldr	r2, [fp, #-180]
	str	r2, [r3, #32]
	ldr	r3, [fp, #-160]
	mov	r2, #5
	str	r2, [r3, #36]
	b	.L3180
.L3176:
	ldr	r0, [fp, #-164]
	bl	constraint_priority
	mov	r2, r0
	ldr	r3, [fp, #-160]
	str	r2, [r3, #36]
.L3180:
	ldr	r3, [fp, #-180]
	add	r3, r3, #1
	str	r3, [fp, #-180]
.L3174:
	ldr	r2, [fp, #-180]
	ldr	r3, [fp, #-188]
	cmp	r2, r3
	blt	.L3181
	mov	r3, #0
	str	r3, [fp, #-180]
	b	.L3182
.L3183:
	ldr	r3, [fp, #-180]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r2, [fp, #-180]
	str	r2, [r3, #-132]
	ldr	r3, [fp, #-180]
	add	r3, r3, #1
	str	r3, [fp, #-180]
.L3182:
	ldr	r2, [fp, #-180]
	ldr	r3, [fp, #-188]
	cmp	r2, r3
	blt	.L3183
	mov	r3, #0
	str	r3, [fp, #-180]
	b	.L3184
.L3188:
	ldr	r3, [fp, #-180]
	add	r3, r3, #1
	str	r3, [fp, #-176]
	b	.L3185
.L3187:
	ldr	r3, [fp, #-180]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-132]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-184]
	add	r3, r3, r2
	ldr	r3, [r3, #36]
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-176]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-132]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-184]
	add	r3, r3, r2
	ldr	r3, [r3, #36]
	str	r3, [fp, #-148]
	ldr	r2, [fp, #-148]
	ldr	r3, [fp, #-152]
	cmp	r2, r3
	bge	.L3186
	ldr	r3, [fp, #-180]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-132]
	str	r3, [fp, #-144]
	ldr	r3, [fp, #-176]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r2, [r3, #-132]
	ldr	r3, [fp, #-180]
	lsl	r3, r3, #2
	sub	r1, fp, #4
	add	r3, r1, r3
	str	r2, [r3, #-132]
	ldr	r3, [fp, #-176]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r2, [fp, #-144]
	str	r2, [r3, #-132]
.L3186:
	ldr	r3, [fp, #-176]
	add	r3, r3, #1
	str	r3, [fp, #-176]
.L3185:
	ldr	r2, [fp, #-176]
	ldr	r3, [fp, #-188]
	cmp	r2, r3
	blt	.L3187
	ldr	r3, [fp, #-180]
	add	r3, r3, #1
	str	r3, [fp, #-180]
.L3184:
	ldr	r3, [fp, #-188]
	sub	r3, r3, #1
	ldr	r2, [fp, #-180]
	cmp	r2, r3
	blt	.L3188
	mov	r3, #0
	str	r3, [fp, #-180]
	b	.L3189
.L3192:
	ldr	r3, [fp, #-180]
	ldr	r2, [fp, #-196]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L3190
	sub	r2, fp, #16
	ldr	r3, [fp, #-180]
	add	r3, r2, r3
	mov	r2, #3
	strb	r2, [r3]
	b	.L3191
.L3190:
	sub	r2, fp, #16
	ldr	r3, [fp, #-180]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
.L3191:
	ldr	r3, [fp, #-180]
	add	r3, r3, #1
	str	r3, [fp, #-180]
.L3189:
	ldr	r3, [fp, #-180]
	cmp	r3, #7
	ble	.L3192
	mov	r3, #3
	strb	r3, [fp, #-12]
	mov	r3, #3
	strb	r3, [fp, #-11]
	mov	r3, #0
	str	r3, [fp, #-180]
	b	.L3193
.L3238:
	ldr	r3, [fp, #-180]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-132]
	str	r3, [fp, #-176]
	ldr	r2, [fp, #-176]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-184]
	add	r3, r3, r2
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-160]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-164]
	ldr	r3, [fp, #-160]
	ldr	r3, [r3, #28]
	cmp	r3, #0
	bge	.L3249
	ldr	r3, [fp, #-160]
	ldr	r3, [r3, #32]
	cmp	r3, #0
	blt	.L3196
	mov	r3, #3
	str	r3, [fp, #-168]
	b	.L3216
.L3196:
	ldr	r2, [fp, #-176]
	ldr	r3, [fp, #-192]
	cmp	r2, r3
	bge	.L3198
	mov	r3, #1
	str	r3, [fp, #-168]
	b	.L3216
.L3198:
	mov	r3, #2
	str	r3, [fp, #-168]
.L3197:
.L3216:
	ldr	r3, [fp, #-164]
	add	r2, r3, #1
	str	r2, [fp, #-164]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-156]
	sub	r3, r3, #38
	cmp	r3, #76
	ldrls	pc, [pc, r3, asl #2]
	b	.L3199
.L3201:
	.word	.L3215
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3214
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3216
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3212
	.word	.L3199
	.word	.L3199
	.word	.L3211
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3210
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3210
	.word	.L3210
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3209
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3208
	.word	.L3207
	.word	.L3206
	.word	.L3205
	.word	.L3199
	.word	.L3199
	.word	.L3203
	.word	.L3199
	.word	.L3204
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3203
	.word	.L3199
	.word	.L3199
	.word	.L3199
	.word	.L3202
	.word	.L3200
.L3214:
	ldr	r3, [fp, #-160]
	mov	r2, #1
	str	r2, [r3, #52]
.L3215:
	ldr	r2, [fp, #-176]
	ldr	r3, [fp, #-192]
	cmp	r2, r3
	blt	.L3217
	ldr	r1, [fp, #-156]
	ldr	r0, .L3258+12
	bl	error
.L3217:
	mov	r3, #3
	str	r3, [fp, #-168]
	b	.L3216
.L3212:
	ldrb	r3, [fp, #-16]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-168]
	and	r3, r3, r2
	cmp	r3, #0
	bne	.L3216
	ldrb	r3, [fp, #-14]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-168]
	and	r3, r3, r2
	cmp	r3, #0
	beq	.L3219
	b	.L3216
.L3219:
	ldr	r3, [fp, #-160]
	mov	r2, #1
	str	r2, [r3, #44]
	ldr	r3, [fp, #-160]
	mov	r2, #0
	str	r2, [r3, #40]
	ldrb	r3, [fp, #-16]	@ zero_extendqisi2
	lsl	r3, r3, #24
	asr	r2, r3, #24
	ldr	r3, [fp, #-168]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	orr	r3, r2, r3
	lsl	r3, r3, #24
	asr	r3, r3, #24
	and	r3, r3, #255
	strb	r3, [fp, #-16]
	ldrb	r3, [fp, #-14]	@ zero_extendqisi2
	lsl	r3, r3, #24
	asr	r2, r3, #24
	ldr	r3, [fp, #-168]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	orr	r3, r2, r3
	lsl	r3, r3, #24
	asr	r3, r3, #24
	and	r3, r3, #255
	strb	r3, [fp, #-14]
	b	.L3220
.L3208:
	mov	r3, #0
	str	r3, [fp, #-172]
	b	.L3221
.L3207:
	mov	r3, #3
	str	r3, [fp, #-172]
	b	.L3221
.L3206:
	mov	r3, #1
	str	r3, [fp, #-172]
	b	.L3221
.L3205:
	mov	r3, #2
	str	r3, [fp, #-172]
	b	.L3221
.L3209:
	mov	r3, #6
	str	r3, [fp, #-172]
	b	.L3221
.L3211:
	mov	r3, #7
	str	r3, [fp, #-172]
.L3221:
	sub	r2, fp, #16
	ldr	r3, [fp, #-172]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-168]
	and	r3, r3, r2
	cmp	r3, #0
	beq	.L3250
	b	.L3216
.L3202:
	mov	r3, #0
	str	r3, [fp, #-172]
	b	.L3224
.L3226:
	sub	r2, fp, #16
	ldr	r3, [fp, #-172]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-168]
	and	r3, r3, r2
	cmp	r3, #0
	beq	.L3251
	ldr	r3, [fp, #-172]
	add	r3, r3, #1
	str	r3, [fp, #-172]
.L3224:
	ldr	r3, [fp, #-172]
	cmp	r3, #3
	ble	.L3226
	b	.L3216
.L3200:
	mov	r3, #0
	str	r3, [fp, #-172]
	b	.L3227
.L3229:
	sub	r2, fp, #16
	ldr	r3, [fp, #-172]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-168]
	and	r3, r3, r2
	cmp	r3, #0
	beq	.L3252
	ldr	r3, [fp, #-172]
	add	r3, r3, #1
	str	r3, [fp, #-172]
.L3227:
	ldr	r3, [fp, #-172]
	cmp	r3, #7
	ble	.L3229
	b	.L3216
.L3250:
	nop
	b	.L3223
.L3251:
	nop
	b	.L3223
.L3252:
	nop
.L3223:
	ldr	r3, [fp, #-160]
	mov	r2, #0
	str	r2, [r3, #44]
	ldr	r3, [fp, #-160]
	ldr	r2, [fp, #-172]
	str	r2, [r3, #40]
	sub	r2, fp, #16
	ldr	r3, [fp, #-172]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #24
	asr	r2, r3, #24
	ldr	r3, [fp, #-168]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	orr	r3, r2, r3
	lsl	r3, r3, #24
	asr	r3, r3, #24
	and	r1, r3, #255
	sub	r2, fp, #16
	ldr	r3, [fp, #-172]
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3]
	b	.L3220
.L3204:
	ldr	r3, [fp, #-160]
	ldr	r3, [r3, #24]
	ldrh	r3, [r3, #8]
	lsl	r3, r3, #23
	lsr	r3, r3, #23
	cmp	r3, #240
	beq	.L3253
	b	.L3216
.L3210:
	ldr	r3, [fp, #-160]
	ldr	r3, [r3, #24]
	ldrh	r3, [r3, #8]
	lsl	r3, r3, #22
	lsr	r3, r3, #22
	cmp	r3, #240
	beq	.L3254
	b	.L3216
.L3203:
	ldr	r2, [fp, #-176]
	ldr	r3, [fp, #-192]
	cmp	r2, r3
	blt	.L3232
	ldr	r3, [fp, #-156]
	cmp	r3, #109
	bne	.L3255
.L3232:
	ldr	r3, [fp, #-160]
	ldr	r3, [r3, #24]
	ldrh	r3, [r3, #8]
	and	r3, r3, #255
	cmp	r3, #241
	bne	.L3255
	mov	r3, #0
	str	r3, [fp, #-172]
	b	.L3234
.L3237:
	sub	r2, fp, #16
	ldr	r3, [fp, #-172]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r3, r3, #2
	cmp	r3, #0
	beq	.L3256
	ldr	r3, [fp, #-172]
	add	r3, r3, #1
	str	r3, [fp, #-172]
.L3234:
	ldr	r3, [fp, #-172]
	cmp	r3, #7
	ble	.L3237
	b	.L3216
.L3256:
	nop
.L3236:
	sub	r2, fp, #16
	ldr	r3, [fp, #-172]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	orr	r3, r3, #2
	and	r1, r3, #255
	sub	r2, fp, #16
	ldr	r3, [fp, #-172]
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-160]
	ldr	r2, [fp, #-172]
	str	r2, [r3, #40]
	ldr	r3, [fp, #-160]
	mov	r2, #1
	str	r2, [r3, #48]
	b	.L3255
.L3199:
	ldr	r3, [fp, #-160]
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r1, [fp, #-176]
	ldr	r0, .L3258+16
	bl	error
	b	.L3220
.L3253:
	nop
	b	.L3220
.L3254:
	nop
	b	.L3220
.L3255:
	nop
.L3220:
	ldr	r3, [fp, #-160]
	ldr	r3, [r3, #32]
	cmp	r3, #0
	blt	.L3195
	ldr	r3, [fp, #-160]
	ldr	r3, [r3, #32]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-184]
	add	r3, r3, r2
	ldr	r2, [fp, #-160]
	ldr	r2, [r2, #40]
	str	r2, [r3, #40]
	ldr	r3, [fp, #-160]
	ldr	r3, [r3, #32]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-184]
	add	r3, r3, r2
	ldr	r2, [fp, #-160]
	ldr	r2, [r2, #44]
	str	r2, [r3, #44]
	b	.L3195
.L3249:
	nop
.L3195:
	ldr	r3, [fp, #-180]
	add	r3, r3, #1
	str	r3, [fp, #-180]
.L3193:
	ldr	r2, [fp, #-180]
	ldr	r3, [fp, #-188]
	cmp	r2, r3
	blt	.L3238
	ldr	r3, [fp, #-200]
	mvn	r2, #0
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-180]
	b	.L3239
.L3246:
	ldr	r2, [fp, #-180]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-184]
	add	r3, r3, r2
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-160]
	ldr	r3, [r3, #40]
	cmp	r3, #0
	blt	.L3240
	ldr	r3, [fp, #-160]
	ldr	r3, [r3, #24]
	ldrh	r3, [r3, #8]
	and	r3, r3, #255
	cmp	r3, #241
	bne	.L3240
	ldr	r3, [fp, #-160]
	ldr	r3, [r3, #48]
	cmp	r3, #0
	bne	.L3240
	mov	r3, #0
	str	r3, [fp, #-172]
	b	.L3241
.L3244:
	sub	r2, fp, #16
	ldr	r3, [fp, #-172]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L3257
	ldr	r3, [fp, #-172]
	add	r3, r3, #1
	str	r3, [fp, #-172]
.L3241:
	ldr	r3, [fp, #-172]
	cmp	r3, #7
	ble	.L3244
	ldr	r0, .L3258+20
	bl	error
	b	.L3243
.L3257:
	nop
.L3243:
	ldr	r3, [fp, #-200]
	ldr	r2, [fp, #-172]
	str	r2, [r3]
	b	.L3245
.L3240:
	ldr	r3, [fp, #-180]
	add	r3, r3, #1
	str	r3, [fp, #-180]
.L3239:
	ldr	r2, [fp, #-180]
	ldr	r3, [fp, #-188]
	cmp	r2, r3
	blt	.L3246
.L3245:
	nop
	ldr	r3, .L3258
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L3247
	bl	__stack_chk_fail
.L3247:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3259:
	.align	2
.L3258:
	.word	.LC240
	.word	.LC235
	.word	.LC236
	.word	.LC237
	.word	.LC238
	.word	.LC239
	.size	asm_compute_constraints, .-asm_compute_constraints
	.section	.rodata
	.align	2
.LC241:
	.ascii	"%d(%%ebp)\000"
	.align	2
.LC242:
	.ascii	"internal compiler error\000"
	.align	2
.LC243:
	.ascii	"(%%%s)\000"
	.align	2
.LC244:
	.ascii	"cannot use byte register\000"
	.align	2
.LC245:
	.ascii	"%%%s\000"
	.align	2
.LC246:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	subst_asm_operand, %function
subst_asm_operand:
	@ args = 0, pretend = 0, frame = 104
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #104
	str	r0, [fp, #-96]
	str	r1, [fp, #-100]
	str	r2, [fp, #-104]
	ldr	r3, .L3288
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-100]
	ldrh	r3, [r3, #8]
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-80]
	and	r3, r3, #255
	cmp	r3, #240
	bne	.L3261
	ldr	r3, [fp, #-80]
	and	r3, r3, #256
	cmp	r3, #0
	bne	.L3262
	ldr	r3, [fp, #-104]
	cmp	r3, #99
	beq	.L3262
	ldr	r3, [fp, #-104]
	cmp	r3, #110
	beq	.L3262
	mov	r1, #36
	ldr	r0, [fp, #-96]
	bl	cstr_ccat
.L3262:
	ldr	r3, [fp, #-80]
	and	r3, r3, #512
	cmp	r3, #0
	beq	.L3263
	ldr	r3, [fp, #-100]
	ldr	r3, [r3, #24]
	ldr	r3, [r3]
	mov	r1, #0
	mov	r0, r3
	bl	get_tok_str
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-96]
	bl	cstr_cat
	ldr	r3, [fp, #-100]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	beq	.L3287
	mov	r1, #43
	ldr	r0, [fp, #-96]
	bl	cstr_ccat
.L3263:
	ldr	r3, [fp, #-100]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-104]
	cmp	r3, #110
	bne	.L3266
	ldr	r3, [fp, #-76]
	rsb	r3, r3, #0
	str	r3, [fp, #-76]
.L3266:
	ldr	r3, [fp, #-100]
	ldr	r3, [r3, #16]
	sub	r0, fp, #72
	ldr	r2, .L3288+4
	mov	r1, #64
	bl	snprintf
	sub	r3, fp, #72
	mov	r1, r3
	ldr	r0, [fp, #-96]
	bl	cstr_cat
	b	.L3260
.L3261:
	ldr	r3, [fp, #-80]
	and	r3, r3, #255
	cmp	r3, #242
	bne	.L3268
	ldr	r3, [fp, #-100]
	ldr	r3, [r3, #16]
	sub	r0, fp, #72
	ldr	r2, .L3288+8
	mov	r1, #64
	bl	snprintf
	sub	r3, fp, #72
	mov	r1, r3
	ldr	r0, [fp, #-96]
	bl	cstr_cat
	b	.L3260
.L3268:
	ldr	r3, [fp, #-80]
	and	r3, r3, #256
	cmp	r3, #0
	beq	.L3269
	ldr	r3, [fp, #-80]
	and	r3, r3, #255
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	cmp	r3, #239
	ble	.L3270
	ldr	r0, .L3288+12
	bl	error
.L3270:
	ldr	r3, [fp, #-88]
	add	r3, r3, #420
	add	r3, r3, #3
	mov	r1, #0
	mov	r0, r3
	bl	get_tok_str
	mov	r3, r0
	sub	r0, fp, #72
	ldr	r2, .L3288+16
	mov	r1, #64
	bl	snprintf
	sub	r3, fp, #72
	mov	r1, r3
	ldr	r0, [fp, #-96]
	bl	cstr_cat
	b	.L3260
.L3269:
	ldr	r3, [fp, #-80]
	and	r3, r3, #255
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	cmp	r3, #239
	ble	.L3271
	ldr	r0, .L3288+12
	bl	error
.L3271:
	ldr	r3, [fp, #-100]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #1
	bne	.L3272
	mov	r3, #1
	str	r3, [fp, #-84]
	b	.L3273
.L3272:
	ldr	r3, [fp, #-100]
	ldr	r3, [r3]
	and	r3, r3, #15
	cmp	r3, #2
	bne	.L3274
	mov	r3, #2
	str	r3, [fp, #-84]
	b	.L3273
.L3274:
	mov	r3, #4
	str	r3, [fp, #-84]
.L3273:
	ldr	r3, [fp, #-84]
	cmp	r3, #1
	bne	.L3275
	ldr	r3, [fp, #-88]
	cmp	r3, #3
	ble	.L3275
	mov	r3, #4
	str	r3, [fp, #-84]
.L3275:
	ldr	r3, [fp, #-104]
	cmp	r3, #98
	bne	.L3276
	ldr	r3, [fp, #-88]
	cmp	r3, #3
	ble	.L3277
	ldr	r0, .L3288+20
	bl	error
.L3277:
	mov	r3, #1
	str	r3, [fp, #-84]
	b	.L3278
.L3276:
	ldr	r3, [fp, #-104]
	cmp	r3, #104
	bne	.L3279
	ldr	r3, [fp, #-88]
	cmp	r3, #3
	ble	.L3280
	ldr	r0, .L3288+20
	bl	error
.L3280:
	mvn	r3, #0
	str	r3, [fp, #-84]
	b	.L3278
.L3279:
	ldr	r3, [fp, #-104]
	cmp	r3, #119
	bne	.L3278
	mov	r3, #2
	str	r3, [fp, #-84]
.L3278:
	ldr	r3, [fp, #-84]
	cmp	r3, #2
	beq	.L3281
	ldr	r3, [fp, #-84]
	cmp	r3, #2
	bgt	.L3282
	ldr	r3, [fp, #-84]
	cmn	r3, #1
	beq	.L3283
	ldr	r3, [fp, #-84]
	cmp	r3, #1
	beq	.L3284
	b	.L3282
.L3283:
	ldr	r3, [fp, #-88]
	add	r3, r3, #408
	add	r3, r3, #3
	str	r3, [fp, #-88]
	b	.L3285
.L3284:
	ldr	r3, [fp, #-88]
	add	r3, r3, #404
	add	r3, r3, #3
	str	r3, [fp, #-88]
	b	.L3285
.L3281:
	ldr	r3, [fp, #-88]
	add	r3, r3, #412
	add	r3, r3, #3
	str	r3, [fp, #-88]
	b	.L3285
.L3282:
	ldr	r3, [fp, #-88]
	add	r3, r3, #420
	add	r3, r3, #3
	str	r3, [fp, #-88]
	nop
.L3285:
	mov	r1, #0
	ldr	r0, [fp, #-88]
	bl	get_tok_str
	mov	r3, r0
	sub	r0, fp, #72
	ldr	r2, .L3288+24
	mov	r1, #64
	bl	snprintf
	sub	r3, fp, #72
	mov	r1, r3
	ldr	r0, [fp, #-96]
	bl	cstr_cat
	b	.L3260
.L3287:
	nop
.L3260:
	ldr	r3, .L3288
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L3286
	bl	__stack_chk_fail
.L3286:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3289:
	.align	2
.L3288:
	.word	.LC246
	.word	.LC80
	.word	.LC241
	.word	.LC242
	.word	.LC243
	.word	.LC244
	.word	.LC245
	.size	subst_asm_operand, .-subst_asm_operand
	.section	.rodata
	.align	2
.LC247:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	asm_gen_code, %function
asm_gen_code:
	@ args = 8, pretend = 0, frame = 88
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #88
	str	r0, [fp, #-72]
	str	r1, [fp, #-76]
	str	r2, [fp, #-80]
	str	r3, [fp, #-84]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-88]
	ldr	r3, .L3313
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r2, [fp, #-88]
	sub	r3, fp, #16
	mov	r1, r2
	mov	r2, #8
	mov	r0, r3
	bl	memcpy
	mov	r3, #0
	str	r3, [fp, #-64]
	b	.L3291
.L3293:
	ldr	r2, [fp, #-64]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-72]
	add	r3, r3, r2
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #40]
	cmp	r3, #0
	blt	.L3292
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #40]
	sub	r2, fp, #4
	add	r3, r2, r3
	mov	r2, #1
	strb	r2, [r3, #-12]
.L3292:
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
.L3291:
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-76]
	cmp	r2, r3
	blt	.L3293
	ldr	r3, [fp, #-84]
	cmp	r3, #0
	bne	.L3294
	mov	r3, #0
	str	r3, [fp, #-64]
	b	.L3295
.L3297:
	ldr	r2, .L3313+4
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-60]
	sub	r2, fp, #16
	ldr	r3, [fp, #-60]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L3296
	ldr	r3, [fp, #-60]
	add	r3, r3, #80
	mov	r0, r3
	bl	g
.L3296:
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
.L3295:
	ldr	r3, [fp, #-64]
	cmp	r3, #2
	ble	.L3297
	mov	r3, #0
	str	r3, [fp, #-64]
	b	.L3298
.L3302:
	ldr	r2, [fp, #-64]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-72]
	add	r3, r3, r2
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #40]
	cmp	r3, #0
	blt	.L3299
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #24]
	ldrh	r3, [r3, #8]
	and	r3, r3, #255
	cmp	r3, #241
	bne	.L3300
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #48]
	cmp	r3, #0
	beq	.L3300
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #24]
	sub	ip, fp, #52
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	ldrh	r3, [fp, #-44]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	bic	r3, r3, #255
	lsl	r3, r3, #16
	asr	r3, r3, #16
	orr	r3, r3, #242
	lsl	r3, r3, #16
	asr	r3, r3, #16
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #40]
	sub	r2, fp, #52
	mov	r1, r2
	mov	r0, r3
	bl	load
	b	.L3299
.L3300:
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-80]
	cmp	r2, r3
	bge	.L3301
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #52]
	cmp	r3, #0
	beq	.L3299
.L3301:
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #24]
	mov	r1, r3
	mov	r0, r2
	bl	load
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #44]
	cmp	r3, #0
	beq	.L3299
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #24]
	sub	ip, fp, #52
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	ldr	r3, [fp, #-36]
	add	r3, r3, #4
	str	r3, [fp, #-36]
	sub	r3, fp, #52
	mov	r1, r3
	mov	r0, #2
	bl	load
.L3299:
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
.L3298:
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-76]
	cmp	r2, r3
	blt	.L3302
	b	.L3312
.L3294:
	mov	r3, #0
	str	r3, [fp, #-64]
	b	.L3304
.L3307:
	ldr	r2, [fp, #-64]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-72]
	add	r3, r3, r2
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #40]
	cmp	r3, #0
	blt	.L3305
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #24]
	ldrh	r3, [r3, #8]
	and	r3, r3, #255
	cmp	r3, #241
	bne	.L3306
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #48]
	cmp	r3, #0
	bne	.L3305
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #24]
	sub	ip, fp, #52
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	ldrh	r3, [fp, #-44]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	bic	r3, r3, #255
	lsl	r3, r3, #16
	asr	r3, r3, #16
	orr	r3, r3, #242
	lsl	r3, r3, #16
	asr	r3, r3, #16
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	sub	r3, fp, #52
	mov	r1, r3
	ldr	r0, [fp, #8]
	bl	load
	ldrh	r3, [fp, #-44]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	bic	r3, r3, #255
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, [fp, #8]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	orr	r3, r2, r3
	lsl	r3, r3, #16
	asr	r3, r3, #16
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #40]
	sub	r2, fp, #52
	mov	r1, r2
	mov	r0, r3
	bl	store
	b	.L3305
.L3306:
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #24]
	mov	r1, r3
	mov	r0, r2
	bl	store
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #44]
	cmp	r3, #0
	beq	.L3305
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #24]
	sub	ip, fp, #52
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	ldr	r3, [fp, #-36]
	add	r3, r3, #4
	str	r3, [fp, #-36]
	sub	r3, fp, #52
	mov	r1, r3
	mov	r0, #2
	bl	store
.L3305:
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
.L3304:
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-80]
	cmp	r2, r3
	blt	.L3307
	mov	r3, #2
	str	r3, [fp, #-64]
	b	.L3308
.L3310:
	ldr	r2, .L3313+4
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-60]
	sub	r2, fp, #16
	ldr	r3, [fp, #-60]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L3309
	ldr	r3, [fp, #-60]
	add	r3, r3, #88
	mov	r0, r3
	bl	g
.L3309:
	ldr	r3, [fp, #-64]
	sub	r3, r3, #1
	str	r3, [fp, #-64]
.L3308:
	ldr	r3, [fp, #-64]
	cmp	r3, #0
	bge	.L3310
.L3312:
	nop
	ldr	r3, .L3313
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L3311
	bl	__stack_chk_fail
.L3311:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3314:
	.align	2
.L3313:
	.word	.LC247
	.word	reg_saved.14153
	.size	asm_gen_code, .-asm_gen_code
	.section	.rodata
	.align	2
.LC248:
	.ascii	"memory\000"
	.align	2
.LC249:
	.ascii	"cc\000"
	.align	2
.LC250:
	.ascii	"invalid clobber register '%s'\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	asm_clobber, %function
asm_clobber:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r1, .L3323
	ldr	r0, [fp, #-20]
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L3322
	ldr	r1, .L3323+4
	ldr	r0, [fp, #-20]
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L3322
	ldr	r0, [fp, #-20]
	bl	strlen
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-20]
	bl	tok_alloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #20]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r2, .L3323+8
	cmp	r3, r2
	ble	.L3319
	ldr	r3, [fp, #-12]
	ldr	r2, .L3323+12
	cmp	r3, r2
	bgt	.L3319
	ldr	r3, [fp, #-12]
	sub	r3, r3, #420
	sub	r3, r3, #3
	str	r3, [fp, #-12]
	b	.L3320
.L3319:
	ldr	r3, [fp, #-12]
	ldr	r2, .L3323+16
	cmp	r3, r2
	ble	.L3321
	ldr	r3, [fp, #-12]
	ldr	r2, .L3323+8
	cmp	r3, r2
	bgt	.L3321
	ldr	r3, [fp, #-12]
	sub	r3, r3, #412
	sub	r3, r3, #3
	str	r3, [fp, #-12]
	b	.L3320
.L3321:
	ldr	r1, [fp, #-20]
	ldr	r0, .L3323+20
	bl	error
.L3320:
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	mov	r2, #1
	strb	r2, [r3]
	b	.L3315
.L3322:
	nop
.L3315:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3324:
	.align	2
.L3323:
	.word	.LC248
	.word	.LC249
	.word	422
	.word	430
	.word	414
	.word	.LC250
	.size	asm_clobber, .-asm_clobber
	.section	.rodata
	.align	2
.LC251:
	.ascii	"L..%u\000"
	.align	2
.LC252:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	asm_get_local_label_name, %function
asm_get_local_label_name:
	@ args = 0, pretend = 0, frame = 80
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #80
	str	r0, [fp, #-80]
	str	r1, [fp, #-84]
	ldr	r3, .L3328
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r0, fp, #72
	ldr	r3, [fp, #-84]
	ldr	r2, .L3328+4
	mov	r1, #64
	bl	snprintf
	sub	r3, fp, #72
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	mov	r2, r3
	sub	r3, fp, #72
	mov	r1, r2
	mov	r0, r3
	bl	tok_alloc
	str	r0, [fp, #-76]
	ldr	r3, [fp, #-76]
	ldr	r3, [r3, #20]
	ldr	r2, .L3328
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L3327
	bl	__stack_chk_fail
.L3327:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3329:
	.align	2
.L3328:
	.word	.LC252
	.word	.LC251
	.size	asm_get_local_label_name, .-asm_get_local_label_name
	.section	.rodata
	.align	2
.LC253:
	.ascii	"local label '%d' not found backward\000"
	.align	2
.LC254:
	.ascii	"invalid number syntax\000"
	.align	2
.LC255:
	.ascii	"invalid operation with label\000"
	.align	2
.LC256:
	.ascii	"bad expression syntax [%s]\000"
	.align	2
.LC257:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	asm_expr_unary, %function
asm_expr_unary:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	ldr	r3, .L3356
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L3356+4
	ldr	r3, [r3]
	cmp	r3, #206
	beq	.L3331
	cmp	r3, #206
	bgt	.L3332
	cmp	r3, #183
	beq	.L3333
	cmp	r3, #183
	bgt	.L3332
	cmp	r3, #180
	beq	.L3333
	cmp	r3, #180
	bgt	.L3332
	cmp	r3, #126
	beq	.L3334
	cmp	r3, #126
	bgt	.L3332
	cmp	r3, #45
	beq	.L3334
	cmp	r3, #45
	bgt	.L3332
	cmp	r3, #40
	beq	.L3335
	cmp	r3, #43
	beq	.L3336
	b	.L3332
.L3331:
	ldr	r3, .L3356+8
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	sub	r1, fp, #28
	mov	r2, #0
	mov	r0, r3
	bl	strtoul
	mov	r3, r0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-28]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #98
	beq	.L3337
	ldr	r3, [fp, #-28]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #102
	bne	.L3338
.L3337:
	ldr	r3, [fp, #-20]
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	asm_get_local_label_name
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	label_find
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-28]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #98
	bne	.L3339
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L3340
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L3340
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #28]
	str	r3, [fp, #-24]
.L3340:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L3341
	ldr	r1, [fp, #-20]
	ldr	r0, .L3356+12
	bl	error
	b	.L3341
.L3339:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L3342
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L3341
.L3342:
	ldr	r3, [fp, #-32]
	add	r3, r3, #564
	mov	r2, #0
	ldr	r1, [fp, #-16]
	mov	r0, r3
	bl	label_push
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldr	r2, .L3356+16
	str	r2, [r3, #12]
.L3341:
	ldr	r3, [fp, #-36]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-24]
	str	r2, [r3, #4]
	b	.L3343
.L3338:
	ldr	r3, [fp, #-28]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L3344
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-36]
	str	r2, [r3]
	ldr	r3, [fp, #-36]
	mov	r2, #0
	str	r2, [r3, #4]
	b	.L3343
.L3344:
	ldr	r0, .L3356+20
	bl	error
.L3343:
	bl	next
	b	.L3345
.L3336:
	bl	next
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	asm_expr_unary
	b	.L3345
.L3334:
	ldr	r3, .L3356+4
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	bl	next
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	asm_expr_unary
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L3346
	ldr	r0, .L3356+24
	bl	error
.L3346:
	ldr	r3, [fp, #-12]
	cmp	r3, #45
	bne	.L3347
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	rsb	r2, r3, #0
	ldr	r3, [fp, #-36]
	str	r2, [r3]
	b	.L3345
.L3347:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	mvn	r2, r3
	ldr	r3, [fp, #-36]
	str	r2, [r3]
	b	.L3345
.L3333:
	ldr	r3, .L3356+8
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-36]
	str	r2, [r3]
	ldr	r3, [fp, #-36]
	mov	r2, #0
	str	r2, [r3, #4]
	bl	next
	b	.L3345
.L3335:
	bl	next
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	asm_expr
	mov	r0, #41
	bl	skip
	b	.L3345
.L3332:
	ldr	r3, .L3356+4
	ldr	r3, [r3]
	cmp	r3, #255
	ble	.L3349
	ldr	r3, .L3356+4
	ldr	r3, [r3]
	mov	r0, r3
	bl	label_find
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L3350
	ldr	r3, [fp, #-32]
	add	r3, r3, #564
	ldr	r2, .L3356+4
	ldr	r1, [r2]
	mov	r2, #0
	mov	r0, r3
	bl	label_push
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	mov	r2, #3
	str	r2, [r3, #12]
.L3350:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	ldr	r2, .L3356+28
	cmp	r3, r2
	bne	.L3351
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #20]
	mov	r2, r3
	ldr	r3, [fp, #-36]
	str	r2, [r3]
	ldr	r3, [fp, #-36]
	mov	r2, #0
	str	r2, [r3, #4]
	b	.L3352
.L3351:
	ldr	r3, [fp, #-36]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-24]
	str	r2, [r3, #4]
.L3352:
	bl	next
	b	.L3355
.L3349:
	ldr	r3, .L3356+4
	ldr	r3, [r3]
	ldr	r1, .L3356+8
	mov	r0, r3
	bl	get_tok_str
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L3356+32
	bl	error
.L3355:
	nop
.L3345:
	nop
	ldr	r3, .L3356
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L3354
	bl	__stack_chk_fail
.L3354:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3357:
	.align	2
.L3356:
	.word	.LC257
	.word	tok
	.word	tokc
	.word	.LC253
	.word	259
	.word	.LC254
	.word	.LC255
	.word	65521
	.word	.LC256
	.size	asm_expr_unary, .-asm_expr_unary
	.section	.rodata
	.align	2
.LC258:
	.ascii	"division by zero\000"
	.align	2
.LC259:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	asm_expr_prod, %function
asm_expr_prod:
	@ 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, .L3377
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-24]
	bl	asm_expr_unary
.L3372:
	ldr	r3, .L3377+4
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #42
	beq	.L3359
	ldr	r3, [fp, #-20]
	cmp	r3, #47
	beq	.L3359
	ldr	r3, [fp, #-20]
	cmp	r3, #37
	beq	.L3359
	ldr	r3, [fp, #-20]
	cmp	r3, #1
	beq	.L3359
	ldr	r3, [fp, #-20]
	cmp	r3, #2
	bne	.L3375
.L3359:
	bl	next
	sub	r3, fp, #16
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	asm_expr_unary
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L3361
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L3362
.L3361:
	ldr	r0, .L3377+8
	bl	error
.L3362:
	ldr	r3, [fp, #-20]
	cmp	r3, #47
	beq	.L3363
	ldr	r3, [fp, #-20]
	cmp	r3, #47
	bgt	.L3364
	ldr	r3, [fp, #-20]
	cmp	r3, #42
	beq	.L3365
	ldr	r3, [fp, #-20]
	cmp	r3, #42
	bgt	.L3364
	ldr	r3, [fp, #-20]
	cmp	r3, #1
	beq	.L3366
	ldr	r3, [fp, #-20]
	cmp	r3, #37
	beq	.L3367
	b	.L3364
.L3365:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	mul	r2, r3, r2
	ldr	r3, [fp, #-28]
	str	r2, [r3]
	b	.L3368
.L3363:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L3369
	nop
	b	.L3370
.L3376:
	nop
.L3370:
	ldr	r0, .L3377+12
	bl	error
.L3369:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	mov	r1, r2
	mov	r0, r3
	bl	__aeabi_uidiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-28]
	str	r2, [r3]
	b	.L3368
.L3367:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L3376
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	mov	r1, r2
	mov	r0, r3
	bl	__aeabi_uidivmod
	mov	r3, r1
	mov	r2, r3
	ldr	r3, [fp, #-28]
	str	r2, [r3]
	b	.L3368
.L3366:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	lsl	r2, r2, r3
	ldr	r3, [fp, #-28]
	str	r2, [r3]
	b	.L3368
.L3364:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	lsr	r2, r2, r3
	ldr	r3, [fp, #-28]
	str	r2, [r3]
	nop
.L3368:
	b	.L3372
.L3375:
	nop
	nop
	ldr	r3, .L3377
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L3373
	bl	__stack_chk_fail
.L3373:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3378:
	.align	2
.L3377:
	.word	.LC259
	.word	tok
	.word	.LC255
	.word	.LC258
	.size	asm_expr_prod, .-asm_expr_prod
	.section	.rodata
	.align	2
.LC260:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	asm_expr_logic, %function
asm_expr_logic:
	@ 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, .L3393
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-24]
	bl	asm_expr_prod
.L3388:
	ldr	r3, .L3393+4
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #38
	beq	.L3380
	ldr	r3, [fp, #-20]
	cmp	r3, #124
	beq	.L3380
	ldr	r3, [fp, #-20]
	cmp	r3, #94
	bne	.L3392
.L3380:
	bl	next
	sub	r3, fp, #16
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	asm_expr_prod
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L3382
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L3383
.L3382:
	ldr	r0, .L3393+8
	bl	error
.L3383:
	ldr	r3, [fp, #-20]
	cmp	r3, #38
	beq	.L3384
	ldr	r3, [fp, #-20]
	cmp	r3, #124
	beq	.L3385
	b	.L3391
.L3384:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	and	r2, r2, r3
	ldr	r3, [fp, #-28]
	str	r2, [r3]
	b	.L3387
.L3385:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	orr	r2, r2, r3
	ldr	r3, [fp, #-28]
	str	r2, [r3]
	b	.L3387
.L3391:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eor	r2, r2, r3
	ldr	r3, [fp, #-28]
	str	r2, [r3]
	nop
.L3387:
	b	.L3388
.L3392:
	nop
	nop
	ldr	r3, .L3393
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L3389
	bl	__stack_chk_fail
.L3389:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3394:
	.align	2
.L3393:
	.word	.LC260
	.word	tok
	.word	.LC255
	.size	asm_expr_logic, .-asm_expr_logic
	.section	.rodata
	.align	2
.LC261:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	asm_expr_sum, %function
asm_expr_sum:
	@ 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, .L3413
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-24]
	bl	asm_expr_logic
.L3406:
	ldr	r3, .L3413+4
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #43
	beq	.L3396
	ldr	r3, [fp, #-20]
	cmp	r3, #45
	bne	.L3409
.L3396:
	bl	next
	sub	r3, fp, #16
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	asm_expr_logic
	ldr	r3, [fp, #-20]
	cmp	r3, #43
	bne	.L3398
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L3399
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L3410
.L3399:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r2, r2, r3
	ldr	r3, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L3406
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L3406
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-28]
	str	r2, [r3, #4]
	b	.L3406
.L3398:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	sub	r2, r2, r3
	ldr	r3, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L3402
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L3401
.L3402:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L3403
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L3401
.L3403:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L3411
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L3411
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	beq	.L3404
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #4]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	bne	.L3412
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #4]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L3412
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	ldr	r2, [r2, #4]
	ldr	r2, [r2, #20]
	mov	r1, r2
	ldr	r2, [fp, #-12]
	ldr	r2, [r2, #20]
	sub	r2, r1, r2
	add	r2, r3, r2
	ldr	r3, [fp, #-28]
	str	r2, [r3]
.L3404:
	ldr	r3, [fp, #-28]
	mov	r2, #0
	str	r2, [r3, #4]
	b	.L3401
.L3410:
	nop
	b	.L3400
.L3411:
	nop
	b	.L3400
.L3412:
	nop
.L3400:
	ldr	r0, .L3413+8
	bl	error
.L3401:
	b	.L3406
.L3409:
	nop
	nop
	ldr	r3, .L3413
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L3407
	bl	__stack_chk_fail
.L3407:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3414:
	.align	2
.L3413:
	.word	.LC261
	.word	tok
	.word	.LC255
	.size	asm_expr_sum, .-asm_expr_sum
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	asm_expr, %function
asm_expr:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	asm_expr_sum
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	asm_expr, .-asm_expr
	.section	.rodata
	.align	2
.LC262:
	.ascii	"constant\000"
	.align	2
.LC263:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	asm_int_expr, %function
asm_int_expr:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	ldr	r3, .L3420
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #16
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	asm_expr
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L3417
	ldr	r0, .L3420+4
	bl	expect
.L3417:
	ldr	r3, [fp, #-16]
	ldr	r2, .L3420
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L3419
	bl	__stack_chk_fail
.L3419:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3421:
	.align	2
.L3420:
	.word	.LC263
	.word	.LC262
	.size	asm_int_expr, .-asm_int_expr
	.section	.rodata
	.align	2
.LC264:
	.ascii	"assembler label '%s' already defined\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	asm_new_label1, %function
asm_new_label1:
	@ args = 4, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	ldr	r0, [fp, #-20]
	bl	label_find
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L3426
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L3424
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L3427
	mov	r1, #0
	ldr	r0, [fp, #-20]
	bl	get_tok_str
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L3428
	bl	error
	b	.L3424
.L3426:
	nop
	b	.L3423
.L3427:
	nop
.L3423:
	ldr	r3, [fp, #-16]
	add	r3, r3, #564
	mov	r2, #0
	ldr	r1, [fp, #-20]
	mov	r0, r3
	bl	label_push
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, .L3428+4
	str	r2, [r3, #12]
.L3424:
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-28]
	str	r2, [r3, #4]
	ldr	r2, [fp, #4]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #20]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3429:
	.align	2
.L3428:
	.word	.LC264
	.word	259
	.size	asm_new_label1, .-asm_new_label1
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	asm_new_label, %function
asm_new_label:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	ldr	r3, .L3431
	ldr	r3, [r3]
	ldr	r2, [r3, #16]
	ldr	r3, .L3431+4
	ldr	r3, [r3]
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	asm_new_label1
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3432:
	.align	2
.L3431:
	.word	cur_text_section
	.word	ind
	.size	asm_new_label, .-asm_new_label
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	asm_free_labels, %function
asm_free_labels:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #564]
	str	r3, [fp, #-16]
	b	.L3434
.L3438:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #24]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L3435
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	ldr	r2, .L3439
	cmp	r3, r2
	bne	.L3436
	mov	r3, #1
	str	r3, [fp, #-12]
	b	.L3437
.L3436:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-12]
.L3437:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #20]
	mov	r2, r3
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-16]
	bl	put_extern_sym2
.L3435:
	ldr	r3, .L3439+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	add	r3, r3, #1073741824
	sub	r3, r3, #256
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r2, #0
	str	r2, [r3, #8]
	ldr	r0, [fp, #-16]
	bl	sym_free
	ldr	r3, [fp, #-8]
	str	r3, [fp, #-16]
.L3434:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L3438
	ldr	r3, [fp, #-24]
	mov	r2, #0
	str	r2, [r3, #564]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3440:
	.align	2
.L3439:
	.word	65521
	.word	table_ident
	.size	asm_free_labels, .-asm_free_labels
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	use_section1, %function
use_section1:
	@ 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, .L3442
	ldr	r2, [r3]
	ldr	r3, .L3442+4
	ldr	r3, [r3]
	str	r2, [r3]
	ldr	r2, .L3442+4
	ldr	r3, [fp, #-12]
	str	r3, [r2]
	ldr	r3, .L3442+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, .L3442
	str	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L3443:
	.align	2
.L3442:
	.word	ind
	.word	cur_text_section
	.size	use_section1, .-use_section1
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	use_section, %function
use_section:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	find_section
	str	r0, [fp, #-8]
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	use_section1
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	use_section, .-use_section
	.section	.rodata
	.align	2
.LC265:
	.ascii	"64 bit constant\000"
	.align	2
.LC266:
	.ascii	"repeat < 0; .fill ignored\000"
	.align	2
.LC267:
	.ascii	"size < 0; .fill ignored\000"
	.align	2
.LC268:
	.ascii	"attempt to .org backwards\000"
	.align	2
.LC269:
	.ascii	"string constant\000"
	.align	2
.LC270:
	.ascii	".%s%d\000"
	.align	2
.LC271:
	.ascii	".%s\000"
	.align	2
.LC272:
	.ascii	"no previous section referenced\000"
	.align	2
.LC273:
	.ascii	"unknown assembler directive '.%s'\000"
	.align	2
.LC274:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	asm_parse_directive, %function
asm_parse_directive:
	@ args = 0, pretend = 0, frame = 368
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #372
	str	r0, [fp, #-376]
	ldr	r3, .L3520
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	bl	next
	ldr	r3, .L3520+4
	ldr	r3, [r3]
	str	r3, [fp, #-328]
	ldr	r3, .L3520+8
	ldr	r3, [r3]
	cmp	r3, #884
	beq	.L3446
	cmp	r3, #884
	bgt	.L3447
	cmp	r3, #256
	beq	.L3448
	cmp	r3, #256
	blt	.L3447
	ldr	r2, .L3520+12
	cmp	r3, r2
	bgt	.L3447
	ldr	r2, .L3520+16
	cmp	r3, r2
	blt	.L3447
	sub	r3, r3, #276
	sub	r3, r3, #3
	cmp	r3, #127
	ldrls	pc, [pc, r3, asl #2]
	b	.L3447
.L3450:
	.word	.L3448
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3446
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3459
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3447
	.word	.L3458
	.word	.L3457
	.word	.L3457
	.word	.L3457
	.word	.L3456
	.word	.L3456
	.word	.L3456
	.word	.L3455
	.word	.L3455
	.word	.L3454
	.word	.L3454
	.word	.L3454
	.word	.L3453
	.word	.L3452
	.word	.L3451
	.word	.L3449
.L3457:
	ldr	r3, .L3520+8
	ldr	r3, [r3]
	str	r3, [fp, #-312]
	bl	next
	ldr	r0, [fp, #-376]
	bl	asm_int_expr
	str	r0, [fp, #-368]
	ldr	r3, [fp, #-312]
	cmp	r3, #392
	bne	.L3460
	ldr	r3, [fp, #-368]
	cmp	r3, #0
	blt	.L3461
	ldr	r3, [fp, #-368]
	sub	r2, r3, #1
	ldr	r3, [fp, #-368]
	and	r3, r3, r2
	cmp	r3, #0
	beq	.L3462
.L3461:
	ldr	r0, .L3520+20
	bl	error
.L3462:
	ldr	r3, .L3520+24
	ldr	r2, [r3]
	ldr	r3, [fp, #-368]
	add	r3, r2, r3
	sub	r2, r3, #1
	ldr	r3, [fp, #-368]
	rsb	r3, r3, #0
	and	r3, r3, r2
	str	r3, [fp, #-300]
	ldr	r3, .L3520+24
	ldr	r3, [r3]
	ldr	r2, [fp, #-300]
	sub	r3, r2, r3
	str	r3, [fp, #-360]
	ldr	r3, [fp, #-328]
	ldr	r3, [r3, #32]
	ldr	r2, [fp, #-368]
	cmp	r2, r3
	ble	.L3463
	ldr	r3, [fp, #-328]
	ldr	r2, [fp, #-368]
	str	r2, [r3, #32]
	b	.L3463
.L3460:
	ldr	r3, [fp, #-368]
	str	r3, [fp, #-360]
.L3463:
	mov	r3, #0
	str	r3, [fp, #-364]
	ldr	r3, .L3520+8
	ldr	r3, [r3]
	cmp	r3, #44
	bne	.L3514
	bl	next
	ldr	r0, [fp, #-376]
	bl	asm_int_expr
	str	r0, [fp, #-364]
	b	.L3464
.L3514:
	nop
.L3464:
	ldr	r3, [fp, #-328]
	ldr	r3, [r3, #20]
	cmp	r3, #8
	beq	.L3465
	ldr	r3, .L3520+24
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-328]
	str	r2, [r3]
	ldr	r3, [fp, #-360]
	mov	r1, r3
	ldr	r0, [fp, #-328]
	bl	section_ptr_add
	str	r0, [fp, #-296]
	ldr	r3, [fp, #-360]
	mov	r2, r3
	ldr	r1, [fp, #-364]
	ldr	r0, [fp, #-296]
	bl	memset
.L3465:
	ldr	r3, .L3520+24
	ldr	r2, [r3]
	ldr	r3, [fp, #-360]
	add	r3, r2, r3
	ldr	r2, .L3520+24
	str	r3, [r2]
	b	.L3466
.L3449:
	bl	next
.L3473:
	ldr	r3, .L3520+28
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-280]
	ldr	r3, .L3520+8
	ldr	r3, [r3]
	cmp	r3, #206
	beq	.L3467
	nop
	b	.L3468
.L3515:
	nop
.L3468:
	ldr	r0, .L3520+32
	bl	error
.L3467:
	ldr	r3, [fp, #-280]
	sub	r1, fp, #280
	mov	r2, #0
	mov	r0, r3
	bl	strtoll
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-292]
	str	r3, [fp, #-288]
	ldr	r3, [fp, #-280]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L3515
	bl	next
	ldr	r3, [fp, #-328]
	ldr	r3, [r3, #20]
	cmp	r3, #8
	beq	.L3470
	ldr	r3, [fp, #-292]
	mov	r0, r3
	bl	gen_le32
	sub	r1, fp, #292
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	mov	r3, r2
	mov	r0, r3
	bl	gen_le32
	b	.L3471
.L3470:
	ldr	r3, .L3520+24
	ldr	r3, [r3]
	add	r3, r3, #8
	ldr	r2, .L3520+24
	str	r3, [r2]
.L3471:
	ldr	r3, .L3520+8
	ldr	r3, [r3]
	cmp	r3, #44
	bne	.L3516
	bl	next
	b	.L3473
.L3458:
	mov	r3, #1
	str	r3, [fp, #-360]
	b	.L3474
.L3446:
	mov	r3, #2
	str	r3, [fp, #-360]
	b	.L3474
.L3448:
	mov	r3, #4
	str	r3, [fp, #-360]
.L3474:
	bl	next
.L3481:
	sub	r3, fp, #280
	mov	r1, r3
	ldr	r0, [fp, #-376]
	bl	asm_expr
	ldr	r3, [fp, #-328]
	ldr	r3, [r3, #20]
	cmp	r3, #8
	beq	.L3475
	ldr	r3, [fp, #-360]
	cmp	r3, #4
	bne	.L3476
	sub	r3, fp, #280
	mov	r0, r3
	bl	gen_expr32
	b	.L3477
.L3476:
	ldr	r3, [fp, #-276]
	cmp	r3, #0
	beq	.L3478
	ldr	r0, .L3520+36
	bl	expect
.L3478:
	ldr	r3, [fp, #-360]
	cmp	r3, #1
	bne	.L3479
	ldr	r3, [fp, #-280]
	mov	r0, r3
	bl	g
	b	.L3477
.L3479:
	ldr	r3, [fp, #-280]
	mov	r0, r3
	bl	gen_le16
	b	.L3477
.L3475:
	ldr	r3, .L3520+24
	ldr	r2, [r3]
	ldr	r3, [fp, #-360]
	add	r3, r2, r3
	ldr	r2, .L3520+24
	str	r3, [r2]
.L3477:
	ldr	r3, .L3520+8
	ldr	r3, [r3]
	cmp	r3, #44
	bne	.L3517
	bl	next
	b	.L3481
.L3452:
	bl	next
	ldr	r0, [fp, #-376]
	bl	asm_int_expr
	str	r0, [fp, #-320]
	ldr	r3, [fp, #-320]
	cmp	r3, #0
	bge	.L3482
	ldr	r0, .L3520+40
	bl	error
	b	.L3466
.L3482:
	mov	r3, #1
	str	r3, [fp, #-356]
	mov	r3, #0
	str	r3, [fp, #-352]
	ldr	r3, .L3520+8
	ldr	r3, [r3]
	cmp	r3, #44
	bne	.L3484
	bl	next
	ldr	r0, [fp, #-376]
	bl	asm_int_expr
	str	r0, [fp, #-356]
	ldr	r3, [fp, #-356]
	cmp	r3, #0
	bge	.L3485
	ldr	r0, .L3520+44
	bl	error
	nop
	b	.L3519
.L3485:
	ldr	r3, [fp, #-356]
	cmp	r3, #8
	ble	.L3486
	mov	r3, #8
	str	r3, [fp, #-356]
.L3486:
	ldr	r3, .L3520+8
	ldr	r3, [r3]
	cmp	r3, #44
	bne	.L3484
	bl	next
	ldr	r0, [fp, #-376]
	bl	asm_int_expr
	str	r0, [fp, #-352]
.L3484:
	ldr	r3, [fp, #-352]
	and	r3, r3, #255
	strb	r3, [fp, #-272]
	ldr	r3, [fp, #-352]
	asr	r3, r3, #8
	and	r3, r3, #255
	strb	r3, [fp, #-271]
	ldr	r3, [fp, #-352]
	asr	r3, r3, #16
	and	r3, r3, #255
	strb	r3, [fp, #-270]
	ldr	r3, [fp, #-352]
	asr	r3, r3, #24
	and	r3, r3, #255
	strb	r3, [fp, #-269]
	mov	r3, #0
	strb	r3, [fp, #-268]
	mov	r3, #0
	strb	r3, [fp, #-267]
	mov	r3, #0
	strb	r3, [fp, #-266]
	mov	r3, #0
	strb	r3, [fp, #-265]
	mov	r3, #0
	str	r3, [fp, #-348]
	b	.L3487
.L3490:
	mov	r3, #0
	str	r3, [fp, #-344]
	b	.L3488
.L3489:
	sub	r2, fp, #272
	ldr	r3, [fp, #-344]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	g
	ldr	r3, [fp, #-344]
	add	r3, r3, #1
	str	r3, [fp, #-344]
.L3488:
	ldr	r2, [fp, #-344]
	ldr	r3, [fp, #-356]
	cmp	r2, r3
	blt	.L3489
	ldr	r3, [fp, #-348]
	add	r3, r3, #1
	str	r3, [fp, #-348]
.L3487:
	ldr	r2, [fp, #-348]
	ldr	r3, [fp, #-320]
	cmp	r2, r3
	blt	.L3490
	b	.L3466
.L3451:
	bl	next
	ldr	r0, [fp, #-376]
	bl	asm_int_expr
	mov	r3, r0
	str	r3, [fp, #-324]
	ldr	r3, .L3520+24
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-324]
	cmp	r3, r2
	bcs	.L3491
	ldr	r0, .L3520+48
	bl	error
.L3491:
	mov	r3, #0
	str	r3, [fp, #-364]
	ldr	r3, .L3520+24
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-324]
	sub	r3, r3, r2
	str	r3, [fp, #-360]
	b	.L3464
.L3455:
	bl	next
	ldr	r3, .L3520+8
	ldr	r3, [r3]
	mov	r0, r3
	bl	label_find
	str	r0, [fp, #-340]
	ldr	r3, [fp, #-340]
	cmp	r3, #0
	bne	.L3492
	ldr	r3, [fp, #-376]
	add	r3, r3, #564
	ldr	r2, .L3520+8
	ldr	r1, [r2]
	mov	r2, #0
	mov	r0, r3
	bl	label_push
	str	r0, [fp, #-340]
	ldr	r3, [fp, #-340]
	mov	r2, #3
	str	r2, [r3, #12]
.L3492:
	ldr	r3, [fp, #-340]
	ldr	r3, [r3, #12]
	bic	r2, r3, #256
	ldr	r3, [fp, #-340]
	str	r2, [r3, #12]
	bl	next
	b	.L3466
.L3456:
	ldr	r3, .L3520+8
	ldr	r3, [r3]
	str	r3, [fp, #-308]
	bl	next
.L3500:
	ldr	r3, .L3520+8
	ldr	r3, [r3]
	cmp	r3, #181
	beq	.L3493
	ldr	r0, .L3520+52
	bl	expect
.L3493:
	ldr	r3, .L3520+28
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-304]
	ldr	r3, .L3520+28
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-332]
	ldr	r3, [fp, #-308]
	ldr	r2, .L3520+56
	cmp	r3, r2
	bne	.L3494
	ldr	r3, [fp, #-332]
	cmp	r3, #0
	ble	.L3494
	ldr	r3, [fp, #-332]
	sub	r3, r3, #1
	str	r3, [fp, #-332]
.L3494:
	mov	r3, #0
	str	r3, [fp, #-336]
	b	.L3495
.L3496:
	ldr	r3, [fp, #-336]
	ldr	r2, [fp, #-304]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	g
	ldr	r3, [fp, #-336]
	add	r3, r3, #1
	str	r3, [fp, #-336]
.L3495:
	ldr	r2, [fp, #-336]
	ldr	r3, [fp, #-332]
	cmp	r2, r3
	blt	.L3496
	bl	next
	ldr	r3, .L3520+8
	ldr	r3, [r3]
	cmp	r3, #44
	bne	.L3497
	bl	next
	b	.L3500
.L3497:
	ldr	r3, .L3520+8
	ldr	r3, [r3]
	cmp	r3, #181
	bne	.L3518
	b	.L3500
.L3518:
	nop
	b	.L3466
.L3454:
	ldr	r3, .L3520+8
	ldr	r3, [r3]
	str	r3, [fp, #-312]
	mov	r3, #0
	str	r3, [fp, #-368]
	bl	next
	ldr	r3, .L3520+8
	ldr	r3, [r3]
	cmp	r3, #59
	beq	.L3501
	ldr	r3, .L3520+8
	ldr	r3, [r3]
	cmp	r3, #10
	beq	.L3501
	ldr	r0, [fp, #-376]
	bl	asm_int_expr
	str	r0, [fp, #-368]
	bl	next
.L3501:
	ldr	r3, [fp, #-368]
	cmp	r3, #0
	beq	.L3502
	ldr	r4, .L3520+60
	b	.L3503
.L3502:
	ldr	r4, .L3520+64
.L3503:
	mov	r1, #0
	ldr	r0, [fp, #-312]
	bl	get_tok_str
	mov	r2, r0
	sub	r0, fp, #272
	ldr	r3, [fp, #-368]
	mov	r1, r4
	bl	sprintf
	sub	r3, fp, #272
	mov	r1, r3
	ldr	r0, [fp, #-376]
	bl	use_section
	b	.L3466
.L3459:
	bl	next
	mov	r3, #0
	strb	r3, [fp, #-272]
	b	.L3504
.L3508:
	ldr	r3, .L3520+8
	ldr	r3, [r3]
	cmp	r3, #181
	bne	.L3505
	ldr	r3, .L3520+28
	ldr	r3, [r3]
	ldr	r2, [r3, #4]
	sub	r3, fp, #272
	mov	r1, #256
	mov	r0, r3
	bl	pstrcat
	b	.L3506
.L3505:
	ldr	r3, .L3520+8
	ldr	r3, [r3]
	mov	r1, #0
	mov	r0, r3
	bl	get_tok_str
	mov	r2, r0
	sub	r3, fp, #272
	mov	r1, #256
	mov	r0, r3
	bl	pstrcat
.L3506:
	bl	next
.L3504:
	ldr	r3, .L3520+8
	ldr	r3, [r3]
	cmp	r3, #59
	beq	.L3507
	ldr	r3, .L3520+8
	ldr	r3, [r3]
	cmp	r3, #10
	beq	.L3507
	ldr	r3, .L3520+8
	ldr	r3, [r3]
	cmp	r3, #44
	bne	.L3508
.L3507:
	ldr	r3, .L3520+8
	ldr	r3, [r3]
	cmp	r3, #44
	bne	.L3509
	bl	next
	ldr	r3, .L3520+8
	ldr	r3, [r3]
	cmp	r3, #181
	beq	.L3510
	ldr	r0, .L3520+52
	bl	expect
.L3510:
	bl	next
.L3509:
	ldr	r3, .L3520+4
	ldr	r3, [r3]
	ldr	r2, .L3520+68
	str	r3, [r2]
	sub	r3, fp, #272
	mov	r1, r3
	ldr	r0, [fp, #-376]
	bl	use_section
	b	.L3466
.L3453:
	bl	next
	ldr	r3, .L3520+68
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L3511
	ldr	r0, .L3520+72
	bl	error
.L3511:
	ldr	r3, .L3520+4
	ldr	r3, [r3]
	str	r3, [fp, #-316]
	ldr	r3, .L3520+68
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-376]
	bl	use_section1
	ldr	r2, .L3520+68
	ldr	r3, [fp, #-316]
	str	r3, [r2]
	b	.L3466
.L3447:
	ldr	r3, .L3520+8
	ldr	r3, [r3]
	mov	r1, #0
	mov	r0, r3
	bl	get_tok_str
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L3520+76
	bl	error
	b	.L3466
.L3516:
	nop
	b	.L3519
.L3517:
	nop
.L3466:
.L3519:
	nop
	ldr	r3, .L3520
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L3512
	bl	__stack_chk_fail
.L3512:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L3521:
	.align	2
.L3520:
	.word	.LC274
	.word	cur_text_section
	.word	tok
	.word	406
	.word	279
	.word	.LC146
	.word	ind
	.word	tokc
	.word	.LC265
	.word	.LC262
	.word	.LC266
	.word	.LC267
	.word	.LC268
	.word	.LC269
	.word	397
	.word	.LC270
	.word	.LC271
	.word	last_text_section
	.word	.LC272
	.word	.LC273
	.size	asm_parse_directive, .-asm_parse_directive
	.section	.rodata
	.align	2
.LC275:
	.ascii	"':'\000"
	.align	2
.LC276:
	.ascii	"end of line\000"
	.align	2
.LC277:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_assemble_internal, %function
tcc_assemble_internal:
	@ 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]
	ldr	r3, .L3542
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L3542+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L3542+8
	str	r2, [r3]
	ldr	r3, .L3542+12
	mov	r2, #3
	str	r2, [r3]
	ldr	r3, .L3542+16
	mov	r2, #8
	str	r2, [r3]
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L3523
	ldr	r3, .L3542+16
	ldr	r3, [r3]
	orr	r3, r3, #1
	ldr	r2, .L3542+16
	str	r3, [r2]
.L3523:
	bl	next
.L3537:
	ldr	r3, .L3542+20
	ldr	r3, [r3]
	cmn	r3, #1
	beq	.L3541
	ldr	r3, .L3542+16
	ldr	r3, [r3]
	orr	r3, r3, #4
	ldr	r2, .L3542+16
	str	r3, [r2]
.L3526:
	ldr	r3, .L3542+20
	ldr	r3, [r3]
	cmp	r3, #35
	bne	.L3527
	b	.L3528
.L3529:
	bl	next
.L3528:
	ldr	r3, .L3542+20
	ldr	r3, [r3]
	cmp	r3, #10
	bne	.L3529
	b	.L3530
.L3527:
	ldr	r3, .L3542+20
	ldr	r3, [r3]
	cmp	r3, #46
	bne	.L3531
	ldr	r0, [fp, #-32]
	bl	asm_parse_directive
	b	.L3530
.L3531:
	ldr	r3, .L3542+20
	ldr	r3, [r3]
	cmp	r3, #206
	bne	.L3532
	ldr	r3, .L3542+24
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	sub	r1, fp, #24
	mov	r2, #10
	mov	r0, r3
	bl	strtoul
	mov	r3, r0
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L3533
	ldr	r0, .L3542+28
	bl	expect
.L3533:
	ldr	r3, [fp, #-12]
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	asm_get_local_label_name
	mov	r3, r0
	mov	r2, #1
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	asm_new_label
	bl	next
	mov	r0, #58
	bl	skip
	b	.L3526
.L3532:
	ldr	r3, .L3542+20
	ldr	r3, [r3]
	cmp	r3, #255
	ble	.L3530
	ldr	r3, .L3542+20
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	bl	next
	ldr	r3, .L3542+20
	ldr	r3, [r3]
	cmp	r3, #58
	bne	.L3534
	mov	r2, #0
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-32]
	bl	asm_new_label
	bl	next
	b	.L3526
.L3534:
	ldr	r3, .L3542+20
	ldr	r3, [r3]
	cmp	r3, #61
	bne	.L3535
	bl	next
	ldr	r0, [fp, #-32]
	bl	asm_int_expr
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	str	r3, [sp]
	ldr	r3, .L3542+32
	mov	r2, #0
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-32]
	bl	asm_new_label1
	b	.L3526
.L3535:
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-32]
	bl	asm_opcode
.L3530:
	ldr	r3, .L3542+20
	ldr	r3, [r3]
	cmp	r3, #59
	beq	.L3536
	ldr	r3, .L3542+20
	ldr	r3, [r3]
	cmp	r3, #10
	beq	.L3536
	ldr	r0, .L3542+36
	bl	expect
.L3536:
	ldr	r3, .L3542+16
	ldr	r3, [r3]
	bic	r3, r3, #4
	ldr	r2, .L3542+16
	str	r3, [r2]
	bl	next
	b	.L3537
.L3541:
	nop
	ldr	r0, [fp, #-32]
	bl	asm_free_labels
	mov	r3, #0
	ldr	r2, .L3542
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L3539
	bl	__stack_chk_fail
.L3539:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3543:
	.align	2
.L3542:
	.word	.LC277
	.word	file
	.word	ch
	.word	tok_flags
	.word	parse_flags
	.word	tok
	.word	tokc
	.word	.LC275
	.word	65521
	.word	.LC276
	.size	tcc_assemble_internal, .-tcc_assemble_internal
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_assemble, %function
tcc_assemble:
	@ 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	preprocess_init
	ldr	r3, .L3546
	ldr	r3, [r3]
	ldr	r2, .L3546+4
	str	r3, [r2]
	ldr	r3, .L3546+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, .L3546+8
	str	r2, [r3]
	ldr	r3, .L3546+12
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	tcc_assemble_internal
	str	r0, [fp, #-8]
	ldr	r3, .L3546+8
	ldr	r2, [r3]
	ldr	r3, .L3546+4
	ldr	r3, [r3]
	str	r2, [r3]
	ldr	r0, [fp, #-12]
	bl	free_defines
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3547:
	.align	2
.L3546:
	.word	text_section
	.word	cur_text_section
	.word	ind
	.word	define_stack
	.size	tcc_assemble, .-tcc_assemble
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_assemble_inline, %function
tcc_assemble_inline:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	ldr	r0, .L3549
	bl	tcc_malloc
	str	r0, [fp, #-20]
	ldr	r2, .L3549
	mov	r1, #0
	ldr	r0, [fp, #-20]
	bl	memset
	ldr	r3, [fp, #-20]
	mvn	r2, #0
	str	r2, [r3, #8]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-28]
	add	r2, r2, r3
	ldr	r3, [fp, #-20]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	mov	r2, #92
	strb	r2, [r3]
	ldr	r3, [fp, #-20]
	add	r3, r3, #540
	add	r3, r3, #1
	ldr	r2, .L3549+4
	ldr	r2, [r2]
	add	r2, r2, #540
	add	r2, r2, #1
	mov	r1, #1024
	mov	r0, r3
	bl	pstrcpy
	ldr	r3, .L3549+4
	ldr	r3, [r3]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-20]
	str	r2, [r3, #12]
	ldr	r3, .L3549+4
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r2, .L3549+4
	ldr	r3, [fp, #-20]
	str	r3, [r2]
	ldr	r3, .L3549+8
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, .L3549+12
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, .L3549+12
	mov	r2, #0
	str	r2, [r3]
	mov	r1, #0
	ldr	r0, [fp, #-24]
	bl	tcc_assemble_internal
	ldr	r2, .L3549+8
	ldr	r3, [fp, #-12]
	str	r3, [r2]
	ldr	r2, .L3549+12
	ldr	r3, [fp, #-8]
	str	r3, [r2]
	ldr	r2, .L3549+4
	ldr	r3, [fp, #-16]
	str	r3, [r2]
	ldr	r0, [fp, #-20]
	bl	tcc_free
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3550:
	.align	2
.L3549:
	.word	9760
	.word	file
	.word	parse_flags
	.word	macro_ptr
	.size	tcc_assemble_inline, .-tcc_assemble_inline
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	find_constraint, %function
find_constraint:
	@ 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]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	isnum
	mov	r3, r0
	cmp	r3, #0
	beq	.L3552
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L3553
.L3554:
	ldr	r2, [fp, #-16]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	mov	r2, r3
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3]	@ zero_extendqisi2
	add	r3, r2, r3
	sub	r3, r3, #48
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L3553:
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	isnum
	mov	r3, r0
	cmp	r3, #0
	bne	.L3554
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	bcc	.L3555
	mvn	r3, #0
	str	r3, [fp, #-16]
	b	.L3555
.L3552:
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #91
	bne	.L3556
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
	mov	r1, #93
	ldr	r0, [fp, #-32]
	bl	strchr
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L3557
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-32]
	sub	r3, r2, r3
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	tok_alloc
	str	r0, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L3558
.L3561:
	ldr	r2, [fp, #-16]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-24]
	add	r3, r3, r2
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #20]
	cmp	r2, r3
	beq	.L3564
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L3558:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	blt	.L3561
	mvn	r3, #0
	str	r3, [fp, #-16]
	b	.L3560
.L3564:
	nop
.L3560:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-32]
	b	.L3555
.L3557:
	mvn	r3, #0
	str	r3, [fp, #-16]
	b	.L3555
.L3556:
	mvn	r3, #0
	str	r3, [fp, #-16]
.L3555:
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L3562
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-32]
	str	r2, [r3]
.L3562:
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	find_constraint, .-find_constraint
	.section	.rodata
	.align	2
.LC278:
	.ascii	"invalid operand reference after %%\000"
	.align	2
.LC279:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	subst_asm_operands, %function
subst_asm_operands:
	@ args = 4, pretend = 0, frame = 88
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #88
	str	r0, [fp, #-72]
	str	r1, [fp, #-76]
	str	r2, [fp, #-80]
	str	r3, [fp, #-84]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-88]
	ldr	r3, .L3579
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r0, [fp, #-84]
	bl	cstr_new
	ldr	r3, [fp, #-88]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-64]
.L3574:
	ldr	r3, [fp, #-64]
	add	r2, r3, #1
	str	r2, [fp, #-64]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	cmp	r3, #37
	bne	.L3577
	ldr	r3, [fp, #-64]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #37
	bne	.L3567
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
	b	.L3566
.L3567:
	mov	r3, #0
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-64]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #99
	beq	.L3568
	ldr	r3, [fp, #-64]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #110
	beq	.L3568
	ldr	r3, [fp, #-64]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #98
	beq	.L3568
	ldr	r3, [fp, #-64]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #119
	beq	.L3568
	ldr	r3, [fp, #-64]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #104
	bne	.L3569
.L3568:
	ldr	r3, [fp, #-64]
	add	r2, r3, #1
	str	r2, [fp, #-64]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-60]
.L3569:
	ldr	r2, [fp, #-64]
	sub	r3, fp, #64
	ldr	r1, [fp, #-76]
	ldr	r0, [fp, #-72]
	bl	find_constraint
	str	r0, [fp, #-52]
	ldr	r3, [fp, #-52]
	cmp	r3, #0
	bge	.L3570
	ldr	r0, .L3579+4
	bl	error
.L3570:
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-72]
	add	r3, r3, r2
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #24]
	sub	ip, fp, #44
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #40]
	cmp	r3, #0
	blt	.L3571
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #40]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-36]	@ movhi
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #24]
	ldrh	r3, [r3, #8]
	and	r3, r3, #255
	cmp	r3, #241
	bne	.L3571
	ldrh	r3, [fp, #-36]
	orr	r3, r3, #256
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-36]	@ movhi
.L3571:
	sub	r3, fp, #44
	ldr	r2, [fp, #-60]
	mov	r1, r3
	ldr	r0, [fp, #-84]
	bl	subst_asm_operand
	b	.L3574
.L3577:
	nop
.L3566:
	ldr	r1, [fp, #-56]
	ldr	r0, [fp, #-84]
	bl	cstr_ccat
	ldr	r3, [fp, #-56]
	cmp	r3, #0
	beq	.L3578
	b	.L3574
.L3578:
	nop
	nop
	ldr	r3, .L3579
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L3575
	bl	__stack_chk_fail
.L3575:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3580:
	.align	2
.L3579:
	.word	.LC279
	.word	.LC278
	.size	subst_asm_operands, .-subst_asm_operands
	.section	.rodata
	.align	2
.LC280:
	.ascii	"too many asm operands\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	parse_asm_operands, %function
parse_asm_operands:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r3, .L3596
	ldr	r3, [r3]
	cmp	r3, #58
	beq	.L3594
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
.L3593:
	ldr	r3, [fp, #-12]
	cmp	r3, #29
	ble	.L3583
	ldr	r0, .L3596+4
	bl	error
.L3583:
	ldr	r3, [fp, #-12]
	add	r2, r3, #1
	str	r2, [fp, #-12]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L3596
	ldr	r3, [r3]
	cmp	r3, #91
	bne	.L3584
	bl	next
	ldr	r3, .L3596
	ldr	r3, [r3]
	cmp	r3, #255
	bgt	.L3585
	ldr	r0, .L3596+8
	bl	expect
.L3585:
	ldr	r3, .L3596
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	str	r2, [r3]
	bl	next
	mov	r0, #93
	bl	skip
.L3584:
	ldr	r3, .L3596
	ldr	r3, [r3]
	cmp	r3, #181
	beq	.L3586
	ldr	r0, .L3596+12
	bl	expect
.L3586:
	ldr	r3, .L3596+16
	ldr	r3, [r3]
	ldr	r3, [r3]
	mov	r0, r3
	bl	tcc_malloc
	mov	r2, r0
	ldr	r3, [fp, #-8]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #4]
	ldr	r3, .L3596+16
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	mov	r1, r3
	mov	r0, r2
	bl	strcpy
	bl	next
	mov	r0, #40
	bl	skip
	bl	gexpr
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L3587
	bl	test_lvalue
	b	.L3588
.L3587:
	ldr	r3, .L3596+20
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #256
	cmp	r3, #0
	beq	.L3588
	ldr	r3, .L3596+20
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #255
	cmp	r3, #241
	beq	.L3589
	ldr	r3, .L3596+20
	ldr	r3, [r3]
	ldrh	r3, [r3, #8]
	and	r3, r3, #255
	cmp	r3, #239
	bgt	.L3588
.L3589:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	mov	r1, #109
	mov	r0, r3
	bl	strchr
	mov	r3, r0
	cmp	r3, #0
	bne	.L3588
	mov	r0, #1
	bl	gv
.L3588:
	ldr	r3, .L3596+20
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #24]
	mov	r0, #41
	bl	skip
	ldr	r3, .L3596
	ldr	r3, [r3]
	cmp	r3, #44
	bne	.L3595
	bl	next
	b	.L3593
.L3595:
	nop
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-12]
	str	r2, [r3]
.L3594:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3597:
	.align	2
.L3596:
	.word	tok
	.word	.LC280
	.word	.LC151
	.word	.LC269
	.word	tokc
	.word	vtop
	.size	parse_asm_operands, .-parse_asm_operands
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	parse_asm_str, %function
parse_asm_str:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	mov	r0, #40
	bl	skip
	ldr	r3, .L3602
	ldr	r3, [r3]
	cmp	r3, #181
	beq	.L3599
	ldr	r0, .L3602+4
	bl	expect
.L3599:
	ldr	r0, [fp, #-8]
	bl	cstr_new
	b	.L3600
.L3601:
	ldr	r3, .L3602+8
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	cstr_cat
	bl	next
.L3600:
	ldr	r3, .L3602
	ldr	r3, [r3]
	cmp	r3, #181
	beq	.L3601
	mov	r1, #0
	ldr	r0, [fp, #-8]
	bl	cstr_ccat
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3603:
	.align	2
.L3602:
	.word	tok
	.word	.LC269
	.word	tokc
	.size	parse_asm_str, .-parse_asm_str
	.section	.rodata
	.align	2
.LC281:
	.ascii	"';'\000"
	.align	2
.LC282:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	asm_instr, %function
asm_instr:
	@ args = 0, pretend = 0, frame = 1752
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #1760
	ldr	r3, .L3619
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	bl	next
	ldr	r3, .L3619+4
	ldr	r3, [r3]
	cmp	r3, #276
	beq	.L3605
	ldr	r3, .L3619+4
	ldr	r3, [r3]
	ldr	r2, .L3619+8
	cmp	r3, r2
	beq	.L3605
	ldr	r3, .L3619+4
	ldr	r3, [r3]
	ldr	r2, .L3619+12
	cmp	r3, r2
	bne	.L3606
.L3605:
	bl	next
.L3606:
	sub	r3, fp, #1712
	sub	r3, r3, #4
	sub	r3, r3, #12
	mov	r0, r3
	bl	parse_asm_str
	mov	r3, #0
	str	r3, [fp, #-1756]
	mov	r3, #0
	str	r3, [fp, #-1748]
	mov	r3, #0
	str	r3, [fp, #-1740]
	sub	r3, fp, #16
	mov	r2, #8
	mov	r1, #0
	mov	r0, r3
	bl	memset
	ldr	r3, .L3619+4
	ldr	r3, [r3]
	cmp	r3, #58
	bne	.L3607
	bl	next
	mov	r3, #1
	str	r3, [fp, #-1740]
	sub	r1, fp, #1744
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r3, fp, #1680
	sub	r3, r3, #4
	sub	r3, r3, #12
	mov	r2, #1
	mov	r0, r3
	bl	parse_asm_operands
	ldr	r3, [fp, #-1756]
	str	r3, [fp, #-1748]
	ldr	r3, .L3619+4
	ldr	r3, [r3]
	cmp	r3, #58
	bne	.L3607
	bl	next
	sub	r1, fp, #1744
	sub	r1, r1, #4
	sub	r1, r1, #8
	sub	r3, fp, #1680
	sub	r3, r3, #4
	sub	r3, r3, #12
	mov	r2, #0
	mov	r0, r3
	bl	parse_asm_operands
	ldr	r3, .L3619+4
	ldr	r3, [r3]
	cmp	r3, #58
	bne	.L3607
	bl	next
.L3611:
	ldr	r3, .L3619+4
	ldr	r3, [r3]
	cmp	r3, #181
	beq	.L3608
	ldr	r0, .L3619+16
	bl	expect
.L3608:
	ldr	r3, .L3619+20
	ldr	r3, [r3]
	ldr	r2, [r3, #4]
	sub	r3, fp, #16
	mov	r1, r2
	mov	r0, r3
	bl	asm_clobber
	bl	next
	ldr	r3, .L3619+4
	ldr	r3, [r3]
	cmp	r3, #44
	bne	.L3618
	bl	next
	b	.L3611
.L3618:
	nop
.L3607:
	mov	r0, #41
	bl	skip
	ldr	r3, .L3619+4
	ldr	r3, [r3]
	cmp	r3, #59
	beq	.L3612
	ldr	r0, .L3619+24
	bl	expect
.L3612:
	ldr	r2, [fp, #-1756]
	ldr	r3, [fp, #-1748]
	sub	r3, r2, r3
	str	r3, [fp, #-1736]
	mov	r0, #0
	bl	save_regs
	ldr	r1, [fp, #-1756]
	sub	r2, fp, #16
	sub	r0, fp, #1680
	sub	r0, r0, #4
	sub	r0, r0, #12
	sub	r3, fp, #1744
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #-1748]
	bl	asm_compute_constraints
	ldr	r3, [fp, #-1740]
	cmp	r3, #0
	beq	.L3613
	ldr	r1, [fp, #-1756]
	sub	r2, fp, #1696
	sub	r2, r2, #4
	sub	r2, r2, #12
	sub	r0, fp, #1680
	sub	r0, r0, #4
	sub	r0, r0, #12
	sub	r3, fp, #1712
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #-1748]
	bl	subst_asm_operands
	sub	r3, fp, #1712
	sub	r3, r3, #4
	sub	r3, r3, #12
	mov	r0, r3
	bl	cstr_free
	b	.L3614
.L3613:
	sub	ip, fp, #1696
	sub	ip, ip, #4
	sub	ip, ip, #12
	sub	r3, fp, #1712
	sub	r3, r3, #4
	sub	r3, r3, #12
	ldm	r3, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
.L3614:
	ldr	r1, [fp, #-1756]
	ldr	r3, [fp, #-1752]
	sub	r0, fp, #1680
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp, #4]
	sub	r3, fp, #16
	str	r3, [sp]
	mov	r3, #0
	ldr	r2, [fp, #-1748]
	bl	asm_gen_code
	ldr	r3, .L3619+28
	ldr	r0, [r3]
	ldr	r1, [fp, #-1708]
	ldr	r3, [fp, #-1712]
	sub	r3, r3, #1
	mov	r2, r3
	bl	tcc_assemble_inline
	bl	next
	ldr	r1, [fp, #-1756]
	ldr	r3, [fp, #-1752]
	sub	r0, fp, #1680
	sub	r0, r0, #4
	sub	r0, r0, #12
	str	r3, [sp, #4]
	sub	r3, fp, #16
	str	r3, [sp]
	mov	r3, #1
	ldr	r2, [fp, #-1748]
	bl	asm_gen_code
	mov	r3, #0
	str	r3, [fp, #-1744]
	b	.L3615
.L3616:
	sub	r2, fp, #1680
	sub	r2, r2, #4
	sub	r2, r2, #12
	ldr	r1, [fp, #-1744]
	mov	r3, r1
	lsl	r3, r3, #3
	sub	r3, r3, r1
	lsl	r3, r3, #3
	add	r3, r2, r3
	str	r3, [fp, #-1732]
	ldr	r3, [fp, #-1732]
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	tcc_free
	bl	vpop
	ldr	r3, [fp, #-1744]
	add	r3, r3, #1
	str	r3, [fp, #-1744]
.L3615:
	ldr	r3, [fp, #-1756]
	ldr	r2, [fp, #-1744]
	cmp	r2, r3
	blt	.L3616
	sub	r3, fp, #1696
	sub	r3, r3, #4
	sub	r3, r3, #12
	mov	r0, r3
	bl	cstr_free
	nop
	ldr	r3, .L3619
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L3617
	bl	__stack_chk_fail
.L3617:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3620:
	.align	2
.L3619:
	.word	.LC282
	.word	tok
	.word	277
	.word	278
	.word	.LC269
	.word	tokc
	.word	.LC281
	.word	tcc_state
	.size	asm_instr, .-asm_instr
	.section	.rodata
	.align	2
.LC283:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	asm_global_instr, %function
asm_global_instr:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	ldr	r3, .L3624
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	bl	next
	sub	r3, fp, #24
	mov	r0, r3
	bl	parse_asm_str
	mov	r0, #41
	bl	skip
	ldr	r3, .L3624+4
	ldr	r3, [r3]
	cmp	r3, #59
	beq	.L3622
	ldr	r0, .L3624+8
	bl	expect
.L3622:
	ldr	r3, .L3624+12
	ldr	r3, [r3]
	ldr	r2, .L3624+16
	str	r3, [r2]
	ldr	r3, .L3624+16
	ldr	r3, [r3]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, .L3624+20
	str	r2, [r3]
	ldr	r3, .L3624+24
	ldr	r0, [r3]
	ldr	r1, [fp, #-20]
	ldr	r3, [fp, #-24]
	sub	r3, r3, #1
	mov	r2, r3
	bl	tcc_assemble_inline
	ldr	r3, .L3624+20
	ldr	r2, [r3]
	ldr	r3, .L3624+16
	ldr	r3, [r3]
	str	r2, [r3]
	bl	next
	sub	r3, fp, #24
	mov	r0, r3
	bl	cstr_free
	nop
	ldr	r3, .L3624
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L3623
	bl	__stack_chk_fail
.L3623:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3625:
	.align	2
.L3624:
	.word	.LC283
	.word	tok
	.word	.LC281
	.word	text_section
	.word	cur_text_section
	.word	ind
	.word	tcc_state
	.size	asm_global_instr, .-asm_global_instr
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	put_elf_str, %function
put_elf_str:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r0, [fp, #-28]
	bl	strlen
	mov	r3, r0
	add	r3, r3, #1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	section_ptr_add
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-16]
	mov	r2, r3
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-8]
	bl	memcpy
	ldr	r3, [fp, #-12]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	put_elf_str, .-put_elf_str
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	elf_hash, %function
elf_hash:
	@ 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]
	b	.L3629
.L3631:
	ldr	r3, [fp, #-12]
	lsl	r2, r3, #4
	ldr	r3, [fp, #-16]
	add	r1, r3, #1
	str	r1, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	and	r3, r3, #-268435456
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L3630
	ldr	r3, [fp, #-8]
	lsr	r3, r3, #24
	ldr	r2, [fp, #-12]
	eor	r3, r3, r2
	str	r3, [fp, #-12]
.L3630:
	ldr	r3, [fp, #-8]
	mvn	r3, r3
	ldr	r2, [fp, #-12]
	and	r3, r3, r2
	str	r3, [fp, #-12]
.L3629:
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L3631
	ldr	r3, [fp, #-12]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	elf_hash, .-elf_hash
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	rebuild_hash, %function
rebuild_hash:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #56]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	lsr	r3, r3, #4
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #64]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	ldr	r0, [r3, #64]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-44]
	add	r3, r2, r3
	add	r3, r3, #2
	lsl	r3, r3, #2
	mov	r1, r3
	bl	section_ptr_add
	str	r0, [fp, #-28]
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-28]
	add	r3, r3, #4
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-28]
	add	r3, r3, #8
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	lsl	r3, r3, #2
	mov	r2, r3
	mov	r1, #0
	ldr	r0, [fp, #-12]
	bl	memset
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	lsl	r3, r3, #2
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #4]
	add	r3, r3, #16
	str	r3, [fp, #-32]
	mov	r3, #1
	str	r3, [fp, #-24]
	b	.L3634
.L3637:
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L3635
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	mov	r0, r3
	bl	elf_hash
	mov	r3, r0
	ldr	r1, [fp, #-44]
	mov	r0, r3
	bl	__aeabi_uidivmod
	mov	r3, r1
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	ldr	r2, [fp, #-24]
	str	r2, [r3]
	b	.L3636
.L3635:
	ldr	r3, [fp, #-28]
	mov	r2, #0
	str	r2, [r3]
.L3636:
	ldr	r3, [fp, #-28]
	add	r3, r3, #4
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-32]
	add	r3, r3, #16
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L3634:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L3637
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	rebuild_hash, .-rebuild_hash
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	put_elf_sym, %function
put_elf_sym:
	@ args = 12, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	str	r2, [fp, #-48]
	str	r3, [fp, #-52]
	mov	r1, #16
	ldr	r0, [fp, #-40]
	bl	section_ptr_add
	str	r0, [fp, #-32]
	ldr	r3, [fp, #12]
	cmp	r3, #0
	beq	.L3639
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #56]
	ldr	r1, [fp, #12]
	mov	r0, r3
	bl	put_elf_str
	str	r0, [fp, #-36]
	b	.L3640
.L3639:
	mov	r3, #0
	str	r3, [fp, #-36]
.L3640:
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-32]
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-44]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-48]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-52]
	and	r2, r3, #255
	ldr	r3, [fp, #-32]
	strb	r2, [r3, #12]
	ldr	r3, [fp, #4]
	and	r2, r3, #255
	ldr	r3, [fp, #-32]
	strb	r2, [r3, #13]
	ldr	r3, [fp, #8]
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-32]
	strh	r2, [r3, #14]	@ movhi
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-32]
	sub	r3, r2, r3
	asr	r3, r3, #4
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #64]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L3641
	mov	r1, #4
	ldr	r0, [fp, #-24]
	bl	section_ptr_add
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-52]
	and	r3, r3, #255
	lsr	r3, r3, #4
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L3642
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r0, [fp, #12]
	bl	elf_hash
	mov	r2, r0
	ldr	r3, [fp, #-12]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidivmod
	mov	r3, r1
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	add	r3, r3, #2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldr	r2, [r3]
	add	r2, r2, #1
	str	r2, [r3]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #52]
	add	r2, r3, #1
	ldr	r3, [fp, #-24]
	str	r2, [r3, #52]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #1
	cmp	r2, r3
	ble	.L3641
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #1
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	rebuild_hash
	b	.L3641
.L3642:
	ldr	r3, [fp, #-20]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldr	r2, [r3]
	add	r2, r2, #1
	str	r2, [r3]
.L3641:
	ldr	r3, [fp, #-28]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	put_elf_sym, .-put_elf_sym
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	find_elf_sym, %function
find_elf_sym:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #64]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L3645
	mov	r3, #0
	b	.L3646
.L3645:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r0, [fp, #-36]
	bl	elf_hash
	mov	r2, r0
	ldr	r3, [fp, #-20]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidivmod
	mov	r3, r1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	add	r3, r3, #2
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	b	.L3647
.L3649:
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #4
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #56]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-36]
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L3648
	ldr	r3, [fp, #-28]
	b	.L3646
.L3648:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-20]
	add	r1, r3, #2
	ldr	r3, [fp, #-28]
	add	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-28]
.L3647:
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bne	.L3649
	mov	r3, #0
.L3646:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	find_elf_sym, .-find_elf_sym
	.align	2
	.global	tcc_get_symbol
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_get_symbol, %function
tcc_get_symbol:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r3, .L3653
	ldr	r3, [r3]
	ldr	r1, [fp, #-24]
	mov	r0, r3
	bl	find_elf_sym
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L3651
	mvn	r3, #0
	b	.L3652
.L3651:
	ldr	r3, .L3653
	ldr	r3, [r3]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #4
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-20]
	str	r2, [r3]
	mov	r3, #0
.L3652:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3654:
	.align	2
.L3653:
	.word	symtab_section
	.size	tcc_get_symbol, .-tcc_get_symbol
	.section	.rodata
	.align	2
.LC284:
	.ascii	"%s not defined\000"
	.align	2
.LC285:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	tcc_get_symbol_err
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_get_symbol_err, %function
tcc_get_symbol_err:
	@ 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, .L3659
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #12
	ldr	r2, [fp, #-20]
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	tcc_get_symbol
	mov	r3, r0
	cmp	r3, #0
	bge	.L3656
	ldr	r1, [fp, #-20]
	ldr	r0, .L3659+4
	bl	error
.L3656:
	ldr	r3, [fp, #-12]
	ldr	r2, .L3659
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L3658
	bl	__stack_chk_fail
.L3658:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3660:
	.align	2
.L3659:
	.word	.LC285
	.word	.LC284
	.size	tcc_get_symbol_err, .-tcc_get_symbol_err
	.section	.rodata
	.align	2
.LC286:
	.ascii	"'%s' defined twice\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	add_elf_sym, %function
add_elf_sym:
	@ args = 12, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #56
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	and	r3, r3, #255
	lsr	r3, r3, #4
	and	r3, r3, #255
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-44]
	and	r3, r3, #15
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L3670
	ldr	r1, [fp, #12]
	ldr	r0, [fp, #-32]
	bl	find_elf_sym
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L3671
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #4
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldrh	r3, [r3, #14]
	cmp	r3, #0
	beq	.L3672
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	str	r3, [fp, #-8]
	ldr	r3, [fp, #8]
	cmp	r3, #0
	beq	.L3668
	ldr	r3, [fp, #-20]
	cmp	r3, #1
	bne	.L3666
	ldr	r3, [fp, #-8]
	cmp	r3, #2
	beq	.L3673
.L3666:
	ldr	r3, [fp, #-20]
	cmp	r3, #2
	bne	.L3667
	ldr	r3, [fp, #-8]
	cmp	r3, #1
	beq	.L3668
.L3667:
	ldr	r3, .L3674
	ldr	r3, [r3]
	ldr	r3, [r3, #80]
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	beq	.L3668
	ldr	r1, [fp, #12]
	ldr	r0, .L3674+4
	bl	error_noabort
	b	.L3668
.L3672:
	nop
	b	.L3664
.L3673:
	nop
.L3664:
	ldr	r3, [fp, #-20]
	and	r3, r3, #255
	lsl	r3, r3, #4
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	and	r3, r3, #255
	and	r3, r3, #15
	and	r3, r3, #255
	add	r3, r2, r3
	and	r2, r3, #255
	ldr	r3, [fp, #-12]
	strb	r2, [r3, #12]
	ldr	r3, [fp, #8]
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-12]
	strh	r2, [r3, #14]	@ movhi
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-36]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-40]
	str	r2, [r3, #8]
	ldr	r3, [fp, #4]
	and	r2, r3, #255
	ldr	r3, [fp, #-12]
	strb	r2, [r3, #13]
	b	.L3668
.L3670:
	nop
	b	.L3662
.L3671:
	nop
.L3662:
	ldr	r3, [fp, #-20]
	lsl	r2, r3, #4
	ldr	r3, [fp, #-16]
	and	r3, r3, #15
	add	r2, r2, r3
	ldr	r3, [fp, #12]
	str	r3, [sp, #8]
	ldr	r3, [fp, #8]
	str	r3, [sp, #4]
	ldr	r3, [fp, #4]
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #-40]
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	put_elf_sym
	str	r0, [fp, #-24]
.L3668:
	ldr	r3, [fp, #-24]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3675:
	.align	2
.L3674:
	.word	tcc_state
	.word	.LC286
	.size	add_elf_sym, .-add_elf_sym
	.section	.rodata
	.align	2
.LC287:
	.ascii	".rel%s\000"
	.align	2
.LC288:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	put_elf_reloc, %function
put_elf_reloc:
	@ args = 4, pretend = 0, frame = 288
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #288
	str	r0, [fp, #-280]
	str	r1, [fp, #-284]
	str	r2, [fp, #-288]
	str	r3, [fp, #-292]
	ldr	r3, .L3679
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-284]
	ldr	r3, [r3, #60]
	str	r3, [fp, #-272]
	ldr	r3, [fp, #-272]
	cmp	r3, #0
	bne	.L3677
	ldr	r3, [fp, #-284]
	add	r3, r3, #72
	sub	r0, fp, #264
	ldr	r2, .L3679+4
	mov	r1, #256
	bl	snprintf
	ldr	r3, .L3679+8
	ldr	r0, [r3]
	ldr	r3, [fp, #-280]
	ldr	r3, [r3, #24]
	sub	r1, fp, #264
	mov	r2, #9
	bl	new_section
	str	r0, [fp, #-272]
	ldr	r3, [fp, #-272]
	mov	r2, #8
	str	r2, [r3, #36]
	ldr	r3, [fp, #-272]
	ldr	r2, [fp, #-280]
	str	r2, [r3, #56]
	ldr	r3, [fp, #-284]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-272]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-284]
	ldr	r2, [fp, #-272]
	str	r2, [r3, #60]
.L3677:
	mov	r1, #8
	ldr	r0, [fp, #-272]
	bl	section_ptr_add
	str	r0, [fp, #-268]
	ldr	r3, [fp, #-268]
	ldr	r2, [fp, #-288]
	str	r2, [r3]
	ldr	r3, [fp, #4]
	lsl	r2, r3, #8
	ldr	r3, [fp, #-292]
	and	r3, r3, #255
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-268]
	str	r2, [r3, #4]
	nop
	ldr	r3, .L3679
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L3678
	bl	__stack_chk_fail
.L3678:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3680:
	.align	2
.L3679:
	.word	.LC288
	.word	.LC287
	.word	tcc_state
	.size	put_elf_reloc, .-put_elf_reloc
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	put_stabs, %function
put_stabs:
	@ args = 4, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	ldr	r3, .L3684
	ldr	r3, [r3]
	mov	r1, #12
	mov	r0, r3
	bl	section_ptr_add
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L3682
	ldr	r3, .L3684+4
	ldr	r3, [r3]
	ldr	r1, [fp, #-16]
	mov	r0, r3
	bl	put_elf_str
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3]
	b	.L3683
.L3682:
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3]
.L3683:
	ldr	r3, [fp, #-20]
	and	r2, r3, #255
	ldr	r3, [fp, #-8]
	strb	r2, [r3, #4]
	ldr	r3, [fp, #-24]
	and	r2, r3, #255
	ldr	r3, [fp, #-8]
	strb	r2, [r3, #5]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-8]
	strh	r2, [r3, #6]	@ movhi
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #4]
	str	r2, [r3, #8]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3685:
	.align	2
.L3684:
	.word	stab_section
	.word	stabstr_section
	.size	put_stabs, .-put_stabs
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	put_stabs_r, %function
put_stabs_r:
	@ args = 12, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	put_stabs
	ldr	r3, .L3687
	ldr	r0, [r3]
	ldr	r3, .L3687+4
	ldr	r1, [r3]
	ldr	r3, .L3687+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	sub	r2, r3, #4
	ldr	r3, [fp, #12]
	str	r3, [sp]
	mov	r3, #1
	bl	put_elf_reloc
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3688:
	.align	2
.L3687:
	.word	symtab_section
	.word	stab_section
	.size	put_stabs_r, .-put_stabs_r
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	put_stabn, %function
put_stabn:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	str	r3, [sp]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	ldr	r1, [fp, #-8]
	mov	r0, #0
	bl	put_stabs
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	put_stabn, .-put_stabn
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	put_stabd, %function
put_stabd:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	mov	r3, #0
	str	r3, [sp]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	ldr	r1, [fp, #-8]
	mov	r0, #0
	bl	put_stabs
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	put_stabd, .-put_stabd
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	sort_syms, %function
sort_syms:
	@ args = 0, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #56
	str	r0, [fp, #-56]
	str	r1, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldr	r3, [r3]
	lsr	r3, r3, #4
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #4
	mov	r0, r3
	bl	tcc_malloc
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	tcc_malloc
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-60]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-40]
	mov	r3, #0
	str	r3, [fp, #-48]
	b	.L3692
.L3694:
	ldr	r3, [fp, #-44]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	cmp	r3, #0
	bne	.L3693
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-28]
	sub	r2, r2, r3
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #2
	ldr	r1, [fp, #-24]
	add	r3, r1, r3
	asr	r2, r2, #4
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r2, r3, #16
	str	r2, [fp, #-40]
	ldr	r2, [fp, #-44]
	mov	ip, r3
	mov	r3, r2
	ldm	r3, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
.L3693:
	ldr	r3, [fp, #-44]
	add	r3, r3, #16
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
.L3692:
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	blt	.L3694
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-28]
	sub	r3, r2, r3
	asr	r3, r3, #4
	mov	r2, r3
	ldr	r3, [fp, #-60]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-60]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-44]
	mov	r3, #0
	str	r3, [fp, #-48]
	b	.L3695
.L3697:
	ldr	r3, [fp, #-44]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L3696
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-28]
	sub	r2, r2, r3
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #2
	ldr	r1, [fp, #-24]
	add	r3, r1, r3
	asr	r2, r2, #4
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r2, r3, #16
	str	r2, [fp, #-40]
	ldr	r2, [fp, #-44]
	mov	ip, r3
	mov	r3, r2
	ldm	r3, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
.L3696:
	ldr	r3, [fp, #-44]
	add	r3, r3, #16
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
.L3695:
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	blt	.L3697
	ldr	r3, [fp, #-60]
	ldr	r0, [r3, #4]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #4
	mov	r2, r3
	ldr	r1, [fp, #-28]
	bl	memcpy
	ldr	r0, [fp, #-28]
	bl	tcc_free
	mov	r3, #1
	str	r3, [fp, #-48]
	b	.L3698
.L3702:
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #20]
	cmp	r3, #9
	bne	.L3699
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #56]
	ldr	r2, [fp, #-60]
	cmp	r2, r3
	bne	.L3699
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-36]
	b	.L3700
.L3701:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #4]
	lsr	r3, r3, #8
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #4]
	and	r3, r3, #255
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	lsl	r2, r3, #8
	ldr	r3, [fp, #-8]
	and	r3, r3, #255
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-36]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-36]
	add	r3, r3, #8
	str	r3, [fp, #-36]
.L3700:
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	bcc	.L3701
.L3699:
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
.L3698:
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #56]
	ldr	r2, [fp, #-48]
	cmp	r2, r3
	blt	.L3702
	ldr	r0, [fp, #-24]
	bl	tcc_free
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	sort_syms, .-sort_syms
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	relocate_common_syms, %function
relocate_common_syms:
	@ 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
	ldr	r3, .L3707
	ldr	r3, [r3]
	ldr	r2, [r3, #4]
	ldr	r3, .L3707
	ldr	r3, [r3]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, .L3707
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	add	r3, r3, #16
	str	r3, [fp, #-20]
	b	.L3704
.L3706:
	ldr	r3, [fp, #-20]
	ldrh	r3, [r3, #14]
	ldr	r2, .L3707+4
	cmp	r3, r2
	bne	.L3705
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-12]
	ldr	r3, .L3707+8
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	sub	r2, r3, #1
	ldr	r3, [fp, #-12]
	rsb	r3, r3, #0
	and	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #4]
	ldr	r3, .L3707+8
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-20]
	strh	r2, [r3, #14]	@ movhi
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, .L3707+8
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
.L3705:
	ldr	r3, [fp, #-20]
	add	r3, r3, #16
	str	r3, [fp, #-20]
.L3704:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	bcc	.L3706
	nop
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L3708:
	.align	2
.L3707:
	.word	symtab_section
	.word	65522
	.word	bss_section
	.size	relocate_common_syms, .-relocate_common_syms
	.section	.rodata
	.align	2
.LC289:
	.ascii	"_fp_hw\000"
	.align	2
.LC290:
	.ascii	"undefined symbol '%s'\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	relocate_syms, %function
relocate_syms:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	ldr	r3, .L3720
	ldr	r3, [r3]
	ldr	r2, [r3, #4]
	ldr	r3, .L3720
	ldr	r3, [r3]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, .L3720
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	add	r3, r3, #16
	str	r3, [fp, #-36]
	b	.L3710
.L3717:
	ldr	r3, [fp, #-36]
	ldrh	r3, [r3, #14]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L3711
	ldr	r3, .L3720+4
	ldr	r3, [r3]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	beq	.L3712
	ldr	r3, .L3720
	ldr	r3, [r3]
	ldr	r3, [r3, #56]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	and	r3, r3, #15
	mov	r2, r3
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-40]
	bl	resolve_sym
	mov	r3, r0
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L3713
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #4]
	b	.L3714
.L3712:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #84]
	cmp	r3, #0
	beq	.L3713
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #84]
	ldr	r1, [fp, #-32]
	mov	r0, r3
	bl	find_elf_sym
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L3713
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #84]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #4
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-36]
	str	r2, [r3, #4]
	b	.L3714
.L3713:
	ldr	r1, .L3720+8
	ldr	r0, [fp, #-32]
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L3718
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #2
	bne	.L3716
	ldr	r3, [fp, #-36]
	mov	r2, #0
	str	r2, [r3, #4]
	b	.L3714
.L3716:
	ldr	r1, [fp, #-32]
	ldr	r0, .L3720+12
	bl	error_noabort
	b	.L3714
.L3711:
	ldr	r3, [fp, #-24]
	cmp	r3, #65280
	bge	.L3719
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-40]
	ldr	r1, [r3, #52]
	ldr	r3, [fp, #-36]
	ldrh	r3, [r3, #14]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #44]
	add	r2, r2, r3
	ldr	r3, [fp, #-36]
	str	r2, [r3, #4]
	b	.L3714
.L3718:
	nop
	b	.L3714
.L3719:
	nop
.L3714:
	ldr	r3, [fp, #-36]
	add	r3, r3, #16
	str	r3, [fp, #-36]
.L3710:
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	bcc	.L3717
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3721:
	.align	2
.L3720:
	.word	symtab_section
	.word	strtab_section
	.word	.LC289
	.word	.LC290
	.size	relocate_syms, .-relocate_syms
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	relocate_section, %function
relocate_section:
	@ args = 0, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #60
	str	r0, [fp, #-56]
	str	r1, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldr	r3, [r3, #60]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-48]
	b	.L3723
.L3736:
	ldr	r3, [fp, #-60]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #4]
	lsr	r3, r3, #8
	str	r3, [fp, #-28]
	ldr	r3, .L3739
	ldr	r3, [r3]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #4
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #4]
	and	r3, r3, #255
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-60]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	sub	r3, r3, #1
	cmp	r3, #9
	ldrls	pc, [pc, r3, asl #2]
	b	.L3724
.L3726:
	.word	.L3732
	.word	.L3731
	.word	.L3730
	.word	.L3729
	.word	.L3724
	.word	.L3728
	.word	.L3728
	.word	.L3724
	.word	.L3727
	.word	.L3725
.L3732:
	ldr	r3, [fp, #-56]
	ldr	r3, [r3]
	cmp	r3, #2
	bne	.L3733
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #76]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-48]
	ldr	r2, [r3]
	ldr	r3, [fp, #-44]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L3734
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #8
	add	r3, r3, #1
	mov	r2, r3
	ldr	r3, [fp, #-44]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-44]
	add	r3, r3, #8
	str	r3, [fp, #-44]
	b	.L3724
.L3734:
	ldr	r3, [fp, #-44]
	mov	r2, #8
	str	r2, [r3, #4]
	ldr	r3, [fp, #-44]
	add	r3, r3, #8
	str	r3, [fp, #-44]
.L3733:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-32]
	str	r2, [r3]
	b	.L3724
.L3731:
	ldr	r3, [fp, #-56]
	ldr	r3, [r3]
	cmp	r3, #2
	bne	.L3735
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #76]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L3735
	ldr	r3, [fp, #-48]
	ldr	r2, [r3]
	ldr	r3, [fp, #-44]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #8
	add	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-44]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-44]
	add	r3, r3, #8
	str	r3, [fp, #-44]
	b	.L3724
.L3735:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-12]
	sub	r3, r2, r3
	add	r3, r1, r3
	mov	r2, r3
	ldr	r3, [fp, #-32]
	str	r2, [r3]
	b	.L3724
.L3729:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-12]
	sub	r3, r2, r3
	add	r3, r1, r3
	mov	r2, r3
	ldr	r3, [fp, #-32]
	str	r2, [r3]
	b	.L3724
.L3728:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-32]
	str	r2, [r3]
	b	.L3724
.L3725:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #60]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-12]
	sub	r3, r2, r3
	add	r3, r1, r3
	mov	r2, r3
	ldr	r3, [fp, #-32]
	str	r2, [r3]
	b	.L3724
.L3727:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #60]
	ldr	r3, [r3, #44]
	ldr	r2, [fp, #-20]
	sub	r3, r2, r3
	add	r3, r1, r3
	mov	r2, r3
	ldr	r3, [fp, #-32]
	str	r2, [r3]
	b	.L3724
.L3730:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #68]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	add	r3, r1, r3
	mov	r2, r3
	ldr	r3, [fp, #-32]
	str	r2, [r3]
	nop
.L3724:
	ldr	r3, [fp, #-48]
	add	r3, r3, #8
	str	r3, [fp, #-48]
.L3723:
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-36]
	cmp	r2, r3
	bcc	.L3736
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #24]
	and	r3, r3, #2
	cmp	r3, #0
	beq	.L3738
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-40]
	str	r2, [r3, #56]
.L3738:
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L3740:
	.align	2
.L3739:
	.word	symtab_section
	.size	relocate_section, .-relocate_section
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	relocate_rel, %function
relocate_rel:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #28
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-16]
	b	.L3742
.L3743:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #44]
	add	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	str	r3, [fp, #-16]
.L3742:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	bcc	.L3743
	nop
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	relocate_rel, .-relocate_rel
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	prepare_dynamic_rel, %function
prepare_dynamic_rel:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #36
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-28]
	b	.L3745
.L3751:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #4]
	lsr	r3, r3, #8
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #4]
	and	r3, r3, #255
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #1
	beq	.L3746
	ldr	r3, [fp, #-12]
	cmp	r3, #2
	beq	.L3747
	b	.L3749
.L3746:
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
	b	.L3749
.L3747:
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #76]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L3754
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L3754:
	nop
.L3749:
	ldr	r3, [fp, #-28]
	add	r3, r3, #8
	str	r3, [fp, #-28]
.L3745:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	bcc	.L3751
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L3752
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #24]
	orr	r2, r3, #2
	ldr	r3, [fp, #-36]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-24]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-36]
	str	r2, [r3, #40]
.L3752:
	ldr	r3, [fp, #-24]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	prepare_dynamic_rel, .-prepare_dynamic_rel
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	put_got_offset, %function
put_got_offset:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #72]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L3756
	mov	r3, #1
	str	r3, [fp, #-12]
	b	.L3757
.L3758:
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #1
	str	r3, [fp, #-12]
.L3757:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	bge	.L3758
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #68]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	tcc_realloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L3759
	ldr	r0, .L3760
	bl	error
.L3759:
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #68]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #68]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #72]
	lsl	r3, r3, #2
	add	r0, r2, r3
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #72]
	ldr	r2, [fp, #-12]
	sub	r3, r2, r3
	lsl	r3, r3, #2
	mov	r2, r3
	mov	r1, #0
	bl	memset
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #72]
.L3756:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #68]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-24]
	str	r2, [r3]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3761:
	.align	2
.L3760:
	.word	.LC10
	.size	put_got_offset, .-put_got_offset
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	put32, %function
put32:
	@ 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]
	and	r2, r3, #255
	ldr	r3, [fp, #-8]
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	lsr	r2, r3, #8
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	lsr	r2, r3, #16
	ldr	r3, [fp, #-8]
	add	r3, r3, #2
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	lsr	r2, r3, #24
	ldr	r3, [fp, #-8]
	add	r3, r3, #3
	and	r2, r2, #255
	strb	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	put32, .-put32
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	get32, %function
get32:
	@ 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]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	orr	r2, r2, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	orr	r2, r2, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #24
	orr	r3, r2, r3
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	get32, .-get32
	.section	.rodata
	.align	2
.LC291:
	.ascii	".got\000"
	.align	2
.LC292:
	.ascii	"_GLOBAL_OFFSET_TABLE_\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	build_got, %function
build_got:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-16]
	mov	r3, #3
	mov	r2, #1
	ldr	r1, .L3766
	ldr	r0, [fp, #-16]
	bl	new_section
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #60]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #60]
	mov	r2, #4
	str	r2, [r3, #36]
	ldr	r3, .L3766+4
	ldr	r0, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #60]
	ldr	r3, [r3, #16]
	ldr	r2, .L3766+8
	str	r2, [sp, #8]
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #17
	mov	r2, #4
	mov	r1, #0
	bl	add_elf_sym
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #60]
	mov	r1, #12
	mov	r0, r3
	bl	section_ptr_add
	str	r0, [fp, #-8]
	mov	r1, #0
	ldr	r0, [fp, #-8]
	bl	put32
	ldr	r3, [fp, #-8]
	add	r3, r3, #4
	mov	r1, #0
	mov	r0, r3
	bl	put32
	ldr	r3, [fp, #-8]
	add	r3, r3, #8
	mov	r1, #0
	mov	r0, r3
	bl	put32
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3767:
	.align	2
.L3766:
	.word	.LC291
	.word	symtab_section
	.word	.LC292
	.size	build_got, .-build_got
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	put_got_entry, %function
put_got_entry:
	@ args = 4, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #64
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	str	r2, [fp, #-48]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #60]
	cmp	r3, #0
	bne	.L3769
	ldr	r0, [fp, #-40]
	bl	build_got
.L3769:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #72]
	ldr	r2, [fp, #4]
	cmp	r2, r3
	bge	.L3770
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #68]
	ldr	r3, [fp, #4]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L3777
.L3770:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #60]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #4]
	ldr	r0, [fp, #-40]
	bl	put_got_offset
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #84]
	cmp	r3, #0
	beq	.L3772
	ldr	r3, .L3778
	ldr	r3, [r3]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #4]
	lsl	r3, r3, #4
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, .L3778
	ldr	r3, [r3]
	ldr	r3, [r3, #56]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-44]
	cmp	r3, #7
	bne	.L3773
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	cmp	r3, #2
	bne	.L3774
	mov	r3, #163
	str	r3, [fp, #-32]
	b	.L3775
.L3774:
	mov	r3, #37
	str	r3, [fp, #-32]
.L3775:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #64]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L3776
	mov	r1, #16
	ldr	r0, [fp, #-20]
	bl	section_ptr_add
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-32]
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	add	r2, r2, #16
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #2
	mov	r1, #4
	mov	r0, r3
	bl	put32
	ldr	r3, [fp, #-16]
	add	r3, r3, #6
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #7
	ldr	r2, [fp, #-32]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	mov	r1, #8
	mov	r0, r3
	bl	put32
.L3776:
	mov	r1, #16
	ldr	r0, [fp, #-20]
	bl	section_ptr_add
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	ldr	r2, [fp, #-32]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r2, r3, #2
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #60]
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	put32
	ldr	r3, [fp, #-16]
	add	r3, r3, #6
	mov	r2, #104
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r2, r3, #7
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	sub	r3, r3, #32
	lsr	r3, r3, #1
	mov	r1, r3
	mov	r0, r2
	bl	put32
	ldr	r3, [fp, #-16]
	add	r3, r3, #11
	mvn	r2, #22
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r2, r3, #12
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	rsb	r3, r3, #0
	mov	r1, r3
	mov	r0, r2
	bl	put32
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L3773
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	sub	r3, r3, #16
	str	r3, [fp, #-36]
.L3773:
	ldr	r3, [fp, #-40]
	ldr	r0, [r3, #84]
	ldr	r3, [fp, #-28]
	ldrh	r3, [r3, #14]
	mov	r2, r3
	ldr	r3, [fp, #-24]
	str	r3, [sp, #8]
	str	r2, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	ldr	r3, [fp, #-52]
	ldr	r2, [fp, #-48]
	ldr	r1, [fp, #-36]
	bl	put_elf_sym
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-40]
	ldr	r0, [r3, #84]
	ldr	r3, [fp, #-40]
	ldr	r1, [r3, #60]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #60]
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	str	r3, [sp]
	ldr	r3, [fp, #-44]
	bl	put_elf_reloc
.L3772:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #60]
	mov	r1, #4
	mov	r0, r3
	bl	section_ptr_add
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3]
	b	.L3768
.L3777:
	nop
.L3768:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3779:
	.align	2
.L3778:
	.word	symtab_section
	.size	put_got_entry, .-put_got_entry
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	build_got_entries, %function
build_got_entries:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #56
	str	r0, [fp, #-48]
	mov	r3, #1
	str	r3, [fp, #-36]
	b	.L3781
.L3796:
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #20]
	cmp	r3, #9
	bne	.L3797
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #56]
	ldr	r3, .L3801
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L3798
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #56]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-40]
	b	.L3785
.L3795:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #4]
	and	r3, r3, #255
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #4
	bgt	.L3786
	ldr	r3, [fp, #-16]
	cmp	r3, #3
	bge	.L3787
	b	.L3799
.L3786:
	ldr	r3, [fp, #-16]
	sub	r3, r3, #9
	cmp	r3, #1
	bhi	.L3799
.L3787:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #60]
	cmp	r3, #0
	bne	.L3789
	ldr	r0, [fp, #-48]
	bl	build_got
.L3789:
	ldr	r3, [fp, #-16]
	cmp	r3, #3
	beq	.L3790
	ldr	r3, [fp, #-16]
	cmp	r3, #4
	bne	.L3800
.L3790:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #4]
	lsr	r3, r3, #8
	str	r3, [fp, #-12]
	ldr	r3, .L3801
	ldr	r3, [r3]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #4
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	cmp	r3, #3
	bne	.L3792
	mov	r3, #6
	str	r3, [fp, #-32]
	b	.L3793
.L3792:
	mov	r3, #7
	str	r3, [fp, #-32]
.L3793:
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r3, [fp, #-12]
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-48]
	bl	put_got_entry
	b	.L3800
.L3799:
	nop
	b	.L3794
.L3800:
	nop
.L3794:
	ldr	r3, [fp, #-40]
	add	r3, r3, #8
	str	r3, [fp, #-40]
.L3785:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	bcc	.L3795
	b	.L3783
.L3797:
	nop
	b	.L3783
.L3798:
	nop
.L3783:
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L3781:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #56]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	blt	.L3796
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3802:
	.align	2
.L3801:
	.word	symtab_section
	.size	build_got_entries, .-build_got_entries
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	new_symtab, %function
new_symtab:
	@ args = 12, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #56
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	ldr	r2, [fp, #-40]
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	new_section
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	mov	r2, #16
	str	r2, [r3, #36]
	ldr	r3, [fp, #-44]
	mov	r2, #3
	ldr	r1, [fp, #4]
	ldr	r0, [fp, #-32]
	bl	new_section
	str	r0, [fp, #-20]
	ldr	r1, .L3805
	ldr	r0, [fp, #-20]
	bl	put_elf_str
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-20]
	str	r2, [r3, #56]
	mov	r3, #0
	str	r3, [sp, #8]
	mov	r3, #0
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #0
	mov	r1, #0
	ldr	r0, [fp, #-24]
	bl	put_elf_sym
	mov	r3, #1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #12]
	mov	r2, #5
	ldr	r1, [fp, #8]
	ldr	r0, [fp, #-32]
	bl	new_section
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	mov	r2, #4
	str	r2, [r3, #36]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #64]
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-24]
	str	r2, [r3, #56]
	ldr	r3, [fp, #-16]
	add	r3, r3, #3
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-12]
	bl	section_ptr_add
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #4
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r0, r3, #8
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	lsl	r3, r3, #2
	mov	r2, r3
	mov	r1, #0
	bl	memset
	ldr	r3, [fp, #-24]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3806:
	.align	2
.L3805:
	.word	.LC52
	.size	new_symtab, .-new_symtab
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	put_dt, %function
put_dt:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	mov	r1, #8
	ldr	r0, [fp, #-16]
	bl	section_ptr_add
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-24]
	str	r2, [r3, #4]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	put_dt, .-put_dt
	.section	.rodata
	.align	2
.LC293:
	.ascii	"__%s_start\000"
	.align	2
.LC294:
	.ascii	"__%s_end\000"
	.align	2
.LC295:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	add_init_array_defines, %function
add_init_array_defines:
	@ args = 0, pretend = 0, frame = 2072
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #2080
	sub	sp, sp, #8
	str	r0, [fp, #-2072]
	str	r1, [fp, #-2076]
	ldr	r3, .L3812
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-2076]
	add	r3, r3, #1
	sub	r0, fp, #2048
	sub	r0, r0, #4
	sub	r0, r0, #4
	ldr	r2, .L3812+4
	mov	r1, #1024
	bl	snprintf
	ldr	r3, [fp, #-2076]
	add	r3, r3, #1
	sub	r0, fp, #1024
	sub	r0, r0, #4
	sub	r0, r0, #4
	ldr	r2, .L3812+8
	mov	r1, #1024
	bl	snprintf
	ldr	r1, [fp, #-2076]
	ldr	r0, [fp, #-2072]
	bl	find_section
	str	r0, [fp, #-2064]
	ldr	r3, [fp, #-2064]
	cmp	r3, #0
	bne	.L3809
	mov	r3, #0
	str	r3, [fp, #-2060]
	ldr	r3, .L3812+12
	ldr	r3, [r3]
	str	r3, [fp, #-2064]
	b	.L3810
.L3809:
	ldr	r3, [fp, #-2064]
	ldr	r3, [r3]
	str	r3, [fp, #-2060]
.L3810:
	ldr	r3, .L3812+16
	ldr	r0, [r3]
	ldr	r3, [fp, #-2064]
	ldr	r2, [r3, #16]
	sub	r3, fp, #2048
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [sp, #8]
	str	r2, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #16
	mov	r2, #0
	mov	r1, #0
	bl	add_elf_sym
	ldr	r3, .L3812+16
	ldr	r0, [r3]
	ldr	r1, [fp, #-2060]
	ldr	r3, [fp, #-2064]
	ldr	r2, [r3, #16]
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [sp, #8]
	str	r2, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #16
	mov	r2, #0
	bl	add_elf_sym
	nop
	ldr	r3, .L3812
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L3811
	bl	__stack_chk_fail
.L3811:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3813:
	.align	2
.L3812:
	.word	.LC295
	.word	.LC293
	.word	.LC294
	.word	data_section
	.word	symtab_section
	.size	add_init_array_defines, .-add_init_array_defines
	.section	.rodata
	.align	2
.LC296:
	.ascii	"__bounds_start\000"
	.align	2
.LC297:
	.ascii	"%s/%s\000"
	.align	2
.LC298:
	.ascii	"bcheck.o\000"
	.align	2
.LC299:
	.ascii	".init\000"
	.align	2
.LC300:
	.ascii	"__bound_init\000"
	.align	2
.LC301:
	.ascii	"c\000"
	.align	2
.LC302:
	.ascii	"libtcc1.a\000"
	.align	2
.LC303:
	.ascii	"/usr/lib/crtn.o\000"
	.align	2
.LC304:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_add_runtime, %function
tcc_add_runtime:
	@ args = 0, pretend = 0, frame = 1056
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #1072
	str	r0, [fp, #-1056]
	ldr	r3, .L3820
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L3820+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L3815
	ldr	r3, .L3820+8
	ldr	r3, [r3]
	mov	r1, #4
	mov	r0, r3
	bl	section_ptr_add
	str	r0, [fp, #-1048]
	ldr	r3, [fp, #-1048]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L3820+12
	ldr	r0, [r3]
	ldr	r3, .L3820+8
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r2, .L3820+16
	str	r2, [sp, #8]
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #16
	mov	r2, #0
	mov	r1, #0
	bl	add_elf_sym
	ldr	r3, .L3820+20
	ldr	r3, [r3]
	sub	r0, fp, #1024
	sub	r0, r0, #4
	sub	r0, r0, #4
	ldr	r2, .L3820+24
	str	r2, [sp]
	ldr	r2, .L3820+28
	mov	r1, #1024
	bl	snprintf
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r1, r3
	ldr	r0, [fp, #-1056]
	bl	tcc_add_file
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L3815
	ldr	r1, .L3820+32
	ldr	r0, [fp, #-1056]
	bl	find_section
	str	r0, [fp, #-1044]
	mov	r1, #5
	ldr	r0, [fp, #-1044]
	bl	section_ptr_add
	str	r0, [fp, #-1040]
	ldr	r3, [fp, #-1040]
	mvn	r2, #23
	strb	r2, [r3]
	ldr	r3, [fp, #-1040]
	add	r3, r3, #1
	mvn	r1, #3
	mov	r0, r3
	bl	put32
	ldr	r3, .L3820+12
	ldr	r3, [r3]
	ldr	r1, .L3820+36
	mov	r0, r3
	bl	find_elf_sym
	str	r0, [fp, #-1036]
	ldr	r3, .L3820+12
	ldr	r0, [r3]
	ldr	r3, [fp, #-1044]
	ldr	r3, [r3]
	sub	r2, r3, #4
	ldr	r3, [fp, #-1036]
	str	r3, [sp]
	mov	r3, #2
	ldr	r1, [fp, #-1044]
	bl	put_elf_reloc
.L3815:
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3, #92]
	cmp	r3, #0
	bne	.L3816
	ldr	r1, .L3820+40
	ldr	r0, [fp, #-1056]
	bl	tcc_add_library
	ldr	r3, .L3820+20
	ldr	r3, [r3]
	sub	r0, fp, #1024
	sub	r0, r0, #4
	sub	r0, r0, #4
	ldr	r2, .L3820+44
	str	r2, [sp]
	ldr	r2, .L3820+28
	mov	r1, #1024
	bl	snprintf
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r1, r3
	ldr	r0, [fp, #-1056]
	bl	tcc_add_file
.L3816:
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L3819
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3, #92]
	cmp	r3, #0
	bne	.L3819
	ldr	r1, .L3820+48
	ldr	r0, [fp, #-1056]
	bl	tcc_add_file
.L3819:
	nop
	ldr	r3, .L3820
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L3818
	bl	__stack_chk_fail
.L3818:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3821:
	.align	2
.L3820:
	.word	.LC304
	.word	do_bounds_check
	.word	bounds_section
	.word	symtab_section
	.word	.LC296
	.word	tcc_lib_path
	.word	.LC298
	.word	.LC297
	.word	.LC299
	.word	.LC300
	.word	.LC301
	.word	.LC302
	.word	.LC303
	.size	tcc_add_runtime, .-tcc_add_runtime
	.section	.rodata
	.align	2
.LC305:
	.ascii	"_etext\000"
	.align	2
.LC306:
	.ascii	"_edata\000"
	.align	2
.LC307:
	.ascii	"_end\000"
	.align	2
.LC308:
	.ascii	".preinit_array\000"
	.align	2
.LC309:
	.ascii	".init_array\000"
	.align	2
.LC310:
	.ascii	".fini_array\000"
	.align	2
.LC311:
	.ascii	"__start_%s\000"
	.align	2
.LC312:
	.ascii	"__stop_%s\000"
	.align	2
.LC313:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_add_linker_symbols, %function
tcc_add_linker_symbols:
	@ args = 0, pretend = 0, frame = 1056
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #1072
	str	r0, [fp, #-1056]
	ldr	r3, .L3835
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L3835+4
	ldr	r0, [r3]
	ldr	r3, .L3835+8
	ldr	r3, [r3]
	ldr	r1, [r3]
	ldr	r3, .L3835+8
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r2, .L3835+12
	str	r2, [sp, #8]
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #16
	mov	r2, #0
	bl	add_elf_sym
	ldr	r3, .L3835+4
	ldr	r0, [r3]
	ldr	r3, .L3835+16
	ldr	r3, [r3]
	ldr	r1, [r3]
	ldr	r3, .L3835+16
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r2, .L3835+20
	str	r2, [sp, #8]
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #16
	mov	r2, #0
	bl	add_elf_sym
	ldr	r3, .L3835+4
	ldr	r0, [r3]
	ldr	r3, .L3835+24
	ldr	r3, [r3]
	ldr	r1, [r3]
	ldr	r3, .L3835+24
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r2, .L3835+28
	str	r2, [sp, #8]
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #16
	mov	r2, #0
	bl	add_elf_sym
	ldr	r1, .L3835+32
	ldr	r0, [fp, #-1056]
	bl	add_init_array_defines
	ldr	r1, .L3835+36
	ldr	r0, [fp, #-1056]
	bl	add_init_array_defines
	ldr	r1, .L3835+40
	ldr	r0, [fp, #-1056]
	bl	add_init_array_defines
	mov	r3, #1
	str	r3, [fp, #-1048]
	b	.L3823
.L3829:
	ldr	r3, [fp, #-1056]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-1048]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-1040]
	ldr	r3, [fp, #-1040]
	ldr	r3, [r3, #20]
	cmp	r3, #1
	bne	.L3832
	ldr	r3, [fp, #-1040]
	ldr	r3, [r3, #24]
	and	r3, r3, #2
	cmp	r3, #0
	beq	.L3832
	ldr	r3, [fp, #-1040]
	add	r3, r3, #72
	str	r3, [fp, #-1044]
.L3828:
	ldr	r3, [fp, #-1044]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-1036]
	ldr	r3, [fp, #-1036]
	cmp	r3, #0
	beq	.L3833
	ldr	r0, [fp, #-1036]
	bl	isid
	mov	r3, r0
	cmp	r3, #0
	bne	.L3827
	ldr	r0, [fp, #-1036]
	bl	isnum
	mov	r3, r0
	cmp	r3, #0
	beq	.L3834
.L3827:
	ldr	r3, [fp, #-1044]
	add	r3, r3, #1
	str	r3, [fp, #-1044]
	b	.L3828
.L3833:
	nop
	ldr	r3, [fp, #-1040]
	add	r3, r3, #72
	sub	r0, fp, #1024
	sub	r0, r0, #4
	sub	r0, r0, #4
	ldr	r2, .L3835+44
	mov	r1, #1024
	bl	snprintf
	ldr	r3, .L3835+4
	ldr	r0, [r3]
	ldr	r3, [fp, #-1040]
	ldr	r2, [r3, #16]
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [sp, #8]
	str	r2, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #16
	mov	r2, #0
	mov	r1, #0
	bl	add_elf_sym
	ldr	r3, [fp, #-1040]
	add	r3, r3, #72
	sub	r0, fp, #1024
	sub	r0, r0, #4
	sub	r0, r0, #4
	ldr	r2, .L3835+48
	mov	r1, #1024
	bl	snprintf
	ldr	r3, .L3835+4
	ldr	r0, [r3]
	ldr	r3, [fp, #-1040]
	ldr	r1, [r3]
	ldr	r3, [fp, #-1040]
	ldr	r2, [r3, #16]
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [sp, #8]
	str	r2, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #16
	mov	r2, #0
	bl	add_elf_sym
	b	.L3824
.L3832:
	nop
	b	.L3824
.L3834:
	nop
.L3824:
	ldr	r3, [fp, #-1048]
	add	r3, r3, #1
	str	r3, [fp, #-1048]
.L3823:
	ldr	r3, [fp, #-1056]
	ldr	r3, [r3, #56]
	ldr	r2, [fp, #-1048]
	cmp	r2, r3
	blt	.L3829
	nop
	ldr	r3, .L3835
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L3830
	bl	__stack_chk_fail
.L3830:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3836:
	.align	2
.L3835:
	.word	.LC313
	.word	symtab_section
	.word	text_section
	.word	.LC305
	.word	data_section
	.word	.LC306
	.word	bss_section
	.word	.LC307
	.word	.LC308
	.word	.LC309
	.word	.LC310
	.word	.LC311
	.word	.LC312
	.size	tcc_add_linker_symbols, .-tcc_add_linker_symbols
	.data
	.align	2
	.type	elf_interp, %object
	.size	elf_interp, 19
elf_interp:
	.ascii	"/lib/ld-linux.so.2\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_output_binary, %function
tcc_output_binary:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	mov	r3, #0
	str	r3, [fp, #-16]
	mov	r3, #1
	str	r3, [fp, #-20]
	b	.L3838
.L3842:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	ldr	r1, [fp, #-32]
	add	r3, r1, r3
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #20]
	cmp	r3, #8
	beq	.L3839
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #24]
	and	r3, r3, #2
	cmp	r3, #0
	beq	.L3839
	b	.L3840
.L3841:
	ldr	r1, [fp, #-28]
	mov	r0, #0
	bl	fputc
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L3840:
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #48]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	bhi	.L3841
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #40]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	ldr	r0, [r3, #4]
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-28]
	mov	r1, #1
	bl	fwrite
	mov	r3, r0
	ldr	r2, .L3843
	str	r3, [r2]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	str	r3, [fp, #-16]
.L3839:
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L3838:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #56]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L3842
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3844:
	.align	2
.L3843:
	.word	dummy_size_t
	.size	tcc_output_binary, .-tcc_output_binary
	.section	.rodata
	.align	2
.LC314:
	.ascii	".interp\000"
	.align	2
.LC315:
	.ascii	".dynsym\000"
	.align	2
.LC316:
	.ascii	".hash\000"
	.align	2
.LC317:
	.ascii	".dynstr\000"
	.align	2
.LC318:
	.ascii	".dynamic\000"
	.align	2
.LC319:
	.ascii	".plt\000"
	.align	2
.LC320:
	.ascii	"undefined dynamic symbol '%s'\000"
	.align	2
.LC321:
	.ascii	".shstrtab\000"
	.align	2
.LC322:
	.ascii	"_start\000"
	.align	2
.LC323:
	.ascii	"could not write '%s'\000"
	.align	2
.LC324:
	.ascii	"wb\000"
	.align	2
.LC325:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	tcc_output_file
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_output_file, %function
tcc_output_file:
	@ args = 0, pretend = 0, frame = 280
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #300
	str	r0, [fp, #-288]
	str	r1, [fp, #-292]
	ldr	r3, .L3961+96
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-288]
	ldr	r3, [r3]
	str	r3, [fp, #-192]
	ldr	r3, [fp, #-288]
	mov	r2, #0
	str	r2, [r3, #560]
	ldr	r3, [fp, #-192]
	cmp	r3, #3
	beq	.L3846
	ldr	r0, [fp, #-288]
	bl	tcc_add_runtime
.L3846:
	mov	r3, #0
	str	r3, [fp, #-240]
	mov	r3, #0
	str	r3, [fp, #-276]
	mov	r3, #0
	str	r3, [fp, #-232]
	mov	r3, #0
	str	r3, [fp, #-228]
	mov	r3, #0
	str	r3, [fp, #-224]
	mov	r3, #0
	str	r3, [fp, #-220]
	ldr	r3, [fp, #-192]
	cmp	r3, #3
	beq	.L3847
	bl	relocate_common_syms
	ldr	r0, [fp, #-288]
	bl	tcc_add_linker_symbols
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #100]
	cmp	r3, #0
	bne	.L3848
	ldr	r3, [fp, #-192]
	cmp	r3, #1
	bne	.L3849
	mov	r3, #2
	mov	r2, #1
	ldr	r1, .L3961
	ldr	r0, [fp, #-288]
	bl	new_section
	str	r0, [fp, #-232]
	ldr	r3, [fp, #-232]
	mov	r2, #1
	str	r2, [r3, #32]
	mov	r1, #19
	ldr	r0, [fp, #-232]
	bl	section_ptr_add
	str	r0, [fp, #-188]
	ldr	r1, .L3961+4
	ldr	r0, [fp, #-188]
	bl	strcpy
.L3849:
	mov	r3, #2
	str	r3, [sp, #8]
	ldr	r3, .L3961+8
	str	r3, [sp, #4]
	ldr	r3, .L3961+12
	str	r3, [sp]
	mov	r3, #2
	mov	r2, #11
	ldr	r1, .L3961+16
	ldr	r0, [fp, #-288]
	bl	new_symtab
	mov	r2, r0
	ldr	r3, [fp, #-288]
	str	r2, [r3, #84]
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #84]
	ldr	r3, [r3, #56]
	str	r3, [fp, #-224]
	mov	r3, #3
	mov	r2, #6
	ldr	r1, .L3961+20
	ldr	r0, [fp, #-288]
	bl	new_section
	str	r0, [fp, #-228]
	ldr	r3, [fp, #-228]
	ldr	r2, [fp, #-224]
	str	r2, [r3, #56]
	ldr	r3, [fp, #-228]
	mov	r2, #8
	str	r2, [r3, #36]
	mov	r3, #6
	mov	r2, #1
	ldr	r1, .L3961+24
	ldr	r0, [fp, #-288]
	bl	new_section
	mov	r2, r0
	ldr	r3, [fp, #-288]
	str	r2, [r3, #64]
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #64]
	mov	r2, #4
	str	r2, [r3, #36]
	ldr	r0, [fp, #-288]
	bl	build_got
	ldr	r3, .L3961+88
	ldr	r3, [r3]
	ldr	r2, [r3, #4]
	ldr	r3, .L3961+88
	ldr	r3, [r3]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-184]
	ldr	r3, [fp, #-192]
	cmp	r3, #1
	bne	.L3850
	ldr	r3, .L3961+88
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	add	r3, r3, #16
	str	r3, [fp, #-216]
	b	.L3851
.L3856:
	ldr	r3, [fp, #-216]
	ldrh	r3, [r3, #14]
	cmp	r3, #0
	bne	.L3852
	ldr	r3, .L3961+88
	ldr	r3, [r3]
	ldr	r3, [r3, #56]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-216]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-176]
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #80]
	ldr	r1, [fp, #-176]
	mov	r0, r3
	bl	find_elf_sym
	str	r0, [fp, #-168]
	ldr	r3, [fp, #-168]
	cmp	r3, #0
	beq	.L3853
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #80]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-168]
	lsl	r3, r3, #4
	add	r3, r2, r3
	str	r3, [fp, #-204]
	ldr	r3, [fp, #-204]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	and	r3, r3, #15
	str	r3, [fp, #-164]
	ldr	r3, [fp, #-164]
	cmp	r3, #2
	bne	.L3854
	ldr	r3, [fp, #-204]
	ldr	r1, [r3, #8]
	ldr	r3, [fp, #-204]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, .L3961+88
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-216]
	sub	r3, r2, r3
	asr	r3, r3, #4
	str	r3, [sp]
	mov	r3, r0
	mov	r2, r1
	mov	r1, #7
	ldr	r0, [fp, #-288]
	bl	put_got_entry
	b	.L3855
.L3854:
	ldr	r3, [fp, #-164]
	cmp	r3, #1
	bne	.L3855
	ldr	r3, .L3961+28
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-160]
	add	r3, r3, #15
	bic	r3, r3, #15
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-288]
	ldr	r0, [r3, #84]
	ldr	r3, [fp, #-204]
	ldr	r1, [r3, #8]
	ldr	r3, [fp, #-204]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	mov	ip, r3
	ldr	r3, .L3961+28
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-176]
	str	r2, [sp, #8]
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, ip
	mov	r2, r1
	ldr	r1, [fp, #-160]
	bl	put_elf_sym
	str	r0, [fp, #-172]
	ldr	r3, [fp, #-288]
	ldr	r0, [r3, #84]
	ldr	r3, .L3961+28
	ldr	r1, [r3]
	ldr	r3, [fp, #-172]
	str	r3, [sp]
	mov	r3, #5
	ldr	r2, [fp, #-160]
	bl	put_elf_reloc
	ldr	r3, [fp, #-204]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-160]
	add	r3, r2, r3
	str	r3, [fp, #-160]
	ldr	r3, .L3961+28
	ldr	r3, [r3]
	ldr	r2, [fp, #-160]
	str	r2, [r3]
	b	.L3855
.L3853:
	ldr	r3, [fp, #-216]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	cmp	r3, #2
	beq	.L3855
	ldr	r1, .L3961+32
	ldr	r0, [fp, #-176]
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L3855
	ldr	r1, [fp, #-176]
	ldr	r0, .L3961+36
	bl	error_noabort
	b	.L3855
.L3852:
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #104]
	cmp	r3, #0
	beq	.L3855
	ldr	r3, [fp, #-216]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L3855
	ldr	r3, .L3961+88
	ldr	r3, [r3]
	ldr	r3, [r3, #56]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-216]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-176]
	ldr	r3, [fp, #-288]
	ldr	r0, [r3, #84]
	ldr	r3, [fp, #-216]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-216]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-216]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	mov	lr, r3
	ldr	r3, [fp, #-216]
	ldrh	r3, [r3, #14]
	mov	ip, r3
	ldr	r3, [fp, #-176]
	str	r3, [sp, #8]
	str	ip, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, lr
	bl	put_elf_sym
.L3855:
	ldr	r3, [fp, #-216]
	add	r3, r3, #16
	str	r3, [fp, #-216]
.L3851:
	ldr	r2, [fp, #-216]
	ldr	r3, [fp, #-184]
	cmp	r2, r3
	bcc	.L3856
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #560]
	cmp	r3, #0
	bne	.L3957
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #80]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #80]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-184]
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #80]
	ldr	r3, [r3, #4]
	add	r3, r3, #16
	str	r3, [fp, #-204]
	b	.L3859
.L3862:
	ldr	r3, [fp, #-204]
	ldrh	r3, [r3, #14]
	cmp	r3, #0
	bne	.L3860
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #80]
	ldr	r3, [r3, #56]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-204]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-176]
	ldr	r3, .L3961+88
	ldr	r3, [r3]
	ldr	r1, [fp, #-176]
	mov	r0, r3
	bl	find_elf_sym
	str	r0, [fp, #-168]
	ldr	r3, [fp, #-168]
	cmp	r3, #0
	beq	.L3861
	ldr	r3, .L3961+88
	ldr	r3, [r3]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-168]
	lsl	r3, r3, #4
	add	r3, r2, r3
	str	r3, [fp, #-216]
	ldr	r3, [fp, #-288]
	ldr	r0, [r3, #84]
	ldr	r3, [fp, #-216]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-216]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-216]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	mov	lr, r3
	ldr	r3, [fp, #-216]
	ldrh	r3, [r3, #14]
	mov	ip, r3
	ldr	r3, [fp, #-176]
	str	r3, [sp, #8]
	str	ip, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, lr
	bl	put_elf_sym
	b	.L3860
.L3861:
	ldr	r3, [fp, #-204]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	cmp	r3, #2
	beq	.L3860
	ldr	r1, [fp, #-176]
	ldr	r0, .L3961+40
	bl	warning
.L3860:
	ldr	r3, [fp, #-204]
	add	r3, r3, #16
	str	r3, [fp, #-204]
.L3859:
	ldr	r2, [fp, #-204]
	ldr	r3, [fp, #-184]
	cmp	r2, r3
	bcc	.L3862
	b	.L3863
.L3850:
	ldr	r3, .L3961+88
	ldr	r3, [r3]
	ldr	r3, [r3]
	lsr	r3, r3, #4
	str	r3, [fp, #-180]
	ldr	r3, [fp, #-180]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	tcc_mallocz
	mov	r2, r0
	ldr	r3, [fp, #-288]
	str	r2, [r3, #76]
	ldr	r3, .L3961+88
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	add	r3, r3, #16
	str	r3, [fp, #-216]
	b	.L3864
.L3866:
	ldr	r3, [fp, #-216]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L3865
	ldr	r3, .L3961+88
	ldr	r3, [r3]
	ldr	r3, [r3, #56]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-216]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-176]
	ldr	r3, [fp, #-288]
	ldr	r0, [r3, #84]
	ldr	r3, [fp, #-216]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-216]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-216]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	mov	lr, r3
	ldr	r3, [fp, #-216]
	ldrh	r3, [r3, #14]
	mov	ip, r3
	ldr	r3, [fp, #-176]
	str	r3, [sp, #8]
	str	ip, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, lr
	bl	put_elf_sym
	str	r0, [fp, #-172]
	ldr	r3, [fp, #-288]
	ldr	r2, [r3, #76]
	ldr	r3, .L3961+88
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	ldr	r1, [fp, #-216]
	sub	r3, r1, r3
	asr	r3, r3, #4
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-172]
	str	r2, [r3]
.L3865:
	ldr	r3, [fp, #-216]
	add	r3, r3, #16
	str	r3, [fp, #-216]
.L3864:
	ldr	r2, [fp, #-216]
	ldr	r3, [fp, #-184]
	cmp	r2, r3
	bcc	.L3866
.L3863:
	ldr	r0, [fp, #-288]
	bl	build_got_entries
	mov	r3, #0
	str	r3, [fp, #-272]
	b	.L3867
.L3869:
	ldr	r3, [fp, #-288]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-272]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-156]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L3868
	ldr	r3, [fp, #-156]
	add	r3, r3, #4
	mov	r1, r3
	ldr	r0, [fp, #-224]
	bl	put_elf_str
	mov	r3, r0
	mov	r2, r3
	mov	r1, #1
	ldr	r0, [fp, #-228]
	bl	put_dt
.L3868:
	ldr	r3, [fp, #-272]
	add	r3, r3, #1
	str	r3, [fp, #-272]
.L3867:
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #48]
	ldr	r2, [fp, #-272]
	cmp	r2, r3
	blt	.L3869
	ldr	r3, [fp, #-192]
	cmp	r3, #2
	bne	.L3870
	mov	r2, #0
	mov	r1, #22
	ldr	r0, [fp, #-228]
	bl	put_dt
.L3870:
	ldr	r3, [fp, #-228]
	ldr	r3, [r3]
	str	r3, [fp, #-220]
	ldr	r3, [fp, #-228]
	ldr	r3, [r3]
	add	r2, r3, #72
	ldr	r3, [fp, #-228]
	str	r2, [r3]
	b	.L3847
.L3848:
	ldr	r0, [fp, #-288]
	bl	build_got_entries
.L3847:
	sub	r3, fp, #68
	mov	r2, #52
	mov	r1, #0
	mov	r0, r3
	bl	memset
	mov	r3, #0
	mov	r2, #3
	ldr	r1, .L3961+44
	ldr	r0, [fp, #-288]
	bl	new_section
	str	r0, [fp, #-152]
	ldr	r1, .L3961+48
	ldr	r0, [fp, #-152]
	bl	put_elf_str
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #56]
	str	r3, [fp, #-148]
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	tcc_malloc
	str	r0, [fp, #-276]
	ldr	r3, [fp, #-276]
	mov	r2, #0
	str	r2, [r3]
	mov	r3, #1
	str	r3, [fp, #-252]
	ldr	r3, [fp, #-192]
	cmp	r3, #1
	beq	.L3871
	ldr	r3, [fp, #-192]
	cmp	r3, #2
	beq	.L3872
	mov	r3, #0
	str	r3, [fp, #-268]
	b	.L3873
.L3871:
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #100]
	cmp	r3, #0
	bne	.L3874
	mov	r3, #4
	str	r3, [fp, #-268]
	b	.L3873
.L3874:
	mov	r3, #2
	str	r3, [fp, #-268]
	b	.L3873
.L3872:
	mov	r3, #3
	str	r3, [fp, #-268]
	nop
.L3873:
	mov	r3, #1
	str	r3, [fp, #-272]
	b	.L3876
.L3880:
	ldr	r3, [fp, #-288]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-272]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-132]
	add	r3, r3, #72
	mov	r1, r3
	ldr	r0, [fp, #-152]
	bl	put_elf_str
	mov	r2, r0
	ldr	r3, [fp, #-132]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-192]
	cmp	r3, #2
	bne	.L3877
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #20]
	cmp	r3, #9
	bne	.L3877
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #24]
	and	r3, r3, #2
	cmp	r3, #0
	bne	.L3877
	ldr	r1, [fp, #-132]
	ldr	r0, [fp, #-288]
	bl	prepare_dynamic_rel
	b	.L3878
.L3877:
	ldr	r3, .L3961+52
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L3879
	ldr	r3, [fp, #-192]
	cmp	r3, #3
	beq	.L3879
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #24]
	and	r3, r3, #2
	cmp	r3, #0
	bne	.L3879
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #56]
	sub	r3, r3, #1
	ldr	r2, [fp, #-272]
	cmp	r2, r3
	bne	.L3878
.L3879:
	ldr	r3, [fp, #-132]
	ldr	r2, [r3]
	ldr	r3, [fp, #-132]
	str	r2, [r3, #40]
.L3878:
	ldr	r3, [fp, #-272]
	add	r3, r3, #1
	str	r3, [fp, #-272]
.L3876:
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #56]
	ldr	r2, [fp, #-272]
	cmp	r2, r3
	blt	.L3880
	ldr	r3, [fp, #-268]
	lsl	r3, r3, #5
	mov	r0, r3
	bl	tcc_mallocz
	str	r0, [fp, #-240]
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #120]
	cmp	r3, #0
	bne	.L3881
	ldr	r3, [fp, #-268]
	lsl	r3, r3, #5
	add	r3, r3, #52
	str	r3, [fp, #-264]
	b	.L3882
.L3881:
	mov	r3, #0
	str	r3, [fp, #-264]
.L3882:
	ldr	r3, [fp, #-268]
	cmp	r3, #0
	ble	.L3883
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #116]
	cmp	r3, #0
	beq	.L3884
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #112]
	str	r3, [fp, #-244]
	ldr	r3, [fp, #-244]
	lsl	r3, r3, #20
	lsr	r3, r3, #20
	str	r3, [fp, #-200]
	ldr	r3, [fp, #-264]
	lsl	r3, r3, #20
	lsr	r3, r3, #20
	str	r3, [fp, #-144]
	ldr	r2, [fp, #-200]
	ldr	r3, [fp, #-144]
	cmp	r2, r3
	bge	.L3885
	ldr	r3, [fp, #-200]
	add	r3, r3, #4096
	str	r3, [fp, #-200]
.L3885:
	ldr	r2, [fp, #-200]
	ldr	r3, [fp, #-144]
	sub	r3, r2, r3
	ldr	r2, [fp, #-264]
	add	r3, r2, r3
	str	r3, [fp, #-264]
	b	.L3886
.L3884:
	ldr	r3, [fp, #-192]
	cmp	r3, #2
	bne	.L3887
	mov	r3, #0
	str	r3, [fp, #-244]
	b	.L3888
.L3887:
	ldr	r3, .L3961+56
	str	r3, [fp, #-244]
.L3888:
	ldr	r3, [fp, #-264]
	lsl	r3, r3, #20
	lsr	r3, r3, #20
	ldr	r2, [fp, #-244]
	add	r3, r2, r3
	str	r3, [fp, #-244]
.L3886:
	mov	r3, #0
	str	r3, [fp, #-208]
	mov	r3, #0
	str	r3, [fp, #-212]
	ldr	r3, [fp, #-240]
	str	r3, [fp, #-236]
	ldr	r3, [fp, #-232]
	cmp	r3, #0
	beq	.L3889
	ldr	r3, [fp, #-236]
	add	r3, r3, #32
	str	r3, [fp, #-236]
.L3889:
	mov	r3, #0
	str	r3, [fp, #-256]
	b	.L3890
.L3912:
	ldr	r3, [fp, #-236]
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, [fp, #-256]
	cmp	r3, #0
	bne	.L3891
	ldr	r3, [fp, #-236]
	mov	r2, #5
	str	r2, [r3, #24]
	b	.L3892
.L3891:
	ldr	r3, [fp, #-236]
	mov	r2, #6
	str	r2, [r3, #24]
.L3892:
	ldr	r3, [fp, #-236]
	mov	r2, #4096
	str	r2, [r3, #28]
	mov	r3, #0
	str	r3, [fp, #-248]
	b	.L3893
.L3909:
	mov	r3, #1
	str	r3, [fp, #-272]
	b	.L3894
.L3908:
	ldr	r3, [fp, #-288]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-272]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-256]
	cmp	r3, #0
	bne	.L3895
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #24]
	and	r3, r3, #3
	cmp	r3, #2
	beq	.L3896
	b	.L3897
.L3895:
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #24]
	and	r3, r3, #3
	cmp	r3, #3
	bne	.L3958
.L3896:
	ldr	r2, [fp, #-132]
	ldr	r3, [fp, #-232]
	cmp	r2, r3
	bne	.L3898
	ldr	r3, [fp, #-248]
	cmp	r3, #0
	beq	.L3899
	b	.L3897
.L3898:
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #20]
	cmp	r3, #11
	beq	.L3900
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #20]
	cmp	r3, #3
	beq	.L3900
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #20]
	cmp	r3, #5
	bne	.L3901
.L3900:
	ldr	r3, [fp, #-248]
	cmp	r3, #1
	beq	.L3899
	b	.L3897
.L3901:
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #20]
	cmp	r3, #9
	bne	.L3903
	ldr	r3, [fp, #-248]
	cmp	r3, #2
	beq	.L3899
	b	.L3897
.L3903:
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #20]
	cmp	r3, #8
	bne	.L3904
	ldr	r3, [fp, #-248]
	cmp	r3, #4
	beq	.L3899
	b	.L3897
.L3904:
	ldr	r3, [fp, #-248]
	cmp	r3, #3
	bne	.L3959
.L3899:
	ldr	r3, [fp, #-252]
	add	r2, r3, #1
	str	r2, [fp, #-252]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-276]
	add	r3, r2, r3
	ldr	r2, [fp, #-272]
	str	r2, [r3]
	ldr	r3, [fp, #-244]
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #32]
	mov	r2, r3
	ldr	r3, [fp, #-244]
	add	r3, r2, r3
	sub	r3, r3, #1
	ldr	r2, [fp, #-132]
	ldr	r2, [r2, #32]
	rsb	r2, r2, #0
	and	r3, r3, r2
	str	r3, [fp, #-244]
	ldr	r3, [fp, #-128]
	ldr	r2, [fp, #-244]
	sub	r2, r2, r3
	ldr	r3, [fp, #-264]
	add	r3, r2, r3
	str	r3, [fp, #-264]
	ldr	r2, [fp, #-264]
	ldr	r3, [fp, #-132]
	str	r2, [r3, #48]
	ldr	r3, [fp, #-132]
	ldr	r2, [fp, #-244]
	str	r2, [r3, #44]
	ldr	r3, [fp, #-236]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L3905
	ldr	r2, [fp, #-264]
	ldr	r3, [fp, #-236]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-236]
	ldr	r2, [fp, #-244]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-236]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-236]
	str	r2, [r3, #12]
.L3905:
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #20]
	cmp	r3, #9
	bne	.L3906
	ldr	r3, [fp, #-208]
	cmp	r3, #0
	bne	.L3907
	ldr	r3, [fp, #-244]
	str	r3, [fp, #-212]
.L3907:
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #40]
	ldr	r2, [fp, #-208]
	add	r3, r2, r3
	str	r3, [fp, #-208]
.L3906:
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #40]
	ldr	r2, [fp, #-244]
	add	r3, r2, r3
	str	r3, [fp, #-244]
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #20]
	cmp	r3, #8
	beq	.L3897
	ldr	r3, [fp, #-132]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-264]
	add	r3, r2, r3
	str	r3, [fp, #-264]
	b	.L3897
.L3958:
	nop
	b	.L3897
.L3959:
	nop
.L3897:
	ldr	r3, [fp, #-272]
	add	r3, r3, #1
	str	r3, [fp, #-272]
.L3894:
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #56]
	ldr	r2, [fp, #-272]
	cmp	r2, r3
	blt	.L3908
	ldr	r3, [fp, #-248]
	add	r3, r3, #1
	str	r3, [fp, #-248]
.L3893:
	ldr	r3, [fp, #-248]
	cmp	r3, #4
	ble	.L3909
	ldr	r2, [fp, #-264]
	ldr	r3, [fp, #-236]
	ldr	r3, [r3, #4]
	sub	r2, r2, r3
	ldr	r3, [fp, #-236]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-236]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-244]
	sub	r2, r2, r3
	ldr	r3, [fp, #-236]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-236]
	add	r3, r3, #32
	str	r3, [fp, #-236]
	ldr	r3, [fp, #-256]
	cmp	r3, #0
	bne	.L3910
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #120]
	cmp	r3, #0
	bne	.L3911
	ldr	r3, [fp, #-244]
	lsl	r3, r3, #20
	lsr	r3, r3, #20
	cmp	r3, #0
	beq	.L3910
	ldr	r3, [fp, #-244]
	add	r3, r3, #4096
	str	r3, [fp, #-244]
	b	.L3910
.L3962:
	.align	2
.L3961:
	.word	.LC314
	.word	elf_interp
	.word	.LC316
	.word	.LC317
	.word	.LC315
	.word	.LC318
	.word	.LC319
	.word	bss_section
	.word	.LC289
	.word	.LC290
	.word	.LC320
	.word	.LC321
	.word	.LC52
	.word	do_debug
	.word	134512640
	.word	.LC322
	.word	text_section
	.word	438
	.word	511
	.word	577
	.word	.LC323
	.word	.LC324
	.word	symtab_section
	.word	dummy_size_t
	.word	.LC325
.L3911:
	ldr	r3, [fp, #-244]
	add	r3, r3, #4080
	add	r3, r3, #15
	bic	r3, r3, #4080
	bic	r3, r3, #15
	str	r3, [fp, #-244]
	ldr	r3, [fp, #-264]
	add	r3, r3, #4080
	add	r3, r3, #15
	bic	r3, r3, #4080
	bic	r3, r3, #15
	str	r3, [fp, #-264]
.L3910:
	ldr	r3, [fp, #-256]
	add	r3, r3, #1
	str	r3, [fp, #-256]
.L3890:
	ldr	r3, [fp, #-256]
	cmp	r3, #1
	ble	.L3912
	ldr	r3, [fp, #-232]
	cmp	r3, #0
	beq	.L3913
	ldr	r3, [fp, #-240]
	str	r3, [fp, #-236]
	ldr	r3, [fp, #-236]
	mov	r2, #3
	str	r2, [r3]
	ldr	r3, [fp, #-232]
	ldr	r2, [r3, #48]
	ldr	r3, [fp, #-236]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-232]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-236]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-236]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-236]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-232]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-236]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-232]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-236]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-236]
	mov	r2, #4
	str	r2, [r3, #24]
	ldr	r3, [fp, #-232]
	ldr	r3, [r3, #32]
	mov	r2, r3
	ldr	r3, [fp, #-236]
	str	r2, [r3, #28]
.L3913:
	ldr	r3, [fp, #-228]
	cmp	r3, #0
	beq	.L3914
	ldr	r3, [fp, #-268]
	sub	r3, r3, #-134217727
	lsl	r3, r3, #5
	ldr	r2, [fp, #-240]
	add	r3, r2, r3
	str	r3, [fp, #-236]
	ldr	r3, [fp, #-236]
	mov	r2, #2
	str	r2, [r3]
	ldr	r3, [fp, #-228]
	ldr	r2, [r3, #48]
	ldr	r3, [fp, #-236]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-228]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-236]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-236]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-236]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-228]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-236]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-228]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-236]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-236]
	mov	r2, #6
	str	r2, [r3, #24]
	ldr	r3, [fp, #-228]
	ldr	r3, [r3, #32]
	mov	r2, r3
	ldr	r3, [fp, #-236]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #60]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-228]
	ldr	r3, [r3, #44]
	mov	r1, r3
	mov	r0, r2
	bl	put32
	ldr	r3, [fp, #-192]
	cmp	r3, #1
	bne	.L3915
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #64]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-196]
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #64]
	ldr	r3, [r3]
	ldr	r2, [fp, #-196]
	add	r3, r2, r3
	str	r3, [fp, #-140]
	ldr	r2, [fp, #-196]
	ldr	r3, [fp, #-140]
	cmp	r2, r3
	bcs	.L3915
	ldr	r3, [fp, #-196]
	add	r4, r3, #2
	ldr	r3, [fp, #-196]
	add	r3, r3, #2
	mov	r0, r3
	bl	get32
	mov	r2, r0
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #60]
	ldr	r3, [r3, #44]
	add	r3, r2, r3
	mov	r1, r3
	mov	r0, r4
	bl	put32
	ldr	r3, [fp, #-196]
	add	r4, r3, #8
	ldr	r3, [fp, #-196]
	add	r3, r3, #8
	mov	r0, r3
	bl	get32
	mov	r2, r0
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #60]
	ldr	r3, [r3, #44]
	add	r3, r2, r3
	mov	r1, r3
	mov	r0, r4
	bl	put32
	ldr	r3, [fp, #-196]
	add	r3, r3, #16
	str	r3, [fp, #-196]
	b	.L3916
.L3917:
	ldr	r3, [fp, #-196]
	add	r4, r3, #2
	ldr	r3, [fp, #-196]
	add	r3, r3, #2
	mov	r0, r3
	bl	get32
	mov	r2, r0
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #60]
	ldr	r3, [r3, #44]
	add	r3, r2, r3
	mov	r1, r3
	mov	r0, r4
	bl	put32
	ldr	r3, [fp, #-196]
	add	r3, r3, #16
	str	r3, [fp, #-196]
.L3916:
	ldr	r2, [fp, #-196]
	ldr	r3, [fp, #-140]
	cmp	r2, r3
	bcc	.L3917
.L3915:
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #84]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #84]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #84]
	ldr	r3, [r3, #4]
	add	r3, r3, #16
	str	r3, [fp, #-216]
	b	.L3918
.L3921:
	ldr	r3, [fp, #-216]
	ldrh	r3, [r3, #14]
	cmp	r3, #0
	bne	.L3919
	ldr	r3, [fp, #-216]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L3920
	ldr	r3, [fp, #-216]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #64]
	ldr	r3, [r3, #44]
	add	r2, r2, r3
	ldr	r3, [fp, #-216]
	str	r2, [r3, #4]
	b	.L3920
.L3919:
	ldr	r3, [fp, #-216]
	ldrh	r3, [r3, #14]
	cmp	r3, #65280
	bcs	.L3920
	ldr	r3, [fp, #-216]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-288]
	ldr	r1, [r3, #52]
	ldr	r3, [fp, #-216]
	ldrh	r3, [r3, #14]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #44]
	add	r2, r2, r3
	ldr	r3, [fp, #-216]
	str	r2, [r3, #4]
.L3920:
	ldr	r3, [fp, #-216]
	add	r3, r3, #16
	str	r3, [fp, #-216]
.L3918:
	ldr	r2, [fp, #-216]
	ldr	r3, [fp, #-136]
	cmp	r2, r3
	bcc	.L3921
	ldr	r3, [fp, #-228]
	ldr	r2, [fp, #-220]
	str	r2, [r3]
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #84]
	ldr	r3, [r3, #64]
	ldr	r3, [r3, #44]
	mov	r2, r3
	mov	r1, #4
	ldr	r0, [fp, #-228]
	bl	put_dt
	ldr	r3, [fp, #-224]
	ldr	r3, [r3, #44]
	mov	r2, r3
	mov	r1, #5
	ldr	r0, [fp, #-228]
	bl	put_dt
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #84]
	ldr	r3, [r3, #44]
	mov	r2, r3
	mov	r1, #6
	ldr	r0, [fp, #-228]
	bl	put_dt
	ldr	r3, [fp, #-224]
	ldr	r3, [r3]
	mov	r2, r3
	mov	r1, #10
	ldr	r0, [fp, #-228]
	bl	put_dt
	mov	r2, #16
	mov	r1, #11
	ldr	r0, [fp, #-228]
	bl	put_dt
	ldr	r2, [fp, #-212]
	mov	r1, #17
	ldr	r0, [fp, #-228]
	bl	put_dt
	ldr	r2, [fp, #-208]
	mov	r1, #18
	ldr	r0, [fp, #-228]
	bl	put_dt
	mov	r2, #8
	mov	r1, #19
	ldr	r0, [fp, #-228]
	bl	put_dt
	mov	r2, #0
	mov	r1, #0
	ldr	r0, [fp, #-228]
	bl	put_dt
.L3914:
	mov	r3, #32
	strh	r3, [fp, #-26]	@ movhi
	ldr	r3, [fp, #-268]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-24]	@ movhi
	mov	r3, #52
	str	r3, [fp, #-40]
.L3883:
	mov	r3, #1
	str	r3, [fp, #-272]
	b	.L3922
.L3925:
	ldr	r3, [fp, #-288]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-272]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-268]
	cmp	r3, #0
	ble	.L3923
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #24]
	and	r3, r3, #2
	cmp	r3, #0
	bne	.L3960
.L3923:
	ldr	r3, [fp, #-252]
	add	r2, r3, #1
	str	r2, [fp, #-252]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-276]
	add	r3, r2, r3
	ldr	r2, [fp, #-272]
	str	r2, [r3]
	ldr	r3, [fp, #-132]
	ldr	r2, [r3, #32]
	ldr	r3, [fp, #-264]
	add	r3, r2, r3
	sub	r2, r3, #1
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #32]
	rsb	r3, r3, #0
	and	r3, r3, r2
	str	r3, [fp, #-264]
	ldr	r2, [fp, #-264]
	ldr	r3, [fp, #-132]
	str	r2, [r3, #48]
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #20]
	cmp	r3, #8
	beq	.L3924
	ldr	r3, [fp, #-132]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-264]
	add	r3, r2, r3
	str	r3, [fp, #-264]
	b	.L3924
.L3960:
	nop
.L3924:
	ldr	r3, [fp, #-272]
	add	r3, r3, #1
	str	r3, [fp, #-272]
.L3922:
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #56]
	ldr	r2, [fp, #-272]
	cmp	r2, r3
	blt	.L3925
	ldr	r3, [fp, #-192]
	cmp	r3, #3
	beq	.L3926
	mov	r1, #0
	ldr	r0, [fp, #-288]
	bl	relocate_syms
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #560]
	cmp	r3, #0
	beq	.L3927
	b	.L3858
.L3957:
	nop
.L3858:
	mvn	r3, #0
	str	r3, [fp, #-280]
	b	.L3928
.L3927:
	mov	r3, #1
	str	r3, [fp, #-272]
	b	.L3929
.L3931:
	ldr	r3, [fp, #-288]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-272]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #60]
	cmp	r3, #0
	beq	.L3930
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #60]
	ldr	r2, [fp, #-132]
	cmp	r2, r3
	beq	.L3930
	ldr	r1, [fp, #-132]
	ldr	r0, [fp, #-288]
	bl	relocate_section
.L3930:
	ldr	r3, [fp, #-272]
	add	r3, r3, #1
	str	r3, [fp, #-272]
.L3929:
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #56]
	ldr	r2, [fp, #-272]
	cmp	r2, r3
	blt	.L3931
	mov	r3, #1
	str	r3, [fp, #-272]
	b	.L3932
.L3934:
	ldr	r3, [fp, #-288]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-272]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #24]
	and	r3, r3, #2
	cmp	r3, #0
	beq	.L3933
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #20]
	cmp	r3, #9
	bne	.L3933
	ldr	r1, [fp, #-132]
	ldr	r0, [fp, #-288]
	bl	relocate_rel
.L3933:
	ldr	r3, [fp, #-272]
	add	r3, r3, #1
	str	r3, [fp, #-272]
.L3932:
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #56]
	ldr	r2, [fp, #-272]
	cmp	r2, r3
	blt	.L3934
	ldr	r3, [fp, #-192]
	cmp	r3, #1
	bne	.L3935
	ldr	r1, .L3961+60
	ldr	r0, [fp, #-288]
	bl	tcc_get_symbol_err
	mov	r3, r0
	str	r3, [fp, #-44]
	b	.L3926
.L3935:
	ldr	r3, .L3961+64
	ldr	r3, [r3]
	ldr	r3, [r3, #44]
	str	r3, [fp, #-44]
.L3926:
	ldr	r3, [fp, #-192]
	cmp	r3, #3
	bne	.L3936
	ldr	r3, .L3961+68
	str	r3, [fp, #-284]
	b	.L3937
.L3936:
	ldr	r3, .L3961+72
	str	r3, [fp, #-284]
.L3937:
	ldr	r2, [fp, #-284]
	ldr	r1, .L3961+76
	ldr	r0, [fp, #-292]
	bl	open
	str	r0, [fp, #-124]
	ldr	r3, [fp, #-124]
	cmp	r3, #0
	bge	.L3938
	ldr	r1, [fp, #-292]
	ldr	r0, .L3961+80
	bl	error_noabort
	b	.L3858
.L3938:
	ldr	r1, .L3961+84
	ldr	r0, [fp, #-124]
	bl	fdopen
	str	r0, [fp, #-120]
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #120]
	cmp	r3, #0
	bne	.L3939
	ldr	r3, .L3961+88
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-288]
	bl	sort_syms
	ldr	r3, [fp, #-264]
	add	r3, r3, #3
	bic	r3, r3, #3
	str	r3, [fp, #-264]
	mov	r3, #127
	strb	r3, [fp, #-68]
	mov	r3, #69
	strb	r3, [fp, #-67]
	mov	r3, #76
	strb	r3, [fp, #-66]
	mov	r3, #70
	strb	r3, [fp, #-65]
	mov	r3, #1
	strb	r3, [fp, #-64]
	mov	r3, #1
	strb	r3, [fp, #-63]
	mov	r3, #1
	strb	r3, [fp, #-62]
	ldr	r3, [fp, #-192]
	cmp	r3, #2
	beq	.L3940
	ldr	r3, [fp, #-192]
	cmp	r3, #3
	beq	.L3941
	mov	r3, #2
	strh	r3, [fp, #-52]	@ movhi
	b	.L3942
.L3940:
	mov	r3, #3
	strh	r3, [fp, #-52]	@ movhi
	b	.L3942
.L3941:
	mov	r3, #1
	strh	r3, [fp, #-52]	@ movhi
	nop
.L3942:
	mov	r3, #3
	strh	r3, [fp, #-50]	@ movhi
	mov	r3, #1
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-264]
	str	r3, [fp, #-36]
	mov	r3, #52
	strh	r3, [fp, #-28]	@ movhi
	mov	r3, #40
	strh	r3, [fp, #-22]	@ movhi
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-20]	@ movhi
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	sub	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-18]	@ movhi
	sub	r0, fp, #68
	ldr	r3, [fp, #-120]
	mov	r2, #52
	mov	r1, #1
	bl	fwrite
	mov	r3, r0
	ldr	r2, .L3961+92
	str	r3, [r2]
	ldr	r3, [fp, #-268]
	lsl	r2, r3, #5
	ldr	r3, [fp, #-120]
	mov	r1, #1
	ldr	r0, [fp, #-240]
	bl	fwrite
	mov	r3, r0
	ldr	r2, .L3961+92
	str	r3, [r2]
	ldr	r3, [fp, #-268]
	lsl	r3, r3, #5
	add	r3, r3, #52
	str	r3, [fp, #-260]
	mov	r3, #1
	str	r3, [fp, #-272]
	b	.L3943
.L3947:
	ldr	r3, [fp, #-288]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-272]
	lsl	r3, r3, #2
	ldr	r1, [fp, #-276]
	add	r3, r1, r3
	ldr	r3, [r3]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #20]
	cmp	r3, #8
	beq	.L3944
	b	.L3945
.L3946:
	ldr	r1, [fp, #-120]
	mov	r0, #0
	bl	fputc
	ldr	r3, [fp, #-260]
	add	r3, r3, #1
	str	r3, [fp, #-260]
.L3945:
	ldr	r3, [fp, #-132]
	ldr	r2, [r3, #48]
	ldr	r3, [fp, #-260]
	cmp	r2, r3
	bhi	.L3946
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #40]
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-132]
	ldr	r0, [r3, #4]
	ldr	r2, [fp, #-112]
	ldr	r3, [fp, #-120]
	mov	r1, #1
	bl	fwrite
	mov	r3, r0
	ldr	r2, .L3961+92
	str	r3, [r2]
	ldr	r2, [fp, #-260]
	ldr	r3, [fp, #-112]
	add	r3, r2, r3
	str	r3, [fp, #-260]
.L3944:
	ldr	r3, [fp, #-272]
	add	r3, r3, #1
	str	r3, [fp, #-272]
.L3943:
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #56]
	ldr	r2, [fp, #-272]
	cmp	r2, r3
	blt	.L3947
	b	.L3948
.L3949:
	ldr	r1, [fp, #-120]
	mov	r0, #0
	bl	fputc
	ldr	r3, [fp, #-260]
	add	r3, r3, #1
	str	r3, [fp, #-260]
.L3948:
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-260]
	cmp	r2, r3
	bhi	.L3949
	mov	r3, #0
	str	r3, [fp, #-272]
	b	.L3950
.L3953:
	sub	r3, fp, #108
	str	r3, [fp, #-116]
	mov	r2, #40
	mov	r1, #0
	ldr	r0, [fp, #-116]
	bl	memset
	ldr	r3, [fp, #-288]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-272]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-132]
	cmp	r3, #0
	beq	.L3951
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #12]
	mov	r2, r3
	ldr	r3, [fp, #-116]
	str	r2, [r3]
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #20]
	mov	r2, r3
	ldr	r3, [fp, #-116]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #24]
	mov	r2, r3
	ldr	r3, [fp, #-116]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #36]
	mov	r2, r3
	ldr	r3, [fp, #-116]
	str	r2, [r3, #36]
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #28]
	mov	r2, r3
	ldr	r3, [fp, #-116]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #56]
	cmp	r3, #0
	beq	.L3952
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #56]
	ldr	r3, [r3, #16]
	mov	r2, r3
	ldr	r3, [fp, #-116]
	str	r2, [r3, #24]
.L3952:
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #32]
	mov	r2, r3
	ldr	r3, [fp, #-116]
	str	r2, [r3, #32]
	ldr	r3, [fp, #-132]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-116]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-132]
	ldr	r2, [r3, #48]
	ldr	r3, [fp, #-116]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-132]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-116]
	str	r2, [r3, #20]
.L3951:
	ldr	r3, [fp, #-120]
	mov	r2, #40
	mov	r1, #1
	ldr	r0, [fp, #-116]
	bl	fwrite
	mov	r3, r0
	ldr	r2, .L3961+92
	str	r3, [r2]
	ldr	r3, [fp, #-272]
	add	r3, r3, #1
	str	r3, [fp, #-272]
.L3950:
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #56]
	ldr	r2, [fp, #-272]
	cmp	r2, r3
	blt	.L3953
	b	.L3954
.L3939:
	ldr	r2, [fp, #-276]
	ldr	r1, [fp, #-120]
	ldr	r0, [fp, #-288]
	bl	tcc_output_binary
.L3954:
	ldr	r0, [fp, #-120]
	bl	fclose
	mov	r3, #0
	str	r3, [fp, #-280]
.L3928:
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #76]
	mov	r0, r3
	bl	tcc_free
	ldr	r0, [fp, #-276]
	bl	tcc_free
	ldr	r0, [fp, #-240]
	bl	tcc_free
	ldr	r3, [fp, #-288]
	ldr	r3, [r3, #68]
	mov	r0, r3
	bl	tcc_free
	ldr	r3, [fp, #-280]
	ldr	r2, .L3961+96
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L3956
	bl	__stack_chk_fail
.L3956:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	tcc_output_file, .-tcc_output_file
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	load_data, %function
load_data:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r0, [fp, #-24]
	bl	tcc_malloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-20]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	lseek
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	read
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L3965
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L3966:
	.align	2
.L3965:
	.word	dummy_size_t
	.size	load_data, .-load_data
	.section	.rodata
	.align	2
.LC326:
	.ascii	"invalid object file\000"
	.align	2
.LC327:
	.ascii	"object must contain only one symtab\000"
	.align	2
.LC328:
	.ascii	".gnu.linkonce\000"
	.align	2
.LC329:
	.ascii	"invalid section type\000"
	.align	2
.LC330:
	.ascii	"Invalid relocation entry\000"
	.align	2
.LC331:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_load_object_file, %function
tcc_load_object_file:
	@ args = 0, pretend = 0, frame = 176
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #196
	str	r0, [fp, #-176]
	str	r1, [fp, #-180]
	str	r2, [fp, #-184]
	ldr	r3, .L4033
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	sub	r3, fp, #68
	mov	r2, #52
	mov	r1, r3
	ldr	r0, [fp, #-180]
	bl	read
	mov	r3, r0
	cmp	r3, #52
	bne	.L4020
	ldrb	r3, [fp, #-68]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L4021
	ldrb	r3, [fp, #-67]	@ zero_extendqisi2
	cmp	r3, #69
	bne	.L4021
	ldrb	r3, [fp, #-66]	@ zero_extendqisi2
	cmp	r3, #76
	bne	.L4021
	ldrb	r3, [fp, #-65]	@ zero_extendqisi2
	cmp	r3, #70
	bne	.L4021
	ldrh	r3, [fp, #-52]
	cmp	r3, #1
	bne	.L4022
	ldrb	r3, [fp, #-63]	@ zero_extendqisi2
	cmp	r3, #1
	bne	.L4023
	ldrh	r3, [fp, #-50]
	cmp	r3, #3
	beq	.L3973
	b	.L4023
.L4020:
	nop
	b	.L3969
.L4021:
	nop
	b	.L3969
.L4022:
	nop
	b	.L3969
.L4023:
	nop
.L3969:
	ldr	r0, .L4033+4
	bl	error_noabort
	mvn	r3, #0
	b	.L4018
.L3973:
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-184]
	add	r1, r2, r3
	ldrh	r3, [fp, #-20]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r0, [fp, #-180]
	bl	load_data
	str	r0, [fp, #-128]
	ldrh	r3, [fp, #-20]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r0, r3
	bl	tcc_mallocz
	str	r0, [fp, #-124]
	ldrh	r3, [fp, #-18]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-128]
	add	r3, r3, r2
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-120]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-184]
	add	r1, r2, r3
	ldr	r3, [fp, #-120]
	ldr	r3, [r3, #20]
	mov	r2, r3
	ldr	r0, [fp, #-180]
	bl	load_data
	str	r0, [fp, #-116]
	mov	r3, #0
	str	r3, [fp, #-148]
	mov	r3, #0
	str	r3, [fp, #-140]
	mov	r3, #0
	str	r3, [fp, #-152]
	mov	r3, #0
	str	r3, [fp, #-160]
	mov	r3, #1
	str	r3, [fp, #-168]
	b	.L3975
.L3980:
	ldr	r2, [fp, #-168]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-128]
	add	r3, r3, r2
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-120]
	ldr	r3, [r3, #4]
	cmp	r3, #2
	bne	.L3976
	ldr	r3, [fp, #-140]
	cmp	r3, #0
	beq	.L3977
	ldr	r0, .L4033+8
	bl	error_noabort
.L3978:
	mvn	r3, #0
	str	r3, [fp, #-156]
	b	.L3979
.L3977:
	ldr	r3, [fp, #-120]
	ldr	r3, [r3, #20]
	lsr	r3, r3, #4
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-120]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-184]
	add	r1, r2, r3
	ldr	r3, [fp, #-120]
	ldr	r3, [r3, #20]
	mov	r2, r3
	ldr	r0, [fp, #-180]
	bl	load_data
	str	r0, [fp, #-140]
	ldr	r2, [fp, #-168]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-124]
	add	r3, r3, r2
	ldr	r2, .L4033+12
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r3, [fp, #-120]
	ldr	r2, [r3, #24]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-128]
	add	r3, r3, r2
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-120]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-184]
	add	r1, r2, r3
	ldr	r3, [fp, #-120]
	ldr	r3, [r3, #20]
	mov	r2, r3
	ldr	r0, [fp, #-180]
	bl	load_data
	str	r0, [fp, #-152]
.L3976:
	ldr	r3, [fp, #-168]
	add	r3, r3, #1
	str	r3, [fp, #-168]
.L3975:
	ldrh	r3, [fp, #-20]
	mov	r2, r3
	ldr	r3, [fp, #-168]
	cmp	r3, r2
	blt	.L3980
	mov	r3, #1
	str	r3, [fp, #-168]
	b	.L3981
.L3994:
	ldrh	r3, [fp, #-18]
	mov	r2, r3
	ldr	r3, [fp, #-168]
	cmp	r3, r2
	beq	.L4024
	ldr	r2, [fp, #-168]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-128]
	add	r3, r3, r2
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-120]
	ldr	r3, [r3]
	ldr	r2, [fp, #-116]
	add	r3, r2, r3
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-120]
	ldr	r3, [r3, #4]
	cmp	r3, #1
	beq	.L3984
	ldr	r3, [fp, #-120]
	ldr	r3, [r3, #4]
	cmp	r3, #9
	beq	.L3984
	ldr	r3, [fp, #-120]
	ldr	r3, [r3, #4]
	cmp	r3, #8
	bne	.L4025
.L3984:
	ldr	r3, [fp, #-120]
	ldr	r3, [r3, #32]
	cmp	r3, #0
	bne	.L3985
	ldr	r3, [fp, #-120]
	mov	r2, #1
	str	r2, [r3, #32]
.L3985:
	mov	r3, #1
	str	r3, [fp, #-164]
	b	.L3986
.L3990:
	ldr	r3, [fp, #-176]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-132]
	add	r3, r3, #72
	ldr	r1, [fp, #-80]
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L3987
	mov	r2, #13
	ldr	r1, .L4033+16
	ldr	r0, [fp, #-80]
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L4026
	ldr	r2, [fp, #-168]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-124]
	add	r3, r3, r2
	mov	r2, #1
	strb	r2, [r3, #9]
	b	.L3983
.L3987:
	ldr	r3, [fp, #-164]
	add	r3, r3, #1
	str	r3, [fp, #-164]
.L3986:
	ldr	r3, [fp, #-176]
	ldr	r3, [r3, #56]
	ldr	r2, [fp, #-164]
	cmp	r2, r3
	blt	.L3990
	ldr	r3, [fp, #-120]
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r3, [fp, #-120]
	ldr	r3, [r3, #8]
	ldr	r1, [fp, #-80]
	ldr	r0, [fp, #-176]
	bl	new_section
	str	r0, [fp, #-132]
	ldr	r3, [fp, #-120]
	ldr	r3, [r3, #32]
	mov	r2, r3
	ldr	r3, [fp, #-132]
	str	r2, [r3, #32]
	ldr	r3, [fp, #-120]
	ldr	r3, [r3, #36]
	mov	r2, r3
	ldr	r3, [fp, #-132]
	str	r2, [r3, #36]
	ldr	r2, [fp, #-168]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-124]
	add	r3, r3, r2
	mov	r2, #1
	strb	r2, [r3, #8]
	b	.L3989
.L4026:
	nop
.L3989:
	ldr	r3, [fp, #-120]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-132]
	ldr	r2, [r2, #20]
	cmp	r3, r2
	beq	.L3991
	ldr	r0, .L4033+20
	bl	error_noabort
	b	.L3978
.L3991:
	ldr	r3, [fp, #-132]
	ldr	r3, [r3]
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-120]
	ldr	r3, [r3, #32]
	sub	r3, r3, #1
	str	r3, [fp, #-76]
	ldr	r2, [fp, #-108]
	ldr	r3, [fp, #-76]
	add	r2, r2, r3
	ldr	r3, [fp, #-76]
	mvn	r3, r3
	and	r3, r3, r2
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-120]
	ldr	r3, [r3, #32]
	ldr	r2, [fp, #-132]
	ldr	r2, [r2, #32]
	cmp	r3, r2
	bls	.L3992
	ldr	r3, [fp, #-120]
	ldr	r3, [r3, #32]
	mov	r2, r3
	ldr	r3, [fp, #-132]
	str	r2, [r3, #32]
.L3992:
	ldr	r2, [fp, #-108]
	ldr	r3, [fp, #-132]
	str	r2, [r3]
	ldr	r2, [fp, #-168]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-124]
	add	r3, r3, r2
	ldr	r2, [fp, #-108]
	str	r2, [r3, #4]
	ldr	r2, [fp, #-168]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-124]
	add	r3, r3, r2
	ldr	r2, [fp, #-132]
	str	r2, [r3]
	ldr	r3, [fp, #-120]
	ldr	r3, [r3, #20]
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-120]
	ldr	r3, [r3, #4]
	cmp	r3, #8
	beq	.L3993
	ldr	r3, [fp, #-120]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-184]
	add	r3, r2, r3
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-180]
	bl	lseek
	ldr	r3, [fp, #-76]
	mov	r1, r3
	ldr	r0, [fp, #-132]
	bl	section_ptr_add
	str	r0, [fp, #-72]
	ldr	r3, [fp, #-76]
	mov	r2, r3
	ldr	r1, [fp, #-72]
	ldr	r0, [fp, #-180]
	bl	read
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L4033+24
	str	r2, [r3]
	b	.L3983
.L3993:
	ldr	r3, [fp, #-132]
	ldr	r2, [r3]
	ldr	r3, [fp, #-76]
	add	r2, r2, r3
	ldr	r3, [fp, #-132]
	str	r2, [r3]
	b	.L3983
.L4024:
	nop
	b	.L3983
.L4025:
	nop
.L3983:
	ldr	r3, [fp, #-168]
	add	r3, r3, #1
	str	r3, [fp, #-168]
.L3981:
	ldrh	r3, [fp, #-20]
	mov	r2, r3
	ldr	r3, [fp, #-168]
	cmp	r3, r2
	blt	.L3994
	ldr	r3, [fp, #-124]
	str	r3, [fp, #-112]
	mov	r3, #1
	str	r3, [fp, #-168]
	b	.L3995
.L4000:
	ldr	r2, [fp, #-168]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-124]
	add	r3, r3, r2
	ldr	r3, [r3]
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-132]
	cmp	r3, #0
	beq	.L4027
	ldr	r2, [fp, #-168]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-124]
	add	r3, r3, r2
	ldrb	r3, [r3, #8]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L4027
	ldr	r2, [fp, #-168]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-128]
	add	r3, r3, r2
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-120]
	ldr	r3, [r3, #24]
	cmp	r3, #0
	beq	.L3999
	ldr	r3, [fp, #-120]
	ldr	r2, [r3, #24]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-124]
	add	r3, r3, r2
	ldr	r2, [r3]
	ldr	r3, [fp, #-132]
	str	r2, [r3, #56]
.L3999:
	ldr	r3, [fp, #-120]
	ldr	r3, [r3, #4]
	cmp	r3, #9
	bne	.L3998
	ldr	r3, [fp, #-120]
	ldr	r2, [r3, #28]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-124]
	add	r3, r3, r2
	ldr	r3, [r3]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-132]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-176]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-132]
	str	r2, [r3, #60]
	b	.L3998
.L4027:
	nop
.L3998:
	ldr	r3, [fp, #-168]
	add	r3, r3, #1
	str	r3, [fp, #-168]
.L3995:
	ldrh	r3, [fp, #-20]
	mov	r2, r3
	ldr	r3, [fp, #-168]
	cmp	r3, r2
	blt	.L4000
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	tcc_mallocz
	str	r0, [fp, #-148]
	ldr	r3, [fp, #-140]
	add	r3, r3, #16
	str	r3, [fp, #-144]
	mov	r3, #1
	str	r3, [fp, #-168]
	b	.L4001
.L4007:
	ldr	r3, [fp, #-144]
	ldrh	r3, [r3, #14]
	cmp	r3, #0
	beq	.L4002
	ldr	r3, [fp, #-144]
	ldrh	r3, [r3, #14]
	cmp	r3, #65280
	bcs	.L4002
	ldr	r3, [fp, #-144]
	ldrh	r3, [r3, #14]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-124]
	add	r3, r3, r2
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-112]
	ldrb	r3, [r3, #9]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L4003
	ldr	r3, [fp, #-144]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L4028
	ldr	r3, [fp, #-144]
	ldr	r3, [r3]
	ldr	r2, [fp, #-152]
	add	r3, r2, r3
	str	r3, [fp, #-88]
	ldr	r3, .L4033+12
	ldr	r3, [r3]
	ldr	r1, [fp, #-88]
	mov	r0, r3
	bl	find_elf_sym
	str	r0, [fp, #-84]
	ldr	r3, [fp, #-84]
	cmp	r3, #0
	beq	.L4028
	ldr	r3, [fp, #-168]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-148]
	add	r3, r2, r3
	ldr	r2, [fp, #-84]
	str	r2, [r3]
	b	.L4028
.L4003:
	ldr	r3, [fp, #-112]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L4029
	ldr	r3, [fp, #-112]
	ldr	r3, [r3]
	ldr	r3, [r3, #16]
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-144]
	strh	r2, [r3, #14]	@ movhi
	ldr	r3, [fp, #-144]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-112]
	ldr	r3, [r3, #4]
	add	r2, r2, r3
	ldr	r3, [fp, #-144]
	str	r2, [r3, #4]
.L4002:
	ldr	r3, [fp, #-144]
	ldr	r3, [r3]
	ldr	r2, [fp, #-152]
	add	r3, r2, r3
	str	r3, [fp, #-88]
	ldr	r3, .L4033+12
	ldr	r0, [r3]
	ldr	r3, [fp, #-144]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-144]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-144]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	mov	r4, r3
	ldr	r3, [fp, #-144]
	ldrb	r3, [r3, #13]	@ zero_extendqisi2
	mov	ip, r3
	ldr	r3, [fp, #-144]
	ldrh	r3, [r3, #14]
	mov	lr, r3
	ldr	r3, [fp, #-88]
	str	r3, [sp, #8]
	str	lr, [sp, #4]
	str	ip, [sp]
	mov	r3, r4
	bl	add_elf_sym
	str	r0, [fp, #-84]
	ldr	r3, [fp, #-168]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-148]
	add	r3, r2, r3
	ldr	r2, [fp, #-84]
	str	r2, [r3]
	b	.L4005
.L4028:
	nop
	b	.L4005
.L4029:
	nop
.L4005:
	ldr	r3, [fp, #-168]
	add	r3, r3, #1
	str	r3, [fp, #-168]
	ldr	r3, [fp, #-144]
	add	r3, r3, #16
	str	r3, [fp, #-144]
.L4001:
	ldr	r2, [fp, #-168]
	ldr	r3, [fp, #-160]
	cmp	r2, r3
	blt	.L4007
	mov	r3, #1
	str	r3, [fp, #-168]
	b	.L4008
.L4017:
	ldr	r2, [fp, #-168]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-124]
	add	r3, r3, r2
	ldr	r3, [r3]
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-132]
	cmp	r3, #0
	beq	.L4030
	ldr	r2, [fp, #-168]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-128]
	add	r3, r3, r2
	str	r3, [fp, #-120]
	ldr	r2, [fp, #-168]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-124]
	add	r3, r3, r2
	ldr	r3, [r3, #4]
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-132]
	ldr	r3, [r3, #20]
	cmp	r3, #9
	bne	.L4031
	ldr	r3, [fp, #-120]
	ldr	r2, [r3, #28]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-124]
	add	r3, r3, r2
	ldr	r3, [r3, #4]
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-132]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-132]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-132]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-108]
	add	r3, r2, r3
	str	r3, [fp, #-136]
	b	.L4012
.L4016:
	ldr	r3, [fp, #-136]
	ldr	r3, [r3, #4]
	and	r3, r3, #255
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-136]
	ldr	r3, [r3, #4]
	lsr	r3, r3, #8
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-160]
	ldr	r2, [fp, #-92]
	cmp	r2, r3
	bcs	.L4032
	ldr	r3, [fp, #-92]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-148]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	cmp	r3, #0
	bne	.L4015
	b	.L4014
.L4032:
	nop
.L4014:
	ldr	r0, .L4033+28
	bl	error_noabort
	b	.L3978
.L4015:
	ldr	r3, [fp, #-92]
	lsl	r2, r3, #8
	ldr	r3, [fp, #-96]
	and	r3, r3, #255
	add	r2, r2, r3
	ldr	r3, [fp, #-136]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-136]
	ldr	r2, [r3]
	ldr	r3, [fp, #-104]
	add	r2, r2, r3
	ldr	r3, [fp, #-136]
	str	r2, [r3]
	ldr	r3, [fp, #-136]
	add	r3, r3, #8
	str	r3, [fp, #-136]
.L4012:
	ldr	r2, [fp, #-136]
	ldr	r3, [fp, #-100]
	cmp	r2, r3
	bcc	.L4016
	b	.L4010
.L4030:
	nop
	b	.L4010
.L4031:
	nop
.L4010:
	ldr	r3, [fp, #-168]
	add	r3, r3, #1
	str	r3, [fp, #-168]
.L4008:
	ldrh	r3, [fp, #-20]
	mov	r2, r3
	ldr	r3, [fp, #-168]
	cmp	r3, r2
	blt	.L4017
	mov	r3, #0
	str	r3, [fp, #-156]
.L3979:
	ldr	r0, [fp, #-140]
	bl	tcc_free
	ldr	r0, [fp, #-152]
	bl	tcc_free
	ldr	r0, [fp, #-148]
	bl	tcc_free
	ldr	r0, [fp, #-124]
	bl	tcc_free
	ldr	r0, [fp, #-116]
	bl	tcc_free
	ldr	r0, [fp, #-128]
	bl	tcc_free
	ldr	r3, [fp, #-156]
.L4018:
	ldr	r2, .L4033
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L4019
	bl	__stack_chk_fail
.L4019:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L4034:
	.align	2
.L4033:
	.word	.LC331
	.word	.LC326
	.word	.LC327
	.word	symtab_section
	.word	.LC328
	.word	.LC329
	.word	dummy_size_t
	.word	.LC330
	.size	tcc_load_object_file, .-tcc_load_object_file
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_be32, %function
get_be32:
	@ 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]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	orr	r2, r2, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	orr	r2, r2, r3
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #24
	orr	r3, r2, r3
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	get_be32, .-get_be32
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_load_alacarte, %function
tcc_load_alacarte:
	@ args = 0, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #64
	str	r0, [fp, #-56]
	str	r1, [fp, #-60]
	str	r2, [fp, #-64]
	ldr	r3, [fp, #-64]
	mov	r0, r3
	bl	tcc_malloc
	str	r0, [fp, #-32]
	ldr	r3, [fp, #-64]
	mov	r2, r3
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-60]
	bl	read
	mov	r2, r0
	ldr	r3, [fp, #-64]
	cmp	r3, r2
	bne	.L4046
	ldr	r0, [fp, #-32]
	bl	get_be32
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-32]
	add	r3, r3, #4
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-24]
	add	r3, r3, r2
	str	r3, [fp, #-20]
.L4044:
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-48]
	b	.L4040
.L4043:
	ldr	r3, .L4047
	ldr	r3, [r3]
	ldr	r1, [fp, #-36]
	mov	r0, r3
	bl	find_elf_sym
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L4041
	ldr	r3, .L4047
	ldr	r3, [r3]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #4
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldrh	r3, [r3, #14]
	cmp	r3, #0
	bne	.L4041
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-24]
	add	r3, r3, r2
	mov	r0, r3
	bl	get_be32
	mov	r3, r0
	add	r3, r3, #60
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-44]
	mov	r2, #0
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-60]
	bl	lseek
	ldr	r3, [fp, #-8]
	mov	r2, r3
	ldr	r1, [fp, #-60]
	ldr	r0, [fp, #-56]
	bl	tcc_load_object_file
	mov	r3, r0
	cmp	r3, #0
	bge	.L4041
	b	.L4039
.L4046:
	nop
.L4039:
	mvn	r3, #0
	str	r3, [fp, #-40]
	b	.L4042
.L4041:
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
	ldr	r0, [fp, #-36]
	bl	strlen
	mov	r3, r0
	add	r3, r3, #1
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-36]
.L4040:
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	blt	.L4043
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	bne	.L4044
	mov	r3, #0
	str	r3, [fp, #-40]
.L4042:
	ldr	r0, [fp, #-32]
	bl	tcc_free
	ldr	r3, [fp, #-40]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L4048:
	.align	2
.L4047:
	.word	symtab_section
	.size	tcc_load_alacarte, .-tcc_load_alacarte
	.section	.rodata
	.align	2
.LC332:
	.ascii	"invalid archive\000"
	.align	2
.LC333:
	.ascii	"//\000"
	.align	2
.LC334:
	.ascii	"__.SYMDEF\000"
	.align	2
.LC335:
	.ascii	"__.SYMDEF/\000"
	.align	2
.LC336:
	.ascii	"ARFILENAMES/\000"
	.align	2
.LC337:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_load_archive, %function
tcc_load_archive:
	@ args = 0, pretend = 0, frame = 128
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #128
	str	r0, [fp, #-128]
	str	r1, [fp, #-132]
	ldr	r3, .L4066
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #48
	mov	r2, #8
	mov	r1, r3
	ldr	r0, [fp, #-132]
	bl	read
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L4066+4
	str	r2, [r3]
.L4060:
	sub	r3, fp, #108
	mov	r2, #60
	mov	r1, r3
	ldr	r0, [fp, #-132]
	bl	read
	str	r0, [fp, #-120]
	ldr	r3, [fp, #-120]
	cmp	r3, #0
	beq	.L4064
	ldr	r3, [fp, #-120]
	cmp	r3, #60
	beq	.L4052
	ldr	r0, .L4066+8
	bl	error_noabort
	mvn	r3, #0
	b	.L4061
.L4052:
	sub	r3, fp, #40
	sub	r2, fp, #60
	ldm	r2, {r0, r1, r2}
	stmia	r3!, {r0, r1}
	strh	r2, [r3]	@ movhi
	mov	r3, #0
	strb	r3, [fp, #-30]
	sub	r3, fp, #40
	mov	r2, #0
	mov	r1, #0
	mov	r0, r3
	bl	strtol
	str	r0, [fp, #-116]
	sub	ip, fp, #28
	sub	r3, fp, #108
	ldm	r3, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	mov	r3, #15
	str	r3, [fp, #-124]
	b	.L4054
.L4057:
	sub	r2, fp, #28
	ldr	r3, [fp, #-124]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #32
	bne	.L4065
	ldr	r3, [fp, #-124]
	sub	r3, r3, #1
	str	r3, [fp, #-124]
.L4054:
	ldr	r3, [fp, #-124]
	cmp	r3, #0
	bge	.L4057
	b	.L4056
.L4065:
	nop
.L4056:
	ldr	r3, [fp, #-124]
	add	r3, r3, #1
	sub	r2, fp, #4
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3, #-24]
	mov	r2, #1
	mov	r1, #0
	ldr	r0, [fp, #-132]
	bl	lseek
	mov	r3, r0
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-116]
	add	r3, r3, #1
	bic	r3, r3, #1
	str	r3, [fp, #-116]
	sub	r3, fp, #28
	ldr	r1, .L4066+12
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L4058
	ldr	r3, [fp, #-128]
	ldr	r3, [r3, #108]
	cmp	r3, #0
	beq	.L4059
	ldr	r2, [fp, #-116]
	ldr	r1, [fp, #-132]
	ldr	r0, [fp, #-128]
	bl	tcc_load_alacarte
	mov	r3, r0
	b	.L4061
.L4058:
	sub	r3, fp, #28
	ldr	r1, .L4066+16
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L4059
	sub	r3, fp, #28
	ldr	r1, .L4066+20
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L4059
	sub	r3, fp, #28
	ldr	r1, .L4066+24
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L4059
	sub	r3, fp, #28
	ldr	r1, .L4066+28
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L4059
	ldr	r2, [fp, #-112]
	ldr	r1, [fp, #-132]
	ldr	r0, [fp, #-128]
	bl	tcc_load_object_file
	mov	r3, r0
	cmp	r3, #0
	bge	.L4059
	mvn	r3, #0
	b	.L4061
.L4059:
	ldr	r2, [fp, #-116]
	ldr	r3, [fp, #-112]
	add	r3, r2, r3
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-132]
	bl	lseek
	b	.L4060
.L4064:
	nop
	mov	r3, #0
.L4061:
	ldr	r2, .L4066
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L4062
	bl	__stack_chk_fail
.L4062:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L4067:
	.align	2
.L4066:
	.word	.LC337
	.word	dummy_size_t
	.word	.LC332
	.word	.LC49
	.word	.LC333
	.word	.LC334
	.word	.LC335
	.word	.LC336
	.size	tcc_load_archive, .-tcc_load_archive
	.section	.rodata
	.align	2
.LC338:
	.ascii	"bad architecture\000"
	.align	2
.LC339:
	.ascii	"referenced dll '%s' not found\000"
	.align	2
.LC340:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_load_dll, %function
tcc_load_dll:
	@ args = 0, pretend = 0, frame = 144
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #164
	str	r0, [fp, #-144]
	str	r1, [fp, #-148]
	str	r2, [fp, #-152]
	str	r3, [fp, #-156]
	ldr	r3, .L4104
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	sub	r3, fp, #68
	mov	r2, #52
	mov	r1, r3
	ldr	r0, [fp, #-148]
	bl	read
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L4104+4
	str	r2, [r3]
	ldrb	r3, [fp, #-63]	@ zero_extendqisi2
	cmp	r3, #1
	bne	.L4069
	ldrh	r3, [fp, #-50]
	cmp	r3, #3
	beq	.L4070
.L4069:
	ldr	r0, .L4104+8
	bl	error_noabort
	mvn	r3, #0
	b	.L4098
.L4070:
	ldr	r1, [fp, #-36]
	ldrh	r3, [fp, #-20]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r0, [fp, #-148]
	bl	load_data
	str	r0, [fp, #-92]
	mov	r3, #0
	str	r3, [fp, #-128]
	mov	r3, #0
	str	r3, [fp, #-124]
	mov	r3, #0
	str	r3, [fp, #-104]
	mov	r3, #0
	str	r3, [fp, #-112]
	mov	r3, #0
	str	r3, [fp, #-100]
	mov	r3, #0
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-92]
	str	r3, [fp, #-136]
	b	.L4072
.L4077:
	ldr	r3, [fp, #-136]
	ldr	r3, [r3, #4]
	cmp	r3, #6
	beq	.L4073
	cmp	r3, #11
	beq	.L4074
	b	.L4076
.L4073:
	ldr	r3, [fp, #-136]
	ldr	r3, [r3, #20]
	lsr	r3, r3, #3
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-136]
	ldr	r1, [r3, #16]
	ldr	r3, [fp, #-136]
	ldr	r3, [r3, #20]
	mov	r2, r3
	ldr	r0, [fp, #-148]
	bl	load_data
	str	r0, [fp, #-104]
	b	.L4076
.L4074:
	ldr	r3, [fp, #-136]
	ldr	r3, [r3, #20]
	lsr	r3, r3, #4
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-136]
	ldr	r1, [r3, #16]
	ldr	r3, [fp, #-136]
	ldr	r3, [r3, #20]
	mov	r2, r3
	ldr	r0, [fp, #-148]
	bl	load_data
	str	r0, [fp, #-112]
	ldr	r3, [fp, #-136]
	ldr	r2, [r3, #24]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, [fp, #-92]
	add	r3, r3, r2
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	ldr	r1, [r3, #16]
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #20]
	mov	r2, r3
	ldr	r0, [fp, #-148]
	bl	load_data
	str	r0, [fp, #-100]
	nop
.L4076:
	ldr	r3, [fp, #-132]
	add	r3, r3, #1
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-136]
	add	r3, r3, #40
	str	r3, [fp, #-136]
.L4072:
	ldrh	r3, [fp, #-20]
	mov	r2, r3
	ldr	r3, [fp, #-132]
	cmp	r3, r2
	blt	.L4077
	ldr	r3, [fp, #-152]
	str	r3, [fp, #-96]
	mov	r1, #47
	ldr	r0, [fp, #-96]
	bl	strrchr
	str	r0, [fp, #-88]
	ldr	r3, [fp, #-88]
	cmp	r3, #0
	beq	.L4078
	ldr	r3, [fp, #-88]
	add	r3, r3, #1
	str	r3, [fp, #-96]
.L4078:
	mov	r3, #0
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-104]
	str	r3, [fp, #-108]
	b	.L4079
.L4081:
	ldr	r3, [fp, #-108]
	ldr	r3, [r3]
	cmp	r3, #14
	bne	.L4080
	ldr	r3, [fp, #-108]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-100]
	add	r3, r2, r3
	str	r3, [fp, #-96]
.L4080:
	ldr	r3, [fp, #-132]
	add	r3, r3, #1
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-108]
	add	r3, r3, #8
	str	r3, [fp, #-108]
.L4079:
	ldr	r2, [fp, #-132]
	ldr	r3, [fp, #-124]
	cmp	r2, r3
	blt	.L4081
	mov	r3, #0
	str	r3, [fp, #-132]
	b	.L4082
.L4086:
	ldr	r3, [fp, #-144]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-132]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-84]
	add	r3, r3, #4
	mov	r1, r3
	ldr	r0, [fp, #-96]
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L4083
	ldr	r3, [fp, #-84]
	ldr	r3, [r3]
	ldr	r2, [fp, #-156]
	cmp	r2, r3
	bge	.L4084
	ldr	r3, [fp, #-84]
	ldr	r2, [fp, #-156]
	str	r2, [r3]
.L4084:
	mov	r3, #0
	str	r3, [fp, #-120]
	b	.L4085
.L4083:
	ldr	r3, [fp, #-132]
	add	r3, r3, #1
	str	r3, [fp, #-132]
.L4082:
	ldr	r3, [fp, #-144]
	ldr	r3, [r3, #48]
	ldr	r2, [fp, #-132]
	cmp	r2, r3
	blt	.L4086
	ldr	r0, [fp, #-96]
	bl	strlen
	mov	r3, r0
	add	r3, r3, #8
	mov	r0, r3
	bl	tcc_malloc
	str	r0, [fp, #-84]
	ldr	r3, [fp, #-84]
	ldr	r2, [fp, #-156]
	str	r2, [r3]
	ldr	r3, [fp, #-84]
	add	r3, r3, #4
	ldr	r1, [fp, #-96]
	mov	r0, r3
	bl	strcpy
	ldr	r3, [fp, #-144]
	add	r0, r3, #44
	ldr	r3, [fp, #-144]
	add	r3, r3, #48
	ldr	r2, [fp, #-84]
	mov	r1, r3
	bl	dynarray_add
	mov	r3, #1
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-112]
	add	r3, r3, #16
	str	r3, [fp, #-116]
	b	.L4087
.L4090:
	ldr	r3, [fp, #-116]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	beq	.L4100
	ldr	r3, [fp, #-116]
	ldr	r3, [r3]
	ldr	r2, [fp, #-100]
	add	r3, r2, r3
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-144]
	ldr	r0, [r3, #80]
	ldr	r3, [fp, #-116]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-116]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-116]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	mov	r4, r3
	ldr	r3, [fp, #-116]
	ldrb	r3, [r3, #13]	@ zero_extendqisi2
	mov	ip, r3
	ldr	r3, [fp, #-116]
	ldrh	r3, [r3, #14]
	mov	lr, r3
	ldr	r3, [fp, #-80]
	str	r3, [sp, #8]
	str	lr, [sp, #4]
	str	ip, [sp]
	mov	r3, r4
	bl	add_elf_sym
	b	.L4089
.L4100:
	nop
.L4089:
	ldr	r3, [fp, #-132]
	add	r3, r3, #1
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-116]
	add	r3, r3, #16
	str	r3, [fp, #-116]
.L4087:
	ldr	r2, [fp, #-132]
	ldr	r3, [fp, #-128]
	cmp	r2, r3
	blt	.L4090
	mov	r3, #0
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-104]
	str	r3, [fp, #-108]
	b	.L4091
.L4097:
	ldr	r3, [fp, #-108]
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L4092
	ldr	r3, [fp, #-108]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-100]
	add	r3, r2, r3
	str	r3, [fp, #-80]
	mov	r3, #0
	str	r3, [fp, #-132]
	b	.L4093
.L4096:
	ldr	r3, [fp, #-144]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-132]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-84]
	add	r3, r3, #4
	mov	r1, r3
	ldr	r0, [fp, #-80]
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L4101
	ldr	r3, [fp, #-132]
	add	r3, r3, #1
	str	r3, [fp, #-132]
.L4093:
	ldr	r3, [fp, #-144]
	ldr	r3, [r3, #48]
	ldr	r2, [fp, #-132]
	cmp	r2, r3
	blt	.L4096
	mov	r2, #2
	ldr	r1, [fp, #-80]
	ldr	r0, [fp, #-144]
	bl	tcc_add_dll
	mov	r3, r0
	cmp	r3, #0
	bge	.L4102
	ldr	r1, [fp, #-80]
	ldr	r0, .L4104+12
	bl	error_noabort
	mvn	r3, #0
	str	r3, [fp, #-120]
	b	.L4085
.L4101:
	nop
	b	.L4103
.L4102:
	nop
.L4095:
.L4103:
	nop
.L4092:
	ldr	r3, [fp, #-132]
	add	r3, r3, #1
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-108]
	add	r3, r3, #8
	str	r3, [fp, #-108]
.L4091:
	ldr	r2, [fp, #-132]
	ldr	r3, [fp, #-124]
	cmp	r2, r3
	blt	.L4097
	mov	r3, #0
	str	r3, [fp, #-120]
.L4085:
	ldr	r0, [fp, #-100]
	bl	tcc_free
	ldr	r0, [fp, #-112]
	bl	tcc_free
	ldr	r0, [fp, #-104]
	bl	tcc_free
	ldr	r0, [fp, #-92]
	bl	tcc_free
	ldr	r3, [fp, #-120]
.L4098:
	ldr	r2, .L4104
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L4099
	bl	__stack_chk_fail
.L4099:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L4105:
	.align	2
.L4104:
	.word	.LC340
	.word	dummy_size_t
	.word	.LC338
	.word	.LC339
	.size	tcc_load_dll, .-tcc_load_dll
	.section	.rodata
	.align	2
.LC341:
	.ascii	"/.-_+=$:\\,~\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	ld_next, %function
ld_next:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
.L4107:
	ldr	r3, .L4131
	ldr	r3, [r3]
	cmp	r3, #126
	bgt	.L4108
	cmp	r3, #92
	bge	.L4109
	cmp	r3, #47
	bgt	.L4110
	cmn	r3, #1
	bge	.L4111
	b	.L4108
.L4109:
	sub	r3, r3, #92
	cmp	r3, #34
	ldrls	pc, [pc, r3, asl #2]
	b	.L4108
.L4113:
	.word	.L4112
	.word	.L4108
	.word	.L4108
	.word	.L4112
	.word	.L4108
	.word	.L4112
	.word	.L4112
	.word	.L4112
	.word	.L4112
	.word	.L4112
	.word	.L4112
	.word	.L4112
	.word	.L4112
	.word	.L4112
	.word	.L4112
	.word	.L4112
	.word	.L4112
	.word	.L4112
	.word	.L4112
	.word	.L4112
	.word	.L4112
	.word	.L4112
	.word	.L4112
	.word	.L4112
	.word	.L4112
	.word	.L4112
	.word	.L4112
	.word	.L4112
	.word	.L4112
	.word	.L4112
	.word	.L4112
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4112
.L4111:
	add	r3, r3, #1
	cmp	r3, #48
	ldrls	pc, [pc, r3, asl #2]
	b	.L4108
.L4115:
	.word	.L4117
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4116
	.word	.L4116
	.word	.L4116
	.word	.L4116
	.word	.L4116
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4116
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4112
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4108
	.word	.L4112
	.word	.L4114
.L4110:
	sub	r3, r3, #65
	cmp	r3, #25
	bhi	.L4108
	b	.L4112
.L4116:
	bl	inp
	b	.L4107
.L4114:
	bl	minp
	ldr	r3, .L4131
	ldr	r3, [r3]
	cmp	r3, #42
	bne	.L4118
	ldr	r3, .L4131+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r2, .L4131+4
	ldr	r4, [r2]
	mov	r0, r3
	bl	parse_comment
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, .L4131+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L4131
	str	r2, [r3]
	b	.L4107
.L4118:
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	add	r2, r3, #1
	str	r2, [fp, #-16]
	mov	r2, #47
	strb	r2, [r3]
	b	.L4126
.L4112:
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-16]
.L4119:
.L4126:
	ldr	r3, .L4131
	ldr	r3, [r3]
	cmp	r3, #96
	ble	.L4120
	ldr	r3, .L4131
	ldr	r3, [r3]
	cmp	r3, #122
	ble	.L4121
.L4120:
	ldr	r3, .L4131
	ldr	r3, [r3]
	cmp	r3, #64
	ble	.L4122
	ldr	r3, .L4131
	ldr	r3, [r3]
	cmp	r3, #90
	ble	.L4121
.L4122:
	ldr	r3, .L4131
	ldr	r3, [r3]
	cmp	r3, #47
	ble	.L4123
	ldr	r3, .L4131
	ldr	r3, [r3]
	cmp	r3, #57
	ble	.L4121
.L4123:
	ldr	r3, .L4131
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L4131+8
	bl	strchr
	mov	r3, r0
	cmp	r3, #0
	beq	.L4130
.L4121:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-28]
	sub	r2, r2, r3
	ldr	r3, [fp, #-32]
	sub	r3, r3, #1
	cmp	r2, r3
	bge	.L4125
	ldr	r3, .L4131
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r1, r3, #1
	str	r1, [fp, #-16]
	and	r2, r2, #255
	strb	r2, [r3]
.L4125:
	bl	minp
	b	.L4126
.L4130:
	nop
	ldr	r3, [fp, #-16]
	mov	r2, #0
	strb	r2, [r3]
	mov	r3, #256
	str	r3, [fp, #-20]
	b	.L4127
.L4117:
	mvn	r3, #0
	str	r3, [fp, #-20]
	b	.L4127
.L4108:
	ldr	r3, .L4131
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	bl	inp
	nop
.L4127:
	ldr	r3, [fp, #-20]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L4132:
	.align	2
.L4131:
	.word	ch
	.word	file
	.word	.LC341
	.size	ld_next, .-ld_next
	.section	.rodata
	.align	2
.LC342:
	.ascii	"INPUT\000"
	.align	2
.LC343:
	.ascii	"GROUP\000"
	.align	2
.LC344:
	.ascii	"filename expected\000"
	.align	2
.LC345:
	.ascii	"OUTPUT_FORMAT\000"
	.align	2
.LC346:
	.ascii	"TARGET\000"
	.align	2
.LC347:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_load_ldscript, %function
tcc_load_ldscript:
	@ args = 0, pretend = 0, frame = 1104
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #1104
	str	r0, [fp, #-1104]
	ldr	r3, .L4161
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L4161+4
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L4161+8
	str	r2, [r3]
	bl	handle_eob
	mov	r3, r0
	ldr	r2, .L4161+8
	str	r3, [r2]
.L4154:
	sub	r3, fp, #1088
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r2, #64
	mov	r1, r3
	ldr	r0, [fp, #-1104]
	bl	ld_next
	str	r0, [fp, #-1100]
	ldr	r3, [fp, #-1100]
	cmn	r3, #1
	bne	.L4134
	mov	r3, #0
	b	.L4155
.L4134:
	ldr	r3, [fp, #-1100]
	cmp	r3, #256
	beq	.L4136
	mvn	r3, #0
	b	.L4155
.L4136:
	sub	r3, fp, #1088
	sub	r3, r3, #4
	sub	r3, r3, #4
	ldr	r1, .L4161+12
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L4137
	sub	r3, fp, #1088
	sub	r3, r3, #4
	sub	r3, r3, #4
	ldr	r1, .L4161+16
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L4138
.L4137:
	sub	r3, fp, #1088
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r2, #64
	mov	r1, r3
	ldr	r0, [fp, #-1104]
	bl	ld_next
	str	r0, [fp, #-1100]
	ldr	r3, [fp, #-1100]
	cmp	r3, #40
	beq	.L4139
	ldr	r0, .L4161+20
	bl	expect
.L4139:
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r2, #1024
	mov	r1, r3
	ldr	r0, [fp, #-1104]
	bl	ld_next
	str	r0, [fp, #-1100]
.L4145:
	ldr	r3, [fp, #-1100]
	cmn	r3, #1
	bne	.L4140
	ldr	r0, .L4161+24
	bl	error_noabort
	mvn	r3, #0
	b	.L4155
.L4140:
	ldr	r3, [fp, #-1100]
	cmp	r3, #41
	beq	.L4159
	ldr	r3, [fp, #-1100]
	cmp	r3, #256
	beq	.L4143
	ldr	r0, .L4161+28
	bl	error_noabort
	mvn	r3, #0
	b	.L4155
.L4143:
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r1, r3
	ldr	r0, [fp, #-1104]
	bl	tcc_add_file
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r2, #1024
	mov	r1, r3
	ldr	r0, [fp, #-1104]
	bl	ld_next
	str	r0, [fp, #-1100]
	ldr	r3, [fp, #-1100]
	cmp	r3, #44
	bne	.L4145
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r2, #1024
	mov	r1, r3
	ldr	r0, [fp, #-1104]
	bl	ld_next
	str	r0, [fp, #-1100]
	b	.L4145
.L4159:
	nop
	b	.L4146
.L4138:
	sub	r3, fp, #1088
	sub	r3, r3, #4
	sub	r3, r3, #4
	ldr	r1, .L4161+32
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L4147
	sub	r3, fp, #1088
	sub	r3, r3, #4
	sub	r3, r3, #4
	ldr	r1, .L4161+36
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L4148
.L4147:
	sub	r3, fp, #1088
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r2, #64
	mov	r1, r3
	ldr	r0, [fp, #-1104]
	bl	ld_next
	str	r0, [fp, #-1100]
	ldr	r3, [fp, #-1100]
	cmp	r3, #40
	beq	.L4153
	ldr	r0, .L4161+20
	bl	expect
.L4153:
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r2, #1024
	mov	r1, r3
	ldr	r0, [fp, #-1104]
	bl	ld_next
	str	r0, [fp, #-1100]
	ldr	r3, [fp, #-1100]
	cmn	r3, #1
	bne	.L4150
	ldr	r0, .L4161+24
	bl	error_noabort
	mvn	r3, #0
	b	.L4155
.L4150:
	ldr	r3, [fp, #-1100]
	cmp	r3, #41
	beq	.L4160
	b	.L4153
.L4160:
	nop
	b	.L4146
.L4148:
	mvn	r3, #0
	b	.L4155
.L4146:
	b	.L4154
.L4155:
	ldr	r2, .L4161
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L4156
	bl	__stack_chk_fail
.L4156:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L4162:
	.align	2
.L4161:
	.word	.LC347
	.word	file
	.word	ch
	.word	.LC342
	.word	.LC343
	.word	.LC131
	.word	.LC218
	.word	.LC344
	.word	.LC345
	.word	.LC346
	.size	tcc_load_ldscript, .-tcc_load_ldscript
	.section	.rodata
	.align	2
.LC348:
	.ascii	"0x%08lx:\000"
	.align	2
.LC349:
	.ascii	" ???\012\000"
	.align	2
.LC350:
	.ascii	" %s()\000"
	.align	2
.LC351:
	.ascii	" (%s:%d\000"
	.align	2
.LC352:
	.ascii	", included from %s\000"
	.align	2
.LC353:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	rt_printline, %function
rt_printline:
	@ args = 0, pretend = 0, frame = 456
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #456
	str	r0, [fp, #-456]
	ldr	r3, .L4200
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L4200+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-456]
	ldr	r1, .L4200+8
	mov	r0, r3
	bl	fprintf
	mov	r3, #0
	strb	r3, [fp, #-264]
	mov	r3, #0
	str	r3, [fp, #-444]
	mov	r3, #0
	str	r3, [fp, #-436]
	mov	r3, #0
	strb	r3, [fp, #-136]
	mvn	r3, #0
	str	r3, [fp, #-440]
	mov	r3, #1
	str	r3, [fp, #-428]
	ldr	r3, .L4200+12
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	add	r3, r3, #12
	str	r3, [fp, #-448]
	ldr	r3, .L4200+12
	ldr	r3, [r3]
	ldr	r2, [r3, #4]
	ldr	r3, .L4200+12
	ldr	r3, [r3]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-412]
	b	.L4164
.L4184:
	ldr	r3, [fp, #-448]
	ldrb	r3, [r3, #4]	@ zero_extendqisi2
	cmp	r3, #162
	beq	.L4165
	cmp	r3, #162
	bgt	.L4166
	cmp	r3, #130
	beq	.L4167
	cmp	r3, #130
	bgt	.L4166
	cmp	r3, #100
	beq	.L4168
	cmp	r3, #100
	bgt	.L4166
	cmp	r3, #36
	beq	.L4169
	cmp	r3, #68
	beq	.L4170
	b	.L4166
.L4169:
	ldr	r3, [fp, #-448]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L4171
	ldr	r3, [fp, #-448]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-444]
	add	r3, r2, r3
	str	r3, [fp, #-400]
	ldr	r2, [fp, #-456]
	ldr	r3, [fp, #-440]
	cmp	r2, r3
	bcc	.L4172
	ldr	r2, [fp, #-456]
	ldr	r3, [fp, #-400]
	cmp	r2, r3
	bcc	.L4194
.L4172:
	mov	r3, #0
	strb	r3, [fp, #-264]
	mov	r3, #0
	str	r3, [fp, #-444]
	b	.L4166
.L4171:
	ldr	r3, .L4200+16
	ldr	r3, [r3]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-448]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-420]
	mov	r1, #58
	ldr	r0, [fp, #-420]
	bl	strchr
	str	r0, [fp, #-396]
	ldr	r3, [fp, #-396]
	cmp	r3, #0
	bne	.L4175
	sub	r3, fp, #264
	ldr	r2, [fp, #-420]
	mov	r1, #128
	mov	r0, r3
	bl	pstrcpy
	b	.L4176
.L4175:
	ldr	r2, [fp, #-396]
	ldr	r3, [fp, #-420]
	sub	r3, r2, r3
	str	r3, [fp, #-432]
	ldr	r3, [fp, #-432]
	cmp	r3, #127
	bls	.L4177
	mov	r3, #127
	str	r3, [fp, #-432]
.L4177:
	ldr	r2, [fp, #-432]
	sub	r3, fp, #264
	ldr	r1, [fp, #-420]
	mov	r0, r3
	bl	memcpy
	sub	r2, fp, #264
	ldr	r3, [fp, #-432]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
.L4176:
	ldr	r3, [fp, #-448]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-444]
	b	.L4166
.L4170:
	ldr	r3, [fp, #-448]
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-444]
	add	r3, r2, r3
	str	r3, [fp, #-400]
	ldr	r2, [fp, #-456]
	ldr	r3, [fp, #-440]
	cmp	r2, r3
	bcc	.L4178
	ldr	r2, [fp, #-456]
	ldr	r3, [fp, #-400]
	cmp	r2, r3
	bcc	.L4195
.L4178:
	ldr	r3, [fp, #-400]
	str	r3, [fp, #-440]
	ldr	r3, [fp, #-448]
	ldrh	r3, [r3, #6]
	str	r3, [fp, #-428]
	sub	r2, fp, #264
	sub	r3, fp, #136
	mov	r1, r2
	mov	r0, r3
	bl	strcpy
	b	.L4166
.L4167:
	ldr	r3, .L4200+16
	ldr	r3, [r3]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-448]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-420]
	b	.L4179
.L4199:
	nop
.L4179:
	ldr	r3, [fp, #-436]
	cmp	r3, #31
	bgt	.L4196
	ldr	r3, [fp, #-436]
	add	r2, r3, #1
	str	r2, [fp, #-436]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r2, [fp, #-420]
	str	r2, [r3, #-388]
	b	.L4196
.L4165:
	ldr	r3, [fp, #-436]
	cmp	r3, #1
	ble	.L4197
	ldr	r3, [fp, #-436]
	sub	r3, r3, #1
	str	r3, [fp, #-436]
	b	.L4197
.L4168:
	ldr	r3, [fp, #-448]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L4182
	mov	r3, #0
	str	r3, [fp, #-436]
	b	.L4198
.L4182:
	ldr	r3, .L4200+16
	ldr	r3, [r3]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-448]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-420]
	ldr	r0, [fp, #-420]
	bl	strlen
	mov	r3, r0
	str	r3, [fp, #-432]
	ldr	r3, [fp, #-432]
	cmp	r3, #0
	ble	.L4198
	ldr	r3, [fp, #-432]
	sub	r3, r3, #1
	ldr	r2, [fp, #-420]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #47
	bne	.L4199
	b	.L4198
.L4196:
	nop
	b	.L4166
.L4197:
	nop
	b	.L4166
.L4198:
	nop
.L4166:
	ldr	r3, [fp, #-448]
	add	r3, r3, #12
	str	r3, [fp, #-448]
.L4164:
	ldr	r2, [fp, #-448]
	ldr	r3, [fp, #-412]
	cmp	r2, r3
	bcc	.L4184
	mov	r3, #0
	str	r3, [fp, #-436]
	ldr	r3, .L4200+20
	ldr	r3, [r3]
	ldr	r2, [r3, #4]
	ldr	r3, .L4200+20
	ldr	r3, [r3]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-408]
	ldr	r3, .L4200+20
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	add	r3, r3, #16
	str	r3, [fp, #-416]
	b	.L4185
.L4187:
	ldr	r3, [fp, #-416]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	and	r3, r3, #15
	str	r3, [fp, #-404]
	ldr	r3, [fp, #-404]
	cmp	r3, #2
	bne	.L4186
	ldr	r3, [fp, #-416]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-456]
	cmp	r2, r3
	bcc	.L4186
	ldr	r3, [fp, #-416]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-416]
	ldr	r3, [r3, #8]
	add	r3, r2, r3
	ldr	r2, [fp, #-456]
	cmp	r2, r3
	bcs	.L4186
	ldr	r3, .L4200+24
	ldr	r3, [r3]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-416]
	ldr	r3, [r3]
	add	r2, r2, r3
	sub	r3, fp, #136
	mov	r1, #128
	mov	r0, r3
	bl	pstrcpy
	b	.L4173
.L4186:
	ldr	r3, [fp, #-416]
	add	r3, r3, #16
	str	r3, [fp, #-416]
.L4185:
	ldr	r2, [fp, #-416]
	ldr	r3, [fp, #-408]
	cmp	r2, r3
	bcc	.L4187
	ldr	r3, .L4200+4
	ldr	r3, [r3]
	mov	r2, #5
	mov	r1, #1
	ldr	r0, .L4200+28
	bl	fwrite
	b	.L4163
.L4194:
	nop
	b	.L4173
.L4195:
	nop
.L4173:
	ldrb	r3, [fp, #-136]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L4189
	ldr	r3, .L4200+4
	ldr	r3, [r3]
	sub	r2, fp, #136
	ldr	r1, .L4200+32
	mov	r0, r3
	bl	fprintf
.L4189:
	ldr	r3, [fp, #-436]
	cmp	r3, #0
	ble	.L4190
	ldr	r3, .L4200+4
	ldr	r0, [r3]
	ldr	r3, [fp, #-436]
	sub	r3, r3, #1
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r2, [r3, #-388]
	ldr	r3, [fp, #-428]
	ldr	r1, .L4200+36
	bl	fprintf
	ldr	r3, [fp, #-436]
	sub	r3, r3, #2
	str	r3, [fp, #-424]
	b	.L4191
.L4192:
	ldr	r3, .L4200+4
	ldr	r0, [r3]
	ldr	r3, [fp, #-424]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-388]
	mov	r2, r3
	ldr	r1, .L4200+40
	bl	fprintf
	ldr	r3, [fp, #-424]
	sub	r3, r3, #1
	str	r3, [fp, #-424]
.L4191:
	ldr	r3, [fp, #-424]
	cmp	r3, #0
	bge	.L4192
	ldr	r3, .L4200+4
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #41
	bl	fputc
.L4190:
	ldr	r3, .L4200+4
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
.L4163:
	ldr	r3, .L4200
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L4193
	bl	__stack_chk_fail
.L4193:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L4201:
	.align	2
.L4200:
	.word	.LC353
	.word	stderr
	.word	.LC348
	.word	stab_section
	.word	stabstr_section
	.word	symtab_section
	.word	strtab_section
	.word	.LC349
	.word	.LC350
	.word	.LC351
	.word	.LC352
	.size	rt_printline, .-rt_printline
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	rt_get_caller_pc, %function
rt_get_caller_pc:
	@ 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, #-24]
	cmp	r3, #0
	bne	.L4203
	ldr	r3, [fp, #-16]
	ldr	r2, .L4205
	str	r2, [r3]
	mov	r3, #0
	b	.L4204
.L4203:
	ldr	r3, .L4205+4
	str	r3, [fp, #-8]
	mov	r3, #0
.L4204:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L4206:
	.align	2
.L4205:
	.word	12345
	.word	23456
	.size	rt_get_caller_pc, .-rt_get_caller_pc
	.section	.rodata
	.align	2
.LC354:
	.ascii	"Runtime error: \000"
	.align	2
.LC355:
	.ascii	"at \000"
	.align	2
.LC356:
	.ascii	"by \000"
	.align	2
.LC357:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	rt_error
	.syntax unified
	.arm
	.fpu softvfp
	.type	rt_error, %function
rt_error:
	@ args = 4, pretend = 12, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 1
	push	{r1, r2, r3}
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #28
	str	r0, [fp, #-28]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-32]
	ldr	r3, .L4216
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-20]
	add	r3, fp, #8
	str	r3, [fp, #-24]
	ldr	r3, .L4216+4
	ldr	r3, [r3]
	mov	r2, #15
	mov	r1, #1
	ldr	r0, .L4216+8
	bl	fwrite
	ldr	r3, .L4216+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-32]
	mov	r0, r3
	bl	vfprintf
	ldr	r3, .L4216+4
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #10
	bl	fputc
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L4208
.L4213:
	sub	r3, fp, #20
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-28]
	mov	r0, r3
	bl	rt_get_caller_pc
	mov	r3, r0
	cmp	r3, #0
	blt	.L4215
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L4211
	ldr	r3, .L4216+4
	ldr	r3, [r3]
	mov	r2, #3
	mov	r1, #1
	ldr	r0, .L4216+12
	bl	fwrite
	b	.L4212
.L4211:
	ldr	r3, .L4216+4
	ldr	r3, [r3]
	mov	r2, #3
	mov	r1, #1
	ldr	r0, .L4216+16
	bl	fwrite
.L4212:
	ldr	r3, [fp, #-20]
	mov	r0, r3
	bl	rt_printline
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L4208:
	ldr	r3, .L4216+20
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L4213
	b	.L4210
.L4215:
	nop
.L4210:
	mov	r0, #255
	bl	exit
.L4217:
	.align	2
.L4216:
	.word	.LC357
	.word	stderr
	.word	.LC354
	.word	.LC355
	.word	.LC356
	.word	num_callers
	.size	rt_error, .-rt_error
	.section	.rodata
	.align	2
.LC358:
	.ascii	"floating point exception\000"
	.align	2
.LC359:
	.ascii	"dereferencing invalid pointer\000"
	.align	2
.LC360:
	.ascii	"illegal instruction\000"
	.align	2
.LC361:
	.ascii	"abort() called\000"
	.align	2
.LC362:
	.ascii	"caught signal %d\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	sig_error, %function
sig_error:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	sub	r3, r3, #4
	cmp	r3, #7
	ldrls	pc, [pc, r3, asl #2]
	b	.L4219
.L4221:
	.word	.L4224
	.word	.L4219
	.word	.L4223
	.word	.L4220
	.word	.L4222
	.word	.L4219
	.word	.L4219
	.word	.L4220
.L4222:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #8]
	cmp	r3, #1
	beq	.L4225
	cmp	r3, #3
	bne	.L4226
.L4225:
	ldr	r1, .L4231
	ldr	r0, [fp, #-8]
	bl	rt_error
	b	.L4227
.L4226:
	ldr	r1, .L4231+4
	ldr	r0, [fp, #-8]
	bl	rt_error
	nop
.L4227:
	b	.L4228
.L4220:
	ldr	r3, .L4231+8
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L4229
	ldr	r3, .L4231+8
	ldr	r3, [r3]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L4229
	ldr	r3, .L4231+8
	ldr	r3, [r3]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	rt_error
	b	.L4228
.L4229:
	ldr	r1, .L4231+12
	ldr	r0, [fp, #-8]
	bl	rt_error
	b	.L4228
.L4224:
	ldr	r1, .L4231+16
	ldr	r0, [fp, #-8]
	bl	rt_error
	b	.L4228
.L4223:
	ldr	r1, .L4231+20
	ldr	r0, [fp, #-8]
	bl	rt_error
	b	.L4228
.L4219:
	ldr	r2, [fp, #-16]
	ldr	r1, .L4231+24
	ldr	r0, [fp, #-8]
	bl	rt_error
	nop
.L4228:
	mov	r0, #255
	bl	exit
.L4232:
	.align	2
.L4231:
	.word	.LC258
	.word	.LC358
	.word	rt_bound_error_msg
	.word	.LC359
	.word	.LC360
	.word	.LC361
	.word	.LC362
	.size	sig_error, .-sig_error
	.align	2
	.global	tcc_relocate
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_relocate, %function
tcc_relocate:
	@ 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]
	mov	r2, #0
	str	r2, [r3, #560]
	ldr	r0, [fp, #-16]
	bl	tcc_add_runtime
	bl	relocate_common_syms
	ldr	r0, [fp, #-16]
	bl	tcc_add_linker_symbols
	ldr	r0, [fp, #-16]
	bl	build_got_entries
	mov	r3, #1
	str	r3, [fp, #-12]
	b	.L4234
.L4237:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #24]
	and	r3, r3, #2
	cmp	r3, #0
	beq	.L4235
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #20]
	cmp	r3, #8
	bne	.L4236
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r0, r3
	bl	tcc_mallocz
	mov	r2, r0
	ldr	r3, [fp, #-8]
	str	r2, [r3, #4]
.L4236:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3, #44]
.L4235:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L4234:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #56]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L4237
	mov	r1, #1
	ldr	r0, [fp, #-16]
	bl	relocate_syms
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #560]
	cmp	r3, #0
	beq	.L4238
	mvn	r3, #0
	b	.L4239
.L4238:
	mov	r3, #1
	str	r3, [fp, #-12]
	b	.L4240
.L4242:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #60]
	cmp	r3, #0
	beq	.L4241
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	relocate_section
.L4241:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L4240:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #56]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L4242
	mov	r3, #0
.L4239:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tcc_relocate, .-tcc_relocate
	.section	.rodata
	.align	2
.LC363:
	.ascii	"main\000"
	.align	2
.LC364:
	.ascii	"__bound_error_msg\000"
	.align	2
.LC365:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	tcc_run
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_run, %function
tcc_run:
	@ args = 0, pretend = 0, frame = 168
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #168
	str	r0, [fp, #-160]
	str	r1, [fp, #-164]
	str	r2, [fp, #-168]
	ldr	r3, .L4249
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r0, [fp, #-160]
	bl	tcc_relocate
	mov	r3, r0
	cmp	r3, #0
	bge	.L4244
	mvn	r3, #0
	b	.L4245
.L4244:
	ldr	r1, .L4249+4
	ldr	r0, [fp, #-160]
	bl	tcc_get_symbol_err
	mov	r3, r0
	str	r3, [fp, #-156]
	ldr	r3, .L4249+8
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L4246
	mov	r3, #-2147483644
	str	r3, [fp, #-16]
	ldr	r3, .L4249+12
	str	r3, [fp, #-148]
	sub	r3, fp, #148
	add	r3, r3, #4
	mov	r0, r3
	bl	sigemptyset
	sub	r3, fp, #148
	mov	r2, #0
	mov	r1, r3
	mov	r0, #8
	bl	sigaction
	sub	r3, fp, #148
	mov	r2, #0
	mov	r1, r3
	mov	r0, #4
	bl	sigaction
	sub	r3, fp, #148
	mov	r2, #0
	mov	r1, r3
	mov	r0, #11
	bl	sigaction
	sub	r3, fp, #148
	mov	r2, #0
	mov	r1, r3
	mov	r0, #7
	bl	sigaction
	sub	r3, fp, #148
	mov	r2, #0
	mov	r1, r3
	mov	r0, #6
	bl	sigaction
.L4246:
	ldr	r3, .L4249+16
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L4247
	ldr	r1, .L4249+20
	ldr	r0, [fp, #-160]
	bl	tcc_get_symbol_err
	mov	r3, r0
	ldr	r2, .L4249+24
	str	r3, [r2]
	ldr	r1, .L4249+28
	ldr	r0, [fp, #-160]
	bl	tcc_get_symbol_err
	mov	r3, r0
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-152]
	blx	r3
.L4247:
	ldr	r3, [fp, #-156]
	ldr	r1, [fp, #-168]
	ldr	r0, [fp, #-164]
	blx	r3
	mov	r3, r0
.L4245:
	ldr	r2, .L4249
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L4248
	bl	__stack_chk_fail
.L4248:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L4250:
	.align	2
.L4249:
	.word	.LC365
	.word	.LC363
	.word	do_debug
	.word	sig_error
	.word	do_bounds_check
	.word	.LC364
	.word	rt_bound_error_msg
	.word	.LC300
	.size	tcc_run, .-tcc_run
	.section	.rodata
	.align	2
.LC366:
	.ascii	"__STDC__\000"
	.align	2
.LC367:
	.ascii	"__i386__\000"
	.align	2
.LC368:
	.ascii	"__linux__\000"
	.align	2
.LC369:
	.ascii	"linux\000"
	.align	2
.LC370:
	.ascii	"__TINYC__\000"
	.align	2
.LC371:
	.ascii	"unsigned int\000"
	.align	2
.LC372:
	.ascii	"__SIZE_TYPE__\000"
	.align	2
.LC373:
	.ascii	"__PTRDIFF_TYPE__\000"
	.align	2
.LC374:
	.ascii	"__WCHAR_TYPE__\000"
	.align	2
.LC375:
	.ascii	"/usr/local/lib\000"
	.align	2
.LC376:
	.ascii	"/usr/lib\000"
	.align	2
.LC377:
	.ascii	"/lib\000"
	.align	2
.LC378:
	.ascii	".text\000"
	.align	2
.LC379:
	.ascii	".data\000"
	.align	2
.LC380:
	.ascii	".bss\000"
	.align	2
.LC381:
	.ascii	".symtab\000"
	.align	2
.LC382:
	.ascii	".hashtab\000"
	.align	2
.LC383:
	.ascii	".strtab\000"
	.align	2
.LC384:
	.ascii	".dynsymtab\000"
	.align	2
.LC385:
	.ascii	".dynhashtab\000"
	.align	2
.LC386:
	.ascii	".dynstrtab\000"
	.text
	.align	2
	.global	tcc_new
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_new, %function
tcc_new:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	mov	r0, #3040
	bl	tcc_mallocz
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L4252
	mov	r3, #0
	b	.L4253
.L4252:
	ldr	r2, .L4266
	ldr	r3, [fp, #-16]
	str	r3, [r2]
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L4254
.L4258:
	ldr	r0, [fp, #-20]
	bl	isid
	mov	r3, r0
	cmp	r3, #0
	bne	.L4255
	ldr	r0, [fp, #-20]
	bl	isnum
	mov	r3, r0
	cmp	r3, #0
	beq	.L4256
.L4255:
	mov	r3, #1
	b	.L4257
.L4256:
	mov	r3, #0
.L4257:
	and	r1, r3, #255
	ldr	r2, .L4266+4
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L4254:
	ldr	r3, [fp, #-20]
	cmp	r3, #255
	ble	.L4258
	ldr	r3, .L4266+8
	mov	r2, #0
	str	r2, [r3]
	mov	r2, #32768
	mov	r1, #0
	ldr	r0, .L4266+12
	bl	memset
	ldr	r3, .L4266+16
	mov	r2, #256
	str	r2, [r3]
	ldr	r3, .L4266+20
	str	r3, [fp, #-28]
	b	.L4259
.L4263:
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-24]
.L4262:
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L4265
	b	.L4262
.L4265:
	nop
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	sub	r3, r2, r3
	sub	r3, r3, #1
	mov	r1, r3
	ldr	r0, [fp, #-28]
	bl	tok_alloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-28]
.L4259:
	ldr	r3, [fp, #-28]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L4263
	mov	r3, #0
	mov	r2, #0
	mov	r1, #0
	ldr	r0, .L4266+24
	bl	define_push
	mov	r3, #0
	mov	r2, #0
	mov	r1, #0
	ldr	r0, .L4266+28
	bl	define_push
	mov	r3, #0
	mov	r2, #0
	mov	r1, #0
	mov	r0, #328
	bl	define_push
	mov	r3, #0
	mov	r2, #0
	mov	r1, #0
	ldr	r0, .L4266+32
	bl	define_push
	mov	r2, #0
	ldr	r1, .L4266+36
	ldr	r0, [fp, #-16]
	bl	tcc_define_symbol
	mov	r2, #0
	ldr	r1, .L4266+40
	ldr	r0, [fp, #-16]
	bl	tcc_define_symbol
	mov	r2, #0
	ldr	r1, .L4266+44
	ldr	r0, [fp, #-16]
	bl	tcc_define_symbol
	mov	r2, #0
	ldr	r1, .L4266+48
	ldr	r0, [fp, #-16]
	bl	tcc_define_symbol
	mov	r2, #0
	ldr	r1, .L4266+52
	ldr	r0, [fp, #-16]
	bl	tcc_define_symbol
	ldr	r2, .L4266+56
	ldr	r1, .L4266+60
	ldr	r0, [fp, #-16]
	bl	tcc_define_symbol
	ldr	r2, .L4266+64
	ldr	r1, .L4266+68
	ldr	r0, [fp, #-16]
	bl	tcc_define_symbol
	ldr	r2, .L4266+64
	ldr	r1, .L4266+72
	ldr	r0, [fp, #-16]
	bl	tcc_define_symbol
	ldr	r1, .L4266+76
	ldr	r0, [fp, #-16]
	bl	tcc_add_library_path
	ldr	r1, .L4266+80
	ldr	r0, [fp, #-16]
	bl	tcc_add_library_path
	ldr	r1, .L4266+84
	ldr	r0, [fp, #-16]
	bl	tcc_add_library_path
	ldr	r3, [fp, #-16]
	add	r0, r3, #52
	ldr	r3, [fp, #-16]
	add	r3, r3, #56
	mov	r2, #0
	mov	r1, r3
	bl	dynarray_add
	mov	r3, #6
	mov	r2, #1
	ldr	r1, .L4266+88
	ldr	r0, [fp, #-16]
	bl	new_section
	mov	r3, r0
	ldr	r2, .L4266+92
	str	r3, [r2]
	mov	r3, #3
	mov	r2, #1
	ldr	r1, .L4266+96
	ldr	r0, [fp, #-16]
	bl	new_section
	mov	r3, r0
	ldr	r2, .L4266+100
	str	r3, [r2]
	mov	r3, #3
	mov	r2, #8
	ldr	r1, .L4266+104
	ldr	r0, [fp, #-16]
	bl	new_section
	mov	r3, r0
	ldr	r2, .L4266+108
	str	r3, [r2]
	mov	r3, #-2147483648
	str	r3, [sp, #8]
	ldr	r3, .L4266+112
	str	r3, [sp, #4]
	ldr	r3, .L4266+116
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #2
	ldr	r1, .L4266+120
	ldr	r0, [fp, #-16]
	bl	new_symtab
	mov	r3, r0
	ldr	r2, .L4266+124
	str	r3, [r2]
	ldr	r3, .L4266+124
	ldr	r3, [r3]
	ldr	r3, [r3, #56]
	ldr	r2, .L4266+128
	str	r3, [r2]
	mov	r3, #-2147483648
	str	r3, [sp, #8]
	ldr	r3, .L4266+132
	str	r3, [sp, #4]
	ldr	r3, .L4266+136
	str	r3, [sp]
	mov	r3, #-2147483648
	mov	r2, #2
	ldr	r1, .L4266+140
	ldr	r0, [fp, #-16]
	bl	new_symtab
	mov	r2, r0
	ldr	r3, [fp, #-16]
	str	r2, [r3, #80]
	ldr	r3, [fp, #-16]
	mov	r2, #1
	str	r2, [r3, #108]
	ldr	r3, [fp, #-16]
.L4253:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L4267:
	.align	2
.L4266:
	.word	tcc_state
	.word	isidnum_table
	.word	table_ident
	.word	hash_ident
	.word	tok_ident
	.word	tcc_keywords
	.word	326
	.word	327
	.word	329
	.word	.LC366
	.word	.LC367
	.word	.LC368
	.word	.LC369
	.word	.LC370
	.word	.LC371
	.word	.LC372
	.word	.LC122
	.word	.LC373
	.word	.LC374
	.word	.LC375
	.word	.LC376
	.word	.LC377
	.word	.LC378
	.word	text_section
	.word	.LC379
	.word	data_section
	.word	.LC380
	.word	bss_section
	.word	.LC382
	.word	.LC383
	.word	.LC381
	.word	symtab_section
	.word	strtab_section
	.word	.LC385
	.word	.LC386
	.word	.LC384
	.size	tcc_new, .-tcc_new
	.align	2
	.global	tcc_delete
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_delete, %function
tcc_delete:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	mov	r0, #0
	bl	free_defines
	ldr	r3, .L4283
	ldr	r3, [r3]
	sub	r3, r3, #256
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L4269
.L4270:
	ldr	r3, .L4283+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	tcc_free
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L4269:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	blt	.L4270
	ldr	r3, .L4283+4
	ldr	r3, [r3]
	mov	r0, r3
	bl	tcc_free
	ldr	r3, .L4283+8
	ldr	r3, [r3]
	ldr	r3, [r3, #64]
	mov	r0, r3
	bl	free_section
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #80]
	ldr	r3, [r3, #64]
	mov	r0, r3
	bl	free_section
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #80]
	ldr	r3, [r3, #56]
	mov	r0, r3
	bl	free_section
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #80]
	mov	r0, r3
	bl	free_section
	mov	r3, #1
	str	r3, [fp, #-12]
	b	.L4271
.L4272:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	free_section
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L4271:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #56]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L4272
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #52]
	mov	r0, r3
	bl	tcc_free
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L4273
.L4274:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	tcc_free
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L4273:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #48]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L4274
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #44]
	mov	r0, r3
	bl	tcc_free
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L4275
.L4276:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	tcc_free
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L4275:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #40]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L4276
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #36]
	mov	r0, r3
	bl	tcc_free
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L4277
.L4278:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #28]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	tcc_free
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L4277:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L4278
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #28]
	mov	r0, r3
	bl	tcc_free
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L4279
.L4280:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	tcc_free
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L4279:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L4280
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	mov	r0, r3
	bl	tcc_free
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L4281
.L4282:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	tcc_free
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L4281:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #24]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L4282
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #20]
	mov	r0, r3
	bl	tcc_free
	ldr	r0, [fp, #-16]
	bl	tcc_free
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L4284:
	.align	2
.L4283:
	.word	tok_ident
	.word	table_ident
	.word	symtab_section
	.size	tcc_delete, .-tcc_delete
	.align	2
	.global	tcc_add_include_path
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_add_include_path, %function
tcc_add_include_path:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r0, [fp, #-20]
	bl	tcc_strdup
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-16]
	add	r0, r3, #12
	ldr	r3, [fp, #-16]
	add	r3, r3, #16
	ldr	r2, [fp, #-8]
	mov	r1, r3
	bl	dynarray_add
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tcc_add_include_path, .-tcc_add_include_path
	.align	2
	.global	tcc_add_sysinclude_path
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_add_sysinclude_path, %function
tcc_add_sysinclude_path:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r0, [fp, #-20]
	bl	tcc_strdup
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-16]
	add	r0, r3, #20
	ldr	r3, [fp, #-16]
	add	r3, r3, #24
	ldr	r2, [fp, #-8]
	mov	r1, r3
	bl	dynarray_add
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tcc_add_sysinclude_path, .-tcc_add_sysinclude_path
	.section	.rodata
	.align	2
.LC387:
	.ascii	"file '%s' not found\000"
	.align	2
.LC388:
	.ascii	"S\000"
	.align	2
.LC389:
	.ascii	"s\000"
	.align	2
.LC390:
	.ascii	"could not read header\000"
	.align	2
.LC391:
	.ascii	"unrecognized ELF file\000"
	.align	2
.LC392:
	.ascii	"!<arch>\012\000"
	.align	2
.LC393:
	.ascii	"unrecognized file type\000"
	.align	2
.LC394:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_add_file_internal, %function
tcc_add_file_internal:
	@ args = 0, pretend = 0, frame = 96
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #96
	str	r0, [fp, #-88]
	str	r1, [fp, #-92]
	str	r2, [fp, #-96]
	ldr	r3, .L4316
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r1, #47
	ldr	r0, [fp, #-92]
	bl	strrchr
	str	r0, [fp, #-76]
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	beq	.L4290
	ldr	r3, [fp, #-76]
	add	r3, r3, #1
	str	r3, [fp, #-76]
	b	.L4291
.L4290:
	ldr	r3, [fp, #-92]
	str	r3, [fp, #-76]
.L4291:
	mov	r1, #46
	ldr	r0, [fp, #-76]
	bl	strrchr
	str	r0, [fp, #-80]
	ldr	r3, [fp, #-80]
	cmp	r3, #0
	beq	.L4292
	ldr	r3, [fp, #-80]
	add	r3, r3, #1
	str	r3, [fp, #-80]
.L4292:
	ldr	r3, .L4316+4
	ldr	r3, [r3]
	str	r3, [fp, #-68]
	ldr	r1, [fp, #-92]
	ldr	r0, [fp, #-88]
	bl	tcc_open
	mov	r3, r0
	ldr	r2, .L4316+4
	str	r3, [r2]
	ldr	r3, .L4316+4
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L4293
	ldr	r3, [fp, #-96]
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L4294
	ldr	r1, [fp, #-92]
	ldr	r0, .L4316+8
	bl	error_noabort
.L4294:
	mvn	r3, #0
	str	r3, [fp, #-72]
	b	.L4295
.L4293:
	ldr	r3, [fp, #-80]
	cmp	r3, #0
	beq	.L4296
	ldr	r1, .L4316+12
	ldr	r0, [fp, #-80]
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L4297
.L4296:
	ldr	r0, [fp, #-88]
	bl	tcc_compile
	str	r0, [fp, #-72]
	b	.L4298
.L4297:
	ldr	r1, .L4316+16
	ldr	r0, [fp, #-80]
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L4299
	mov	r1, #1
	ldr	r0, [fp, #-88]
	bl	tcc_assemble
	str	r0, [fp, #-72]
	b	.L4298
.L4299:
	ldr	r1, .L4316+20
	ldr	r0, [fp, #-80]
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L4300
	mov	r1, #0
	ldr	r0, [fp, #-88]
	bl	tcc_assemble
	str	r0, [fp, #-72]
	b	.L4298
.L4300:
	ldr	r3, .L4316+4
	ldr	r3, [r3]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-64]
	sub	r3, fp, #60
	mov	r2, #52
	mov	r1, r3
	ldr	r0, [fp, #-64]
	bl	read
	str	r0, [fp, #-72]
	mov	r2, #0
	mov	r1, #0
	ldr	r0, [fp, #-64]
	bl	lseek
	ldr	r3, [fp, #-72]
	cmp	r3, #0
	bgt	.L4301
	ldr	r0, .L4316+24
	bl	error_noabort
	b	.L4302
.L4301:
	ldr	r3, [fp, #-72]
	cmp	r3, #52
	bne	.L4313
	ldrb	r3, [fp, #-60]	@ zero_extendqisi2
	cmp	r3, #127
	bne	.L4305
	ldrb	r3, [fp, #-59]	@ zero_extendqisi2
	cmp	r3, #69
	bne	.L4305
	ldrb	r3, [fp, #-58]	@ zero_extendqisi2
	cmp	r3, #76
	bne	.L4305
	ldrb	r3, [fp, #-57]	@ zero_extendqisi2
	cmp	r3, #70
	bne	.L4305
	ldr	r3, .L4316+4
	ldr	r3, [r3]
	mov	r2, #0
	str	r2, [r3, #12]
	ldrh	r3, [fp, #-44]
	cmp	r3, #1
	bne	.L4306
	mov	r2, #0
	ldr	r1, [fp, #-64]
	ldr	r0, [fp, #-88]
	bl	tcc_load_object_file
	str	r0, [fp, #-72]
	b	.L4298
.L4306:
	ldrh	r3, [fp, #-44]
	cmp	r3, #3
	bne	.L4308
	ldr	r3, [fp, #-88]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L4309
	ldr	r3, .L4316+28
	ldr	r2, .L4316+32
	ldr	r1, .L4316+36
	ldr	r0, .L4316+40
	bl	__assert_fail
.L4309:
	ldr	r3, [fp, #-96]
	and	r3, r3, #2
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	ldr	r2, [fp, #-92]
	ldr	r1, [fp, #-64]
	ldr	r0, [fp, #-88]
	bl	tcc_load_dll
	str	r0, [fp, #-72]
	b	.L4298
.L4308:
	ldr	r0, .L4316+44
	bl	error_noabort
	b	.L4302
.L4305:
	sub	r3, fp, #60
	mov	r2, #8
	ldr	r1, .L4316+48
	mov	r0, r3
	bl	memcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L4314
	ldr	r3, .L4316+4
	ldr	r3, [r3]
	mov	r2, #0
	str	r2, [r3, #12]
	ldr	r1, [fp, #-64]
	ldr	r0, [fp, #-88]
	bl	tcc_load_archive
	str	r0, [fp, #-72]
	b	.L4298
.L4313:
	nop
	b	.L4304
.L4314:
	nop
.L4304:
	ldr	r0, [fp, #-88]
	bl	tcc_load_ldscript
	str	r0, [fp, #-72]
	ldr	r3, [fp, #-72]
	cmp	r3, #0
	bge	.L4315
	ldr	r0, .L4316+52
	bl	error_noabort
	b	.L4302
.L4315:
	nop
.L4298:
	ldr	r3, .L4316+4
	ldr	r3, [r3]
	mov	r0, r3
	bl	tcc_close
.L4295:
	ldr	r2, .L4316+4
	ldr	r3, [fp, #-68]
	str	r3, [r2]
	ldr	r3, [fp, #-72]
	ldr	r2, .L4316
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L4311
	b	.L4312
.L4302:
	mvn	r3, #0
	str	r3, [fp, #-72]
	b	.L4298
.L4312:
	bl	__stack_chk_fail
.L4311:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L4317:
	.align	2
.L4316:
	.word	.LC394
	.word	file
	.word	.LC387
	.word	.LC301
	.word	.LC388
	.word	.LC389
	.word	.LC390
	.word	__PRETTY_FUNCTION__.15317
	.word	21008
	.word	.LC8
	.word	.LC9
	.word	.LC391
	.word	.LC392
	.word	.LC393
	.size	tcc_add_file_internal, .-tcc_add_file_internal
	.align	2
	.global	tcc_add_file
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_add_file, %function
tcc_add_file:
	@ 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]
	mov	r2, #1
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	tcc_add_file_internal
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tcc_add_file, .-tcc_add_file
	.align	2
	.global	tcc_add_library_path
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_add_library_path, %function
tcc_add_library_path:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r0, [fp, #-20]
	bl	tcc_strdup
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-16]
	add	r0, r3, #36
	ldr	r3, [fp, #-16]
	add	r3, r3, #40
	ldr	r2, [fp, #-8]
	mov	r1, r3
	bl	dynarray_add
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tcc_add_library_path, .-tcc_add_library_path
	.section	.rodata
	.align	2
.LC395:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_add_dll, %function
tcc_add_dll:
	@ args = 0, pretend = 0, frame = 1048
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #1056
	str	r0, [fp, #-1040]
	str	r1, [fp, #-1044]
	str	r2, [fp, #-1048]
	ldr	r3, .L4329
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-1036]
	b	.L4323
.L4326:
	ldr	r3, [fp, #-1040]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-1036]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	sub	r0, fp, #1024
	sub	r0, r0, #4
	sub	r0, r0, #4
	ldr	r3, [fp, #-1044]
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, .L4329+4
	mov	r1, #1024
	bl	snprintf
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	ldr	r2, [fp, #-1048]
	mov	r1, r3
	ldr	r0, [fp, #-1040]
	bl	tcc_add_file_internal
	mov	r3, r0
	cmp	r3, #0
	bne	.L4324
	mov	r3, #0
	b	.L4327
.L4324:
	ldr	r3, [fp, #-1036]
	add	r3, r3, #1
	str	r3, [fp, #-1036]
.L4323:
	ldr	r3, [fp, #-1040]
	ldr	r3, [r3, #40]
	ldr	r2, [fp, #-1036]
	cmp	r2, r3
	blt	.L4326
	mvn	r3, #0
.L4327:
	ldr	r2, .L4329
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L4328
	bl	__stack_chk_fail
.L4328:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L4330:
	.align	2
.L4329:
	.word	.LC395
	.word	.LC297
	.size	tcc_add_dll, .-tcc_add_dll
	.section	.rodata
	.align	2
.LC396:
	.ascii	"lib%s.so\000"
	.align	2
.LC397:
	.ascii	"%s/lib%s.a\000"
	.align	2
.LC398:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	tcc_add_library
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_add_library, %function
tcc_add_library:
	@ args = 0, pretend = 0, frame = 1040
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #1040
	sub	sp, sp, #8
	str	r0, [fp, #-1040]
	str	r1, [fp, #-1044]
	ldr	r3, .L4339
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-1040]
	ldr	r3, [r3, #100]
	cmp	r3, #0
	bne	.L4332
	sub	r0, fp, #1024
	sub	r0, r0, #4
	sub	r0, r0, #4
	ldr	r3, [fp, #-1044]
	ldr	r2, .L4339+4
	mov	r1, #1024
	bl	snprintf
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-1040]
	bl	tcc_add_dll
	mov	r3, r0
	cmp	r3, #0
	bne	.L4332
	mov	r3, #0
	b	.L4337
.L4332:
	mov	r3, #0
	str	r3, [fp, #-1036]
	b	.L4334
.L4336:
	ldr	r3, [fp, #-1040]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-1036]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	sub	r0, fp, #1024
	sub	r0, r0, #4
	sub	r0, r0, #4
	ldr	r3, [fp, #-1044]
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, .L4339+8
	mov	r1, #1024
	bl	snprintf
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-1040]
	bl	tcc_add_file_internal
	mov	r3, r0
	cmp	r3, #0
	bne	.L4335
	mov	r3, #0
	b	.L4337
.L4335:
	ldr	r3, [fp, #-1036]
	add	r3, r3, #1
	str	r3, [fp, #-1036]
.L4334:
	ldr	r3, [fp, #-1040]
	ldr	r3, [r3, #40]
	ldr	r2, [fp, #-1036]
	cmp	r2, r3
	blt	.L4336
	mvn	r3, #0
.L4337:
	ldr	r2, .L4339
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L4338
	bl	__stack_chk_fail
.L4338:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L4340:
	.align	2
.L4339:
	.word	.LC398
	.word	.LC396
	.word	.LC397
	.size	tcc_add_library, .-tcc_add_library
	.align	2
	.global	tcc_add_symbol
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_add_symbol, %function
tcc_add_symbol:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	ldr	r3, .L4343
	ldr	r0, [r3]
	ldr	r3, [fp, #-12]
	str	r3, [sp, #8]
	ldr	r3, .L4343+4
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #16
	mov	r2, #0
	ldr	r1, [fp, #-16]
	bl	add_elf_sym
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L4344:
	.align	2
.L4343:
	.word	symtab_section
	.word	65521
	.size	tcc_add_symbol, .-tcc_add_symbol
	.section	.rodata
	.align	2
.LC399:
	.ascii	"/usr/local/include\000"
	.align	2
.LC400:
	.ascii	"/usr/include\000"
	.align	2
.LC401:
	.ascii	"%s/include\000"
	.align	2
.LC402:
	.ascii	"__BOUNDS_CHECKING_ON\000"
	.align	2
.LC403:
	.ascii	".bounds\000"
	.align	2
.LC404:
	.ascii	".lbounds\000"
	.align	2
.LC405:
	.ascii	"__CHAR_UNSIGNED__\000"
	.align	2
.LC406:
	.ascii	".stab\000"
	.align	2
.LC407:
	.ascii	".stabstr\000"
	.align	2
.LC408:
	.ascii	"/usr/lib/crt1.o\000"
	.align	2
.LC409:
	.ascii	"/usr/lib/crti.o\000"
	.align	2
.LC410:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	tcc_set_output_type
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_set_output_type, %function
tcc_set_output_type:
	@ args = 0, pretend = 0, frame = 1040
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #1040
	sub	sp, sp, #8
	str	r0, [fp, #-1040]
	str	r1, [fp, #-1044]
	ldr	r3, .L4355
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-1040]
	ldr	r2, [fp, #-1044]
	str	r2, [r3]
	ldr	r3, [fp, #-1040]
	ldr	r3, [r3, #88]
	cmp	r3, #0
	bne	.L4346
	ldr	r1, .L4355+4
	ldr	r0, [fp, #-1040]
	bl	tcc_add_sysinclude_path
	ldr	r1, .L4355+8
	ldr	r0, [fp, #-1040]
	bl	tcc_add_sysinclude_path
	ldr	r3, .L4355+12
	ldr	r3, [r3]
	sub	r0, fp, #1024
	sub	r0, r0, #4
	sub	r0, r0, #4
	ldr	r2, .L4355+16
	mov	r1, #1024
	bl	snprintf
	sub	r3, fp, #1024
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r1, r3
	ldr	r0, [fp, #-1040]
	bl	tcc_add_sysinclude_path
.L4346:
	ldr	r3, .L4355+20
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L4347
	mov	r2, #0
	ldr	r1, .L4355+24
	ldr	r0, [fp, #-1040]
	bl	tcc_define_symbol
	mov	r3, #2
	mov	r2, #1
	ldr	r1, .L4355+28
	ldr	r0, [fp, #-1040]
	bl	new_section
	mov	r3, r0
	ldr	r2, .L4355+32
	str	r3, [r2]
	mov	r3, #2
	mov	r2, #1
	ldr	r1, .L4355+36
	ldr	r0, [fp, #-1040]
	bl	new_section
	mov	r3, r0
	ldr	r2, .L4355+40
	str	r3, [r2]
.L4347:
	ldr	r3, [fp, #-1040]
	ldr	r3, [r3, #124]
	cmp	r3, #0
	beq	.L4348
	mov	r2, #0
	ldr	r1, .L4355+44
	ldr	r0, [fp, #-1040]
	bl	tcc_define_symbol
.L4348:
	ldr	r3, .L4355+48
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L4349
	mov	r3, #0
	mov	r2, #1
	ldr	r1, .L4355+52
	ldr	r0, [fp, #-1040]
	bl	new_section
	mov	r3, r0
	ldr	r2, .L4355+56
	str	r3, [r2]
	ldr	r3, .L4355+56
	ldr	r3, [r3]
	mov	r2, #12
	str	r2, [r3, #36]
	mov	r3, #0
	mov	r2, #3
	ldr	r1, .L4355+60
	ldr	r0, [fp, #-1040]
	bl	new_section
	mov	r3, r0
	ldr	r2, .L4355+64
	str	r3, [r2]
	ldr	r3, .L4355+64
	ldr	r3, [r3]
	ldr	r1, .L4355+68
	mov	r0, r3
	bl	put_elf_str
	ldr	r3, .L4355+56
	ldr	r3, [r3]
	ldr	r2, .L4355+64
	ldr	r2, [r2]
	str	r2, [r3, #56]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #0
	mov	r1, #0
	ldr	r0, .L4355+68
	bl	put_stabs
.L4349:
	ldr	r3, [fp, #-1044]
	cmp	r3, #1
	beq	.L4350
	ldr	r3, [fp, #-1044]
	cmp	r3, #2
	bne	.L4351
.L4350:
	ldr	r3, [fp, #-1040]
	ldr	r3, [r3, #92]
	cmp	r3, #0
	bne	.L4351
	ldr	r3, [fp, #-1044]
	cmp	r3, #2
	beq	.L4352
	ldr	r1, .L4355+72
	ldr	r0, [fp, #-1040]
	bl	tcc_add_file
.L4352:
	ldr	r1, .L4355+76
	ldr	r0, [fp, #-1040]
	bl	tcc_add_file
.L4351:
	mov	r3, #0
	ldr	r2, .L4355
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L4354
	bl	__stack_chk_fail
.L4354:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L4356:
	.align	2
.L4355:
	.word	.LC410
	.word	.LC399
	.word	.LC400
	.word	tcc_lib_path
	.word	.LC401
	.word	do_bounds_check
	.word	.LC402
	.word	.LC403
	.word	bounds_section
	.word	.LC404
	.word	lbounds_section
	.word	.LC405
	.word	do_debug
	.word	.LC406
	.word	stab_section
	.word	.LC407
	.word	stabstr_section
	.word	.LC52
	.word	.LC408
	.word	.LC409
	.size	tcc_set_output_type, .-tcc_set_output_type
	.section	.rodata
	.align	2
.LC411:
	.ascii	"unsupported\000"
	.align	2
.LC412:
	.ascii	"write-strings\000"
	.align	2
.LC413:
	.ascii	"error\000"
	.align	2
.LC414:
	.ascii	"implicit-function-declaration\000"
	.align	2
	.type	warning_defs, %object
	.size	warning_defs, 32
warning_defs:
	.short	136
	.short	0
	.word	.LC411
	.short	132
	.short	0
	.word	.LC412
	.short	140
	.short	0
	.word	.LC413
	.short	148
	.short	1
	.word	.LC414
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	set_flag, %function
set_flag:
	@ args = 4, 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]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #110
	bne	.L4358
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #111
	bne	.L4358
	ldr	r3, [fp, #-8]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #45
	bne	.L4358
	ldr	r3, [fp, #-8]
	add	r3, r3, #3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #4]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #4]
.L4358:
	mov	r3, #0
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-12]
	b	.L4359
.L4362:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #4]
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L4366
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r3, r3, #8
	str	r3, [fp, #-12]
.L4359:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	blt	.L4362
	mvn	r3, #0
	b	.L4363
.L4366:
	nop
.L4361:
	ldr	r3, [fp, #-12]
	ldrh	r3, [r3, #2]
	and	r3, r3, #2
	cmp	r3, #0
	beq	.L4364
	ldr	r3, [fp, #4]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #4]
.L4364:
	ldr	r3, [fp, #-12]
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-24]
	add	r3, r3, r2
	ldr	r2, [fp, #4]
	str	r2, [r3]
	mov	r3, #0
.L4363:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	set_flag, .-set_flag
	.section	.rodata
	.align	2
.LC415:
	.ascii	"all\000"
	.text
	.align	2
	.global	tcc_set_warning
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_set_warning, %function
tcc_set_warning:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r1, .L4373
	ldr	r0, [fp, #-20]
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L4368
	mov	r3, #0
	str	r3, [fp, #-12]
	ldr	r3, .L4373+4
	str	r3, [fp, #-8]
	b	.L4369
.L4371:
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #2]
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L4370
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	mov	r2, #1
	str	r2, [r3]
.L4370:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-8]
	add	r3, r3, #8
	str	r3, [fp, #-8]
.L4369:
	ldr	r3, [fp, #-12]
	cmp	r3, #3
	bls	.L4371
	mov	r3, #0
	b	.L4372
.L4368:
	ldr	r3, [fp, #-24]
	str	r3, [sp]
	ldr	r3, [fp, #-20]
	mov	r2, #4
	ldr	r1, .L4373+4
	ldr	r0, [fp, #-16]
	bl	set_flag
	mov	r3, r0
.L4372:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L4374:
	.align	2
.L4373:
	.word	.LC415
	.word	warning_defs
	.size	tcc_set_warning, .-tcc_set_warning
	.section	.rodata
	.align	2
.LC416:
	.ascii	"unsigned-char\000"
	.align	2
.LC417:
	.ascii	"signed-char\000"
	.align	2
.LC418:
	.ascii	"common\000"
	.align	2
.LC419:
	.ascii	"leading-underscore\000"
	.align	2
	.type	flag_defs, %object
	.size	flag_defs, 32
flag_defs:
	.short	124
	.short	0
	.word	.LC416
	.short	124
	.short	2
	.word	.LC417
	.short	96
	.short	2
	.word	.LC418
	.short	128
	.short	0
	.word	.LC419
	.text
	.align	2
	.global	tcc_set_flag
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_set_flag, %function
tcc_set_flag:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	ldr	r3, [fp, #-16]
	str	r3, [sp]
	ldr	r3, [fp, #-12]
	mov	r2, #4
	ldr	r1, .L4377
	ldr	r0, [fp, #-8]
	bl	set_flag
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L4378:
	.align	2
.L4377:
	.word	flag_defs
	.size	tcc_set_flag, .-tcc_set_flag
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	tcc_basename, %function
tcc_basename:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	mov	r1, #47
	ldr	r0, [fp, #-16]
	bl	strrchr
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L4380
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-8]
	b	.L4381
.L4380:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L4381:
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	tcc_basename, .-tcc_basename
	.section	.rodata
	.align	2
.LC420:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	getclock_us, %function
getclock_us:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #16
	ldr	r3, .L4386
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	mov	r3,#0
	sub	r3, fp, #40
	mov	r1, #0
	mov	r0, r3
	bl	gettimeofday
	ldr	r3, [fp, #-40]
	mov	r4, r3
	asr	r5, r4, #31
	mov	r2, r4
	mov	r3, r5
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #5
	orr	r1, r1, r2, lsr #27
	lsl	r0, r2, #5
	mov	r2, r0
	mov	r3, r1
	subs	r2, r2, r4
	sbc	r3, r3, r5
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #9
	orr	r1, r1, r2, lsr #23
	lsl	r0, r2, #9
	mov	r2, r0
	mov	r3, r1
	adds	r2, r2, r4
	adc	r3, r3, r5
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #6
	orr	r1, r1, r2, lsr #26
	lsl	r0, r2, #6
	subs	r0, r0, r2
	sbc	r1, r1, r3
	adds	r6, r0, r4
	adc	r7, r1, r5
	ldr	r3, [fp, #-36]
	mov	r2, r3
	asr	r3, r2, #31
	adds	r8, r6, r2
	adc	r9, r7, r3
	mov	r2, r8
	mov	r3, r9
	ldr	r1, .L4386
	ldr	r0, [r1]
	ldr	r1, [fp, #-32]
	eors	r0, r1, r0
	mov	r1, #0
	beq	.L4385
	bl	__stack_chk_fail
.L4385:
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
.L4387:
	.align	2
.L4386:
	.word	.LC420
	.size	getclock_us, .-getclock_us
	.section	.rodata
	.align	2
.LC421:
	.ascii	"tcc version 0.9.23 - Tiny C Compiler - Copyright (C"
	.ascii	") 2001-2013 Fabrice Bellard\012usage: tcc [-v] [-c]"
	.ascii	" [-o outfile] [-Bdir] [-bench] [-Idir] [-Dsym[=val]"
	.ascii	"] [-Usym]\012           [-Wwarn] [-g] [-b] [-bt N] "
	.ascii	"[-Ldir] [-llib] [-shared] [-static]\012           ["
	.ascii	"infile1 infile2...] [-run infile args...]\012\012Ge"
	.ascii	"neral options:\012  -v          display current ver"
	.ascii	"sion\012  -c          compile only - generate an ob"
	.ascii	"ject file\012  -o outfile  set output filename\012 "
	.ascii	" -Bdir       set tcc internal library path\012  -be"
	.ascii	"nch      output compilation statistics\012  -run   "
	.ascii	"     run compiled source\012  -fflag      set or re"
	.ascii	"set (with 'no-' prefix) 'flag' (see man page)\012  "
	.ascii	"-Wwarning   set or reset (with 'no-' prefix) 'warni"
	.ascii	"ng' (see man page)\012  -w          disable all war"
	.ascii	"nings\012Preprocessor options:\012  -Idir       add"
	.ascii	" include path 'dir'\012  -Dsym[=val] define 'sym' w"
	.ascii	"ith value 'val'\012  -Usym       undefine 'sym'\012"
	.ascii	"Linker options:\012  -Ldir       add library path '"
	.ascii	"dir'\012  -llib       link with dynamic or static l"
	.ascii	"ibrary 'lib'\012  -shared     generate a shared lib"
	.ascii	"rary\012  -static     static linking\012  -rdynamic"
	.ascii	"   export all global symbols to dynamic linker\012 "
	.ascii	" -r          relocatable output\012Debugger options"
	.ascii	":\012  -g          generate runtime debug info\012 "
	.ascii	" -b          compile with built-in memory and bound"
	.ascii	"s checker (implies -g)\012  -bt N       show N call"
	.ascii	"ers in stack traces\000"
	.text
	.align	2
	.global	help
	.syntax unified
	.arm
	.fpu softvfp
	.type	help, %function
help:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r0, .L4389
	bl	puts
	nop
	pop	{fp, pc}
.L4390:
	.align	2
.L4389:
	.word	.LC421
	.size	help, .-help
	.section	.rodata
	.align	2
.LC422:
	.ascii	"h\000"
	.align	2
.LC423:
	.ascii	"?\000"
	.align	2
.LC424:
	.ascii	"I\000"
	.align	2
.LC425:
	.ascii	"D\000"
	.align	2
.LC426:
	.ascii	"U\000"
	.align	2
.LC427:
	.ascii	"L\000"
	.align	2
.LC428:
	.ascii	"B\000"
	.align	2
.LC429:
	.ascii	"l\000"
	.align	2
.LC430:
	.ascii	"bench\000"
	.align	2
.LC431:
	.ascii	"bt\000"
	.align	2
.LC432:
	.ascii	"b\000"
	.align	2
.LC433:
	.ascii	"g\000"
	.align	2
.LC434:
	.ascii	"static\000"
	.align	2
.LC435:
	.ascii	"shared\000"
	.align	2
.LC436:
	.ascii	"o\000"
	.align	2
.LC437:
	.ascii	"run\000"
	.align	2
.LC438:
	.ascii	"rdynamic\000"
	.align	2
.LC439:
	.ascii	"r\000"
	.align	2
.LC440:
	.ascii	"Wl,\000"
	.align	2
.LC441:
	.ascii	"W\000"
	.align	2
.LC442:
	.ascii	"O\000"
	.align	2
.LC443:
	.ascii	"m\000"
	.align	2
.LC444:
	.ascii	"f\000"
	.align	2
.LC445:
	.ascii	"nostdinc\000"
	.align	2
.LC446:
	.ascii	"nostdlib\000"
	.align	2
.LC447:
	.ascii	"print-search-dirs\000"
	.align	2
.LC448:
	.ascii	"v\000"
	.align	2
.LC449:
	.ascii	"w\000"
	.align	2
.LC450:
	.ascii	"pipe\000"
	.align	2
	.type	tcc_options, %object
	.size	tcc_options, 248
tcc_options:
	.word	.LC422
	.short	0
	.short	0
	.word	.LC423
	.short	0
	.short	0
	.word	.LC424
	.short	1
	.short	1
	.word	.LC425
	.short	2
	.short	1
	.word	.LC426
	.short	3
	.short	1
	.word	.LC427
	.short	4
	.short	1
	.word	.LC428
	.short	5
	.short	1
	.word	.LC429
	.short	6
	.short	3
	.word	.LC430
	.short	7
	.short	0
	.word	.LC431
	.short	8
	.short	1
	.word	.LC432
	.short	9
	.short	0
	.word	.LC433
	.short	10
	.short	3
	.word	.LC301
	.short	11
	.short	0
	.word	.LC434
	.short	12
	.short	0
	.word	.LC435
	.short	13
	.short	0
	.word	.LC436
	.short	14
	.short	1
	.word	.LC437
	.short	25
	.short	3
	.word	.LC438
	.short	24
	.short	0
	.word	.LC439
	.short	15
	.short	0
	.word	.LC440
	.short	16
	.short	3
	.word	.LC441
	.short	17
	.short	3
	.word	.LC442
	.short	18
	.short	3
	.word	.LC443
	.short	19
	.short	1
	.word	.LC444
	.short	20
	.short	3
	.word	.LC445
	.short	21
	.short	0
	.word	.LC446
	.short	22
	.short	0
	.word	.LC447
	.short	23
	.short	0
	.word	.LC448
	.short	26
	.short	0
	.word	.LC449
	.short	27
	.short	0
	.word	.LC450
	.short	28
	.short	0
	.word	0
	.space	4
	.align	2
.LC451:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	expand_args, %function
expand_args:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	ldr	r3, .L4404
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L4392
.L4393:
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L4392:
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	is_space
	mov	r3, r0
	cmp	r3, #0
	bne	.L4393
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L4403
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-20]
	b	.L4396
.L4398:
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L4396:
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L4397
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	is_space
	mov	r3, r0
	cmp	r3, #0
	beq	.L4398
.L4397:
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-20]
	sub	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	mov	r0, r3
	bl	tcc_malloc
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-16]
	mov	r2, r3
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-12]
	bl	memcpy
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	sub	r1, fp, #24
	sub	r3, fp, #28
	ldr	r2, [fp, #-12]
	mov	r0, r3
	bl	dynarray_add
	b	.L4392
.L4403:
	nop
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-32]
	str	r2, [r3]
	ldr	r3, [fp, #-24]
	ldr	r2, .L4404
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L4401
	bl	__stack_chk_fail
.L4401:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L4405:
	.align	2
.L4404:
	.word	.LC451
	.size	expand_args, .-expand_args
	.local	files
	.comm	files,4,4
	.local	nb_files
	.comm	nb_files,4,4
	.local	nb_libraries
	.comm	nb_libraries,4,4
	.local	multiple_files
	.comm	multiple_files,4,4
	.local	print_search_dirs
	.comm	print_search_dirs,4,4
	.local	output_type
	.comm	output_type,4,4
	.local	reloc_output
	.comm	reloc_output,4,4
	.local	outfile
	.comm	outfile,4,4
	.section	.rodata
	.align	2
.LC452:
	.ascii	"invalid option -- '%s'\000"
	.align	2
.LC453:
	.ascii	"argument to '%s' is missing\000"
	.align	2
.LC454:
	.ascii	"too many include paths\000"
	.align	2
.LC455:
	.ascii	"0.9.23\000"
	.align	2
.LC456:
	.ascii	"tcc version %s\012\000"
	.align	2
.LC457:
	.ascii	"-Ttext,\000"
	.align	2
.LC458:
	.ascii	"--oformat,\000"
	.align	2
.LC459:
	.ascii	"elf32-\000"
	.align	2
.LC460:
	.ascii	"binary\000"
	.align	2
.LC461:
	.ascii	"target %s not found\000"
	.align	2
.LC462:
	.ascii	"unsupported linker option '%s'\000"
	.align	2
.LC463:
	.ascii	"unsupported option '%s'\000"
	.align	2
.LC464:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	parse_args
	.syntax unified
	.arm
	.fpu softvfp
	.type	parse_args, %function
parse_args:
	@ args = 0, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #64
	str	r0, [fp, #-56]
	str	r1, [fp, #-60]
	str	r2, [fp, #-64]
	ldr	r3, .L4477
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-44]
.L4465:
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-60]
	cmp	r2, r3
	blt	.L4407
	ldr	r3, .L4477+4
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L4408
	ldr	r3, .L4477+8
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L4408
	b	.L4409
.L4407:
	ldr	r3, [fp, #-44]
	add	r2, r3, #1
	str	r2, [fp, #-44]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-64]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #45
	beq	.L4410
	ldr	r2, [fp, #-20]
	ldr	r1, .L4477+4
	ldr	r0, .L4477+12
	bl	dynarray_add
	ldr	r3, .L4477+16
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L4465
	ldr	r3, [fp, #-44]
	sub	r3, r3, #1
	str	r3, [fp, #-44]
	b	.L4408
.L4410:
	ldr	r3, .L4477+20
	str	r3, [fp, #-40]
.L4418:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	bne	.L4412
	ldr	r1, [fp, #-20]
	ldr	r0, .L4477+24
	bl	error
.L4412:
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L4417:
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L4470
	ldr	r3, [fp, #-28]
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r2, r3
	bne	.L4471
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
	b	.L4417
.L4471:
	nop
	ldr	r3, [fp, #-40]
	add	r3, r3, #8
	str	r3, [fp, #-40]
	b	.L4418
.L4470:
	nop
.L4414:
	ldr	r3, [fp, #-40]
	ldrh	r3, [r3, #6]
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L4419
	ldr	r3, [fp, #-28]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L4420
	ldr	r3, [fp, #-40]
	ldrh	r3, [r3, #6]
	and	r3, r3, #2
	cmp	r3, #0
	beq	.L4421
.L4420:
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-36]
	b	.L4424
.L4421:
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-60]
	cmp	r2, r3
	blt	.L4423
	ldr	r1, [fp, #-20]
	ldr	r0, .L4477+28
	bl	error
.L4423:
	ldr	r3, [fp, #-44]
	add	r2, r3, #1
	str	r2, [fp, #-44]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-64]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-36]
	b	.L4424
.L4419:
	ldr	r3, [fp, #-28]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L4472
	mov	r3, #0
	str	r3, [fp, #-36]
.L4424:
	ldr	r3, [fp, #-40]
	ldrh	r3, [r3, #4]
	cmp	r3, #27
	ldrls	pc, [pc, r3, asl #2]
	b	.L4426
.L4428:
	.word	.L4409
	.word	.L4452
	.word	.L4451
	.word	.L4450
	.word	.L4449
	.word	.L4448
	.word	.L4447
	.word	.L4446
	.word	.L4445
	.word	.L4444
	.word	.L4443
	.word	.L4442
	.word	.L4441
	.word	.L4440
	.word	.L4439
	.word	.L4438
	.word	.L4437
	.word	.L4436
	.word	.L4426
	.word	.L4426
	.word	.L4435
	.word	.L4434
	.word	.L4433
	.word	.L4432
	.word	.L4431
	.word	.L4430
	.word	.L4429
	.word	.L4427
.L4472:
	nop
.L4409:
	bl	help
	mov	r0, #1
	bl	exit
.L4452:
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-56]
	bl	tcc_add_include_path
	mov	r3, r0
	cmp	r3, #0
	bge	.L4473
	ldr	r0, .L4477+32
	bl	error
	b	.L4473
.L4451:
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-12]
	mov	r1, #61
	ldr	r0, [fp, #-12]
	bl	strchr
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L4454
	ldr	r3, [fp, #-24]
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L4454:
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-56]
	bl	tcc_define_symbol
	b	.L4411
.L4450:
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-56]
	bl	tcc_undefine_symbol
	b	.L4411
.L4449:
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-56]
	bl	tcc_add_library_path
	b	.L4411
.L4448:
	ldr	r2, .L4477+36
	ldr	r3, [fp, #-36]
	str	r3, [r2]
	b	.L4411
.L4447:
	ldr	r2, [fp, #-20]
	ldr	r1, .L4477+4
	ldr	r0, .L4477+12
	bl	dynarray_add
	ldr	r3, .L4477+40
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L4477+40
	str	r3, [r2]
	b	.L4411
.L4446:
	ldr	r3, .L4477+44
	mov	r2, #1
	str	r2, [r3]
	b	.L4411
.L4445:
	ldr	r0, [fp, #-36]
	bl	atoi
	mov	r3, r0
	ldr	r2, .L4477+48
	str	r3, [r2]
	b	.L4411
.L4444:
	ldr	r3, .L4477+52
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, .L4477+56
	mov	r2, #1
	str	r2, [r3]
	b	.L4411
.L4443:
	ldr	r3, .L4477+56
	mov	r2, #1
	str	r2, [r3]
	b	.L4411
.L4442:
	ldr	r3, .L4477+16
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, .L4477+60
	mov	r2, #3
	str	r2, [r3]
	b	.L4411
.L4441:
	ldr	r3, [fp, #-56]
	mov	r2, #1
	str	r2, [r3, #100]
	b	.L4411
.L4440:
	ldr	r3, .L4477+60
	mov	r2, #2
	str	r2, [r3]
	b	.L4411
.L4439:
	ldr	r3, .L4477+16
	mov	r2, #1
	str	r2, [r3]
	ldr	r2, .L4477+64
	ldr	r3, [fp, #-36]
	str	r3, [r2]
	b	.L4411
.L4438:
	ldr	r3, .L4477+68
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, .L4477+60
	mov	r2, #3
	str	r2, [r3]
	b	.L4411
.L4434:
	ldr	r3, [fp, #-56]
	mov	r2, #1
	str	r2, [r3, #88]
	b	.L4411
.L4433:
	ldr	r3, [fp, #-56]
	mov	r2, #1
	str	r2, [r3, #92]
	b	.L4411
.L4432:
	ldr	r3, .L4477+8
	mov	r2, #1
	str	r2, [r3]
	b	.L4411
.L4430:
	sub	r3, fp, #48
	ldr	r1, [fp, #-36]
	mov	r0, r3
	bl	expand_args
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	ble	.L4455
	ldr	r3, [fp, #-48]
	mov	r2, r3
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-56]
	bl	parse_args
.L4455:
	ldr	r3, .L4477+16
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L4477+60
	mov	r2, #0
	str	r2, [r3]
	b	.L4411
.L4429:
	ldr	r1, .L4477+72
	ldr	r0, .L4477+76
	bl	printf
	mov	r0, #0
	bl	exit
.L4435:
	mov	r2, #1
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-56]
	bl	tcc_set_flag
	mov	r3, r0
	cmp	r3, #0
	bge	.L4474
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #136]
	cmp	r3, #0
	beq	.L4474
	b	.L4457
.L4436:
	mov	r2, #1
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-56]
	bl	tcc_set_warning
	mov	r3, r0
	cmp	r3, #0
	bge	.L4475
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #136]
	cmp	r3, #0
	beq	.L4475
	b	.L4457
.L4427:
	ldr	r3, [fp, #-56]
	mov	r2, #1
	str	r2, [r3, #144]
	b	.L4411
.L4431:
	ldr	r3, [fp, #-56]
	mov	r2, #1
	str	r2, [r3, #104]
	b	.L4411
.L4437:
	sub	r3, fp, #48
	mov	r2, r3
	ldr	r1, .L4477+80
	ldr	r0, [fp, #-36]
	bl	strstart
	mov	r3, r0
	cmp	r3, #0
	beq	.L4459
	ldr	r3, [fp, #-48]
	mov	r2, #16
	mov	r1, #0
	mov	r0, r3
	bl	strtoul
	mov	r2, r0
	ldr	r3, [fp, #-56]
	str	r2, [r3, #112]
	ldr	r3, [fp, #-56]
	mov	r2, #1
	str	r2, [r3, #116]
	b	.L4411
.L4459:
	sub	r3, fp, #48
	mov	r2, r3
	ldr	r1, .L4477+84
	ldr	r0, [fp, #-36]
	bl	strstart
	mov	r3, r0
	cmp	r3, #0
	beq	.L4461
	ldr	r3, [fp, #-48]
	mov	r2, #0
	ldr	r1, .L4477+88
	mov	r0, r3
	bl	strstart
	mov	r3, r0
	cmp	r3, #0
	beq	.L4462
	ldr	r3, [fp, #-56]
	mov	r2, #0
	str	r2, [r3, #120]
	b	.L4411
.L4462:
	ldr	r3, [fp, #-48]
	ldr	r1, .L4477+92
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L4463
	ldr	r3, [fp, #-56]
	mov	r2, #1
	str	r2, [r3, #120]
	b	.L4411
.L4463:
	ldr	r3, [fp, #-48]
	mov	r1, r3
	ldr	r0, .L4477+96
	bl	error
	b	.L4411
.L4461:
	ldr	r1, [fp, #-36]
	ldr	r0, .L4477+100
	bl	error
	b	.L4411
.L4426:
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #136]
	cmp	r3, #0
	beq	.L4476
	nop
.L4457:
	ldr	r1, [fp, #-20]
	ldr	r0, .L4477+104
	bl	warning
	b	.L4476
.L4473:
	nop
	b	.L4465
.L4474:
	nop
	b	.L4465
.L4475:
	nop
	b	.L4465
.L4476:
	nop
.L4411:
	b	.L4465
.L4408:
	ldr	r3, [fp, #-44]
	ldr	r2, .L4477
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L4467
	bl	__stack_chk_fail
.L4467:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L4478:
	.align	2
.L4477:
	.word	.LC464
	.word	nb_files
	.word	print_search_dirs
	.word	files
	.word	multiple_files
	.word	tcc_options
	.word	.LC452
	.word	.LC453
	.word	.LC454
	.word	tcc_lib_path
	.word	nb_libraries
	.word	do_bench
	.word	num_callers
	.word	do_bounds_check
	.word	do_debug
	.word	output_type
	.word	outfile
	.word	reloc_output
	.word	.LC455
	.word	.LC456
	.word	.LC457
	.word	.LC458
	.word	.LC459
	.word	.LC460
	.word	.LC461
	.word	.LC462
	.word	.LC463
	.size	parse_args, .-parse_args
	.section	.rodata
	.align	2
.LC465:
	.ascii	"install: %s/\012\000"
	.align	2
.LC466:
	.ascii	"cannot specify multiple files with -c\000"
	.align	2
.LC467:
	.ascii	"cannot specify libraries with -c\000"
	.align	2
.LC468:
	.ascii	"a.out\000"
	.align	2
.LC469:
	.ascii	"cannot find %s\000"
	.global	__aeabi_l2d
	.global	__aeabi_dcmplt
	.align	2
.LC470:
	.ascii	"%d idents, %d lines, %d bytes, %0.3f s, %d lines/s,"
	.ascii	" %0.1f MB/s\012\000"
	.align	2
.LC471:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	main2
	.syntax unified
	.arm
	.fpu softvfp
	.type	main2, %function
main2:
	@ args = 0, pretend = 0, frame = 1088
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	sub	sp, sp, #1104
	sub	sp, sp, #8
	str	r0, [fp, #-1104]
	str	r1, [fp, #-1108]
	ldr	r3, .L4506
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-1068]
	str	r3, [fp, #-1064]
	bl	tcc_new
	str	r0, [fp, #-1088]
	ldr	r3, .L4506+4
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, .L4506+8
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L4506+12
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, .L4506+16
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L4506+20
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L4506+24
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L4506+28
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L4506+32
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-1104]
	sub	r1, r3, #1
	ldr	r3, [fp, #-1108]
	add	r3, r3, #4
	mov	r2, r3
	ldr	r0, [fp, #-1088]
	bl	parse_args
	mov	r3, r0
	add	r3, r3, #1
	str	r3, [fp, #-1084]
	ldr	r3, .L4506+32
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L4480
	ldr	r3, .L4506+36
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L4506+40
	bl	printf
	mov	r3, #0
	b	.L4501
.L4480:
	ldr	r3, .L4506+20
	ldr	r2, [r3]
	ldr	r3, .L4506+24
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-1080]
	ldr	r3, .L4506+8
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L4482
	ldr	r3, .L4506+4
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L4482
	ldr	r3, .L4506+4
	mov	r2, #1
	str	r2, [r3]
.L4482:
	ldr	r3, .L4506+4
	ldr	r3, [r3]
	cmp	r3, #3
	bne	.L4483
	ldr	r3, .L4506+28
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L4483
	ldr	r3, [fp, #-1080]
	cmp	r3, #1
	beq	.L4484
	ldr	r0, .L4506+44
	bl	error
.L4484:
	ldr	r3, .L4506+24
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L4483
	ldr	r0, .L4506+48
	bl	error
.L4483:
	ldr	r3, .L4506+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L4485
	ldr	r3, .L4506+8
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L4485
	ldr	r3, .L4506+16
	ldr	r3, [r3]
	ldr	r3, [r3]
	mov	r0, r3
	bl	tcc_basename
	mov	r2, r0
	sub	r3, fp, #1040
	sub	r3, r3, #4
	sub	r3, r3, #4
	ldr	r1, .L4506+52
	mov	r0, r3
	bl	pstrcpy
	ldr	r3, .L4506+4
	ldr	r3, [r3]
	cmp	r3, #3
	bne	.L4504
	ldr	r3, .L4506+28
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L4504
	sub	r3, fp, #1040
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r1, #46
	mov	r0, r3
	bl	strrchr
	str	r0, [fp, #-1076]
	ldr	r3, [fp, #-1076]
	cmp	r3, #0
	beq	.L4505
	ldr	r3, [fp, #-1076]
	add	r3, r3, #1
	ldr	r2, .L4506+56
	mov	r0, r3
	mov	r1, r2
	mov	r3, #2
	mov	r2, r3
	bl	memcpy
	b	.L4488
.L4504:
	nop
	b	.L4486
.L4505:
	nop
.L4486:
	sub	r3, fp, #1040
	sub	r3, r3, #4
	sub	r3, r3, #4
	ldr	r2, .L4506+60
	mov	r1, #1024
	mov	r0, r3
	bl	pstrcpy
.L4488:
	ldr	r2, .L4506+8
	sub	r3, fp, #1040
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [r2]
.L4485:
	ldr	r3, .L4506+64
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L4489
	bl	getclock_us
	str	r0, [fp, #-1068]
	str	r1, [fp, #-1064]
.L4489:
	ldr	r3, .L4506+4
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-1088]
	bl	tcc_set_output_type
	mov	r3, #0
	str	r3, [fp, #-1096]
	b	.L4490
.L4494:
	ldr	r3, .L4506+16
	ldr	r2, [r3]
	ldr	r3, [fp, #-1096]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-1072]
	ldr	r3, [fp, #-1072]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #45
	bne	.L4491
	ldr	r3, [fp, #-1072]
	add	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-1088]
	bl	tcc_add_library
	mov	r3, r0
	cmp	r3, #0
	bge	.L4492
	ldr	r1, [fp, #-1072]
	ldr	r0, .L4506+68
	bl	error
	b	.L4492
.L4491:
	ldr	r1, [fp, #-1072]
	ldr	r0, [fp, #-1088]
	bl	tcc_add_file
	mov	r3, r0
	cmp	r3, #0
	bge	.L4492
	mov	r3, #1
	str	r3, [fp, #-1092]
	b	.L4493
.L4492:
	ldr	r3, [fp, #-1096]
	add	r3, r3, #1
	str	r3, [fp, #-1096]
.L4490:
	ldr	r3, .L4506+20
	ldr	r3, [r3]
	ldr	r2, [fp, #-1096]
	cmp	r2, r3
	blt	.L4494
	ldr	r3, .L4506+16
	ldr	r3, [r3]
	mov	r0, r3
	bl	tcc_free
	ldr	r3, .L4506+64
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L4495
	bl	getclock_us
	ldr	r2, [fp, #-1068]
	ldr	r3, [fp, #-1064]
	subs	r4, r0, r2
	sbc	r5, r1, r3
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_l2d
	mov	r2, #0
	ldr	r3, .L4506+72
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-1060]
	str	r3, [fp, #-1056]
	ldr	r2, .L4506+76
	ldr	r3, .L4506+80
	ldr	r0, [fp, #-1060]
	ldr	r1, [fp, #-1056]
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L4496
	ldr	r2, .L4506+76
	ldr	r3, .L4506+80
	str	r2, [fp, #-1060]
	str	r3, [fp, #-1056]
.L4496:
	ldr	r3, .L4506+84
	ldr	r3, [r3]
	cmp	r3, #0
	bgt	.L4498
	ldr	r3, .L4506+84
	mov	r2, #1
	str	r2, [r3]
.L4498:
	ldr	r3, .L4506+88
	ldr	r3, [r3]
	sub	r4, r3, #256
	ldr	r3, .L4506+92
	ldr	r5, [r3]
	ldr	r3, .L4506+84
	ldr	r6, [r3]
	ldr	r3, .L4506+92
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2d
	ldr	r2, [fp, #-1060]
	ldr	r3, [fp, #-1056]
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r7, r0
	ldr	r3, .L4506+84
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2d
	ldr	r2, [fp, #-1060]
	ldr	r3, [fp, #-1056]
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L4506+72
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [sp, #16]
	str	r3, [sp, #20]
	str	r7, [sp, #8]
	ldr	r2, [fp, #-1060]
	ldr	r3, [fp, #-1056]
	stm	sp, {r2-r3}
	mov	r3, r6
	mov	r2, r5
	mov	r1, r4
	ldr	r0, .L4506+96
	bl	printf
.L4495:
	ldr	r3, [fp, #-1088]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L4499
	ldr	r2, [fp, #-1104]
	ldr	r3, [fp, #-1084]
	sub	r1, r2, r3
	ldr	r3, [fp, #-1084]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-1108]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r0, [fp, #-1088]
	bl	tcc_run
	str	r0, [fp, #-1092]
	b	.L4493
.L4499:
	ldr	r3, .L4506+8
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-1088]
	bl	tcc_output_file
	mov	r3, #0
	str	r3, [fp, #-1092]
.L4493:
	ldr	r3, .L4506+100
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L4500
	ldr	r0, [fp, #-1088]
	bl	tcc_delete
.L4500:
	ldr	r3, [fp, #-1092]
.L4501:
	ldr	r2, .L4506
	ldr	r1, [r2]
	ldr	r2, [fp, #-24]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L4502
	bl	__stack_chk_fail
.L4502:
	mov	r0, r3
	sub	sp, fp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, fp, pc}
.L4507:
	.align	2
.L4506:
	.word	.LC471
	.word	output_type
	.word	outfile
	.word	multiple_files
	.word	files
	.word	nb_files
	.word	nb_libraries
	.word	reloc_output
	.word	print_search_dirs
	.word	tcc_lib_path
	.word	.LC465
	.word	.LC466
	.word	.LC467
	.word	1023
	.word	.LC436
	.word	.LC468
	.word	do_bench
	.word	.LC469
	.word	1093567616
	.word	-755914244
	.word	1062232653
	.word	total_bytes
	.word	tok_ident
	.word	total_lines
	.word	.LC470
	.word	do_bounds_check
	.size	main2, .-main2
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ 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]
	b	.L4509
.L4510:
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	main2
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L4509:
	ldr	r3, [fp, #-8]
	cmp	r3, #29
	ble	.L4510
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	main, .-main
	.global	__tcc_fpu_control
	.data
	.align	1
	.type	__tcc_fpu_control, %object
	.size	__tcc_fpu_control, 2
__tcc_fpu_control:
	.short	4991
	.global	__tcc_int_fpu_control
	.align	1
	.type	__tcc_int_fpu_control, %object
	.size	__tcc_int_fpu_control, 2
__tcc_int_fpu_control:
	.short	8063
	.section	.rodata
	.align	2
	.type	__PRETTY_FUNCTION__.11603, %object
	.size	__PRETTY_FUNCTION__.11603, 12
__PRETTY_FUNCTION__.11603:
	.ascii	"resolve_sym\000"
	.local	cstr_buf.11877
	.comm	cstr_buf.11877,16,4
	.local	buf.11876
	.comm	buf.11876,1025,4
	.data
	.align	2
	.type	reg_saved.14153, %object
	.size	reg_saved.14153, 3
reg_saved.14153:
	.ascii	"\003\006\007"
	.section	.rodata
	.align	2
	.type	__PRETTY_FUNCTION__.15317, %object
	.size	__PRETTY_FUNCTION__.15317, 22
__PRETTY_FUNCTION__.15317:
	.ascii	"tcc_add_file_internal\000"
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
