Disassembly: 
  L1: 55 ?? push ebp
   8b ec ?? mov ebp, esp
   8b 45 0c ?? mov eax, dword ss:[ebp + 12]
   56 ?? push esi
   8b f1 ?? mov esi, ecx
   57 ?? push edi
   8b 7e 10 ?? mov edi, dword ds:[esi + 0x10<16>]
   3b f8 ?? cmp edi, eax
   77 25 ?? ja basic block L5
  
  L2: 83 7e 14 10 ?? cmp dword ds:[esi + 0x14<20>], 0x10<16>
   c7 46 10 00 00 00 00 ?? mov dword ds:[esi + 0x10<16>], 0
   72 0d ?? jb basic block L4
  
  L3: 8b 06 ?? mov eax, dword ds:[esi]
   5f ?? pop edi
   c6 00 00 ?? mov byte ds:[eax], 0
   8b c6 ?? mov eax, esi
   5e ?? pop esi
   5d ?? pop ebp
   c2 08 00 ?? ret 8
  
  L4: 8b c6 ?? mov eax, esi
   5f ?? pop edi
   c6 00 00 ?? mov byte ds:[eax], 0
   5e ?? pop esi
   5d ?? pop ebp
   c2 08 00 ?? ret 8
  
  L5: 85 c0 ?? test eax, eax
   74 37 ?? je basic block L14
  
  L6: 83 7e 14 10 ?? cmp dword ds:[esi + 0x14<20>], 0x10<16>
   72 02 ?? jb basic block L8
  
  L7: 8b 0e ?? mov ecx, dword ds:[esi]
  
  L8: 2b f8 ?? sub edi, eax
   74 0e ?? je basic block L11
  
  L9: 57 ?? push edi
   03 c1 ?? add eax, ecx
   50 ?? push eax
   51 ?? push ecx
   ff 15 c0 30 40 00 ?? call dword ds:[0x004030c0]
  
  L10: 83 c4 0c ?? add esp, 12
  
  L11: 83 7e 14 10 ?? cmp dword ds:[esi + 0x14<20>], 0x10<16>
   89 7e 10 ?? mov dword ds:[esi + 0x10<16>], edi
   72 0e ?? jb basic block L13
  
  L12: 8b 06 ?? mov eax, dword ds:[esi]
   c6 04 38 00 ?? mov byte ds:[eax + edi], 0
   5f ?? pop edi
   8b c6 ?? mov eax, esi
   5e ?? pop esi
   5d ?? pop ebp
   c2 08 00 ?? ret 8
  
  L13: 8b c6 ?? mov eax, esi
   c6 04 38 00 ?? mov byte ds:[eax + edi], 0
  
  L14: 5f ?? pop edi
   8b c6 ?? mov eax, esi
   5e ?? pop esi
   5d ?? pop ebp
   c2 08 00 ?? ret 8
  
  