Disassembly: 
  L1: 6a 0c ?? push 12
   68 70 7a 40 00 ?? push 0x00407a70
   e8 6f f5 ff ff ?? call function 0x004010a0
  
  L2: c6 45 e7 00 ?? mov byte ss:[ebp + 0xe7<231,-25>], 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: 8b c7 ?? mov eax, edi
   4f ?? dec edi
   89 7d 10 ?? mov dword ss:[ebp + 0x10<16>], edi
   85 c0 ?? test eax, eax
   74 15 ?? je basic block L7
  
  L4: 2b f3 ?? sub esi, ebx
   89 75 08 ?? mov dword ss:[ebp + 8], esi
   8b 4d 14 ?? mov ecx, dword ss:[ebp + 0x14<20>]
   ff 15 00 a0 40 00 ?? call dword ds:[0x0040a000]
  
  L5: 8b ce ?? mov ecx, esi
   ff 55 14 ?? call dword ss:[ebp + 0x14<20>]
  
  L6: eb e1 ?? jmp basic block L3
  
  L7: b0 01 ?? mov al, 1
   88 45 e7 ?? mov byte ss:[ebp + 0xe7<231,-25>], al
   c7 45 fc fe ff ff ff ?? mov dword ss:[ebp + 0xfc<252,-4>], 0xfffffffe<4294967294,-2>
   e8 1e 00 00 00 ?? call function 0x00401b9a
  
  L8: 8b 4d f0 ?? mov ecx, dword ss:[ebp + 0xf0<240,-16>]
   64 89 0d 00 00 00 00 ?? mov dword fs:[0], ecx
   59 ?? pop ecx
   5f ?? pop edi
   5e ?? pop esi
   5b ?? pop ebx
   c9 ?? leave
   c2 10 00 ?? ret 0x0010<16>
  
  