Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   83 ec 20 ?? sub esp, 0x20<32>
   53 ?? push ebx
   33 db ?? xor ebx, ebx
   39 5d 14 ?? cmp dword ss:[ebp + 0x14<20>], ebx
   75 20 ?? jne basic block L5
  
  L2: e8 e7 c9 ff ff ?? call function 0x0040e097
  
  L3: 53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   c7 00 16 00 00 00 ?? mov dword ds:[eax], 0x00000016<22>
   e8 17 8b ff ff ?? call function 0x0040a1d7
  
  L4: 83 c4 14 ?? add esp, 0x14<20>
   83 c8 ff ?? or eax, 0xff<255,-1>
   e9 99 00 00 00 ?? jmp basic block L22
  
  L5: 56 ?? push esi
   8b 75 0c ?? mov esi, dword ss:[ebp + 12]
   57 ?? push edi
   8b 7d 10 ?? mov edi, dword ss:[ebp + 0x10<16>]
   3b fb ?? cmp edi, ebx
   74 21 ?? je basic block L10
  
  L6: 3b f3 ?? cmp esi, ebx
   75 1d ?? jne basic block L10
  
  L7: e8 b7 c9 ff ff ?? call function 0x0040e097
  
  L8: 53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   53 ?? push ebx
   c7 00 16 00 00 00 ?? mov dword ds:[eax], 0x00000016<22>
   e8 e7 8a ff ff ?? call function 0x0040a1d7
  
  L9: 83 c4 14 ?? add esp, 0x14<20>
   83 c8 ff ?? or eax, 0xff<255,-1>
   eb 6a ?? jmp basic block L21
  
  L10: b8 ff ff ff 7f ?? mov eax, 0x7fffffff
   89 45 e4 ?? mov dword ss:[ebp + 0xe4<228,-28>], eax
   3b f8 ?? cmp edi, eax
   77 03 ?? ja basic block L12
  
  L11: 89 7d e4 ?? mov dword ss:[ebp + 0xe4<228,-28>], edi
  
  L12: ff 75 1c ?? push dword ss:[ebp + 0x1c<28>]
   8d 45 e0 ?? lea eax, ss:[ebp + 0xe0<224,-32>]
   ff 75 18 ?? push dword ss:[ebp + 0x18<24>]
   c7 45 ec 42 00 00 00 ?? mov dword ss:[ebp + 0xec<236,-20>], 0x00000042<66>
   ff 75 14 ?? push dword ss:[ebp + 0x14<20>]
   89 75 e8 ?? mov dword ss:[ebp + 0xe8<232,-24>], esi
   50 ?? push eax
   89 75 e0 ?? mov dword ss:[ebp + 0xe0<224,-32>], esi
   ff 55 08 ?? call dword ss:[ebp + 8]
  
  L13: 83 c4 10 ?? add esp, 0x10<16>
   89 45 14 ?? mov dword ss:[ebp + 0x14<20>], eax
   3b f3 ?? cmp esi, ebx
   74 34 ?? je basic block L21
  
  L14: 3b c3 ?? cmp eax, ebx
   7c 22 ?? jl basic block L20
  
  L15: ff 4d e4 ?? dec dword ss:[ebp + 0xe4<228,-28>]
   78 07 ?? js basic block L17
  
  L16: 8b 45 e0 ?? mov eax, dword ss:[ebp + 0xe0<224,-32>]
   88 18 ?? mov byte ds:[eax], bl
   eb 11 ?? jmp basic block L19
  
  L17: 8d 45 e0 ?? lea eax, ss:[ebp + 0xe0<224,-32>]
   50 ?? push eax
   53 ?? push ebx
   e8 16 f0 ff ff ?? call function 0x0041075e
  
  L18: 59 ?? pop ecx
   59 ?? pop ecx
   83 f8 ff ?? cmp eax, 0xff<255,-1>
   74 05 ?? je basic block L20
  
  L19: 8b 45 14 ?? mov eax, dword ss:[ebp + 0x14<20>]
   eb 0e ?? jmp basic block L21
  
  L20: 33 c0 ?? xor eax, eax
   39 5d e4 ?? cmp dword ss:[ebp + 0xe4<228,-28>], ebx
   88 5c 3e ff ?? mov byte ds:[esi + edi + 0xff<255,-1>], bl
   0f 9d c0 ?? setge al
   48 ?? dec eax
   48 ?? dec eax
  
  L21: 5f ?? pop edi
   5e ?? pop esi
  
  L22: 5b ?? pop ebx
   c9 ?? leave
   c3 ?? ret
  
  