Disassembly: 
  L1: 8b ff ?? mov edi, edi
   56 ?? push esi
   8b f1 ?? mov esi, ecx
   8b 46 20 ?? mov eax, dword ds:[esi + 0x20<32>]
   8b 08 ?? mov ecx, dword ds:[eax]
   85 c9 ?? test ecx, ecx
   74 12 ?? je basic block L4
  
  L2: 8b 56 30 ?? mov edx, dword ds:[esi + 0x30<48>]
   8b 00 ?? mov eax, dword ds:[eax]
   8b 12 ?? mov edx, dword ds:[edx]
   03 d0 ?? add edx, eax
   3b c2 ?? cmp eax, edx
   73 05 ?? jae basic block L4
  
  L3: 0f b6 01 ?? movzx eax, byte ds:[ecx]
   5e ?? pop esi
   c3 ?? ret
  
  L4: 8b 06 ?? mov eax, dword ds:[esi]
   57 ?? push edi
   8b ce ?? mov ecx, esi
   ff 50 14 ?? call dword ds:[eax + 0x14<20>]
  
  L5: 8b f8 ?? mov edi, eax
   83 c8 ff ?? or eax, 0xff<255,-1>
   3b f8 ?? cmp edi, eax
   74 0a ?? je basic block L8
  
  L6: 8b 06 ?? mov eax, dword ds:[esi]
   57 ?? push edi
   8b ce ?? mov ecx, esi
   ff 50 08 ?? call dword ds:[eax + 8]
  
  L7: 8b c7 ?? mov eax, edi
  
  L8: 5f ?? pop edi
   5e ?? pop esi
   c3 ?? ret
  
  