(gdb) disass main
Dump of assembler code for function main:
0x08048414 <+0>: push ebp
0x08048415 <+1>: mov ebp,esp
0x08048417 <+3>: and esp,0xfffffff0
0x0804841a <+6>: add esp,0xffffff80
0x0804841d <+9>: mov DWORD PTR [esp+0x7c],0x0
0x08048425 <+17>: mov DWORD PTR [esp+0x74],0x0
0x0804842d <+25>: jmp 0x8048498 <main+132>
0x0804842f <+27>: mov DWORD PTR [esp+0x78],0x0
0x08048437 <+35>: jmp 0x8048480 <main+108>
/*begin section that I have no clue how it works*/
0x08048439 <+37>: mov edx,DWORD PTR [esp+0x74]
0x0804843d <+41>: mov eax,edx
0x0804843f <+43>: add eax,eax
0x08048441 <+45>: add eax,edx
0x08048443 <+47>: add eax,eax
0x08048445 <+49>: add eax,DWORD PTR [esp+0x78]
/*end section*/
0x08048449 <+53>: mov edx,DWORD PTR [esp+0x7c]
0x0804844d <+57>: mov DWORD PTR [esp+eax*4+0x14],edx
0x08048451 <+61>: add DWORD PTR [esp+0x7c],0x1
0x08048456 <+66>: mov edx,DWORD PTR [esp+0x74]
0x0804845a <+70>: mov eax,edx
0x0804845c <+72>: add eax,eax
0x0804845e <+74>: add eax,edx
0x08048460 <+76>: add eax,eax
0x08048462 <+78>: add eax,DWORD PTR [esp+0x78]
0x08048466 <+82>: mov edx,DWORD PTR [esp+eax*4+0x14]
0x0804846a <+86>: mov eax,0x8048580
0x0804846f <+91>: mov DWORD PTR [esp+0x4],edx
0x08048473 <+95>: mov DWORD PTR [esp],eax
0x08048476 <+98>: call 0x8048320 <printf@plt>
0x0804847b <+103>: add DWORD PTR [esp+0x78],0x1
---Type <return> to continue, or q <return> to quit---
0x08048480 <+108>: cmp DWORD PTR [esp+0x78],0x5
0x08048485 <+113>: jle 0x8048439 <main+37>
=> 0x08048487 <+115>: mov DWORD PTR [esp],0xa
0x0804848e <+122>: call 0x8048350 <putchar@plt>
0x08048493 <+127>: add DWORD PTR [esp+0x74],0x1
0x08048498 <+132>: cmp DWORD PTR [esp+0x74],0x3
0x0804849d <+137>: jle 0x804842f <main+27>
0x0804849f <+139>: mov eax,0x0
0x080484a4 <+144>: leave
0x080484a5 <+145>: ret