Disassembly: 
  L1: 83 ec 0c ?? sub esp, 12
   6a 04 ?? push 4
   e8 74 01 00 00 ?? call function 0x0040168e
  
  L2: 83 c4 04 ?? add esp, 4
   85 c0 ?? test eax, eax
   74 0b ?? je basic block L4
  
  L3: c7 00 10 58 40 00 ?? mov dword ds:[eax], 0x00405810
   89 04 24 ?? mov dword ss:[esp], eax
   eb 07 ?? jmp basic block L5
  
  L4: c7 04 24 00 00 00 00 ?? mov dword ss:[esp], 0
  
  L5: 6a 04 ?? push 4
   e8 54 01 00 00 ?? call function 0x0040168e
  
  L6: 83 c4 04 ?? add esp, 4
   85 c0 ?? test eax, eax
   74 0c ?? je basic block L8
  
  L7: c7 00 1c 58 40 00 ?? mov dword ds:[eax], 0x0040581c
   89 44 24 04 ?? mov dword ss:[esp + 4], eax
   eb 08 ?? jmp basic block L9
  
  L8: c7 44 24 04 00 00 00 00 ?? mov dword ss:[esp + 4], 0
  
  L9: 6a 04 ?? push 4
   e8 32 01 00 00 ?? call function 0x0040168e
  
  L10: 83 c4 04 ?? add esp, 4
   85 c0 ?? test eax, eax
   74 0c ?? je basic block L12
  
  L11: c7 00 28 58 40 00 ?? mov dword ds:[eax], 0x00405828
   89 44 24 08 ?? mov dword ss:[esp + 8], eax
   eb 08 ?? jmp basic block L13
  
  L12: c7 44 24 08 00 00 00 00 ?? mov dword ss:[esp + 8], 0
  
  L13: 56 ?? push esi
   33 f6 ?? xor esi, esi
   8d 9b 00 00 00 00 ?? lea ebx, ds:[ebx + 0]
  
  L14: 8b 4c b4 04 ?? mov ecx, dword ss:[esp + 4 + esi * 4]
   8b 01 ?? mov eax, dword ds:[ecx]
   8b 10 ?? mov edx, dword ds:[eax]
   ff d2 ?? call edx
  
  L15: 46 ?? inc esi
   83 fe 03 ?? cmp esi, 3
   7c f0 ?? jl basic block L14
  
  L16: 33 f6 ?? xor esi, esi
  
  L17: 8b 44 b4 04 ?? mov eax, dword ss:[esp + 4 + esi * 4]
   50 ?? push eax
   e8 ec 00 00 00 ?? call function 0x00401688
  
  L18: 46 ?? inc esi
   83 c4 04 ?? add esp, 4
   83 fe 03 ?? cmp esi, 3
   7c ed ?? jl basic block L17
  
  L19: 33 c0 ?? xor eax, eax
   5e ?? pop esi
   83 c4 0c ?? add esp, 12
   c3 ?? ret
  
  