

:strlen
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# int i = 0; 
	mov____$i32,%eax %0x0
	mov____%eax,0x8(%ebp) !0x-4
					# while (s[i]) ...
	jmp32  %_strlen_4_continue
:_strlen_4_loop
	mov____0x8(%ebp),%eax !0x-4
	mov____%ebp,%ebx
	add____$i8,%ebx !0x-4
	add____$i8,(%ebx) !0x1
	test___%eax,%eax
:_strlen_4_continue
	mov____0x8(%ebp),%eax !0x-4
	mov____0x8(%ebp),%ebx !0x8
	add____%ebx,%eax
	movzbl_(%eax),%eax
	movsbl_%al,%eax
					# jmp test LABEL
	test___%eax,%eax
	test___%al,%al
	je32   %_strlen_4_break
	jmp32  %_strlen_4_loop
:_strlen_4_break
	mov____0x8(%ebp),%eax !0x-4
	leave
	ret


:eputs
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# int i = strlen(s); 
					# strlen(s)
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %strlen
	add____$i8,%esp !0x4
	mov____%eax,0x8(%ebp) !0x-4
					# write(g_stderr, s, i)
	mov____0x8(%ebp),%ebx !0x-4
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	mov____0x32,%ebx &g_stderr
	push___%ebx
	call32 %write
	add____$i8,%esp !0xc
	test___%eax,%eax
	mov____$i32,%eax %0x0
	leave
	ret


:oputs
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# int i = strlen(s); 
					# strlen(s)
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %strlen
	add____$i8,%esp !0x4
	mov____%eax,0x8(%ebp) !0x-4
					# write(g_stdout, s, i)
	mov____0x8(%ebp),%ebx !0x-4
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	mov____0x32,%ebx &g_stdout
	push___%ebx
	call32 %write
	add____$i8,%esp !0xc
	test___%eax,%eax
	mov____$i32,%eax %0x0
	leave
	ret


:puts
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# oputs(s)
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %oputs
	add____$i8,%esp !0x4
	test___%eax,%eax
					# oputs(" ")
	push___$i32 &_string_lib/libc.x86-mes-S_0
	call32 %oputs
	add____$i8,%esp !0x4
	leave
	ret


:_exit
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
	mov____$i32,%eax SYS_exit
	mov____0x8(%ebp),%ebx !8
	int____$0x80
	leave
	ret


:_write
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
	mov____$i32,%eax SYS_write
	mov____0x8(%ebp),%ebx !8
	mov____0x8(%ebp),%ecx !12
	mov____0x8(%ebp),%edx !16
	int____$0x80
	leave
	ret


:write
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# int r = _write(filedes, buffer, size); 
					# _write(filedes, buffer, size)
	mov____0x8(%ebp),%ebx !0x10
	push___%ebx
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %_write
	add____$i8,%esp !0xc
	mov____%eax,0x8(%ebp) !0x-4
					# if (r < 0) ...else ...
	mov____0x8(%ebp),%eax !0x-4
	mov____$i32,%ebx %0x0
	sub____%ebx,%eax
	setl___%al
	movzbl_%al,%eax
	test___%eax,%eax
					# jmp test LABEL
	je32   %_write_11_else
					# errno = -r
	mov____0x8(%ebp),%eax !0x-4
	mov____$i32,%ebx %0x0
	xchg___%eax,%ebx
	sub____%ebx,%eax
	mov____%eax,0x32 &errno
	test___%eax,%eax
					# r = -1
	mov____$i32,%eax %0x-1
	mov____%eax,0x8(%ebp) !0x-4
	test___%eax,%eax
	jmp32  %_write_11_break
:_write_11_else
					# errno = 0
	mov____$i32,%eax %0x0
	mov____%eax,0x32 &errno
	test___%eax,%eax
:_write_11_break
	mov____0x8(%ebp),%eax !0x-4
	leave
	ret


:exit
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# if (__call_at_exit) ...
	mov____0x32,%eax &__call_at_exit
					# jmp test LABEL
	test___%eax,%eax
	je32   %_exit_1_break
					# (*__call_at_exit)()
	mov____0x32,%eax &__call_at_exit
	call___*%eax
	add____$i8,%esp !0x0
	test___%eax,%eax
	jmp32  %_exit_1_break
:_exit_1_break
					# _exit(code)
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %_exit
	add____$i8,%esp !0x4
	test___%eax,%eax
	leave
	ret


:isdigit
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
	mov____0x8(%ebp),%eax !0x8
	mov____$i32,%ebx %0x30
	sub____%ebx,%eax
	setge__%al
	movzbl_%al,%eax
	test___%eax,%eax
	test___%eax,%eax
	je32   %_isdigit_6_and_skip_b
	test___%eax,%eax
	mov____0x8(%ebp),%eax !0x8
	mov____$i32,%ebx %0x39
	sub____%ebx,%eax
	setle__%al
	movzbl_%al,%eax
	test___%eax,%eax
	test___%eax,%eax
:_isdigit_6_and_skip_b
	leave
	ret


:isxdigit
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# isdigit(c)
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %isdigit
	add____$i8,%esp !0x4
	test___%eax,%eax
	jne32  %_isxdigit_5_or_skip_b
	test___%eax,%eax
	mov____0x8(%ebp),%eax !0x8
	mov____$i32,%ebx %0x61
	sub____%ebx,%eax
	setge__%al
	movzbl_%al,%eax
	test___%eax,%eax
	test___%eax,%eax
	je32   %_isxdigit_13_and_skip_b
	test___%eax,%eax
	mov____0x8(%ebp),%eax !0x8
	mov____$i32,%ebx %0x66
	sub____%ebx,%eax
	setle__%al
	movzbl_%al,%eax
	test___%eax,%eax
	test___%eax,%eax
:_isxdigit_13_and_skip_b
	test___%eax,%eax
:_isxdigit_5_or_skip_b
	leave
	ret


:isspace
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
	mov____0x8(%ebp),%eax !0x8
	mov____$i32,%ebx %0x9
	sub____%ebx,%eax
	sete___%al
	movzbl_%al,%eax
	test___%eax,%eax
	jne32  %_isspace_5_or_skip_b
	test___%eax,%eax
	mov____0x8(%ebp),%eax !0x8
	mov____$i32,%ebx %0xa
	sub____%ebx,%eax
	sete___%al
	movzbl_%al,%eax
	test___%eax,%eax
:_isspace_5_or_skip_b
	test___%eax,%eax
	jne32  %_isspace_14_or_skip_b
	test___%eax,%eax
	mov____0x8(%ebp),%eax !0x8
	mov____$i32,%ebx %0xb
	sub____%ebx,%eax
	sete___%al
	movzbl_%al,%eax
	test___%eax,%eax
:_isspace_14_or_skip_b
	test___%eax,%eax
	jne32  %_isspace_23_or_skip_b
	test___%eax,%eax
	mov____0x8(%ebp),%eax !0x8
	mov____$i32,%ebx %0xc
	sub____%ebx,%eax
	sete___%al
	movzbl_%al,%eax
	test___%eax,%eax
:_isspace_23_or_skip_b
	test___%eax,%eax
	jne32  %_isspace_32_or_skip_b
	test___%eax,%eax
	mov____0x8(%ebp),%eax !0x8
	mov____$i32,%ebx %0xd
	sub____%ebx,%eax
	sete___%al
	movzbl_%al,%eax
	test___%eax,%eax
:_isspace_32_or_skip_b
	test___%eax,%eax
	jne32  %_isspace_41_or_skip_b
	test___%eax,%eax
	mov____0x8(%ebp),%eax !0x8
	mov____$i32,%ebx %0x20
	sub____%ebx,%eax
	sete___%al
	movzbl_%al,%eax
	test___%eax,%eax
:_isspace_41_or_skip_b
	leave
	ret


:isnumber
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# if (base == 2) ...
	mov____0x8(%ebp),%eax !0xc
	mov____$i32,%ebx %0x2
	sub____%ebx,%eax
	sete___%al
	movzbl_%al,%eax
					# jmp test LABEL
	jne32  %_isnumber_1_break
	mov____0x8(%ebp),%eax !0x8
	mov____$i32,%ebx %0x30
	sub____%ebx,%eax
	setge__%al
	movzbl_%al,%eax
	test___%eax,%eax
	test___%eax,%eax
	je32   %_isnumber_13_and_skip_b
	test___%eax,%eax
	mov____0x8(%ebp),%eax !0x8
	mov____$i32,%ebx %0x31
	sub____%ebx,%eax
	setle__%al
	movzbl_%al,%eax
	test___%eax,%eax
	test___%eax,%eax
:_isnumber_13_and_skip_b
	leave
	ret
	jmp32  %_isnumber_1_break
:_isnumber_1_break
					# if (base == 8) ...
	mov____0x8(%ebp),%eax !0xc
	mov____$i32,%ebx %0x8
	sub____%ebx,%eax
	sete___%al
	movzbl_%al,%eax
					# jmp test LABEL
	jne32  %_isnumber_26_break
	mov____0x8(%ebp),%eax !0x8
	mov____$i32,%ebx %0x30
	sub____%ebx,%eax
	setge__%al
	movzbl_%al,%eax
	test___%eax,%eax
	test___%eax,%eax
	je32   %_isnumber_38_and_skip_b
	test___%eax,%eax
	mov____0x8(%ebp),%eax !0x8
	mov____$i32,%ebx %0x37
	sub____%ebx,%eax
	setle__%al
	movzbl_%al,%eax
	test___%eax,%eax
	test___%eax,%eax
:_isnumber_38_and_skip_b
	leave
	ret
	jmp32  %_isnumber_26_break
:_isnumber_26_break
					# if (base == 10) ...
	mov____0x8(%ebp),%eax !0xc
	mov____$i32,%ebx %0xa
	sub____%ebx,%eax
	sete___%al
	movzbl_%al,%eax
					# jmp test LABEL
	jne32  %_isnumber_51_break
					# isdigit(c)
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %isdigit
	add____$i8,%esp !0x4
	leave
	ret
	jmp32  %_isnumber_51_break
:_isnumber_51_break
					# if (base == 16) ...
	mov____0x8(%ebp),%eax !0xc
	mov____$i32,%ebx %0x10
	sub____%ebx,%eax
	sete___%al
	movzbl_%al,%eax
					# jmp test LABEL
	jne32  %_isnumber_65_break
					# isxdigit(c)
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %isxdigit
	add____$i8,%esp !0x4
	leave
	ret
	jmp32  %_isnumber_65_break
:_isnumber_65_break
	leave
	ret


:abtol
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# char *s = *p; 
	mov____0x8(%ebp),%eax !0x8
	mov____(%eax),%eax
	mov____%eax,0x8(%ebp) !0x-4
					# int i = 0; 
	mov____$i32,%eax %0x0
	mov____%eax,0x8(%ebp) !0x-8
					# int sign = 1; 
	mov____$i32,%eax %0x1
	mov____%eax,0x8(%ebp) !0x-c
					# if (!base) ...
	mov____0x8(%ebp),%eax !0xc
	test___%eax,%eax
	sete___%al
	movzbl_%al,%eax
	test___%eax,%eax
					# jmp test LABEL
	je32   %_abtol_11_break
					# base = 10
	mov____$i32,%eax %0xa
	mov____%eax,0x8(%ebp) !0xc
	test___%eax,%eax
	jmp32  %_abtol_11_break
:_abtol_11_break
					# if (*s && *s == '-') ...
	mov____0x8(%ebp),%eax !0x-4
	movzbl_(%eax),%eax
	movsbl_%al,%eax
					# jmp test LABEL
	test___%eax,%eax
	test___%al,%al
	je32   %_abtol_24_break
	mov____0x8(%ebp),%eax !0x-4
	movzbl_(%eax),%eax
	movsbl_%al,%eax
	mov____$i32,%ebx %0x2d
	sub____%ebx,%eax
	sete___%al
	movzbl_%al,%eax
					# jmp test LABEL
	jne32  %_abtol_24_break
					# sign = -1
	mov____$i32,%eax %0x-1
	mov____%eax,0x8(%ebp) !0x-c
	test___%eax,%eax
	mov____0x8(%ebp),%eax !0x-4
	mov____%ebp,%ebx
	add____$i8,%ebx !0x-4
	add____$i8,(%ebx) !0x1
	test___%eax,%eax
	jmp32  %_abtol_24_break
:_abtol_24_break
					# while (isnumber(*s, base)) ...
	jmp32  %_abtol_49_continue
:_abtol_49_loop
					# i *= base
	mov____0x8(%ebp),%eax !0xc
	mov____0x8(%ebp),%ebx !0x-8
	xchg___%eax,%ebx
	mul____%ebx
	mov____%eax,0x8(%ebp) !0x-8
	test___%eax,%eax
					# int m = *s > '9'? 'a' - 10: '0'; 
					# *s > '9'? ...: ...
	mov____0x8(%ebp),%eax !0x-4
	movzbl_(%eax),%eax
	movsbl_%al,%eax
	mov____$i32,%ebx %0x39
	sub____%ebx,%eax
	setg___%al
	movzbl_%al,%eax
	test___%eax,%eax
					# jmp test LABEL
	je32   %_abtol_60_else
	mov____$i32,%eax %0x61
	add____$i8,%eax !0x-a
	jmp32  %_abtol_60_break
:_abtol_60_else
	mov____$i32,%eax %0x30
:_abtol_60_break
	mov____%eax,0x8(%ebp) !0x-10
					# i += *s - m
	mov____0x8(%ebp),%eax !0x-4
	movzbl_(%eax),%eax
	movsbl_%al,%eax
	mov____0x8(%ebp),%ebx !0x-10
	sub____%ebx,%eax
	mov____0x8(%ebp),%ebx !0x-8
	xchg___%eax,%ebx
	add____%ebx,%eax
	mov____%eax,0x8(%ebp) !0x-8
	test___%eax,%eax
	mov____0x8(%ebp),%eax !0x-4
	mov____%ebp,%ebx
	add____$i8,%ebx !0x-4
	add____$i8,(%ebx) !0x1
	test___%eax,%eax
:_abtol_49_continue
					# isnumber(*s, base)
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	mov____0x8(%ebp),%ebx !0x-4
	movzbl_(%ebx),%ebx
	movsbl_%bl,%ebx
	push___%ebx
	call32 %isnumber
	add____$i8,%esp !0x8
					# jmp test LABEL
	test___%eax,%eax
	je32   %_abtol_49_break
	jmp32  %_abtol_49_loop
:_abtol_49_break
					# *p = s
	mov____0x8(%ebp),%eax !0x-4
	mov____0x8(%ebp),%ebx !0x8
	mov____%eax,(%ebx)
	test___%eax,%eax
	mov____0x8(%ebp),%eax !0x-8
	mov____0x8(%ebp),%ebx !0x-c
	mul____%ebx
	leave
	ret


:atoi
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# char *p = s; 
	mov____0x8(%ebp),%eax !0x8
	mov____%eax,0x8(%ebp) !0x-4
					# abtol(&p, 0)
	mov____$i32,%ebx %0x0
	push___%ebx
	mov____%ebp,%ebx
	add____$i8,%ebx !0x-4
	push___%ebx
	call32 %abtol
	add____$i8,%esp !0x8
	leave
	ret


:ntoab
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# static char itoa_buf[20]; 
					# char *p = itoa_buf + 11; 
	mov____$i32,%eax &ntoab-itoa_buf
	add____$i8,%eax !0xb
	mov____%eax,0x8(%ebp) !0x-4
					# *p = 0
	mov____$i32,%eax %0x0
	mov____0x8(%ebp),%ebx !0x-4
	mov____%al,(%ebx)
	add____$i8,0x8(%ebp) !0x-4 !0x-1
	test___%eax,%eax
					# int sign = 0; 
	mov____$i32,%eax %0x0
	mov____%eax,0x8(%ebp) !0x-8
					# unsigned long u = x; 
	mov____0x8(%ebp),%eax !0x8
	mov____%eax,0x8(%ebp) !0x-c
					# if (signed_p && x < 0) ...
	mov____0x8(%ebp),%eax !0x10
					# jmp test LABEL
	test___%eax,%eax
	je32   %_ntoab_18_break
	mov____0x8(%ebp),%eax !0x8
	mov____$i32,%ebx %0x0
	sub____%ebx,%eax
	setl___%al
	movzbl_%al,%eax
	test___%eax,%eax
					# jmp test LABEL
	je32   %_ntoab_18_break
					# sign = 1
	mov____$i32,%eax %0x1
	mov____%eax,0x8(%ebp) !0x-8
	test___%eax,%eax
					# u = -x
	mov____0x8(%ebp),%eax !0x8
	mov____$i32,%ebx %0x0
	xchg___%eax,%ebx
	sub____%ebx,%eax
	mov____%eax,0x8(%ebp) !0x-c
	test___%eax,%eax
	jmp32  %_ntoab_18_break
:_ntoab_18_break
					# do uwhile (...); 
:_ntoab_43_loop
					# long i = u%base; 
	mov____0x8(%ebp),%eax !0x-c
	mov____0x8(%ebp),%ebx !0xc
	xor____%edx,%edx
	div___%ebx
	mov____%edx,%eax
	mov____%eax,0x8(%ebp) !0x-10
					# *p = i > 9? 'a' + i - 10: '0' + i
					# i > 9? ...: ...
	mov____0x8(%ebp),%eax !0x-10
	mov____$i32,%ebx %0x9
	sub____%ebx,%eax
	setg___%al
	movzbl_%al,%eax
	test___%eax,%eax
					# jmp test LABEL
	je32   %_ntoab_51_else
	mov____$i32,%eax %0x61
	mov____0x8(%ebp),%ebx !0x-10
	add____%ebx,%eax
	add____$i8,%eax !0x-a
	jmp32  %_ntoab_51_break
:_ntoab_51_else
	mov____$i32,%eax %0x30
	mov____0x8(%ebp),%ebx !0x-10
	add____%ebx,%eax
:_ntoab_51_break
	mov____0x8(%ebp),%ebx !0x-4
	mov____%al,(%ebx)
	add____$i8,0x8(%ebp) !0x-4 !0x-1
	test___%eax,%eax
					# u = u/base
	mov____0x8(%ebp),%eax !0x-c
	mov____0x8(%ebp),%ebx !0xc
	xor____%edx,%edx
	div___%ebx
	mov____%eax,0x8(%ebp) !0x-c
	test___%eax,%eax
:_ntoab_43_continue
	mov____0x8(%ebp),%eax !0x-c
					# jmp test LABEL
	test___%eax,%eax
	je32   %_ntoab_43_break
	jmp32  %_ntoab_43_loop
:_ntoab_43_break
					# if (sign && *(p + 1) != '0') ...
	mov____0x8(%ebp),%eax !0x-8
					# jmp test LABEL
	test___%eax,%eax
	je32   %_ntoab_86_break
	mov____0x8(%ebp),%eax !0x-4
	add____$i8,%eax !0x1
	movzbl_(%eax),%eax
	movsbl_%al,%eax
	mov____$i32,%ebx %0x30
	sub____%ebx,%eax
	test___%eax,%eax
	lahf
	xor____$i8,%ah !0x40
	sahf
	sete___%al
	movzbl_%al,%eax
					# jmp test LABEL
	jne32  %_ntoab_86_break
					# *p = '-'
	mov____$i32,%eax %0x2d
	mov____0x8(%ebp),%ebx !0x-4
	mov____%al,(%ebx)
	add____$i8,0x8(%ebp) !0x-4 !0x-1
	test___%eax,%eax
	jmp32  %_ntoab_86_break
:_ntoab_86_break
	mov____0x8(%ebp),%eax !0x-4
	add____$i8,%eax !0x1
	leave
	ret


:ltoab
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# ntoab(x, base, 1)
	mov____$i32,%ebx %0x1
	push___%ebx
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %ntoab
	add____$i8,%esp !0xc
	leave
	ret


:itoa
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# ntoab(x, 10, 1)
	mov____$i32,%ebx %0x1
	push___%ebx
	mov____$i32,%ebx %0xa
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %ntoab
	add____$i8,%esp !0xc
	leave
	ret


:ltoa
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# ntoab(x, 10, 1)
	mov____$i32,%ebx %0x1
	push___%ebx
	mov____$i32,%ebx %0xa
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %ntoab
	add____$i8,%esp !0xc
	leave
	ret


:ultoa
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# ntoab(x, 10, 1)
	mov____$i32,%ebx %0x1
	push___%ebx
	mov____$i32,%ebx %0xa
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %ntoab
	add____$i8,%esp !0xc
	leave
	ret


:utoa
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# ntoab(x, 10, 0)
	mov____$i32,%ebx %0x0
	push___%ebx
	mov____$i32,%ebx %0xa
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %ntoab
	add____$i8,%esp !0xc
	leave
	ret


:fdgetc
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# char c; 
					# int i; 
					# if (_ungetc_pos == -1) ...else ...
	mov____0x32,%eax &_ungetc_pos
	mov____$i32,%ebx %0x-1
	sub____%ebx,%eax
	sete___%al
	movzbl_%al,%eax
					# jmp test LABEL
	jne32  %_fdgetc_3_else
					# int r = read(fd, &c, 1); 
					# read(fd, &c, 1)
	mov____$i32,%ebx %0x1
	push___%ebx
	mov____%ebp,%ebx
	add____$i8,%ebx !0x-4
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %read
	add____$i8,%esp !0xc
	mov____%eax,0x8(%ebp) !0x-c
					# if (r < 1) ...
	mov____0x8(%ebp),%eax !0x-c
	mov____$i32,%ebx %0x1
	sub____%ebx,%eax
	setl___%al
	movzbl_%al,%eax
	test___%eax,%eax
					# jmp test LABEL
	je32   %_fdgetc_20_break
	mov____$i32,%eax %0x-1
	leave
	ret
	jmp32  %_fdgetc_20_break
:_fdgetc_20_break
					# i = c
	mov____0x8(%ebp),%eax !0x-4
	movsbl_%al,%eax
	mov____%eax,0x8(%ebp) !0x-8
	test___%eax,%eax
	jmp32  %_fdgetc_3_break
:_fdgetc_3_else
					# i = _ungetc_buf[_ungetc_pos]
	mov____0x32,%eax &_ungetc_pos
	mov____$i32,%ebx &_ungetc_buf
	add____%ebx,%eax
	movzbl_(%eax),%eax
	movsbl_%al,%eax
	mov____%eax,0x8(%ebp) !0x-8
	test___%eax,%eax
					# if (_ungetc_fd != fd && i == 10) ...else ...
	mov____0x32,%eax &_ungetc_fd
	mov____0x8(%ebp),%ebx !0x8
	sub____%ebx,%eax
	test___%eax,%eax
	lahf
	xor____$i8,%ah !0x40
	sahf
	sete___%al
	movzbl_%al,%eax
					# jmp test LABEL
	jne32  %_fdgetc_47_else
	mov____0x8(%ebp),%eax !0x-8
	mov____$i32,%ebx %0xa
	sub____%ebx,%eax
	sete___%al
	movzbl_%al,%eax
					# jmp test LABEL
	jne32  %_fdgetc_47_else
					# _ungetc_pos = -1
	mov____$i32,%eax %0x-1
	mov____%eax,0x32 &_ungetc_pos
	test___%eax,%eax
					# _ungetc_fd = -1
	mov____$i32,%eax %0x-1
	mov____%eax,0x32 &_ungetc_fd
	test___%eax,%eax
					# fdgetc(fd)
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %fdgetc
	add____$i8,%esp !0x4
	leave
	ret
	jmp32  %_fdgetc_47_break
:_fdgetc_47_else
					# if (_ungetc_fd != fd) ...
	mov____0x32,%eax &_ungetc_fd
	mov____0x8(%ebp),%ebx !0x8
	sub____%ebx,%eax
	test___%eax,%eax
	lahf
	xor____$i8,%ah !0x40
	sahf
	sete___%al
	movzbl_%al,%eax
					# jmp test LABEL
	jne32  %_fdgetc_77_break
					# eputs(" ***MES C LIB*** fdgetc ungetc conflict unget-fd=")
	push___$i32 &_string_lib/libc.x86-mes-S_1
	call32 %eputs
	add____$i8,%esp !0x4
	test___%eax,%eax
					# eputs(itoa(_ungetc_fd))
					# itoa(_ungetc_fd)
	push___%eax
	push___%eax
	mov____%ebx,%eax
	mov____0x32,%ebx &_ungetc_fd
	push___%ebx
	mov____%eax,%ebx
	pop____%eax
	xchg___%eax,(%esp)
	call32 %itoa
	add____$i8,%esp !0x4
	mov____%eax,%ebx
	pop____%eax
	push___%ebx
	call32 %eputs
	add____$i8,%esp !0x4
	test___%eax,%eax
					# eputs(", fdgetc-fd=")
	push___$i32 &_string_lib/libc.x86-mes-S_2
	call32 %eputs
	add____$i8,%esp !0x4
	test___%eax,%eax
					# eputs(itoa(fd))
					# itoa(fd)
	push___%eax
	push___%eax
	mov____%ebx,%eax
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	mov____%eax,%ebx
	pop____%eax
	xchg___%eax,(%esp)
	call32 %itoa
	add____$i8,%esp !0x4
	mov____%eax,%ebx
	pop____%eax
	push___%ebx
	call32 %eputs
	add____$i8,%esp !0x4
	test___%eax,%eax
					# eputs(", c=")
	push___$i32 &_string_lib/libc.x86-mes-S_3
	call32 %eputs
	add____$i8,%esp !0x4
	test___%eax,%eax
					# eputs(itoa(_ungetc_buf[_ungetc_pos]))
					# itoa(_ungetc_buf[_ungetc_pos])
	push___%eax
	push___%eax
	mov____%ebx,%eax
	mov____0x32,%ebx &_ungetc_pos
	push___%eax
	mov____%ebx,%eax
	mov____$i32,%ebx &_ungetc_buf
	add____%ebx,%eax
	mov____%eax,%ebx
	pop____%eax
	movzbl_(%ebx),%ebx
	movsbl_%bl,%ebx
	push___%ebx
	mov____%eax,%ebx
	pop____%eax
	xchg___%eax,(%esp)
	call32 %itoa
	add____$i8,%esp !0x4
	mov____%eax,%ebx
	pop____%eax
	push___%ebx
	call32 %eputs
	add____$i8,%esp !0x4
	test___%eax,%eax
					# eputs(" ")
	push___$i32 &_string_lib/libc.x86-mes-S_0
	call32 %eputs
	add____$i8,%esp !0x4
	test___%eax,%eax
					# exit(1)
	mov____$i32,%ebx %0x1
	push___%ebx
	call32 %exit
	add____$i8,%esp !0x4
	test___%eax,%eax
	jmp32  %_fdgetc_77_break
:_fdgetc_77_break
:_fdgetc_47_break
					# i = _ungetc_buf[_ungetc_pos]
	mov____0x32,%eax &_ungetc_pos
	mov____$i32,%ebx &_ungetc_buf
	add____%ebx,%eax
	movzbl_(%eax),%eax
	movsbl_%al,%eax
	mov____%eax,0x8(%ebp) !0x-8
	test___%eax,%eax
					# _ungetc_pos -= 1
	mov____$i32,%eax %0x1
	mov____0x32,%ebx &_ungetc_pos
	xchg___%eax,%ebx
	sub____%ebx,%eax
	mov____%eax,0x32 &_ungetc_pos
	test___%eax,%eax
					# if (_ungetc_pos == -1) ...
	mov____0x32,%eax &_ungetc_pos
	mov____$i32,%ebx %0x-1
	sub____%ebx,%eax
	sete___%al
	movzbl_%al,%eax
					# jmp test LABEL
	jne32  %_fdgetc_173_break
					# _ungetc_fd = -1
	mov____$i32,%eax %0x-1
	mov____%eax,0x32 &_ungetc_fd
	test___%eax,%eax
	jmp32  %_fdgetc_173_break
:_fdgetc_173_break
:_fdgetc_3_break
					# if (i < 0) ...
	mov____0x8(%ebp),%eax !0x-8
	mov____$i32,%ebx %0x0
	sub____%ebx,%eax
	setl___%al
	movzbl_%al,%eax
	test___%eax,%eax
					# jmp test LABEL
	je32   %_fdgetc_187_break
					# i += 256
	mov____$i32,%eax %0x100
	mov____0x8(%ebp),%ebx !0x-8
	xchg___%eax,%ebx
	add____%ebx,%eax
	mov____%eax,0x8(%ebp) !0x-8
	test___%eax,%eax
	jmp32  %_fdgetc_187_break
:_fdgetc_187_break
	mov____0x8(%ebp),%eax !0x-8
	leave
	ret


:fdputc
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# write(fd, (char*)&c, 1)
	mov____$i32,%ebx %0x1
	push___%ebx
	mov____%ebp,%ebx
	add____$i8,%ebx !0x8
	push___%ebx
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	call32 %write
	add____$i8,%esp !0xc
	test___%eax,%eax
	mov____$i32,%eax %0x0
	leave
	ret


:fdputs
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# int i = strlen(s); 
					# strlen(s)
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %strlen
	add____$i8,%esp !0x4
	mov____%eax,0x8(%ebp) !0x-4
					# write(fd, s, i)
	mov____0x8(%ebp),%ebx !0x-4
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	call32 %write
	add____$i8,%esp !0xc
	test___%eax,%eax
	mov____$i32,%eax %0x0
	leave
	ret


:fdungetc
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# if (c == -1) ...
	mov____0x8(%ebp),%eax !0x8
	mov____$i32,%ebx %0x-1
	sub____%ebx,%eax
	sete___%al
	movzbl_%al,%eax
					# jmp test LABEL
	jne32  %_fdungetc_1_break
	mov____0x8(%ebp),%eax !0x8
	leave
	ret
	jmp32  %_fdungetc_1_break
:_fdungetc_1_break
					# if (_ungetc_pos == -1) ...else ...
	mov____0x32,%eax &_ungetc_pos
	mov____$i32,%ebx %0x-1
	sub____%ebx,%eax
	sete___%al
	movzbl_%al,%eax
					# jmp test LABEL
	jne32  %_fdungetc_12_else
					# _ungetc_fd = fd
	mov____0x8(%ebp),%eax !0xc
	mov____%eax,0x32 &_ungetc_fd
	test___%eax,%eax
	jmp32  %_fdungetc_12_break
:_fdungetc_12_else
					# if (_ungetc_fd != fd) ...
	mov____0x32,%eax &_ungetc_fd
	mov____0x8(%ebp),%ebx !0xc
	sub____%ebx,%eax
	test___%eax,%eax
	lahf
	xor____$i8,%ah !0x40
	sahf
	sete___%al
	movzbl_%al,%eax
					# jmp test LABEL
	jne32  %_fdungetc_25_break
					# eputs(" ***MES LIB C*** fdungetc ungetc conflict unget-fd=")
	push___$i32 &_string_lib/libc.x86-mes-S_4
	call32 %eputs
	add____$i8,%esp !0x4
	test___%eax,%eax
					# eputs(itoa(_ungetc_fd))
					# itoa(_ungetc_fd)
	push___%eax
	push___%eax
	mov____%ebx,%eax
	mov____0x32,%ebx &_ungetc_fd
	push___%ebx
	mov____%eax,%ebx
	pop____%eax
	xchg___%eax,(%esp)
	call32 %itoa
	add____$i8,%esp !0x4
	mov____%eax,%ebx
	pop____%eax
	push___%ebx
	call32 %eputs
	add____$i8,%esp !0x4
	test___%eax,%eax
					# eputs(", fdungetc-fd=")
	push___$i32 &_string_lib/libc.x86-mes-S_5
	call32 %eputs
	add____$i8,%esp !0x4
	test___%eax,%eax
					# eputs(itoa(fd))
					# itoa(fd)
	push___%eax
	push___%eax
	mov____%ebx,%eax
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	mov____%eax,%ebx
	pop____%eax
	xchg___%eax,(%esp)
	call32 %itoa
	add____$i8,%esp !0x4
	mov____%eax,%ebx
	pop____%eax
	push___%ebx
	call32 %eputs
	add____$i8,%esp !0x4
	test___%eax,%eax
					# eputs(" ")
	push___$i32 &_string_lib/libc.x86-mes-S_0
	call32 %eputs
	add____$i8,%esp !0x4
	test___%eax,%eax
					# exit(1)
	mov____$i32,%ebx %0x1
	push___%ebx
	call32 %exit
	add____$i8,%esp !0x4
	test___%eax,%eax
	jmp32  %_fdungetc_25_break
:_fdungetc_25_break
:_fdungetc_12_break
	mov____0x32,%eax &_ungetc_pos
	mov____$i32,%ebx &_ungetc_pos
	add____$i8,(%ebx) !0x1
	test___%eax,%eax
					# _ungetc_buf[_ungetc_pos] = c
	mov____0x8(%ebp),%eax !0x8
	mov____0x32,%ebx &_ungetc_pos
	push___%eax
	mov____%ebx,%eax
	mov____$i32,%ebx &_ungetc_buf
	add____%ebx,%eax
	mov____%eax,%ebx
	pop____%eax
	mov____%al,(%ebx)
	test___%eax,%eax
	mov____0x8(%ebp),%eax !0x8
	leave
	ret


:_fdungetc_p
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
	mov____0x32,%eax &_ungetc_pos
	mov____$i32,%ebx %0x-1
	sub____%ebx,%eax
	setg___%al
	movzbl_%al,%eax
	test___%eax,%eax
	leave
	ret


:eputc
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# fdputc(c, g_stderr)
	mov____0x32,%ebx &g_stderr
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %fdputc
	add____$i8,%esp !0x8
	leave
	ret


:oputc
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# fdputc(c, g_stdout)
	mov____0x32,%ebx &g_stdout
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %fdputc
	add____$i8,%esp !0x8
	leave
	ret


:__sys_call
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
	mov____0x8(%ebp),%eax !8
	int____$0x80
	leave
	ret


:__sys_call1
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
	mov____0x8(%ebp),%eax !8
	mov____0x8(%ebp),%ebx !12
	int____$0x80
	leave
	ret


:__sys_call2
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
	mov____0x8(%ebp),%eax !8
	mov____0x8(%ebp),%ebx !12
	mov____0x8(%ebp),%ecx !16
	int____$0x80
	leave
	ret


:__sys_call3
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
	mov____0x8(%ebp),%eax !8
	mov____0x8(%ebp),%ebx !12
	mov____0x8(%ebp),%ecx !16
	mov____0x8(%ebp),%edx !20
	int____$0x80
	leave
	ret


:__sys_call4
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
	mov____0x8(%ebp),%eax !8
	mov____0x8(%ebp),%ebx !12
	mov____0x8(%ebp),%ecx !16
	mov____0x8(%ebp),%edx !20
	mov____0x8(%ebp),%esi !24
	int____$0x80
	leave
	ret


:_sys_call
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# int r = __sys_call(sys_call); 
					# __sys_call(sys_call)
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %__sys_call
	add____$i8,%esp !0x4
	mov____%eax,0x8(%ebp) !0x-4
					# if (r < 0) ...else ...
	mov____0x8(%ebp),%eax !0x-4
	mov____$i32,%ebx %0x0
	sub____%ebx,%eax
	setl___%al
	movzbl_%al,%eax
	test___%eax,%eax
					# jmp test LABEL
	je32   %__sys_call_7_else
					# errno = -r
	mov____0x8(%ebp),%eax !0x-4
	mov____$i32,%ebx %0x0
	xchg___%eax,%ebx
	sub____%ebx,%eax
	mov____%eax,0x32 &errno
	test___%eax,%eax
					# r = -1
	mov____$i32,%eax %0x-1
	mov____%eax,0x8(%ebp) !0x-4
	test___%eax,%eax
	jmp32  %__sys_call_7_break
:__sys_call_7_else
					# errno = 0
	mov____$i32,%eax %0x0
	mov____%eax,0x32 &errno
	test___%eax,%eax
:__sys_call_7_break
	mov____0x8(%ebp),%eax !0x-4
	leave
	ret


:_sys_call1
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# int r = __sys_call1(sys_call, one); 
					# __sys_call1(sys_call, one)
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %__sys_call1
	add____$i8,%esp !0x8
	mov____%eax,0x8(%ebp) !0x-4
					# if (r < 0) ...else ...
	mov____0x8(%ebp),%eax !0x-4
	mov____$i32,%ebx %0x0
	sub____%ebx,%eax
	setl___%al
	movzbl_%al,%eax
	test___%eax,%eax
					# jmp test LABEL
	je32   %__sys_call1_9_else
					# errno = -r
	mov____0x8(%ebp),%eax !0x-4
	mov____$i32,%ebx %0x0
	xchg___%eax,%ebx
	sub____%ebx,%eax
	mov____%eax,0x32 &errno
	test___%eax,%eax
					# r = -1
	mov____$i32,%eax %0x-1
	mov____%eax,0x8(%ebp) !0x-4
	test___%eax,%eax
	jmp32  %__sys_call1_9_break
:__sys_call1_9_else
					# errno = 0
	mov____$i32,%eax %0x0
	mov____%eax,0x32 &errno
	test___%eax,%eax
:__sys_call1_9_break
	mov____0x8(%ebp),%eax !0x-4
	leave
	ret


:_sys_call2
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# int r = __sys_call2(sys_call, one, two); 
					# __sys_call2(sys_call, one, two)
	mov____0x8(%ebp),%ebx !0x10
	push___%ebx
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %__sys_call2
	add____$i8,%esp !0xc
	mov____%eax,0x8(%ebp) !0x-4
					# if (r < 0) ...else ...
	mov____0x8(%ebp),%eax !0x-4
	mov____$i32,%ebx %0x0
	sub____%ebx,%eax
	setl___%al
	movzbl_%al,%eax
	test___%eax,%eax
					# jmp test LABEL
	je32   %__sys_call2_11_else
					# errno = -r
	mov____0x8(%ebp),%eax !0x-4
	mov____$i32,%ebx %0x0
	xchg___%eax,%ebx
	sub____%ebx,%eax
	mov____%eax,0x32 &errno
	test___%eax,%eax
					# r = -1
	mov____$i32,%eax %0x-1
	mov____%eax,0x8(%ebp) !0x-4
	test___%eax,%eax
	jmp32  %__sys_call2_11_break
:__sys_call2_11_else
					# errno = 0
	mov____$i32,%eax %0x0
	mov____%eax,0x32 &errno
	test___%eax,%eax
:__sys_call2_11_break
	mov____0x8(%ebp),%eax !0x-4
	leave
	ret


:_sys_call3
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# int r = __sys_call3(sys_call, one, two, three); 
					# __sys_call3(sys_call, one, two, three)
	mov____0x8(%ebp),%ebx !0x14
	push___%ebx
	mov____0x8(%ebp),%ebx !0x10
	push___%ebx
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %__sys_call3
	add____$i8,%esp !0x10
	mov____%eax,0x8(%ebp) !0x-4
					# if (r < 0) ...else ...
	mov____0x8(%ebp),%eax !0x-4
	mov____$i32,%ebx %0x0
	sub____%ebx,%eax
	setl___%al
	movzbl_%al,%eax
	test___%eax,%eax
					# jmp test LABEL
	je32   %__sys_call3_13_else
					# errno = -r
	mov____0x8(%ebp),%eax !0x-4
	mov____$i32,%ebx %0x0
	xchg___%eax,%ebx
	sub____%ebx,%eax
	mov____%eax,0x32 &errno
	test___%eax,%eax
					# r = -1
	mov____$i32,%eax %0x-1
	mov____%eax,0x8(%ebp) !0x-4
	test___%eax,%eax
	jmp32  %__sys_call3_13_break
:__sys_call3_13_else
					# errno = 0
	mov____$i32,%eax %0x0
	mov____%eax,0x32 &errno
	test___%eax,%eax
:__sys_call3_13_break
	mov____0x8(%ebp),%eax !0x-4
	leave
	ret


:_sys_call4
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# int r = __sys_call4(sys_call, one, two, three, four); 
					# __sys_call4(sys_call, one, two, three, four)
	mov____0x8(%ebp),%ebx !0x18
	push___%ebx
	mov____0x8(%ebp),%ebx !0x14
	push___%ebx
	mov____0x8(%ebp),%ebx !0x10
	push___%ebx
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %__sys_call4
	add____$i8,%esp !0x14
	mov____%eax,0x8(%ebp) !0x-4
					# if (r < 0) ...else ...
	mov____0x8(%ebp),%eax !0x-4
	mov____$i32,%ebx %0x0
	sub____%ebx,%eax
	setl___%al
	movzbl_%al,%eax
	test___%eax,%eax
					# jmp test LABEL
	je32   %__sys_call4_15_else
					# errno = -r
	mov____0x8(%ebp),%eax !0x-4
	mov____$i32,%ebx %0x0
	xchg___%eax,%ebx
	sub____%ebx,%eax
	mov____%eax,0x32 &errno
	test___%eax,%eax
					# r = -1
	mov____$i32,%eax %0x-1
	mov____%eax,0x8(%ebp) !0x-4
	test___%eax,%eax
	jmp32  %__sys_call4_15_break
:__sys_call4_15_else
					# errno = 0
	mov____$i32,%eax %0x0
	mov____%eax,0x32 &errno
	test___%eax,%eax
:__sys_call4_15_break
	mov____0x8(%ebp),%eax !0x-4
	leave
	ret


:fork
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# _sys_call(0x02)
	mov____$i32,%ebx %0x2
	push___%ebx
	call32 %_sys_call
	add____$i8,%esp !0x4
	leave
	ret


:read
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# ssize_t bytes = _sys_call3(0x03, (int)filedes, (long)buffer, (long)size); 
					# _sys_call3(0x03, (int)filedes, (long)buffer, (long)size)
	mov____0x8(%ebp),%ebx !0x10
	push___%ebx
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	mov____$i32,%ebx %0x3
	push___%ebx
	call32 %_sys_call3
	add____$i8,%esp !0x10
	mov____%eax,0x8(%ebp) !0x-4
					# if (__mes_debug() > 3) ...
					# __mes_debug()
	call32 %__mes_debug
	add____$i8,%esp !0x0
	mov____$i32,%ebx %0x3
	sub____%ebx,%eax
	setg___%al
	movzbl_%al,%eax
	test___%eax,%eax
					# jmp test LABEL
	je32   %_read_13_break
					# if (bytes == 1) ...else ...
	mov____0x8(%ebp),%eax !0x-4
	mov____$i32,%ebx %0x1
	sub____%ebx,%eax
	sete___%al
	movzbl_%al,%eax
					# jmp test LABEL
	jne32  %_read_22_else
					# eputs("read fd=")
	push___$i32 &_string_lib/libc.x86-mes-S_6
	call32 %eputs
	add____$i8,%esp !0x4
	test___%eax,%eax
					# eputs(itoa((int)filedes))
					# itoa((int)filedes)
	push___%eax
	push___%eax
	mov____%ebx,%eax
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	mov____%eax,%ebx
	pop____%eax
	xchg___%eax,(%esp)
	call32 %itoa
	add____$i8,%esp !0x4
	mov____%eax,%ebx
	pop____%eax
	push___%ebx
	call32 %eputs
	add____$i8,%esp !0x4
	test___%eax,%eax
					# eputs(" c=")
	push___$i32 &_string_lib/libc.x86-mes-S_7
	call32 %eputs
	add____$i8,%esp !0x4
	test___%eax,%eax
					# eputc(*((char*)buffer))
	mov____0x8(%ebp),%ebx !0xc
	movzbl_(%ebx),%ebx
	movsbl_%bl,%ebx
	push___%ebx
	call32 %eputc
	add____$i8,%esp !0x4
	test___%eax,%eax
					# eputs(" ")
	push___$i32 &_string_lib/libc.x86-mes-S_0
	call32 %eputs
	add____$i8,%esp !0x4
	test___%eax,%eax
	jmp32  %_read_22_break
:_read_22_else
					# eputs("read fd=")
	push___$i32 &_string_lib/libc.x86-mes-S_6
	call32 %eputs
	add____$i8,%esp !0x4
	test___%eax,%eax
					# eputs(itoa((int)filedes))
					# itoa((int)filedes)
	push___%eax
	push___%eax
	mov____%ebx,%eax
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	mov____%eax,%ebx
	pop____%eax
	xchg___%eax,(%esp)
	call32 %itoa
	add____$i8,%esp !0x4
	mov____%eax,%ebx
	pop____%eax
	push___%ebx
	call32 %eputs
	add____$i8,%esp !0x4
	test___%eax,%eax
					# eputs(" bytes=")
	push___$i32 &_string_lib/libc.x86-mes-S_8
	call32 %eputs
	add____$i8,%esp !0x4
	test___%eax,%eax
					# eputs(itoa(bytes))
					# itoa(bytes)
	push___%eax
	push___%eax
	mov____%ebx,%eax
	mov____0x8(%ebp),%ebx !0x-4
	push___%ebx
	mov____%eax,%ebx
	pop____%eax
	xchg___%eax,(%esp)
	call32 %itoa
	add____$i8,%esp !0x4
	mov____%eax,%ebx
	pop____%eax
	push___%ebx
	call32 %eputs
	add____$i8,%esp !0x4
	test___%eax,%eax
					# eputs(" ")
	push___$i32 &_string_lib/libc.x86-mes-S_0
	call32 %eputs
	add____$i8,%esp !0x4
	test___%eax,%eax
:_read_22_break
	jmp32  %_read_13_break
:_read_13_break
	mov____0x8(%ebp),%eax !0x-4
	leave
	ret


:_open3
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# if (!flags) ...
	mov____0x8(%ebp),%eax !0xc
	test___%eax,%eax
	sete___%al
	movzbl_%al,%eax
	test___%eax,%eax
					# jmp test LABEL
	je32   %__open3_1_break
					# _ungetc_pos = -1
	mov____$i32,%eax %0x-1
	mov____%eax,0x32 &_ungetc_pos
	test___%eax,%eax
					# _ungetc_fd = -1
	mov____$i32,%eax %0x-1
	mov____%eax,0x32 &_ungetc_fd
	test___%eax,%eax
	jmp32  %__open3_1_break
:__open3_1_break
					# int r = _sys_call3(0x05, (long)file_name, (int)flags, (int)mask); 
					# _sys_call3(0x05, (long)file_name, (int)flags, (int)mask)
	mov____0x8(%ebp),%ebx !0x10
	push___%ebx
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	mov____$i32,%ebx %0x5
	push___%ebx
	call32 %_sys_call3
	add____$i8,%esp !0x10
	mov____%eax,0x8(%ebp) !0x-4
	mov____0x8(%ebp),%eax !0x-4
	leave
	ret


:_open2
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# int mask = 0777; 
	mov____$i32,%eax %0x1ff
	mov____%eax,0x8(%ebp) !0x-4
					# _open3(file_name, flags, mask)
	mov____0x8(%ebp),%ebx !0x-4
	push___%ebx
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %_open3
	add____$i8,%esp !0xc
	leave
	ret


:open
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# va_list ap; 
					# ap = (char*)(&flags + 1)
	mov____%ebp,%eax
	add____$i8,%eax !0xc
	add____$i8,%eax !0x4
	mov____%eax,0x8(%ebp) !0x-4
	movzbl_%al,%eax
	test___%eax,%eax
					# int mask = (int)(long*)(ap = ap + sizeof(void*))[-1]; 
	mov____$i32,%eax %0x-1
	shl____$i8,%eax !0x2
					# ap = ap + sizeof(void*)
	mov____0x8(%ebp),%ebx !0x-4
	push___%eax
	mov____%ebx,%eax
	mov____$i32,%ebx %0x4
	add____%ebx,%eax
	mov____%eax,%ebx
	pop____%eax
	mov____%ebx,0x8(%ebp) !0x-4
	add____%ebx,%eax
	mov____(%eax),%eax
	mov____%eax,0x8(%ebp) !0x-8
					# int r = _open3(file_name, flags, mask); 
					# _open3(file_name, flags, mask)
	mov____0x8(%ebp),%ebx !0x-8
	push___%ebx
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %_open3
	add____$i8,%esp !0xc
	mov____%eax,0x8(%ebp) !0x-c
					# ap = 0
	mov____$i32,%eax %0x0
	mov____%eax,0x8(%ebp) !0x-4
	movzbl_%al,%eax
	test___%eax,%eax
	mov____0x8(%ebp),%eax !0x-c
	leave
	ret


:waitpid
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# _sys_call3(0x07, (long)pid, (long)status_ptr, (int)options)
	mov____0x8(%ebp),%ebx !0x10
	push___%ebx
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	mov____$i32,%ebx %0x7
	push___%ebx
	call32 %_sys_call3
	add____$i8,%esp !0x10
	leave
	ret


:execve
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# _sys_call3(0x0b, (long)file_name, (long)argv, (long)env)
	mov____0x8(%ebp),%ebx !0x10
	push___%ebx
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	mov____$i32,%ebx %0xb
	push___%ebx
	call32 %_sys_call3
	add____$i8,%esp !0x10
	leave
	ret


:chmod
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# _sys_call2(0x0f, (long)file_name, (long)mask)
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	mov____$i32,%ebx %0xf
	push___%ebx
	call32 %_sys_call2
	add____$i8,%esp !0xc
	leave
	ret


:access
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# _sys_call2(0x21, (long)file_name, (int)how)
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	mov____$i32,%ebx %0x21
	push___%ebx
	call32 %_sys_call2
	add____$i8,%esp !0xc
	leave
	ret


:brk
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# _sys_call1(0x2d, (long)addr)
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	mov____$i32,%ebx %0x2d
	push___%ebx
	call32 %_sys_call1
	add____$i8,%esp !0x8
	leave
	ret


:ioctl
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# va_list ap; 
					# ap = (char*)(&command + 1)
	mov____%ebp,%eax
	add____$i8,%eax !0xc
	add____$i8,%eax !0x4
	mov____%eax,0x8(%ebp) !0x-4
	movzbl_%al,%eax
	test___%eax,%eax
					# int data = (int)(long*)(ap = ap + sizeof(void*))[-1]; 
	mov____$i32,%eax %0x-1
	shl____$i8,%eax !0x2
					# ap = ap + sizeof(void*)
	mov____0x8(%ebp),%ebx !0x-4
	push___%eax
	mov____%ebx,%eax
	mov____$i32,%ebx %0x4
	add____%ebx,%eax
	mov____%eax,%ebx
	pop____%eax
	mov____%ebx,0x8(%ebp) !0x-4
	add____%ebx,%eax
	mov____(%eax),%eax
	mov____%eax,0x8(%ebp) !0x-8
					# int r = _sys_call3(0x36, (int)filedes, (long)command, (int)data); 
					# _sys_call3(0x36, (int)filedes, (long)command, (int)data)
	mov____0x8(%ebp),%ebx !0x-8
	push___%ebx
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	mov____$i32,%ebx %0x36
	push___%ebx
	call32 %_sys_call3
	add____$i8,%esp !0x10
	mov____%eax,0x8(%ebp) !0x-c
					# ap = 0
	mov____$i32,%eax %0x0
	mov____%eax,0x8(%ebp) !0x-4
	movzbl_%al,%eax
	test___%eax,%eax
	mov____0x8(%ebp),%eax !0x-c
	leave
	ret


:fsync
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# _sys_call1(0x76, (int)filedes)
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	mov____$i32,%ebx %0x76
	push___%ebx
	call32 %_sys_call1
	add____$i8,%esp !0x8
	leave
	ret


:getcwd
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# int r = _sys_call2(0xb7, (long)buffer, (long)size); 
					# _sys_call2(0xb7, (long)buffer, (long)size)
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	mov____$i32,%ebx %0xb7
	push___%ebx
	call32 %_sys_call2
	add____$i8,%esp !0xc
	mov____%eax,0x8(%ebp) !0x-4
					# if (r >= 0) ...
	mov____0x8(%ebp),%eax !0x-4
	mov____$i32,%ebx %0x0
	sub____%ebx,%eax
	setge__%al
	movzbl_%al,%eax
	test___%eax,%eax
					# jmp test LABEL
	je32   %_getcwd_11_break
	mov____0x8(%ebp),%eax !0x8
	leave
	ret
	jmp32  %_getcwd_11_break
:_getcwd_11_break
	mov____$i32,%eax %0x0
	leave
	ret


:dup
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# _sys_call1(0x29, (int)old)
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	mov____$i32,%ebx %0x29
	push___%ebx
	call32 %_sys_call1
	add____$i8,%esp !0x8
	leave
	ret


:dup2
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# _sys_call2(0x3f, (int)old, (int)new)
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	mov____$i32,%ebx %0x3f
	push___%ebx
	call32 %_sys_call2
	add____$i8,%esp !0xc
	leave
	ret


:unlink
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# _sys_call1(0x0a, (long)file_name)
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	mov____$i32,%ebx %0xa
	push___%ebx
	call32 %_sys_call1
	add____$i8,%esp !0x8
	leave
	ret


:clock_gettime
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# _sys_call2(0x109, (long)clk_id, (long)tp)
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	mov____$i32,%ebx %0x109
	push___%ebx
	call32 %_sys_call2
	add____$i8,%esp !0xc
	leave
	ret


:gettimeofday
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# _sys_call2(0x4e, (long)tv, (long)tz)
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	mov____$i32,%ebx %0x4e
	push___%ebx
	call32 %_sys_call2
	add____$i8,%esp !0xc
	leave
	ret


:time
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# _sys_call1(0x0d, (long)result)
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	mov____$i32,%ebx %0xd
	push___%ebx
	call32 %_sys_call1
	add____$i8,%esp !0x8
	leave
	ret


:__mes_debug
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# static int __mes_debug = -1; 
					# if (__mes_debug == -1) ...
	mov____0x32,%eax &__mes_debug-__mes_debug
	mov____$i32,%ebx %0x-1
	sub____%ebx,%eax
	sete___%al
	movzbl_%al,%eax
					# jmp test LABEL
	jne32  %___mes_debug_2_break
					# char *p = getenv("MES_DEBUG"); 
					# getenv("MES_DEBUG")
	push___$i32 &_string_lib/libc.x86-mes-S_9
	call32 %getenv
	add____$i8,%esp !0x4
	mov____%eax,0x8(%ebp) !0x-4
					# __mes_debug = p? atoi(p) > 1? atoi(p): 1: 0
					# p? ...: ...
	mov____0x8(%ebp),%eax !0x-4
					# jmp test LABEL
	test___%eax,%eax
	je32   %___mes_debug_15_else
					# atoi(p) > 1? ...: ...
					# atoi(p)
	mov____0x8(%ebp),%ebx !0x-4
	push___%ebx
	call32 %atoi
	add____$i8,%esp !0x4
	mov____$i32,%ebx %0x1
	sub____%ebx,%eax
	setg___%al
	movzbl_%al,%eax
	test___%eax,%eax
					# jmp test LABEL
	je32   %___mes_debug_20_else
					# atoi(p)
	mov____0x8(%ebp),%ebx !0x-4
	push___%ebx
	call32 %atoi
	add____$i8,%esp !0x4
	jmp32  %___mes_debug_20_break
:___mes_debug_20_else
	mov____$i32,%eax %0x1
:___mes_debug_20_break
	jmp32  %___mes_debug_15_break
:___mes_debug_15_else
	mov____$i32,%eax %0x0
:___mes_debug_15_break
	mov____%eax,0x32 &__mes_debug-__mes_debug
	test___%eax,%eax
	jmp32  %___mes_debug_2_break
:___mes_debug_2_break
	mov____0x32,%eax &__mes_debug-__mes_debug
	leave
	ret


:memcpy
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# char *p = dest; 
	mov____0x8(%ebp),%eax !0x8
	mov____%eax,0x8(%ebp) !0x-4
					# char *q = src; 
	mov____0x8(%ebp),%eax !0xc
	mov____%eax,0x8(%ebp) !0x-8
					# while (n--) ...
	jmp32  %_memcpy_7_continue
:_memcpy_7_loop
					# *p = *q++
	mov____0x8(%ebp),%eax !0x-8
	mov____%ebp,%ebx
	add____$i8,%ebx !0x-8
	add____$i8,(%ebx) !0x1
	movzbl_(%eax),%eax
	movsbl_%al,%eax
	mov____0x8(%ebp),%ebx !0x-4
	mov____%al,(%ebx)
	add____$i8,0x8(%ebp) !0x-4 !0x1
	test___%eax,%eax
:_memcpy_7_continue
	mov____0x8(%ebp),%eax !0x10
	mov____%ebp,%ebx
	add____$i8,%ebx !0x10
	add____$i8,(%ebx) !0x-1
					# jmp test LABEL
	test___%eax,%eax
	je32   %_memcpy_7_break
	jmp32  %_memcpy_7_loop
:_memcpy_7_break
	mov____0x8(%ebp),%eax !0x8
	leave
	ret


:malloc
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# if (!__brk) ...
	mov____0x32,%eax &__brk
	test___%eax,%eax
	sete___%al
	movzbl_%al,%eax
	test___%eax,%eax
					# jmp test LABEL
	je32   %_malloc_1_break
					# __brk = brk(0)
					# brk(0)
	mov____$i32,%ebx %0x0
	push___%ebx
	call32 %brk
	add____$i8,%esp !0x4
	mov____%eax,0x32 &__brk
	test___%eax,%eax
	jmp32  %_malloc_1_break
:_malloc_1_break
					# if (brk(__brk + size) == (void*)-1) ...
					# brk(__brk + size)
	mov____0x32,%ebx &__brk
	push___%eax
	mov____%ebx,%eax
	mov____0x8(%ebp),%ebx !0x8
	add____%ebx,%eax
	mov____%eax,%ebx
	pop____%eax
	push___%ebx
	call32 %brk
	add____$i8,%esp !0x4
	mov____$i32,%ebx %0x-1
	sub____%ebx,%eax
	sete___%al
	movzbl_%al,%eax
					# jmp test LABEL
	jne32  %_malloc_17_break
	mov____$i32,%eax %0x0
	leave
	ret
	jmp32  %_malloc_17_break
:_malloc_17_break
					# char *p = __brk; 
	mov____0x32,%eax &__brk
	mov____%eax,0x8(%ebp) !0x-4
					# __brk += size
	mov____0x8(%ebp),%eax !0x8
	mov____0x32,%ebx &__brk
	xchg___%eax,%ebx
	add____%ebx,%eax
	mov____%eax,0x32 &__brk
	test___%eax,%eax
	mov____0x8(%ebp),%eax !0x-4
	leave
	ret


:assert_fail
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# eputs("assert fail: ")
	push___$i32 &_string_lib/libc.x86-mes-S_10
	call32 %eputs
	add____$i8,%esp !0x4
	test___%eax,%eax
					# eputs(s)
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %eputs
	add____$i8,%esp !0x4
	test___%eax,%eax
					# eputs(" ")
	push___$i32 &_string_lib/libc.x86-mes-S_0
	call32 %eputs
	add____$i8,%esp !0x4
	test___%eax,%eax
					# char *fail = s; 
	mov____0x8(%ebp),%eax !0x8
	mov____%eax,0x8(%ebp) !0x-4
					# fail = 0
	mov____$i32,%eax %0x0
	mov____%eax,0x8(%ebp) !0x-4
	test___%eax,%eax
					# *fail = 0
	mov____$i32,%eax %0x0
	mov____0x8(%ebp),%ebx !0x-4
	mov____%al,(%ebx)
	test___%eax,%eax
	leave
	ret


:getchar
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# fdgetc(g_stdin)
	mov____0x32,%ebx &g_stdin
	push___%ebx
	call32 %fdgetc
	add____$i8,%esp !0x4
	leave
	ret


:putchar
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# write(1, (char*)&c, 1)
	mov____$i32,%ebx %0x1
	push___%ebx
	mov____%ebp,%ebx
	add____$i8,%ebx !0x8
	push___%ebx
	mov____$i32,%ebx %0x1
	push___%ebx
	call32 %write
	add____$i8,%esp !0xc
	test___%eax,%eax
	mov____$i32,%eax %0x0
	leave
	ret


:fputc
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# fdputc(c, (int)stream)
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %fdputc
	add____$i8,%esp !0x8
	leave
	ret


:fputs
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# fdputs(s, (long)stream)
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %fdputs
	add____$i8,%esp !0x8
	leave
	ret


:putc
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# fdputc(c, (long)stream)
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %fdputc
	add____$i8,%esp !0x8
	leave
	ret


:getc
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# fdgetc((long)stream)
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %fdgetc
	add____$i8,%esp !0x4
	leave
	ret


:fgetc
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# fdgetc((long)stream)
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %fdgetc
	add____$i8,%esp !0x4
	leave
	ret


:ungetc
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# fdungetc(c, (long)stream)
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %fdungetc
	add____$i8,%esp !0x8
	leave
	ret


:strcmp
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# while (*a && *b && *a == *b) ...
	jmp32  %_strcmp_1_continue
:_strcmp_1_loop
	mov____0x8(%ebp),%eax !0x8
	mov____%ebp,%ebx
	add____$i8,%ebx !0x8
	add____$i8,(%ebx) !0x1
	test___%eax,%eax
	mov____0x8(%ebp),%eax !0xc
	mov____%ebp,%ebx
	add____$i8,%ebx !0xc
	add____$i8,(%ebx) !0x1
	test___%eax,%eax
:_strcmp_1_continue
	mov____0x8(%ebp),%eax !0x8
	movzbl_(%eax),%eax
	movsbl_%al,%eax
					# jmp test LABEL
	test___%eax,%eax
	test___%al,%al
	je32   %_strcmp_1_break
	mov____0x8(%ebp),%eax !0xc
	movzbl_(%eax),%eax
	movsbl_%al,%eax
					# jmp test LABEL
	test___%eax,%eax
	test___%al,%al
	je32   %_strcmp_1_break
	mov____0x8(%ebp),%eax !0x8
	movzbl_(%eax),%eax
	movsbl_%al,%eax
	mov____0x8(%ebp),%ebx !0xc
	movzbl_(%ebx),%ebx
	movsbl_%bl,%ebx
	sub____%ebx,%eax
	sete___%al
	movzbl_%al,%eax
					# jmp test LABEL
	jne32  %_strcmp_1_break
	jmp32  %_strcmp_1_loop
:_strcmp_1_break
	mov____0x8(%ebp),%eax !0x8
	movzbl_(%eax),%eax
	movsbl_%al,%eax
	mov____0x8(%ebp),%ebx !0xc
	movzbl_(%ebx),%ebx
	movsbl_%bl,%ebx
	sub____%ebx,%eax
	leave
	ret


:strcpy
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# char *p = dest; 
	mov____0x8(%ebp),%eax !0x8
	mov____%eax,0x8(%ebp) !0x-4
					# while (*src) ...
	jmp32  %_strcpy_4_continue
:_strcpy_4_loop
					# *p = *src++
	mov____0x8(%ebp),%eax !0xc
	mov____%ebp,%ebx
	add____$i8,%ebx !0xc
	add____$i8,(%ebx) !0x1
	movzbl_(%eax),%eax
	movsbl_%al,%eax
	mov____0x8(%ebp),%ebx !0x-4
	mov____%al,(%ebx)
	add____$i8,0x8(%ebp) !0x-4 !0x1
	test___%eax,%eax
:_strcpy_4_continue
	mov____0x8(%ebp),%eax !0xc
	movzbl_(%eax),%eax
	movsbl_%al,%eax
					# jmp test LABEL
	test___%eax,%eax
	test___%al,%al
	je32   %_strcpy_4_break
	jmp32  %_strcpy_4_loop
:_strcpy_4_break
					# *p = 0
	mov____$i32,%eax %0x0
	mov____0x8(%ebp),%ebx !0x-4
	mov____%al,(%ebx)
	test___%eax,%eax
	mov____0x8(%ebp),%eax !0x8
	leave
	ret


:strncmp
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# if (!size) ...
	mov____0x8(%ebp),%eax !0x10
	test___%eax,%eax
	sete___%al
	movzbl_%al,%eax
	test___%eax,%eax
					# jmp test LABEL
	je32   %_strncmp_1_break
	mov____$i32,%eax %0x0
	leave
	ret
	jmp32  %_strncmp_1_break
:_strncmp_1_break
					# while (*a && *b && *a == *b && --size) ...
	jmp32  %_strncmp_12_continue
:_strncmp_12_loop
	mov____0x8(%ebp),%eax !0x8
	mov____%ebp,%ebx
	add____$i8,%ebx !0x8
	add____$i8,(%ebx) !0x1
	test___%eax,%eax
	mov____0x8(%ebp),%eax !0xc
	mov____%ebp,%ebx
	add____$i8,%ebx !0xc
	add____$i8,(%ebx) !0x1
	test___%eax,%eax
:_strncmp_12_continue
	mov____0x8(%ebp),%eax !0x8
	movzbl_(%eax),%eax
	movsbl_%al,%eax
					# jmp test LABEL
	test___%eax,%eax
	test___%al,%al
	je32   %_strncmp_12_break
	mov____0x8(%ebp),%eax !0xc
	movzbl_(%eax),%eax
	movsbl_%al,%eax
					# jmp test LABEL
	test___%eax,%eax
	test___%al,%al
	je32   %_strncmp_12_break
	mov____0x8(%ebp),%eax !0x8
	movzbl_(%eax),%eax
	movsbl_%al,%eax
	mov____0x8(%ebp),%ebx !0xc
	movzbl_(%ebx),%ebx
	movsbl_%bl,%ebx
	sub____%ebx,%eax
	sete___%al
	movzbl_%al,%eax
					# jmp test LABEL
	jne32  %_strncmp_12_break
	mov____%ebp,%eax
	add____$i8,%eax !0x10
	add____$i8,(%eax) !0x-1
	mov____0x8(%ebp),%eax !0x10
					# jmp test LABEL
	test___%eax,%eax
	je32   %_strncmp_12_break
	jmp32  %_strncmp_12_loop
:_strncmp_12_break
	mov____0x8(%ebp),%eax !0x8
	movzbl_(%eax),%eax
	movsbl_%al,%eax
	mov____0x8(%ebp),%ebx !0xc
	movzbl_(%ebx),%ebx
	movsbl_%bl,%ebx
	sub____%ebx,%eax
	leave
	ret


:free
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
	leave
	ret


:realloc
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# void *new = malloc(size); 
					# malloc(size)
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	call32 %malloc
	add____$i8,%esp !0x4
	mov____%eax,0x8(%ebp) !0x-4
					# if (ptr && new) ...
	mov____0x8(%ebp),%eax !0x8
					# jmp test LABEL
	test___%eax,%eax
	je32   %_realloc_7_break
	mov____0x8(%ebp),%eax !0x-4
					# jmp test LABEL
	test___%eax,%eax
	je32   %_realloc_7_break
					# memcpy(new, ptr, size)
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	mov____0x8(%ebp),%ebx !0x-4
	push___%ebx
	call32 %memcpy
	add____$i8,%esp !0xc
	test___%eax,%eax
					# free(ptr)
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %free
	add____$i8,%esp !0x4
	test___%eax,%eax
	jmp32  %_realloc_7_break
:_realloc_7_break
	mov____0x8(%ebp),%eax !0x-4
	leave
	ret


:getenv
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# char **p = environ; 
	mov____0x32,%eax &environ
	mov____%eax,0x8(%ebp) !0x-4
					# int length = strlen(s); 
					# strlen(s)
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %strlen
	add____$i8,%esp !0x4
	mov____%eax,0x8(%ebp) !0x-8
					# while (*p) ...
	jmp32  %_getenv_10_continue
:_getenv_10_loop
					# if (!strncmp(s, *p, length) && *(*p + length) == '=') ...
					# strncmp(s, *p, length)
	mov____0x8(%ebp),%ebx !0x-8
	push___%ebx
	mov____0x8(%ebp),%ebx !0x-4
	mov____(%ebx),%ebx
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %strncmp
	add____$i8,%esp !0xc
	test___%eax,%eax
	sete___%al
	movzbl_%al,%eax
	test___%eax,%eax
					# jmp test LABEL
	je32   %_getenv_13_break
	mov____0x8(%ebp),%eax !0x-4
	mov____(%eax),%eax
	mov____0x8(%ebp),%ebx !0x-8
	add____%ebx,%eax
	movzbl_(%eax),%eax
	movsbl_%al,%eax
	mov____$i32,%ebx %0x3d
	sub____%ebx,%eax
	sete___%al
	movzbl_%al,%eax
					# jmp test LABEL
	jne32  %_getenv_13_break
	mov____0x8(%ebp),%eax !0x-4
	mov____(%eax),%eax
	mov____0x8(%ebp),%ebx !0x-8
	add____%ebx,%eax
	add____$i8,%eax !0x1
	leave
	ret
	jmp32  %_getenv_13_break
:_getenv_13_break
	mov____0x8(%ebp),%eax !0x-4
	mov____%ebp,%ebx
	add____$i8,%ebx !0x-4
	add____$i8,(%ebx) !0x4
	test___%eax,%eax
:_getenv_10_continue
	mov____0x8(%ebp),%eax !0x-4
	mov____(%eax),%eax
					# jmp test LABEL
	test___%eax,%eax
	je32   %_getenv_10_break
	jmp32  %_getenv_10_loop
:_getenv_10_break
	mov____$i32,%eax %0x0
	leave
	ret


:setenv
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# char **p = environ; 
	mov____0x32,%eax &environ
	mov____%eax,0x8(%ebp) !0x-4
					# int length = strlen(s); 
					# strlen(s)
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %strlen
	add____$i8,%esp !0x4
	mov____%eax,0x8(%ebp) !0x-8
					# while (*p) ...
	jmp32  %_setenv_10_continue
:_setenv_10_loop
					# if (!strncmp(s, *p, length) && *(*p + length) == '=') ...
					# strncmp(s, *p, length)
	mov____0x8(%ebp),%ebx !0x-8
	push___%ebx
	mov____0x8(%ebp),%ebx !0x-4
	mov____(%ebx),%ebx
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %strncmp
	add____$i8,%esp !0xc
	test___%eax,%eax
	sete___%al
	movzbl_%al,%eax
	test___%eax,%eax
					# jmp test LABEL
	je32   %_setenv_13_break
	mov____0x8(%ebp),%eax !0x-4
	mov____(%eax),%eax
	mov____0x8(%ebp),%ebx !0x-8
	add____%ebx,%eax
	movzbl_(%eax),%eax
	movsbl_%al,%eax
	mov____$i32,%ebx %0x3d
	sub____%ebx,%eax
	sete___%al
	movzbl_%al,%eax
					# jmp test LABEL
	jne32  %_setenv_13_break
	jmp32  %_setenv_10_break
	jmp32  %_setenv_13_break
:_setenv_13_break
	mov____0x8(%ebp),%eax !0x-4
	mov____%ebp,%ebx
	add____$i8,%ebx !0x-4
	add____$i8,(%ebx) !0x4
	test___%eax,%eax
:_setenv_10_continue
	mov____0x8(%ebp),%eax !0x-4
	mov____(%eax),%eax
					# jmp test LABEL
	test___%eax,%eax
	je32   %_setenv_10_break
	jmp32  %_setenv_10_loop
:_setenv_10_break
					# char *entry = malloc(length + strlen(v) + 2); 
					# malloc(length + strlen(v) + 2)
	mov____0x8(%ebp),%ebx !0x-8
					# strlen(v)
	push___%eax
	mov____%ebx,%eax
	push___%eax
	push___%eax
	mov____%ebx,%eax
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	mov____%eax,%ebx
	pop____%eax
	xchg___%eax,(%esp)
	call32 %strlen
	add____$i8,%esp !0x4
	mov____%eax,%ebx
	pop____%eax
	add____%ebx,%eax
	mov____%eax,%ebx
	pop____%eax
	add____$i8,%ebx !0x2
	push___%ebx
	call32 %malloc
	add____$i8,%esp !0x4
	mov____%eax,0x8(%ebp) !0x-c
					# int end_p = *p == 0; 
	mov____0x8(%ebp),%eax !0x-4
	mov____(%eax),%eax
	mov____$i32,%ebx %0x0
	sub____%ebx,%eax
	sete___%al
	movzbl_%al,%eax
	mov____%eax,0x8(%ebp) !0x-10
					# *p = entry
	mov____0x8(%ebp),%eax !0x-c
	mov____0x8(%ebp),%ebx !0x-4
	mov____%eax,(%ebx)
	test___%eax,%eax
					# strcpy(entry, s)
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	mov____0x8(%ebp),%ebx !0x-c
	push___%ebx
	call32 %strcpy
	add____$i8,%esp !0x8
	test___%eax,%eax
					# strcpy(entry + length, "=")
	push___$i32 &_string_lib/libc.x86-mes-S_11
	mov____0x8(%ebp),%ebx !0x-c
	push___%eax
	mov____%ebx,%eax
	mov____0x8(%ebp),%ebx !0x-8
	add____%ebx,%eax
	mov____%eax,%ebx
	pop____%eax
	push___%ebx
	call32 %strcpy
	add____$i8,%esp !0x8
	test___%eax,%eax
					# strcpy(entry + length + 1, v)
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	mov____0x8(%ebp),%ebx !0x-c
	push___%eax
	mov____%ebx,%eax
	mov____0x8(%ebp),%ebx !0x-8
	add____%ebx,%eax
	mov____%eax,%ebx
	pop____%eax
	add____$i8,%ebx !0x1
	push___%ebx
	call32 %strcpy
	add____$i8,%esp !0x8
	test___%eax,%eax
					# *(entry + length + strlen(v) + 2) = 0
	mov____$i32,%eax %0x0
	mov____0x8(%ebp),%ebx !0x-c
	push___%eax
	mov____%ebx,%eax
	mov____0x8(%ebp),%ebx !0x-8
	add____%ebx,%eax
	mov____%eax,%ebx
	pop____%eax
					# strlen(v)
	push___%eax
	mov____%ebx,%eax
	push___%eax
	push___%eax
	mov____%ebx,%eax
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	mov____%eax,%ebx
	pop____%eax
	xchg___%eax,(%esp)
	call32 %strlen
	add____$i8,%esp !0x4
	mov____%eax,%ebx
	pop____%eax
	add____%ebx,%eax
	mov____%eax,%ebx
	pop____%eax
	add____$i8,%ebx !0x2
	mov____%al,(%ebx)
	test___%eax,%eax
					# if (end_p) ...
	mov____0x8(%ebp),%eax !0x-10
					# jmp test LABEL
	test___%eax,%eax
	je32   %_setenv_138_break
					# *++p = 0
	mov____$i32,%eax %0x0
	mov____%ebp,%ebx
	add____$i8,%ebx !0x-4
	add____$i8,(%ebx) !0x4
	mov____0x8(%ebp),%ebx !0x-4
	mov____%eax,(%ebx)
	test___%eax,%eax
	jmp32  %_setenv_138_break
:_setenv_138_break
	mov____$i32,%eax %0x0
	leave
	ret


:isatty
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# ioctl(fd, 0x5401, 0)
	mov____$i32,%ebx %0x0
	push___%ebx
	mov____$i32,%ebx %0x5401
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %ioctl
	add____$i8,%esp !0xc
	mov____$i32,%ebx %0xf0
	and____%ebx,%eax
	leave
	ret


:wait
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# waitpid(-1, status_ptr, 0)
	mov____$i32,%ebx %0x0
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	mov____$i32,%ebx %0x-1
	push___%ebx
	call32 %waitpid
	add____$i8,%esp !0xc
	leave
	ret


:execv
	push___%ebp
	mov____%esp,%ebp
	sub____$i32,%esp %0x1054
					# execve(file_name, argv, environ)
	mov____0x32,%ebx &environ
	push___%ebx
	mov____0x8(%ebp),%ebx !0xc
	push___%ebx
	mov____0x8(%ebp),%ebx !0x8
	push___%ebx
	call32 %execve
	add____$i8,%esp !0xc
	leave
	ret

:__mes_debug-__mes_debug
!0x-1 !0x-1 !0x-1 !0x-1

:ntoab-itoa_buf
!0x00 !0x00 !0x00 !0x00 !0x00 !0x00 !0x00 !0x00 !0x00 !0x00 !0x00 !0x00 !0x00 !0x00 !0x00 !0x00 !0x00 !0x00 !0x00 !0x00

:comparison_fn_t
!0x00 !0x00 !0x00 !0x00

:environ
!0x00 !0x00 !0x00 !0x00

:g_stdin
!0x00 !0x00 !0x00 !0x00

:g_stdout
!0x00 !0x00 !0x00 !0x00

:g_stderr
!0x00 !0x00 !0x00 !0x00

:errno
!0x00 !0x00 !0x00 !0x00

:_string_lib/libc.x86-mes-S_0
"
"

:errno
!0x00 !0x00 !0x00 !0x00

:__call_at_exit
!0x00 !0x00 !0x00 !0x00

:_ungetc_pos
!0x-1 !0x-1 !0x-1 !0x-1

:_ungetc_fd
!0x-1 !0x-1 !0x-1 !0x-1

:_ungetc_buf
!0x00 !0x00 !0x00 !0x00 !0x00 !0x00 !0x00 !0x00 !0x00 !0x00

:_string_lib/libc.x86-mes-S_1
" ***MES C LIB*** fdgetc ungetc conflict unget-fd="

:_string_lib/libc.x86-mes-S_2
", fdgetc-fd="

:_string_lib/libc.x86-mes-S_3
", c="

:_string_lib/libc.x86-mes-S_4
" ***MES LIB C*** fdungetc ungetc conflict unget-fd="

:_string_lib/libc.x86-mes-S_5
", fdungetc-fd="

:_string_lib/libc.x86-mes-S_6
"read fd="

:_string_lib/libc.x86-mes-S_7
" c="

:_string_lib/libc.x86-mes-S_8
" bytes="

:g_stdin
!0x00 !0x00 !0x00 !0x00

:_string_lib/libc.x86-mes-S_9
"MES_DEBUG"

:__brk
!0x00 !0x00 !0x00 !0x00

:_string_lib/libc.x86-mes-S_10
"assert fail: "

:_string_lib/libc.x86-mes-S_11
"="
