

:strlen
	push___%rbp
	mov____%rsp,%rbp
	sub____$i32,%rsp %0x10a4
					# int i = 0; 
	mov____$i32,%rax %0x0
	mov____%eax,0x8(%rbp) !0x-8
					# while (s[i]) ...
	jmp32  %_strlen_4_continue
:_strlen_4_loop
	mov____0x8(%rbp),%rax !0x-8
	movslq_%eax,%rax
	mov____%rbp,%rdi
	add____$i8,%rdi !0x-8
	addl___$i8,(%rdi) !0x1
	test___%rax,%rax
:_strlen_4_continue
	mov____0x8(%rbp),%rax !0x-8
	movslq_%eax,%rax
	mov____0x8(%rbp),%rdi !0x10
	add____%rdi,%rax
	movzbq_(%rax),%rax
	movsbq_%al,%rax
					# jmp test LABEL
	test___%rax,%rax
	test___%al,%al
	je32   %_strlen_4_break
	jmp32  %_strlen_4_loop
:_strlen_4_break
	mov____0x8(%rbp),%rax !0x-8
	movslq_%eax,%rax
	mov____%rbp,%rsp
	pop____%rbp
	ret


:eputs
	push___%rbp
	mov____%rsp,%rbp
	sub____$i32,%rsp %0x10a4
					# int i = strlen(s); 
					# strlen(s)
	mov____0x8(%rbp),%rdi !0x10
	push___%rdi
	call32 %strlen
	add____$i8,%rsp !0x8
	mov____%eax,0x8(%rbp) !0x-8
					# write(2, s, i)
	mov____0x8(%rbp),%rdi !0x-8
	movslq_%edi,%rdi
	push___%rdi
	mov____0x8(%rbp),%rdi !0x10
	push___%rdi
	mov____$i32,%rdi %0x2
	push___%rdi
	call32 %write
	add____$i8,%rsp !0x18
	test___%rax,%rax
	mov____$i32,%rax %0x0
	mov____%rbp,%rsp
	pop____%rbp
	ret


:oputs
	push___%rbp
	mov____%rsp,%rbp
	sub____$i32,%rsp %0x10a4
					# int i = strlen(s); 
					# strlen(s)
	mov____0x8(%rbp),%rdi !0x10
	push___%rdi
	call32 %strlen
	add____$i8,%rsp !0x8
	mov____%eax,0x8(%rbp) !0x-8
					# write(1, s, i)
	mov____0x8(%rbp),%rdi !0x-8
	movslq_%edi,%rdi
	push___%rdi
	mov____0x8(%rbp),%rdi !0x10
	push___%rdi
	mov____$i32,%rdi %0x1
	push___%rdi
	call32 %write
	add____$i8,%rsp !0x18
	test___%rax,%rax
	mov____$i32,%rax %0x0
	mov____%rbp,%rsp
	pop____%rbp
	ret


:puts
	push___%rbp
	mov____%rsp,%rbp
	sub____$i32,%rsp %0x10a4
					# oputs(s)
	mov____0x8(%rbp),%rdi !0x10
	push___%rdi
	call32 %oputs
	add____$i8,%rsp !0x8
	test___%rax,%rax
					# oputs(" ")
	push___$i32 &_string_lib/x86_64-mes/libc-mini.S_0
	call32 %oputs
	add____$i8,%rsp !0x8
	mov____%rbp,%rsp
	pop____%rbp
	ret


:_exit
	push___%rbp
	mov____%rsp,%rbp
	sub____$i32,%rsp %0x10a4
	mov____0x8(%rbp),%rdi !0x10
	mov____$i32,%rax SYS_exit
	syscall
	mov____%rbp,%rsp
	pop____%rbp
	ret


:_write
	push___%rbp
	mov____%rsp,%rbp
	sub____$i32,%rsp %0x10a4
	mov____0x8(%rbp),%rdi !0x10
	mov____0x8(%rbp),%rsi !0x18
	mov____0x8(%rbp),%rdx !0x20
	mov____$i32,%rax SYS_write
	syscall
	mov____%rbp,%rsp
	pop____%rbp
	ret


:write
	push___%rbp
	mov____%rsp,%rbp
	sub____$i32,%rsp %0x10a4
					# int r = _write(filedes, buffer, size); 
					# _write(filedes, buffer, size)
	mov____0x8(%rbp),%rdi !0x20
	push___%rdi
	mov____0x8(%rbp),%rdi !0x18
	push___%rdi
	mov____0x8(%rbp),%rdi !0x10
	movslq_%edi,%rdi
	push___%rdi
	call32 %_write
	add____$i8,%rsp !0x18
	mov____%eax,0x8(%rbp) !0x-8
					# if (r < 0) ...else ...
	mov____0x8(%rbp),%rax !0x-8
	movslq_%eax,%rax
	mov____$i32,%rdi %0x0
	sub____%rdi,%rax
	setl___%al
	movzbq_%al,%rax
	test___%rax,%rax
					# jmp test LABEL
	je32   %_write_12_else
					# errno = -r
	mov____0x8(%rbp),%rax !0x-8
	movslq_%eax,%rax
	mov____$i32,%rdi %0x0
	xchg___%rax,%rdi
	sub____%rdi,%rax
	movl___%eax,0x32 &errno
	test___%rax,%rax
					# r = -1
	mov____$i64,%rax %0xffffffff %0x-1
	mov____%rax,0x8(%rbp) !0x-8
	test___%rax,%rax
	jmp32  %_write_12_break
:_write_12_else
					# errno = 0
	mov____$i32,%rax %0x0
	movl___%eax,0x32 &errno
	test___%rax,%rax
:_write_12_break
	mov____0x8(%rbp),%rax !0x-8
	movslq_%eax,%rax
	mov____%rbp,%rsp
	pop____%rbp
	ret


:exit
	push___%rbp
	mov____%rsp,%rbp
	sub____$i32,%rsp %0x10a4
					# if (__call_at_exit) ...
	mov____0x32,%rax &__call_at_exit
					# jmp test LABEL
	test___%rax,%rax
	je32   %_exit_1_break
					# (*__call_at_exit)()
	mov____0x32,%rax &__call_at_exit
	call___*%rax
	add____$i8,%rsp !0x0
	test___%rax,%rax
	jmp32  %_exit_1_break
:_exit_1_break
					# _exit(code)
	mov____0x8(%rbp),%rdi !0x10
	movslq_%edi,%rdi
	push___%rdi
	call32 %_exit
	add____$i8,%rsp !0x8
	test___%rax,%rax
	mov____%rbp,%rsp
	pop____%rbp
	ret

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

:_string_lib/x86_64-mes/libc-mini.S_0
"
"

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

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