Disassembly: 
  L1: 6a 0c ?? push 12
   68 18 23 40 00 ?? push 0x00402318
   e8 e8 04 00 00 ?? call function 0x00401cb0
  
  L2: 83 65 e4 00 ?? and dword ss:[ebp + 0xe4<228,-28>], 0
   8b 5d 0c ?? mov ebx, dword ss:[ebp + 12]
   8b c3 ?? mov eax, ebx
   8b 7d 10 ?? mov edi, dword ss:[ebp + 0x10<16>]
   0f af c7 ?? imul eax, edi
   8b 75 08 ?? mov esi, dword ss:[ebp + 8]
   03 f0 ?? add esi, eax
   89 75 08 ?? mov dword ss:[ebp + 8], esi
   83 65 fc 00 ?? and dword ss:[ebp + 0xfc<252,-4>], 0
  
  L3: 4f ?? dec edi
   89 7d 10 ?? mov dword ss:[ebp + 0x10<16>], edi
   78 0c ?? js basic block L6
  
  L4: 2b f3 ?? sub esi, ebx
   89 75 08 ?? mov dword ss:[ebp + 8], esi
   8b ce ?? mov ecx, esi
   ff 55 14 ?? call dword ss:[ebp + 0x14<20>]
  
  L5: eb ee ?? jmp basic block L3
  
  L6: 33 c0 ?? xor eax, eax
   40 ?? inc eax
   89 45 e4 ?? mov dword ss:[ebp + 0xe4<228,-28>], eax
   c7 45 fc fe ff ff ff ?? mov dword ss:[ebp + 0xfc<252,-4>], 0xfffffffe<4294967294,-2>
   e8 14 00 00 00 ?? call function 0x0040181b
  
  L7: e8 e9 04 00 00 ?? call function 0x00401cf5
  
  L8: c2 10 00 ?? ret 0x0010<16>
  
  