Disassembly: 
  L1: 55 ?? push ebp
   8b ec ?? mov ebp, esp
   56 ?? push esi
   33 c0 ?? xor eax, eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   8b 55 0c ?? mov edx, dword ss:[ebp + 12]
   8d 49 00 ?? lea ecx, ds:[ecx + 0]
  
  L2: 8a 02 ?? mov al, byte ds:[edx]
   0a c0 ?? or al, al
   74 09 ?? je basic block L4
  
  L3: 83 c2 01 ?? add edx, 1
   0f ab 04 24 ?? btr dword ss:[esp], eax
   eb f1 ?? jmp basic block L2
  
  L4: 8b 75 08 ?? mov esi, dword ss:[ebp + 8]
   83 c9 ff ?? or ecx, 0xff<255,-1>
   8d 49 00 ?? lea ecx, ds:[ecx + 0]
  
  L5: 83 c1 01 ?? add ecx, 1
   8a 06 ?? mov al, byte ds:[esi]
   0a c0 ?? or al, al
   74 09 ?? je basic block L7
  
  L6: 83 c6 01 ?? add esi, 1
   0f a3 04 24 ?? bt dword ss:[esp], eax
   73 ee ?? jae basic block L5
  
  L7: 8b c1 ?? mov eax, ecx
   83 c4 20 ?? add esp, 0x20<32>
   5e ?? pop esi
   c9 ?? leave
   c3 ?? ret
  
  