
L1: 8b ff ?? mov edi, edi
 55 ?? push ebp
 8b ec ?? mov ebp, esp
 83 ec 0c ?? sub esp, 12
 8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
 8b 41 10 ?? mov eax, dword ds:[ecx + 0x10<16>]
 53 ?? push ebx
 56 ?? push esi
 8b 75 10 ?? mov esi, dword ss:[ebp + 0x10<16>]
 57 ?? push edi
 8b 7d 0c ?? mov edi, dword ss:[ebp + 12]
 8b d7 ?? mov edx, edi
 2b 51 0c ?? sub edx, dword ds:[ecx + 12]
 83 c6 17 ?? add esi, 0x17<23>
 c1 ea 0f ?? shr edx, 15
 8b ca ?? mov ecx, edx
 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 f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], ecx
 8b 4f fc ?? mov ecx, dword ds:[edi + 0xfc<252,-4>]
 83 e6 f0 ?? and esi, 0xf0<240,-16>
 49 ?? dec ecx
 3b f1 ?? cmp esi, ecx
 8d 7c 39 fc ?? lea edi, ds:[ecx + edi + 0xfc<252,-4>]
 8b 1f ?? mov ebx, dword ds:[edi]
 89 4d 10 ?? mov dword ss:[ebp + 0x10<16>], ecx
 89 5d fc ?? mov dword ss:[ebp + 0xfc<252,-4>], ebx
 0f 8e 55 01 00 00 ?? jle basic block L28

L2: f6 c3 01 ?? test bl, 1
 0f 85 45 01 00 00 ?? jne basic block L27

L3: 03 d9 ?? add ebx, ecx
 3b f3 ?? cmp esi, ebx
 0f 8f 3b 01 00 00 ?? jg basic block L27

L4: 8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
 c1 f9 04 ?? sar ecx, 4
 49 ?? dec ecx
 89 4d f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], ecx
 83 f9 3f ?? cmp ecx, 0x3f<63>
 76 06 ?? jbe basic block L6

L5: 6a 3f ?? push 0x3f<63>
 59 ?? pop ecx
 89 4d f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], ecx

L6: 8b 5f 04 ?? mov ebx, dword ds:[edi + 4]
 3b 5f 08 ?? cmp ebx, dword ds:[edi + 8]
 75 43 ?? jne basic block L12

L7: bb 00 00 00 80 ?? mov ebx, 0x80000000
 83 f9 20 ?? cmp ecx, 0x20<32>
 73 1a ?? jae basic block L10

L8: d3 eb ?? shr ebx, cl
 8b 4d f8 ?? mov ecx, dword ss:[ebp + 0xf8<248,-8>]
 8d 4c 01 04 ?? lea ecx, ds:[ecx + eax + 4]
 f7 d3 ?? not ebx
 21 5c 90 44 ?? and dword ds:[eax + edx * 4 + 0x44<68>], ebx
 fe 09 ?? dec byte ds:[ecx]
 75 26 ?? jne basic block L12

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

L10: 83 c1 e0 ?? add ecx, 0xe0<224,-32>
 d3 eb ?? shr ebx, cl
 8b 4d f8 ?? mov ecx, dword ss:[ebp + 0xf8<248,-8>]
 8d 4c 01 04 ?? lea ecx, ds:[ecx + eax + 4]
 f7 d3 ?? not ebx
 21 9c 90 c4 00 00 00 ?? and dword ds:[eax + edx * 4 + 0x000000c4<196>], ebx
 fe 09 ?? dec byte ds:[ecx]
 75 06 ?? jne basic block L12

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

L12: 8b 4f 08 ?? mov ecx, dword ds:[edi + 8]
 8b 5f 04 ?? mov ebx, dword ds:[edi + 4]
 89 59 04 ?? mov dword ds:[ecx + 4], ebx
 8b 4f 04 ?? mov ecx, dword ds:[edi + 4]
 8b 7f 08 ?? mov edi, dword ds:[edi + 8]
 89 79 08 ?? mov dword ds:[ecx + 8], edi
 8b 4d 10 ?? mov ecx, dword ss:[ebp + 0x10<16>]
 2b ce ?? sub ecx, esi
 01 4d fc ?? add dword ss:[ebp + 0xfc<252,-4>], ecx
 83 7d fc 00 ?? cmp dword ss:[ebp + 0xfc<252,-4>], 0
 0f 8e a5 00 00 00 ?? jle basic block L25

L13: 8b 7d fc ?? mov edi, dword ss:[ebp + 0xfc<252,-4>]
 8b 4d 0c ?? mov ecx, dword ss:[ebp + 12]
 c1 ff 04 ?? sar edi, 4
 4f ?? dec edi
 8d 4c 31 fc ?? lea ecx, ds:[ecx + esi + 0xfc<252,-4>]
 83 ff 3f ?? cmp edi, 0x3f<63>
 76 03 ?? jbe basic block L15

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

L15: 8b 5d f4 ?? mov ebx, dword ss:[ebp + 0xf4<244,-12>]
 8d 1c fb ?? lea ebx, ds:[ebx + edi * 8]
 89 5d 10 ?? mov dword ss:[ebp + 0x10<16>], ebx
 8b 5b 04 ?? mov ebx, dword ds:[ebx + 4]
 89 59 04 ?? mov dword ds:[ecx + 4], ebx
 8b 5d 10 ?? mov ebx, dword ss:[ebp + 0x10<16>]
 89 59 08 ?? mov dword ds:[ecx + 8], ebx
 89 4b 04 ?? mov dword ds:[ebx + 4], ecx
 8b 59 04 ?? mov ebx, dword ds:[ecx + 4]
 89 4b 08 ?? mov dword ds:[ebx + 8], ecx
 8b 59 04 ?? mov ebx, dword ds:[ecx + 4]
 3b 59 08 ?? cmp ebx, dword ds:[ecx + 8]
 75 57 ?? jne basic block L24

L16: 8a 4c 07 04 ?? mov cl, byte ds:[edi + eax + 4]
 88 4d 13 ?? mov byte ss:[ebp + 0x13<19>], cl
 fe c1 ?? inc cl
 88 4c 07 04 ?? mov byte ds:[edi + eax + 4], cl
 83 ff 20 ?? cmp edi, 0x20<32>
 73 1c ?? jae basic block L20

L17: 80 7d 13 00 ?? cmp byte ss:[ebp + 0x13<19>], 0
 75 0e ?? jne basic block L19

L18: 8b cf ?? mov ecx, edi
 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

L19: 8d 44 90 44 ?? lea eax, ds:[eax + edx * 4 + 0x44<68>]
 8b cf ?? mov ecx, edi
 eb 20 ?? jmp basic block L23

L20: 80 7d 13 00 ?? cmp byte ss:[ebp + 0x13<19>], 0
 75 10 ?? jne basic block L22

L21: 8d 4f e0 ?? lea ecx, ds:[edi + 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

L22: 8d 84 90 c4 00 00 00 ?? lea eax, ds:[eax + edx * 4 + 0x000000c4<196>]
 8d 4f e0 ?? lea ecx, ds:[edi + 0xe0<224,-32>]

L23: ba 00 00 00 80 ?? mov edx, 0x80000000
 d3 ea ?? shr edx, cl
 09 10 ?? or dword ds:[eax], edx

L24: 8b 55 0c ?? mov edx, dword ss:[ebp + 12]
 8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
 8d 44 32 fc ?? lea eax, ds:[edx + esi + 0xfc<252,-4>]
 89 08 ?? mov dword ds:[eax], ecx
 89 4c 01 fc ?? mov dword ds:[ecx + eax + 0xfc<252,-4>], ecx
 eb 03 ?? jmp basic block L26

L25: 8b 55 0c ?? mov edx, dword ss:[ebp + 12]

L26: 8d 46 01 ?? lea eax, ds:[esi + 1]
 89 42 fc ?? mov dword ds:[edx + 0xfc<252,-4>], eax
 89 44 32 f8 ?? mov dword ds:[edx + esi + 0xf8<248,-8>], eax
 e9 3c 01 00 00 ?? jmp basic block L53

L27: 33 c0 ?? xor eax, eax
 e9 38 01 00 00 ?? jmp basic block L54

L28: 0f 8d 2f 01 00 00 ?? jge basic block L53

L29: 8b 5d 0c ?? mov ebx, dword ss:[ebp + 12]
 29 75 10 ?? sub dword ss:[ebp + 0x10<16>], esi
 8d 4e 01 ?? lea ecx, ds:[esi + 1]
 89 4b fc ?? mov dword ds:[ebx + 0xfc<252,-4>], ecx
 8d 5c 33 fc ?? lea ebx, ds:[ebx + esi + 0xfc<252,-4>]
 8b 75 10 ?? mov esi, dword ss:[ebp + 0x10<16>]
 c1 fe 04 ?? sar esi, 4
 4e ?? dec esi
 89 5d 0c ?? mov dword ss:[ebp + 12], ebx
 89 4b fc ?? mov dword ds:[ebx + 0xfc<252,-4>], ecx
 83 fe 3f ?? cmp esi, 0x3f<63>
 76 03 ?? jbe basic block L31

L30: 6a 3f ?? push 0x3f<63>
 5e ?? pop esi

L31: f6 45 fc 01 ?? test byte ss:[ebp + 0xfc<252,-4>], 1
 0f 85 80 00 00 00 ?? jne basic block L43

L32: 8b 75 fc ?? mov esi, dword ss:[ebp + 0xfc<252,-4>]
 c1 fe 04 ?? sar esi, 4
 4e ?? dec esi
 83 fe 3f ?? cmp esi, 0x3f<63>
 76 03 ?? jbe basic block L34

L33: 6a 3f ?? push 0x3f<63>
 5e ?? pop esi

L34: 8b 4f 04 ?? mov ecx, dword ds:[edi + 4]
 3b 4f 08 ?? cmp ecx, dword ds:[edi + 8]
 75 42 ?? jne basic block L41

L35: bb 00 00 00 80 ?? mov ebx, 0x80000000
 83 fe 20 ?? cmp esi, 0x20<32>
 73 19 ?? jae basic block L38

L36: 8b ce ?? mov ecx, esi
 d3 eb ?? shr ebx, cl
 8d 74 06 04 ?? lea esi, ds:[esi + eax + 4]
 f7 d3 ?? not ebx
 21 5c 90 44 ?? and dword ds:[eax + edx * 4 + 0x44<68>], ebx
 fe 0e ?? dec byte ds:[esi]
 75 23 ?? jne basic block L40

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

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

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

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

L41: 8b 4f 08 ?? mov ecx, dword ds:[edi + 8]
 8b 77 04 ?? mov esi, dword ds:[edi + 4]
 89 71 04 ?? mov dword ds:[ecx + 4], esi
 8b 77 08 ?? mov esi, dword ds:[edi + 8]
 8b 4f 04 ?? mov ecx, dword ds:[edi + 4]
 89 71 08 ?? mov dword ds:[ecx + 8], esi
 8b 75 10 ?? mov esi, dword ss:[ebp + 0x10<16>]
 03 75 fc ?? add esi, dword ss:[ebp + 0xfc<252,-4>]
 89 75 10 ?? mov dword ss:[ebp + 0x10<16>], esi
 c1 fe 04 ?? sar esi, 4
 4e ?? dec esi
 83 fe 3f ?? cmp esi, 0x3f<63>
 76 03 ?? jbe basic block L43

L42: 6a 3f ?? push 0x3f<63>
 5e ?? pop esi

L43: 8b 4d f4 ?? mov ecx, dword ss:[ebp + 0xf4<244,-12>]
 8d 0c f1 ?? lea ecx, ds:[ecx + esi * 8]
 8b 79 04 ?? mov edi, dword ds:[ecx + 4]
 89 4b 08 ?? mov dword ds:[ebx + 8], ecx
 89 7b 04 ?? mov dword ds:[ebx + 4], edi
 89 59 04 ?? mov dword ds:[ecx + 4], ebx
 8b 4b 04 ?? mov ecx, dword ds:[ebx + 4]
 89 59 08 ?? mov dword ds:[ecx + 8], ebx
 8b 4b 04 ?? mov ecx, dword ds:[ebx + 4]
 3b 4b 08 ?? cmp ecx, dword ds:[ebx + 8]
 75 57 ?? jne basic block L52

L44: 8a 4c 06 04 ?? mov cl, byte ds:[esi + eax + 4]
 88 4d 0f ?? mov byte ss:[ebp + 15], cl
 fe c1 ?? inc cl
 88 4c 06 04 ?? mov byte ds:[esi + eax + 4], cl
 83 fe 20 ?? cmp esi, 0x20<32>
 73 1c ?? jae basic block L48

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

L46: 8b ce ?? mov ecx, esi
 bf 00 00 00 80 ?? mov edi, 0x80000000
 d3 ef ?? shr edi, cl
 8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
 09 39 ?? or dword ds:[ecx], edi

L47: 8d 44 90 44 ?? lea eax, ds:[eax + edx * 4 + 0x44<68>]
 8b ce ?? mov ecx, esi
 eb 20 ?? jmp basic block L51

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

L49: 8d 4e e0 ?? lea ecx, ds:[esi + 0xe0<224,-32>]
 bf 00 00 00 80 ?? mov edi, 0x80000000
 d3 ef ?? shr edi, cl
 8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
 09 79 04 ?? or dword ds:[ecx + 4], edi

L50: 8d 84 90 c4 00 00 00 ?? lea eax, ds:[eax + edx * 4 + 0x000000c4<196>]
 8d 4e e0 ?? lea ecx, ds:[esi + 0xe0<224,-32>]

L51: ba 00 00 00 80 ?? mov edx, 0x80000000
 d3 ea ?? shr edx, cl
 09 10 ?? or dword ds:[eax], edx

L52: 8b 45 10 ?? mov eax, dword ss:[ebp + 0x10<16>]
 89 03 ?? mov dword ds:[ebx], eax
 89 44 18 fc ?? mov dword ds:[eax + ebx + 0xfc<252,-4>], eax

L53: 33 c0 ?? xor eax, eax
 40 ?? inc eax

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

