Disassembly: 
  L1: 6a 18 ?? push 0x18<24>
   68 f8 35 43 00 ?? push 0x004335f8
   e8 24 f9 fe ff ?? call function 0x0040da10
  
  L2: 83 4d e4 ff ?? or dword ss:[ebp + 0xe4<228,-28>], 0xff<255,-1>
   33 ff ?? xor edi, edi
   89 7d dc ?? mov dword ss:[ebp + 0xdc<220,-36>], edi
   6a 0b ?? push 11
   e8 44 fe fe ff ?? call function 0x0040df40
  
  L3: 59 ?? pop ecx
   85 c0 ?? test eax, eax
   75 08 ?? jne basic block L5
  
  L4: 83 c8 ff ?? or eax, 0xff<255,-1>
   e9 62 01 00 00 ?? jmp basic block L38
  
  L5: 6a 0b ?? push 11
   e8 f3 fe fe ff ?? call function 0x0040e003
  
  L6: 59 ?? pop ecx
   89 7d fc ?? mov dword ss:[ebp + 0xfc<252,-4>], edi
  
  L7: 89 7d d8 ?? mov dword ss:[ebp + 0xd8<216,-40>], edi
   83 ff 40 ?? cmp edi, 0x40<64>
   0f 8d 3c 01 00 00 ?? jge basic block L36
  
  L8: 8b 34 bd c0 66 43 00 ?? mov esi, dword ds:[0x004366c0 + edi * 4]
   85 f6 ?? test esi, esi
   0f 84 ba 00 00 00 ?? je basic block L28
  
  L9: 89 75 e0 ?? mov dword ss:[ebp + 0xe0<224,-32>], esi
   8b 04 bd c0 66 43 00 ?? mov eax, dword ds:[0x004366c0 + edi * 4]
   05 00 08 00 00 ?? add eax, 0x00000800<2048>
   3b f0 ?? cmp esi, eax
   0f 83 97 00 00 00 ?? jae basic block L26
  
  L10: f6 46 04 01 ?? test byte ds:[esi + 4], 1
   75 5c ?? jne basic block L23
  
  L11: 83 7e 08 00 ?? cmp dword ds:[esi + 8], 0
   75 39 ?? jne basic block L19
  
  L12: 6a 0a ?? push 10
   e8 aa fe fe ff ?? call function 0x0040e003
  
  L13: 59 ?? pop ecx
   33 db ?? xor ebx, ebx
   43 ?? inc ebx
   89 5d fc ?? mov dword ss:[ebp + 0xfc<252,-4>], ebx
   83 7e 08 00 ?? cmp dword ds:[esi + 8], 0
   75 1c ?? jne basic block L18
  
  L14: 68 a0 0f 00 00 ?? push 0x00000fa0<4000>
   8d 46 0c ?? lea eax, ds:[esi + 12]
   50 ?? push eax
   e8 4f eb ff ff ?? call function 0x0041ccc3
  
  L15: 59 ?? pop ecx
   59 ?? pop ecx
   85 c0 ?? test eax, eax
   75 05 ?? jne basic block L17
  
  L16: 89 5d dc ?? mov dword ss:[ebp + 0xdc<220,-36>], ebx
   eb 03 ?? jmp basic block L18
  
  L17: ff 46 08 ?? inc dword ds:[esi + 8]
  
  L18: 83 65 fc 00 ?? and dword ss:[ebp + 0xfc<252,-4>], 0
   e8 28 00 00 00 ?? call function 0x0041e1b3
  
  L19: 83 7d dc 00 ?? cmp dword ss:[ebp + 0xdc<220,-36>], 0
   75 17 ?? jne basic block L23
  
  L20: 8d 5e 0c ?? lea ebx, ds:[esi + 12]
   53 ?? push ebx
   ff 15 08 82 43 00 ?? call dword ds:[0x00438208]
  
  L21: f6 46 04 01 ?? test byte ds:[esi + 4], 1
   74 1b ?? je basic block L24
  
  L22: 53 ?? push ebx
   ff 15 0c 82 43 00 ?? call dword ds:[0x0043820c]
  
  L23: 83 c6 40 ?? add esi, 0x40<64>
   eb 82 ?? jmp basic block L9
  
  L24: 83 7d dc 00 ?? cmp dword ss:[ebp + 0xdc<220,-36>], 0
   75 e6 ?? jne basic block L23
  
  L25: c6 46 04 01 ?? mov byte ds:[esi + 4], 1
   83 0e ff ?? or dword ds:[esi], 0xff<255,-1>
   2b 34 bd c0 66 43 00 ?? sub esi, dword ds:[0x004366c0 + edi * 4]
   c1 fe 06 ?? sar esi, 6
   8b c7 ?? mov eax, edi
   c1 e0 05 ?? shl eax, 5
   03 f0 ?? add esi, eax
   89 75 e4 ?? mov dword ss:[ebp + 0xe4<228,-28>], esi
  
  L26: 83 7d e4 ff ?? cmp dword ss:[ebp + 0xe4<228,-28>], 0xff<255,-1>
   75 79 ?? jne basic block L36
  
  L27: 47 ?? inc edi
   e9 2b ff ff ff ?? jmp basic block L7
  
  L28: 6a 40 ?? push 0x40<64>
   6a 20 ?? push 0x20<32>
   e8 53 be fe ff ?? call function 0x0040a045
  
  L29: 59 ?? pop ecx
   59 ?? pop ecx
   89 45 e0 ?? mov dword ss:[ebp + 0xe0<224,-32>], eax
   85 c0 ?? test eax, eax
   74 61 ?? je basic block L36
  
  L30: 8d 0c bd c0 66 43 00 ?? lea ecx, ds:[0x004366c0 + edi * 4]
   89 01 ?? mov dword ds:[ecx], eax
   83 05 6c 66 43 00 20 ?? add dword ds:[0x0043666c], 0x20<32>
  
  L31: 8b 11 ?? mov edx, dword ds:[ecx]
   81 c2 00 08 00 00 ?? add edx, 0x00000800<2048>
   3b c2 ?? cmp eax, edx
   73 17 ?? jae basic block L33
  
  L32: c6 40 04 00 ?? mov byte ds:[eax + 4], 0
   83 08 ff ?? or dword ds:[eax], 0xff<255,-1>
   c6 40 05 0a ?? mov byte ds:[eax + 5], 10
   83 60 08 00 ?? and dword ds:[eax + 8], 0
   83 c0 40 ?? add eax, 0x40<64>
   89 45 e0 ?? mov dword ss:[ebp + 0xe0<224,-32>], eax
   eb dd ?? jmp basic block L31
  
  L33: c1 e7 05 ?? shl edi, 5
   89 7d e4 ?? mov dword ss:[ebp + 0xe4<228,-28>], edi
   8b c7 ?? mov eax, edi
   c1 f8 05 ?? sar eax, 5
   8b cf ?? mov ecx, edi
   83 e1 1f ?? and ecx, 0x1f<31>
   c1 e1 06 ?? shl ecx, 6
   8b 04 85 c0 66 43 00 ?? mov eax, dword ds:[0x004366c0 + eax * 4]
   c6 44 08 04 01 ?? mov byte ds:[eax + ecx + 4], 1
   57 ?? push edi
   e8 c6 fd ff ff ?? call function 0x0041e019
  
  L34: 59 ?? pop ecx
   85 c0 ?? test eax, eax
   75 04 ?? jne basic block L36
  
  L35: 83 4d e4 ff ?? or dword ss:[ebp + 0xe4<228,-28>], 0xff<255,-1>
  
  L36: c7 45 fc fe ff ff ff ?? mov dword ss:[ebp + 0xfc<252,-4>], 0xfffffffe<4294967294,-2>
   e8 09 00 00 00 ?? call function 0x0041e271
  
  L37: 8b 45 e4 ?? mov eax, dword ss:[ebp + 0xe4<228,-28>]
  
  L38: e8 e5 f7 fe ff ?? call function 0x0040da55
  
  L39: c3 ?? ret
  
  