Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   51 ?? push ecx
   51 ?? push ecx
   53 ?? push ebx
   56 ?? push esi
   8b f1 ?? mov esi, ecx
   8b 46 20 ?? mov eax, dword ds:[esi + 0x20<32>]
   57 ?? push edi
   8d 7e 40 ?? lea edi, ds:[esi + 0x40<64>]
   33 db ?? xor ebx, ebx
   39 38 ?? cmp dword ds:[eax], edi
   75 0e ?? jne basic block L5
  
  L2: 83 7d 10 01 ?? cmp dword ss:[ebp + 0x10<16>], 1
   75 08 ?? jne basic block L5
  
  L3: 39 5e 3c ?? cmp dword ds:[esi + 0x3c<60>], ebx
   75 03 ?? jne basic block L5
  
  L4: ff 4d 0c ?? dec dword ss:[ebp + 12]
  
  L5: 39 5e 4c ?? cmp dword ds:[esi + 0x4c<76>], ebx
   74 68 ?? je basic block L17
  
  L6: e8 4d fc ff ff ?? call function 0x004043e6
  
  L7: 84 c0 ?? test al, al
   74 5f ?? je basic block L17
  
  L8: 39 5d 0c ?? cmp dword ss:[ebp + 12], ebx
   75 06 ?? jne basic block L10
  
  L9: 83 7d 10 01 ?? cmp dword ss:[ebp + 0x10<16>], 1
   74 15 ?? je basic block L12
  
  L10: ff 75 10 ?? push dword ss:[ebp + 0x10<16>]
   ff 75 0c ?? push dword ss:[ebp + 12]
   ff 76 4c ?? push dword ds:[esi + 0x4c<76>]
   e8 71 2e 00 00 ?? call function 0x00407627
  
  L11: 83 c4 0c ?? add esp, 12
   85 c0 ?? test eax, eax
   75 3f ?? jne basic block L17
  
  L12: 8d 45 f8 ?? lea eax, ss:[ebp + 0xf8<248,-8>]
   50 ?? push eax
   ff 76 4c ?? push dword ds:[esi + 0x4c<76>]
   e8 66 2d 00 00 ?? call function 0x0040752f
  
  L13: 59 ?? pop ecx
   59 ?? pop ecx
   85 c0 ?? test eax, eax
   75 2d ?? jne basic block L17
  
  L14: 8b 46 20 ?? mov eax, dword ds:[esi + 0x20<32>]
   39 38 ?? cmp dword ds:[eax], edi
   75 0d ?? jne basic block L16
  
  L15: 8d 46 41 ?? lea eax, ds:[esi + 0x41<65>]
   50 ?? push eax
   50 ?? push eax
   57 ?? push edi
   8b ce ?? mov ecx, esi
   e8 6f ee ff ff ?? call function 0x00403652
  
  L16: 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 L18
  
  L17: 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
  
  L18: 5f ?? pop edi
   5e ?? pop esi
   5b ?? pop ebx
   c9 ?? leave
   c2 10 00 ?? ret 0x0010<16>
  
  