Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   83 ec 0c ?? sub esp, 12
   56 ?? push esi
   8d 45 fc ?? lea eax, ss:[ebp + 0xfc<252,-4>]
   33 f6 ?? xor esi, esi
   50 ?? push eax
   89 75 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], esi
   e8 12 f9 ff ff ?? call function 0x00416138
  
  L2: 59 ?? pop ecx
   85 c0 ?? test eax, eax
   74 0d ?? je basic block L5
  
  L3: 56 ?? push esi
   56 ?? push esi
   56 ?? push esi
   56 ?? push esi
   56 ?? push esi
   e8 29 23 ff ff ?? call function 0x00408b5e
  
  L4: 83 c4 14 ?? add esp, 0x14<20>
  
  L5: 39 75 fc ?? cmp dword ss:[ebp + 0xfc<252,-4>], esi
   75 07 ?? jne basic block L7
  
  L6: 33 c0 ?? xor eax, eax
   e9 58 01 00 00 ?? jmp basic block L31
  
  L7: 8b 57 14 ?? mov edx, dword ds:[edi + 0x14<20>]
   53 ?? push ebx
   33 db ?? xor ebx, ebx
   43 ?? inc ebx
   3b 15 c8 8c 42 00 ?? cmp edx, dword ds:[0x00428cc8]
   75 0c ?? jne basic block L9
  
  L8: 3b 15 d4 8c 42 00 ?? cmp edx, dword ds:[0x00428cd4]
   0f 84 18 01 00 00 ?? je basic block L24
  
  L9: 39 35 cc 9b 42 00 ?? cmp dword ds:[0x00429bcc], esi
   0f 84 b8 00 00 00 ?? je basic block L19
  
  L10: 0f b7 05 c6 9b 42 00 ?? movzx eax, word ds:[0x00429bc6]
   0f b7 0d c0 9b 42 00 ?? movzx ecx, word ds:[0x00429bc0]
   50 ?? push eax
   0f b7 05 c4 9b 42 00 ?? movzx eax, word ds:[0x00429bc4]
   50 ?? push eax
   0f b7 05 c2 9b 42 00 ?? movzx eax, word ds:[0x00429bc2]
   50 ?? push eax
   66 39 35 b8 9b 42 00 ?? cmp word ds:[0x00429bb8], si
   75 15 ?? jne basic block L12
  
  L11: 0f b7 05 bc 9b 42 00 ?? movzx eax, word ds:[0x00429bbc]
   56 ?? push esi
   50 ?? push eax
   0f b7 05 be 9b 42 00 ?? movzx eax, word ds:[0x00429bbe]
   50 ?? push eax
   52 ?? push edx
   53 ?? push ebx
   eb 0c ?? jmp basic block L13
  
  L12: 0f b7 05 be 9b 42 00 ?? movzx eax, word ds:[0x00429bbe]
   50 ?? push eax
   56 ?? push esi
   56 ?? push esi
   52 ?? push edx
   56 ?? push esi
  
  L13: 0f b7 05 ba 9b 42 00 ?? movzx eax, word ds:[0x00429bba]
   53 ?? push ebx
   e8 57 fd ff ff ?? call function 0x00416618
  
  L14: 0f b7 05 72 9b 42 00 ?? movzx eax, word ds:[0x00429b72]
   0f b7 0d 6c 9b 42 00 ?? movzx ecx, word ds:[0x00429b6c]
   83 c4 24 ?? add esp, 0x24<36>
   50 ?? push eax
   0f b7 05 70 9b 42 00 ?? movzx eax, word ds:[0x00429b70]
   50 ?? push eax
   0f b7 05 6e 9b 42 00 ?? movzx eax, word ds:[0x00429b6e]
   50 ?? push eax
   66 39 35 64 9b 42 00 ?? cmp word ds:[0x00429b64], si
   75 17 ?? jne basic block L16
  
  L15: 0f b7 05 68 9b 42 00 ?? movzx eax, word ds:[0x00429b68]
   56 ?? push esi
   50 ?? push eax
   0f b7 05 6a 9b 42 00 ?? movzx eax, word ds:[0x00429b6a]
   50 ?? push eax
   ff 77 14 ?? push dword ds:[edi + 0x14<20>]
   53 ?? push ebx
   eb 0e ?? jmp basic block L17
  
  L16: 0f b7 05 6a 9b 42 00 ?? movzx eax, word ds:[0x00429b6a]
   50 ?? push eax
   56 ?? push esi
   56 ?? push esi
   ff 77 14 ?? push dword ds:[edi + 0x14<20>]
   56 ?? push esi
  
  L17: 0f b7 05 66 9b 42 00 ?? movzx eax, word ds:[0x00429b66]
   56 ?? push esi
   e8 fa fc ff ff ?? call function 0x00416618
  
  L18: 83 c4 24 ?? add esp, 0x24<36>
   eb 54 ?? jmp basic block L24
  
  L19: 83 fa 6b ?? cmp edx, 0x6b<107>
   6a 03 ?? push 3
   58 ?? pop eax
   6a 02 ?? push 2
   59 ?? pop ecx
   c7 45 f4 0b 00 00 00 ?? mov dword ss:[ebp + 0xf4<244,-12>], 11
   89 5d f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], ebx
   7d 13 ?? jge basic block L21
  
  L20: 6a 04 ?? push 4
   58 ?? pop eax
   8b cb ?? mov ecx, ebx
   c7 45 f4 0a 00 00 00 ?? mov dword ss:[ebp + 0xf4<244,-12>], 10
   c7 45 f8 05 00 00 00 ?? mov dword ss:[ebp + 0xf8<248,-8>], 5
  
  L21: 56 ?? push esi
   56 ?? push esi
   56 ?? push esi
   56 ?? push esi
   56 ?? push esi
   51 ?? push ecx
   52 ?? push edx
   53 ?? push ebx
   53 ?? push ebx
   6a 02 ?? push 2
   59 ?? pop ecx
   e8 bc fc ff ff ?? call function 0x00416618
  
  L22: 8b 45 f4 ?? mov eax, dword ss:[ebp + 0xf4<244,-12>]
   56 ?? push esi
   56 ?? push esi
   56 ?? push esi
   56 ?? push esi
   56 ?? push esi
   ff 75 f8 ?? push dword ss:[ebp + 0xf8<248,-8>]
   ff 77 14 ?? push dword ds:[edi + 0x14<20>]
   53 ?? push ebx
   56 ?? push esi
   6a 02 ?? push 2
   59 ?? pop ecx
   e8 a4 fc ff ff ?? call function 0x00416618
  
  L23: 83 c4 48 ?? add esp, 0x48<72>
  
  L24: 8b 0d cc 8c 42 00 ?? mov ecx, dword ds:[0x00428ccc]
   a1 d8 8c 42 00 ?? mov eax, dword ds:[0x00428cd8]
   3b c8 ?? cmp ecx, eax
   8b 57 1c ?? mov edx, dword ds:[edi + 0x1c<28>]
   7d 16 ?? jge basic block L32
  
  L25: 3b d1 ?? cmp edx, ecx
   7c 22 ?? jl basic block L36
  
  L26: 3b d0 ?? cmp edx, eax
   7f 1e ?? jg basic block L36
  
  L27: 3b d1 ?? cmp edx, ecx
   7e 1e ?? jle basic block L37
  
  L28: 3b d0 ?? cmp edx, eax
   7d 1a ?? jge basic block L37
  
  L29: 8b c3 ?? mov eax, ebx
  
  L30: 5b ?? pop ebx
  
  L31: 5e ?? pop esi
   c9 ?? leave
   c3 ?? ret
  
  L32: 3b d0 ?? cmp edx, eax
   7c f6 ?? jl basic block L29
  
  L33: 3b d1 ?? cmp edx, ecx
   7f f2 ?? jg basic block L29
  
  L34: 3b d0 ?? cmp edx, eax
   7e 08 ?? jle basic block L37
  
  L35: 3b d1 ?? cmp edx, ecx
   7d 04 ?? jge basic block L37
  
  L36: 33 c0 ?? xor eax, eax
   eb e8 ?? jmp basic block L30
  
  L37: 8b 47 08 ?? mov eax, dword ds:[edi + 8]
   6b c0 3c ?? imul eax, eax, 0x3c<60>
   03 47 04 ?? add eax, dword ds:[edi + 4]
   6b c0 3c ?? imul eax, eax, 0x3c<60>
   03 07 ?? add eax, dword ds:[edi]
   69 c0 e8 03 00 00 ?? imul eax, eax, 0x000003e8<1000>
   3b d1 ?? cmp edx, ecx
   75 0d ?? jne basic block L39
  
  L38: 33 c9 ?? xor ecx, ecx
   3b 05 d0 8c 42 00 ?? cmp eax, dword ds:[0x00428cd0]
   0f 9d c1 ?? setge cl
   eb 0b ?? jmp basic block L40
  
  L39: 33 c9 ?? xor ecx, ecx
   3b 05 dc 8c 42 00 ?? cmp eax, dword ds:[0x00428cdc]
   0f 9c c1 ?? setl cl
  
  L40: 8b c1 ?? mov eax, ecx
   eb b4 ?? jmp basic block L30
  
  