1 .text 2 .globl main 3 .type main, @function 4main: 5 leal 4(%esp), %ecx 6 andl $-16, %esp 7 pushl -4(%ecx) 8 pushl %ebp 9 movl %esp, %ebp 10 pushl %ebx 11 pushl %ecx 12 call __x86.get_pc_thunk.bx 13 addl $_GLOBAL_OFFSET_TABLE_, %ebx 14 subl $12, %esp 15 pushl bar_alias@GOTOFF(%ebx) 16 call foo@PLT 17 popl %eax 18 movl ptr@GOTOFF(%ebx), %eax 19 pushl (%eax) 20 call foo@PLT 21 addl $16, %esp 22 leal -8(%ebp), %esp 23 xorl %eax, %eax 24 popl %ecx 25 popl %ebx 26 popl %ebp 27 leal -4(%ecx), %esp 28 ret 29 .size main, .-main 30 .globl ptr 31 .section .data.rel.local,"aw",@progbits 32 .align 4 33 .type ptr, @object 34 .size ptr, 4 35ptr: 36 .long bar_alias 37 .section .text.__x86.get_pc_thunk.bx,"axG",@progbits,__x86.get_pc_thunk.bx,comdat 38 .globl __x86.get_pc_thunk.bx 39 .hidden __x86.get_pc_thunk.bx 40 .type __x86.get_pc_thunk.bx, @function 41__x86.get_pc_thunk.bx: 42 movl (%esp), %ebx 43 ret 44 .section .note.GNU-stack,"",@progbits 45