.text .globl main .type main, @function main: subl $12, %esp call *foo@GOT call *bar@GOT call *plt@GOT movl foo@GOT, %eax call *%eax movl bar@GOT, %eax call *%eax movl plt@GOT, %eax call *%eax call __x86.get_pc_thunk.cx addl $_GLOBAL_OFFSET_TABLE_, %ecx movl foo@GOT(%ecx), %ecx call *%ecx subl $12, %esp pushl $0 pushl $0 # Push a dummy return address onto stack. jmp *myexit@GOT .size main, .-main .section .text.__x86.get_pc_thunk.cx,"axG",@progbits,__x86.get_pc_thunk.cx,comdat .globl __x86.get_pc_thunk.cx .hidden __x86.get_pc_thunk.cx .type __x86.get_pc_thunk.cx, @function __x86.get_pc_thunk.cx: movl (%esp), %ecx ret