Disassembly: 
  L1: 55 ?? push ebp
   8b ec ?? mov ebp, esp
   83 ec 10 ?? sub esp, 0x10<16>
   53 ?? push ebx
   56 ?? push esi
   57 ?? push edi
   6a 58 ?? push 0x58<88>
   e8 eb 05 00 00 ?? call function 0x0040187b
  
  L2: 8b c8 ?? mov ecx, eax
   6a 58 ?? push 0x58<88>
   89 4d fc ?? mov dword ss:[ebp + 0xfc<252,-4>], ecx
   c7 41 0c 58 33 40 00 ?? mov dword ds:[ecx + 12], 0x00403358
   c7 41 50 e8 32 40 00 ?? mov dword ds:[ecx + 0x50<80>], 0x004032e8
   c7 01 64 33 40 00 ?? mov dword ds:[ecx], 0x00403364
   c7 41 0c 20 33 40 00 ?? mov dword ds:[ecx + 12], 0x00403320
   c7 41 50 2c 33 40 00 ?? mov dword ds:[ecx + 0x50<80>], 0x0040332c
   c7 41 54 2a 00 00 00 ?? mov dword ds:[ecx + 0x54<84>], 0x0000002a<42>
   e8 b6 05 00 00 ?? call function 0x0040187b
  
  L3: 6a 0c ?? push 12
   89 45 f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], eax
   c7 40 0c 58 33 40 00 ?? mov dword ds:[eax + 12], 0x00403358
   c7 40 50 e8 32 40 00 ?? mov dword ds:[eax + 0x50<80>], 0x004032e8
   c7 00 64 33 40 00 ?? mov dword ds:[eax], 0x00403364
   c7 40 0c 20 33 40 00 ?? mov dword ds:[eax + 12], 0x00403320
   c7 40 50 2c 33 40 00 ?? mov dword ds:[eax + 0x50<80>], 0x0040332c
   c7 40 54 2a 00 00 00 ?? mov dword ds:[eax + 0x54<84>], 0x0000002a<42>
   e8 83 05 00 00 ?? call function 0x0040187b
  
  L4: 6a 58 ?? push 0x58<88>
   89 45 f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], eax
   c7 40 04 00 00 00 00 ?? mov dword ds:[eax + 4], 0
   c7 40 08 00 00 00 00 ?? mov dword ds:[eax + 8], 0
   c7 00 6c 33 40 00 ?? mov dword ds:[eax], 0x0040336c
   e8 65 05 00 00 ?? call function 0x0040187b
  
  L5: 6a 58 ?? push 0x58<88>
   8b d8 ?? mov ebx, eax
   6a 00 ?? push 0
   53 ?? push ebx
   89 5d f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], ebx
   e8 27 17 00 00 ?? call function 0x00402a4c
  
  L6: c7 43 0c 58 33 40 00 ?? mov dword ds:[ebx + 12], 0x00403358
   83 c4 1c ?? add esp, 0x1c<28>
   c7 43 50 e8 32 40 00 ?? mov dword ds:[ebx + 0x50<80>], 0x004032e8
   ba f0 31 40 00 ?? mov edx, 0x004031f0<"Cls1::func2()">
   c7 43 54 2a 00 00 00 ?? mov dword ds:[ebx + 0x54<84>], 0x0000002a<42>
   c7 03 74 33 40 00 ?? mov dword ds:[ebx], 0x00403374
   c7 43 0c 14 33 40 00 ?? mov dword ds:[ebx + 12], 0x00403314
   c7 43 50 bc 32 40 00 ?? mov dword ds:[ebx + 0x50<80>], 0x004032bc
   8b 0d 7c 30 40 00 ?? mov ecx, dword ds:[0x0040307c]
   68 50 16 40 00 ?? push function 0x00401650
   e8 9a 00 00 00 ?? call function 0x00401400
  
  L7: 8b c8 ?? mov ecx, eax
   ff 15 48 30 40 00 ?? call dword ds:[function 0x00403048]
  
  L8: 8b 43 0c ?? mov eax, dword ds:[ebx + 12]
   8d 4b 0c ?? lea ecx, ds:[ebx + 12]
   ff 50 04 ?? call dword ds:[eax + 4]
  
  L9: 8b 43 50 ?? mov eax, dword ds:[ebx + 0x50<80>]
   8d 4b 50 ?? lea ecx, ds:[ebx + 0x50<80>]
   ff 50 24 ?? call dword ds:[eax + 0x24<36>]
  
  L10: 8b 7d fc ?? mov edi, dword ss:[ebp + 0xfc<252,-4>]
   8b cf ?? mov ecx, edi
   8b 07 ?? mov eax, dword ds:[edi]
   ff 10 ?? call dword ds:[eax]
  
  L11: 8b 47 0c ?? mov eax, dword ds:[edi + 12]
   8d 4f 0c ?? lea ecx, ds:[edi + 12]
   ff 10 ?? call dword ds:[eax]
  
  L12: 8b 47 0c ?? mov eax, dword ds:[edi + 12]
   8d 4f 0c ?? lea ecx, ds:[edi + 12]
   ff 50 04 ?? call dword ds:[eax + 4]
  
  L13: 8b 75 f8 ?? mov esi, dword ss:[ebp + 0xf8<248,-8>]
   8b ce ?? mov ecx, esi
   8b 06 ?? mov eax, dword ds:[esi]
   ff 10 ?? call dword ds:[eax]
  
  L14: 6a 58 ?? push 0x58<88>
   57 ?? push edi
   e8 00 05 00 00 ?? call function 0x004018ab
  
  L15: 6a 0c ?? push 12
   56 ?? push esi
   e8 f8 04 00 00 ?? call function 0x004018ab
  
  L16: 6a 58 ?? push 0x58<88>
   53 ?? push ebx
   e8 f0 04 00 00 ?? call function 0x004018ab
  
  L17: 6a 0c ?? push 12
   ff 75 f4 ?? push dword ss:[ebp + 0xf4<244,-12>]
   e8 e6 04 00 00 ?? call function 0x004018ab
  
  L18: 83 c4 20 ?? add esp, 0x20<32>
   33 c0 ?? xor eax, eax
   5f ?? pop edi
   5e ?? pop esi
   5b ?? pop ebx
   8b e5 ?? mov esp, ebp
   5d ?? pop ebp
   c3 ?? ret
  
  