I got an x86 binary for linux and I use gdb to disassemble the main function. I see this:
0x08048080 <+0>: push 0x8049128
0x08048085 <+5>: call 0x804810f
0x0804808a <+10>: call 0x804809f
0x0804808f <+15>: cmp eax,0x10f
0x08048094 <+20>: je 0x80480dc
0x0804809a <+26>: call 0x8048103
I could not understand it since the regular main that I disassemble normally looks like the one below with some preambles.
0x0804841d <+0>: push %ebp
0x0804841e <+1>: mov %esp,%ebp
0x08048420 <+3>: and $0xfffffff0,%esp
0x08048423 <+6>: sub $0x10,%esp
0x08048426 <+9>: movl $0x80484d0,(%esp)
0x0804842d <+16>: call 0x80482f0 <puts@plt>
0x08048432 <+21>: leave
0x08048433 <+22>: ret
Questions: Can someone explain the first disassembly?