Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   33 c0 ?? xor eax, eax
   53 ?? push ebx
   33 db ?? xor ebx, ebx
   40 ?? inc eax
   39 5d 0c ?? cmp dword ss:[ebp + 12], ebx
   7c 46 ?? jl basic block L12
  
  L2: 56 ?? push esi
   57 ?? push edi
  
  L3: 85 c0 ?? test eax, eax
   74 3e ?? je basic block L11
  
  L4: 8b 45 0c ?? mov eax, dword ss:[ebp + 12]
   03 c3 ?? add eax, ebx
   99 ?? cdq
   2b c2 ?? sub eax, edx
   8b f0 ?? mov esi, eax
   8b 45 08 ?? mov eax, dword ss:[ebp + 8]
   d1 fe ?? sar esi, 1
   8d 3c f0 ?? lea edi, ds:[eax + esi * 8]
   ff 37 ?? push dword ds:[edi]
   8b 45 10 ?? mov eax, dword ss:[ebp + 0x10<16>]
   ff 30 ?? push dword ds:[eax]
   e8 ff 4e 00 00 ?? call function 0x004169fd
  
  L5: 59 ?? pop ecx
   59 ?? pop ecx
   85 c0 ?? test eax, eax
   75 0a ?? jne basic block L7
  
  L6: 8b 4d 10 ?? mov ecx, dword ss:[ebp + 0x10<16>]
   83 c7 04 ?? add edi, 4
   89 39 ?? mov dword ds:[ecx], edi
   eb 0b ?? jmp basic block L10
  
  L7: 7d 06 ?? jge basic block L9
  
  L8: 4e ?? dec esi
   89 75 0c ?? mov dword ss:[ebp + 12], esi
   eb 03 ?? jmp basic block L10
  
  L9: 8d 5e 01 ?? lea ebx, ds:[esi + 1]
  
  L10: 3b 5d 0c ?? cmp ebx, dword ss:[ebp + 12]
   7e be ?? jle basic block L3
  
  L11: 5f ?? pop edi
   5e ?? pop esi
  
  L12: 33 c9 ?? xor ecx, ecx
   85 c0 ?? test eax, eax
   0f 94 c1 ?? sete cl
   5b ?? pop ebx
   8b c1 ?? mov eax, ecx
   5d ?? pop ebp
   c3 ?? ret
  
  