
L1: 55 ?? push ebp
 8b ec ?? mov ebp, esp
 6a ff ?? push 0xff<255,-1>
 68 b0 47 40 00 ?? push 0x004047b0
 64 a1 00 00 00 00 ?? mov eax, dword fs:[0]
 50 ?? push eax
 83 ec 0c ?? sub esp, 12
 53 ?? push ebx
 56 ?? push esi
 57 ?? push edi
 a1 04 80 40 00 ?? mov eax, dword ds:[0x00408004]
 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
 8b f1 ?? mov esi, ecx
 89 75 ec ?? mov dword ss:[ebp + 0xec<236,-20>], esi
 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
 8b f8 ?? mov edi, eax
 83 cf 0f ?? or edi, 15
 83 ff fe ?? cmp edi, 0xfe<254,-2>
 76 04 ?? jbe basic block L3

L2: 8b f8 ?? mov edi, eax
 eb 27 ?? jmp basic block L6

L3: 8b 5e 14 ?? mov ebx, dword ds:[esi + 0x14<20>]
 b8 ab aa aa aa ?? mov eax, 0xaaaaaaab
 f7 e7 ?? mul edi
 8b cb ?? mov ecx, ebx
 d1 e9 ?? shr ecx, 1
 d1 ea ?? shr edx, 1
 3b ca ?? cmp ecx, edx
 76 13 ?? jbe basic block L6

L4: b8 fe ff ff ff ?? mov eax, 0xfffffffe<4294967294,-2>
 8d 3c 19 ?? lea edi, ds:[ecx + ebx]
 2b c1 ?? sub eax, ecx
 3b d8 ?? cmp ebx, eax
 76 05 ?? jbe basic block L6

L5: bf fe ff ff ff ?? mov edi, 0xfffffffe<4294967294,-2>

L6: 8d 47 01 ?? lea eax, ds:[edi + 1]
 c7 45 fc 00 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 0
 85 c0 ?? test eax, eax
 75 04 ?? jne basic block L8

L7: 33 db ?? xor ebx, ebx
 eb 70 ?? jmp basic block L21

L8: 3d 00 10 00 00 ?? cmp eax, 0x00001000<4096>
 72 2b ?? jb basic block L15

L9: 8d 48 23 ?? lea ecx, ds:[eax + 0x23<35>]
 3b c8 ?? cmp ecx, eax
 77 06 ?? ja basic block L11

L10: ff 15 98 90 40 00 ?? call dword ds:[0x00409098]

L11: 51 ?? push ecx
 e8 6a f8 ff ff ?? call function 0x004011ae

L12: 83 c4 04 ?? add esp, 4
 85 c0 ?? test eax, eax
 75 06 ?? jne basic block L14

L13: ff 15 00 92 40 00 ?? call dword ds:[0x00409200]

L14: 8d 58 23 ?? lea ebx, ds:[eax + 0x23<35>]
 83 e3 e0 ?? and ebx, 0xe0<224,-32>
 89 43 fc ?? mov dword ds:[ebx + 0xfc<252,-4>], eax
 eb 3e ?? jmp basic block L21

L15: 50 ?? push eax
 e8 4c f8 ff ff ?? call function 0x004011ae

L16: 8b d8 ?? mov ebx, eax
 83 c4 04 ?? add esp, 4
 85 db ?? test ebx, ebx
 75 2f ?? jne basic block L21

L17: ff 15 00 92 40 00 ?? call dword ds:[0x00409200]

L18: 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
 8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
 89 45 08 ?? mov dword ss:[ebp + 8], eax
 40 ?? inc eax
 89 65 f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], esp
 50 ?? push eax
 c6 45 fc 02 ?? mov byte ss:[ebp + 0xfc<252,-4>], 2
 e8 a0 f6 ff ff ?? call function 0x00401028

L19: 89 45 e8 ?? mov dword ss:[ebp + 0xe8<232,-24>], eax
 b8 91 19 40 00 ?? mov eax, basic block L20
 c3 ?? ret

L20: 8b 75 ec ?? mov esi, dword ss:[ebp + 0xec<236,-20>]
 8b 7d 08 ?? mov edi, dword ss:[ebp + 8]
 8b 5d e8 ?? mov ebx, dword ss:[ebp + 0xe8<232,-24>]

L21: 8b 45 0c ?? mov eax, dword ss:[ebp + 12]
 85 c0 ?? test eax, eax
 74 1b ?? je basic block L28

L22: 83 7e 14 10 ?? cmp dword ds:[esi + 0x14<20>], 0x10<16>
 72 04 ?? jb basic block L24

L23: 8b 0e ?? mov ecx, dword ds:[esi]
 eb 02 ?? jmp basic block L25

L24: 8b ce ?? mov ecx, esi

L25: 85 c0 ?? test eax, eax
 74 0b ?? je basic block L28

L26: 50 ?? push eax
 51 ?? push ecx
 53 ?? push ebx
 e8 15 1d 00 00 ?? call function 0x004036ce

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

L28: 8b 46 14 ?? mov eax, dword ds:[esi + 0x14<20>]
 83 f8 10 ?? cmp eax, 0x10<16>
 72 0e ?? jb basic block L31

L29: 6a 01 ?? push 1
 40 ?? inc eax
 50 ?? push eax
 ff 36 ?? push dword ds:[esi]
 e8 20 f8 ff ff ?? call function 0x004011ef

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

L31: c7 46 14 0f 00 00 00 ?? mov dword ds:[esi + 0x14<20>], 15
 83 7e 14 10 ?? cmp dword ds:[esi + 0x14<20>], 0x10<16>
 c7 46 10 00 00 00 00 ?? mov dword ds:[esi + 0x10<16>], 0
 72 04 ?? jb basic block L33

L32: 8b 06 ?? mov eax, dword ds:[esi]
 eb 02 ?? jmp basic block L34

L33: 8b c6 ?? mov eax, esi

L34: c6 00 00 ?? mov byte ds:[eax], 0
 8b 45 0c ?? mov eax, dword ss:[ebp + 12]
 89 1e ?? mov dword ds:[esi], ebx
 89 7e 14 ?? mov dword ds:[esi + 0x14<20>], edi
 83 7e 14 10 ?? cmp dword ds:[esi + 0x14<20>], 0x10<16>
 89 46 10 ?? mov dword ds:[esi + 0x10<16>], eax
 72 02 ?? jb basic block L36

L35: 8b f3 ?? mov esi, ebx

L36: c6 04 06 00 ?? mov byte ds:[esi + eax], 0
 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
 8b e5 ?? mov esp, ebp
 5d ?? pop ebp
 c2 08 00 ?? ret 8

