Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   83 ec 24 ?? sub esp, 0x24<36>
   53 ?? push ebx
   56 ?? push esi
   57 ?? push edi
   ff 75 08 ?? push dword ss:[ebp + 8]
   8d 4d dc ?? lea ecx, ss:[ebp + 0xdc<220,-36>]
   33 ff ?? xor edi, edi
   e8 d2 76 ff ff ?? call function 0x00408249
  
  L2: 8b 45 dc ?? mov eax, dword ss:[ebp + 0xdc<220,-36>]
   8b b0 d4 00 00 00 ?? mov esi, dword ds:[eax + 0x000000d4<212>]
   89 7d fc ?? mov dword ss:[ebp + 0xfc<252,-4>], edi
  
  L3: 8b 5d fc ?? mov ebx, dword ss:[ebp + 0xfc<252,-4>]
   c1 e3 02 ?? shl ebx, 2
   ff 74 33 1c ?? push dword ds:[ebx + esi + 0x1c<28>]
   e8 ee 55 ff ff ?? call function 0x00406180
  
  L4: ff 34 33 ?? push dword ds:[ebx + esi]
   89 45 ec ?? mov dword ss:[ebp + 0xec<236,-20>], eax
   e8 e3 55 ff ff ?? call function 0x00406180
  
  L5: 03 c7 ?? add eax, edi
   ff 45 fc ?? inc dword ss:[ebp + 0xfc<252,-4>]
   83 7d fc 07 ?? cmp dword ss:[ebp + 0xfc<252,-4>], 7
   59 ?? pop ecx
   59 ?? pop ecx
   8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
   8d 7c 08 02 ?? lea edi, ds:[eax + ecx + 2]
   72 d2 ?? jb basic block L3
  
  L6: 8d 46 38 ?? lea eax, ds:[esi + 0x38<56>]
   89 45 f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], eax
   c7 45 f4 0c 00 00 00 ?? mov dword ss:[ebp + 0xf4<244,-12>], 12
  
  L7: 8b 5d f0 ?? mov ebx, dword ss:[ebp + 0xf0<240,-16>]
   ff 73 30 ?? push dword ds:[ebx + 0x30<48>]
   e8 b7 55 ff ff ?? call function 0x00406180
  
  L8: ff 33 ?? push dword ds:[ebx]
   89 45 ec ?? mov dword ss:[ebp + 0xec<236,-20>], eax
   e8 ad 55 ff ff ?? call function 0x00406180
  
  L9: 83 45 f0 04 ?? add dword ss:[ebp + 0xf0<240,-16>], 4
   59 ?? pop ecx
   59 ?? pop ecx
   8b 4d ec ?? mov ecx, dword ss:[ebp + 0xec<236,-20>]
   03 c7 ?? add eax, edi
   ff 4d f4 ?? dec dword ss:[ebp + 0xf4<244,-12>]
   8d 7c 08 02 ?? lea edi, ds:[eax + ecx + 2]
   75 d7 ?? jne basic block L7
  
  L10: ff b6 9c 00 00 00 ?? push dword ds:[esi + 0x0000009c<156>]
   e8 8e 55 ff ff ?? call function 0x00406180
  
  L11: ff b6 98 00 00 00 ?? push dword ds:[esi + 0x00000098<152>]
   8b d8 ?? mov ebx, eax
   e8 81 55 ff ff ?? call function 0x00406180
  
  L12: ff b6 a0 00 00 00 ?? push dword ds:[esi + 0x000000a0<160>]
   03 c7 ?? add eax, edi
   8d 7c 18 02 ?? lea edi, ds:[eax + ebx + 2]
   e8 70 55 ff ff ?? call function 0x00406180
  
  L13: ff b6 a4 00 00 00 ?? push dword ds:[esi + 0x000000a4<164>]
   8d 7c 07 01 ?? lea edi, ds:[edi + eax + 1]
   e8 61 55 ff ff ?? call function 0x00406180
  
  L14: ff b6 a8 00 00 00 ?? push dword ds:[esi + 0x000000a8<168>]
   8d 7c 07 01 ?? lea edi, ds:[edi + eax + 1]
   e8 52 55 ff ff ?? call function 0x00406180
  
  L15: 8d 84 07 b9 00 00 00 ?? lea eax, ds:[edi + eax + 0x000000b9<185>]
   50 ?? push eax
   89 45 f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], eax
   e8 05 5a ff ff ?? call function 0x00406643
  
  L16: 8b d8 ?? mov ebx, eax
   83 c4 18 ?? add esp, 0x18<24>
   85 db ?? test ebx, ebx
   0f 84 57 02 00 00 ?? je basic block L67
  
  L17: 68 b8 00 00 00 ?? push 0x000000b8<184>
   56 ?? push esi
   53 ?? push ebx
   8d bb b8 00 00 00 ?? lea edi, ds:[ebx + 0x000000b8<184>]
   e8 33 8e ff ff ?? call function 0x00409a90
  
  L18: 83 65 fc 00 ?? and dword ss:[ebp + 0xfc<252,-4>], 0
   8d 46 1c ?? lea eax, ds:[esi + 0x1c<28>]
   89 5d f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], ebx
   83 c4 0c ?? add esp, 12
   29 75 f0 ?? sub dword ss:[ebp + 0xf0<240,-16>], esi
   89 45 f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], eax
  
  L19: 8b 45 fc ?? mov eax, dword ss:[ebp + 0xfc<252,-4>]
   89 3c 83 ?? mov dword ds:[ebx + eax * 4], edi
   8b 45 f4 ?? mov eax, dword ss:[ebp + 0xf4<244,-12>]
   ff 70 e4 ?? push dword ds:[eax + 0xe4<228,-28>]
   8b c3 ?? mov eax, ebx
   2b c7 ?? sub eax, edi
   03 45 f8 ?? add eax, dword ss:[ebp + 0xf8<248,-8>]
   50 ?? push eax
   57 ?? push edi
   e8 89 54 ff ff ?? call function 0x00406113
  
  L20: 83 c4 0c ?? add esp, 12
   85 c0 ?? test eax, eax
   74 0f ?? je basic block L23
  
  L21: 33 c0 ?? xor eax, eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   e8 11 7d ff ff ?? call function 0x004089ae
  
  L22: 83 c4 14 ?? add esp, 0x14<20>
  
  L23: 57 ?? push edi
   e8 da 54 ff ff ?? call function 0x00406180
  
  L24: 8b 4d f0 ?? mov ecx, dword ss:[ebp + 0xf0<240,-16>]
   8d 7c 07 01 ?? lea edi, ds:[edi + eax + 1]
   8b 45 f4 ?? mov eax, dword ss:[ebp + 0xf4<244,-12>]
   89 3c 01 ?? mov dword ds:[ecx + eax], edi
   ff 30 ?? push dword ds:[eax]
   8b c3 ?? mov eax, ebx
   2b c7 ?? sub eax, edi
   03 45 f8 ?? add eax, dword ss:[ebp + 0xf8<248,-8>]
   50 ?? push eax
   57 ?? push edi
   e8 50 54 ff ff ?? call function 0x00406113
  
  L25: 83 c4 10 ?? add esp, 0x10<16>
   85 c0 ?? test eax, eax
   74 0f ?? je basic block L28
  
  L26: 33 c0 ?? xor eax, eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   e8 d8 7c ff ff ?? call function 0x004089ae
  
  L27: 83 c4 14 ?? add esp, 0x14<20>
  
  L28: 57 ?? push edi
   e8 a1 54 ff ff ?? call function 0x00406180
  
  L29: ff 45 fc ?? inc dword ss:[ebp + 0xfc<252,-4>]
   83 45 f4 04 ?? add dword ss:[ebp + 0xf4<244,-12>], 4
   83 7d fc 07 ?? cmp dword ss:[ebp + 0xfc<252,-4>], 7
   59 ?? pop ecx
   8d 7c 07 01 ?? lea edi, ds:[edi + eax + 1]
   0f 82 7b ff ff ff ?? jb basic block L19
  
  L30: 8d 43 68 ?? lea eax, ds:[ebx + 0x68<104>]
   89 45 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], eax
   8d 46 38 ?? lea eax, ds:[esi + 0x38<56>]
   89 45 f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], eax
   c7 45 ec 0c 00 00 00 ?? mov dword ss:[ebp + 0xec<236,-20>], 12
   eb 03 ?? jmp basic block L32
  
  L31: 8b 45 f4 ?? mov eax, dword ss:[ebp + 0xf4<244,-12>]
  
  L32: 8b 4d f0 ?? mov ecx, dword ss:[ebp + 0xf0<240,-16>]
   89 3c 08 ?? mov dword ds:[eax + ecx], edi
   ff 30 ?? push dword ds:[eax]
   8b c3 ?? mov eax, ebx
   2b c7 ?? sub eax, edi
   03 45 f8 ?? add eax, dword ss:[ebp + 0xf8<248,-8>]
   50 ?? push eax
   57 ?? push edi
   e8 f0 53 ff ff ?? call function 0x00406113
  
  L33: 83 c4 0c ?? add esp, 12
   85 c0 ?? test eax, eax
   74 0f ?? je basic block L36
  
  L34: 33 c0 ?? xor eax, eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   e8 78 7c ff ff ?? call function 0x004089ae
  
  L35: 83 c4 14 ?? add esp, 0x14<20>
  
  L36: 57 ?? push edi
   e8 41 54 ff ff ?? call function 0x00406180
  
  L37: 8d 7c 07 01 ?? lea edi, ds:[edi + eax + 1]
   8b 45 fc ?? mov eax, dword ss:[ebp + 0xfc<252,-4>]
   89 38 ?? mov dword ds:[eax], edi
   8b 45 f4 ?? mov eax, dword ss:[ebp + 0xf4<244,-12>]
   ff 70 30 ?? push dword ds:[eax + 0x30<48>]
   8b c3 ?? mov eax, ebx
   2b c7 ?? sub eax, edi
   03 45 f8 ?? add eax, dword ss:[ebp + 0xf8<248,-8>]
   50 ?? push eax
   57 ?? push edi
   e8 b7 53 ff ff ?? call function 0x00406113
  
  L38: 83 c4 10 ?? add esp, 0x10<16>
   85 c0 ?? test eax, eax
   74 0f ?? je basic block L41
  
  L39: 33 c0 ?? xor eax, eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   e8 3f 7c ff ff ?? call function 0x004089ae
  
  L40: 83 c4 14 ?? add esp, 0x14<20>
  
  L41: 57 ?? push edi
   e8 08 54 ff ff ?? call function 0x00406180
  
  L42: 83 45 f4 04 ?? add dword ss:[ebp + 0xf4<244,-12>], 4
   83 45 fc 04 ?? add dword ss:[ebp + 0xfc<252,-4>], 4
   ff 4d ec ?? dec dword ss:[ebp + 0xec<236,-20>]
   59 ?? pop ecx
   8d 7c 07 01 ?? lea edi, ds:[edi + eax + 1]
   75 80 ?? jne basic block L31
  
  L43: 8b c3 ?? mov eax, ebx
   2b c7 ?? sub eax, edi
   03 45 f8 ?? add eax, dword ss:[ebp + 0xf8<248,-8>]
   89 bb 98 00 00 00 ?? mov dword ds:[ebx + 0x00000098<152>], edi
   ff b6 98 00 00 00 ?? push dword ds:[esi + 0x00000098<152>]
   50 ?? push eax
   57 ?? push edi
   e8 6f 53 ff ff ?? call function 0x00406113
  
  L44: 83 c4 0c ?? add esp, 12
   85 c0 ?? test eax, eax
   74 0f ?? je basic block L47
  
  L45: 33 c0 ?? xor eax, eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   e8 f7 7b ff ff ?? call function 0x004089ae
  
  L46: 83 c4 14 ?? add esp, 0x14<20>
  
  L47: 57 ?? push edi
   e8 c0 53 ff ff ?? call function 0x00406180
  
  L48: 8d 7c 07 01 ?? lea edi, ds:[edi + eax + 1]
   8b c3 ?? mov eax, ebx
   2b c7 ?? sub eax, edi
   03 45 f8 ?? add eax, dword ss:[ebp + 0xf8<248,-8>]
   89 bb 9c 00 00 00 ?? mov dword ds:[ebx + 0x0000009c<156>], edi
   ff b6 9c 00 00 00 ?? push dword ds:[esi + 0x0000009c<156>]
   50 ?? push eax
   57 ?? push edi
   e8 35 53 ff ff ?? call function 0x00406113
  
  L49: 83 c4 10 ?? add esp, 0x10<16>
   85 c0 ?? test eax, eax
   74 0f ?? je basic block L52
  
  L50: 33 c0 ?? xor eax, eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   e8 bd 7b ff ff ?? call function 0x004089ae
  
  L51: 83 c4 14 ?? add esp, 0x14<20>
  
  L52: 57 ?? push edi
   e8 86 53 ff ff ?? call function 0x00406180
  
  L53: 8d 7c 07 01 ?? lea edi, ds:[edi + eax + 1]
   8b c3 ?? mov eax, ebx
   2b c7 ?? sub eax, edi
   03 45 f8 ?? add eax, dword ss:[ebp + 0xf8<248,-8>]
   89 bb a0 00 00 00 ?? mov dword ds:[ebx + 0x000000a0<160>], edi
   ff b6 a0 00 00 00 ?? push dword ds:[esi + 0x000000a0<160>]
   50 ?? push eax
   57 ?? push edi
   e8 fb 52 ff ff ?? call function 0x00406113
  
  L54: 83 c4 10 ?? add esp, 0x10<16>
   85 c0 ?? test eax, eax
   74 0f ?? je basic block L57
  
  L55: 33 c0 ?? xor eax, eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   e8 83 7b ff ff ?? call function 0x004089ae
  
  L56: 83 c4 14 ?? add esp, 0x14<20>
  
  L57: 57 ?? push edi
   e8 4c 53 ff ff ?? call function 0x00406180
  
  L58: 8d 7c 07 01 ?? lea edi, ds:[edi + eax + 1]
   8b c3 ?? mov eax, ebx
   2b c7 ?? sub eax, edi
   03 45 f8 ?? add eax, dword ss:[ebp + 0xf8<248,-8>]
   89 bb a4 00 00 00 ?? mov dword ds:[ebx + 0x000000a4<164>], edi
   ff b6 a4 00 00 00 ?? push dword ds:[esi + 0x000000a4<164>]
   50 ?? push eax
   57 ?? push edi
   e8 c1 52 ff ff ?? call function 0x00406113
  
  L59: 83 c4 10 ?? add esp, 0x10<16>
   85 c0 ?? test eax, eax
   74 0f ?? je basic block L62
  
  L60: 33 c0 ?? xor eax, eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   e8 49 7b ff ff ?? call function 0x004089ae
  
  L61: 83 c4 14 ?? add esp, 0x14<20>
  
  L62: 57 ?? push edi
   e8 12 53 ff ff ?? call function 0x00406180
  
  L63: 8d 44 07 01 ?? lea eax, ds:[edi + eax + 1]
   8b cb ?? mov ecx, ebx
   2b c8 ?? sub ecx, eax
   03 4d f8 ?? add ecx, dword ss:[ebp + 0xf8<248,-8>]
   89 83 a8 00 00 00 ?? mov dword ds:[ebx + 0x000000a8<168>], eax
   ff b6 a8 00 00 00 ?? push dword ds:[esi + 0x000000a8<168>]
   51 ?? push ecx
   50 ?? push eax
   e8 87 52 ff ff ?? call function 0x00406113
  
  L64: 83 c4 10 ?? add esp, 0x10<16>
   85 c0 ?? test eax, eax
   74 0f ?? je basic block L67
  
  L65: 33 c0 ?? xor eax, eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   e8 0f 7b ff ff ?? call function 0x004089ae
  
  L66: 83 c4 14 ?? add esp, 0x14<20>
  
  L67: 80 7d e8 00 ?? cmp byte ss:[ebp + 0xe8<232,-24>], 0
   74 07 ?? je basic block L69
  
  L68: 8b 45 e4 ?? mov eax, dword ss:[ebp + 0xe4<228,-28>]
   83 60 70 fd ?? and dword ds:[eax + 0x70<112>], 0xfd<253,-3>
  
  L69: 5f ?? pop edi
   5e ?? pop esi
   8b c3 ?? mov eax, ebx
   5b ?? pop ebx
   c9 ?? leave
   c3 ?? ret
  
  