Disassembly: 
  L1: 55 ?? push ebp
   8b ec ?? mov ebp, esp
   83 ec 08 ?? sub esp, 8
   53 ?? push ebx
   56 ?? push esi
   8b 35 e8 30 40 00 ?? mov esi, dword ds:[0x004030e8]
   57 ?? push edi
   6a 58 ?? push 0x58<88>
   ff d6 ?? call esi
  
  L2: 83 c4 04 ?? add esp, 4
   bf 84 33 40 00 ?? mov edi, 0x00403384
   85 c0 ?? test eax, eax
   74 29 ?? je basic block L4
  
  L3: c7 40 0c 38 33 40 00 ?? mov dword ds:[eax + 12], 0x00403338
   c7 40 50 44 33 40 00 ?? mov dword ds:[eax + 0x50<80>], 0x00403344
   c7 00 70 33 40 00 ?? mov dword ds:[eax], 0x00403370
   c7 40 0c 78 33 40 00 ?? mov dword ds:[eax + 12], 0x00403378
   89 78 50 ?? mov dword ds:[eax + 0x50<80>], edi
   c7 40 54 2a 00 00 00 ?? mov dword ds:[eax + 0x54<84>], 0x0000002a<42>
   8b d8 ?? mov ebx, eax
   eb 02 ?? jmp basic block L5
  
  L4: 33 db ?? xor ebx, ebx
  
  L5: 6a 58 ?? push 0x58<88>
   ff d6 ?? call esi
  
  L6: 83 c4 04 ?? add esp, 4
   85 c0 ?? test eax, eax
   74 2a ?? je basic block L8
  
  L7: c7 40 0c 38 33 40 00 ?? mov dword ds:[eax + 12], 0x00403338
   c7 40 50 44 33 40 00 ?? mov dword ds:[eax + 0x50<80>], 0x00403344
   c7 00 70 33 40 00 ?? mov dword ds:[eax], 0x00403370
   c7 40 0c 78 33 40 00 ?? mov dword ds:[eax + 12], 0x00403378
   89 78 50 ?? mov dword ds:[eax + 0x50<80>], edi
   c7 40 54 2a 00 00 00 ?? mov dword ds:[eax + 0x54<84>], 0x0000002a<42>
   89 45 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], eax
   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
   ff d6 ?? call esi
  
  L10: 33 ff ?? xor edi, edi
   83 c4 04 ?? add esp, 4
   3b c7 ?? cmp eax, edi
   74 0b ?? je basic block L12
  
  L11: c7 00 30 33 40 00 ?? mov dword ds:[eax], 0x00403330
   89 45 f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], eax
   eb 03 ?? jmp basic block L13
  
  L12: 89 7d f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], edi
  
  L13: 6a 58 ?? push 0x58<88>
   ff d6 ?? call esi
  
  L14: 83 c4 04 ?? add esp, 4
   3b c7 ?? cmp eax, edi
   74 2b ?? je basic block L16
  
  L15: c7 40 0c 38 33 40 00 ?? mov dword ds:[eax + 12], 0x00403338
   c7 40 50 44 33 40 00 ?? mov dword ds:[eax + 0x50<80>], 0x00403344
   c7 40 54 2a 00 00 00 ?? mov dword ds:[eax + 0x54<84>], 0x0000002a<42>
   c7 00 b0 33 40 00 ?? mov dword ds:[eax], 0x004033b0
   c7 40 0c b8 33 40 00 ?? mov dword ds:[eax + 12], 0x004033b8
   c7 40 50 c4 33 40 00 ?? mov dword ds:[eax + 0x50<80>], 0x004033c4
   8b f8 ?? mov edi, eax
  
  L16: a1 58 30 40 00 ?? mov eax, dword ds:[0x00403058]
   8b 0d 7c 30 40 00 ?? mov ecx, dword ds:[0x0040307c]
   50 ?? push eax
   68 64 32 40 00 ?? push 0x00403264<"Cls1::func2()">
   51 ?? push ecx
   e8 f2 01 00 00 ?? call function 0x00401670
  
  L17: 83 c4 08 ?? add esp, 8
   8b c8 ?? mov ecx, eax
   ff 15 64 30 40 00 ?? call dword ds:[function 0x00403064]
  
  L18: 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
  
  L19: 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
  
  L20: 8b 13 ?? mov edx, dword ds:[ebx]
   8b 02 ?? mov eax, dword ds:[edx]
   8b cb ?? mov ecx, ebx
   ff d0 ?? call eax
  
  L21: 8b 53 0c ?? mov edx, dword ds:[ebx + 12]
   8b 02 ?? mov eax, dword ds:[edx]
   8d 4b 0c ?? lea ecx, ds:[ebx + 12]
   ff d0 ?? call eax
  
  L22: 8b 53 0c ?? mov edx, dword ds:[ebx + 12]
   8b 42 04 ?? mov eax, dword ds:[edx + 4]
   8d 4b 0c ?? lea ecx, ds:[ebx + 12]
   ff d0 ?? call eax
  
  L23: 8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
   8b 11 ?? mov edx, dword ds:[ecx]
   8b 02 ?? mov eax, dword ds:[edx]
   ff d0 ?? call eax
  
  L24: 8b 35 ec 30 40 00 ?? mov esi, dword ds:[0x004030ec]
   53 ?? push ebx
   ff d6 ?? call esi
  
  L25: 8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
   51 ?? push ecx
   ff d6 ?? call esi
  
  L26: 57 ?? push edi
   ff d6 ?? call esi
  
  L27: 8b 55 f8 ?? mov edx, dword ss:[ebp + 0xf8<248,-8>]
   52 ?? push edx
   ff d6 ?? call esi
  
  L28: 83 c4 10 ?? add esp, 0x10<16>
   5f ?? pop edi
   5e ?? pop esi
   33 c0 ?? xor eax, eax
   5b ?? pop ebx
   8b e5 ?? mov esp, ebp
   5d ?? pop ebp
   c3 ?? ret
  
  