
L1: 8b ff ?? mov edi, edi
 55 ?? push ebp
 8b ec ?? mov ebp, esp
 51 ?? push ecx
 51 ?? push ecx
 8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
 8b 41 08 ?? mov eax, dword ds:[ecx + 8]
 53 ?? push ebx
 56 ?? push esi
 8b 71 10 ?? mov esi, dword ds:[ecx + 0x10<16>]
 57 ?? push edi
 33 db ?? xor ebx, ebx
 eb 03 ?? jmp basic block L3

L2: 03 c0 ?? add eax, eax
 43 ?? inc ebx

L3: 85 c0 ?? test eax, eax
 7d f9 ?? jge basic block L2

L4: 8b c3 ?? mov eax, ebx
 69 c0 04 02 00 00 ?? imul eax, eax, 0x00000204<516>
 8d 84 30 44 01 00 00 ?? lea eax, ds:[eax + esi + 0x00000144<324>]
 6a 3f ?? push 0x3f<63>
 89 45 f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], eax
 5a ?? pop edx

L5: 89 40 08 ?? mov dword ds:[eax + 8], eax
 89 40 04 ?? mov dword ds:[eax + 4], eax
 83 c0 08 ?? add eax, 8
 4a ?? dec edx

L6: 75 f4 ?? jne basic block L5

L7: 6a 04 ?? push 4
 8b fb ?? mov edi, ebx
 68 00 10 00 00 ?? push 0x00001000<4096>
 c1 e7 0f ?? shl edi, 15
 03 79 0c ?? add edi, dword ds:[ecx + 12]
 68 00 80 00 00 ?? push 0x00008000<32768>
 57 ?? push edi
 ff 15 c0 92 43 00 ?? call dword ds:[0x004392c0]

L8: 85 c0 ?? test eax, eax
 75 08 ?? jne basic block L10

L9: 83 c8 ff ?? or eax, 0xff<255,-1>
 e9 9d 00 00 00 ?? jmp basic block L18

L10: 8d 97 00 70 00 00 ?? lea edx, ds:[edi + 0x00007000<28672>]
 89 55 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], edx
 3b fa ?? cmp edi, edx
 77 43 ?? ja basic block L15

L11: 8b ca ?? mov ecx, edx
 2b cf ?? sub ecx, edi
 c1 e9 0c ?? shr ecx, 12
 8d 47 10 ?? lea eax, ds:[edi + 0x10<16>]
 41 ?? inc ecx

L12: 83 48 f8 ff ?? or dword ds:[eax + 0xf8<248,-8>], 0xff<255,-1>
 83 88 ec 0f 00 00 ff ?? or dword ds:[eax + 0x00000fec<4076>], 0xff<255,-1>
 8d 90 fc 0f 00 00 ?? lea edx, ds:[eax + 0x00000ffc<4092>]
 89 10 ?? mov dword ds:[eax], edx
 8d 90 fc ef ff ff ?? lea edx, ds:[eax + 0xffffeffc<4294963196,-4100>]
 c7 40 fc f0 0f 00 00 ?? mov dword ds:[eax + 0xfc<252,-4>], 0x00000ff0<4080>
 89 50 04 ?? mov dword ds:[eax + 4], edx
 c7 80 e8 0f 00 00 f0 0f ?? mov dword ds:[eax + 0x00000fe8<4072>], 0x00000ff0<4080>
 00 00
 05 00 10 00 00 ?? add eax, 0x00001000<4096>
 49 ?? dec ecx

L13: 75 cb ?? jne basic block L12

L14: 8b 55 fc ?? mov edx, dword ss:[ebp + 0xfc<252,-4>]

L15: 8b 45 f8 ?? mov eax, dword ss:[ebp + 0xf8<248,-8>]
 05 f8 01 00 00 ?? add eax, 0x000001f8<504>
 8d 4f 0c ?? lea ecx, ds:[edi + 12]
 89 48 04 ?? mov dword ds:[eax + 4], ecx
 89 41 08 ?? mov dword ds:[ecx + 8], eax
 8d 4a 0c ?? lea ecx, ds:[edx + 12]
 89 48 08 ?? mov dword ds:[eax + 8], ecx
 89 41 04 ?? mov dword ds:[ecx + 4], eax
 83 64 9e 44 00 ?? and dword ds:[esi + ebx * 4 + 0x44<68>], 0
 33 ff ?? xor edi, edi
 47 ?? inc edi
 89 bc 9e c4 00 00 00 ?? mov dword ds:[esi + ebx * 4 + 0x000000c4<196>], edi
 8a 46 43 ?? mov al, byte ds:[esi + 0x43<67>]
 8a c8 ?? mov cl, al
 fe c1 ?? inc cl
 84 c0 ?? test al, al
 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
 88 4e 43 ?? mov byte ds:[esi + 0x43<67>], cl
 75 03 ?? jne basic block L17

L16: 09 78 04 ?? or dword ds:[eax + 4], edi

L17: ba 00 00 00 80 ?? mov edx, 0x80000000
 8b cb ?? mov ecx, ebx
 d3 ea ?? shr edx, cl
 f7 d2 ?? not edx
 21 50 08 ?? and dword ds:[eax + 8], edx
 8b c3 ?? mov eax, ebx

L18: 5f ?? pop edi
 5e ?? pop esi
 5b ?? pop ebx
 c9 ?? leave
 c3 ?? ret

