
L1: 8b ff ?? mov edi, edi
 55 ?? push ebp
 8b ec ?? mov ebp, esp
 83 ec 10 ?? sub esp, 0x10<16>
 8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
 8b 41 10 ?? mov eax, dword ds:[ecx + 0x10<16>]
 56 ?? push esi
 8b 75 0c ?? mov esi, dword ss:[ebp + 12]
 57 ?? push edi
 8b fe ?? mov edi, esi
 2b 79 0c ?? sub edi, dword ds:[ecx + 12]
 83 c6 fc ?? add esi, 0xfc<252,-4>
 c1 ef 0f ?? shr edi, 15
 8b cf ?? mov ecx, edi
 69 c9 04 02 00 00 ?? imul ecx, ecx, 0x00000204<516>
 8d 8c 01 44 01 00 00 ?? lea ecx, ds:[ecx + eax + 0x00000144<324>]
 89 4d f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], ecx
 8b 0e ?? mov ecx, dword ds:[esi]
 49 ?? dec ecx
 89 4d fc ?? mov dword ss:[ebp + 0xfc<252,-4>], ecx
 f6 c1 01 ?? test cl, 1
 0f 85 d3 02 00 00 ?? jne basic block L54

L2: 53 ?? push ebx
 8d 1c 31 ?? lea ebx, ds:[ecx + esi]
 8b 13 ?? mov edx, dword ds:[ebx]
 89 55 f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], edx
 8b 56 fc ?? mov edx, dword ds:[esi + 0xfc<252,-4>]
 89 55 f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], edx
 8b 55 f4 ?? mov edx, dword ss:[ebp + 0xf4<244,-12>]
 89 5d 0c ?? mov dword ss:[ebp + 12], ebx
 f6 c2 01 ?? test dl, 1
 75 74 ?? jne basic block L13

L3: c1 fa 04 ?? sar edx, 4
 4a ?? dec edx
 83 fa 3f ?? cmp edx, 0x3f<63>
 76 03 ?? jbe basic block L5

L4: 6a 3f ?? push 0x3f<63>
 5a ?? pop edx

L5: 8b 4b 04 ?? mov ecx, dword ds:[ebx + 4]
 3b 4b 08 ?? cmp ecx, dword ds:[ebx + 8]
 75 42 ?? jne basic block L12

L6: bb 00 00 00 80 ?? mov ebx, 0x80000000
 83 fa 20 ?? cmp edx, 0x20<32>
 73 19 ?? jae basic block L9

L7: 8b ca ?? mov ecx, edx
 d3 eb ?? shr ebx, cl
 8d 4c 02 04 ?? lea ecx, ds:[edx + eax + 4]
 f7 d3 ?? not ebx
 21 5c b8 44 ?? and dword ds:[eax + edi * 4 + 0x44<68>], ebx
 fe 09 ?? dec byte ds:[ecx]
 75 23 ?? jne basic block L11

L8: 8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
 21 19 ?? and dword ds:[ecx], ebx
 eb 1c ?? jmp basic block L11

L9: 8d 4a e0 ?? lea ecx, ds:[edx + 0xe0<224,-32>]
 d3 eb ?? shr ebx, cl
 8d 4c 02 04 ?? lea ecx, ds:[edx + eax + 4]
 f7 d3 ?? not ebx
 21 9c b8 c4 00 00 00 ?? and dword ds:[eax + edi * 4 + 0x000000c4<196>], ebx
 fe 09 ?? dec byte ds:[ecx]
 75 06 ?? jne basic block L11

L10: 8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
 21 59 04 ?? and dword ds:[ecx + 4], ebx

L11: 8b 5d 0c ?? mov ebx, dword ss:[ebp + 12]

L12: 8b 53 08 ?? mov edx, dword ds:[ebx + 8]
 8b 5b 04 ?? mov ebx, dword ds:[ebx + 4]
 8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
 03 4d f4 ?? add ecx, dword ss:[ebp + 0xf4<244,-12>]
 89 5a 04 ?? mov dword ds:[edx + 4], ebx
 8b 55 0c ?? mov edx, dword ss:[ebp + 12]
 8b 5a 04 ?? mov ebx, dword ds:[edx + 4]
 8b 52 08 ?? mov edx, dword ds:[edx + 8]
 89 53 08 ?? mov dword ds:[ebx + 8], edx
 89 4d fc ?? mov dword ss:[ebp + 0xfc<252,-4>], ecx

L13: 8b d1 ?? mov edx, ecx
 c1 fa 04 ?? sar edx, 4
 4a ?? dec edx
 83 fa 3f ?? cmp edx, 0x3f<63>
 76 03 ?? jbe basic block L15

L14: 6a 3f ?? push 0x3f<63>
 5a ?? pop edx

L15: 8b 5d f8 ?? mov ebx, dword ss:[ebp + 0xf8<248,-8>]
 83 e3 01 ?? and ebx, 1
 89 5d f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], ebx
 0f 85 8f 00 00 00 ?? jne basic block L29

L16: 2b 75 f8 ?? sub esi, dword ss:[ebp + 0xf8<248,-8>]
 8b 5d f8 ?? mov ebx, dword ss:[ebp + 0xf8<248,-8>]
 c1 fb 04 ?? sar ebx, 4
 6a 3f ?? push 0x3f<63>
 89 75 0c ?? mov dword ss:[ebp + 12], esi
 4b ?? dec ebx
 5e ?? pop esi
 3b de ?? cmp ebx, esi
 76 02 ?? jbe basic block L18

L17: 8b de ?? mov ebx, esi

L18: 03 4d f8 ?? add ecx, dword ss:[ebp + 0xf8<248,-8>]
 8b d1 ?? mov edx, ecx
 c1 fa 04 ?? sar edx, 4
 4a ?? dec edx
 89 4d fc ?? mov dword ss:[ebp + 0xfc<252,-4>], ecx
 3b d6 ?? cmp edx, esi
 76 02 ?? jbe basic block L20

L19: 8b d6 ?? mov edx, esi

L20: 3b da ?? cmp ebx, edx
 74 5e ?? je basic block L28

L21: 8b 4d 0c ?? mov ecx, dword ss:[ebp + 12]
 8b 71 04 ?? mov esi, dword ds:[ecx + 4]
 3b 71 08 ?? cmp esi, dword ds:[ecx + 8]
 75 3b ?? jne basic block L27

L22: be 00 00 00 80 ?? mov esi, 0x80000000
 83 fb 20 ?? cmp ebx, 0x20<32>
 73 17 ?? jae basic block L25

L23: 8b cb ?? mov ecx, ebx
 d3 ee ?? shr esi, cl
 f7 d6 ?? not esi
 21 74 b8 44 ?? and dword ds:[eax + edi * 4 + 0x44<68>], esi
 fe 4c 03 04 ?? dec byte ds:[ebx + eax + 4]
 75 21 ?? jne basic block L27

L24: 8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
 21 31 ?? and dword ds:[ecx], esi
 eb 1a ?? jmp basic block L27

L25: 8d 4b e0 ?? lea ecx, ds:[ebx + 0xe0<224,-32>]
 d3 ee ?? shr esi, cl
 f7 d6 ?? not esi
 21 b4 b8 c4 00 00 00 ?? and dword ds:[eax + edi * 4 + 0x000000c4<196>], esi
 fe 4c 03 04 ?? dec byte ds:[ebx + eax + 4]
 75 06 ?? jne basic block L27

L26: 8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
 21 71 04 ?? and dword ds:[ecx + 4], esi

L27: 8b 4d 0c ?? mov ecx, dword ss:[ebp + 12]
 8b 71 08 ?? mov esi, dword ds:[ecx + 8]
 8b 49 04 ?? mov ecx, dword ds:[ecx + 4]
 89 4e 04 ?? mov dword ds:[esi + 4], ecx
 8b 4d 0c ?? mov ecx, dword ss:[ebp + 12]
 8b 71 04 ?? mov esi, dword ds:[ecx + 4]
 8b 49 08 ?? mov ecx, dword ds:[ecx + 8]
 89 4e 08 ?? mov dword ds:[esi + 8], ecx

L28: 8b 75 0c ?? mov esi, dword ss:[ebp + 12]
 eb 03 ?? jmp basic block L30

L29: 8b 5d 08 ?? mov ebx, dword ss:[ebp + 8]

L30: 83 7d f4 00 ?? cmp dword ss:[ebp + 0xf4<244,-12>], 0
 75 08 ?? jne basic block L32

L31: 3b da ?? cmp ebx, edx
 0f 84 80 00 00 00 ?? je basic block L40

L32: 8b 4d f0 ?? mov ecx, dword ss:[ebp + 0xf0<240,-16>]
 8d 0c d1 ?? lea ecx, ds:[ecx + edx * 8]
 8b 59 04 ?? mov ebx, dword ds:[ecx + 4]
 89 4e 08 ?? mov dword ds:[esi + 8], ecx
 89 5e 04 ?? mov dword ds:[esi + 4], ebx
 89 71 04 ?? mov dword ds:[ecx + 4], esi
 8b 4e 04 ?? mov ecx, dword ds:[esi + 4]
 89 71 08 ?? mov dword ds:[ecx + 8], esi
 8b 4e 04 ?? mov ecx, dword ds:[esi + 4]
 3b 4e 08 ?? cmp ecx, dword ds:[esi + 8]
 75 60 ?? jne basic block L40

L33: 8a 4c 02 04 ?? mov cl, byte ds:[edx + eax + 4]
 88 4d 0f ?? mov byte ss:[ebp + 15], cl
 fe c1 ?? inc cl
 88 4c 02 04 ?? mov byte ds:[edx + eax + 4], cl
 83 fa 20 ?? cmp edx, 0x20<32>
 73 25 ?? jae basic block L37

L34: 80 7d 0f 00 ?? cmp byte ss:[ebp + 15], 0
 75 0e ?? jne basic block L36

L35: 8b ca ?? mov ecx, edx
 bb 00 00 00 80 ?? mov ebx, 0x80000000
 d3 eb ?? shr ebx, cl
 8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
 09 19 ?? or dword ds:[ecx], ebx

L36: bb 00 00 00 80 ?? mov ebx, 0x80000000
 8b ca ?? mov ecx, edx
 d3 eb ?? shr ebx, cl
 8d 44 b8 44 ?? lea eax, ds:[eax + edi * 4 + 0x44<68>]
 09 18 ?? or dword ds:[eax], ebx
 eb 29 ?? jmp basic block L40

L37: 80 7d 0f 00 ?? cmp byte ss:[ebp + 15], 0
 75 10 ?? jne basic block L39

L38: 8d 4a e0 ?? lea ecx, ds:[edx + 0xe0<224,-32>]
 bb 00 00 00 80 ?? mov ebx, 0x80000000
 d3 eb ?? shr ebx, cl
 8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
 09 59 04 ?? or dword ds:[ecx + 4], ebx

L39: 8d 4a e0 ?? lea ecx, ds:[edx + 0xe0<224,-32>]
 ba 00 00 00 80 ?? mov edx, 0x80000000
 d3 ea ?? shr edx, cl
 8d 84 b8 c4 00 00 00 ?? lea eax, ds:[eax + edi * 4 + 0x000000c4<196>]
 09 10 ?? or dword ds:[eax], edx

L40: 8b 45 fc ?? mov eax, dword ss:[ebp + 0xfc<252,-4>]
 89 06 ?? mov dword ds:[esi], eax
 89 44 30 fc ?? mov dword ds:[eax + esi + 0xfc<252,-4>], eax
 8b 45 f0 ?? mov eax, dword ss:[ebp + 0xf0<240,-16>]
 ff 08 ?? dec dword ds:[eax]
 0f 85 f3 00 00 00 ?? jne basic block L53

L41: a1 08 8a 42 00 ?? mov eax, dword ds:[0x00428a08]
 85 c0 ?? test eax, eax
 0f 84 d8 00 00 00 ?? je basic block L52

L42: 8b 0d 30 8c 42 00 ?? mov ecx, dword ds:[0x00428c30]
 8b 35 4c 92 42 00 ?? mov esi, dword ds:[0x0042924c]
 68 00 40 00 00 ?? push 0x00004000<16384>
 c1 e1 0f ?? shl ecx, 15
 03 48 0c ?? add ecx, dword ds:[eax + 12]
 bb 00 80 00 00 ?? mov ebx, 0x00008000<32768>
 53 ?? push ebx
 51 ?? push ecx
 ff d6 ?? call esi

L43: 8b 0d 30 8c 42 00 ?? mov ecx, dword ds:[0x00428c30]
 a1 08 8a 42 00 ?? mov eax, dword ds:[0x00428a08]
 ba 00 00 00 80 ?? mov edx, 0x80000000
 d3 ea ?? shr edx, cl
 09 50 08 ?? or dword ds:[eax + 8], edx
 a1 08 8a 42 00 ?? mov eax, dword ds:[0x00428a08]
 8b 40 10 ?? mov eax, dword ds:[eax + 0x10<16>]
 8b 0d 30 8c 42 00 ?? mov ecx, dword ds:[0x00428c30]
 83 a4 88 c4 00 00 00 00 ?? and dword ds:[eax + ecx * 4 + 0x000000c4<196>], 0
 a1 08 8a 42 00 ?? mov eax, dword ds:[0x00428a08]
 8b 40 10 ?? mov eax, dword ds:[eax + 0x10<16>]
 fe 48 43 ?? dec byte ds:[eax + 0x43<67>]
 a1 08 8a 42 00 ?? mov eax, dword ds:[0x00428a08]
 8b 48 10 ?? mov ecx, dword ds:[eax + 0x10<16>]
 80 79 43 00 ?? cmp byte ds:[ecx + 0x43<67>], 0
 75 09 ?? jne basic block L45

L44: 83 60 04 fe ?? and dword ds:[eax + 4], 0xfe<254,-2>
 a1 08 8a 42 00 ?? mov eax, dword ds:[0x00428a08]

L45: 83 78 08 ff ?? cmp dword ds:[eax + 8], 0xff<255,-1>
 75 65 ?? jne basic block L52

L46: 53 ?? push ebx
 6a 00 ?? push 0
 ff 70 0c ?? push dword ds:[eax + 12]
 ff d6 ?? call esi

L47: a1 08 8a 42 00 ?? mov eax, dword ds:[0x00428a08]
 ff 70 10 ?? push dword ds:[eax + 0x10<16>]
 6a 00 ?? push 0
 ff 35 b4 88 42 00 ?? push dword ds:[0x004288b4]
 ff 15 c0 91 42 00 ?? call dword ds:[0x004291c0]

L48: 8b 0d 1c 8c 42 00 ?? mov ecx, dword ds:[0x00428c1c]
 a1 08 8a 42 00 ?? mov eax, dword ds:[0x00428a08]
 6b c9 14 ?? imul ecx, ecx, 0x14<20>
 8b 15 20 8c 42 00 ?? mov edx, dword ds:[0x00428c20]
 2b c8 ?? sub ecx, eax
 8d 4c 11 ec ?? lea ecx, ds:[ecx + edx + 0xec<236,-20>]
 51 ?? push ecx
 8d 48 14 ?? lea ecx, ds:[eax + 0x14<20>]
 51 ?? push ecx
 50 ?? push eax
 e8 60 14 00 00 ?? call function 0x00406950

L49: 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
 83 c4 0c ?? add esp, 12
 ff 0d 1c 8c 42 00 ?? dec dword ds:[0x00428c1c]
 3b 05 08 8a 42 00 ?? cmp eax, dword ds:[0x00428a08]
 76 04 ?? jbe basic block L51

L50: 83 6d 08 14 ?? sub dword ss:[ebp + 8], 0x14<20>

L51: a1 20 8c 42 00 ?? mov eax, dword ds:[0x00428c20]
 a3 28 8c 42 00 ?? mov dword ds:[0x00428c28], eax

L52: 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
 a3 08 8a 42 00 ?? mov dword ds:[0x00428a08], eax
 89 3d 30 8c 42 00 ?? mov dword ds:[0x00428c30], edi

L53: 5b ?? pop ebx

L54: 5f ?? pop edi
 5e ?? pop esi
 c9 ?? leave
 c3 ?? ret

