
L1: 55 ?? push ebp
 8b ec ?? mov ebp, esp
 6a ff ?? push 0xff<255,-1>
 68 c0 27 40 00 ?? push 0x004027c0
 64 a1 00 00 00 00 ?? mov eax, dword fs:[0]
 50 ?? push eax
 83 ec 18 ?? sub esp, 0x18<24>
 53 ?? push ebx
 56 ?? push esi
 57 ?? push edi
 a1 18 50 40 00 ?? mov eax, dword ds:[0x00405018]
 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 45 0c ?? mov eax, dword ss:[ebp + 12]
 8b 7d 08 ?? mov edi, dword ss:[ebp + 8]
 8b f0 ?? mov esi, eax
 83 ce 0f ?? or esi, 15
 83 fe fe ?? cmp esi, 0xfe<254,-2>
 76 04 ?? jbe basic block L3

L2: 8b f0 ?? mov esi, eax
 eb 27 ?? jmp basic block L6

L3: 8b 5f 14 ?? mov ebx, dword ds:[edi + 0x14<20>]
 b8 ab aa aa aa ?? mov eax, 0xaaaaaaab
 f7 e6 ?? mul esi
 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>
 2b c1 ?? sub eax, ecx
 8d 34 19 ?? lea esi, ds:[ecx + ebx]
 3b d8 ?? cmp ebx, eax
 76 05 ?? jbe basic block L6

L5: be fe ff ff ff ?? mov esi, 0xfffffffe<4294967294,-2>

L6: 33 c0 ?? xor eax, eax
 8d 4e 01 ?? lea ecx, ds:[esi + 1]
 89 45 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], eax
 3b c8 ?? cmp ecx, eax
 76 13 ?? jbe basic block L10

L7: 83 f9 ff ?? cmp ecx, 0xff<255,-1>
 77 13 ?? ja basic block L11

L8: 51 ?? push ecx
 ff 15 f4 30 40 00 ?? call dword ds:[0x004030f4<".=@">]

L9: 83 c4 04 ?? add esp, 4
 85 c0 ?? test eax, eax
 74 05 ?? je basic block L11

L10: 89 45 0c ?? mov dword ss:[ebp + 12], eax
 eb 4d ?? jmp basic block L16

L11: 8d 4d ec ?? lea ecx, ss:[ebp + 0xec<236,-20>]
 51 ?? push ecx
 8d 4d dc ?? lea ecx, ss:[ebp + 0xdc<220,-36>]
 c7 45 ec 00 00 00 00 ?? mov dword ss:[ebp + 0xec<236,-20>], 0
 ff 15 04 31 40 00 ?? call dword ds:[function 0x00403104]

L12: 68 28 35 40 00 ?? push 0x00403528
 8d 55 dc ?? lea edx, ss:[ebp + 0xdc<220,-36>]
 52 ?? push edx
 c7 45 dc a8 32 40 00 ?? mov dword ss:[ebp + 0xdc<220,-36>], 0x004032a8
 e8 7b 0e 00 00 ?? call function 0x004026de

L13: 8b 45 0c ?? mov eax, dword ss:[ebp + 12]
 8d 48 01 ?? lea ecx, ds:[eax + 1]
 89 65 f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], esp
 89 45 e8 ?? mov dword ss:[ebp + 0xe8<232,-24>], eax
 c6 45 fc 02 ?? mov byte ss:[ebp + 0xfc<252,-4>], 2
 e8 a8 00 00 00 ?? call function 0x00401920

L14: 89 45 0c ?? mov dword ss:[ebp + 12], eax
 b8 81 18 40 00 ?? mov eax, basic block L15
 c3 ?? ret

L15: 8b 7d 08 ?? mov edi, dword ss:[ebp + 8]
 8b 75 e8 ?? mov esi, dword ss:[ebp + 0xe8<232,-24>]

L16: 8b 5d 10 ?? mov ebx, dword ss:[ebp + 0x10<16>]
 85 db ?? test ebx, ebx
 74 1a ?? je basic block L22

L17: 83 7f 14 10 ?? cmp dword ds:[edi + 0x14<20>], 0x10<16>
 72 04 ?? jb basic block L19

L18: 8b 07 ?? mov eax, dword ds:[edi]
 eb 02 ?? jmp basic block L20

L19: 8b c7 ?? mov eax, edi

L20: 53 ?? push ebx
 50 ?? push eax
 8b 45 0c ?? mov eax, dword ss:[ebp + 12]
 50 ?? push eax
 e8 33 0e 00 00 ?? call function 0x004026d8

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

L22: 83 7f 14 10 ?? cmp dword ds:[edi + 0x14<20>], 0x10<16>
 72 0c ?? jb basic block L25

L23: 8b 0f ?? mov ecx, dword ds:[edi]
 51 ?? push ecx
 ff 15 f8 30 40 00 ?? call dword ds:[0x004030f8]

L24: 83 c4 04 ?? add esp, 4

L25: 8b 45 0c ?? mov eax, dword ss:[ebp + 12]
 c6 07 00 ?? mov byte ds:[edi], 0
 89 07 ?? mov dword ds:[edi], eax
 89 77 14 ?? mov dword ds:[edi + 0x14<20>], esi
 89 5f 10 ?? mov dword ds:[edi + 0x10<16>], ebx
 83 fe 10 ?? cmp esi, 0x10<16>
 72 02 ?? jb basic block L27

L26: 8b f8 ?? mov edi, eax

L27: c6 04 1f 00 ?? mov byte ds:[edi + ebx], 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 0c 00 ?? ret 12

