Disassembly: 
  L1: 55 ?? push ebp
   8b ec ?? mov ebp, esp
   6a ff ?? push 0xff<255,-1>
   68 b8 20 40 00 ?? push 0x004020b8
   64 a1 00 00 00 00 ?? mov eax, dword fs:[0]
   50 ?? push eax
   56 ?? push esi
   a1 18 40 40 00 ?? mov eax, dword ds:[0x00404018]
   33 c5 ?? xor eax, ebp
   50 ?? push eax
   8d 45 f4 ?? lea eax, ss:[ebp + 0xf4<244,-12>]
   64 a3 00 00 00 00 ?? mov dword fs:[0], eax
   8b 75 08 ?? mov esi, dword ss:[ebp + 8]
   c7 45 fc 00 00 00 00 ?? mov dword ss:[ebp + 0xfc<252,-4>], 0
   ff 15 84 30 40 00 ?? call dword ds:[0x00403084]
  
  L2: 84 c0 ?? test al, al
   75 08 ?? jne basic block L4
  
  L3: 8b 0e ?? mov ecx, dword ds:[esi]
   ff 15 74 30 40 00 ?? call dword ds:[function 0x00403074<"|8@">]
  
  L4: c7 45 fc ff ff ff ff ?? mov dword ss:[ebp + 0xfc<252,-4>], 0xffffffff<4294967295,-1>
   8b 06 ?? mov eax, dword ds:[esi]
   8b 08 ?? mov ecx, dword ds:[eax]
   8b 51 04 ?? mov edx, dword ds:[ecx + 4]
   8b 44 02 38 ?? mov eax, dword ds:[edx + eax + 0x38<56>]
   85 c0 ?? test eax, eax
   74 09 ?? je basic block L6
  
  L5: 8b 10 ?? mov edx, dword ds:[eax]
   8b c8 ?? mov ecx, eax
   8b 42 08 ?? mov eax, dword ds:[edx + 8]
   ff d0 ?? call eax
  
  L6: 8b 4d f4 ?? mov ecx, dword ss:[ebp + 0xf4<244,-12>]
   64 89 0d 00 00 00 00 ?? mov dword fs:[0], ecx
   59 ?? pop ecx
   5e ?? pop esi
   8b e5 ?? mov esp, ebp
   5d ?? pop ebp
   c2 04 00 ?? ret 4
  
  