Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   51 ?? push ecx
   51 ?? push ecx
   8b 45 14 ?? mov eax, dword ss:[ebp + 0x14<20>]
   53 ?? push ebx
   56 ?? push esi
   8b f1 ?? mov esi, ecx
   89 45 f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], eax
   8b 45 18 ?? mov eax, dword ss:[ebp + 0x18<24>]
   33 db ?? xor ebx, ebx
   57 ?? push edi
   8b 7d 0c ?? mov edi, dword ss:[ebp + 12]
   89 45 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], eax
   39 5e 4c ?? cmp dword ds:[esi + 0x4c<76>], ebx
   74 79 ?? je basic block L14
  
  L2: e8 a8 fb ff ff ?? call function 0x004043e6
  
  L3: 84 c0 ?? test al, al
   74 70 ?? je basic block L14
  
  L4: 8d 45 f8 ?? lea eax, ss:[ebp + 0xf8<248,-8>]
   50 ?? push eax
   ff 76 4c ?? push dword ds:[esi + 0x4c<76>]
   e8 5e 2e 00 00 ?? call function 0x004076ac
  
  L5: 59 ?? pop ecx
   59 ?? pop ecx
   85 c0 ?? test eax, eax
   75 5e ?? jne basic block L14
  
  L6: 3b fb ?? cmp edi, ebx
   74 12 ?? je basic block L9
  
  L7: 6a 01 ?? push 1
   57 ?? push edi
   ff 76 4c ?? push dword ds:[esi + 0x4c<76>]
   e8 c4 2d 00 00 ?? call function 0x00407627
  
  L8: 83 c4 0c ?? add esp, 12
   85 c0 ?? test eax, eax
   75 48 ?? jne basic block L14
  
  L9: 8d 45 f8 ?? lea eax, ss:[ebp + 0xf8<248,-8>]
   50 ?? push eax
   ff 76 4c ?? push dword ds:[esi + 0x4c<76>]
   e8 b9 2c 00 00 ?? call function 0x0040752f
  
  L10: 59 ?? pop ecx
   59 ?? pop ecx
   85 c0 ?? test eax, eax
   75 36 ?? jne basic block L14
  
  L11: 8b 45 1c ?? mov eax, dword ss:[ebp + 0x1c<28>]
   89 46 44 ?? mov dword ds:[esi + 0x44<68>], eax
   8b 46 20 ?? mov eax, dword ds:[esi + 0x20<32>]
   8d 4e 40 ?? lea ecx, ds:[esi + 0x40<64>]
   39 08 ?? cmp dword ds:[eax], ecx
   75 0d ?? jne basic block L13
  
  L12: 8d 46 41 ?? lea eax, ds:[esi + 0x41<65>]
   50 ?? push eax
   50 ?? push eax
   51 ?? push ecx
   8b ce ?? mov ecx, esi
   e8 b9 ed ff ff ?? call function 0x00403652
  
  L13: 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
   8b 4d f8 ?? mov ecx, dword ss:[ebp + 0xf8<248,-8>]
   89 48 08 ?? mov dword ds:[eax + 8], ecx
   8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
   89 48 0c ?? mov dword ds:[eax + 12], ecx
   8b 4e 44 ?? mov ecx, dword ds:[esi + 0x44<68>]
   89 18 ?? mov dword ds:[eax], ebx
   89 48 10 ?? mov dword ds:[eax + 0x10<16>], ecx
   eb 14 ?? jmp basic block L15
  
  L14: 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
   8b 0d f8 e1 42 00 ?? mov ecx, dword ds:[0x0042e1f8]
   89 08 ?? mov dword ds:[eax], ecx
   89 58 08 ?? mov dword ds:[eax + 8], ebx
   89 58 0c ?? mov dword ds:[eax + 12], ebx
   89 58 10 ?? mov dword ds:[eax + 0x10<16>], ebx
  
  L15: 5f ?? pop edi
   5e ?? pop esi
   5b ?? pop ebx
   c9 ?? leave
   c2 20 00 ?? ret 0x0020<32>
  
  