I know there is a loop here, but I can't figure out what is going on. To be more precise, what is going on in the first three lines?
0x08048d45 <phase_2+42>: lea -0x14(%ebp),%ebx
0x08048d48 <phase_2+45>: mov -0x8(%ebx),%eax
0x08048d4b <phase_2+48>: add -0x4(%ebx),%eax
0x08048d4e <phase_2+51>: cmp %eax,(%ebx) //compare register values
0x08048d50 <phase_2+53>: je 0x8048d57 <phase_2+60> // if true, jump to 0x08048d57
0x08048d52 <phase_2+55>: call 0x8049155 <func> //calls func otherwise
0x08048d57 <phase_2+60>: add $0x4,%ebx //add 4 to ebx
0x08048d5a <phase_2+63>: lea -0x4(%ebp),%eax
0x08048d5d <phase_2+66>: cmp %eax,%ebx //compare register values
0x08048d5f <phase_2+68>: jne 0x8048d48 <phase_2+45> // if true, jump to 0x08048d48