Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   8b 45 08 ?? mov eax, dword ss:[ebp + 8]
   8b 08 ?? mov ecx, dword ds:[eax]
   53 ?? push ebx
   56 ?? push esi
   57 ?? push edi
   8b 7d 0c ?? mov edi, dword ss:[ebp + 12]
   8b 17 ?? mov edx, dword ds:[edi]
   8d 34 11 ?? lea esi, ds:[ecx + edx]
   33 db ?? xor ebx, ebx
   3b f1 ?? cmp esi, ecx
   72 04 ?? jb basic block L3
  
  L2: 3b f2 ?? cmp esi, edx
   73 03 ?? jae basic block L4
  
  L3: 33 db ?? xor ebx, ebx
   43 ?? inc ebx
  
  L4: 89 30 ?? mov dword ds:[eax], esi
   85 db ?? test ebx, ebx
   74 1e ?? je basic block L10
  
  L5: 8b 48 04 ?? mov ecx, dword ds:[eax + 4]
   8d 51 01 ?? lea edx, ds:[ecx + 1]
   33 f6 ?? xor esi, esi
   3b d1 ?? cmp edx, ecx
   72 05 ?? jb basic block L7
  
  L6: 83 fa 01 ?? cmp edx, 1
   73 03 ?? jae basic block L8
  
  L7: 33 f6 ?? xor esi, esi
   46 ?? inc esi
  
  L8: 89 50 04 ?? mov dword ds:[eax + 4], edx
   85 f6 ?? test esi, esi
   74 03 ?? je basic block L10
  
  L9: ff 40 08 ?? inc dword ds:[eax + 8]
  
  L10: 8b 48 04 ?? mov ecx, dword ds:[eax + 4]
   8b 57 04 ?? mov edx, dword ds:[edi + 4]
   8d 34 11 ?? lea esi, ds:[ecx + edx]
   33 db ?? xor ebx, ebx
   3b f1 ?? cmp esi, ecx
   72 04 ?? jb basic block L12
  
  L11: 3b f2 ?? cmp esi, edx
   73 03 ?? jae basic block L13
  
  L12: 33 db ?? xor ebx, ebx
   43 ?? inc ebx
  
  L13: 89 70 04 ?? mov dword ds:[eax + 4], esi
   85 db ?? test ebx, ebx
   74 03 ?? je basic block L15
  
  L14: ff 40 08 ?? inc dword ds:[eax + 8]
  
  L15: 8b 4f 08 ?? mov ecx, dword ds:[edi + 8]
   01 48 08 ?? add dword ds:[eax + 8], ecx
   5f ?? pop edi
   5e ?? pop esi
   5b ?? pop ebx
   5d ?? pop ebp
   c3 ?? ret
  
  