Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   83 ec 14 ?? sub esp, 0x14<20>
   a1 70 80 42 00 ?? mov eax, dword ds:[0x00428070]
   33 c5 ?? xor eax, ebp
   89 45 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], eax
   53 ?? push ebx
   56 ?? push esi
   33 db ?? xor ebx, ebx
   57 ?? push edi
   8b f1 ?? mov esi, ecx
   39 1d 5c 9b 42 00 ?? cmp dword ds:[0x00429b5c], ebx
   75 38 ?? jne basic block L8
  
  L2: 53 ?? push ebx
   53 ?? push ebx
   33 ff ?? xor edi, edi
   47 ?? inc edi
   57 ?? push edi
   68 b4 5f 42 00 ?? push 0x00425fb4
   68 00 01 00 00 ?? push 0x00000100<256>
   53 ?? push ebx
   ff 15 c8 a2 42 00 ?? call dword ds:[0x0042a2c8]
  
  L3: 85 c0 ?? test eax, eax
   74 08 ?? je basic block L5
  
  L4: 89 3d 5c 9b 42 00 ?? mov dword ds:[0x00429b5c], edi
   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 5c 9b 42 00 02 00 ?? mov dword ds:[0x00429b5c], 2
   00 00
  
  L8: 39 5d 14 ?? cmp dword ss:[ebp + 0x14<20>], ebx
   7e 22 ?? jle basic block L16
  
  L9: 8b 4d 14 ?? mov ecx, dword ss:[ebp + 0x14<20>]
   8b 45 10 ?? mov eax, dword ss:[ebp + 0x10<16>]
  
  L10: 49 ?? dec ecx
   38 18 ?? cmp byte ds:[eax], bl
   74 08 ?? je basic block L13
  
  L11: 40 ?? inc eax
   3b cb ?? cmp ecx, ebx
   75 f6 ?? jne basic block L10
  
  L12: 83 c9 ff ?? or ecx, 0xff<255,-1>
  
  L13: 8b 45 14 ?? mov eax, dword ss:[ebp + 0x14<20>]
   2b c1 ?? sub eax, ecx
   48 ?? dec eax
   3b 45 14 ?? cmp eax, dword ss:[ebp + 0x14<20>]
   7d 01 ?? jge basic block L15
  
  L14: 40 ?? inc eax
  
  L15: 89 45 14 ?? mov dword ss:[ebp + 0x14<20>], eax
  
  L16: a1 5c 9b 42 00 ?? mov eax, dword ds:[0x00429b5c]
   83 f8 02 ?? cmp eax, 2
   0f 84 ac 01 00 00 ?? je basic block L68
  
  L17: 3b c3 ?? cmp eax, ebx
   0f 84 a4 01 00 00 ?? je basic block L68
  
  L18: 83 f8 01 ?? cmp eax, 1
   0f 85 cc 01 00 00 ?? jne basic block L74
  
  L19: 89 5d f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], ebx
   39 5d 20 ?? cmp dword ss:[ebp + 0x20<32>], ebx
   75 08 ?? jne basic block L21
  
  L20: 8b 06 ?? mov eax, dword ds:[esi]
   8b 40 04 ?? mov eax, dword ds:[eax + 4]
   89 45 20 ?? mov dword ss:[ebp + 0x20<32>], eax
  
  L21: 8b 35 bc a2 42 00 ?? mov esi, dword ds:[0x0042a2bc]
   33 c0 ?? xor eax, eax
   39 5d 24 ?? cmp dword ss:[ebp + 0x24<36>], ebx
   53 ?? push ebx
   53 ?? push ebx
   ff 75 14 ?? push dword ss:[ebp + 0x14<20>]
   0f 95 c0 ?? setne al
   ff 75 10 ?? push dword ss:[ebp + 0x10<16>]
   8d 04 c5 01 00 00 00 ?? lea eax, ds:[1 + eax * 8]
   50 ?? push eax
   ff 75 20 ?? push dword ss:[ebp + 0x20<32>]
   ff d6 ?? call esi
  
  L22: 8b f8 ?? mov edi, eax
   3b fb ?? cmp edi, ebx
   0f 84 8f 01 00 00 ?? je basic block L74
  
  L23: 7e 43 ?? jle basic block L34
  
  L24: 6a e0 ?? push 0xe0<224,-32>
   33 d2 ?? xor edx, edx
   58 ?? pop eax
   f7 f7 ?? div edi
   83 f8 02 ?? cmp eax, 2
   72 37 ?? jb basic block L34
  
  L25: 8d 44 3f 08 ?? lea eax, ds:[edi + edi + 8]
   3d 00 04 00 00 ?? cmp eax, 0x00000400<1024>
   77 13 ?? ja basic block L29
  
  L26: e8 18 06 00 00 ?? call function 0x004161c0
  
  L27: 8b c4 ?? mov eax, esp
   3b c3 ?? cmp eax, ebx
   74 1c ?? je basic block L33
  
  L28: c7 00 cc cc 00 00 ?? mov dword ds:[eax], 0x0000cccc<52428>
   eb 11 ?? jmp basic block L32
  
  L29: 50 ?? push eax
   e8 97 c4 fe ff ?? call function 0x00402053
  
  L30: 59 ?? pop ecx
   3b c3 ?? cmp eax, ebx
   74 09 ?? je basic block L33
  
  L31: c7 00 dd dd 00 00 ?? mov dword ds:[eax], 0x0000dddd<56797>
  
  L32: 83 c0 08 ?? add eax, 8
  
  L33: 89 45 f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], eax
   eb 03 ?? jmp basic block L35
  
  L34: 89 5d f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], ebx
  
  L35: 39 5d f4 ?? cmp dword ss:[ebp + 0xf4<244,-12>], ebx
   0f 84 3e 01 00 00 ?? je basic block L74
  
  L36: 57 ?? push edi
   ff 75 f4 ?? push dword ss:[ebp + 0xf4<244,-12>]
   ff 75 14 ?? push dword ss:[ebp + 0x14<20>]
   ff 75 10 ?? push dword ss:[ebp + 0x10<16>]
   6a 01 ?? push 1
   ff 75 20 ?? push dword ss:[ebp + 0x20<32>]
   ff d6 ?? call esi
  
  L37: 85 c0 ?? test eax, eax
   0f 84 e3 00 00 00 ?? je basic block L66
  
  L38: 8b 35 c8 a2 42 00 ?? mov esi, dword ds:[0x0042a2c8]
   53 ?? push ebx
   53 ?? push ebx
   57 ?? push edi
   ff 75 f4 ?? push dword ss:[ebp + 0xf4<244,-12>]
   ff 75 0c ?? push dword ss:[ebp + 12]
   ff 75 08 ?? push dword ss:[ebp + 8]
   ff d6 ?? call esi
  
  L39: 8b c8 ?? mov ecx, eax
   89 4d f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], ecx
   3b cb ?? cmp ecx, ebx
   0f 84 c2 00 00 00 ?? je basic block L66
  
  L40: f7 45 0c 00 04 00 00 ?? test dword ss:[ebp + 12], 0x00000400<1024>
   74 29 ?? je basic block L45
  
  L41: 39 5d 1c ?? cmp dword ss:[ebp + 0x1c<28>], ebx
   0f 84 b0 00 00 00 ?? je basic block L66
  
  L42: 3b 4d 1c ?? cmp ecx, dword ss:[ebp + 0x1c<28>]
   0f 8f a7 00 00 00 ?? jg basic block L66
  
  L43: ff 75 1c ?? push dword ss:[ebp + 0x1c<28>]
   ff 75 18 ?? push dword ss:[ebp + 0x18<24>]
   57 ?? push edi
   ff 75 f4 ?? push dword ss:[ebp + 0xf4<244,-12>]
   ff 75 0c ?? push dword ss:[ebp + 12]
   ff 75 08 ?? push dword ss:[ebp + 8]
   ff d6 ?? call esi
  
  L44: e9 90 00 00 00 ?? jmp basic block L66
  
  L45: 3b cb ?? cmp ecx, ebx
   7e 45 ?? jle basic block L55
  
  L46: 6a e0 ?? push 0xe0<224,-32>
   33 d2 ?? xor edx, edx
   58 ?? pop eax
   f7 f1 ?? div ecx
   83 f8 02 ?? cmp eax, 2
   72 39 ?? jb basic block L55
  
  L47: 8d 44 09 08 ?? lea eax, ds:[ecx + ecx + 8]
   3d 00 04 00 00 ?? cmp eax, 0x00000400<1024>
   77 16 ?? ja basic block L51
  
  L48: e8 59 05 00 00 ?? call function 0x004161c0
  
  L49: 8b f4 ?? mov esi, esp
   3b f3 ?? cmp esi, ebx
   74 6a ?? je basic block L66
  
  L50: c7 06 cc cc 00 00 ?? mov dword ds:[esi], 0x0000cccc<52428>
   83 c6 08 ?? add esi, 8
   eb 1a ?? jmp basic block L56
  
  L51: 50 ?? push eax
   e8 d5 c3 fe ff ?? call function 0x00402053
  
  L52: 59 ?? pop ecx
   3b c3 ?? cmp eax, ebx
   74 09 ?? je basic block L54
  
  L53: c7 00 dd dd 00 00 ?? mov dword ds:[eax], 0x0000dddd<56797>
   83 c0 08 ?? add eax, 8
  
  L54: 8b f0 ?? mov esi, eax
   eb 02 ?? jmp basic block L56
  
  L55: 33 f6 ?? xor esi, esi
  
  L56: 3b f3 ?? cmp esi, ebx
   74 41 ?? je basic block L66
  
  L57: ff 75 f8 ?? push dword ss:[ebp + 0xf8<248,-8>]
   56 ?? push esi
   57 ?? push edi
   ff 75 f4 ?? push dword ss:[ebp + 0xf4<244,-12>]
   ff 75 0c ?? push dword ss:[ebp + 12]
   ff 75 08 ?? push dword ss:[ebp + 8]
   ff 15 c8 a2 42 00 ?? call dword ds:[0x0042a2c8]
  
  L58: 85 c0 ?? test eax, eax
   74 22 ?? je basic block L64
  
  L59: 53 ?? push ebx
   53 ?? push ebx
   39 5d 1c ?? cmp dword ss:[ebp + 0x1c<28>], ebx
   75 04 ?? jne basic block L61
  
  L60: 53 ?? push ebx
   53 ?? push ebx
   eb 06 ?? jmp basic block L62
  
  L61: ff 75 1c ?? push dword ss:[ebp + 0x1c<28>]
   ff 75 18 ?? push dword ss:[ebp + 0x18<24>]
  
  L62: ff 75 f8 ?? push dword ss:[ebp + 0xf8<248,-8>]
   56 ?? push esi
   53 ?? push ebx
   ff 75 20 ?? push dword ss:[ebp + 0x20<32>]
   ff 15 2c a2 42 00 ?? call dword ds:[0x0042a22c]
  
  L63: 89 45 f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], eax
  
  L64: 56 ?? push esi
   e8 b2 94 ff ff ?? call function 0x0040f188
  
  L65: 59 ?? pop ecx
  
  L66: ff 75 f4 ?? push dword ss:[ebp + 0xf4<244,-12>]
   e8 a9 94 ff ff ?? call function 0x0040f188
  
  L67: 8b 45 f8 ?? mov eax, dword ss:[ebp + 0xf8<248,-8>]
   59 ?? pop ecx
   e9 59 01 00 00 ?? jmp basic block L111
  
  L68: 89 5d f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], ebx
   89 5d f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], ebx
   39 5d 08 ?? cmp dword ss:[ebp + 8], ebx
   75 08 ?? jne basic block L70
  
  L69: 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
  
  L70: 39 5d 20 ?? cmp dword ss:[ebp + 0x20<32>], ebx
   75 08 ?? jne basic block L72
  
  L71: 8b 06 ?? mov eax, dword ds:[esi]
   8b 40 04 ?? mov eax, dword ds:[eax + 4]
   89 45 20 ?? mov dword ss:[ebp + 0x20<32>], eax
  
  L72: ff 75 08 ?? push dword ss:[ebp + 8]
   e8 8b 16 00 00 ?? call function 0x0041739b
  
  L73: 59 ?? pop ecx
   89 45 ec ?? mov dword ss:[ebp + 0xec<236,-20>], eax
   83 f8 ff ?? cmp eax, 0xff<255,-1>
   75 07 ?? jne basic block L75
  
  L74: 33 c0 ?? xor eax, eax
   e9 21 01 00 00 ?? jmp basic block L111
  
  L75: 3b 45 20 ?? cmp eax, dword ss:[ebp + 0x20<32>]
   0f 84 db 00 00 00 ?? je basic block L101
  
  L76: 53 ?? push ebx
   53 ?? push ebx
   8d 4d 14 ?? lea ecx, ss:[ebp + 0x14<20>]
   51 ?? push ecx
   ff 75 10 ?? push dword ss:[ebp + 0x10<16>]
   50 ?? push eax
   ff 75 20 ?? push dword ss:[ebp + 0x20<32>]
   e8 a9 16 00 00 ?? call function 0x004173e4
  
  L77: 83 c4 18 ?? add esp, 0x18<24>
   89 45 f4 ?? mov dword ss:[ebp + 0xf4<244,-12>], eax
   3b c3 ?? cmp eax, ebx
   74 d4 ?? je basic block L74
  
  L78: 8b 35 c4 a2 42 00 ?? mov esi, dword ds:[0x0042a2c4]
   53 ?? push ebx
   53 ?? push ebx
   ff 75 14 ?? push dword ss:[ebp + 0x14<20>]
   50 ?? push eax
   ff 75 0c ?? push dword ss:[ebp + 12]
   ff 75 08 ?? push dword ss:[ebp + 8]
   ff d6 ?? call esi
  
  L79: 89 45 f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], eax
   3b c3 ?? cmp eax, ebx
   75 07 ?? jne basic block L81
  
  L80: 33 f6 ?? xor esi, esi
   e9 b7 00 00 00 ?? jmp basic block L103
  
  L81: 7e 3d ?? jle basic block L91
  
  L82: 83 f8 e0 ?? cmp eax, 0xe0<224,-32>
   77 38 ?? ja basic block L91
  
  L83: 83 c0 08 ?? add eax, 8
   3d 00 04 00 00 ?? cmp eax, 0x00000400<1024>
   77 16 ?? ja basic block L87
  
  L84: e8 43 04 00 00 ?? call function 0x004161c0
  
  L85: 8b fc ?? mov edi, esp
   3b fb ?? cmp edi, ebx
   74 dd ?? je basic block L80
  
  L86: c7 07 cc cc 00 00 ?? mov dword ds:[edi], 0x0000cccc<52428>
   83 c7 08 ?? add edi, 8
   eb 1a ?? jmp basic block L92
  
  L87: 50 ?? push eax
   e8 bf c2 fe ff ?? call function 0x00402053
  
  L88: 59 ?? pop ecx
   3b c3 ?? cmp eax, ebx
   74 09 ?? je basic block L90
  
  L89: c7 00 dd dd 00 00 ?? mov dword ds:[eax], 0x0000dddd<56797>
   83 c0 08 ?? add eax, 8
  
  L90: 8b f8 ?? mov edi, eax
   eb 02 ?? jmp basic block L92
  
  L91: 33 ff ?? xor edi, edi
  
  L92: 3b fb ?? cmp edi, ebx
   74 b4 ?? je basic block L80
  
  L93: ff 75 f8 ?? push dword ss:[ebp + 0xf8<248,-8>]
   53 ?? push ebx
   57 ?? push edi
   e8 ca 84 ff ff ?? call function 0x0040e280
  
  L94: 83 c4 0c ?? add esp, 12
   ff 75 f8 ?? push dword ss:[ebp + 0xf8<248,-8>]
   57 ?? push edi
   ff 75 14 ?? push dword ss:[ebp + 0x14<20>]
   ff 75 f4 ?? push dword ss:[ebp + 0xf4<244,-12>]
   ff 75 0c ?? push dword ss:[ebp + 12]
   ff 75 08 ?? push dword ss:[ebp + 8]
   ff d6 ?? call esi
  
  L95: 89 45 f8 ?? mov dword ss:[ebp + 0xf8<248,-8>], eax
   3b c3 ?? cmp eax, ebx
   75 04 ?? jne basic block L97
  
  L96: 33 f6 ?? xor esi, esi
   eb 25 ?? jmp basic block L99
  
  L97: ff 75 1c ?? push dword ss:[ebp + 0x1c<28>]
   8d 45 f8 ?? lea eax, ss:[ebp + 0xf8<248,-8>]
   ff 75 18 ?? push dword ss:[ebp + 0x18<24>]
   50 ?? push eax
   57 ?? push edi
   ff 75 20 ?? push dword ss:[ebp + 0x20<32>]
   ff 75 ec ?? push dword ss:[ebp + 0xec<236,-20>]
   e8 f8 15 00 00 ?? call function 0x004173e4
  
  L98: 8b f0 ?? mov esi, eax
   89 75 f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], esi
   83 c4 18 ?? add esp, 0x18<24>
   f7 de ?? neg esi
   1b f6 ?? sbb esi, esi
   23 75 f8 ?? and esi, dword ss:[ebp + 0xf8<248,-8>]
  
  L99: 57 ?? push edi
   e8 87 93 ff ff ?? call function 0x0040f188
  
  L100: 59 ?? pop ecx
   eb 1a ?? jmp basic block L103
  
  L101: ff 75 1c ?? push dword ss:[ebp + 0x1c<28>]
   ff 75 18 ?? push dword ss:[ebp + 0x18<24>]
   ff 75 14 ?? push dword ss:[ebp + 0x14<20>]
   ff 75 10 ?? push dword ss:[ebp + 0x10<16>]
   ff 75 0c ?? push dword ss:[ebp + 12]
   ff 75 08 ?? push dword ss:[ebp + 8]
   ff 15 c4 a2 42 00 ?? call dword ds:[0x0042a2c4]
  
  L102: 8b f0 ?? mov esi, eax
  
  L103: 39 5d f4 ?? cmp dword ss:[ebp + 0xf4<244,-12>], ebx
   74 09 ?? je basic block L106
  
  L104: ff 75 f4 ?? push dword ss:[ebp + 0xf4<244,-12>]
   e8 d0 bc fe ff ?? call function 0x00401afb
  
  L105: 59 ?? pop ecx
  
  L106: 8b 45 f0 ?? mov eax, dword ss:[ebp + 0xf0<240,-16>]
   3b c3 ?? cmp eax, ebx
   74 0c ?? je basic block L110
  
  L107: 39 45 18 ?? cmp dword ss:[ebp + 0x18<24>], eax
   74 07 ?? je basic block L110
  
  L108: 50 ?? push eax
   e8 bd bc fe ff ?? call function 0x00401afb
  
  L109: 59 ?? pop ecx
  
  L110: 8b c6 ?? mov eax, esi
  
  L111: 8d 65 e0 ?? lea esp, ss:[ebp + 0xe0<224,-32>]
   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 61 b9 fe ff ?? call function 0x004017b2
  
  L112: c9 ?? leave
   c3 ?? ret
  
  