Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   83 ec 1c ?? sub esp, 0x1c<28>
   53 ?? push ebx
   56 ?? push esi
   57 ?? push edi
   ff 75 08 ?? push dword ss:[ebp + 8]
   8d 4d e4 ?? lea ecx, ss:[ebp + 0xe4<228,-28>]
   33 db ?? xor ebx, ebx
   e8 64 62 ff ff ?? call function 0x004091d4
  
  L2: 8b 45 e4 ?? mov eax, dword ss:[ebp + 0xe4<228,-28>]
   8b b8 d4 00 00 00 ?? mov edi, dword ds:[eax + 0x000000d4<212>]
   8d 77 38 ?? lea esi, ds:[edi + 0x38<56>]
   89 75 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], esi
   c7 45 f8 0c 00 00 00 ?? mov dword ss:[ebp + 0xf8<248,-8>], 12
  
  L3: ff 76 30 ?? push dword ds:[esi + 0x30<48>]
   e8 02 39 ff ff ?? call function 0x00406890
  
  L4: ff 36 ?? push dword ds:[esi]
   89 45 f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], eax
   e8 f8 38 ff ff ?? call function 0x00406890
  
  L5: 8b 75 fc ?? mov esi, dword ss:[ebp + 0xfc<252,-4>]
   59 ?? pop ecx
   59 ?? pop ecx
   8b 4d f4 ?? mov ecx, dword ss:[ebp + 0xf4<244,-12>]
   03 c3 ?? add eax, ebx
   83 c6 04 ?? add esi, 4
   ff 4d f8 ?? dec dword ss:[ebp + 0xf8<248,-8>]
   8d 5c 08 02 ?? lea ebx, ds:[eax + ecx + 2]
   89 75 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], esi
   75 d5 ?? jne basic block L3
  
  L6: 8d 43 01 ?? lea eax, ds:[ebx + 1]
   50 ?? push eax
   e8 26 75 ff ff ?? call function 0x0040a4e0
  
  L7: 8b f0 ?? mov esi, eax
   59 ?? pop ecx
   89 75 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], esi
   85 f6 ?? test esi, esi
   74 7f ?? je basic block L21
  
  L8: 83 c7 68 ?? add edi, 0x68<104>
   c7 45 f8 0c 00 00 00 ?? mov dword ss:[ebp + 0xf8<248,-8>], 12
  
  L9: 8b 45 fc ?? mov eax, dword ss:[ebp + 0xfc<252,-4>]
   c6 06 3a ?? mov byte ds:[esi], 0x3a<58>
   ff 77 d0 ?? push dword ds:[edi + 0xd0<208,-48>]
   46 ?? inc esi
   2b c6 ?? sub eax, esi
   8d 44 18 01 ?? lea eax, ds:[eax + ebx + 1]
   50 ?? push eax
   56 ?? push esi
   e8 93 98 ff ff ?? call function 0x0040c878
  
  L10: 83 c4 0c ?? add esp, 12
   85 c0 ?? test eax, eax
   74 0f ?? je basic block L13
  
  L11: 33 c0 ?? xor eax, eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   e8 61 3c ff ff ?? call function 0x00406c59
  
  L12: 83 c4 14 ?? add esp, 0x14<20>
  
  L13: 56 ?? push esi
   e8 8f 38 ff ff ?? call function 0x00406890
  
  L14: 03 f0 ?? add esi, eax
   8b 45 fc ?? mov eax, dword ss:[ebp + 0xfc<252,-4>]
   c6 06 3a ?? mov byte ds:[esi], 0x3a<58>
   ff 37 ?? push dword ds:[edi]
   46 ?? inc esi
   2b c6 ?? sub eax, esi
   8d 44 18 01 ?? lea eax, ds:[eax + ebx + 1]
   50 ?? push eax
   56 ?? push esi
   e8 5f 98 ff ff ?? call function 0x0040c878
  
  L15: 83 c4 10 ?? add esp, 0x10<16>
   85 c0 ?? test eax, eax
   74 0f ?? je basic block L18
  
  L16: 33 c0 ?? xor eax, eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   e8 2d 3c ff ff ?? call function 0x00406c59
  
  L17: 83 c4 14 ?? add esp, 0x14<20>
  
  L18: 56 ?? push esi
   e8 5b 38 ff ff ?? call function 0x00406890
  
  L19: 03 f0 ?? add esi, eax
   83 c7 04 ?? add edi, 4
   ff 4d f8 ?? dec dword ss:[ebp + 0xf8<248,-8>]
   59 ?? pop ecx
   75 8e ?? jne basic block L9
  
  L20: c6 06 00 ?? mov byte ds:[esi], 0
  
  L21: 80 7d f0 00 ?? cmp byte ss:[ebp + 0xf0<240,-16>], 0
   5f ?? pop edi
   5e ?? pop esi
   5b ?? pop ebx
   74 07 ?? je basic block L23
  
  L22: 8b 45 ec ?? mov eax, dword ss:[ebp + 0xec<236,-20>]
   83 60 70 fd ?? and dword ds:[eax + 0x70<112>], 0xfd<253,-3>
  
  L23: 8b 45 fc ?? mov eax, dword ss:[ebp + 0xfc<252,-4>]
   c9 ?? leave
   c3 ?? ret
  
  