mirror of
https://github.com/ProgramSnail/Lama.git
synced 2025-12-15 03:08:46 +00:00
1640 lines
28 KiB
ArmAsm
1640 lines
28 KiB
ArmAsm
.file "runtime.c"
|
|
.text
|
|
.globl Blength
|
|
.type Blength, @function
|
|
Blength:
|
|
.LFB6:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
subl $16, %esp
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
movl %eax, -4(%ebp)
|
|
movl -4(%ebp), %eax
|
|
movl (%eax), %eax
|
|
addl %eax, %eax
|
|
andl $33554430, %eax
|
|
orl $1, %eax
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE6:
|
|
.size Blength, .-Blength
|
|
.globl de_hash
|
|
.type de_hash, @function
|
|
de_hash:
|
|
.LFB7:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $16, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
leal 5+buf.3077@GOTOFF(%eax), %edx
|
|
movl %edx, -8(%ebp)
|
|
movl -8(%ebp), %edx
|
|
leal -1(%edx), %ecx
|
|
movl %ecx, -8(%ebp)
|
|
movb $0, (%edx)
|
|
jmp .L4
|
|
.L5:
|
|
movl chars.3076@GOTOFF(%eax), %edx
|
|
movl 8(%ebp), %ecx
|
|
andl $63, %ecx
|
|
leal (%edx,%ecx), %ebx
|
|
movl -8(%ebp), %edx
|
|
leal -1(%edx), %ecx
|
|
movl %ecx, -8(%ebp)
|
|
movzbl (%ebx), %ecx
|
|
movb %cl, (%edx)
|
|
sarl $6, 8(%ebp)
|
|
.L4:
|
|
cmpl $0, 8(%ebp)
|
|
jne .L5
|
|
addl $1, -8(%ebp)
|
|
movl -8(%ebp), %eax
|
|
addl $16, %esp
|
|
popl %ebx
|
|
.cfi_restore 3
|
|
popl %ebp
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE7:
|
|
.size de_hash, .-de_hash
|
|
.local stringBuf
|
|
.comm stringBuf,12,4
|
|
.type createStringBuf, @function
|
|
createStringBuf:
|
|
.LFB8:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $4, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
subl $12, %esp
|
|
pushl $128
|
|
call malloc@PLT
|
|
addl $16, %esp
|
|
movl %eax, stringBuf@GOTOFF(%ebx)
|
|
movl $0, 4+stringBuf@GOTOFF(%ebx)
|
|
movl $128, 8+stringBuf@GOTOFF(%ebx)
|
|
nop
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE8:
|
|
.size createStringBuf, .-createStringBuf
|
|
.type deleteStringBuf, @function
|
|
deleteStringBuf:
|
|
.LFB9:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $4, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl stringBuf@GOTOFF(%eax), %edx
|
|
subl $12, %esp
|
|
pushl %edx
|
|
movl %eax, %ebx
|
|
call free@PLT
|
|
addl $16, %esp
|
|
nop
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE9:
|
|
.size deleteStringBuf, .-deleteStringBuf
|
|
.type extendStringBuf, @function
|
|
extendStringBuf:
|
|
.LFB10:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8+stringBuf@GOTOFF(%ebx), %eax
|
|
addl %eax, %eax
|
|
movl %eax, -12(%ebp)
|
|
movl -12(%ebp), %edx
|
|
movl stringBuf@GOTOFF(%ebx), %eax
|
|
subl $8, %esp
|
|
pushl %edx
|
|
pushl %eax
|
|
call realloc@PLT
|
|
addl $16, %esp
|
|
movl %eax, stringBuf@GOTOFF(%ebx)
|
|
movl -12(%ebp), %eax
|
|
movl %eax, 8+stringBuf@GOTOFF(%ebx)
|
|
nop
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE10:
|
|
.size extendStringBuf, .-extendStringBuf
|
|
.type printStringBuf, @function
|
|
printStringBuf:
|
|
.LFB11:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $52, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
movl %eax, -44(%ebp)
|
|
movl %gs:20, %eax
|
|
movl %eax, -12(%ebp)
|
|
xorl %eax, %eax
|
|
.L11:
|
|
leal 12(%ebp), %eax
|
|
movl %eax, -28(%ebp)
|
|
movl stringBuf@GOTOFF(%ebx), %eax
|
|
movl 4+stringBuf@GOTOFF(%ebx), %edx
|
|
addl %edx, %eax
|
|
movl %eax, -24(%ebp)
|
|
movl 8+stringBuf@GOTOFF(%ebx), %edx
|
|
movl 4+stringBuf@GOTOFF(%ebx), %eax
|
|
subl %eax, %edx
|
|
movl %edx, %eax
|
|
movl %eax, -20(%ebp)
|
|
movl -28(%ebp), %edx
|
|
movl -20(%ebp), %eax
|
|
pushl %edx
|
|
pushl -44(%ebp)
|
|
pushl %eax
|
|
pushl -24(%ebp)
|
|
call vsnprintf@PLT
|
|
addl $16, %esp
|
|
movl %eax, -16(%ebp)
|
|
movl -16(%ebp), %eax
|
|
cmpl -20(%ebp), %eax
|
|
jl .L12
|
|
call extendStringBuf
|
|
jmp .L11
|
|
.L12:
|
|
movl 4+stringBuf@GOTOFF(%ebx), %edx
|
|
movl -16(%ebp), %eax
|
|
addl %edx, %eax
|
|
movl %eax, 4+stringBuf@GOTOFF(%ebx)
|
|
nop
|
|
movl -12(%ebp), %eax
|
|
xorl %gs:20, %eax
|
|
je .L13
|
|
call __stack_chk_fail_local
|
|
.L13:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE11:
|
|
.size printStringBuf, .-printStringBuf
|
|
.section .rodata
|
|
.LC0:
|
|
.string "%d"
|
|
.LC1:
|
|
.string "\"%s\""
|
|
.LC2:
|
|
.string "["
|
|
.LC3:
|
|
.string ", "
|
|
.LC4:
|
|
.string "]"
|
|
.LC5:
|
|
.string "`%s"
|
|
.LC6:
|
|
.string " ("
|
|
.LC7:
|
|
.string ")"
|
|
.LC8:
|
|
.string "*** invalid tag: %x ***"
|
|
.text
|
|
.type printValue, @function
|
|
printValue:
|
|
.LFB12:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
je .L15
|
|
movl 8(%ebp), %eax
|
|
sarl %eax
|
|
subl $8, %esp
|
|
pushl %eax
|
|
leal .LC0@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printStringBuf
|
|
addl $16, %esp
|
|
jmp .L28
|
|
.L15:
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
movl %eax, -12(%ebp)
|
|
movl -12(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $-16777216, %eax
|
|
cmpl $16777216, %eax
|
|
je .L17
|
|
cmpl $33554432, %eax
|
|
je .L18
|
|
testl %eax, %eax
|
|
jne .L19
|
|
movl -12(%ebp), %eax
|
|
addl $4, %eax
|
|
subl $8, %esp
|
|
pushl %eax
|
|
leal .LC1@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printStringBuf
|
|
addl $16, %esp
|
|
jmp .L16
|
|
.L17:
|
|
subl $12, %esp
|
|
leal .LC2@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printStringBuf
|
|
addl $16, %esp
|
|
movl $0, -20(%ebp)
|
|
jmp .L20
|
|
.L22:
|
|
movl -12(%ebp), %eax
|
|
leal 4(%eax), %edx
|
|
movl -20(%ebp), %eax
|
|
sall $2, %eax
|
|
addl %edx, %eax
|
|
movl (%eax), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call printValue
|
|
addl $16, %esp
|
|
movl -12(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $16777215, %eax
|
|
subl $1, %eax
|
|
cmpl %eax, -20(%ebp)
|
|
je .L21
|
|
subl $12, %esp
|
|
leal .LC3@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printStringBuf
|
|
addl $16, %esp
|
|
.L21:
|
|
addl $1, -20(%ebp)
|
|
.L20:
|
|
movl -12(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $16777215, %eax
|
|
cmpl %eax, -20(%ebp)
|
|
jl .L22
|
|
subl $12, %esp
|
|
leal .LC4@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printStringBuf
|
|
addl $16, %esp
|
|
jmp .L16
|
|
.L18:
|
|
movl 8(%ebp), %eax
|
|
subl $8, %eax
|
|
movl (%eax), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call de_hash
|
|
addl $16, %esp
|
|
subl $8, %esp
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printStringBuf
|
|
addl $16, %esp
|
|
movl -12(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $16777215, %eax
|
|
testl %eax, %eax
|
|
je .L27
|
|
subl $12, %esp
|
|
leal .LC6@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printStringBuf
|
|
addl $16, %esp
|
|
movl $0, -16(%ebp)
|
|
jmp .L24
|
|
.L26:
|
|
movl -12(%ebp), %eax
|
|
leal 4(%eax), %edx
|
|
movl -16(%ebp), %eax
|
|
sall $2, %eax
|
|
addl %edx, %eax
|
|
movl (%eax), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call printValue
|
|
addl $16, %esp
|
|
movl -12(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $16777215, %eax
|
|
subl $1, %eax
|
|
cmpl %eax, -16(%ebp)
|
|
je .L25
|
|
subl $12, %esp
|
|
leal .LC3@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printStringBuf
|
|
addl $16, %esp
|
|
.L25:
|
|
addl $1, -16(%ebp)
|
|
.L24:
|
|
movl -12(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $16777215, %eax
|
|
cmpl %eax, -16(%ebp)
|
|
jl .L26
|
|
subl $12, %esp
|
|
leal .LC7@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printStringBuf
|
|
addl $16, %esp
|
|
jmp .L27
|
|
.L19:
|
|
movl -12(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $-16777216, %eax
|
|
subl $8, %esp
|
|
pushl %eax
|
|
leal .LC8@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printStringBuf
|
|
addl $16, %esp
|
|
jmp .L28
|
|
.L27:
|
|
nop
|
|
.L16:
|
|
.L28:
|
|
nop
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE12:
|
|
.size printValue, .-printValue
|
|
.globl Belem
|
|
.type Belem, @function
|
|
Belem:
|
|
.LFB13:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
subl $16, %esp
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
movl %eax, -4(%ebp)
|
|
sarl 12(%ebp)
|
|
movl -4(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $-16777216, %eax
|
|
testl %eax, %eax
|
|
jne .L30
|
|
movl -4(%ebp), %edx
|
|
movl 12(%ebp), %eax
|
|
addl %edx, %eax
|
|
addl $4, %eax
|
|
movzbl (%eax), %eax
|
|
movsbl %al, %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
jmp .L31
|
|
.L30:
|
|
movl -4(%ebp), %eax
|
|
leal 4(%eax), %edx
|
|
movl 12(%ebp), %eax
|
|
sall $2, %eax
|
|
addl %edx, %eax
|
|
movl (%eax), %eax
|
|
.L31:
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE13:
|
|
.size Belem, .-Belem
|
|
.globl Bstring
|
|
.type Bstring, @function
|
|
Bstring:
|
|
.LFB14:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
subl $12, %esp
|
|
pushl 8(%ebp)
|
|
call strlen@PLT
|
|
addl $16, %esp
|
|
movl %eax, -16(%ebp)
|
|
movl -16(%ebp), %eax
|
|
addl $5, %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call malloc@PLT
|
|
addl $16, %esp
|
|
movl %eax, -12(%ebp)
|
|
movl -12(%ebp), %eax
|
|
movl -16(%ebp), %edx
|
|
movl %edx, (%eax)
|
|
movl -16(%ebp), %eax
|
|
addl $1, %eax
|
|
movl %eax, %edx
|
|
movl -12(%ebp), %eax
|
|
addl $4, %eax
|
|
subl $4, %esp
|
|
pushl %edx
|
|
pushl 8(%ebp)
|
|
pushl %eax
|
|
call strncpy@PLT
|
|
addl $16, %esp
|
|
movl -12(%ebp), %eax
|
|
addl $4, %eax
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE14:
|
|
.size Bstring, .-Bstring
|
|
.globl Bstringval
|
|
.type Bstringval, @function
|
|
Bstringval:
|
|
.LFB15:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
call createStringBuf
|
|
subl $12, %esp
|
|
pushl 8(%ebp)
|
|
call printValue
|
|
addl $16, %esp
|
|
movl stringBuf@GOTOFF(%ebx), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call Bstring
|
|
addl $16, %esp
|
|
movl %eax, -12(%ebp)
|
|
call deleteStringBuf
|
|
movl -12(%ebp), %eax
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE15:
|
|
.size Bstringval, .-Bstringval
|
|
.globl Barray
|
|
.type Barray, @function
|
|
Barray:
|
|
.LFB16:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $36, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl %gs:20, %ecx
|
|
movl %ecx, -12(%ebp)
|
|
xorl %ecx, %ecx
|
|
movl 8(%ebp), %edx
|
|
addl $1, %edx
|
|
sall $2, %edx
|
|
subl $12, %esp
|
|
pushl %edx
|
|
movl %eax, %ebx
|
|
call malloc@PLT
|
|
addl $16, %esp
|
|
movl %eax, -20(%ebp)
|
|
movl 8(%ebp), %eax
|
|
orl $16777216, %eax
|
|
movl %eax, %edx
|
|
movl -20(%ebp), %eax
|
|
movl %edx, (%eax)
|
|
leal 12(%ebp), %eax
|
|
movl %eax, -28(%ebp)
|
|
movl $0, -24(%ebp)
|
|
jmp .L37
|
|
.L38:
|
|
movl -28(%ebp), %eax
|
|
leal 4(%eax), %edx
|
|
movl %edx, -28(%ebp)
|
|
movl (%eax), %eax
|
|
movl %eax, -16(%ebp)
|
|
movl -20(%ebp), %eax
|
|
leal 4(%eax), %edx
|
|
movl -24(%ebp), %eax
|
|
sall $2, %eax
|
|
addl %eax, %edx
|
|
movl -16(%ebp), %eax
|
|
movl %eax, (%edx)
|
|
addl $1, -24(%ebp)
|
|
.L37:
|
|
movl -24(%ebp), %eax
|
|
cmpl 8(%ebp), %eax
|
|
jl .L38
|
|
movl -20(%ebp), %eax
|
|
addl $4, %eax
|
|
movl -12(%ebp), %ecx
|
|
xorl %gs:20, %ecx
|
|
je .L40
|
|
call __stack_chk_fail_local
|
|
.L40:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE16:
|
|
.size Barray, .-Barray
|
|
.globl Bsexp
|
|
.type Bsexp, @function
|
|
Bsexp:
|
|
.LFB17:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $36, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl %gs:20, %ecx
|
|
movl %ecx, -12(%ebp)
|
|
xorl %ecx, %ecx
|
|
movl 8(%ebp), %edx
|
|
addl $2, %edx
|
|
sall $2, %edx
|
|
subl $12, %esp
|
|
pushl %edx
|
|
movl %eax, %ebx
|
|
call malloc@PLT
|
|
addl $16, %esp
|
|
movl %eax, -24(%ebp)
|
|
movl -24(%ebp), %eax
|
|
addl $4, %eax
|
|
movl %eax, -20(%ebp)
|
|
movl 8(%ebp), %eax
|
|
subl $1, %eax
|
|
orl $33554432, %eax
|
|
movl %eax, %edx
|
|
movl -20(%ebp), %eax
|
|
movl %edx, (%eax)
|
|
leal 12(%ebp), %eax
|
|
movl %eax, -32(%ebp)
|
|
movl $0, -28(%ebp)
|
|
jmp .L42
|
|
.L43:
|
|
movl -32(%ebp), %eax
|
|
leal 4(%eax), %edx
|
|
movl %edx, -32(%ebp)
|
|
movl (%eax), %eax
|
|
movl %eax, -16(%ebp)
|
|
movl -20(%ebp), %eax
|
|
leal 4(%eax), %edx
|
|
movl -28(%ebp), %eax
|
|
sall $2, %eax
|
|
addl %eax, %edx
|
|
movl -16(%ebp), %eax
|
|
movl %eax, (%edx)
|
|
addl $1, -28(%ebp)
|
|
.L42:
|
|
movl 8(%ebp), %eax
|
|
subl $1, %eax
|
|
cmpl %eax, -28(%ebp)
|
|
jl .L43
|
|
movl -32(%ebp), %eax
|
|
leal 4(%eax), %edx
|
|
movl %edx, -32(%ebp)
|
|
movl (%eax), %edx
|
|
movl -24(%ebp), %eax
|
|
movl %edx, (%eax)
|
|
movl -20(%ebp), %eax
|
|
addl $4, %eax
|
|
movl -12(%ebp), %ecx
|
|
xorl %gs:20, %ecx
|
|
je .L45
|
|
call __stack_chk_fail_local
|
|
.L45:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE17:
|
|
.size Bsexp, .-Bsexp
|
|
.globl Btag
|
|
.type Btag, @function
|
|
Btag:
|
|
.LFB18:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
subl $16, %esp
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
movl %eax, -4(%ebp)
|
|
movl -4(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $-16777216, %eax
|
|
cmpl $33554432, %eax
|
|
jne .L47
|
|
movl 8(%ebp), %eax
|
|
subl $8, %eax
|
|
movl (%eax), %eax
|
|
cmpl %eax, 12(%ebp)
|
|
jne .L47
|
|
movl -4(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $16777215, %eax
|
|
cmpl %eax, 16(%ebp)
|
|
jne .L47
|
|
movl $1, %eax
|
|
jmp .L48
|
|
.L47:
|
|
movl $0, %eax
|
|
.L48:
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE18:
|
|
.size Btag, .-Btag
|
|
.globl Barray_patt
|
|
.type Barray_patt, @function
|
|
Barray_patt:
|
|
.LFB19:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
subl $16, %esp
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
je .L51
|
|
movl $1, %eax
|
|
jmp .L52
|
|
.L51:
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
movl %eax, -4(%ebp)
|
|
movl -4(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $-16777216, %eax
|
|
cmpl $16777216, %eax
|
|
jne .L53
|
|
movl -4(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $16777215, %eax
|
|
cmpl %eax, 12(%ebp)
|
|
jne .L53
|
|
movl $1, %eax
|
|
jmp .L54
|
|
.L53:
|
|
movl $0, %eax
|
|
.L54:
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
.L52:
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE19:
|
|
.size Barray_patt, .-Barray_patt
|
|
.globl Bstring_patt
|
|
.type Bstring_patt, @function
|
|
Bstring_patt:
|
|
.LFB20:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl 8(%ebp), %edx
|
|
andl $1, %edx
|
|
testl %edx, %edx
|
|
je .L56
|
|
movl $1, %eax
|
|
jmp .L57
|
|
.L56:
|
|
movl 8(%ebp), %edx
|
|
subl $4, %edx
|
|
movl %edx, -16(%ebp)
|
|
movl 12(%ebp), %edx
|
|
subl $4, %edx
|
|
movl %edx, -12(%ebp)
|
|
movl -16(%ebp), %edx
|
|
movl (%edx), %edx
|
|
andl $-16777216, %edx
|
|
testl %edx, %edx
|
|
je .L58
|
|
movl $1, %eax
|
|
jmp .L57
|
|
.L58:
|
|
movl -12(%ebp), %edx
|
|
leal 4(%edx), %ecx
|
|
movl -16(%ebp), %edx
|
|
addl $4, %edx
|
|
subl $8, %esp
|
|
pushl %ecx
|
|
pushl %edx
|
|
movl %eax, %ebx
|
|
call strcmp@PLT
|
|
addl $16, %esp
|
|
testl %eax, %eax
|
|
jne .L59
|
|
movl $3, %eax
|
|
jmp .L57
|
|
.L59:
|
|
movl $1, %eax
|
|
.L57:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE20:
|
|
.size Bstring_patt, .-Bstring_patt
|
|
.globl Bboxed_patt
|
|
.type Bboxed_patt, @function
|
|
Bboxed_patt:
|
|
.LFB21:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L62
|
|
movl $3, %eax
|
|
jmp .L64
|
|
.L62:
|
|
movl $1, %eax
|
|
.L64:
|
|
popl %ebp
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE21:
|
|
.size Bboxed_patt, .-Bboxed_patt
|
|
.globl Bunboxed_patt
|
|
.type Bunboxed_patt, @function
|
|
Bunboxed_patt:
|
|
.LFB22:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl 8(%ebp), %eax
|
|
addl %eax, %eax
|
|
andl $2, %eax
|
|
orl $1, %eax
|
|
popl %ebp
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE22:
|
|
.size Bunboxed_patt, .-Bunboxed_patt
|
|
.globl Barray_tag_patt
|
|
.type Barray_tag_patt, @function
|
|
Barray_tag_patt:
|
|
.LFB23:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
je .L68
|
|
movl $1, %eax
|
|
jmp .L69
|
|
.L68:
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
movl (%eax), %eax
|
|
andl $-16777216, %eax
|
|
cmpl $16777216, %eax
|
|
jne .L70
|
|
movl $3, %eax
|
|
jmp .L69
|
|
.L70:
|
|
movl $1, %eax
|
|
.L69:
|
|
popl %ebp
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE23:
|
|
.size Barray_tag_patt, .-Barray_tag_patt
|
|
.globl Bstring_tag_patt
|
|
.type Bstring_tag_patt, @function
|
|
Bstring_tag_patt:
|
|
.LFB24:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
je .L73
|
|
movl $1, %eax
|
|
jmp .L74
|
|
.L73:
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
movl (%eax), %eax
|
|
andl $-16777216, %eax
|
|
testl %eax, %eax
|
|
jne .L75
|
|
movl $3, %eax
|
|
jmp .L74
|
|
.L75:
|
|
movl $1, %eax
|
|
.L74:
|
|
popl %ebp
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE24:
|
|
.size Bstring_tag_patt, .-Bstring_tag_patt
|
|
.globl Bsexp_tag_patt
|
|
.type Bsexp_tag_patt, @function
|
|
Bsexp_tag_patt:
|
|
.LFB25:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
je .L78
|
|
movl $1, %eax
|
|
jmp .L79
|
|
.L78:
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
movl (%eax), %eax
|
|
andl $-16777216, %eax
|
|
cmpl $33554432, %eax
|
|
jne .L80
|
|
movl $3, %eax
|
|
jmp .L79
|
|
.L80:
|
|
movl $1, %eax
|
|
.L79:
|
|
popl %ebp
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE25:
|
|
.size Bsexp_tag_patt, .-Bsexp_tag_patt
|
|
.globl Bsta
|
|
.type Bsta, @function
|
|
Bsta:
|
|
.LFB26:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
subl $56, %esp
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl 16(%ebp), %eax
|
|
movl %eax, -44(%ebp)
|
|
movl %gs:20, %eax
|
|
movl %eax, -12(%ebp)
|
|
xorl %eax, %eax
|
|
leal 20(%ebp), %eax
|
|
movl %eax, -28(%ebp)
|
|
movl $0, -24(%ebp)
|
|
jmp .L83
|
|
.L84:
|
|
movl -28(%ebp), %eax
|
|
leal 4(%eax), %edx
|
|
movl %edx, -28(%ebp)
|
|
movl (%eax), %eax
|
|
sarl %eax
|
|
movl %eax, -20(%ebp)
|
|
movl -20(%ebp), %eax
|
|
leal 0(,%eax,4), %edx
|
|
movl -44(%ebp), %eax
|
|
addl %edx, %eax
|
|
movl (%eax), %eax
|
|
movl %eax, -44(%ebp)
|
|
addl $1, -24(%ebp)
|
|
.L83:
|
|
movl 8(%ebp), %eax
|
|
subl $1, %eax
|
|
cmpl %eax, -24(%ebp)
|
|
jl .L84
|
|
movl -28(%ebp), %eax
|
|
leal 4(%eax), %edx
|
|
movl %edx, -28(%ebp)
|
|
movl (%eax), %eax
|
|
sarl %eax
|
|
movl %eax, -20(%ebp)
|
|
movl -44(%ebp), %eax
|
|
subl $4, %eax
|
|
movl %eax, -16(%ebp)
|
|
movl -16(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $-16777216, %eax
|
|
testl %eax, %eax
|
|
jne .L85
|
|
movl 12(%ebp), %eax
|
|
sarl %eax
|
|
movl %eax, %ecx
|
|
movl -20(%ebp), %edx
|
|
movl -44(%ebp), %eax
|
|
addl %edx, %eax
|
|
movl %ecx, %edx
|
|
movb %dl, (%eax)
|
|
jmp .L88
|
|
.L85:
|
|
movl -20(%ebp), %eax
|
|
leal 0(,%eax,4), %edx
|
|
movl -44(%ebp), %eax
|
|
addl %eax, %edx
|
|
movl 12(%ebp), %eax
|
|
movl %eax, (%edx)
|
|
.L88:
|
|
nop
|
|
movl -12(%ebp), %eax
|
|
xorl %gs:20, %eax
|
|
je .L87
|
|
call __stack_chk_fail_local
|
|
.L87:
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE26:
|
|
.size Bsta, .-Bsta
|
|
.globl Lraw
|
|
.type Lraw, @function
|
|
Lraw:
|
|
.LFB27:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl 8(%ebp), %eax
|
|
sarl %eax
|
|
popl %ebp
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE27:
|
|
.size Lraw, .-Lraw
|
|
.globl Lprintf
|
|
.type Lprintf, @function
|
|
Lprintf:
|
|
.LFB28:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $36, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl 8(%ebp), %edx
|
|
movl %edx, -28(%ebp)
|
|
movl %gs:20, %ecx
|
|
movl %ecx, -12(%ebp)
|
|
xorl %ecx, %ecx
|
|
leal 12(%ebp), %edx
|
|
movl %edx, -16(%ebp)
|
|
movl -16(%ebp), %edx
|
|
subl $8, %esp
|
|
pushl %edx
|
|
pushl -28(%ebp)
|
|
movl %eax, %ebx
|
|
call vprintf@PLT
|
|
addl $16, %esp
|
|
nop
|
|
movl -12(%ebp), %eax
|
|
xorl %gs:20, %eax
|
|
je .L92
|
|
call __stack_chk_fail_local
|
|
.L92:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE28:
|
|
.size Lprintf, .-Lprintf
|
|
.globl Lstrcat
|
|
.type Lstrcat, @function
|
|
Lstrcat:
|
|
.LFB29:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
movl %eax, -20(%ebp)
|
|
movl 12(%ebp), %eax
|
|
subl $4, %eax
|
|
movl %eax, -16(%ebp)
|
|
movl -20(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $16777215, %eax
|
|
movl %eax, %edx
|
|
movl -16(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $16777215, %eax
|
|
addl %edx, %eax
|
|
addl $5, %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call malloc@PLT
|
|
addl $16, %esp
|
|
movl %eax, -12(%ebp)
|
|
movl -20(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $16777215, %eax
|
|
movl %eax, %edx
|
|
movl -16(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $16777215, %eax
|
|
addl %eax, %edx
|
|
movl -12(%ebp), %eax
|
|
movl %edx, (%eax)
|
|
movl -20(%ebp), %eax
|
|
leal 4(%eax), %edx
|
|
movl -12(%ebp), %eax
|
|
addl $4, %eax
|
|
subl $8, %esp
|
|
pushl %edx
|
|
pushl %eax
|
|
call strcpy@PLT
|
|
addl $16, %esp
|
|
movl -16(%ebp), %eax
|
|
leal 4(%eax), %edx
|
|
movl -12(%ebp), %eax
|
|
addl $4, %eax
|
|
subl $8, %esp
|
|
pushl %edx
|
|
pushl %eax
|
|
call strcat@PLT
|
|
addl $16, %esp
|
|
movl -12(%ebp), %eax
|
|
addl $4, %eax
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE29:
|
|
.size Lstrcat, .-Lstrcat
|
|
.globl Lfprintf
|
|
.type Lfprintf, @function
|
|
Lfprintf:
|
|
.LFB30:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $36, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl 8(%ebp), %edx
|
|
movl %edx, -28(%ebp)
|
|
movl 12(%ebp), %edx
|
|
movl %edx, -32(%ebp)
|
|
movl %gs:20, %ecx
|
|
movl %ecx, -12(%ebp)
|
|
xorl %ecx, %ecx
|
|
leal 16(%ebp), %edx
|
|
movl %edx, -16(%ebp)
|
|
movl -16(%ebp), %edx
|
|
subl $4, %esp
|
|
pushl %edx
|
|
pushl -32(%ebp)
|
|
pushl -28(%ebp)
|
|
movl %eax, %ebx
|
|
call vfprintf@PLT
|
|
addl $16, %esp
|
|
nop
|
|
movl -12(%ebp), %eax
|
|
xorl %gs:20, %eax
|
|
je .L96
|
|
call __stack_chk_fail_local
|
|
.L96:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE30:
|
|
.size Lfprintf, .-Lfprintf
|
|
.globl Lfopen
|
|
.type Lfopen, @function
|
|
Lfopen:
|
|
.LFB31:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $4, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
subl $8, %esp
|
|
pushl 12(%ebp)
|
|
pushl 8(%ebp)
|
|
movl %eax, %ebx
|
|
call fopen@PLT
|
|
addl $16, %esp
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE31:
|
|
.size Lfopen, .-Lfopen
|
|
.globl Lfclose
|
|
.type Lfclose, @function
|
|
Lfclose:
|
|
.LFB32:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $4, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
subl $12, %esp
|
|
pushl 8(%ebp)
|
|
movl %eax, %ebx
|
|
call fclose@PLT
|
|
addl $16, %esp
|
|
nop
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE32:
|
|
.size Lfclose, .-Lfclose
|
|
.section .rodata
|
|
.LC9:
|
|
.string "> "
|
|
.text
|
|
.globl Lread
|
|
.type Lread, @function
|
|
Lread:
|
|
.LFB33:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl %gs:20, %eax
|
|
movl %eax, -12(%ebp)
|
|
xorl %eax, %eax
|
|
subl $12, %esp
|
|
leal .LC9@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printf@PLT
|
|
addl $16, %esp
|
|
movl stdout@GOT(%ebx), %eax
|
|
movl (%eax), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call fflush@PLT
|
|
addl $16, %esp
|
|
subl $8, %esp
|
|
leal -16(%ebp), %eax
|
|
pushl %eax
|
|
leal .LC0@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call __isoc99_scanf@PLT
|
|
addl $16, %esp
|
|
movl -16(%ebp), %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
movl -12(%ebp), %edx
|
|
xorl %gs:20, %edx
|
|
je .L102
|
|
call __stack_chk_fail_local
|
|
.L102:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE33:
|
|
.size Lread, .-Lread
|
|
.section .rodata
|
|
.LC10:
|
|
.string "%d\n"
|
|
.text
|
|
.globl Lwrite
|
|
.type Lwrite, @function
|
|
Lwrite:
|
|
.LFB34:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $4, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
sarl %eax
|
|
subl $8, %esp
|
|
pushl %eax
|
|
leal .LC10@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printf@PLT
|
|
addl $16, %esp
|
|
movl stdout@GOT(%ebx), %eax
|
|
movl (%eax), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call fflush@PLT
|
|
addl $16, %esp
|
|
movl $0, %eax
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE34:
|
|
.size Lwrite, .-Lwrite
|
|
.section .rodata
|
|
.LC11:
|
|
.string "Start, end: %lx, %lx\n"
|
|
.LC12:
|
|
.string "Root: %lx %lx %lx\n"
|
|
.text
|
|
.globl __gc_root_scan_data
|
|
.type __gc_root_scan_data, @function
|
|
__gc_root_scan_data:
|
|
.LFB35:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl %gs:20, %eax
|
|
movl %eax, -12(%ebp)
|
|
xorl %eax, %eax
|
|
movl __gc_data_start@GOT(%ebx), %eax
|
|
movl %eax, -16(%ebp)
|
|
subl $4, %esp
|
|
movl __gc_data_end@GOT(%ebx), %eax
|
|
pushl %eax
|
|
movl __gc_data_start@GOT(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC11@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printf@PLT
|
|
addl $16, %esp
|
|
jmp .L106
|
|
.L108:
|
|
movl -16(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L107
|
|
movl -16(%ebp), %eax
|
|
movl (%eax), %edx
|
|
movl -16(%ebp), %eax
|
|
leal -16(%ebp), %ecx
|
|
pushl %ecx
|
|
pushl %edx
|
|
pushl %eax
|
|
leal .LC12@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printf@PLT
|
|
addl $16, %esp
|
|
.L107:
|
|
movl -16(%ebp), %eax
|
|
addl $4, %eax
|
|
movl %eax, -16(%ebp)
|
|
.L106:
|
|
movl -16(%ebp), %eax
|
|
movl __gc_data_end@GOT(%ebx), %edx
|
|
cmpl %edx, %eax
|
|
jne .L108
|
|
nop
|
|
movl -12(%ebp), %eax
|
|
xorl %gs:20, %eax
|
|
je .L109
|
|
call __stack_chk_fail_local
|
|
.L109:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE35:
|
|
.size __gc_root_scan_data, .-__gc_root_scan_data
|
|
.section .rodata
|
|
.LC13:
|
|
.string "STA 0x%lx\n"
|
|
.text
|
|
.globl Ltest
|
|
.type Ltest, @function
|
|
Ltest:
|
|
.LFB36:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $4, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
subl $12, %esp
|
|
pushl $10
|
|
call putchar@PLT
|
|
addl $16, %esp
|
|
movl __start_text@GOT(%ebx), %eax
|
|
subl $8, %esp
|
|
pushl %eax
|
|
leal .LC13@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printf@PLT
|
|
addl $16, %esp
|
|
movl __stop_text@GOT(%ebx), %eax
|
|
subl $8, %esp
|
|
pushl %eax
|
|
leal .LC13@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printf@PLT
|
|
addl $16, %esp
|
|
call __gc_root_scan_data
|
|
call __gc_root_scan_stack@PLT
|
|
nop
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE36:
|
|
.size Ltest, .-Ltest
|
|
.local buf.3077
|
|
.comm buf.3077,6,4
|
|
.section .rodata
|
|
.align 4
|
|
.LC14:
|
|
.string "_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNJPQRSTUVWXYZ"
|
|
.section .data.rel.local,"aw"
|
|
.align 4
|
|
.type chars.3076, @object
|
|
.size chars.3076, 4
|
|
chars.3076:
|
|
.long .LC14
|
|
.section .text.__x86.get_pc_thunk.ax,"axG",@progbits,__x86.get_pc_thunk.ax,comdat
|
|
.globl __x86.get_pc_thunk.ax
|
|
.hidden __x86.get_pc_thunk.ax
|
|
.type __x86.get_pc_thunk.ax, @function
|
|
__x86.get_pc_thunk.ax:
|
|
.LFB37:
|
|
.cfi_startproc
|
|
movl (%esp), %eax
|
|
ret
|
|
.cfi_endproc
|
|
.LFE37:
|
|
.section .text.__x86.get_pc_thunk.bx,"axG",@progbits,__x86.get_pc_thunk.bx,comdat
|
|
.globl __x86.get_pc_thunk.bx
|
|
.hidden __x86.get_pc_thunk.bx
|
|
.type __x86.get_pc_thunk.bx, @function
|
|
__x86.get_pc_thunk.bx:
|
|
.LFB38:
|
|
.cfi_startproc
|
|
movl (%esp), %ebx
|
|
ret
|
|
.cfi_endproc
|
|
.LFE38:
|
|
.hidden __stack_chk_fail_local
|
|
.ident "GCC: (GNU) 8.2.1 20180831"
|
|
.section .note.GNU-stack,"",@progbits
|