
L1: 55 ?? push ebp
 8b ec ?? mov ebp, esp
 6a ff ?? push 0xff<255,-1>
 68 70 48 40 00 ?? push 0x00404870
 64 a1 00 00 00 00 ?? mov eax, dword fs:[0]
 50 ?? push eax
 51 ?? push ecx
 83 ec 14 ?? sub esp, 0x14<20>
 53 ?? push ebx
 56 ?? push esi
 57 ?? push edi
 b8 cc cc cc cc ?? mov eax, 0xcccccccc
 89 45 dc ?? mov dword ss:[ebp + 0xdc<220,-36>], eax
 89 45 e0 ?? mov dword ss:[ebp + 0xe0<224,-32>], eax
 89 45 e4 ?? mov dword ss:[ebp + 0xe4<228,-28>], eax
 89 45 e8 ?? mov dword ss:[ebp + 0xe8<232,-24>], eax
 89 45 ec ?? mov dword ss:[ebp + 0xec<236,-20>], eax
 a1 18 70 40 00 ?? mov eax, dword ds:[0x00407018]
 33 c5 ?? xor eax, ebp
 50 ?? push eax
 8d 45 f4 ?? lea eax, ss:[ebp + 0xf4<244,-12>]
 64 a3 00 00 00 00 ?? mov dword fs:[0], eax
 89 65 f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], esp
 89 4d ec ?? mov dword ss:[ebp + 0xec<236,-20>], ecx
 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
 83 c8 0f ?? or eax, 15
 89 45 e8 ?? mov dword ss:[ebp + 0xe8<232,-24>], eax
 8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
 e8 4c ff ff ff ?? call function 0x00401f80

L2: 3b 45 e8 ?? cmp eax, dword ss:[ebp + 0xe8<232,-24>]
 73 08 ?? jae basic block L4

L3: 8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
 89 4d e8 ?? mov dword ss:[ebp + 0xe8<232,-24>], ecx
 eb 52 ?? jmp basic block L11

L4: 8b 45 e8 ?? mov eax, dword ss:[ebp + 0xe8<232,-24>]
 33 d2 ?? xor edx, edx
 b9 03 00 00 00 ?? mov ecx, 3
 f7 f1 ?? div ecx
 8b 55 ec ?? mov edx, dword ss:[ebp + 0xec<236,-20>]
 8b 4a 18 ?? mov ecx, dword ds:[edx + 0x18<24>]
 d1 e9 ?? shr ecx, 1
 3b c8 ?? cmp ecx, eax
 77 02 ?? ja basic block L6

L5: eb 38 ?? jmp basic block L11

L6: 8b 55 ec ?? mov edx, dword ss:[ebp + 0xec<236,-20>]
 8b 72 18 ?? mov esi, dword ds:[edx + 0x18<24>]
 d1 ee ?? shr esi, 1
 8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
 e8 15 ff ff ff ?? call function 0x00401f80

L7: 2b c6 ?? sub eax, esi
 8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
 39 41 18 ?? cmp dword ds:[ecx + 0x18<24>], eax
 77 13 ?? ja basic block L9

L8: 8b 55 ec ?? mov edx, dword ss:[ebp + 0xec<236,-20>]
 8b 42 18 ?? mov eax, dword ds:[edx + 0x18<24>]
 d1 e8 ?? shr eax, 1
 8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
 03 41 18 ?? add eax, dword ds:[ecx + 0x18<24>]
 89 45 e8 ?? mov dword ss:[ebp + 0xe8<232,-24>], eax
 eb 0b ?? jmp basic block L11

L9: 8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
 e8 f0 fe ff ff ?? call function 0x00401f80

L10: 89 45 e8 ?? mov dword ss:[ebp + 0xe8<232,-24>], eax

L11: c7 45 fc 00 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 0
 8b 55 e8 ?? mov edx, dword ss:[ebp + 0xe8<232,-24>]
 83 c2 01 ?? add edx, 1
 52 ?? push edx
 8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
 83 c1 1c ?? add ecx, 0x1c<28>
 e8 e4 00 00 00 ?? call function 0x00402190

L12: 89 45 e0 ?? mov dword ss:[ebp + 0xe0<224,-32>], eax
 8b 45 e0 ?? mov eax, dword ss:[ebp + 0xe0<224,-32>]
 89 45 e4 ?? mov dword ss:[ebp + 0xe4<228,-28>], eax
 eb 60 ?? jmp 0x00402117
 c7 45 fc ff ff ff ff ?? mov dword ss:[ebp + 0xfc<252,-4>], 0xffffffff<4294967295,-1>
 83 7d 0c 00 ?? cmp dword ss:[ebp + 12], 0
 76 19 ?? jbe basic block L21

L13: 89 65 f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], esp
 8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
 89 4d e8 ?? mov dword ss:[ebp + 0xe8<232,-24>], ecx
 c6 45 fc 02 ?? mov byte ss:[ebp + 0xfc<252,-4>], 2
 8b 55 e8 ?? mov edx, dword ss:[ebp + 0xe8<232,-24>]
 83 c2 01 ?? add edx, 1
 52 ?? push edx
 8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
 83 c1 1c ?? add ecx, 0x1c<28>
 e8 ba 00 00 00 ?? call function 0x00402190

L14: 89 45 dc ?? mov dword ss:[ebp + 0xdc<220,-36>], eax
 8b 45 dc ?? mov eax, dword ss:[ebp + 0xdc<220,-36>]
 89 45 e4 ?? mov dword ss:[ebp + 0xe4<228,-28>], eax
 eb 22 ?? jmp 0x00402103
 c7 45 fc 01 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 1
 c7 45 fc 01 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 1
 b8 1e 21 40 00 ?? mov eax, 0x0040211e
 c3 ?? ret

L15: 6a 00 ?? push 0
 6a 01 ?? push 1
 8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
 e8 b3 f3 ff ff ?? call function 0x004014a0

L16: 6a 00 ?? push 0
 6a 00 ?? push 0
 e8 54 19 00 00 ?? call function 0x00403a4a

L17: c7 45 fc 01 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 1
 b8 0a 21 40 00 ?? mov eax, 0x0040210a
 c3 ?? ret

L18: 8b 4d 0c ?? mov ecx, dword ss:[ebp + 12]
 51 ?? push ecx
 8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
 e8 50 f9 ff ff ?? call function 0x00401a80

L19: 50 ?? push eax
 8b 55 e4 ?? mov edx, dword ss:[ebp + 0xe4<228,-28>]
 52 ?? push edx
 e8 f6 ef ff ff ?? call function 0x00401130

L20: 83 c4 0c ?? add esp, 12

L21: 6a 00 ?? push 0
 6a 01 ?? push 1
 8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
 e8 57 f3 ff ff ?? call function 0x004014a0

L22: 8b 45 ec ?? mov eax, dword ss:[ebp + 0xec<236,-20>]
 8b 4d e4 ?? mov ecx, dword ss:[ebp + 0xe4<228,-28>]
 89 48 04 ?? mov dword ds:[eax + 4], ecx
 8b 55 ec ?? mov edx, dword ss:[ebp + 0xec<236,-20>]
 8b 45 e8 ?? mov eax, dword ss:[ebp + 0xe8<232,-24>]
 89 42 18 ?? mov dword ds:[edx + 0x18<24>], eax
 8b 4d 0c ?? mov ecx, dword ss:[ebp + 12]
 51 ?? push ecx
 8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
 e8 c9 f8 ff ff ?? call function 0x00401a30

L23: 8b 4d f4 ?? mov ecx, dword ss:[ebp + 0xf4<244,-12>]
 64 89 0d 00 00 00 00 ?? mov dword fs:[0], ecx
 59 ?? pop ecx
 5f ?? pop edi
 5e ?? pop esi
 5b ?? pop ebx
 83 c4 24 ?? add esp, 0x24<36>
 3b ec ?? cmp ebp, esp
 e8 11 17 00 00 ?? call function 0x00403890

L24: 8b e5 ?? mov esp, ebp
 5d ?? pop ebp
 c2 08 00 ?? ret 8

