Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   8b 45 0c ?? mov eax, dword ss:[ebp + 12]
   99 ?? cdq
   6a 1f ?? push 0x1f<31>
   59 ?? pop ecx
   23 d1 ?? and edx, ecx
   03 c2 ?? add eax, edx
   8b 55 0c ?? mov edx, dword ss:[ebp + 12]
   c1 f8 05 ?? sar eax, 5
   81 e2 1f 00 00 80 ?? and edx, 0x8000001f
   79 05 ?? jns basic block L3
  
  L2: 4a ?? dec edx
   83 ca e0 ?? or edx, 0xe0<224,-32>
   42 ?? inc edx
  
  L3: 2b ca ?? sub ecx, edx
   83 ca ff ?? or edx, 0xff<255,-1>
   d3 e2 ?? shl edx, cl
   8b 4d 08 ?? mov ecx, dword ss:[ebp + 8]
   f7 d2 ?? not edx
   85 14 81 ?? test dword ds:[ecx + eax * 4], edx
   74 0a ?? je basic block L6
  
  L4: 33 c0 ?? xor eax, eax
   5d ?? pop ebp
   c3 ?? ret
  
  L5: 83 3c 81 00 ?? cmp dword ds:[ecx + eax * 4], 0
   75 f6 ?? jne basic block L4
  
  L6: 40 ?? inc eax
   83 f8 03 ?? cmp eax, 3
   7c f4 ?? jl basic block L5
  
  L7: 33 c0 ?? xor eax, eax
   40 ?? inc eax
   5d ?? pop ebp
   c3 ?? ret
  
  