Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   83 ec 2c ?? sub esp, 0x2c<44>
   8b 45 08 ?? mov eax, dword ss:[ebp + 8]
   0f b7 48 0a ?? movzx ecx, word ds:[eax + 10]
   53 ?? push ebx
   8b d9 ?? mov ebx, ecx
   81 e1 00 80 00 00 ?? and ecx, 0x00008000<32768>
   89 4d ec ?? mov dword ss:[ebp + 0xec<236,-20>], ecx
   8b 48 06 ?? mov ecx, dword ds:[eax + 6]
   89 4d e0 ?? mov dword ss:[ebp + 0xe0<224,-32>], ecx
   8b 48 02 ?? mov ecx, dword ds:[eax + 2]
   0f b7 00 ?? movzx eax, word ds:[eax]
   81 e3 ff 7f 00 00 ?? and ebx, 0x00007fff<32767>
   81 eb ff 3f 00 00 ?? sub ebx, 0x00003fff<16383>
   c1 e0 10 ?? shl eax, 0x10<16>
   56 ?? push esi
   57 ?? push edi
   89 4d e4 ?? mov dword ss:[ebp + 0xe4<228,-28>], ecx
   89 45 e8 ?? mov dword ss:[ebp + 0xe8<232,-24>], eax
   81 fb 01 c0 ff ff ?? cmp ebx, 0xffffc001<4294950913,-16383>
   75 19 ?? jne basic block L6
  
  L2: 33 f6 ?? xor esi, esi
   33 c0 ?? xor eax, eax
  
  L3: 39 74 85 e0 ?? cmp dword ss:[ebp + 0xe0<224,-32> + eax * 4], esi
   0f 85 1e 01 00 00 ?? jne basic block L30
  
  L4: 40 ?? inc eax
   83 f8 03 ?? cmp eax, 3
   7c f0 ?? jl basic block L3
  
  L5: e9 89 04 00 00 ?? jmp basic block L98
  
  L6: 8b 45 10 ?? mov eax, dword ss:[ebp + 0x10<16>]
   83 65 08 00 ?? and dword ss:[ebp + 8], 0
   8d 75 e0 ?? lea esi, ss:[ebp + 0xe0<224,-32>]
   8d 7d d4 ?? lea edi, ss:[ebp + 0xd4<212,-44>]
   a5 ?? movsd
   a5 ?? movsd
   a5 ?? movsd
   8b 70 08 ?? mov esi, dword ds:[eax + 8]
   4e ?? dec esi
   8d 4e 01 ?? lea ecx, ds:[esi + 1]
   8b c1 ?? mov eax, ecx
   99 ?? cdq
   83 e2 1f ?? and edx, 0x1f<31>
   03 c2 ?? add eax, edx
   c1 f8 05 ?? sar eax, 5
   8b d1 ?? mov edx, ecx
   81 e2 1f 00 00 80 ?? and edx, 0x8000001f
   89 5d f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], ebx
   89 45 f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], eax
   79 05 ?? jns basic block L8
  
  L7: 4a ?? dec edx
   83 ca e0 ?? or edx, 0xe0<224,-32>
   42 ?? inc edx
  
  L8: 8d 7c 85 e0 ?? lea edi, ss:[ebp + 0xe0<224,-32> + eax * 4]
   6a 1f ?? push 0x1f<31>
   33 c0 ?? xor eax, eax
   59 ?? pop ecx
   2b ca ?? sub ecx, edx
   40 ?? inc eax
   d3 e0 ?? shl eax, cl
   89 4d f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], ecx
   85 07 ?? test dword ds:[edi], eax
   0f 84 8d 00 00 00 ?? je basic block L25
  
  L9: 8b 45 f4 ?? mov eax, dword ss:[ebp + 0xf4<244,-12>]
   83 ca ff ?? or edx, 0xff<255,-1>
   d3 e2 ?? shl edx, cl
   f7 d2 ?? not edx
   85 54 85 e0 ?? test dword ss:[ebp + 0xe0<224,-32> + eax * 4], edx
   eb 05 ?? jmp basic block L11
  
  L10: 83 7c 85 e0 00 ?? cmp dword ss:[ebp + 0xe0<224,-32> + eax * 4], 0
  
  L11: 75 08 ?? jne basic block L14
  
  L12: 40 ?? inc eax
   83 f8 03 ?? cmp eax, 3
   7c f3 ?? jl basic block L10
  
  L13: eb 6e ?? jmp basic block L25
  
  L14: 8b c6 ?? mov eax, esi
   99 ?? cdq
   6a 1f ?? push 0x1f<31>
   59 ?? pop ecx
   23 d1 ?? and edx, ecx
   03 c2 ?? add eax, edx
   c1 f8 05 ?? sar eax, 5
   81 e6 1f 00 00 80 ?? and esi, 0x8000001f
   79 05 ?? jns basic block L16
  
  L15: 4e ?? dec esi
   83 ce e0 ?? or esi, 0xe0<224,-32>
   46 ?? inc esi
  
  L16: 83 65 fc 00 ?? and dword ss:[ebp + 0xfc<252,-4>], 0
   2b ce ?? sub ecx, esi
   33 d2 ?? xor edx, edx
   42 ?? inc edx
   d3 e2 ?? shl edx, cl
   8d 4c 85 e0 ?? lea ecx, ss:[ebp + 0xe0<224,-32> + eax * 4]
   8b 31 ?? mov esi, dword ds:[ecx]
   03 f2 ?? add esi, edx
   89 75 08 ?? mov dword ss:[ebp + 8], esi
   8b 31 ?? mov esi, dword ds:[ecx]
   39 75 08 ?? cmp dword ss:[ebp + 8], esi
   72 22 ?? jb basic block L22
  
  L17: 39 55 08 ?? cmp dword ss:[ebp + 8], edx
   eb 1b ?? jmp basic block L21
  
  L18: 85 c9 ?? test ecx, ecx
   74 2b ?? je basic block L24
  
  L19: 83 65 fc 00 ?? and dword ss:[ebp + 0xfc<252,-4>], 0
   8d 4c 85 e0 ?? lea ecx, ss:[ebp + 0xe0<224,-32> + eax * 4]
   8b 11 ?? mov edx, dword ds:[ecx]
   8d 72 01 ?? lea esi, ds:[edx + 1]
   89 75 08 ?? mov dword ss:[ebp + 8], esi
   3b f2 ?? cmp esi, edx
   72 05 ?? jb basic block L22
  
  L20: 83 fe 01 ?? cmp esi, 1
  
  L21: 73 07 ?? jae basic block L23
  
  L22: c7 45 fc 01 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 1
  
  L23: 48 ?? dec eax
   8b 55 08 ?? mov edx, dword ss:[ebp + 8]
   89 11 ?? mov dword ds:[ecx], edx
   8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
   79 d1 ?? jns basic block L18
  
  L24: 89 4d 08 ?? mov dword ss:[ebp + 8], ecx
  
  L25: 8b 4d f8 ?? mov ecx, dword ss:[ebp + 0xf8<248,-8>]
   83 c8 ff ?? or eax, 0xff<255,-1>
   d3 e0 ?? shl eax, cl
   6a 03 ?? push 3
   59 ?? pop ecx
   21 07 ?? and dword ds:[edi], eax
   8b 45 f4 ?? mov eax, dword ss:[ebp + 0xf4<244,-12>]
   40 ?? inc eax
   3b c1 ?? cmp eax, ecx
   7d 0a ?? jge basic block L27
  
  L26: 8d 7c 85 e0 ?? lea edi, ss:[ebp + 0xe0<224,-32> + eax * 4]
   2b c8 ?? sub ecx, eax
   33 c0 ?? xor eax, eax
   f3 ab ?? rep_stosd
  
  L27: 33 f6 ?? xor esi, esi
   39 75 08 ?? cmp dword ss:[ebp + 8], esi
   74 01 ?? je basic block L29
  
  L28: 43 ?? inc ebx
  
  L29: 8b 4d 10 ?? mov ecx, dword ss:[ebp + 0x10<16>]
   8b 41 04 ?? mov eax, dword ds:[ecx + 4]
   8b d0 ?? mov edx, eax
   2b 51 08 ?? sub edx, dword ds:[ecx + 8]
   3b da ?? cmp ebx, edx
   7d 0d ?? jge basic block L31
  
  L30: 33 c0 ?? xor eax, eax
   8d 7d e0 ?? lea edi, ss:[ebp + 0xe0<224,-32>]
   ab ?? stosd
   ab ?? stosd
   ab ?? stosd
   e9 0f 02 00 00 ?? jmp basic block L75
  
  L31: 3b d8 ?? cmp ebx, eax
   0f 8f 0f 02 00 00 ?? jg basic block L76
  
  L32: 2b 45 f0 ?? sub eax, dword ss:[ebp + 0xf0<240,-16>]
   8d 75 d4 ?? lea esi, ss:[ebp + 0xd4<212,-44>]
   8b c8 ?? mov ecx, eax
   8d 7d e0 ?? lea edi, ss:[ebp + 0xe0<224,-32>]
   a5 ?? movsd
   99 ?? cdq
   83 e2 1f ?? and edx, 0x1f<31>
   03 c2 ?? add eax, edx
   a5 ?? movsd
   8b d1 ?? mov edx, ecx
   c1 f8 05 ?? sar eax, 5
   81 e2 1f 00 00 80 ?? and edx, 0x8000001f
   a5 ?? movsd
   79 05 ?? jns basic block L34
  
  L33: 4a ?? dec edx
   83 ca e0 ?? or edx, 0xe0<224,-32>
   42 ?? inc edx
  
  L34: 83 65 f4 00 ?? and dword ss:[ebp + 0xf4<244,-12>], 0
   83 65 08 00 ?? and dword ss:[ebp + 8], 0
   83 cf ff ?? or edi, 0xff<255,-1>
   8b ca ?? mov ecx, edx
   d3 e7 ?? shl edi, cl
   c7 45 fc 20 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 0x00000020<32>
   29 55 fc ?? sub dword ss:[ebp + 0xfc<252,-4>], edx
   f7 d7 ?? not edi
  
  L35: 8b 5d 08 ?? mov ebx, dword ss:[ebp + 8]
   8d 5c 9d e0 ?? lea ebx, ss:[ebp + 0xe0<224,-32> + ebx * 4]
   8b 33 ?? mov esi, dword ds:[ebx]
   8b ce ?? mov ecx, esi
   23 cf ?? and ecx, edi
   89 4d f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], ecx
   8b ca ?? mov ecx, edx
   d3 ee ?? shr esi, cl
   8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
   0b 75 f4 ?? or esi, dword ss:[ebp + 0xf4<244,-12>]
   89 33 ?? mov dword ds:[ebx], esi
   8b 75 f0 ?? mov esi, dword ss:[ebp + 0xf0<240,-16>]
   d3 e6 ?? shl esi, cl
   ff 45 08 ?? inc dword ss:[ebp + 8]
   83 7d 08 03 ?? cmp dword ss:[ebp + 8], 3
   89 75 f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], esi
  
  L36: 7c d3 ?? jl basic block L35
  
  L37: 8b f0 ?? mov esi, eax
   6a 02 ?? push 2
   c1 e6 02 ?? shl esi, 2
   8d 4d e8 ?? lea ecx, ss:[ebp + 0xe8<232,-24>]
   5a ?? pop edx
   2b ce ?? sub ecx, esi
  
  L38: 3b d0 ?? cmp edx, eax
   7c 08 ?? jl basic block L40
  
  L39: 8b 31 ?? mov esi, dword ds:[ecx]
   89 74 95 e0 ?? mov dword ss:[ebp + 0xe0<224,-32> + edx * 4], esi
   eb 05 ?? jmp basic block L41
  
  L40: 83 64 95 e0 00 ?? and dword ss:[ebp + 0xe0<224,-32> + edx * 4], 0
  
  L41: 4a ?? dec edx
   83 e9 04 ?? sub ecx, 4
   85 d2 ?? test edx, edx
   7d e7 ?? jge basic block L38
  
  L42: 8b 45 10 ?? mov eax, dword ss:[ebp + 0x10<16>]
   8b 70 08 ?? mov esi, dword ds:[eax + 8]
   4e ?? dec esi
   8d 4e 01 ?? lea ecx, ds:[esi + 1]
   8b c1 ?? mov eax, ecx
   99 ?? cdq
   83 e2 1f ?? and edx, 0x1f<31>
   03 c2 ?? add eax, edx
   c1 f8 05 ?? sar eax, 5
   8b d1 ?? mov edx, ecx
   81 e2 1f 00 00 80 ?? and edx, 0x8000001f
   89 45 f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], eax
   79 05 ?? jns basic block L44
  
  L43: 4a ?? dec edx
   83 ca e0 ?? or edx, 0xe0<224,-32>
   42 ?? inc edx
  
  L44: 6a 1f ?? push 0x1f<31>
   59 ?? pop ecx
   2b ca ?? sub ecx, edx
   33 d2 ?? xor edx, edx
   42 ?? inc edx
   d3 e2 ?? shl edx, cl
   8d 5c 85 e0 ?? lea ebx, ss:[ebp + 0xe0<224,-32> + eax * 4]
   89 4d f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], ecx
   85 13 ?? test dword ds:[ebx], edx
   0f 84 82 00 00 00 ?? je basic block L62
  
  L45: 83 ca ff ?? or edx, 0xff<255,-1>
   d3 e2 ?? shl edx, cl
   f7 d2 ?? not edx
   85 54 85 e0 ?? test dword ss:[ebp + 0xe0<224,-32> + eax * 4], edx
   eb 05 ?? jmp basic block L47
  
  L46: 83 7c 85 e0 00 ?? cmp dword ss:[ebp + 0xe0<224,-32> + eax * 4], 0
  
  L47: 75 08 ?? jne basic block L50
  
  L48: 40 ?? inc eax
   83 f8 03 ?? cmp eax, 3
   7c f3 ?? jl basic block L46
  
  L49: eb 66 ?? jmp basic block L62
  
  L50: 8b c6 ?? mov eax, esi
   99 ?? cdq
   6a 1f ?? push 0x1f<31>
   59 ?? pop ecx
   23 d1 ?? and edx, ecx
   03 c2 ?? add eax, edx
   c1 f8 05 ?? sar eax, 5
   81 e6 1f 00 00 80 ?? and esi, 0x8000001f
   79 05 ?? jns basic block L52
  
  L51: 4e ?? dec esi
   83 ce e0 ?? or esi, 0xe0<224,-32>
   46 ?? inc esi
  
  L52: 83 65 08 00 ?? and dword ss:[ebp + 8], 0
   33 d2 ?? xor edx, edx
   2b ce ?? sub ecx, esi
   42 ?? inc edx
   d3 e2 ?? shl edx, cl
   8d 4c 85 e0 ?? lea ecx, ss:[ebp + 0xe0<224,-32> + eax * 4]
   8b 31 ?? mov esi, dword ds:[ecx]
   8d 3c 16 ?? lea edi, ds:[esi + edx]
   3b fe ?? cmp edi, esi
   72 04 ?? jb basic block L54
  
  L53: 3b fa ?? cmp edi, edx
   73 07 ?? jae basic block L55
  
  L54: c7 45 08 01 00 00 00 ?? mov dword ss:[ebp + 8], 1
  
  L55: 89 39 ?? mov dword ds:[ecx], edi
   8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
   eb 1f ?? jmp basic block L61
  
  L56: 85 c9 ?? test ecx, ecx
   74 1e ?? je basic block L62
  
  L57: 8d 4c 85 e0 ?? lea ecx, ss:[ebp + 0xe0<224,-32> + eax * 4]
   8b 11 ?? mov edx, dword ds:[ecx]
   8d 72 01 ?? lea esi, ds:[edx + 1]
   33 ff ?? xor edi, edi
   3b f2 ?? cmp esi, edx
   72 05 ?? jb basic block L59
  
  L58: 83 fe 01 ?? cmp esi, 1
   73 03 ?? jae basic block L60
  
  L59: 33 ff ?? xor edi, edi
   47 ?? inc edi
  
  L60: 89 31 ?? mov dword ds:[ecx], esi
   8b cf ?? mov ecx, edi
  
  L61: 48 ?? dec eax
   79 de ?? jns basic block L56
  
  L62: 8b 4d f0 ?? mov ecx, dword ss:[ebp + 0xf0<240,-16>]
   83 c8 ff ?? or eax, 0xff<255,-1>
   d3 e0 ?? shl eax, cl
   21 03 ?? and dword ds:[ebx], eax
   8b 45 f4 ?? mov eax, dword ss:[ebp + 0xf4<244,-12>]
   40 ?? inc eax
   83 f8 03 ?? cmp eax, 3
   7d 0d ?? jge basic block L64
  
  L63: 6a 03 ?? push 3
   59 ?? pop ecx
   8d 7c 85 e0 ?? lea edi, ss:[ebp + 0xe0<224,-32> + eax * 4]
   2b c8 ?? sub ecx, eax
   33 c0 ?? xor eax, eax
   f3 ab ?? rep_stosd
  
  L64: 8b 45 10 ?? mov eax, dword ss:[ebp + 0x10<16>]
   8b 48 0c ?? mov ecx, dword ds:[eax + 12]
   41 ?? inc ecx
   8b c1 ?? mov eax, ecx
   99 ?? cdq
   83 e2 1f ?? and edx, 0x1f<31>
   03 c2 ?? add eax, edx
   8b d1 ?? mov edx, ecx
   c1 f8 05 ?? sar eax, 5
   81 e2 1f 00 00 80 ?? and edx, 0x8000001f
   79 05 ?? jns basic block L66
  
  L65: 4a ?? dec edx
   83 ca e0 ?? or edx, 0xe0<224,-32>
   42 ?? inc edx
  
  L66: 83 65 f4 00 ?? and dword ss:[ebp + 0xf4<244,-12>], 0
   83 65 08 00 ?? and dword ss:[ebp + 8], 0
   83 cf ff ?? or edi, 0xff<255,-1>
   8b ca ?? mov ecx, edx
   d3 e7 ?? shl edi, cl
   c7 45 fc 20 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 0x00000020<32>
   29 55 fc ?? sub dword ss:[ebp + 0xfc<252,-4>], edx
   f7 d7 ?? not edi
  
  L67: 8b 5d 08 ?? mov ebx, dword ss:[ebp + 8]
   8d 5c 9d e0 ?? lea ebx, ss:[ebp + 0xe0<224,-32> + ebx * 4]
   8b 33 ?? mov esi, dword ds:[ebx]
   8b ce ?? mov ecx, esi
   23 cf ?? and ecx, edi
   89 4d f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], ecx
   8b ca ?? mov ecx, edx
   d3 ee ?? shr esi, cl
   8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
   0b 75 f4 ?? or esi, dword ss:[ebp + 0xf4<244,-12>]
   89 33 ?? mov dword ds:[ebx], esi
   8b 75 f0 ?? mov esi, dword ss:[ebp + 0xf0<240,-16>]
   d3 e6 ?? shl esi, cl
   ff 45 08 ?? inc dword ss:[ebp + 8]
   83 7d 08 03 ?? cmp dword ss:[ebp + 8], 3
   89 75 f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], esi
  
  L68: 7c d3 ?? jl basic block L67
  
  L69: 8b f0 ?? mov esi, eax
   6a 02 ?? push 2
   c1 e6 02 ?? shl esi, 2
   8d 4d e8 ?? lea ecx, ss:[ebp + 0xe8<232,-24>]
   5a ?? pop edx
   2b ce ?? sub ecx, esi
  
  L70: 3b d0 ?? cmp edx, eax
   7c 08 ?? jl basic block L72
  
  L71: 8b 31 ?? mov esi, dword ds:[ecx]
   89 74 95 e0 ?? mov dword ss:[ebp + 0xe0<224,-32> + edx * 4], esi
   eb 05 ?? jmp basic block L73
  
  L72: 83 64 95 e0 00 ?? and dword ss:[ebp + 0xe0<224,-32> + edx * 4], 0
  
  L73: 4a ?? dec edx
   83 e9 04 ?? sub ecx, 4
   85 d2 ?? test edx, edx
   7d e7 ?? jge basic block L70
  
  L74: 33 f6 ?? xor esi, esi
  
  L75: 6a 02 ?? push 2
   58 ?? pop eax
   e9 54 01 00 00 ?? jmp basic block L99
  
  L76: 3b 19 ?? cmp ebx, dword ds:[ecx]
   0f 8c ac 00 00 00 ?? jl basic block L88
  
  L77: 33 c0 ?? xor eax, eax
   8d 7d e0 ?? lea edi, ss:[ebp + 0xe0<224,-32>]
   ab ?? stosd
   ab ?? stosd
   ab ?? stosd
   81 4d e0 00 00 00 80 ?? or dword ss:[ebp + 0xe0<224,-32>], 0x80000000
   8b c1 ?? mov eax, ecx
   8b 48 0c ?? mov ecx, dword ds:[eax + 12]
   8b c1 ?? mov eax, ecx
   99 ?? cdq
   83 e2 1f ?? and edx, 0x1f<31>
   03 c2 ?? add eax, edx
   8b d1 ?? mov edx, ecx
   c1 f8 05 ?? sar eax, 5
   81 e2 1f 00 00 80 ?? and edx, 0x8000001f
   79 05 ?? jns basic block L79
  
  L78: 4a ?? dec edx
   83 ca e0 ?? or edx, 0xe0<224,-32>
   42 ?? inc edx
  
  L79: 83 65 f4 00 ?? and dword ss:[ebp + 0xf4<244,-12>], 0
   83 65 08 00 ?? and dword ss:[ebp + 8], 0
   83 ce ff ?? or esi, 0xff<255,-1>
   8b ca ?? mov ecx, edx
   d3 e6 ?? shl esi, cl
   c7 45 fc 20 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 0x00000020<32>
   29 55 fc ?? sub dword ss:[ebp + 0xfc<252,-4>], edx
   f7 d6 ?? not esi
  
  L80: 8b 5d 08 ?? mov ebx, dword ss:[ebp + 8]
   8d 5c 9d e0 ?? lea ebx, ss:[ebp + 0xe0<224,-32> + ebx * 4]
   8b 3b ?? mov edi, dword ds:[ebx]
   8b cf ?? mov ecx, edi
   23 ce ?? and ecx, esi
   89 4d f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], ecx
   8b ca ?? mov ecx, edx
   d3 ef ?? shr edi, cl
   8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
   0b 7d f4 ?? or edi, dword ss:[ebp + 0xf4<244,-12>]
   89 3b ?? mov dword ds:[ebx], edi
   8b 7d f0 ?? mov edi, dword ss:[ebp + 0xf0<240,-16>]
   d3 e7 ?? shl edi, cl
   ff 45 08 ?? inc dword ss:[ebp + 8]
   83 7d 08 03 ?? cmp dword ss:[ebp + 8], 3
   89 7d f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], edi
  
  L81: 7c d3 ?? jl basic block L80
  
  L82: 8b f0 ?? mov esi, eax
   6a 02 ?? push 2
   c1 e6 02 ?? shl esi, 2
   8d 4d e8 ?? lea ecx, ss:[ebp + 0xe8<232,-24>]
   5a ?? pop edx
   2b ce ?? sub ecx, esi
  
  L83: 3b d0 ?? cmp edx, eax
   7c 08 ?? jl basic block L85
  
  L84: 8b 31 ?? mov esi, dword ds:[ecx]
   89 74 95 e0 ?? mov dword ss:[ebp + 0xe0<224,-32> + edx * 4], esi
   eb 05 ?? jmp basic block L86
  
  L85: 83 64 95 e0 00 ?? and dword ss:[ebp + 0xe0<224,-32> + edx * 4], 0
  
  L86: 4a ?? dec edx
   83 e9 04 ?? sub ecx, 4
   85 d2 ?? test edx, edx
   7d e7 ?? jge basic block L83
  
  L87: 8b 45 10 ?? mov eax, dword ss:[ebp + 0x10<16>]
   8b 70 14 ?? mov esi, dword ds:[eax + 0x14<20>]
   03 30 ?? add esi, dword ds:[eax]
   33 c0 ?? xor eax, eax
   40 ?? inc eax
   e9 a0 00 00 00 ?? jmp basic block L99
  
  L88: 81 65 e0 ff ff ff 7f ?? and dword ss:[ebp + 0xe0<224,-32>], 0x7fffffff
   8b c1 ?? mov eax, ecx
   8b 48 0c ?? mov ecx, dword ds:[eax + 12]
   8b 70 14 ?? mov esi, dword ds:[eax + 0x14<20>]
   8b c1 ?? mov eax, ecx
   99 ?? cdq
   83 e2 1f ?? and edx, 0x1f<31>
   03 c2 ?? add eax, edx
   03 f3 ?? add esi, ebx
   8b d8 ?? mov ebx, eax
   8b d1 ?? mov edx, ecx
   c1 fb 05 ?? sar ebx, 5
   81 e2 1f 00 00 80 ?? and edx, 0x8000001f
   79 05 ?? jns basic block L90
  
  L89: 4a ?? dec edx
   83 ca e0 ?? or edx, 0xe0<224,-32>
   42 ?? inc edx
  
  L90: 83 65 f4 00 ?? and dword ss:[ebp + 0xf4<244,-12>], 0
   83 65 08 00 ?? and dword ss:[ebp + 8], 0
   83 cf ff ?? or edi, 0xff<255,-1>
   8b ca ?? mov ecx, edx
   d3 e7 ?? shl edi, cl
   c7 45 fc 20 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 0x00000020<32>
   29 55 fc ?? sub dword ss:[ebp + 0xfc<252,-4>], edx
   f7 d7 ?? not edi
  
  L91: 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
   8b 44 85 e0 ?? mov eax, dword ss:[ebp + 0xe0<224,-32> + eax * 4]
   8b c8 ?? mov ecx, eax
   23 cf ?? and ecx, edi
   89 4d f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], ecx
   8b ca ?? mov ecx, edx
   d3 e8 ?? shr eax, cl
   8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
   0b 45 f4 ?? or eax, dword ss:[ebp + 0xf4<244,-12>]
   89 44 8d e0 ?? mov dword ss:[ebp + 0xe0<224,-32> + ecx * 4], eax
   8b 45 f0 ?? mov eax, dword ss:[ebp + 0xf0<240,-16>]
   8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
   d3 e0 ?? shl eax, cl
   ff 45 08 ?? inc dword ss:[ebp + 8]
   83 7d 08 03 ?? cmp dword ss:[ebp + 8], 3
   89 45 f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], eax
  
  L92: 7c d0 ?? jl basic block L91
  
  L93: 8b d3 ?? mov edx, ebx
   6a 02 ?? push 2
   c1 e2 02 ?? shl edx, 2
   8d 45 e8 ?? lea eax, ss:[ebp + 0xe8<232,-24>]
   59 ?? pop ecx
   2b c2 ?? sub eax, edx
  
  L94: 3b cb ?? cmp ecx, ebx
   7c 08 ?? jl basic block L96
  
  L95: 8b 10 ?? mov edx, dword ds:[eax]
   89 54 8d e0 ?? mov dword ss:[ebp + 0xe0<224,-32> + ecx * 4], edx
   eb 05 ?? jmp basic block L97
  
  L96: 83 64 8d e0 00 ?? and dword ss:[ebp + 0xe0<224,-32> + ecx * 4], 0
  
  L97: 49 ?? dec ecx
   83 e8 04 ?? sub eax, 4
   85 c9 ?? test ecx, ecx
   7d e7 ?? jge basic block L94
  
  L98: 33 c0 ?? xor eax, eax
  
  L99: 8b 55 10 ?? mov edx, dword ss:[ebp + 0x10<16>]
   6a 1f ?? push 0x1f<31>
   59 ?? pop ecx
   2b 4a 0c ?? sub ecx, dword ds:[edx + 12]
   d3 e6 ?? shl esi, cl
   8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
   f7 d9 ?? neg ecx
   1b c9 ?? sbb ecx, ecx
   81 e1 00 00 00 80 ?? and ecx, 0x80000000
   0b f1 ?? or esi, ecx
   8b 4a 10 ?? mov ecx, dword ds:[edx + 0x10<16>]
   0b 75 e0 ?? or esi, dword ss:[ebp + 0xe0<224,-32>]
   83 f9 40 ?? cmp ecx, 0x40<64>
   75 0d ?? jne basic block L101
  
  L100: 8b 4d 0c ?? mov ecx, dword ss:[ebp + 12]
   8b 55 e4 ?? mov edx, dword ss:[ebp + 0xe4<228,-28>]
   89 71 04 ?? mov dword ds:[ecx + 4], esi
   89 11 ?? mov dword ds:[ecx], edx
   eb 0a ?? jmp basic block L103
  
  L101: 83 f9 20 ?? cmp ecx, 0x20<32>
   75 05 ?? jne basic block L103
  
  L102: 8b 4d 0c ?? mov ecx, dword ss:[ebp + 12]
   89 31 ?? mov dword ds:[ecx], esi
  
  L103: 5f ?? pop edi
   5e ?? pop esi
   5b ?? pop ebx
   c9 ?? leave
   c3 ?? ret
  
  