Disassembly: 
  L1: 55 ?? push ebp
   8b ec ?? mov ebp, esp
   51 ?? push ecx
   53 ?? push ebx
   56 ?? push esi
   8b f1 ?? mov esi, ecx
   57 ?? push edi
   8b 7d 0c ?? mov edi, dword ss:[ebp + 12]
   8b 4e 14 ?? mov ecx, dword ds:[esi + 0x14<20>]
   89 4d fc ?? mov dword ss:[ebp + 0xfc<252,-4>], ecx
   3b f9 ?? cmp edi, ecx
   77 28 ?? ja basic block L6
  
  L2: 8b de ?? mov ebx, esi
   83 f9 10 ?? cmp ecx, 0x10<16>
   72 02 ?? jb basic block L4
  
  L3: 8b 1e ?? mov ebx, dword ds:[esi]
  
  L4: 57 ?? push edi
   ff 75 08 ?? push dword ss:[ebp + 8]
   89 7e 10 ?? mov dword ds:[esi + 0x10<16>], edi
   53 ?? push ebx
   e8 de 18 00 00 ?? call function 0x0040327a
  
  L5: 83 c4 0c ?? add esp, 12
   c6 04 3b 00 ?? mov byte ds:[ebx + edi], 0
   8b c6 ?? mov eax, esi
   5f ?? pop edi
   5e ?? pop esi
   5b ?? pop ebx
   8b e5 ?? mov esp, ebp
   5d ?? pop ebp
   c2 08 00 ?? ret 8
  
  L6: 81 ff ff ff ff 7f ?? cmp edi, 0x7fffffff
   0f 87 9d 00 00 00 ?? ja basic block L22
  
  L7: 8b df ?? mov ebx, edi
   83 cb 0f ?? or ebx, 15
   81 fb ff ff ff 7f ?? cmp ebx, 0x7fffffff
   76 07 ?? jbe basic block L9
  
  L8: bb ff ff ff 7f ?? mov ebx, 0x7fffffff
   eb 1e ?? jmp basic block L12
  
  L9: 8b d1 ?? mov edx, ecx
   b8 ff ff ff 7f ?? mov eax, 0x7fffffff
   d1 ea ?? shr edx, 1
   2b c2 ?? sub eax, edx
   3b c8 ?? cmp ecx, eax
   76 07 ?? jbe basic block L11
  
  L10: bb ff ff ff 7f ?? mov ebx, 0x7fffffff
   eb 08 ?? jmp basic block L12
  
  L11: 8d 04 0a ?? lea eax, ds:[edx + ecx]
   3b d8 ?? cmp ebx, eax
   0f 42 d8 ?? cmovb ebx, eax
  
  L12: 8d 43 01 ?? lea eax, ds:[ebx + 1]
   8b ce ?? mov ecx, esi
   50 ?? push eax
   e8 12 f7 ff ff ?? call function 0x00401109
  
  L13: 57 ?? push edi
   ff 75 08 ?? push dword ss:[ebp + 8]
   89 5e 14 ?? mov dword ds:[esi + 0x14<20>], ebx
   8b d8 ?? mov ebx, eax
   53 ?? push ebx
   89 45 0c ?? mov dword ss:[ebp + 12], eax
   89 7e 10 ?? mov dword ds:[esi + 0x10<16>], edi
   e8 68 18 00 00 ?? call function 0x00403274
  
  L14: 8b 45 fc ?? mov eax, dword ss:[ebp + 0xfc<252,-4>]
   83 c4 0c ?? add esp, 12
   c6 04 3b 00 ?? mov byte ds:[ebx + edi], 0
   83 f8 10 ?? cmp eax, 0x10<16>
   72 29 ?? jb basic block L20
  
  L15: 8d 48 01 ?? lea ecx, ds:[eax + 1]
   8b 06 ?? mov eax, dword ds:[esi]
   81 f9 00 10 00 00 ?? cmp ecx, 0x00001000<4096>
   72 12 ?? jb basic block L18
  
  L16: 8b 50 fc ?? mov edx, dword ds:[eax + 0xfc<252,-4>]
   83 c1 23 ?? add ecx, 0x23<35>
   2b c2 ?? sub eax, edx
   83 c0 fc ?? add eax, 0xfc<252,-4>
   83 f8 1f ?? cmp eax, 0x1f<31>
   77 19 ?? ja basic block L21
  
  L17: 8b c2 ?? mov eax, edx
  
  L18: 51 ?? push ecx
   50 ?? push eax
   e8 31 f7 ff ff ?? call function 0x00401172
  
  L19: 83 c4 08 ?? add esp, 8
  
  L20: 5f ?? pop edi
   89 1e ?? mov dword ds:[esi], ebx
   8b c6 ?? mov eax, esi
   5e ?? pop esi
   5b ?? pop ebx
   8b e5 ?? mov esp, ebp
   5d ?? pop ebp
   c2 08 00 ?? ret 8
  
  L21: ff 15 f8 91 40 00 ?? call dword ds:[0x004091f8]
  
  L22: e8 3a f6 ff ff ?? call function 0x00401096
  
  L23: cc ?? int3
  
  L24: cc ?? int3
  
  L25: cc ?? int3
  
  L26: cc ?? int3
  
  L27: cc ?? int3
  
  L28: cc ?? int3
  
  L29: cc ?? int3
  
  L30: cc ?? int3
  
  L31: cc ?? int3
  
  L32: cc ?? int3
  
  L33: cc ?? int3
  
  L34: cc ?? int3
  
  L35: cc ?? int3
  
  L36: cc ?? int3
  
  L37: cc ?? int3
  
  L38: cc ?? int3
  
  L39: cc ?? int3
  
  L40: cc ?? int3
  
  L41: cc ?? int3
  
  L42: cc ?? int3
  
  L43: cc ?? int3
  
  L44: cc ?? int3
  
  L45: cc ?? int3
  
  L46: cc ?? int3
  
  L47: cc ?? int3
  
  L48: cc ?? int3
  
  L49: cc ?? int3
  
  L50: cc ?? int3
  
  L51: cc ?? int3
  
  L52: cc ?? int3
  
  L53: cc ?? int3
  
  L54: cc ?? int3
  
  L55: cc ?? int3
  
  L56: cc ?? int3
  
  L57: cc ?? int3
  
  L58: cc ?? int3
  
  L59: cc ?? int3
  
  L60: cc ?? int3
  
  L61: cc ?? int3
  
  L62: cc ?? int3
  
  L63: cc ?? int3
  
  L64: cc ?? int3
  
  L65: cc ?? int3
  
  L66: cc ?? int3
  
  L67: cc ?? int3
  
  L68: cc ?? int3
  
  L69: cc ?? int3
  
  L70: cc ?? int3
  
  L71: cc ?? int3
  
  L72: cc ?? int3
  
  L73: cc ?? int3
  
  L74: cc ?? int3
  
  L75: cc ?? int3
  
  L76: cc ?? int3
  
  L77: cc ?? int3
  
  L78: cc ?? int3
  
  L79: cc ?? int3
  
  L80: cc ?? int3
  
  L81: cc ?? int3
  
  L82: cc ?? int3
  
  L83: cc ?? int3
  
  L84: cc ?? int3
  
  L85: cc ?? int3
  
  L86: cc ?? int3
  
  L87: cc ?? int3
  
  L88: cc ?? int3
  
  L89: cc ?? int3
  
  L90: cc ?? int3
  
  