Disassembly: 
  L1: 55 ?? push ebp
   8b ec ?? mov ebp, esp
   83 ec 08 ?? sub esp, 8
   53 ?? push ebx
   56 ?? push esi
   8b 35 ec 40 40 00 ?? mov esi, dword ds:[0x004040ec<"RR@">]
   57 ?? push edi
   6a 58 ?? push 0x58<88>
   ff d6 ?? call esi
  
  L2: 8b f8 ?? mov edi, eax
   83 c4 04 ?? add esp, 4
   85 ff ?? test edi, edi
   74 2b ?? je basic block L4
  
  L3: c7 47 0c e4 42 40 00 ?? mov dword ds:[edi + 12], 0x004042e4
   c7 47 50 f0 42 40 00 ?? mov dword ds:[edi + 0x50<80>], 0x004042f0
   c7 07 1c 43 40 00 ?? mov dword ds:[edi], 0x0040431c
   c7 47 0c b4 43 40 00 ?? mov dword ds:[edi + 12], 0x004043b4
   c7 47 50 40 43 40 00 ?? mov dword ds:[edi + 0x50<80>], 0x00404340
   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>
   ff d6 ?? call esi
  
  L6: 8b d8 ?? mov ebx, eax
   83 c4 04 ?? add esp, 4
   85 db ?? test ebx, ebx
   74 2b ?? je basic block L8
  
  L7: c7 43 0c e4 42 40 00 ?? mov dword ds:[ebx + 12], 0x004042e4
   c7 43 50 f0 42 40 00 ?? mov dword ds:[ebx + 0x50<80>], 0x004042f0
   c7 03 1c 43 40 00 ?? mov dword ds:[ebx], 0x0040431c
   c7 43 0c b4 43 40 00 ?? mov dword ds:[ebx + 12], 0x004043b4
   c7 43 50 40 43 40 00 ?? mov dword ds:[ebx + 0x50<80>], 0x00404340
   c7 43 54 2a 00 00 00 ?? mov dword ds:[ebx + 0x54<84>], 0x0000002a<42>
   eb 02 ?? jmp basic block L9
  
  L8: 33 db ?? xor ebx, ebx
  
  L9: 6a 0c ?? push 12
   ff d6 ?? call esi
  
  L10: 83 c4 04 ?? add esp, 4
   89 45 f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], eax
   85 c0 ?? test eax, eax
   74 08 ?? je basic block L12
  
  L11: c7 00 6c 43 40 00 ?? mov dword ds:[eax], 0x0040436c
   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>
   ff d6 ?? call esi
  
  L14: 8b f0 ?? mov esi, eax
   83 c4 04 ?? add esp, 4
   89 45 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], eax
   85 f6 ?? test esi, esi
   74 2b ?? je basic block L16
  
  L15: c7 46 0c e4 42 40 00 ?? mov dword ds:[esi + 12], 0x004042e4
   c7 46 50 f0 42 40 00 ?? mov dword ds:[esi + 0x50<80>], 0x004042f0
   c7 46 54 2a 00 00 00 ?? mov dword ds:[esi + 0x54<84>], 0x0000002a<42>
   c7 06 ac 43 40 00 ?? mov dword ds:[esi], 0x004043ac
   c7 46 0c 74 43 40 00 ?? mov dword ds:[esi + 12], 0x00404374
   c7 46 50 80 43 40 00 ?? mov dword ds:[esi + 0x50<80>], 0x00404380
   eb 05 ?? jmp basic block L17
  
  L16: 33 f6 ?? xor esi, esi
   89 75 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], esi
  
  L17: ff 35 40 40 40 00 ?? push dword ds:[0x00404040<":Q@">]
   8b 0d 6c 40 40 00 ?? mov ecx, dword ds:[0x0040406c]
   ba f0 41 40 00 ?? mov edx, 0x004041f0<"Cls1::func2()">
   e8 2a 09 00 00 ?? call function 0x00402160
  
  L18: 8b c8 ?? mov ecx, eax
   ff 15 34 40 40 00 ?? call dword ds:[function 0x00404034<"BP@">]
  
  L19: 8b 46 0c ?? mov eax, dword ds:[esi + 12]
   8d 4e 0c ?? lea ecx, ds:[esi + 12]
   ff 50 04 ?? call dword ds:[eax + 4]
  
  L20: 8b 46 50 ?? mov eax, dword ds:[esi + 0x50<80>]
   8d 4e 50 ?? lea ecx, ds:[esi + 0x50<80>]
   ff 50 24 ?? call dword ds:[eax + 0x24<36>]
  
  L21: 8b 07 ?? mov eax, dword ds:[edi]
   8b cf ?? mov ecx, edi
   ff 10 ?? call dword ds:[eax]
  
  L22: 8b 47 0c ?? mov eax, dword ds:[edi + 12]
   8d 4f 0c ?? lea ecx, ds:[edi + 12]
   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 50 04 ?? call dword ds:[eax + 4]
  
  L24: 8b 03 ?? mov eax, dword ds:[ebx]
   8b cb ?? mov ecx, ebx
   ff 10 ?? call dword ds:[eax]
  
  L25: 8b 35 f0 40 40 00 ?? mov esi, dword ds:[0x004040f0<"BR@">]
   57 ?? push edi
   ff d6 ?? call esi
  
  L26: 53 ?? push ebx
   ff d6 ?? call esi
  
  L27: ff 75 fc ?? push dword ss:[ebp + 0xfc<252,-4>]
   ff d6 ?? call esi
  
  L28: ff 75 f8 ?? push dword ss:[ebp + 0xf8<248,-8>]
   ff d6 ?? call esi
  
  L29: 83 c4 10 ?? add esp, 0x10<16>
   33 c0 ?? xor eax, eax
   5f ?? pop edi
   5e ?? pop esi
   5b ?? pop ebx
   8b e5 ?? mov esp, ebp
   5d ?? pop ebp
   c3 ?? ret
  
  