
L1: 55 ?? push ebp
 8b ec ?? mov ebp, esp
 6a ff ?? push 0xff<255,-1>
 68 60 35 40 00 ?? push 0x00403560
 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 60 40 00 ?? mov eax, dword ds:[0x00406004]
 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 5b ?? jmp basic block L18

L8: 3d 00 10 00 00 ?? cmp eax, 0x00001000<4096>
 72 21 ?? jb basic block L13

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

L10: ff 15 84 40 40 00 ?? call dword ds:[0x00404084<".L@">]

L11: 51 ?? push ecx
 e8 21 06 00 00 ?? call function 0x004021f5

L12: 83 c4 04 ?? add esp, 4
 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 33 ?? jmp basic block L18

L13: 50 ?? push eax
 e8 0d 06 00 00 ?? call function 0x004021f5

L14: 83 c4 04 ?? add esp, 4
 8b d8 ?? mov ebx, eax
 eb 26 ?? jmp basic block L18

L15: 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
 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 5d 01 00 00 ?? call function 0x00401d60

L16: 89 45 e8 ?? mov dword ss:[ebp + 0xe8<232,-24>], eax
 b8 0c 1c 40 00 ?? mov eax, basic block L17
 c3 ?? ret

L17: 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>]

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

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

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

L21: 8b ce ?? mov ecx, esi

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

L23: 50 ?? push eax
 51 ?? push ecx
 53 ?? push ebx
 e8 6c 18 00 00 ?? call function 0x004034a0

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

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

L26: 8b 0e ?? mov ecx, dword ds:[esi]
 40 ?? inc eax
 3d 00 10 00 00 ?? cmp eax, 0x00001000<4096>
 72 32 ?? jb basic block L36

L27: f6 c1 1f ?? test cl, 0x1f<31>
 74 06 ?? je basic block L29

L28: ff 15 08 41 40 00 ?? call dword ds:[0x00404108<"DQ@">]

L29: 8b 41 fc ?? mov eax, dword ds:[ecx + 0xfc<252,-4>]
 3b c1 ?? cmp eax, ecx
 72 06 ?? jb basic block L31

L30: ff 15 08 41 40 00 ?? call dword ds:[0x00404108<"DQ@">]

L31: 2b c8 ?? sub ecx, eax
 83 f9 04 ?? cmp ecx, 4
 73 06 ?? jae basic block L33

L32: ff 15 08 41 40 00 ?? call dword ds:[0x00404108<"DQ@">]

L33: 83 f9 23 ?? cmp ecx, 0x23<35>
 76 06 ?? jbe basic block L35

L34: ff 15 08 41 40 00 ?? call dword ds:[0x00404108<"DQ@">]

L35: 8b c8 ?? mov ecx, eax

L36: 51 ?? push ecx
 e8 a7 05 00 00 ?? call function 0x00402228

L37: 83 c4 04 ?? add esp, 4

L38: 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 L40

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

L40: 8b c6 ?? mov eax, esi

L41: 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 L43

L42: 8b f3 ?? mov esi, ebx

L43: 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

