Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   53 ?? push ebx
   8b 5d 08 ?? mov ebx, dword ss:[ebp + 8]
   57 ?? push edi
   83 c8 ff ?? or eax, 0xff<255,-1>
   8b f9 ?? mov edi, ecx
   2b 47 14 ?? sub eax, dword ds:[edi + 0x14<20>]
   3b c3 ?? cmp eax, ebx
   77 05 ?? ja basic block L3
  
  L2: e8 74 0c 00 00 ?? call function 0x00404f5f
  
  L3: 85 db ?? test ebx, ebx
   76 2b ?? jbe basic block L9
  
  L4: 56 ?? push esi
   8b 77 14 ?? mov esi, dword ds:[edi + 0x14<20>]
   6a 00 ?? push 0
   03 f3 ?? add esi, ebx
   56 ?? push esi
   8b cf ?? mov ecx, edi
   e8 f1 cd ff ff ?? call function 0x004010f0
  
  L5: 84 c0 ?? test al, al
   74 16 ?? je basic block L8
  
  L6: ff 75 0c ?? push dword ss:[ebp + 12]
   8b cf ?? mov ecx, edi
   53 ?? push ebx
   ff 77 14 ?? push dword ds:[edi + 0x14<20>]
   e8 f0 f8 ff ff ?? call function 0x00403c01
  
  L7: 56 ?? push esi
   8b cf ?? mov ecx, edi
   e8 3b ce ff ff ?? call function 0x00401154
  
  L8: 5e ?? pop esi
  
  L9: 8b c7 ?? mov eax, edi
   5f ?? pop edi
   5b ?? pop ebx
   5d ?? pop ebp
   c2 08 00 ?? ret 8
  
  