Disassembly: 
  L1: 8b 44 24 0c ?? mov eax, dword ss:[esp + 12]
   53 ?? push ebx
   85 c0 ?? test eax, eax
   74 52 ?? je basic block L12
  
  L2: 8b 54 24 08 ?? mov edx, dword ss:[esp + 8]
   33 db ?? xor ebx, ebx
   8a 5c 24 0c ?? mov bl, byte ss:[esp + 12]
   f7 c2 03 00 00 00 ?? test edx, 3
   74 16 ?? je basic block L6
  
  L3: 8a 0a ?? mov cl, byte ds:[edx]
   83 c2 01 ?? add edx, 1
   32 cb ?? xor cl, bl
   74 72 ?? je basic block L21
  
  L4: 83 e8 01 ?? sub eax, 1
   74 32 ?? je basic block L12
  
  L5: f7 c2 03 00 00 00 ?? test edx, 3
   75 ea ?? jne basic block L3
  
  L6: 83 e8 04 ?? sub eax, 4
   72 12 ?? jb basic block L9
  
  L7: 57 ?? push edi
   8b fb ?? mov edi, ebx
   c1 e3 08 ?? shl ebx, 8
   03 df ?? add ebx, edi
   8b fb ?? mov edi, ebx
   c1 e3 10 ?? shl ebx, 0x10<16>
   03 df ?? add ebx, edi
   eb 1b ?? jmp basic block L14
  
  L8: 5f ?? pop edi
  
  L9: 83 c0 04 ?? add eax, 4
   74 0e ?? je basic block L12
  
  L10: 8a 0a ?? mov cl, byte ds:[edx]
   83 c2 01 ?? add edx, 1
   32 cb ?? xor cl, bl
   74 40 ?? je basic block L21
  
  L11: 83 e8 01 ?? sub eax, 1
   75 f2 ?? jne basic block L10
  
  L12: 5b ?? pop ebx
   c3 ?? ret
  
  L13: 83 e8 04 ?? sub eax, 4
   72 e5 ?? jb basic block L8
  
  L14: 8b 0a ?? mov ecx, dword ds:[edx]
   33 cb ?? xor ecx, ebx
   bf ff fe fe 7e ?? mov edi, 0x7efefeff
   03 f9 ?? add edi, ecx
   83 f1 ff ?? xor ecx, 0xff<255,-1>
   33 cf ?? xor ecx, edi
   83 c2 04 ?? add edx, 4
   81 e1 00 01 01 81 ?? and ecx, 0x81010100
   74 e0 ?? je basic block L13
  
  L15: 8b 4a fc ?? mov ecx, dword ds:[edx + 0xfc<252,-4>]
   32 cb ?? xor cl, bl
   74 23 ?? je basic block L24
  
  L16: 32 eb ?? xor ch, bl
   74 19 ?? je basic block L23
  
  L17: c1 e9 10 ?? shr ecx, 0x10<16>
   32 cb ?? xor cl, bl
   74 0c ?? je basic block L22
  
  L18: 32 eb ?? xor ch, bl
   74 02 ?? je basic block L20
  
  L19: eb c8 ?? jmp basic block L13
  
  L20: 5f ?? pop edi
  
  L21: 8d 42 ff ?? lea eax, ds:[edx + 0xff<255,-1>]
   5b ?? pop ebx
   c3 ?? ret
  
  L22: 8d 42 fe ?? lea eax, ds:[edx + 0xfe<254,-2>]
   5f ?? pop edi
   5b ?? pop ebx
   c3 ?? ret
  
  L23: 8d 42 fd ?? lea eax, ds:[edx + 0xfd<253,-3>]
   5f ?? pop edi
   5b ?? pop ebx
   c3 ?? ret
  
  L24: 8d 42 fc ?? lea eax, ds:[edx + 0xfc<252,-4>]
   5f ?? pop edi
   5b ?? pop ebx
   c3 ?? ret
  
  