asm4: <+0>: push ebp <+1>: mov ebp,esp <+3>: push ebx <+4>: sub esp,0x10 <+7>: mov DWORD PTR [ebp-0x10],0x260 <+14>: mov DWORD PTR [ebp-0xc],0x0 <+21>: jmp 0x518 | ------------->| <+23>: add DWORD PTR [ebp-0xc],0x1 | <+27>: mov edx,DWORD PTR [ebp-0xc] <-------------| edx = a; <+30>: mov eax,DWORD PTR [ebp+0x8] ; eax = a1 <+33>: add eax,edx; ; <+35>: movzx eax,BYTE PTR [eax] <+38>: test al,al <+40>: jne 0x514 len = strlen(a1) <+42>: mov DWORD PTR [ebp-0x8],0x1 c = 1; <+49>: jmp 0x587 <+51>: mov edx,DWORD PTR [ebp-0x8] <+54>: mov eax,DWORD PTR [ebp+0x8] <+57>: add eax,edx <+59>: movzx eax,BYTE PTR [eax] <+62>: movsx edx,al edx = (unsigned int)arg1[c]; <+65>: mov eax,DWORD PTR [ebp-0x8] <+68>: lea ecx,[eax-0x1] <+71>: mov eax,DWORD PTR [ebp+0x8] <+74>: add eax,ecx <+76>: movzx eax,BYTE PTR [eax] eax = (unsigned int)arg1[c - 1] <+79>: movsx eax,al ????????? <+82>: sub edx,eax <+84>: mov eax,edx <+86>: mov edx,eax edx = edx - eax = arg1[c] - arg1[c - 1] <+88>: mov eax,DWORD PTR [ebp-0x10] <+91>: lea ebx,[edx+eax*1] ebx = edx + a = (arg1[c] - arg1[c - 1] + a) <+94>: mov eax,DWORD PTR [ebp-0x8] <+97>: lea edx,[eax+0x1] edx = c + 1 <+100>: mov eax,DWORD PTR [ebp+0x8] <+103>: add eax,edx <+105>: movzx eax,BYTE PTR [eax] <+108>: movsx edx,al edx = (unsigned int)arg1[c + 1] <+111>: mov ecx,DWORD PTR [ebp-0x8] <+114>: mov eax,DWORD PTR [ebp+0x8] <+117>: add eax,ecx <+119>: movzx eax,BYTE PTR [eax] eax = (unsigned int)arg1[c] <+122>: movsx eax,al <+125>: sub edx,eax edx = arg1[c + 1] - arg1[c] <+127>: mov eax,edx eax = edx <+129>: add eax,ebx eax = eax + ebx ( = arg1[c + 1] - arg1[c] + arg1[c] - arg1[c - 1] + a) <+131>: mov DWORD PTR [ebp-0x10],eax a = eax <+134>: add DWORD PTR [ebp-0x8],0x1 ++c; <+138>: mov eax,DWORD PTR [ebp-0xc] eax = len <+141>: sub eax,0x1 eax -= 1 <+144>: cmp DWORD PTR [ebp-0x8],eax if (c < eax) <+147>: jl 0x530 jump to 51 <+149>: mov eax,DWORD PTR [ebp-0x10] <+152>: add esp,0x10 <+155>: pop ebx <+156>: pop ebp <+157>: ret ebp -0x10 0x00000260 (a) -0x0C 0x00000000 (len) -0x08 0x00000001 (c) -0x04 =0x00 +0x04 +0x08 +0x0C +0x10