Disassembly: 
  L1: 55 ?? push ebp
   8b ec ?? mov ebp, esp
   8b 55 08 ?? mov edx, dword ss:[ebp + 8]
   b8 ff ff ff 7f ?? mov eax, 0x7fffffff
   83 ca 0f ?? or edx, 15
   56 ?? push esi
   8b 71 14 ?? mov esi, dword ds:[ecx + 0x14<20>]
   3b d0 ?? cmp edx, eax
   77 1d ?? ja basic block L5
  
  L2: 8b ce ?? mov ecx, esi
   d1 e9 ?? shr ecx, 1
   2b c1 ?? sub eax, ecx
   3b f0 ?? cmp esi, eax
   76 0a ?? jbe basic block L4
  
  L3: b8 ff ff ff 7f ?? mov eax, 0x7fffffff
   5e ?? pop esi
   5d ?? pop ebp
   c2 04 00 ?? ret 4
  
  L4: 03 ce ?? add ecx, esi
   3b d1 ?? cmp edx, ecx
   0f 42 d1 ?? cmovb edx, ecx
   8b c2 ?? mov eax, edx
  
  L5: 5e ?? pop esi
   5d ?? pop ebp
   c2 04 00 ?? ret 4
  
  