Disassembly: 
  L1: 6a 0c ?? push 12
   68 f0 48 43 00 ?? push 0x004348f0
   e8 d6 f7 fe ff ?? call function 0x0040dd4c
  
  L2: 33 ff ?? xor edi, edi
   89 7d e4 ?? mov dword ss:[ebp + 0xe4<228,-28>], edi
   32 db ?? xor bl, bl
   f6 45 0c 08 ?? test byte ss:[ebp + 12], 8
   74 03 ?? je basic block L4
  
  L3: 80 c3 20 ?? add bl, 0x20<32>
  
  L4: f7 45 0c 00 40 00 00 ?? test dword ss:[ebp + 12], 0x00004000<16384>
   74 03 ?? je basic block L6
  
  L5: 80 cb 80 ?? or bl, 0x80<128,-128>
  
  L6: f6 45 0c 80 ?? test byte ss:[ebp + 12], 0x80<128,-128>
   74 03 ?? je basic block L8
  
  L7: 80 cb 10 ?? or bl, 0x10<16>
  
  L8: ff 75 08 ?? push dword ss:[ebp + 8]
   ff 15 98 92 43 00 ?? call dword ds:[0x00439298]
  
  L9: 3b c7 ?? cmp eax, edi
   75 16 ?? jne basic block L16
  
  L10: ff 15 30 92 43 00 ?? call dword ds:[0x00439230]
  
  L11: 50 ?? push eax
   e8 94 e3 fe ff ?? call function 0x0040c948
  
  L12: 59 ?? pop ecx
  
  L13: 83 c8 ff ?? or eax, 0xff<255,-1>
  
  L14: e8 d4 f7 fe ff ?? call function 0x0040dd91
  
  L15: c3 ?? ret
  
  L16: 83 f8 02 ?? cmp eax, 2
   75 05 ?? jne basic block L18
  
  L17: 80 cb 40 ?? or bl, 0x40<64>
   eb 08 ?? jmp basic block L20
  
  L18: 83 f8 03 ?? cmp eax, 3
   75 03 ?? jne basic block L20
  
  L19: 80 cb 08 ?? or bl, 8
  
  L20: e8 fb fd ff ff ?? call function 0x0041e3d0
  
  L21: 8b f0 ?? mov esi, eax
   89 75 0c ?? mov dword ss:[ebp + 12], esi
   83 fe ff ?? cmp esi, 0xff<255,-1>
   75 14 ?? jne basic block L25
  
  L22: e8 3e e3 fe ff ?? call function 0x0040c922
  
  L23: c7 00 18 00 00 00 ?? mov dword ds:[eax], 0x00000018<24>
   e8 46 e3 fe ff ?? call function 0x0040c935
  
  L24: 89 38 ?? mov dword ds:[eax], edi
   eb c2 ?? jmp basic block L13
  
  L25: 89 7d fc ?? mov dword ss:[ebp + 0xfc<252,-4>], edi
   ff 75 08 ?? push dword ss:[ebp + 8]
   56 ?? push esi
   e8 8c fb ff ff ?? call function 0x0041e18b
  
  L26: 59 ?? pop ecx
   59 ?? pop ecx
   80 cb 01 ?? or bl, 1
   8b c6 ?? mov eax, esi
   c1 f8 05 ?? sar eax, 5
   8d 0c 85 e0 76 43 00 ?? lea ecx, ds:[0x004376e0 + eax * 4]
   8b c6 ?? mov eax, esi
   83 e0 1f ?? and eax, 0x1f<31>
   c1 e0 06 ?? shl eax, 6
   8b 11 ?? mov edx, dword ds:[ecx]
   88 5c 02 04 ?? mov byte ds:[edx + eax + 4], bl
   8b 11 ?? mov edx, dword ds:[ecx]
   8d 54 02 24 ?? lea edx, ds:[edx + eax + 0x24<36>]
   80 22 80 ?? and byte ds:[edx], 0x80<128,-128>
   8b 09 ?? mov ecx, dword ds:[ecx]
   8d 44 01 24 ?? lea eax, ds:[ecx + eax + 0x24<36>]
   80 20 7f ?? and byte ds:[eax], 0x7f<127>
   c7 45 e4 01 00 00 00 ?? mov dword ss:[ebp + 0xe4<228,-28>], 1
   c7 45 fc fe ff ff ff ?? mov dword ss:[ebp + 0xfc<252,-4>], 0xfffffffe<4294967294,-2>
   e8 15 00 00 00 ?? call function 0x0041e658
  
  L27: 39 7d e4 ?? cmp dword ss:[ebp + 0xe4<228,-28>], edi
   0f 84 69 ff ff ff ?? je basic block L13
  
  L28: 8b c6 ?? mov eax, esi
   e9 65 ff ff ff ?? jmp basic block L14
  
  