Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   83 ec 0c ?? sub esp, 12
   83 65 fc 00 ?? and dword ss:[ebp + 0xfc<252,-4>], 0
   83 7d 0c 01 ?? cmp dword ss:[ebp + 12], 1
   53 ?? push ebx
   56 ?? push esi
   57 ?? push edi
   8b 7d 10 ?? mov edi, dword ss:[ebp + 0x10<16>]
   8b f0 ?? mov esi, eax
   8b c7 ?? mov eax, edi
   0f 85 f9 00 00 00 ?? jne basic block L20
  
  L2: 25 03 00 00 80 ?? and eax, 0x80000003
   79 05 ?? jns basic block L4
  
  L3: 48 ?? dec eax
   83 c8 fc ?? or eax, 0xfc<252,-4>
   40 ?? inc eax
  
  L4: 89 45 f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], eax
   75 0c ?? jne basic block L6
  
  L5: 8b c7 ?? mov eax, edi
   6a 64 ?? push 0x64<100>
   99 ?? cdq
   5b ?? pop ebx
   f7 fb ?? idiv ebx
   85 d2 ?? test edx, edx
   75 1f ?? jne basic block L8
  
  L6: 8d 87 6c 07 00 00 ?? lea eax, ds:[edi + 0x0000076c<1900>]
   99 ?? cdq
   bb 90 01 00 00 ?? mov ebx, 0x00000190<400>
   f7 fb ?? idiv ebx
   85 d2 ?? test edx, edx
   74 0d ?? je basic block L8
  
  L7: 8b c6 ?? mov eax, esi
   c1 e0 02 ?? shl eax, 2
   8b b0 50 8d 42 00 ?? mov esi, dword ds:[eax + 0x00428d50]
   eb 0b ?? jmp basic block L9
  
  L8: 8b c6 ?? mov eax, esi
   c1 e0 02 ?? shl eax, 2
   8b b0 1c 8d 42 00 ?? mov esi, dword ds:[eax + 0x00428d1c]
  
  L9: 89 45 0c ?? mov dword ss:[ebp + 12], eax
   8d 87 2b 01 00 00 ?? lea eax, ds:[edi + 0x0000012b<299>]
   99 ?? cdq
   8d 5f ff ?? lea ebx, ds:[edi + 0xff<255,-1>]
   bf 90 01 00 00 ?? mov edi, 0x00000190<400>
   f7 ff ?? idiv edi
   6a 64 ?? push 0x64<100>
   5f ?? pop edi
   46 ?? inc esi
   6a 07 ?? push 7
   89 45 f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], eax
   8b c3 ?? mov eax, ebx
   99 ?? cdq
   f7 ff ?? idiv edi
   8b 55 f8 ?? mov edx, dword ss:[ebp + 0xf8<248,-8>]
   8b 7d 10 ?? mov edi, dword ss:[ebp + 0x10<16>]
   2b d0 ?? sub edx, eax
   8b da ?? mov ebx, edx
   8d 47 ff ?? lea eax, ds:[edi + 0xff<255,-1>]
   99 ?? cdq
   83 e2 03 ?? and edx, 3
   03 c2 ?? add eax, edx
   c1 f8 02 ?? sar eax, 2
   8b d7 ?? mov edx, edi
   69 d2 6d 01 00 00 ?? imul edx, edx, 0x0000016d<365>
   03 c6 ?? add eax, esi
   03 c3 ?? add eax, ebx
   8d 84 02 25 9c ff ff ?? lea eax, ds:[edx + eax + 0xffff9c25<4294941733,-25563>]
   99 ?? cdq
   5b ?? pop ebx
   f7 fb ?? idiv ebx
   8b 45 14 ?? mov eax, dword ss:[ebp + 0x14<20>]
   6b c0 07 ?? imul eax, eax, 7
   2b c2 ?? sub eax, edx
   03 45 18 ?? add eax, dword ss:[ebp + 0x18<24>]
   3b 55 18 ?? cmp edx, dword ss:[ebp + 0x18<24>]
   7f 06 ?? jg basic block L11
  
  L10: 8d 74 06 f9 ?? lea esi, ds:[esi + eax + 0xf9<249,-7>]
   eb 02 ?? jmp basic block L12
  
  L11: 03 f0 ?? add esi, eax
  
  L12: 83 7d 14 05 ?? cmp dword ss:[ebp + 0x14<20>], 5
   0f 85 80 00 00 00 ?? jne basic block L28
  
  L13: 83 7d f4 00 ?? cmp dword ss:[ebp + 0xf4<244,-12>], 0
   75 0c ?? jne basic block L15
  
  L14: 8b c7 ?? mov eax, edi
   6a 64 ?? push 0x64<100>
   99 ?? cdq
   5b ?? pop ebx
   f7 fb ?? idiv ebx
   85 d2 ?? test edx, edx
   75 1d ?? jne basic block L17
  
  L15: 8d 87 6c 07 00 00 ?? lea eax, ds:[edi + 0x0000076c<1900>]
   99 ?? cdq
   bb 90 01 00 00 ?? mov ebx, 0x00000190<400>
   f7 fb ?? idiv ebx
   85 d2 ?? test edx, edx
   74 0b ?? je basic block L17
  
  L16: 8b 45 0c ?? mov eax, dword ss:[ebp + 12]
   8b 80 54 8d 42 00 ?? mov eax, dword ds:[eax + 0x00428d54]
   eb 09 ?? jmp basic block L18
  
  L17: 8b 45 0c ?? mov eax, dword ss:[ebp + 12]
   8b 80 20 8d 42 00 ?? mov eax, dword ds:[eax + 0x00428d20]
  
  L18: 3b f0 ?? cmp esi, eax
   7e 44 ?? jle basic block L28
  
  L19: 83 ee 07 ?? sub esi, 7
   eb 3f ?? jmp basic block L28
  
  L20: 25 03 00 00 80 ?? and eax, 0x80000003
   79 05 ?? jns basic block L22
  
  L21: 48 ?? dec eax
   83 c8 fc ?? or eax, 0xfc<252,-4>
   40 ?? inc eax
  
  L22: 75 0c ?? jne basic block L24
  
  L23: 8b c7 ?? mov eax, edi
   6a 64 ?? push 0x64<100>
   99 ?? cdq
   5b ?? pop ebx
   f7 fb ?? idiv ebx
   85 d2 ?? test edx, edx
   75 1b ?? jne basic block L26
  
  L24: 8d 87 6c 07 00 00 ?? lea eax, ds:[edi + 0x0000076c<1900>]
   99 ?? cdq
   bb 90 01 00 00 ?? mov ebx, 0x00000190<400>
   f7 fb ?? idiv ebx
   85 d2 ?? test edx, edx
   74 09 ?? je basic block L26
  
  L25: 8b 34 b5 50 8d 42 00 ?? mov esi, dword ds:[0x00428d50 + esi * 4]
   eb 07 ?? jmp basic block L27
  
  L26: 8b 34 b5 1c 8d 42 00 ?? mov esi, dword ds:[0x00428d1c + esi * 4]
  
  L27: 03 75 1c ?? add esi, dword ss:[ebp + 0x1c<28>]
  
  L28: 6b c9 3c ?? imul ecx, ecx, 0x3c<60>
   03 4d 20 ?? add ecx, dword ss:[ebp + 0x20<32>]
   6b c9 3c ?? imul ecx, ecx, 0x3c<60>
   03 4d 24 ?? add ecx, dword ss:[ebp + 0x24<36>]
   69 c9 e8 03 00 00 ?? imul ecx, ecx, 0x000003e8<1000>
   03 4d 28 ?? add ecx, dword ss:[ebp + 0x28<40>]
   83 7d 08 01 ?? cmp dword ss:[ebp + 8], 1
   75 14 ?? jne basic block L30
  
  L29: 89 35 0c 8d 42 00 ?? mov dword ds:[0x00428d0c], esi
   89 0d 10 8d 42 00 ?? mov dword ds:[0x00428d10], ecx
   89 3d 08 8d 42 00 ?? mov dword ds:[0x00428d08], edi
   eb 6b ?? jmp basic block L39
  
  L30: 8d 45 fc ?? lea eax, ss:[ebp + 0xfc<252,-4>]
   50 ?? push eax
   89 35 18 8d 42 00 ?? mov dword ds:[0x00428d18], esi
   89 0d 1c 8d 42 00 ?? mov dword ds:[0x00428d1c], ecx
   e8 bd f9 ff ff ?? call function 0x0041635e
  
  L31: 59 ?? pop ecx
   85 c0 ?? test eax, eax
   74 0f ?? je basic block L34
  
  L32: 33 c0 ?? xor eax, eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   50 ?? push eax
   e8 84 23 ff ff ?? call function 0x00408d36
  
  L33: 83 c4 14 ?? add esp, 0x14<20>
  
  L34: 8b 45 fc ?? mov eax, dword ss:[ebp + 0xfc<252,-4>]
   69 c0 e8 03 00 00 ?? imul eax, eax, 0x000003e8<1000>
   01 05 1c 8d 42 00 ?? add dword ds:[0x00428d1c], eax
   79 12 ?? jns basic block L36
  
  L35: 81 05 1c 8d 42 00 00 5c ?? add dword ds:[0x00428d1c], 0x05265c00
   26 05
   ff 0d 18 8d 42 00 ?? dec dword ds:[0x00428d18]
   eb 19 ?? jmp basic block L38
  
  L36: b8 00 5c 26 05 ?? mov eax, 0x05265c00
   39 05 1c 8d 42 00 ?? cmp dword ds:[0x00428d1c], eax
   7c 0c ?? jl basic block L38
  
  L37: 29 05 1c 8d 42 00 ?? sub dword ds:[0x00428d1c], eax
   ff 05 18 8d 42 00 ?? inc dword ds:[0x00428d18]
  
  L38: 89 3d 14 8d 42 00 ?? mov dword ds:[0x00428d14], edi
  
  L39: 5f ?? pop edi
   5e ?? pop esi
   5b ?? pop ebx
   c9 ?? leave
   c3 ?? ret
  
  