Disassembly: 
  L1: 51 ?? push ecx
   53 ?? push ebx
   55 ?? push ebp
   56 ?? push esi
   57 ?? push edi
   6a 58 ?? push 0x58<88>
   e8 54 02 00 00 ?? call function 0x00401ad0
  
  L2: 83 c4 04 ?? add esp, 4
   bd 88 58 40 00 ?? mov ebp, 0x00405888
   be 54 58 40 00 ?? mov esi, 0x00405854
   bf 2a 00 00 00 ?? mov edi, 0x0000002a<42>
   85 c0 ?? test eax, eax
   74 21 ?? je basic block L4
  
  L3: c7 40 0c 10 58 40 00 ?? mov dword ds:[eax + 12], 0x00405810
   c7 40 50 20 58 40 00 ?? mov dword ds:[eax + 0x50<80>], 0x00405820
   c7 00 98 58 40 00 ?? mov dword ds:[eax], 0x00405898
   89 68 0c ?? mov dword ds:[eax + 12], ebp
   89 70 50 ?? mov dword ds:[eax + 0x50<80>], esi
   89 78 54 ?? mov dword ds:[eax + 0x54<84>], edi
   8b d8 ?? mov ebx, eax
   eb 02 ?? jmp basic block L5
  
  L4: 33 db ?? xor ebx, ebx
  
  L5: 6a 58 ?? push 0x58<88>
   e8 14 02 00 00 ?? call function 0x00401ad0
  
  L6: 83 c4 04 ?? add esp, 4
   85 c0 ?? test eax, eax
   74 21 ?? je basic block L8
  
  L7: c7 40 0c 10 58 40 00 ?? mov dword ds:[eax + 12], 0x00405810
   c7 40 50 20 58 40 00 ?? mov dword ds:[eax + 0x50<80>], 0x00405820
   89 68 0c ?? mov dword ds:[eax + 12], ebp
   c7 00 98 58 40 00 ?? mov dword ds:[eax], 0x00405898
   89 70 50 ?? mov dword ds:[eax + 0x50<80>], esi
   89 78 54 ?? mov dword ds:[eax + 0x54<84>], edi
   8b e8 ?? mov ebp, eax
   eb 02 ?? jmp basic block L9
  
  L8: 33 ed ?? xor ebp, ebp
  
  L9: 6a 0c ?? push 12
   e8 e3 01 00 00 ?? call function 0x00401ad0
  
  L10: 83 c4 04 ?? add esp, 4
   85 c0 ?? test eax, eax
   74 0c ?? je basic block L12
  
  L11: c7 00 04 58 40 00 ?? mov dword ds:[eax], 0x00405804
   89 44 24 10 ?? mov dword ss:[esp + 0x10<16>], eax
   eb 08 ?? jmp basic block L13
  
  L12: c7 44 24 10 00 00 00 00 ?? mov dword ss:[esp + 0x10<16>], 0
  
  L13: 6a 58 ?? push 0x58<88>
   e8 c1 01 00 00 ?? call function 0x00401ad0
  
  L14: 83 c4 04 ?? add esp, 4
   85 c0 ?? test eax, eax
   74 29 ?? je basic block L16
  
  L15: c7 40 0c 10 58 40 00 ?? mov dword ds:[eax + 12], 0x00405810
   c7 40 50 20 58 40 00 ?? mov dword ds:[eax + 0x50<80>], 0x00405820
   89 78 54 ?? mov dword ds:[eax + 0x54<84>], edi
   c7 00 e8 58 40 00 ?? mov dword ds:[eax], 0x004058e8
   c7 40 0c d8 58 40 00 ?? mov dword ds:[eax + 12], 0x004058d8
   c7 40 50 a4 58 40 00 ?? mov dword ds:[eax + 0x50<80>], 0x004058a4
   8b f8 ?? mov edi, eax
   eb 02 ?? jmp basic block L17
  
  L16: 33 ff ?? xor edi, edi
  
  L17: 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 00 59 40 00 ?? push 0x00405900<"Cls1::func2()">
   51 ?? push ecx
   e8 07 f7 ff ff ?? call function 0x0040105f
  
  L18: 83 c4 08 ?? add esp, 8
   8b c8 ?? mov ecx, eax
   ff 15 44 82 40 00 ?? call dword ds:[function 0x00408244]
  
  L19: 8b 57 0c ?? mov edx, dword ds:[edi + 12]
   8b 42 04 ?? mov eax, dword ds:[edx + 4]
   8d 4f 0c ?? lea ecx, ds:[edi + 12]
   ff d0 ?? call eax
  
  L20: 8b 57 50 ?? mov edx, dword ds:[edi + 0x50<80>]
   8b 42 24 ?? mov eax, dword ds:[edx + 0x24<36>]
   8d 4f 50 ?? lea ecx, ds:[edi + 0x50<80>]
   ff d0 ?? call eax
  
  L21: 8b 13 ?? mov edx, dword ds:[ebx]
   8b 02 ?? mov eax, dword ds:[edx]
   8b cb ?? mov ecx, ebx
   ff d0 ?? call eax
  
  L22: 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
  
  L23: 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
  
  L24: 8b 55 00 ?? mov edx, dword ss:[ebp + 0]
   8b 02 ?? mov eax, dword ds:[edx]
   8b cd ?? mov ecx, ebp
   ff d0 ?? call eax
  
  L25: 53 ?? push ebx
   e8 25 01 00 00 ?? call function 0x00401aca
  
  L26: 55 ?? push ebp
   e8 1f 01 00 00 ?? call function 0x00401aca
  
  L27: 57 ?? push edi
   e8 19 01 00 00 ?? call function 0x00401aca
  
  L28: 8b 4c 24 1c ?? mov ecx, dword ss:[esp + 0x1c<28>]
   51 ?? push ecx
   e8 0f 01 00 00 ?? call function 0x00401aca
  
  L29: 83 c4 10 ?? add esp, 0x10<16>
   5f ?? pop edi
   5e ?? pop esi
   5d ?? pop ebp
   33 c0 ?? xor eax, eax
   5b ?? pop ebx
   59 ?? pop ecx
   c3 ?? ret
  
  