Disassembly: 
  L1: 53 ?? push ebx
   55 ?? push ebp
   56 ?? push esi
   57 ?? push edi
   6a 54 ?? push 0x54<84>
   e8 ad 01 00 00 ?? call function 0x00401778
  
  L2: 83 c4 04 ?? add esp, 4
   bd 10 58 40 00 ?? mov ebp, 0x00405810
   bf 20 58 40 00 ?? mov edi, 0x00405820
   be 2a 00 00 00 ?? mov esi, 0x0000002a<42>
   85 c0 ?? test eax, eax
   74 10 ?? je basic block L4
  
  L3: c7 00 30 58 40 00 ?? mov dword ds:[eax], 0x00405830
   89 78 0c ?? mov dword ds:[eax + 12], edi
   89 70 50 ?? mov dword ds:[eax + 0x50<80>], esi
   8b d8 ?? mov ebx, eax
   eb 02 ?? jmp basic block L5
  
  L4: 33 db ?? xor ebx, ebx
  
  L5: 6a 54 ?? push 0x54<84>
   e8 7e 01 00 00 ?? call function 0x00401778
  
  L6: 83 c4 04 ?? add esp, 4
   85 c0 ?? test eax, eax
   74 10 ?? je basic block L8
  
  L7: 89 78 0c ?? mov dword ds:[eax + 12], edi
   c7 00 30 58 40 00 ?? mov dword ds:[eax], 0x00405830
   89 70 50 ?? mov dword ds:[eax + 0x50<80>], esi
   8b f8 ?? mov edi, eax
   eb 02 ?? jmp basic block L9
  
  L8: 33 ff ?? xor edi, edi
  
  L9: 6a 0c ?? push 12
   e8 5e 01 00 00 ?? call function 0x00401778
  
  L10: 83 c4 04 ?? add esp, 4
   85 c0 ?? test eax, eax
   74 0a ?? je basic block L12
  
  L11: c7 00 04 58 40 00 ?? mov dword ds:[eax], 0x00405804
   8b e8 ?? mov ebp, eax
   eb 02 ?? jmp basic block L13
  
  L12: 33 ed ?? xor ebp, ebp
  
  L13: a1 3c 82 40 00 ?? mov eax, dword ds:[0x0040823c]
   8b 0d 40 82 40 00 ?? mov ecx, dword ds:[0x00408240]
   50 ?? push eax
   68 48 58 40 00 ?? push 0x00405848<"Cls1::func2()">
   51 ?? push ecx
   e8 f3 f9 ff ff ?? call function 0x00401037
  
  L14: 83 c4 08 ?? add esp, 8
   8b c8 ?? mov ecx, eax
   ff 15 44 82 40 00 ?? call dword ds:[function 0x00408244]
  
  L15: 8b 13 ?? mov edx, dword ds:[ebx]
   8b 02 ?? mov eax, dword ds:[edx]
   8b cb ?? mov ecx, ebx
   ff d0 ?? call eax
  
  L16: 8b 53 0c ?? mov edx, dword ds:[ebx + 12]
   8b 02 ?? mov eax, dword ds:[edx]
   8d 73 0c ?? lea esi, ds:[ebx + 12]
   8b ce ?? mov ecx, esi
   ff d0 ?? call eax
  
  L17: 8b 16 ?? mov edx, dword ds:[esi]
   8b 42 04 ?? mov eax, dword ds:[edx + 4]
   8b ce ?? mov ecx, esi
   ff d0 ?? call eax
  
  L18: 8b 17 ?? mov edx, dword ds:[edi]
   8b 02 ?? mov eax, dword ds:[edx]
   8b cf ?? mov ecx, edi
   ff d0 ?? call eax
  
  L19: 53 ?? push ebx
   e8 f8 00 00 00 ?? call function 0x00401772
  
  L20: 57 ?? push edi
   e8 f2 00 00 00 ?? call function 0x00401772
  
  L21: 55 ?? push ebp
   e8 ec 00 00 00 ?? call function 0x00401772
  
  L22: 83 c4 0c ?? add esp, 12
   5f ?? pop edi
   5e ?? pop esi
   5d ?? pop ebp
   33 c0 ?? xor eax, eax
   5b ?? pop ebx
   c3 ?? ret
  
  