Disassembly: 
  L1: 55 ?? push ebp
   8b ec ?? mov ebp, esp
   83 ec 0c ?? sub esp, 12
   53 ?? push ebx
   56 ?? push esi
   57 ?? push edi
   6a 58 ?? push 0x58<88>
   e8 ed f5 ff ff ?? call function 0x0040120d
  
  L2: 8b f8 ?? mov edi, eax
   83 c4 04 ?? add esp, 4
   89 7d f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], edi
   85 ff ?? test edi, edi
   74 2b ?? je basic block L4
  
  L3: c7 47 0c 60 6b 40 00 ?? mov dword ds:[edi + 12], 0x00406b60
   c7 47 50 90 6b 40 00 ?? mov dword ds:[edi + 0x50<80>], 0x00406b90
   c7 07 3c 6c 40 00 ?? mov dword ds:[edi], 0x00406c3c
   c7 47 0c 48 6c 40 00 ?? mov dword ds:[edi + 12], 0x00406c48
   c7 47 50 58 6c 40 00 ?? mov dword ds:[edi + 0x50<80>], 0x00406c58
   c7 47 54 2a 00 00 00 ?? mov dword ds:[edi + 0x54<84>], 0x0000002a<42>
   eb 02 ?? jmp basic block L5
  
  L4: 33 ff ?? xor edi, edi
  
  L5: 6a 58 ?? push 0x58<88>
   e8 ad f5 ff ff ?? call function 0x0040120d
  
  L6: 8b d8 ?? mov ebx, eax
   83 c4 04 ?? add esp, 4
   89 5d fc ?? mov dword ss:[ebp + 0xfc<252,-4>], ebx
   89 5d f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], ebx
   85 db ?? test ebx, ebx
   74 2b ?? je basic block L8
  
  L7: c7 43 0c 60 6b 40 00 ?? mov dword ds:[ebx + 12], 0x00406b60
   c7 43 50 90 6b 40 00 ?? mov dword ds:[ebx + 0x50<80>], 0x00406b90
   c7 03 3c 6c 40 00 ?? mov dword ds:[ebx], 0x00406c3c
   c7 43 0c 48 6c 40 00 ?? mov dword ds:[ebx + 12], 0x00406c48
   c7 43 50 58 6c 40 00 ?? mov dword ds:[ebx + 0x50<80>], 0x00406c58
   c7 43 54 2a 00 00 00 ?? mov dword ds:[ebx + 0x54<84>], 0x0000002a<42>
   eb 07 ?? jmp basic block L9
  
  L8: c7 45 fc 00 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 0
  
  L9: 6a 0c ?? push 12
   e8 65 f5 ff ff ?? call function 0x0040120d
  
  L10: 8b f0 ?? mov esi, eax
   83 c4 04 ?? add esp, 4
   89 75 f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], esi
   85 f6 ?? test esi, esi
   74 16 ?? je basic block L12
  
  L11: c7 46 04 00 00 00 00 ?? mov dword ds:[esi + 4], 0
   c7 46 08 00 00 00 00 ?? mov dword ds:[esi + 8], 0
   c7 06 34 6b 40 00 ?? mov dword ds:[esi], 0x00406b34
   eb 07 ?? jmp basic block L13
  
  L12: c7 45 f8 00 00 00 00 ?? mov dword ss:[ebp + 0xf8<248,-8>], 0
  
  L13: 6a 58 ?? push 0x58<88>
   e8 35 f5 ff ff ?? call function 0x0040120d
  
  L14: 8b d8 ?? mov ebx, eax
   83 c4 04 ?? add esp, 4
   89 5d f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], ebx
   85 db ?? test ebx, ebx
   74 38 ?? je basic block L17
  
  L15: 6a 58 ?? push 0x58<88>
   6a 00 ?? push 0
   53 ?? push ebx
   e8 54 17 00 00 ?? call function 0x00403442
  
  L16: c7 43 0c 60 6b 40 00 ?? mov dword ds:[ebx + 12], 0x00406b60
   83 c4 0c ?? add esp, 12
   c7 43 50 90 6b 40 00 ?? mov dword ds:[ebx + 0x50<80>], 0x00406b90
   c7 43 54 2a 00 00 00 ?? mov dword ds:[ebx + 0x54<84>], 0x0000002a<42>
   c7 03 ac 6c 40 00 ?? mov dword ds:[ebx], 0x00406cac
   c7 43 0c b8 6c 40 00 ?? mov dword ds:[ebx + 12], 0x00406cb8
   c7 43 50 c8 6c 40 00 ?? mov dword ds:[ebx + 0x50<80>], 0x00406cc8
   eb 02 ?? jmp basic block L18
  
  L17: 33 db ?? xor ebx, ebx
  
  L18: 68 bd 11 40 00 ?? push 0x004011bd
   68 4c 6b 40 00 ?? push 0x00406b4c<"Cls1::func2()">
   ff 35 88 90 40 00 ?? push dword ds:[0x00409088]
   e8 2b f4 ff ff ?? call function 0x0040115e
  
  L19: 83 c4 08 ?? add esp, 8
   8b c8 ?? mov ecx, eax
   ff 15 70 90 40 00 ?? call dword ds:[function 0x00409070]
  
  L20: 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]
  
  L21: 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>]
  
  L22: 8b 07 ?? mov eax, dword ds:[edi]
   8b cf ?? mov ecx, edi
   ff 10 ?? call dword ds:[eax]
  
  L23: 8b 47 0c ?? mov eax, dword ds:[edi + 12]
   8d 4f 0c ?? lea ecx, ds:[edi + 12]
   ff 10 ?? call dword ds:[eax]
  
  L24: 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]
  
  L25: 8b 75 fc ?? mov esi, dword ss:[ebp + 0xfc<252,-4>]
   8b ce ?? mov ecx, esi
   8b 06 ?? mov eax, dword ds:[esi]
   ff 10 ?? call dword ds:[eax]
  
  L26: 6a 58 ?? push 0x58<88>
   57 ?? push edi
   e8 18 f4 ff ff ?? call function 0x00401190
  
  L27: 6a 0c ?? push 12
   56 ?? push esi
   e8 10 f4 ff ff ?? call function 0x00401190
  
  L28: 6a 58 ?? push 0x58<88>
   53 ?? push ebx
   e8 08 f4 ff ff ?? call function 0x00401190
  
  L29: 6a 0c ?? push 12
   ff 75 f8 ?? push dword ss:[ebp + 0xf8<248,-8>]
   e8 fe f3 ff ff ?? call function 0x00401190
  
  L30: 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
  
  