Lots of things:
_start
__libc_start_main
, which calls __libc_csu_init
, which calls a bunch of other stuff__libc_start_main
calls main
exit
happens_start
%ebp
, %esi
, etc. and relatively small addresses, probably a 32-bit binary (stack used for argument passing)argc
popped into %esi
argv
moved from to %ecx
__libc_start_main
__libc_init_first
, retrieving global variable __environ
__libc_start_main
fini
and rtld_fini
arguments to run via at_exit
for cleanupinit
argumentmain
with argc
and argv
exit
with return value of main__libc_csu_init
_init()
argc
, argv
, and envp
_init
exit
atexit()
(in reverse order of registration)fini_array