Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   83 ec 2c ?? sub esp, 0x2c<44>
   a1 3c 80 42 00 ?? mov eax, dword ds:[0x0042803c]
   33 c5 ?? xor eax, ebp
   89 45 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], eax
   8b 45 14 ?? mov eax, dword ss:[ebp + 0x14<20>]
   53 ?? push ebx
   56 ?? push esi
   57 ?? push edi
   33 ff ?? xor edi, edi
   8b da ?? mov ebx, edx
   8b f1 ?? mov esi, ecx
   89 5d dc ?? mov dword ss:[ebp + 0xdc<220,-36>], ebx
   89 45 e4 ?? mov dword ss:[ebp + 0xe4<228,-28>], eax
   39 3d d8 9b 42 00 ?? cmp dword ds:[0x00429bd8], edi
   75 38 ?? jne basic block L8
  
  L2: 6a 01 ?? push 1
   b8 b4 5f 42 00 ?? mov eax, 0x00425fb4
   50 ?? push eax
   6a 01 ?? push 1
   50 ?? push eax
   57 ?? push edi
   57 ?? push edi
   ff 15 d4 a2 42 00 ?? call dword ds:[0x0042a2d4]
  
  L3: 85 c0 ?? test eax, eax
   74 0c ?? je basic block L5
  
  L4: c7 05 d8 9b 42 00 01 00 ?? mov dword ds:[0x00429bd8], 1
   00 00
   eb 15 ?? jmp basic block L8
  
  L5: ff 15 bc a1 42 00 ?? call dword ds:[0x0042a1bc]
  
  L6: 83 f8 78 ?? cmp eax, 0x78<120>
   75 0a ?? jne basic block L8
  
  L7: c7 05 d8 9b 42 00 02 00 ?? mov dword ds:[0x00429bd8], 2
   00 00
  
  L8: 39 7d 10 ?? cmp dword ss:[ebp + 0x10<16>], edi
   7e 26 ?? jle basic block L14
  
  L9: ff 75 10 ?? push dword ss:[ebp + 0x10<16>]
   8b c3 ?? mov eax, ebx
   e8 6f ff ff ff ?? call function 0x0041855e
  
  L10: 59 ?? pop ecx
   89 45 10 ?? mov dword ss:[ebp + 0x10<16>], eax
  
  L11: 8b 55 18 ?? mov edx, dword ss:[ebp + 0x18<24>]
   3b d7 ?? cmp edx, edi
   7e 1e ?? jle basic block L16
  
  L12: 8b 45 e4 ?? mov eax, dword ss:[ebp + 0xe4<228,-28>]
   52 ?? push edx
   e8 5b ff ff ff ?? call function 0x0041855e
  
  L13: 8b d0 ?? mov edx, eax
   59 ?? pop ecx
   89 55 18 ?? mov dword ss:[ebp + 0x18<24>], edx
   eb 12 ?? jmp basic block L17
  
  L14: 83 7d 10 ff ?? cmp dword ss:[ebp + 0x10<16>], 0xff<255,-1>
   7d e2 ?? jge basic block L11
  
  L15: 33 c0 ?? xor eax, eax
   e9 c2 02 00 00 ?? jmp basic block L108
  
  L16: 83 fa ff ?? cmp edx, 0xff<255,-1>
   7c f4 ?? jl basic block L15
  
  L17: 8b 0d d8 9b 42 00 ?? mov ecx, dword ds:[0x00429bd8]
   83 f9 02 ?? cmp ecx, 2
   0f 84 f9 01 00 00 ?? je basic block L88
  
  L18: 3b cf ?? cmp ecx, edi
   0f 84 f1 01 00 00 ?? je basic block L88
  
  L19: 33 c0 ?? xor eax, eax
   40 ?? inc eax
   3b c8 ?? cmp ecx, eax
   75 d6 ?? jne basic block L15
  
  L20: 89 7d d8 ?? mov dword ss:[ebp + 0xd8<216,-40>], edi
   39 7d 1c ?? cmp dword ss:[ebp + 0x1c<28>], edi
   75 08 ?? jne basic block L22
  
  L21: 8b 0e ?? mov ecx, dword ds:[esi]
   8b 49 04 ?? mov ecx, dword ds:[ecx + 4]
   89 4d 1c ?? mov dword ss:[ebp + 0x1c<28>], ecx
  
  L22: 39 7d 10 ?? cmp dword ss:[ebp + 0x10<16>], edi
   74 08 ?? je basic block L24
  
  L23: 3b d7 ?? cmp edx, edi
   0f 85 9a 00 00 00 ?? jne basic block L49
  
  L24: 39 55 10 ?? cmp dword ss:[ebp + 0x10<16>], edx
   75 08 ?? jne basic block L27
  
  L25: 6a 02 ?? push 2
  
  L26: 58 ?? pop eax
   e9 75 02 00 00 ?? jmp basic block L108
  
  L27: 3b d0 ?? cmp edx, eax
   0f 8f 6d 02 00 00 ?? jg basic block L108
  
  L28: 39 45 10 ?? cmp dword ss:[ebp + 0x10<16>], eax
   7e 04 ?? jle basic block L30
  
  L29: 6a 03 ?? push 3
   eb e9 ?? jmp basic block L26
  
  L30: 8d 45 e8 ?? lea eax, ss:[ebp + 0xe8<232,-24>]
   50 ?? push eax
   ff 75 1c ?? push dword ss:[ebp + 0x1c<28>]
   ff 15 78 a2 42 00 ?? call dword ds:[0x0042a278]
  
  L31: 85 c0 ?? test eax, eax
   74 8a ?? je basic block L15
  
  L32: 39 7d 10 ?? cmp dword ss:[ebp + 0x10<16>], edi
   7e 29 ?? jle basic block L40
  
  L33: 83 7d e8 02 ?? cmp dword ss:[ebp + 0xe8<232,-24>], 2
   72 e0 ?? jb basic block L29
  
  L34: 80 7d ee 00 ?? cmp byte ss:[ebp + 0xee<238,-18>], 0
   8d 45 ee ?? lea eax, ss:[ebp + 0xee<238,-18>]
   74 d7 ?? je basic block L29
  
  L35: 8a 50 01 ?? mov dl, byte ds:[eax + 1]
   84 d2 ?? test dl, dl
   74 d0 ?? je basic block L29
  
  L36: 8a 0b ?? mov cl, byte ds:[ebx]
   3a 08 ?? cmp cl, byte ds:[eax]
   72 04 ?? jb basic block L38
  
  L37: 3a ca ?? cmp cl, dl
   76 b1 ?? jbe basic block L25
  
  L38: 40 ?? inc eax
   40 ?? inc eax
   80 38 00 ?? cmp byte ds:[eax], 0
   75 e8 ?? jne basic block L35
  
  L39: eb bd ?? jmp basic block L29
  
  L40: 39 7d 18 ?? cmp dword ss:[ebp + 0x18<24>], edi
   7e 38 ?? jle basic block L49
  
  L41: 83 7d e8 02 ?? cmp dword ss:[ebp + 0xe8<232,-24>], 2
   73 08 ?? jae basic block L43
  
  L42: 33 c0 ?? xor eax, eax
   40 ?? inc eax
   e9 12 02 00 00 ?? jmp basic block L108
  
  L43: 80 7d ee 00 ?? cmp byte ss:[ebp + 0xee<238,-18>], 0
   8d 45 ee ?? lea eax, ss:[ebp + 0xee<238,-18>]
   74 ef ?? je basic block L42
  
  L44: 8a 50 01 ?? mov dl, byte ds:[eax + 1]
   84 d2 ?? test dl, dl
   74 e8 ?? je basic block L42
  
  L45: 8b 4d e4 ?? mov ecx, dword ss:[ebp + 0xe4<228,-28>]
   8a 09 ?? mov cl, byte ds:[ecx]
   3a 08 ?? cmp cl, byte ds:[eax]
   72 08 ?? jb basic block L47
  
  L46: 3a ca ?? cmp cl, dl
   0f 86 74 ff ff ff ?? jbe basic block L25
  
  L47: 40 ?? inc eax
   40 ?? inc eax
   80 38 00 ?? cmp byte ds:[eax], 0
   75 e1 ?? jne basic block L44
  
  L48: eb ce ?? jmp basic block L42
  
  L49: 8b 35 b8 a2 42 00 ?? mov esi, dword ds:[0x0042a2b8]
   57 ?? push edi
   57 ?? push edi
   ff 75 10 ?? push dword ss:[ebp + 0x10<16>]
   53 ?? push ebx
   6a 09 ?? push 9
   ff 75 1c ?? push dword ss:[ebp + 0x1c<28>]
   ff d6 ?? call esi
  
  L50: 8b d8 ?? mov ebx, eax
   89 5d d4 ?? mov dword ss:[ebp + 0xd4<212,-44>], ebx
   3b df ?? cmp ebx, edi
   0f 84 ff fe ff ff ?? je basic block L15
  
  L51: bf 00 04 00 00 ?? mov edi, 0x00000400<1024>
   85 db ?? test ebx, ebx
   7e 40 ?? jle basic block L62
  
  L52: 6a e0 ?? push 0xe0<224,-32>
   33 d2 ?? xor edx, edx
   58 ?? pop eax
   f7 f3 ?? div ebx
   83 f8 02 ?? cmp eax, 2
   72 34 ?? jb basic block L62
  
  L53: 8d 44 1b 08 ?? lea eax, ds:[ebx + ebx + 8]
   3b c7 ?? cmp eax, edi
   77 13 ?? ja basic block L57
  
  L54: e8 1c e7 ff ff ?? call function 0x00416e50
  
  L55: 8b c4 ?? mov eax, esp
   85 c0 ?? test eax, eax
   74 1c ?? je basic block L61
  
  L56: c7 00 cc cc 00 00 ?? mov dword ds:[eax], 0x0000cccc<52428>
   eb 11 ?? jmp basic block L60
  
  L57: 50 ?? push eax
   e8 31 99 fe ff ?? call function 0x00402079
  
  L58: 59 ?? pop ecx
   85 c0 ?? test eax, eax
   74 09 ?? je basic block L61
  
  L59: c7 00 dd dd 00 00 ?? mov dword ds:[eax], 0x0000dddd<56797>
  
  L60: 83 c0 08 ?? add eax, 8
  
  L61: 89 45 e0 ?? mov dword ss:[ebp + 0xe0<224,-32>], eax
   eb 04 ?? jmp basic block L63
  
  L62: 83 65 e0 00 ?? and dword ss:[ebp + 0xe0<224,-32>], 0
  
  L63: 83 7d e0 00 ?? cmp dword ss:[ebp + 0xe0<224,-32>], 0
   0f 84 a8 fe ff ff ?? je basic block L15
  
  L64: 53 ?? push ebx
   ff 75 e0 ?? push dword ss:[ebp + 0xe0<224,-32>]
   ff 75 10 ?? push dword ss:[ebp + 0x10<16>]
   ff 75 dc ?? push dword ss:[ebp + 0xdc<220,-36>]
   6a 01 ?? push 1
   ff 75 1c ?? push dword ss:[ebp + 0x1c<28>]
   ff d6 ?? call esi
  
  L65: 85 c0 ?? test eax, eax
   0f 84 92 00 00 00 ?? je basic block L86
  
  L66: 6a 00 ?? push 0
   6a 00 ?? push 0
   ff 75 18 ?? push dword ss:[ebp + 0x18<24>]
   ff 75 e4 ?? push dword ss:[ebp + 0xe4<228,-28>]
   6a 09 ?? push 9
   ff 75 1c ?? push dword ss:[ebp + 0x1c<28>]
   ff d6 ?? call esi
  
  L67: 8b d8 ?? mov ebx, eax
   85 db ?? test ebx, ebx
   74 7b ?? je basic block L86
  
  L68: 7e 42 ?? jle basic block L78
  
  L69: 6a e0 ?? push 0xe0<224,-32>
   33 d2 ?? xor edx, edx
   58 ?? pop eax
   f7 f3 ?? div ebx
   83 f8 02 ?? cmp eax, 2
   72 36 ?? jb basic block L78
  
  L70: 8d 44 1b 08 ?? lea eax, ds:[ebx + ebx + 8]
   3b c7 ?? cmp eax, edi
   77 16 ?? ja basic block L74
  
  L71: e8 9c e6 ff ff ?? call function 0x00416e50
  
  L72: 8b fc ?? mov edi, esp
   85 ff ?? test edi, edi
   74 5a ?? je basic block L86
  
  L73: c7 07 cc cc 00 00 ?? mov dword ds:[edi], 0x0000cccc<52428>
   83 c7 08 ?? add edi, 8
   eb 1a ?? jmp basic block L79
  
  L74: 50 ?? push eax
   e8 ae 98 fe ff ?? call function 0x00402079
  
  L75: 59 ?? pop ecx
   85 c0 ?? test eax, eax
   74 09 ?? je basic block L77
  
  L76: c7 00 dd dd 00 00 ?? mov dword ds:[eax], 0x0000dddd<56797>
   83 c0 08 ?? add eax, 8
  
  L77: 8b f8 ?? mov edi, eax
   eb 02 ?? jmp basic block L79
  
  L78: 33 ff ?? xor edi, edi
  
  L79: 85 ff ?? test edi, edi
   74 31 ?? je basic block L86
  
  L80: 53 ?? push ebx
   57 ?? push edi
   ff 75 18 ?? push dword ss:[ebp + 0x18<24>]
   ff 75 e4 ?? push dword ss:[ebp + 0xe4<228,-28>]
   6a 01 ?? push 1
   ff 75 1c ?? push dword ss:[ebp + 0x1c<28>]
   ff d6 ?? call esi
  
  L81: 85 c0 ?? test eax, eax
   74 17 ?? je basic block L84
  
  L82: 53 ?? push ebx
   57 ?? push edi
   ff 75 d4 ?? push dword ss:[ebp + 0xd4<212,-44>]
   ff 75 e0 ?? push dword ss:[ebp + 0xe0<224,-32>]
   ff 75 0c ?? push dword ss:[ebp + 12]
   ff 75 08 ?? push dword ss:[ebp + 8]
   ff 15 d4 a2 42 00 ?? call dword ds:[0x0042a2d4]
  
  L83: 89 45 d8 ?? mov dword ss:[ebp + 0xd8<216,-40>], eax
  
  L84: 57 ?? push edi
   e8 1a 82 ff ff ?? call function 0x00410a2d
  
  L85: 59 ?? pop ecx
  
  L86: ff 75 e0 ?? push dword ss:[ebp + 0xe0<224,-32>]
   e8 11 82 ff ff ?? call function 0x00410a2d
  
  L87: 8b 45 d8 ?? mov eax, dword ss:[ebp + 0xd8<216,-40>]
   59 ?? pop ecx
   e9 b5 00 00 00 ?? jmp basic block L108
  
  L88: 33 ff ?? xor edi, edi
   33 db ?? xor ebx, ebx
   39 7d 08 ?? cmp dword ss:[ebp + 8], edi
   75 08 ?? jne basic block L90
  
  L89: 8b 06 ?? mov eax, dword ds:[esi]
   8b 40 14 ?? mov eax, dword ds:[eax + 0x14<20>]
   89 45 08 ?? mov dword ss:[ebp + 8], eax
  
  L90: 39 7d 1c ?? cmp dword ss:[ebp + 0x1c<28>], edi
   75 08 ?? jne basic block L92
  
  L91: 8b 06 ?? mov eax, dword ds:[esi]
   8b 40 04 ?? mov eax, dword ds:[eax + 4]
   89 45 1c ?? mov dword ss:[ebp + 0x1c<28>], eax
  
  L92: ff 75 08 ?? push dword ss:[ebp + 8]
   e8 fb ea ff ff ?? call function 0x00417346
  
  L93: 8b f0 ?? mov esi, eax
   59 ?? pop ecx
   83 fe ff ?? cmp esi, 0xff<255,-1>
   0f 84 ba fd ff ff ?? je basic block L15
  
  L94: 3b 75 1c ?? cmp esi, dword ss:[ebp + 0x1c<28>]
   74 50 ?? je basic block L102
  
  L95: 6a 00 ?? push 0
   6a 00 ?? push 0
   8d 45 10 ?? lea eax, ss:[ebp + 0x10<16>]
   50 ?? push eax
   ff 75 dc ?? push dword ss:[ebp + 0xdc<220,-36>]
   56 ?? push esi
   ff 75 1c ?? push dword ss:[ebp + 0x1c<28>]
   e8 1f eb ff ff ?? call function 0x0041738f
  
  L96: 8b d8 ?? mov ebx, eax
   83 c4 18 ?? add esp, 0x18<24>
   85 db ?? test ebx, ebx
   0f 84 94 fd ff ff ?? je basic block L15
  
  L97: 6a 00 ?? push 0
   6a 00 ?? push 0
   8d 45 18 ?? lea eax, ss:[ebp + 0x18<24>]
   50 ?? push eax
   ff 75 e4 ?? push dword ss:[ebp + 0xe4<228,-28>]
   56 ?? push esi
   ff 75 1c ?? push dword ss:[ebp + 0x1c<28>]
   e8 fe ea ff ff ?? call function 0x0041738f
  
  L98: 8b f8 ?? mov edi, eax
   83 c4 18 ?? add esp, 0x18<24>
   85 ff ?? test edi, edi
   75 0c ?? jne basic block L101
  
  L99: 53 ?? push ebx
   e8 a5 91 fe ff ?? call function 0x00401a45
  
  L100: 59 ?? pop ecx
   e9 6b fd ff ff ?? jmp basic block L15
  
  L101: 89 5d dc ?? mov dword ss:[ebp + 0xdc<220,-36>], ebx
   89 7d e4 ?? mov dword ss:[ebp + 0xe4<228,-28>], edi
  
  L102: ff 75 18 ?? push dword ss:[ebp + 0x18<24>]
   ff 75 e4 ?? push dword ss:[ebp + 0xe4<228,-28>]
   ff 75 10 ?? push dword ss:[ebp + 0x10<16>]
   ff 75 dc ?? push dword ss:[ebp + 0xdc<220,-36>]
   ff 75 0c ?? push dword ss:[ebp + 12]
   ff 75 08 ?? push dword ss:[ebp + 8]
   ff 15 d0 a2 42 00 ?? call dword ds:[0x0042a2d0]
  
  L103: 8b f0 ?? mov esi, eax
   85 db ?? test ebx, ebx
   74 0e ?? je basic block L107
  
  L104: 53 ?? push ebx
   e8 75 91 fe ff ?? call function 0x00401a45
  
  L105: 57 ?? push edi
   e8 6f 91 fe ff ?? call function 0x00401a45
  
  L106: 59 ?? pop ecx
   59 ?? pop ecx
  
  L107: 8b c6 ?? mov eax, esi
  
  L108: 8d 65 c8 ?? lea esp, ss:[ebp + 0xc8<200,-56>]
   5f ?? pop edi
   5e ?? pop esi
   5b ?? pop ebx
   8b 4d fc ?? mov ecx, dword ss:[ebp + 0xfc<252,-4>]
   33 cd ?? xor ecx, ebp
   e8 80 8f fe ff ?? call function 0x0040186a
  
  L109: c9 ?? leave
   c3 ?? ret
  
  