Disassembly: 
  L1: 56 ?? push esi
   8b 44 24 14 ?? mov eax, dword ss:[esp + 0x14<20>]
   0b c0 ?? or eax, eax
   75 28 ?? jne basic block L3
  
  L2: 8b 4c 24 10 ?? mov ecx, dword ss:[esp + 0x10<16>]
   8b 44 24 0c ?? mov eax, dword ss:[esp + 12]
   33 d2 ?? xor edx, edx
   f7 f1 ?? div ecx
   8b d8 ?? mov ebx, eax
   8b 44 24 08 ?? mov eax, dword ss:[esp + 8]
   f7 f1 ?? div ecx
   8b f0 ?? mov esi, eax
   8b c3 ?? mov eax, ebx
   f7 64 24 10 ?? mul dword ss:[esp + 0x10<16>]
   8b c8 ?? mov ecx, eax
   8b c6 ?? mov eax, esi
   f7 64 24 10 ?? mul dword ss:[esp + 0x10<16>]
   03 d1 ?? add edx, ecx
   eb 47 ?? jmp basic block L12
  
  L3: 8b c8 ?? mov ecx, eax
   8b 5c 24 10 ?? mov ebx, dword ss:[esp + 0x10<16>]
   8b 54 24 0c ?? mov edx, dword ss:[esp + 12]
   8b 44 24 08 ?? mov eax, dword ss:[esp + 8]
  
  L4: d1 e9 ?? shr ecx, 1
   d1 db ?? rcr ebx, 1
   d1 ea ?? shr edx, 1
   d1 d8 ?? rcr eax, 1
   0b c9 ?? or ecx, ecx
  
  L5: 75 f4 ?? jne basic block L4
  
  L6: f7 f3 ?? div ebx
   8b f0 ?? mov esi, eax
   f7 64 24 14 ?? mul dword ss:[esp + 0x14<20>]
   8b c8 ?? mov ecx, eax
   8b 44 24 10 ?? mov eax, dword ss:[esp + 0x10<16>]
   f7 e6 ?? mul esi
   03 d1 ?? add edx, ecx
   72 0e ?? jb basic block L10
  
  L7: 3b 54 24 0c ?? cmp edx, dword ss:[esp + 12]
   77 08 ?? ja basic block L10
  
  L8: 72 0f ?? jb basic block L11
  
  L9: 3b 44 24 08 ?? cmp eax, dword ss:[esp + 8]
   76 09 ?? jbe basic block L11
  
  L10: 4e ?? dec esi
   2b 44 24 10 ?? sub eax, dword ss:[esp + 0x10<16>]
   1b 54 24 14 ?? sbb edx, dword ss:[esp + 0x14<20>]
  
  L11: 33 db ?? xor ebx, ebx
  
  L12: 2b 44 24 08 ?? sub eax, dword ss:[esp + 8]
   1b 54 24 0c ?? sbb edx, dword ss:[esp + 12]
   f7 da ?? neg edx
   f7 d8 ?? neg eax
   83 da 00 ?? sbb edx, 0
   8b ca ?? mov ecx, edx
   8b d3 ?? mov edx, ebx
   8b d9 ?? mov ebx, ecx
   8b c8 ?? mov ecx, eax
   8b c6 ?? mov eax, esi
   5e ?? pop esi
   c2 10 00 ?? ret 0x0010<16>
  
  