Function at 0x47f200
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x4bdc50
push eax
mov eax, 0x1f4cc
mov dword fs:[0], esp
call fcn.004546c0
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x1f4e4], 1
call sub.MFC42.DLL_AfxGetAppModuleState
mov eax, dword [eax + 4]
lea ecx, [esp + 0x3a8]
push ecx
mov eax, dword [eax + 0xd4]
push eax
call dword [sym.imp.BasicCtrlDll.dll_int___cdecl_GetCurrentUin_struct_IQQCore___unsigned_long_int__]
mov edx, dword [esp + 0x3b0]
add esp, 8
push edx
call sub.WSOCK32.dll_htonl
mov dword [esp + 0x3a8], eax
mov eax, dword [esp + 0x1f4f0]
push 0x10
lea ecx, [esp + 0x87c]
push eax
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
call sub.MFC42.DLL_AfxGetAppModuleState
mov edx, dword [eax + 4]
xor eax, eax
lea ecx, [esp + 0x774]
push 5
mov al, byte [edx + 0xcf]
lea edx, [esp + 0x88c]
mov byte [esp + 0x778], al
mov eax, dword [esp + 0x3ac]
push ecx
push edx
mov dword [esp + 0x781], eax
call fcn.00455e28
mov ebp, dword [esp + 0x1f50c]
lea eax, [esp + 0x884]
push 0x20
push eax
push ebp
call fcn.00455e28
mov esi, dword [sym.imp.MSVCRT.dll_rand]
add esp, 0x18
call esi
sub al, 0x78
mov byte [esp + 0x874], al
je 0x47f2d8
lea ecx, [esp + 0x888]
lea esi, [esp + 0x864]
sub ecx, ebp
mov eax, ebp
sub esi, ebp
mov edi, 0x10
mov dl, byte [ecx + eax]
mov bl, byte [eax]
xor dl, bl
mov byte [esi + eax], dl
inc eax
dec edi
jne 0x47f2fe
mov al, 0xf1
lea ecx, [esp + 0x4e20]
mov byte [esp + 0x39a], al
mov byte [esp + 0x39d], al
mov dword [esp + 0x30], ecx
lea eax, [esp + 0x4d1c]
lea ecx, [esp + 0x390]
lea edx, [esp + 0x4f24]
mov edi, 9
xor ebx, ebx
lea esi, [esp + 0x4d1c]
mov dword [esp + 0x14], eax
dec ecx
mov byte [esp + 0x390], 0x77
mov byte [esp + 0x391], 0x29
mov byte [esp + 0x392], 0x84
mov byte [esp + 0x393], 0xbe
mov byte [esp + 0x394], 0x6c
mov byte [esp + 0x395], 0xe1
mov byte [esp + 0x396], 0xae
mov byte [esp + 0x397], 0xd6
mov byte [esp + 0x398], 0x90
mov byte [esp + 0x399], 0x52
mov byte [esp + 0x39b], 0x49
mov byte [esp + 0x39c], 0xbb
mov byte [esp + 0x39e], 0xeb
mov byte [esp + 0x39f], 0xe9
mov byte [esp + 0x3a0], 0xa6
mov byte [esp + 0x3a1], 0xb3
mov dword [esp + 0x784], edx
mov dword [esp + 0x10], edi
mov word [esp + 0x4d2c], bx
mov eax, 1
dec esi
mov dl, byte [ecx + eax]
mov byte [esi + eax], dl
inc eax
cmp eax, 0x12
jle 0x47f3e8
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], edi
lea ecx, [esp + 0x864]
mov esi, 0x11
mov word [eax + 0x10], bx
mov eax, dword [esp + 0x30]
mov dl, byte [ecx]
mov byte [eax], dl
inc eax
inc ecx
dec esi
jne 0x47f410
lea eax, [esp + 0x2b0]
lea ecx, [esp + 0xd7a0]
mov edx, 3
mov dword [eax + 4], ecx
mov dword [eax], ebx
add ecx, 0x104
add eax, 8
dec edx
jne 0x47f42c
lea eax, [esp + 0x898]
lea ecx, [esp + 0xdaac]
mov edx, 0xf
mov dword [eax + 4], ecx
mov dword [eax], ebx
add ecx, 0x104
add eax, 8
dec edx
jne 0x47f450
lea eax, [esp + 0xe9e8]
lea ecx, [esp + 0xf1e0]
mov edx, 0xff
mov dword [eax + 4], ecx
mov dword [eax], ebx
add ecx, 0x104
add eax, 8
dec edx
jne 0x47f474
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0xce7c]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3a4], 1
lea eax, [ecx - 1]
cmp eax, ebx
mov dword [esp + 0x3b8], eax
jl 0x489984
mov dword [esp + 0x3bc], 1
mov edx, dword [esp + 0x3bc]
mov eax, dword [esp + 0x3b8]
lea ecx, [edx + eax*2]
mov edx, dword [esp + 0x14]
mov al, byte [ecx + edx]
test al, al
mov byte [esp + 0x77c], al
jne 0x47fb5d
mov eax, dword [esp + 0x3a4]
test eax, eax
jne 0x489953
mov dword [esp + 0x13c], 8
mov edx, dword [esp + 0x34]
xor eax, eax
cmp edx, eax
je 0x47f684
lea edi, [edx + edx]
lea ecx, [esp + 0x41f0]
cmp edi, eax
mov dword [esp + 0x6a8], ecx
mov dword [esp + 0x24], edi
jle 0x47f53b
mov edx, dword [esp + 0x6a8]
inc eax
cmp eax, edi
mov word [edx + eax*2 - 2], 0
jl 0x47f524
mov edx, dword [esp + 0x34]
lea eax, [esp + 0x41f0]
xor ebx, ebx
test edx, edx
mov dword [esp + 0x264], eax
mov dword [esp + 0x260], 0
jle 0x47f656
mov ecx, dword [esp + 0x38]
test edx, edx
mov bp, word [ecx + ebx*2]
je 0x47f629
test bp, bp
je 0x47f629
cmp bp, 1
jne 0x47f597
lea edx, [esp + 0x260]
lea eax, [esp + 0x34]
push edx
lea ecx, [esp + 0x264]
push eax
push ecx
jmp 0x47f61d
lea esi, [esp + 0xc1c]
test edx, edx
mov dword [esp + 0x698], esi
jl 0x47f5c2
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0xc1c]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
mov edi, dword [esp + 0x24]
xor eax, eax
test edx, edx
jle 0x47f5f6
mov ecx, ebp
and ecx, 0xffff
mov ebp, dword [esp + 0x38]
xor edx, edx
mov dx, word [ebp + eax*2]
mov ebp, dword [esi + eax*2]
imul edx, ecx
add ebp, edx
mov dword [esi + eax*2], ebp
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x698]
inc eax
cmp eax, edx
jl 0x47f5d0
cmp word [esi + edx*2], 0
je 0x47f5fe
inc edx
lea eax, [esp + 0x260]
mov dword [esp + 0x694], edx
lea ecx, [esp + 0x694]
push eax
lea edx, [esp + 0x264]
push ecx
push edx
call fcn.0048a490
mov edx, dword [esp + 0x40]
add esp, 0xc
mov eax, dword [esp + 0x260]
test eax, eax
jle 0x47f63c
dec eax
mov dword [esp + 0x260], eax
mov esi, dword [esp + 0x264]
add esi, 2
inc ebx
cmp ebx, edx
mov dword [esp + 0x264], esi
jl 0x47f55e
mov eax, dword [esp + 0x6a8]
cmp word [eax + edi*2 - 2], 0
jne 0x47f666
dec edi
lea ecx, [esp + 0x34]
lea edx, [esp + 0x6a4]
push ecx
push edx
mov dword [esp + 0x6ac], edi
call fcn.0048a2f0
add esp, 8
jmp 0x47f688
mov dword [esp + 0x34], eax
lea ecx, [esp + 0x34]
lea esi, [esp + 0x34]
lea eax, [esp + 0x8660]
mov dword [esp + 0x28], esi
test ecx, ecx
mov dword [esp + 0x364], eax
jne 0x47f6bf
lea edx, [esp + 0x8764]
lea esi, [esp + 0x85c]
mov dword [esp + 0x860], edx
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x34]
xor edi, edi
cmp eax, edi
jne 0x47f6d7
mov dword [esp + 0x360], edi
mov dword [esi], edi
jmp 0x47fb43
cmp dword [esp + 0x10], 1
jne 0x47f704
mov eax, dword [esp + 0x14]
cmp word [eax], 1
jne 0x47f704
lea ecx, [esp + 0x360]
lea edx, [esp + 0x34]
push ecx
push edx
call fcn.0048a2f0
add esp, 8
mov dword [esi], edi
jmp 0x47fb43
lea eax, [esp + 0x10]
lea ecx, [esp + 0x34]
push eax
push ecx
call fcn.0048a330
add esp, 8
test eax, eax
jge 0x47f734
lea edx, [esp + 0x34]
push esi
push edx
mov dword [esp + 0x368], edi
call fcn.0048a2f0
add esp, 8
jmp 0x47fb43
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dx, word [ecx + eax*2 - 2]
xor ecx, ecx
mov ax, dx
mov dword [esp + 0x24], edx
cmp ax, di
je 0x47f758
shr ax, 1
inc ecx
cmp ax, di
jne 0x47f74f
mov esi, 0x10
lea eax, [esp + 0x5334]
sub esi, ecx
lea ecx, [esp + 0xd28c]
mov dword [esp + 0x20], esi
mov dword [esp + 0x728], eax
mov dword [esp + 0x1f4], ecx
jne 0x47f7aa
lea edx, [esp + 0x724]
lea eax, [esp + 0x34]
push edx
push eax
call fcn.0048a2f0
lea ecx, [esp + 0x1f8]
lea edx, [esp + 0x18]
push ecx
push edx
call fcn.0048a2f0
add esp, 0x10
jmp 0x47f7d3
lea eax, [esp + 0x724]
push esi
lea ecx, [esp + 0x38]
push eax
push ecx
call fcn.0048a380
lea edx, [esp + 0x1fc]
push esi
lea eax, [esp + 0x20]
push edx
push eax
call fcn.0048a380
add esp, 0x18
mov eax, dword [esp + 0x724]
mov edx, dword [esp + 0x1f0]
mov esi, dword [esp + 0x364]
sub eax, edx
mov ebx, eax
mov edi, 2
lea ecx, [eax + 1]
mov eax, edx
mov dword [esp + 0x360], ecx
mov dword [esp + 0x64], eax
lea esi, [esi + ecx*2 - 2]
mov ecx, dword [esp + 0x728]
lea edx, [ecx + ebx*2]
mov dword [esp + 0x68], edx
test eax, eax
jne 0x47f823
mov word [esi], ax
mov dword [esp + 0x64], eax
jmp 0x47fa9f
cmp dword [esp + 0x1f0], 1
jne 0x47f8bc
cmp eax, 1
jne 0x47f878
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x1f4]
xor eax, eax
mov ax, word [ecx]
xor ecx, ecx
mov cx, word [edx]
cdq
idiv ecx
xor edx, edx
mov word [esi], ax
mov ecx, dword [esp + 0x1f4]
imul ax, word [ecx]
mov ecx, dword [esp + 0x68]
sub word [ecx], ax
mov eax, dword [esp + 0x68]
cmp word [eax], dx
setne dl
mov dword [esp + 0x64], edx
jmp 0x47fa9f
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x1f4]
xor ebp, ebp
mov ecx, dword [ecx]
mov bp, word [edx]
mov eax, ecx
xor edx, edx
div ebp
mov word [esi], ax
mov edx, dword [esp + 0x1f4]
imul ax, word [edx]
sub ecx, eax
mov eax, dword [esp + 0x68]
mov word [eax], cx
mov edx, dword [esp + 0x68]
xor ecx, ecx
cmp word [edx], cx
setne cl
mov dword [esp + 0x64], ecx
jmp 0x47fa9f
lea eax, [esp + 0x64]
lea ecx, [esp + 0x64]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x1f8]
lea eax, [esp + 0x6c]
push edx
push eax
call fcn.0048a330
add esp, 0x10
test eax, eax
jge 0x47f8ee
mov word [esi], 0
jmp 0x47fa9f
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x1f0]
cmp eax, ecx
jne 0x47f920
mov ebp, dword [esp + 0x1f4]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ebp, dword [esp + 0x68]
mov ecx, edx
xor edx, edx
mov dx, word [ebp + eax*2 - 2]
inc ecx
mov eax, edx
cdq
idiv ecx
jmp 0x47f93d
mov edx, dword [esp + 0x68]
mov ebp, dword [esp + 0x1f4]
mov eax, dword [edx + eax*2 - 4]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ecx, edx
xor edx, edx
inc ecx
div ecx
lea edx, [esp + 0x5230]
mov word [esi], ax
mov dword [esp + 0x484], edx
mov edx, dword [esp + 0x1f0]
mov dword [esp + 0x480], 0
mov ax, word [esi]
test edx, edx
mov dword [esp + 0x24], eax
je 0x47fa3c
test ax, ax
je 0x47fa3c
cmp ax, 1
jne 0x47f9a3
lea eax, [esp + 0x480]
lea ecx, [esp + 0x1f0]
push eax
lea edx, [esp + 0x484]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
jmp 0x47fa3c
lea ebp, [esp + 0xb18]
test edx, edx
mov dword [esp + 0x4a4], ebp
jl 0x47f9ca
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0xb18]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x47fa07
mov ecx, dword [esp + 0x24]
and ecx, 0xffff
mov edi, dword [esp + 0x1f4]
xor edx, edx
mov dx, word [edi + eax*2]
mov edi, dword [ebp + eax*2]
imul edx, ecx
add edi, edx
mov dword [ebp + eax*2], edi
mov edx, dword [esp + 0x1f0]
mov ebp, dword [esp + 0x4a4]
inc eax
cmp eax, edx
jl 0x47f9da
cmp word [ebp + edx*2], 0
je 0x47fa10
inc edx
lea eax, [esp + 0x480]
mov dword [esp + 0x4a0], edx
lea ecx, [esp + 0x4a0]
push eax
lea edx, [esp + 0x484]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
mov edi, 2
lea eax, [esp + 0x64]
lea ecx, [esp + 0x480]
push eax
lea edx, [esp + 0x68]
push ecx
push edx
call fcn.0048a590
lea eax, [esp + 0x1fc]
lea ecx, [esp + 0x70]
push eax
push ecx
call fcn.0048a330
add esp, 0x14
test eax, eax
jl 0x47fa9f
lea edx, [esp + 0x64]
lea eax, [esp + 0x1f0]
push edx
lea ecx, [esp + 0x68]
push eax
push ecx
call fcn.0048a590
inc word [esi]
lea edx, [esp + 0x1fc]
lea eax, [esp + 0x70]
push edx
push eax
call fcn.0048a330
add esp, 0x14
test eax, eax
jge 0x47fa6c
test ebx, ebx
je 0x47faf2
mov eax, dword [esp + 0x64]
mov ebp, dword [esp + 0x68]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
test ebx, ebx
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], ebp
jle 0x47f813
cmp eax, dword [esp + 0x1f0]
jge 0x47f813
mov word [esi], 0
mov eax, dword [esp + 0x64]
mov ebp, dword [esp + 0x68]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
mov dword [esp + 0x64], eax
test ebx, ebx
mov dword [esp + 0x68], ebp
jg 0x47fac1
jmp 0x47f813
mov eax, dword [esp + 0x360]
test eax, eax
jle 0x47fb14
mov ecx, dword [esp + 0x364]
cmp word [ecx + eax*2 - 2], 0
jne 0x47fb14
dec eax
mov dword [esp + 0x360], eax
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x47fb30
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x64]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x47fb43
mov ecx, dword [esp + 0x28]
push eax
lea edx, [esp + 0x68]
push ecx
push edx
call fcn.0048a400
add esp, 0xc
mov eax, dword [esp + 0x13c]
dec eax
mov dword [esp + 0x13c], eax
jne 0x47f4fd
jmp 0x489953
mov ecx, dword [esp + 0x77c]
and ecx, 0xff
mov esi, dword [esp + ecx*8 + 0xe9e0]
lea ecx, [esp + ecx*8 + 0xe9e0]
test esi, esi
mov dword [esp + 0x13c], ecx
jne 0x488ba9
lea ecx, [esp + 0xb61c]
mov dword [esp + 0x48], ecx
mov cl, al
shr cl, 4
and al, 0xf
mov byte [esp + 0x3ac], cl
test cl, cl
mov byte [esp + 0x5b0], al
je 0x484367
mov eax, dword [esp + 0x3ac]
and eax, 0xff
mov ecx, dword [esp + eax*8 + 0x890]
lea eax, [esp + eax*8 + 0x890]
test ecx, ecx
mov dword [esp + 0x24], eax
jne 0x483c9d
lea ecx, [esp + 0x543c]
mov dword [esp + 0x40], ecx
mov cl, byte [esp + 0x3ac]
mov al, cl
and cl, 3
shr al, 2
test al, al
mov byte [esp + 0x3c4], al
mov byte [esp + 0x3b4], cl
je 0x481c1e
mov eax, dword [esp + 0x3c4]
and eax, 0xff
mov ecx, dword [esp + eax*8 + 0x2a8]
lea eax, [esp + eax*8 + 0x2a8]
test ecx, ecx
mov dword [esp + 0x18], eax
jne 0x481550
mov al, byte [esp + 0x3c4]
cmp al, 1
jne 0x4800f9
lea eax, [esp + 0x2b0]
lea esi, [esp + 0x2b0]
lea ecx, [esp + 0x896c]
mov dword [esp + 0x28], esi
test eax, eax
mov dword [esp + 0x2f4], ecx
jne 0x47fc77
lea ecx, [esp + 0x8a70]
lea esi, [esp + 0x824]
mov dword [esp + 0x828], ecx
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x2c]
xor edi, edi
cmp eax, edi
jne 0x47fc8f
mov dword [esp + 0x2f0], edi
mov dword [esi], edi
jmp 0x481550
cmp dword [esp + 0x10], 1
jne 0x47fcb8
cmp word [edx], 1
jne 0x47fcb8
lea edx, [esp + 0x2f0]
lea eax, [esp + 0x2c]
push edx
push eax
call fcn.0048a2f0
add esp, 8
mov dword [esi], edi
jmp 0x481550
lea ecx, [esp + 0x10]
lea edx, [esp + 0x2c]
push ecx
push edx
call fcn.0048a330
add esp, 8
test eax, eax
jge 0x47fce8
lea eax, [esp + 0x2c]
push esi
push eax
mov dword [esp + 0x2f8], edi
call fcn.0048a2f0
add esp, 8
jmp 0x481550
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ax, word [edx + ecx*2 - 2]
xor ecx, ecx
cmp ax, di
mov dword [esp + 0x20], eax
je 0x47fd09
shr ax, 1
inc ecx
cmp ax, di
jne 0x47fd00
mov esi, 0x10
lea edx, [esp + 0x8e80]
sub esi, ecx
lea ecx, [esp + 0x5540]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x718], ecx
mov dword [esp + 0x144], edx
jne 0x47fd5b
lea eax, [esp + 0x714]
lea ecx, [esp + 0x2c]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x148]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.0048a2f0
add esp, 0x10
jmp 0x47fd84
lea ecx, [esp + 0x714]
push esi
lea edx, [esp + 0x30]
push ecx
push edx
call fcn.0048a380
lea eax, [esp + 0x14c]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.0048a380
add esp, 0x18
mov eax, dword [esp + 0x714]
mov edx, dword [esp + 0x140]
mov esi, dword [esp + 0x2f4]
sub eax, edx
mov ebx, eax
mov edi, 2
lea ecx, [eax + 1]
mov eax, edx
mov edx, dword [esp + 0x718]
mov dword [esp + 0x2f0], ecx
lea esi, [esi + ecx*2 - 2]
mov dword [esp + 0x74], eax
lea ecx, [edx + ebx*2]
mov dword [esp + 0x78], ecx
test eax, eax
jne 0x47fdd4
mov word [esi], ax
mov dword [esp + 0x74], eax
jmp 0x480056
cmp dword [esp + 0x140], 1
jne 0x47fe6d
cmp eax, 1
jne 0x47fe29
mov edx, dword [esp + 0x78]
xor eax, eax
xor ecx, ecx
mov ax, word [edx]
mov edx, dword [esp + 0x144]
mov cx, word [edx]
cdq
idiv ecx
xor edx, edx
mov word [esi], ax
mov ecx, dword [esp + 0x144]
imul ax, word [ecx]
mov ecx, dword [esp + 0x78]
sub word [ecx], ax
mov eax, dword [esp + 0x78]
cmp word [eax], dx
setne dl
mov dword [esp + 0x74], edx
jmp 0x480056
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x144]
xor ebp, ebp
mov ecx, dword [ecx]
mov bp, word [edx]
mov eax, ecx
xor edx, edx
div ebp
mov word [esi], ax
mov edx, dword [esp + 0x144]
imul ax, word [edx]
sub ecx, eax
mov eax, dword [esp + 0x78]
mov word [eax], cx
mov edx, dword [esp + 0x78]
xor ecx, ecx
cmp word [edx], cx
setne cl
mov dword [esp + 0x74], ecx
jmp 0x480056
lea eax, [esp + 0x74]
lea ecx, [esp + 0x74]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x148]
lea eax, [esp + 0x7c]
push edx
push eax
call fcn.0048a330
add esp, 0x10
test eax, eax
jge 0x47fe9f
mov word [esi], 0
jmp 0x480056
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x140]
cmp eax, ecx
jne 0x47fed1
mov ebp, dword [esp + 0x144]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ebp, dword [esp + 0x78]
mov ecx, edx
xor edx, edx
mov dx, word [ebp + eax*2 - 2]
inc ecx
mov eax, edx
cdq
idiv ecx
jmp 0x47feee
mov edx, dword [esp + 0x78]
mov ebp, dword [esp + 0x144]
mov eax, dword [edx + eax*2 - 4]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ecx, edx
xor edx, edx
inc ecx
div ecx
lea edx, [esp + 0x5648]
mov word [esi], ax
mov dword [esp + 0x47c], edx
mov edx, dword [esp + 0x140]
mov dword [esp + 0x478], 0
mov ax, word [esi]
test edx, edx
mov dword [esp + 0x20], eax
je 0x47ffed
test ax, ax
je 0x47ffed
cmp ax, 1
jne 0x47ff54
lea eax, [esp + 0x478]
lea ecx, [esp + 0x140]
push eax
lea edx, [esp + 0x47c]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
jmp 0x47ffed
lea ebp, [esp + 0x2c9c]
test edx, edx
mov dword [esp + 0x6a0], ebp
jl 0x47ff7b
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x2c9c]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x47ffb8
mov ecx, dword [esp + 0x20]
and ecx, 0xffff
mov edi, dword [esp + 0x144]
xor edx, edx
mov dx, word [edi + eax*2]
mov edi, dword [ebp + eax*2]
imul edx, ecx
add edi, edx
mov dword [ebp + eax*2], edi
mov edx, dword [esp + 0x140]
mov ebp, dword [esp + 0x6a0]
inc eax
cmp eax, edx
jl 0x47ff8b
cmp word [ebp + edx*2], 0
je 0x47ffc1
inc edx
lea eax, [esp + 0x478]
mov dword [esp + 0x69c], edx
lea ecx, [esp + 0x69c]
push eax
lea edx, [esp + 0x47c]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
mov edi, 2
lea eax, [esp + 0x74]
lea ecx, [esp + 0x478]
push eax
lea edx, [esp + 0x78]
push ecx
push edx
call fcn.0048a590
lea eax, [esp + 0x14c]
lea ecx, [esp + 0x80]
push eax
push ecx
call fcn.0048a330
add esp, 0x14
test eax, eax
jl 0x480056
lea edx, [esp + 0x74]
lea eax, [esp + 0x140]
push edx
lea ecx, [esp + 0x78]
push eax
push ecx
call fcn.0048a590
inc word [esi]
lea edx, [esp + 0x14c]
lea eax, [esp + 0x80]
push edx
push eax
call fcn.0048a330
add esp, 0x14
test eax, eax
jge 0x480020
test ebx, ebx
je 0x4800a9
mov eax, dword [esp + 0x74]
mov ebp, dword [esp + 0x78]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
test ebx, ebx
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], ebp
jle 0x47fdc4
cmp eax, dword [esp + 0x140]
jge 0x47fdc4
mov word [esi], 0
mov eax, dword [esp + 0x74]
mov ebp, dword [esp + 0x78]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
mov dword [esp + 0x74], eax
test ebx, ebx
mov dword [esp + 0x78], ebp
jg 0x480078
jmp 0x47fdc4
mov eax, dword [esp + 0x2f0]
test eax, eax
jle 0x4800cb
mov ecx, dword [esp + 0x2f4]
cmp word [ecx + eax*2 - 2], 0
jne 0x4800cb
dec eax
mov dword [esp + 0x2f0], eax
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x4800ea
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x74]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x481550
mov ecx, dword [esp + 0x28]
push eax
push ecx
lea edx, [esp + 0x7c]
jmp 0x481547
lea ecx, [esp + 0xcb70]
cmp al, 2
mov dword [esp + 0x128], ecx
jne 0x4807ad
mov edx, dword [esp + 0x2c]
xor eax, eax
cmp edx, eax
je 0x480298
lea ecx, [esp + 0xe24]
mov dword [esp + 0x494], ecx
lea ecx, [edx + edx]
cmp ecx, eax
mov dword [esp + 0x20], ecx
jle 0x48014d
mov edx, dword [esp + 0x494]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x480136
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0xe24]
xor ebx, ebx
test edx, edx
mov dword [esp + 0x224], eax
mov dword [esp + 0x220], 0
jle 0x480263
mov ecx, dword [esp + 0x30]
test edx, edx
mov bp, word [ecx + ebx*2]
je 0x480236
test bp, bp
je 0x480236
cmp bp, 1
jne 0x4801a9
lea edx, [esp + 0x220]
lea eax, [esp + 0x2c]
push edx
lea ecx, [esp + 0x224]
push eax
push ecx
jmp 0x48022a
lea esi, [esp + 0x3cdc]
test edx, edx
mov dword [esp + 0x4b4], esi
jl 0x4801d0
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x3cdc]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x480203
mov ecx, ebp
and ecx, 0xffff
mov edi, dword [esp + 0x30]
xor edx, edx
mov ebp, dword [esi + eax*2]
mov dx, word [edi + eax*2]
imul edx, ecx
add ebp, edx
mov dword [esi + eax*2], ebp
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x4b4]
inc eax
cmp eax, edx
jl 0x4801de
cmp word [esi + edx*2], 0
je 0x48020b
inc edx
lea eax, [esp + 0x220]
mov dword [esp + 0x4b0], edx
lea ecx, [esp + 0x4b0]
push eax
lea edx, [esp + 0x224]
push ecx
push edx
call fcn.0048a490
mov edx, dword [esp + 0x38]
add esp, 0xc
mov eax, dword [esp + 0x220]
test eax, eax
jle 0x480249
dec eax
mov dword [esp + 0x220], eax
mov esi, dword [esp + 0x224]
add esi, 2
inc ebx
cmp ebx, edx
mov dword [esp + 0x224], esi
jl 0x480170
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x494]
cmp word [ecx + eax*2 - 2], 0
jne 0x480277
dec eax
mov dword [esp + 0x490], eax
lea edx, [esp + 0x124]
lea eax, [esp + 0x490]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x48029f
mov dword [esp + 0x124], eax
lea edx, [esp + 0x2b8]
lea esi, [esp + 0x2b8]
lea ecx, [esp + 0x8c78]
mov dword [esp + 0x28], esi
test edx, edx
mov dword [esp + 0x344], ecx
jne 0x4802dc
lea eax, [esp + 0x8d7c]
lea esi, [esp + 0x79c]
mov dword [esp + 0x7a0], eax
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x124]
xor edi, edi
cmp eax, edi
jne 0x4802f7
mov dword [esp + 0x340], edi
mov dword [esi], edi
jmp 0x481550
cmp dword [esp + 0x10], 1
jne 0x480327
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x480327
lea edx, [esp + 0x340]
lea eax, [esp + 0x124]
push edx
push eax
call fcn.0048a2f0
add esp, 8
mov dword [esi], edi
jmp 0x481550
lea ecx, [esp + 0x10]
lea edx, [esp + 0x124]
push ecx
push edx
call fcn.0048a330
add esp, 8
test eax, eax
jge 0x48035d
mov dword [esp + 0x340], edi
lea eax, [esp + 0x124]
push esi
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x481550
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ax, word [edx + ecx*2 - 2]
xor ecx, ecx
cmp ax, di
mov dword [esp + 0x20], eax
je 0x48037e
shr ax, 1
inc ecx
cmp ax, di
jne 0x480375
mov esi, 0x10
lea edx, [esp + 0x5854]
sub esi, ecx
lea ecx, [esp + 0x574c]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x6c8], ecx
mov dword [esp + 0x15c], edx
jne 0x4803d3
lea eax, [esp + 0x6c4]
lea ecx, [esp + 0x124]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x160]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.0048a2f0
add esp, 0x10
jmp 0x4803ff
lea ecx, [esp + 0x6c4]
push esi
lea edx, [esp + 0x128]
push ecx
push edx
call fcn.0048a380
lea eax, [esp + 0x164]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.0048a380
add esp, 0x18
mov eax, dword [esp + 0x6c4]
mov edx, dword [esp + 0x158]
mov esi, dword [esp + 0x344]
sub eax, edx
mov ebx, eax
mov edi, 2
lea ecx, [eax + 1]
mov eax, edx
mov edx, dword [esp + 0x6c8]
mov dword [esp + 0x340], ecx
lea esi, [esi + ecx*2 - 2]
mov dword [esp + 0x7c], eax
lea ecx, [edx + ebx*2]
mov dword [esp + 0x80], ecx
test eax, eax
jne 0x480452
mov word [esi], ax
mov dword [esp + 0x7c], eax
jmp 0x4806fb
cmp dword [esp + 0x158], 1
jne 0x480503
cmp eax, 1
jne 0x4804b3
mov edx, dword [esp + 0x80]
xor eax, eax
xor ecx, ecx
mov ax, word [edx]
mov edx, dword [esp + 0x15c]
mov cx, word [edx]
cdq
idiv ecx
mov word [esi], ax
mov ecx, dword [esp + 0x15c]
mov dx, word [ecx]
imul dx, ax
mov eax, dword [esp + 0x80]
sub word [eax], dx
mov ecx, dword [esp + 0x80]
xor eax, eax
cmp word [ecx], ax
setne al
mov dword [esp + 0x7c], eax
jmp 0x4806fb
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x15c]
xor ebp, ebp
mov ecx, dword [edx]
mov bp, word [eax]
mov eax, ecx
xor edx, edx
div ebp
mov word [esi], ax
mov edx, dword [esp + 0x15c]
mov dx, word [edx]
imul dx, ax
mov eax, dword [esp + 0x80]
sub ecx, edx
mov word [eax], cx
mov edx, dword [esp + 0x80]
xor ecx, ecx
cmp word [edx], cx
setne cl
mov dword [esp + 0x7c], ecx
jmp 0x4806fb
lea eax, [esp + 0x7c]
lea ecx, [esp + 0x7c]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x160]
lea eax, [esp + 0x84]
push edx
push eax
call fcn.0048a330
add esp, 0x10
test eax, eax
jge 0x480538
mov word [esi], 0
jmp 0x4806fb
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x158]
cmp eax, ecx
jne 0x48056d
mov ebp, dword [esp + 0x15c]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ebp, dword [esp + 0x80]
mov ecx, edx
xor edx, edx
mov dx, word [ebp + eax*2 - 2]
inc ecx
mov eax, edx
cdq
idiv ecx
jmp 0x48058d
mov edx, dword [esp + 0x80]
mov ebp, dword [esp + 0x15c]
mov eax, dword [edx + eax*2 - 4]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ecx, edx
xor edx, edx
inc ecx
div ecx
lea edx, [esp + 0x918c]
mov word [esi], ax
mov dword [esp + 0x48c], edx
mov edx, dword [esp + 0x158]
mov dword [esp + 0x488], 0
mov ax, word [esi]
test edx, edx
mov dword [esp + 0x20], eax
je 0x48068c
test ax, ax
je 0x48068c
cmp ax, 1
jne 0x4805f3
lea eax, [esp + 0x488]
lea ecx, [esp + 0x158]
push eax
lea edx, [esp + 0x48c]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
jmp 0x48068c
lea ebp, [esp + 0x102c]
test edx, edx
mov dword [esp + 0x4c4], ebp
jl 0x48061a
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x102c]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x480657
mov ecx, dword [esp + 0x20]
and ecx, 0xffff
mov edi, dword [esp + 0x15c]
xor edx, edx
mov dx, word [edi + eax*2]
mov edi, dword [ebp + eax*2]
imul edx, ecx
add edi, edx
mov dword [ebp + eax*2], edi
mov edx, dword [esp + 0x158]
mov ebp, dword [esp + 0x4c4]
inc eax
cmp eax, edx
jl 0x48062a
cmp word [ebp + edx*2], 0
je 0x480660
inc edx
lea eax, [esp + 0x488]
mov dword [esp + 0x4c0], edx
lea ecx, [esp + 0x4c0]
push eax
lea edx, [esp + 0x48c]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
mov edi, 2
lea eax, [esp + 0x7c]
lea ecx, [esp + 0x488]
push eax
lea edx, [esp + 0x80]
push ecx
push edx
call fcn.0048a590
lea eax, [esp + 0x164]
lea ecx, [esp + 0x88]
push eax
push ecx
call fcn.0048a330
add esp, 0x14
test eax, eax
jl 0x4806fb
lea edx, [esp + 0x7c]
lea eax, [esp + 0x158]
push edx
lea ecx, [esp + 0x80]
push eax
push ecx
call fcn.0048a590
inc word [esi]
lea edx, [esp + 0x164]
lea eax, [esp + 0x88]
push edx
push eax
call fcn.0048a330
add esp, 0x14
test eax, eax
jge 0x4806c2
test ebx, ebx
je 0x48075a
mov eax, dword [esp + 0x7c]
mov ebp, dword [esp + 0x80]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
test ebx, ebx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ebp
jle 0x480442
cmp eax, dword [esp + 0x158]
jge 0x480442
mov word [esi], 0
mov eax, dword [esp + 0x7c]
mov ebp, dword [esp + 0x80]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
mov dword [esp + 0x7c], eax
test ebx, ebx
mov dword [esp + 0x80], ebp
jg 0x480723
jmp 0x480442
mov eax, dword [esp + 0x340]
test eax, eax
jle 0x48077c
mov ecx, dword [esp + 0x344]
cmp word [ecx + eax*2 - 2], 0
jne 0x48077c
dec eax
mov dword [esp + 0x340], eax
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x48079b
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x7c]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x481550
mov ecx, dword [esp + 0x28]
push eax
push ecx
lea edx, [esp + 0x84]
jmp 0x481547
cmp al, 3
jne 0x481550
mov edx, dword [esp + 0x2c]
xor eax, eax
cmp edx, eax
je 0x48093e
lea ecx, [esp + 0x2ea4]
mov dword [esp + 0x4d4], ecx
lea ecx, [edx + edx]
cmp ecx, eax
mov dword [esp + 0x20], ecx
jle 0x4807f3
mov edx, dword [esp + 0x4d4]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x4807dc
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0x2ea4]
xor ebx, ebx
test edx, edx
mov dword [esp + 0x2a4], eax
mov dword [esp + 0x2a0], 0
jle 0x480909
mov ecx, dword [esp + 0x30]
test edx, edx
mov bp, word [ecx + ebx*2]
je 0x4808dc
test bp, bp
je 0x4808dc
cmp bp, 1
jne 0x48084f
lea edx, [esp + 0x2a0]
lea eax, [esp + 0x2c]
push edx
lea ecx, [esp + 0x2a4]
push eax
push ecx
jmp 0x4808d0
lea esi, [esp + 0x1234]
test edx, edx
mov dword [esp + 0x630], esi
jl 0x480876
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x1234]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x4808a9
mov ecx, ebp
and ecx, 0xffff
mov edi, dword [esp + 0x30]
xor edx, edx
mov ebp, dword [esi + eax*2]
mov dx, word [edi + eax*2]
imul edx, ecx
add ebp, edx
mov dword [esi + eax*2], ebp
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x630]
inc eax
cmp eax, edx
jl 0x480884
cmp word [esi + edx*2], 0
je 0x4808b1
inc edx
lea eax, [esp + 0x2a0]
mov dword [esp + 0x62c], edx
lea ecx, [esp + 0x62c]
push eax
lea edx, [esp + 0x2a4]
push ecx
push edx
call fcn.0048a490
mov edx, dword [esp + 0x38]
add esp, 0xc
mov eax, dword [esp + 0x2a0]
test eax, eax
jle 0x4808ef
dec eax
mov dword [esp + 0x2a0], eax
mov esi, dword [esp + 0x2a4]
add esi, 2
inc ebx
cmp ebx, edx
mov dword [esp + 0x2a4], esi
jl 0x480816
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x4d4]
cmp word [ecx + eax*2 - 2], 0
jne 0x48091d
dec eax
mov dword [esp + 0x4d0], eax
lea edx, [esp + 0x124]
lea eax, [esp + 0x4d0]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x480945
mov dword [esp + 0x124], eax
lea edx, [esp + 0x124]
lea esi, [esp + 0x124]
lea ecx, [esp + 0x8f84]
mov dword [esp + 0x28], esi
test edx, edx
mov dword [esp + 0x304], ecx
jne 0x480982
lea eax, [esp + 0x9088]
lea esi, [esp + 0x854]
mov dword [esp + 0x858], eax
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x124]
xor edi, edi
cmp eax, edi
jne 0x48099d
mov dword [esp + 0x300], edi
mov dword [esi], edi
jmp 0x480e7e
cmp dword [esp + 0x10], 1
jne 0x4809cd
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x4809cd
lea edx, [esp + 0x300]
lea eax, [esp + 0x124]
push edx
push eax
call fcn.0048a2f0
add esp, 8
mov dword [esi], edi
jmp 0x480e7e
lea ecx, [esp + 0x10]
lea edx, [esp + 0x124]
push ecx
push edx
call fcn.0048a330
add esp, 8
test eax, eax
jge 0x480a03
lea eax, [esp + 0x124]
push esi
push eax
mov dword [esp + 0x308], edi
call fcn.0048a2f0
add esp, 8
jmp 0x480e7e
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ax, word [edx + ecx*2 - 2]
xor ecx, ecx
cmp ax, di
mov dword [esp + 0x20], eax
je 0x480a24
shr ax, 1
inc ecx
cmp ax, di
jne 0x480a1b
mov esi, 0x10
lea edx, [esp + 0x5a60]
sub esi, ecx
lea ecx, [esp + 0x5958]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x768], ecx
mov dword [esp + 0x204], edx
jne 0x480a79
lea eax, [esp + 0x764]
lea ecx, [esp + 0x124]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x208]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.0048a2f0
add esp, 0x10
jmp 0x480aa5
lea ecx, [esp + 0x764]
push esi
lea edx, [esp + 0x128]
push ecx
push edx
call fcn.0048a380
lea eax, [esp + 0x20c]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.0048a380
add esp, 0x18
mov eax, dword [esp + 0x764]
mov edx, dword [esp + 0x200]
mov esi, dword [esp + 0x304]
sub eax, edx
mov ebx, eax
mov edi, 2
lea ecx, [eax + 1]
mov eax, edx
mov edx, dword [esp + 0x768]
mov dword [esp + 0x300], ecx
lea esi, [esi + ecx*2 - 2]
mov dword [esp + 0xcc], eax
lea ecx, [edx + ebx*2]
mov dword [esp + 0xd0], ecx
test eax, eax
jne 0x480afe
mov word [esi], ax
mov dword [esp + 0xcc], eax
jmp 0x480dbc
cmp dword [esp + 0x200], 1
jne 0x480bb5
cmp eax, 1
jne 0x480b62
mov edx, dword [esp + 0xd0]
xor eax, eax
xor ecx, ecx
mov ax, word [edx]
mov edx, dword [esp + 0x204]
mov cx, word [edx]
cdq
idiv ecx
mov word [esi], ax
mov ecx, dword [esp + 0x204]
mov dx, word [ecx]
imul dx, ax
mov eax, dword [esp + 0xd0]
sub word [eax], dx
mov ecx, dword [esp + 0xd0]
xor eax, eax
cmp word [ecx], ax
setne al
mov dword [esp + 0xcc], eax
jmp 0x480dbc
mov edx, dword [esp + 0xd0]
mov eax, dword [esp + 0x204]
xor ebp, ebp
mov ecx, dword [edx]
mov bp, word [eax]
mov eax, ecx
xor edx, edx
div ebp
mov word [esi], ax
mov edx, dword [esp + 0x204]
mov dx, word [edx]
imul dx, ax
mov eax, dword [esp + 0xd0]
sub ecx, edx
mov word [eax], cx
mov edx, dword [esp + 0xd0]
xor ecx, ecx
cmp word [edx], cx
setne cl
mov dword [esp + 0xcc], ecx
jmp 0x480dbc
lea eax, [esp + 0xcc]
lea ecx, [esp + 0xcc]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x208]
lea eax, [esp + 0xd4]
push edx
push eax
call fcn.0048a330
add esp, 0x10
test eax, eax
jge 0x480bf0
mov word [esi], 0
jmp 0x480dbc
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0x200]
cmp eax, ecx
jne 0x480c28
mov ebp, dword [esp + 0x204]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ebp, dword [esp + 0xd0]
mov ecx, edx
xor edx, edx
mov dx, word [ebp + eax*2 - 2]
inc ecx
mov eax, edx
cdq
idiv ecx
jmp 0x480c48
mov edx, dword [esp + 0xd0]
mov ebp, dword [esp + 0x204]
mov eax, dword [edx + eax*2 - 4]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ecx, edx
xor edx, edx
inc ecx
div ecx
lea edx, [esp + 0xb928]
mov word [esi], ax
mov dword [esp + 0x434], edx
mov edx, dword [esp + 0x200]
mov dword [esp + 0x430], 0
mov ax, word [esi]
test edx, edx
mov dword [esp + 0x20], eax
je 0x480d47
test ax, ax
je 0x480d47
cmp ax, 1
jne 0x480cae
lea eax, [esp + 0x430]
lea ecx, [esp + 0x200]
push eax
lea edx, [esp + 0x434]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
jmp 0x480d47
lea ebp, [esp + 0x44fc]
test edx, edx
mov dword [esp + 0x5c0], ebp
jl 0x480cd5
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x44fc]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x480d12
mov ecx, dword [esp + 0x20]
and ecx, 0xffff
mov edi, dword [esp + 0x204]
xor edx, edx
mov dx, word [edi + eax*2]
mov edi, dword [ebp + eax*2]
imul edx, ecx
add edi, edx
mov dword [ebp + eax*2], edi
mov edx, dword [esp + 0x200]
mov ebp, dword [esp + 0x5c0]
inc eax
cmp eax, edx
jl 0x480ce5
cmp word [ebp + edx*2], 0
je 0x480d1b
inc edx
lea eax, [esp + 0x430]
mov dword [esp + 0x5bc], edx
lea ecx, [esp + 0x5bc]
push eax
lea edx, [esp + 0x434]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
mov edi, 2
lea eax, [esp + 0xcc]
lea ecx, [esp + 0x430]
push eax
lea edx, [esp + 0xd0]
push ecx
push edx
call fcn.0048a590
lea eax, [esp + 0x20c]
lea ecx, [esp + 0xd8]
push eax
push ecx
call fcn.0048a330
add esp, 0x14
test eax, eax
jl 0x480dbc
lea edx, [esp + 0xcc]
lea eax, [esp + 0x200]
push edx
lea ecx, [esp + 0xd0]
push eax
push ecx
call fcn.0048a590
inc word [esi]
lea edx, [esp + 0x20c]
lea eax, [esp + 0xd8]
push edx
push eax
call fcn.0048a330
add esp, 0x14
test eax, eax
jge 0x480d80
test ebx, ebx
je 0x480e27
mov eax, dword [esp + 0xcc]
mov ebp, dword [esp + 0xd0]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
test ebx, ebx
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], ebp
jle 0x480aeb
cmp eax, dword [esp + 0x200]
jge 0x480aeb
mov word [esi], 0
mov eax, dword [esp + 0xcc]
mov ebp, dword [esp + 0xd0]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
mov dword [esp + 0xcc], eax
test ebx, ebx
mov dword [esp + 0xd0], ebp
jg 0x480dea
jmp 0x480aeb
mov eax, dword [esp + 0x300]
test eax, eax
jle 0x480e49
mov ecx, dword [esp + 0x304]
cmp word [ecx + eax*2 - 2], 0
jne 0x480e49
dec eax
mov dword [esp + 0x300], eax
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x480e68
mov edx, dword [esp + 0x28]
lea eax, [esp + 0xcc]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x480e7e
mov ecx, dword [esp + 0x28]
push eax
lea edx, [esp + 0xd0]
push ecx
push edx
call fcn.0048a400
add esp, 0xc
mov edx, dword [esp + 0x124]
xor eax, eax
cmp edx, eax
je 0x48103a
mov ecx, dword [esp + 0x2c]
cmp ecx, eax
je 0x48103a
lea esi, [esp + 0x143c]
mov dword [esp + 0x670], esi
lea esi, [edx + ecx]
cmp esi, eax
mov dword [esp + 0x1c], esi
jle 0x480ed4
mov ecx, esi
mov edx, dword [esp + 0x670]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x480eb6
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x124]
cmp edx, ecx
jl 0x480ee5
lea esi, [esp + 0x124]
lea ebp, [esp + 0x2c]
jmp 0x480ef0
lea esi, [esp + 0x2c]
lea ebp, [esp + 0x124]
lea eax, [esp + 0x143c]
xor ebx, ebx
mov dword [esp + 0x234], eax
mov dword [esp + 0x230], ebx
mov eax, dword [ebp]
mov dword [esp + 0x20], ebp
cmp eax, ebx
jle 0x481005
mov ecx, dword [ebp + 4]
mov eax, dword [esi]
test eax, eax
mov di, word [ecx + ebx*2]
je 0x480fd5
test di, di
je 0x480fd5
cmp di, 1
jne 0x480f44
lea edx, [esp + 0x230]
push edx
push esi
jmp 0x480fc5
lea edx, [esp + 0x30ac]
xor eax, eax
mov dword [esp + 0x4e4], edx
mov ecx, dword [esi]
test ecx, ecx
jl 0x480f6e
lea ecx, [esp + 0x30ac]
mov word [ecx], 0
inc eax
add ecx, 2
cmp eax, dword [esi]
jle 0x480f61
mov ecx, dword [esi]
xor eax, eax
test ecx, ecx
jle 0x480fa4
mov ecx, edi
and ecx, 0xffff
mov edi, dword [esi + 4]
xor ebp, ebp
mov bp, word [edi + eax*2]
mov edi, dword [edx + eax*2]
imul ebp, ecx
add edi, ebp
mov dword [edx + eax*2], edi
mov edx, dword [esi]
inc eax
cmp eax, edx
mov edx, dword [esp + 0x4e4]
jl 0x480f7e
mov ebp, dword [esp + 0x20]
mov eax, dword [esi]
cmp word [edx + eax*2], 0
je 0x480fae
inc eax
lea ecx, [esp + 0x230]
lea edx, [esp + 0x4e0]
push ecx
mov dword [esp + 0x4e4], eax
push edx
lea eax, [esp + 0x238]
push eax
call fcn.0048a490
add esp, 0xc
mov eax, dword [esp + 0x230]
test eax, eax
jle 0x480fe8
dec eax
mov dword [esp + 0x230], eax
mov edx, dword [esp + 0x234]
add edx, 2
inc ebx
mov dword [esp + 0x234], edx
mov eax, dword [ebp]
cmp ebx, eax
jl 0x480f16
mov ecx, dword [esp + 0x670]
mov eax, dword [esp + 0x1c]
cmp word [ecx + eax*2 - 2], 0
jne 0x481019
dec eax
mov dword [esp + 0x66c], eax
lea edx, [esp + 0x124]
lea eax, [esp + 0x66c]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x481041
mov dword [esp + 0x124], eax
lea edx, [esp + 0x2c0]
lea esi, [esp + 0x2c0]
lea ecx, [esp + 0x9290]
mov dword [esp + 0x28], esi
test edx, edx
mov dword [esp + 0x384], ecx
jne 0x48107e
lea eax, [esp + 0x9394]
lea esi, [esp + 0x7ac]
mov dword [esp + 0x7b0], eax
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x124]
xor edi, edi
cmp eax, edi
jne 0x481099
mov dword [esp + 0x380], edi
mov dword [esi], edi
jmp 0x481550
cmp dword [esp + 0x10], 1
jne 0x4810b6
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x4810b6
lea edx, [esp + 0x380]
jmp 0x48030f
lea ecx, [esp + 0x10]
lea edx, [esp + 0x124]
push ecx
push edx
call fcn.0048a330
add esp, 8
test eax, eax
jge 0x4810db
mov dword [esp + 0x380], edi
jmp 0x480347
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ax, word [edx + ecx*2 - 2]
xor ecx, ecx
cmp ax, di
mov dword [esp + 0x20], eax
je 0x4810fc
shr ax, 1
inc ecx
cmp ax, di
jne 0x4810f3
mov esi, 0x10
lea edx, [esp + 0x5c6c]
sub esi, ecx
lea ecx, [esp + 0x5b64]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x6d8], ecx
mov dword [esp + 0x1bc], edx
jne 0x481151
lea eax, [esp + 0x6d4]
lea ecx, [esp + 0x124]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x1c0]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.0048a2f0
add esp, 0x10
jmp 0x48117d
lea ecx, [esp + 0x6d4]
push esi
lea edx, [esp + 0x128]
push ecx
push edx
call fcn.0048a380
lea eax, [esp + 0x1c4]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.0048a380
add esp, 0x18
mov eax, dword [esp + 0x6d4]
mov edx, dword [esp + 0x1b8]
mov esi, dword [esp + 0x384]
sub eax, edx
mov ebx, eax
mov edi, 2
lea ecx, [eax + 1]
mov eax, edx
mov edx, dword [esp + 0x6d8]
mov dword [esp + 0x380], ecx
lea esi, [esi + ecx*2 - 2]
mov dword [esp + 0x8c], eax
lea ecx, [edx + ebx*2]
mov dword [esp + 0x90], ecx
test eax, eax
jne 0x4811d6
mov word [esi], ax
mov dword [esp + 0x8c], eax
jmp 0x48148e
cmp dword [esp + 0x1b8], 1
jne 0x481287
cmp eax, 1
jne 0x481237
mov edx, dword [esp + 0x90]
xor eax, eax
xor ecx, ecx
mov ax, word [edx]
mov edx, dword [esp + 0x1bc]
mov cx, word [edx]
cdq
idiv ecx
xor edx, edx
mov word [esi], ax
mov ecx, dword [esp + 0x1bc]
imul ax, word [ecx]
mov ecx, dword [esp + 0x90]
sub word [ecx], ax
mov eax, dword [esp + 0x90]
cmp word [eax], dx
setne dl
mov dword [esp + 0x8c], edx
jmp 0x48148e
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x1bc]
xor ebp, ebp
mov ecx, dword [ecx]
mov bp, word [edx]
mov eax, ecx
xor edx, edx
div ebp
mov word [esi], ax
mov edx, dword [esp + 0x1bc]
imul ax, word [edx]
sub ecx, eax
mov eax, dword [esp + 0x90]
mov word [eax], cx
mov edx, dword [esp + 0x90]
xor ecx, ecx
cmp word [edx], cx
setne cl
mov dword [esp + 0x8c], ecx
jmp 0x48148e
lea eax, [esp + 0x8c]
lea ecx, [esp + 0x8c]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x1c0]
lea eax, [esp + 0x94]
push edx
push eax
call fcn.0048a330
add esp, 0x10
test eax, eax
jge 0x4812c2
mov word [esi], 0
jmp 0x48148e
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x1b8]
cmp eax, ecx
jne 0x4812fa
mov ebp, dword [esp + 0x1bc]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ebp, dword [esp + 0x90]
mov ecx, edx
xor edx, edx
mov dx, word [ebp + eax*2 - 2]
inc ecx
mov eax, edx
cdq
idiv ecx
jmp 0x48131a
mov edx, dword [esp + 0x90]
mov ebp, dword [esp + 0x1bc]
mov eax, dword [edx + eax*2 - 4]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ecx, edx
xor edx, edx
inc ecx
div ecx
lea edx, [esp + 0x9498]
mov word [esi], ax
mov dword [esp + 0x3e4], edx
mov edx, dword [esp + 0x1b8]
mov dword [esp + 0x3e0], 0
mov ax, word [esi]
test edx, edx
mov dword [esp + 0x20], eax
je 0x481419
test ax, ax
je 0x481419
cmp ax, 1
jne 0x481380
lea eax, [esp + 0x3e0]
lea ecx, [esp + 0x1b8]
push eax
lea edx, [esp + 0x3e4]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
jmp 0x481419
lea ebp, [esp + 0x1644]
test edx, edx
mov dword [esp + 0x4f4], ebp
jl 0x4813a7
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x1644]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x4813e4
mov ecx, dword [esp + 0x20]
and ecx, 0xffff
mov edi, dword [esp + 0x1bc]
xor edx, edx
mov dx, word [edi + eax*2]
mov edi, dword [ebp + eax*2]
imul edx, ecx
add edi, edx
mov dword [ebp + eax*2], edi
mov edx, dword [esp + 0x1b8]
mov ebp, dword [esp + 0x4f4]
inc eax
cmp eax, edx
jl 0x4813b7
cmp word [ebp + edx*2], 0
je 0x4813ed
inc edx
lea eax, [esp + 0x3e0]
mov dword [esp + 0x4f0], edx
lea ecx, [esp + 0x4f0]
push eax
lea edx, [esp + 0x3e4]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
mov edi, 2
lea eax, [esp + 0x8c]
lea ecx, [esp + 0x3e0]
push eax
lea edx, [esp + 0x90]
push ecx
push edx
call fcn.0048a590
lea eax, [esp + 0x1c4]
lea ecx, [esp + 0x98]
push eax
push ecx
call fcn.0048a330
add esp, 0x14
test eax, eax
jl 0x48148e
lea edx, [esp + 0x8c]
lea eax, [esp + 0x1b8]
push edx
lea ecx, [esp + 0x90]
push eax
push ecx
call fcn.0048a590
inc word [esi]
lea edx, [esp + 0x1c4]
lea eax, [esp + 0x98]
push edx
push eax
call fcn.0048a330
add esp, 0x14
test eax, eax
jge 0x481452
test ebx, ebx
je 0x4814f9
mov eax, dword [esp + 0x8c]
mov ebp, dword [esp + 0x90]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
test ebx, ebx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], ebp
jle 0x4811c3
cmp eax, dword [esp + 0x1b8]
jge 0x4811c3
mov word [esi], 0
mov eax, dword [esp + 0x8c]
mov ebp, dword [esp + 0x90]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
mov dword [esp + 0x8c], eax
test ebx, ebx
mov dword [esp + 0x90], ebp
jg 0x4814bc
jmp 0x4811c3
mov eax, dword [esp + 0x380]
test eax, eax
jle 0x48151b
mov ecx, dword [esp + 0x384]
cmp word [ecx + eax*2 - 2], 0
jne 0x48151b
dec eax
mov dword [esp + 0x380], eax
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x48153a
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x8c]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x481550
mov ecx, dword [esp + 0x28]
push eax
push ecx
lea edx, [esp + 0x94]
push edx
call fcn.0048a400
add esp, 0xc
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x3c]
push eax
push ecx
call fcn.0048a2f0
add esp, 8
mov dword [esp + 0x1c], 2
mov edx, dword [esp + 0x3c]
xor eax, eax
cmp edx, eax
je 0x4816f0
lea ecx, [esp + 0x3ee4]
mov dword [esp + 0x504], ecx
lea ecx, [edx + edx]
cmp ecx, eax
mov dword [esp + 0x20], ecx
jle 0x4815a8
mov edx, dword [esp + 0x504]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x481591
mov edx, dword [esp + 0x3c]
lea eax, [esp + 0x3ee4]
xor ebx, ebx
test edx, edx
mov dword [esp + 0x274], eax
mov dword [esp + 0x270], 0
jle 0x4816be
mov ecx, dword [esp + 0x40]
test edx, edx
mov bp, word [ecx + ebx*2]
je 0x481691
test bp, bp
je 0x481691
cmp bp, 1
jne 0x481604
lea edx, [esp + 0x270]
lea eax, [esp + 0x3c]
push edx
lea ecx, [esp + 0x274]
push eax
push ecx
jmp 0x481685
lea esi, [esp + 0x184c]
test edx, edx
mov dword [esp + 0x5d0], esi
jl 0x48162b
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x184c]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x48165e
mov ecx, ebp
and ecx, 0xffff
mov edi, dword [esp + 0x40]
xor edx, edx
mov ebp, dword [esi + eax*2]
mov dx, word [edi + eax*2]
imul edx, ecx
add ebp, edx
mov dword [esi + eax*2], ebp
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x5d0]
inc eax
cmp eax, edx
jl 0x481639
cmp word [esi + edx*2], 0
je 0x481666
inc edx
lea eax, [esp + 0x270]
mov dword [esp + 0x5cc], edx
lea ecx, [esp + 0x5cc]
push eax
lea edx, [esp + 0x274]
push ecx
push edx
call fcn.0048a490
mov edx, dword [esp + 0x48]
add esp, 0xc
mov eax, dword [esp + 0x270]
test eax, eax
jle 0x4816a4
dec eax
mov dword [esp + 0x270], eax
mov esi, dword [esp + 0x274]
add esi, 2
inc ebx
cmp ebx, edx
mov dword [esp + 0x274], esi
jl 0x4815cb
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x504]
cmp word [ecx + eax*2 - 2], 0
jne 0x4816d2
dec eax
mov dword [esp + 0x500], eax
lea edx, [esp + 0x3c]
lea eax, [esp + 0x500]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x4816f4
mov dword [esp + 0x3c], eax
lea edx, [esp + 0x3c]
lea esi, [esp + 0x3c]
lea ecx, [esp + 0x959c]
mov dword [esp + 0x28], esi
test edx, edx
mov dword [esp + 0x314], ecx
jne 0x48172b
lea eax, [esp + 0x96a0]
lea esi, [esp + 0x844]
mov dword [esp + 0x848], eax
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x3c]
xor edi, edi
cmp eax, edi
jne 0x481743
mov dword [esp + 0x310], edi
mov dword [esi], edi
jmp 0x481c0f
cmp dword [esp + 0x10], 1
jne 0x481770
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x481770
lea edx, [esp + 0x310]
lea eax, [esp + 0x3c]
push edx
push eax
call fcn.0048a2f0
add esp, 8
mov dword [esi], edi
jmp 0x481c0f
lea ecx, [esp + 0x10]
lea edx, [esp + 0x3c]
push ecx
push edx
call fcn.0048a330
add esp, 8
test eax, eax
jge 0x4817a0
lea eax, [esp + 0x3c]
push esi
push eax
mov dword [esp + 0x318], edi
call fcn.0048a2f0
add esp, 8
jmp 0x481c0f
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ax, word [edx + ecx*2 - 2]
xor ecx, ecx
cmp ax, di
mov dword [esp + 0x18], eax
je 0x4817c1
shr ax, 1
inc ecx
cmp ax, di
jne 0x4817b8
mov esi, 0x10
lea edx, [esp + 0x5e78]
sub esi, ecx
lea ecx, [esp + 0x5d70]
mov dword [esp + 0x20], esi
mov dword [esp + 0x738], ecx
mov dword [esp + 0x17c], edx
jne 0x481813
lea eax, [esp + 0x734]
lea ecx, [esp + 0x3c]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x180]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.0048a2f0
add esp, 0x10
jmp 0x48183c
lea ecx, [esp + 0x734]
push esi
lea edx, [esp + 0x40]
push ecx
push edx
call fcn.0048a380
lea eax, [esp + 0x184]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.0048a380
add esp, 0x18
mov eax, dword [esp + 0x734]
mov edx, dword [esp + 0x178]
mov esi, dword [esp + 0x314]
sub eax, edx
mov ebx, eax
mov edi, 2
lea ecx, [eax + 1]
mov eax, edx
mov edx, dword [esp + 0x738]
mov dword [esp + 0x310], ecx
lea esi, [esi + ecx*2 - 2]
mov dword [esp + 0x10c], eax
lea ecx, [edx + ebx*2]
mov dword [esp + 0x110], ecx
test eax, eax
jne 0x481895
mov word [esi], ax
mov dword [esp + 0x10c], eax
jmp 0x481b4d
cmp dword [esp + 0x178], 1
jne 0x481946
cmp eax, 1
jne 0x4818f6
mov edx, dword [esp + 0x110]
xor eax, eax
xor ecx, ecx
mov ax, word [edx]
mov edx, dword [esp + 0x17c]
mov cx, word [edx]
cdq
idiv ecx
xor edx, edx
mov word [esi], ax
mov ecx, dword [esp + 0x17c]
imul ax, word [ecx]
mov ecx, dword [esp + 0x110]
sub word [ecx], ax
mov eax, dword [esp + 0x110]
cmp word [eax], dx
setne dl
mov dword [esp + 0x10c], edx
jmp 0x481b4d
mov ecx, dword [esp + 0x110]
mov edx, dword [esp + 0x17c]
xor ebp, ebp
mov ecx, dword [ecx]
mov bp, word [edx]
mov eax, ecx
xor edx, edx
div ebp
mov word [esi], ax
mov edx, dword [esp + 0x17c]
imul ax, word [edx]
sub ecx, eax
mov eax, dword [esp + 0x110]
mov word [eax], cx
mov edx, dword [esp + 0x110]
xor ecx, ecx
cmp word [edx], cx
setne cl
mov dword [esp + 0x10c], ecx
jmp 0x481b4d
lea eax, [esp + 0x10c]
lea ecx, [esp + 0x10c]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x180]
lea eax, [esp + 0x114]
push edx
push eax
call fcn.0048a330
add esp, 0x10
test eax, eax
jge 0x481981
mov word [esi], 0
jmp 0x481b4d
mov eax, dword [esp + 0x10c]
mov ecx, dword [esp + 0x178]
cmp eax, ecx
jne 0x4819b9
mov ebp, dword [esp + 0x17c]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ebp, dword [esp + 0x110]
mov ecx, edx
xor edx, edx
mov dx, word [ebp + eax*2 - 2]
inc ecx
mov eax, edx
cdq
idiv ecx
jmp 0x4819d9
mov edx, dword [esp + 0x110]
mov ebp, dword [esp + 0x17c]
mov eax, dword [edx + eax*2 - 4]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ecx, edx
xor edx, edx
inc ecx
div ecx
lea edx, [esp + 0xd69c]
mov word [esi], ax
mov dword [esp + 0x464], edx
mov edx, dword [esp + 0x178]
mov dword [esp + 0x460], 0
mov ax, word [esi]
test edx, edx
mov dword [esp + 0x18], eax
je 0x481ad8
test ax, ax
je 0x481ad8
cmp ax, 1
jne 0x481a3f
lea eax, [esp + 0x460]
lea ecx, [esp + 0x178]
push eax
lea edx, [esp + 0x464]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
jmp 0x481ad8
lea ebp, [esp + 0x32b4]
test edx, edx
mov dword [esp + 0x640], ebp
jl 0x481a66
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x32b4]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x481aa3
mov ecx, dword [esp + 0x18]
and ecx, 0xffff
mov edi, dword [esp + 0x17c]
xor edx, edx
mov dx, word [edi + eax*2]
mov edi, dword [ebp + eax*2]
imul edx, ecx
add edi, edx
mov dword [ebp + eax*2], edi
mov edx, dword [esp + 0x178]
mov ebp, dword [esp + 0x640]
inc eax
cmp eax, edx
jl 0x481a76
cmp word [ebp + edx*2], 0
je 0x481aac
inc edx
lea eax, [esp + 0x460]
mov dword [esp + 0x63c], edx
lea ecx, [esp + 0x63c]
push eax
lea edx, [esp + 0x464]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
mov edi, 2
lea eax, [esp + 0x10c]
lea ecx, [esp + 0x460]
push eax
lea edx, [esp + 0x110]
push ecx
push edx
call fcn.0048a590
lea eax, [esp + 0x184]
lea ecx, [esp + 0x118]
push eax
push ecx
call fcn.0048a330
add esp, 0x14
test eax, eax
jl 0x481b4d
lea edx, [esp + 0x10c]
lea eax, [esp + 0x178]
push edx
lea ecx, [esp + 0x110]
push eax
push ecx
call fcn.0048a590
inc word [esi]
lea edx, [esp + 0x184]
lea eax, [esp + 0x118]
push edx
push eax
call fcn.0048a330
add esp, 0x14
test eax, eax
jge 0x481b11
test ebx, ebx
je 0x481bb8
mov eax, dword [esp + 0x10c]
mov ebp, dword [esp + 0x110]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
test ebx, ebx
mov dword [esp + 0x10c], eax
mov dword [esp + 0x110], ebp
jle 0x481882
cmp eax, dword [esp + 0x178]
jge 0x481882
mov word [esi], 0
mov eax, dword [esp + 0x10c]
mov ebp, dword [esp + 0x110]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
mov dword [esp + 0x10c], eax
test ebx, ebx
mov dword [esp + 0x110], ebp
jg 0x481b7b
jmp 0x481882
mov eax, dword [esp + 0x310]
test eax, eax
jle 0x481bda
mov ecx, dword [esp + 0x314]
cmp word [ecx + eax*2 - 2], 0
jne 0x481bda
dec eax
mov dword [esp + 0x310], eax
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x481bf9
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x10c]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x481c0f
mov ecx, dword [esp + 0x28]
push eax
lea edx, [esp + 0x110]
push ecx
push edx
call fcn.0048a400
add esp, 0xc
mov eax, dword [esp + 0x1c]
dec eax
mov dword [esp + 0x1c], eax
jne 0x48156a
mov al, byte [esp + 0x3b4]
test al, al
je 0x483c87
mov eax, dword [esp + 0x3b4]
and eax, 0xff
mov ecx, dword [esp + eax*8 + 0x2a8]
lea eax, [esp + eax*8 + 0x2a8]
test ecx, ecx
mov dword [esp + 0x1c], eax
jne 0x48359a
mov al, byte [esp + 0x3b4]
cmp al, 1
jne 0x482182
lea edx, [esp + 0x2b0]
lea esi, [esp + 0x2b0]
lea ecx, [esp + 0x98a8]
mov dword [esp + 0x28], esi
test edx, edx
mov dword [esp + 0x354], ecx
jne 0x481c9f
lea eax, [esp + 0x99ac]
lea esi, [esp + 0x7bc]
mov dword [esp + 0x7c0], eax
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x2c]
xor edi, edi
cmp eax, edi
jne 0x481cb7
mov dword [esp + 0x350], edi
mov dword [esi], edi
jmp 0x48359a
cmp dword [esp + 0x10], 1
jne 0x481ce4
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x481ce4
lea edx, [esp + 0x350]
lea eax, [esp + 0x2c]
push edx
push eax
call fcn.0048a2f0
add esp, 8
mov dword [esi], edi
jmp 0x48359a
lea ecx, [esp + 0x10]
lea edx, [esp + 0x2c]
push ecx
push edx
call fcn.0048a330
add esp, 8
test eax, eax
jge 0x481d14
lea eax, [esp + 0x2c]
push esi
push eax
mov dword [esp + 0x358], edi
call fcn.0048a2f0
add esp, 8
jmp 0x48359a
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ax, word [edx + ecx*2 - 2]
xor ecx, ecx
cmp ax, di
mov dword [esp + 0x18], eax
je 0x481d35
shr ax, 1
inc ecx
cmp ax, di
jne 0x481d2c
mov esi, 0x10
lea edx, [esp + 0x6084]
sub esi, ecx
lea ecx, [esp + 0x5f7c]
mov dword [esp + 0x20], esi
mov dword [esp + 0x6e8], ecx
mov dword [esp + 0x1fc], edx
jne 0x481d87
lea eax, [esp + 0x6e4]
lea ecx, [esp + 0x2c]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x200]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.0048a2f0
add esp, 0x10
jmp 0x481db0
lea ecx, [esp + 0x6e4]
push esi
lea edx, [esp + 0x30]
push ecx
push edx
call fcn.0048a380
lea eax, [esp + 0x204]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.0048a380
add esp, 0x18
mov eax, dword [esp + 0x6e4]
mov edx, dword [esp + 0x1f8]
mov esi, dword [esp + 0x354]
sub eax, edx
mov ebx, eax
mov edi, 2
lea ecx, [eax + 1]
mov eax, edx
mov edx, dword [esp + 0x6e8]
mov dword [esp + 0x350], ecx
lea esi, [esi + ecx*2 - 2]
mov dword [esp + 0x9c], eax
lea ecx, [edx + ebx*2]
mov dword [esp + 0xa0], ecx
test eax, eax
jne 0x481e09
mov word [esi], ax
mov dword [esp + 0x9c], eax
jmp 0x4820c1
cmp dword [esp + 0x1f8], 1
jne 0x481eba
cmp eax, 1
jne 0x481e6a
mov edx, dword [esp + 0xa0]
xor eax, eax
xor ecx, ecx
mov ax, word [edx]
mov edx, dword [esp + 0x1fc]
mov cx, word [edx]
cdq
idiv ecx
xor edx, edx
mov word [esi], ax
mov ecx, dword [esp + 0x1fc]
imul ax, word [ecx]
mov ecx, dword [esp + 0xa0]
sub word [ecx], ax
mov eax, dword [esp + 0xa0]
cmp word [eax], dx
setne dl
mov dword [esp + 0x9c], edx
jmp 0x4820c1
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x1fc]
xor ebp, ebp
mov ecx, dword [ecx]
mov bp, word [edx]
mov eax, ecx
xor edx, edx
div ebp
mov word [esi], ax
mov edx, dword [esp + 0x1fc]
imul ax, word [edx]
sub ecx, eax
mov eax, dword [esp + 0xa0]
mov word [eax], cx
mov edx, dword [esp + 0xa0]
xor ecx, ecx
cmp word [edx], cx
setne cl
mov dword [esp + 0x9c], ecx
jmp 0x4820c1
lea eax, [esp + 0x9c]
lea ecx, [esp + 0x9c]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x200]
lea eax, [esp + 0xa4]
push edx
push eax
call fcn.0048a330
add esp, 0x10
test eax, eax
jge 0x481ef5
mov word [esi], 0
jmp 0x4820c1
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x1f8]
cmp eax, ecx
jne 0x481f2d
mov ebp, dword [esp + 0x1fc]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ebp, dword [esp + 0xa0]
mov ecx, edx
xor edx, edx
mov dx, word [ebp + eax*2 - 2]
inc ecx
mov eax, edx
cdq
idiv ecx
jmp 0x481f4d
mov edx, dword [esp + 0xa0]
mov ebp, dword [esp + 0x1fc]
mov eax, dword [edx + eax*2 - 4]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ecx, edx
xor edx, edx
inc ecx
div ecx
lea edx, [esp + 0x97a4]
mov word [esi], ax
mov dword [esp + 0x3f4], edx
mov edx, dword [esp + 0x1f8]
mov dword [esp + 0x3f0], 0
mov ax, word [esi]
test edx, edx
mov dword [esp + 0x18], eax
je 0x48204c
test ax, ax
je 0x48204c
cmp ax, 1
jne 0x481fb3
lea eax, [esp + 0x3f0]
lea ecx, [esp + 0x1f8]
push eax
lea edx, [esp + 0x3f4]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
jmp 0x48204c
lea ebp, [esp + 0x1a54]
test edx, edx
mov dword [esp + 0x514], ebp
jl 0x481fda
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x1a54]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x482017
mov ecx, dword [esp + 0x18]
and ecx, 0xffff
mov edi, dword [esp + 0x1fc]
xor edx, edx
mov dx, word [edi + eax*2]
mov edi, dword [ebp + eax*2]
imul edx, ecx
add edi, edx
mov dword [ebp + eax*2], edi
mov edx, dword [esp + 0x1f8]
mov ebp, dword [esp + 0x514]
inc eax
cmp eax, edx
jl 0x481fea
cmp word [ebp + edx*2], 0
je 0x482020
inc edx
lea eax, [esp + 0x3f0]
mov dword [esp + 0x510], edx
lea ecx, [esp + 0x510]
push eax
lea edx, [esp + 0x3f4]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
mov edi, 2
lea eax, [esp + 0x9c]
lea ecx, [esp + 0x3f0]
push eax
lea edx, [esp + 0xa0]
push ecx
push edx
call fcn.0048a590
lea eax, [esp + 0x204]
lea ecx, [esp + 0xa8]
push eax
push ecx
call fcn.0048a330
add esp, 0x14
test eax, eax
jl 0x4820c1
lea edx, [esp + 0x9c]
lea eax, [esp + 0x1f8]
push edx
lea ecx, [esp + 0xa0]
push eax
push ecx
call fcn.0048a590
inc word [esi]
lea edx, [esp + 0x204]
lea eax, [esp + 0xa8]
push edx
push eax
call fcn.0048a330
add esp, 0x14
test eax, eax
jge 0x482085
test ebx, ebx
je 0x48212c
mov eax, dword [esp + 0x9c]
mov ebp, dword [esp + 0xa0]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
test ebx, ebx
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], ebp
jle 0x481df6
cmp eax, dword [esp + 0x1f8]
jge 0x481df6
mov word [esi], 0
mov eax, dword [esp + 0x9c]
mov ebp, dword [esp + 0xa0]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
mov dword [esp + 0x9c], eax
test ebx, ebx
mov dword [esp + 0xa0], ebp
jg 0x4820ef
jmp 0x481df6
mov eax, dword [esp + 0x350]
test eax, eax
jle 0x48214e
mov ecx, dword [esp + 0x354]
cmp word [ecx + eax*2 - 2], 0
jne 0x48214e
dec eax
mov dword [esp + 0x350], eax
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x482170
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x9c]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x48359a
mov ecx, dword [esp + 0x28]
push eax
push ecx
lea edx, [esp + 0xa4]
jmp 0x483591
lea ecx, [esp + 0x6290]
cmp al, 2
mov dword [esp + 0x138], ecx
jne 0x4827f7
mov edx, dword [esp + 0x2c]
xor eax, eax
cmp edx, eax
je 0x482321
lea ecx, [esp + 0x490c]
mov dword [esp + 0x524], ecx
lea ecx, [edx + edx]
cmp ecx, eax
mov dword [esp + 0x20], ecx
jle 0x4821d6
mov edx, dword [esp + 0x524]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x4821bf
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0x490c]
xor ebx, ebx
test edx, edx
mov dword [esp + 0x244], eax
mov dword [esp + 0x240], 0
jle 0x4822ec
mov ecx, dword [esp + 0x30]
test edx, edx
mov bp, word [ecx + ebx*2]
je 0x4822bf
test bp, bp
je 0x4822bf
cmp bp, 1
jne 0x482232
lea edx, [esp + 0x240]
lea eax, [esp + 0x2c]
push edx
lea ecx, [esp + 0x244]
push eax
push ecx
jmp 0x4822b3
lea esi, [esp + 0x1c5c]
test edx, edx
mov dword [esp + 0x5e0], esi
jl 0x482259
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x1c5c]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x48228c
mov ecx, ebp
and ecx, 0xffff
mov edi, dword [esp + 0x30]
xor edx, edx
mov ebp, dword [esi + eax*2]
mov dx, word [edi + eax*2]
imul edx, ecx
add ebp, edx
mov dword [esi + eax*2], ebp
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x5e0]
inc eax
cmp eax, edx
jl 0x482267
cmp word [esi + edx*2], 0
je 0x482294
inc edx
lea eax, [esp + 0x240]
mov dword [esp + 0x5dc], edx
lea ecx, [esp + 0x5dc]
push eax
lea edx, [esp + 0x244]
push ecx
push edx
call fcn.0048a490
mov edx, dword [esp + 0x38]
add esp, 0xc
mov eax, dword [esp + 0x240]
test eax, eax
jle 0x4822d2
dec eax
mov dword [esp + 0x240], eax
mov esi, dword [esp + 0x244]
add esi, 2
inc ebx
cmp ebx, edx
mov dword [esp + 0x244], esi
jl 0x4821f9
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x524]
cmp word [ecx + eax*2 - 2], 0
jne 0x482300
dec eax
mov dword [esp + 0x520], eax
lea edx, [esp + 0x134]
lea eax, [esp + 0x520]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x482328
mov dword [esp + 0x134], eax
lea edx, [esp + 0x2b8]
lea esi, [esp + 0x2b8]
lea ecx, [esp + 0x9bb4]
mov dword [esp + 0x28], esi
test edx, edx
mov dword [esp + 0x324], ecx
jne 0x482365
lea eax, [esp + 0x9cb8]
lea esi, [esp + 0x81c]
mov dword [esp + 0x820], eax
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x134]
xor edi, edi
cmp eax, edi
jne 0x482380
mov dword [esp + 0x320], edi
mov dword [esi], edi
jmp 0x48359a
cmp dword [esp + 0x10], 1
jne 0x4823b0
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x4823b0
lea edx, [esp + 0x320]
lea eax, [esp + 0x134]
push edx
push eax
call fcn.0048a2f0
add esp, 8
mov dword [esi], edi
jmp 0x48359a
lea ecx, [esp + 0x10]
lea edx, [esp + 0x134]
push ecx
push edx
call fcn.0048a330
add esp, 8
test eax, eax
jge 0x4823e6
mov dword [esp + 0x320], edi
lea eax, [esp + 0x134]
push esi
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x48359a
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ax, word [edx + ecx*2 - 2]
xor ecx, ecx
cmp ax, di
mov dword [esp + 0x18], eax
je 0x482407
shr ax, 1
inc ecx
cmp ax, di
jne 0x4823fe
mov esi, 0x10
lea edx, [esp + 0xbc34]
sub esi, ecx
lea ecx, [esp + 0x6188]
mov dword [esp + 0x20], esi
mov dword [esp + 0x758], ecx
mov dword [esp + 0x18c], edx
jne 0x48245c
lea eax, [esp + 0x754]
lea ecx, [esp + 0x134]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x190]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.0048a2f0
add esp, 0x10
jmp 0x482488
lea ecx, [esp + 0x754]
push esi
lea edx, [esp + 0x138]
push ecx
push edx
call fcn.0048a380
lea eax, [esp + 0x194]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.0048a380
add esp, 0x18
mov eax, dword [esp + 0x754]
mov edx, dword [esp + 0x188]
mov esi, dword [esp + 0x324]
sub eax, edx
mov ebx, eax
mov edi, 2
lea ecx, [eax + 1]
mov eax, edx
mov edx, dword [esp + 0x758]
mov dword [esp + 0x320], ecx
lea esi, [esi + ecx*2 - 2]
mov dword [esp + 0x54], eax
lea ecx, [edx + ebx*2]
mov dword [esp + 0x58], ecx
test eax, eax
jne 0x4824d8
mov word [esi], ax
mov dword [esp + 0x54], eax
jmp 0x482754
cmp dword [esp + 0x188], 1
jne 0x482571
cmp eax, 1
jne 0x48252d
mov edx, dword [esp + 0x58]
xor eax, eax
xor ecx, ecx
mov ax, word [edx]
mov edx, dword [esp + 0x18c]
mov cx, word [edx]
cdq
idiv ecx
xor edx, edx
mov word [esi], ax
mov ecx, dword [esp + 0x18c]
imul ax, word [ecx]
mov ecx, dword [esp + 0x58]
sub word [ecx], ax
mov eax, dword [esp + 0x58]
cmp word [eax], dx
setne dl
mov dword [esp + 0x54], edx
jmp 0x482754
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x18c]
xor ebp, ebp
mov ecx, dword [ecx]
mov bp, word [edx]
mov eax, ecx
xor edx, edx
div ebp
mov word [esi], ax
mov edx, dword [esp + 0x18c]
imul ax, word [edx]
sub ecx, eax
mov eax, dword [esp + 0x58]
mov word [eax], cx
mov edx, dword [esp + 0x58]
xor ecx, ecx
cmp word [edx], cx
setne cl
mov dword [esp + 0x54], ecx
jmp 0x482754
lea eax, [esp + 0x54]
lea ecx, [esp + 0x54]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x190]
lea eax, [esp + 0x5c]
push edx
push eax
call fcn.0048a330
add esp, 0x10
test eax, eax
jge 0x4825a3
mov word [esi], 0
jmp 0x482754
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x188]
cmp eax, ecx
jne 0x4825d5
mov ebp, dword [esp + 0x18c]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ebp, dword [esp + 0x58]
mov ecx, edx
xor edx, edx
mov dx, word [ebp + eax*2 - 2]
inc ecx
mov eax, edx
cdq
idiv ecx
jmp 0x4825f2
mov edx, dword [esp + 0x58]
mov ebp, dword [esp + 0x18c]
mov eax, dword [edx + eax*2 - 4]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ecx, edx
xor edx, edx
inc ecx
div ecx
lea edx, [esp + 0x649c]
mov word [esi], ax
mov dword [esp + 0x444], edx
mov edx, dword [esp + 0x188]
mov dword [esp + 0x440], 0
mov ax, word [esi]
test edx, edx
mov dword [esp + 0x18], eax
je 0x4826f1
test ax, ax
je 0x4826f1
cmp ax, 1
jne 0x482658
lea eax, [esp + 0x440]
lea ecx, [esp + 0x188]
push eax
lea edx, [esp + 0x444]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
jmp 0x4826f1
lea ebp, [esp + 0x34bc]
test edx, edx
mov dword [esp + 0x690], ebp
jl 0x48267f
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x34bc]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x4826bc
mov ecx, dword [esp + 0x18]
and ecx, 0xffff
mov edi, dword [esp + 0x18c]
xor edx, edx
mov dx, word [edi + eax*2]
mov edi, dword [ebp + eax*2]
imul edx, ecx
add edi, edx
mov dword [ebp + eax*2], edi
mov edx, dword [esp + 0x188]
mov ebp, dword [esp + 0x690]
inc eax
cmp eax, edx
jl 0x48268f
cmp word [ebp + edx*2], 0
je 0x4826c5
inc edx
lea eax, [esp + 0x440]
mov dword [esp + 0x68c], edx
lea ecx, [esp + 0x68c]
push eax
lea edx, [esp + 0x444]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
mov edi, 2
lea eax, [esp + 0x54]
lea ecx, [esp + 0x440]
push eax
lea edx, [esp + 0x58]
push ecx
push edx
call fcn.0048a590
lea eax, [esp + 0x194]
lea ecx, [esp + 0x60]
push eax
push ecx
call fcn.0048a330
add esp, 0x14
test eax, eax
jl 0x482754
lea edx, [esp + 0x54]
lea eax, [esp + 0x188]
push edx
lea ecx, [esp + 0x58]
push eax
push ecx
call fcn.0048a590
inc word [esi]
lea edx, [esp + 0x194]
lea eax, [esp + 0x60]
push edx
push eax
call fcn.0048a330
add esp, 0x14
test eax, eax
jge 0x482721
test ebx, ebx
je 0x4827a7
mov eax, dword [esp + 0x54]
mov ebp, dword [esp + 0x58]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
test ebx, ebx
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], ebp
jle 0x4824c8
cmp eax, dword [esp + 0x188]
jge 0x4824c8
mov word [esi], 0
mov eax, dword [esp + 0x54]
mov ebp, dword [esp + 0x58]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
mov dword [esp + 0x54], eax
test ebx, ebx
mov dword [esp + 0x58], ebp
jg 0x482776
jmp 0x4824c8
mov eax, dword [esp + 0x320]
test eax, eax
jle 0x4827c9
mov ecx, dword [esp + 0x324]
cmp word [ecx + eax*2 - 2], 0
jne 0x4827c9
dec eax
mov dword [esp + 0x320], eax
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x4827e8
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x54]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x48359a
mov ecx, dword [esp + 0x28]
push eax
push ecx
lea edx, [esp + 0x5c]
jmp 0x483591
cmp al, 3
jne 0x48359a
mov edx, dword [esp + 0x2c]
xor eax, eax
cmp edx, eax
je 0x482988
lea ecx, [esp + 0x1e64]
mov dword [esp + 0x5f0], ecx
lea ecx, [edx + edx]
cmp ecx, eax
mov dword [esp + 0x20], ecx
jle 0x48283d
mov edx, dword [esp + 0x5f0]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x482826
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0x1e64]
xor ebx, ebx
test edx, edx
mov dword [esp + 0x294], eax
mov dword [esp + 0x290], 0
jle 0x482953
mov ecx, dword [esp + 0x30]
test edx, edx
mov bp, word [ecx + ebx*2]
je 0x482926
test bp, bp
je 0x482926
cmp bp, 1
jne 0x482899
lea edx, [esp + 0x290]
lea eax, [esp + 0x2c]
push edx
lea ecx, [esp + 0x294]
push eax
push ecx
jmp 0x48291a
lea esi, [esp + 0x40ec]
test edx, edx
mov dword [esp + 0x534], esi
jl 0x4828c0
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x40ec]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x4828f3
mov ecx, ebp
and ecx, 0xffff
mov edi, dword [esp + 0x30]
xor edx, edx
mov ebp, dword [esi + eax*2]
mov dx, word [edi + eax*2]
imul edx, ecx
add ebp, edx
mov dword [esi + eax*2], ebp
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x534]
inc eax
cmp eax, edx
jl 0x4828ce
cmp word [esi + edx*2], 0
je 0x4828fb
inc edx
lea eax, [esp + 0x290]
mov dword [esp + 0x530], edx
lea ecx, [esp + 0x530]
push eax
lea edx, [esp + 0x294]
push ecx
push edx
call fcn.0048a490
mov edx, dword [esp + 0x38]
add esp, 0xc
mov eax, dword [esp + 0x290]
test eax, eax
jle 0x482939
dec eax
mov dword [esp + 0x290], eax
mov esi, dword [esp + 0x294]
add esi, 2
inc ebx
cmp ebx, edx
mov dword [esp + 0x294], esi
jl 0x482860
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x5f0]
cmp word [ecx + eax*2 - 2], 0
jne 0x482967
dec eax
mov dword [esp + 0x5ec], eax
lea edx, [esp + 0x134]
lea eax, [esp + 0x5ec]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x48298f
mov dword [esp + 0x134], eax
lea edx, [esp + 0x134]
lea esi, [esp + 0x134]
lea ecx, [esp + 0x9ec0]
mov dword [esp + 0x28], esi
test edx, edx
mov dword [esp + 0x374], ecx
jne 0x4829cc
lea eax, [esp + 0x9fc4]
lea esi, [esp + 0x7cc]
mov dword [esp + 0x7d0], eax
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x134]
xor edi, edi
cmp eax, edi
jne 0x4829e7
mov dword [esp + 0x370], edi
mov dword [esi], edi
jmp 0x482ec2
cmp dword [esp + 0x10], 1
jne 0x482a17
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x482a17
lea edx, [esp + 0x370]
lea eax, [esp + 0x134]
push edx
push eax
call fcn.0048a2f0
add esp, 8
mov dword [esi], edi
jmp 0x482ec2
lea ecx, [esp + 0x10]
lea edx, [esp + 0x134]
push ecx
push edx
call fcn.0048a330
add esp, 8
test eax, eax
jge 0x482a4d
lea eax, [esp + 0x134]
push esi
push eax
mov dword [esp + 0x378], edi
call fcn.0048a2f0
add esp, 8
jmp 0x482ec2
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ax, word [edx + ecx*2 - 2]
xor ecx, ecx
cmp ax, di
mov dword [esp + 0x18], eax
je 0x482a6e
shr ax, 1
inc ecx
cmp ax, di
jne 0x482a65
mov esi, 0x10
lea edx, [esp + 0x9ab0]
sub esi, ecx
lea ecx, [esp + 0x6394]
mov dword [esp + 0x20], esi
mov dword [esp + 0x6f8], ecx
mov dword [esp + 0x1cc], edx
jne 0x482ac3
lea eax, [esp + 0x6f4]
lea ecx, [esp + 0x134]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x1d0]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.0048a2f0
add esp, 0x10
jmp 0x482aef
lea ecx, [esp + 0x6f4]
push esi
lea edx, [esp + 0x138]
push ecx
push edx
call fcn.0048a380
lea eax, [esp + 0x1d4]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.0048a380
add esp, 0x18
mov eax, dword [esp + 0x6f4]
mov edx, dword [esp + 0x1c8]
mov esi, dword [esp + 0x374]
sub eax, edx
mov ebx, eax
mov edi, 2
lea ecx, [eax + 1]
mov eax, edx
mov edx, dword [esp + 0x6f8]
mov dword [esp + 0x370], ecx
lea esi, [esi + ecx*2 - 2]
mov dword [esp + 0xdc], eax
lea ecx, [edx + ebx*2]
mov dword [esp + 0xe0], ecx
test eax, eax
jne 0x482b48
mov word [esi], ax
mov dword [esp + 0xdc], eax
jmp 0x482e00
cmp dword [esp + 0x1c8], 1
jne 0x482bf9
cmp eax, 1
jne 0x482ba9
mov edx, dword [esp + 0xe0]
xor eax, eax
xor ecx, ecx
mov ax, word [edx]
mov edx, dword [esp + 0x1cc]
mov cx, word [edx]
cdq
idiv ecx
xor edx, edx
mov word [esi], ax
mov ecx, dword [esp + 0x1cc]
imul ax, word [ecx]
mov ecx, dword [esp + 0xe0]
sub word [ecx], ax
mov eax, dword [esp + 0xe0]
cmp word [eax], dx
setne dl
mov dword [esp + 0xdc], edx
jmp 0x482e00
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0x1cc]
xor ebp, ebp
mov ecx, dword [ecx]
mov bp, word [edx]
mov eax, ecx
xor edx, edx
div ebp
mov word [esi], ax
mov edx, dword [esp + 0x1cc]
imul ax, word [edx]
sub ecx, eax
mov eax, dword [esp + 0xe0]
mov word [eax], cx
mov edx, dword [esp + 0xe0]
xor ecx, ecx
cmp word [edx], cx
setne cl
mov dword [esp + 0xdc], ecx
jmp 0x482e00
lea eax, [esp + 0xdc]
lea ecx, [esp + 0xdc]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x1d0]
lea eax, [esp + 0xe4]
push edx
push eax
call fcn.0048a330
add esp, 0x10
test eax, eax
jge 0x482c34
mov word [esi], 0
jmp 0x482e00
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0x1c8]
cmp eax, ecx
jne 0x482c6c
mov ebp, dword [esp + 0x1cc]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ebp, dword [esp + 0xe0]
mov ecx, edx
xor edx, edx
mov dx, word [ebp + eax*2 - 2]
inc ecx
mov eax, edx
cdq
idiv ecx
jmp 0x482c8c
mov edx, dword [esp + 0xe0]
mov ebp, dword [esp + 0x1cc]
mov eax, dword [edx + eax*2 - 4]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ecx, edx
xor edx, edx
inc ecx
div ecx
lea edx, [esp + 0x66a8]
mov word [esi], ax
mov dword [esp + 0x404], edx
mov edx, dword [esp + 0x1c8]
mov dword [esp + 0x400], 0
mov ax, word [esi]
test edx, edx
mov dword [esp + 0x18], eax
je 0x482d8b
test ax, ax
je 0x482d8b
cmp ax, 1
jne 0x482cf2
lea eax, [esp + 0x400]
lea ecx, [esp + 0x1c8]
push eax
lea edx, [esp + 0x404]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
jmp 0x482d8b
lea ebp, [esp + 0x206c]
test edx, edx
mov dword [esp + 0x544], ebp
jl 0x482d19
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x206c]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x482d56
mov ecx, dword [esp + 0x18]
and ecx, 0xffff
mov edi, dword [esp + 0x1cc]
xor edx, edx
mov dx, word [edi + eax*2]
mov edi, dword [ebp + eax*2]
imul edx, ecx
add edi, edx
mov dword [ebp + eax*2], edi
mov edx, dword [esp + 0x1c8]
mov ebp, dword [esp + 0x544]
inc eax
cmp eax, edx
jl 0x482d29
cmp word [ebp + edx*2], 0
je 0x482d5f
inc edx
lea eax, [esp + 0x400]
mov dword [esp + 0x540], edx
lea ecx, [esp + 0x540]
push eax
lea edx, [esp + 0x404]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
mov edi, 2
lea eax, [esp + 0xdc]
lea ecx, [esp + 0x400]
push eax
lea edx, [esp + 0xe0]
push ecx
push edx
call fcn.0048a590
lea eax, [esp + 0x1d4]
lea ecx, [esp + 0xe8]
push eax
push ecx
call fcn.0048a330
add esp, 0x14
test eax, eax
jl 0x482e00
lea edx, [esp + 0xdc]
lea eax, [esp + 0x1c8]
push edx
lea ecx, [esp + 0xe0]
push eax
push ecx
call fcn.0048a590
inc word [esi]
lea edx, [esp + 0x1d4]
lea eax, [esp + 0xe8]
push edx
push eax
call fcn.0048a330
add esp, 0x14
test eax, eax
jge 0x482dc4
test ebx, ebx
je 0x482e6b
mov eax, dword [esp + 0xdc]
mov ebp, dword [esp + 0xe0]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
test ebx, ebx
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], ebp
jle 0x482b35
cmp eax, dword [esp + 0x1c8]
jge 0x482b35
mov word [esi], 0
mov eax, dword [esp + 0xdc]
mov ebp, dword [esp + 0xe0]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
mov dword [esp + 0xdc], eax
test ebx, ebx
mov dword [esp + 0xe0], ebp
jg 0x482e2e
jmp 0x482b35
mov eax, dword [esp + 0x370]
test eax, eax
jle 0x482e8d
mov ecx, dword [esp + 0x374]
cmp word [ecx + eax*2 - 2], 0
jne 0x482e8d
dec eax
mov dword [esp + 0x370], eax
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x482eac
mov edx, dword [esp + 0x28]
lea eax, [esp + 0xdc]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x482ec2
mov ecx, dword [esp + 0x28]
push eax
lea edx, [esp + 0xe0]
push ecx
push edx
call fcn.0048a400
add esp, 0xc
mov edx, dword [esp + 0x134]
xor eax, eax
cmp edx, eax
je 0x48307e
mov ecx, dword [esp + 0x2c]
cmp ecx, eax
je 0x48307e
lea esi, [esp + 0x36c4]
mov dword [esp + 0x554], esi
lea esi, [edx + ecx]
cmp esi, eax
mov dword [esp + 0x28], esi
jle 0x482f18
mov ecx, esi
mov edx, dword [esp + 0x554]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x482efa
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x134]
cmp edx, ecx
jl 0x482f29
lea esi, [esp + 0x134]
lea ebp, [esp + 0x2c]
jmp 0x482f34
lea esi, [esp + 0x2c]
lea ebp, [esp + 0x134]
lea eax, [esp + 0x36c4]
xor ebx, ebx
mov dword [esp + 0x254], eax
mov dword [esp + 0x250], ebx
mov eax, dword [ebp]
mov dword [esp + 0x20], ebp
cmp eax, ebx
jle 0x483049
mov ecx, dword [ebp + 4]
mov eax, dword [esi]
test eax, eax
mov di, word [ecx + ebx*2]
je 0x483019
test di, di
je 0x483019
cmp di, 1
jne 0x482f88
lea edx, [esp + 0x250]
push edx
push esi
jmp 0x483009
lea edx, [esp + 0x2274]
xor eax, eax
mov dword [esp + 0x650], edx
mov ecx, dword [esi]
test ecx, ecx
jl 0x482fb2
lea ecx, [esp + 0x2274]
mov word [ecx], 0
inc eax
add ecx, 2
cmp eax, dword [esi]
jle 0x482fa5
mov ecx, dword [esi]
xor eax, eax
test ecx, ecx
jle 0x482fe8
mov ecx, edi
and ecx, 0xffff
mov edi, dword [esi + 4]
xor ebp, ebp
mov bp, word [edi + eax*2]
mov edi, dword [edx + eax*2]
imul ebp, ecx
add edi, ebp
mov dword [edx + eax*2], edi
mov edx, dword [esi]
inc eax
cmp eax, edx
mov edx, dword [esp + 0x650]
jl 0x482fc2
mov ebp, dword [esp + 0x20]
mov eax, dword [esi]
cmp word [edx + eax*2], 0
je 0x482ff2
inc eax
lea ecx, [esp + 0x250]
lea edx, [esp + 0x64c]
push ecx
mov dword [esp + 0x650], eax
push edx
lea eax, [esp + 0x258]
push eax
call fcn.0048a490
add esp, 0xc
mov eax, dword [esp + 0x250]
test eax, eax
jle 0x48302c
dec eax
mov dword [esp + 0x250], eax
mov edx, dword [esp + 0x254]
add edx, 2
inc ebx
mov dword [esp + 0x254], edx
mov eax, dword [ebp]
cmp ebx, eax
jl 0x482f5a
mov ecx, dword [esp + 0x554]
mov eax, dword [esp + 0x28]
cmp word [ecx + eax*2 - 2], 0
jne 0x48305d
dec eax
mov dword [esp + 0x550], eax
lea edx, [esp + 0x134]
lea eax, [esp + 0x550]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x483085
mov dword [esp + 0x134], eax
lea edx, [esp + 0x2c0]
lea esi, [esp + 0x2c0]
lea ecx, [esp + 0xa1cc]
mov dword [esp + 0x28], esi
test edx, edx
mov dword [esp + 0x334], ecx
jne 0x4830c2
lea eax, [esp + 0xa2d0]
lea esi, [esp + 0x834]
mov dword [esp + 0x838], eax
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x134]
xor edi, edi
cmp eax, edi
jne 0x4830dd
mov dword [esp + 0x330], edi
mov dword [esi], edi
jmp 0x48359a
cmp dword [esp + 0x10], 1
jne 0x4830fa
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x4830fa
lea edx, [esp + 0x330]
jmp 0x482398
lea ecx, [esp + 0x10]
lea edx, [esp + 0x134]
push ecx
push edx
call fcn.0048a330
add esp, 8
test eax, eax
jge 0x48311f
mov dword [esp + 0x330], edi
jmp 0x4823d0
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ax, word [edx + ecx*2 - 2]
xor ecx, ecx
cmp ax, di
mov dword [esp + 0x18], eax
je 0x483140
shr ax, 1
inc ecx
cmp ax, di
jne 0x483137
mov esi, 0x10
lea edx, [esp + 0x5028]
sub esi, ecx
lea ecx, [esp + 0x65a0]
mov dword [esp + 0x20], esi
mov dword [esp + 0x708], ecx
mov dword [esp + 0x19c], edx
jne 0x483195
lea eax, [esp + 0x704]
lea ecx, [esp + 0x134]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x1a0]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.0048a2f0
add esp, 0x10
jmp 0x4831c1
lea ecx, [esp + 0x704]
push esi
lea edx, [esp + 0x138]
push ecx
push edx
call fcn.0048a380
lea eax, [esp + 0x1a4]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.0048a380
add esp, 0x18
mov eax, dword [esp + 0x704]
mov edx, dword [esp + 0x198]
mov esi, dword [esp + 0x334]
sub eax, edx
mov ebx, eax
mov edi, 2
lea ecx, [eax + 1]
mov eax, edx
mov edx, dword [esp + 0x708]
mov dword [esp + 0x330], ecx
lea esi, [esi + ecx*2 - 2]
mov dword [esp + 0xac], eax
lea ecx, [edx + ebx*2]
mov dword [esp + 0xb0], ecx
test eax, eax
jne 0x48321a
mov word [esi], ax
mov dword [esp + 0xac], eax
jmp 0x4834d8
cmp dword [esp + 0x198], 1
jne 0x4832d1
cmp eax, 1
jne 0x48327e
mov edx, dword [esp + 0xb0]
xor eax, eax
xor ecx, ecx
mov ax, word [edx]
mov edx, dword [esp + 0x19c]
mov cx, word [edx]
cdq
idiv ecx
mov word [esi], ax
mov ecx, dword [esp + 0x19c]
mov dx, word [ecx]
imul dx, ax
mov eax, dword [esp + 0xb0]
sub word [eax], dx
mov ecx, dword [esp + 0xb0]
xor eax, eax
cmp word [ecx], ax
setne al
mov dword [esp + 0xac], eax
jmp 0x4834d8
mov edx, dword [esp + 0xb0]
mov eax, dword [esp + 0x19c]
xor ebp, ebp
mov ecx, dword [edx]
mov bp, word [eax]
mov eax, ecx
xor edx, edx
div ebp
mov word [esi], ax
mov edx, dword [esp + 0x19c]
mov dx, word [edx]
imul dx, ax
mov eax, dword [esp + 0xb0]
sub ecx, edx
mov word [eax], cx
mov edx, dword [esp + 0xb0]
xor ecx, ecx
cmp word [edx], cx
setne cl
mov dword [esp + 0xac], ecx
jmp 0x4834d8
lea eax, [esp + 0xac]
lea ecx, [esp + 0xac]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x1a0]
lea eax, [esp + 0xb4]
push edx
push eax
call fcn.0048a330
add esp, 0x10
test eax, eax
jge 0x48330c
mov word [esi], 0
jmp 0x4834d8
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0x198]
cmp eax, ecx
jne 0x483344
mov ebp, dword [esp + 0x19c]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ebp, dword [esp + 0xb0]
mov ecx, edx
xor edx, edx
mov dx, word [ebp + eax*2 - 2]
inc ecx
mov eax, edx
cdq
idiv ecx
jmp 0x483364
mov edx, dword [esp + 0xb0]
mov ebp, dword [esp + 0x19c]
mov eax, dword [edx + eax*2 - 4]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ecx, edx
xor edx, edx
inc ecx
div ecx
lea edx, [esp + 0x68b4]
mov word [esi], ax
mov dword [esp + 0x3cc], edx
mov edx, dword [esp + 0x198]
mov dword [esp + 0x3c8], 0
mov ax, word [esi]
test edx, edx
mov dword [esp + 0x18], eax
je 0x483463
test ax, ax
je 0x483463
cmp ax, 1
jne 0x4833ca
lea eax, [esp + 0x3c8]
lea ecx, [esp + 0x198]
push eax
lea edx, [esp + 0x3cc]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
jmp 0x483463
lea ebp, [esp + 0x4704]
test edx, edx
mov dword [esp + 0x600], ebp
jl 0x4833f1
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x4704]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x48342e
mov ecx, dword [esp + 0x18]
and ecx, 0xffff
mov edi, dword [esp + 0x19c]
xor edx, edx
mov dx, word [edi + eax*2]
mov edi, dword [ebp + eax*2]
imul edx, ecx
add edi, edx
mov dword [ebp + eax*2], edi
mov edx, dword [esp + 0x198]
mov ebp, dword [esp + 0x600]
inc eax
cmp eax, edx
jl 0x483401
cmp word [ebp + edx*2], 0
je 0x483437
inc edx
lea eax, [esp + 0x3c8]
mov dword [esp + 0x5fc], edx
lea ecx, [esp + 0x5fc]
push eax
lea edx, [esp + 0x3cc]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
mov edi, 2
lea eax, [esp + 0xac]
lea ecx, [esp + 0x3c8]
push eax
lea edx, [esp + 0xb0]
push ecx
push edx
call fcn.0048a590
lea eax, [esp + 0x1a4]
lea ecx, [esp + 0xb8]
push eax
push ecx
call fcn.0048a330
add esp, 0x14
test eax, eax
jl 0x4834d8
lea edx, [esp + 0xac]
lea eax, [esp + 0x198]
push edx
lea ecx, [esp + 0xb0]
push eax
push ecx
call fcn.0048a590
inc word [esi]
lea edx, [esp + 0x1a4]
lea eax, [esp + 0xb8]
push edx
push eax
call fcn.0048a330
add esp, 0x14
test eax, eax
jge 0x48349c
test ebx, ebx
je 0x483543
mov eax, dword [esp + 0xac]
mov ebp, dword [esp + 0xb0]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
test ebx, ebx
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], ebp
jle 0x483207
cmp eax, dword [esp + 0x198]
jge 0x483207
mov word [esi], 0
mov eax, dword [esp + 0xac]
mov ebp, dword [esp + 0xb0]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
mov dword [esp + 0xac], eax
test ebx, ebx
mov dword [esp + 0xb0], ebp
jg 0x483506
jmp 0x483207
mov eax, dword [esp + 0x330]
test eax, eax
jle 0x483565
mov ecx, dword [esp + 0x334]
cmp word [ecx + eax*2 - 2], 0
jne 0x483565
dec eax
mov dword [esp + 0x330], eax
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x483584
mov edx, dword [esp + 0x28]
lea eax, [esp + 0xac]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x48359a
mov ecx, dword [esp + 0x28]
push eax
push ecx
lea edx, [esp + 0xb4]
push edx
call fcn.0048a400
add esp, 0xc
mov al, byte [esp + 0x3c4]
test al, al
je 0x483c75
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x48375a
mov eax, dword [esp + 0x1c]
cmp dword [eax], 0
je 0x48375a
lea edx, [esp + 0x247c]
mov dword [esp + 0x680], edx
mov edi, dword [eax]
mov edx, ecx
xor eax, eax
add edx, edi
test edx, edx
mov dword [esp + 0x28], edx
jle 0x4835f9
mov ecx, edx
mov edx, dword [esp + 0x680]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x4835e2
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x1c]
cmp ecx, dword [eax]
jl 0x483609
lea esi, [esp + 0x3c]
mov ebp, eax
jmp 0x48360f
mov esi, eax
lea ebp, [esp + 0x3c]
lea eax, [esp + 0x247c]
mov dword [esp + 0x280], 0
mov dword [esp + 0x284], eax
mov eax, dword [ebp]
xor ebx, ebx
mov dword [esp + 0x20], ebp
test eax, eax
jle 0x483728
mov ecx, dword [ebp + 4]
mov eax, dword [esi]
test eax, eax
mov di, word [ecx + ebx*2]
je 0x4836f8
test di, di
je 0x4836f8
cmp di, 1
jne 0x483667
lea edx, [esp + 0x280]
push edx
push esi
jmp 0x4836e8
lea edx, [esp + 0x38cc]
xor eax, eax
mov dword [esp + 0x564], edx
mov ecx, dword [esi]
test ecx, ecx
jl 0x483691
lea ecx, [esp + 0x38cc]
mov word [ecx], 0
inc eax
add ecx, 2
cmp eax, dword [esi]
jle 0x483684
mov ecx, dword [esi]
xor eax, eax
test ecx, ecx
jle 0x4836c7
mov ecx, edi
and ecx, 0xffff
mov edi, dword [esi + 4]
xor ebp, ebp
mov bp, word [edi + eax*2]
mov edi, dword [edx + eax*2]
imul ebp, ecx
add edi, ebp
mov dword [edx + eax*2], edi
mov edx, dword [esi]
inc eax
cmp eax, edx
mov edx, dword [esp + 0x564]
jl 0x4836a1
mov ebp, dword [esp + 0x20]
mov eax, dword [esi]
cmp word [edx + eax*2], 0
je 0x4836d1
inc eax
lea ecx, [esp + 0x280]
lea edx, [esp + 0x560]
push ecx
mov dword [esp + 0x564], eax
push edx
lea eax, [esp + 0x288]
push eax
call fcn.0048a490
add esp, 0xc
mov eax, dword [esp + 0x280]
test eax, eax
jle 0x48370b
dec eax
mov dword [esp + 0x280], eax
mov edx, dword [esp + 0x284]
add edx, 2
inc ebx
mov dword [esp + 0x284], edx
mov eax, dword [ebp]
cmp ebx, eax
jl 0x483639
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x680]
cmp word [ecx + eax*2 - 2], 0
jne 0x48373c
dec eax
mov dword [esp + 0x67c], eax
lea edx, [esp + 0x3c]
lea eax, [esp + 0x67c]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x483762
mov dword [esp + 0x3c], 0
lea edx, [esp + 0x3c]
lea esi, [esp + 0x3c]
lea ecx, [esp + 0xa4d8]
mov dword [esp + 0x28], esi
test edx, edx
mov dword [esp + 0x2cc], ecx
jne 0x483799
lea eax, [esp + 0xa5dc]
lea esi, [esp + 0x7dc]
mov dword [esp + 0x7e0], eax
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x3c]
xor edi, edi
cmp eax, edi
jne 0x4837b1
mov dword [esp + 0x2c8], edi
mov dword [esi], edi
jmp 0x483c87
cmp dword [esp + 0x10], 1
jne 0x4837de
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x4837de
lea edx, [esp + 0x2c8]
lea eax, [esp + 0x3c]
push edx
push eax
call fcn.0048a2f0
add esp, 8
mov dword [esi], edi
jmp 0x483c87
lea ecx, [esp + 0x10]
lea edx, [esp + 0x3c]
push ecx
push edx
call fcn.0048a330
add esp, 8
test eax, eax
jge 0x483806
lea eax, [esp + 0x3c]
push esi
mov dword [esp + 0x2cc], edi
push eax
jmp 0x483c7f
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ax, word [edx + ecx*2 - 2]
xor ecx, ecx
cmp ax, di
mov dword [esp + 0x18], eax
je 0x483827
shr ax, 1
inc ecx
cmp ax, di
jne 0x48381e
mov esi, 0x10
lea edx, [esp + 0x9dbc]
sub esi, ecx
lea ecx, [esp + 0x67ac]
mov dword [esp + 0x20], esi
mov dword [esp + 0x6b0], ecx
mov dword [esp + 0x1ec], edx
jne 0x483879
lea eax, [esp + 0x6ac]
lea ecx, [esp + 0x3c]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x1f0]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.0048a2f0
add esp, 0x10
jmp 0x4838a2
lea ecx, [esp + 0x6ac]
push esi
lea edx, [esp + 0x40]
push ecx
push edx
call fcn.0048a380
lea eax, [esp + 0x1f4]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.0048a380
add esp, 0x18
mov eax, dword [esp + 0x6ac]
mov edx, dword [esp + 0x1e8]
mov esi, dword [esp + 0x2cc]
sub eax, edx
mov ebx, eax
mov edi, 2
lea ecx, [eax + 1]
mov eax, edx
mov edx, dword [esp + 0x6b0]
mov dword [esp + 0x2c8], ecx
lea esi, [esi + ecx*2 - 2]
mov dword [esp + 0xfc], eax
lea ecx, [edx + ebx*2]
mov dword [esp + 0x100], ecx
test eax, eax
jne 0x4838fb
mov word [esi], ax
mov dword [esp + 0xfc], eax
jmp 0x483bb9
cmp dword [esp + 0x1e8], 1
jne 0x4839b2
cmp eax, 1
jne 0x48395f
mov edx, dword [esp + 0x100]
xor eax, eax
xor ecx, ecx
mov ax, word [edx]
mov edx, dword [esp + 0x1ec]
mov cx, word [edx]
cdq
idiv ecx
mov word [esi], ax
mov ecx, dword [esp + 0x1ec]
mov dx, word [ecx]
imul dx, ax
mov eax, dword [esp + 0x100]
sub word [eax], dx
mov ecx, dword [esp + 0x100]
xor eax, eax
cmp word [ecx], ax
setne al
mov dword [esp + 0xfc], eax
jmp 0x483bb9
mov edx, dword [esp + 0x100]
mov eax, dword [esp + 0x1ec]
xor ebp, ebp
mov ecx, dword [edx]
mov bp, word [eax]
mov eax, ecx
xor edx, edx
div ebp
mov word [esi], ax
mov edx, dword [esp + 0x1ec]
mov dx, word [edx]
imul dx, ax
mov eax, dword [esp + 0x100]
sub ecx, edx
mov word [eax], cx
mov edx, dword [esp + 0x100]
xor ecx, ecx
cmp word [edx], cx
setne cl
mov dword [esp + 0xfc], ecx
jmp 0x483bb9
lea eax, [esp + 0xfc]
lea ecx, [esp + 0xfc]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x1f0]
lea eax, [esp + 0x104]
push edx
push eax
call fcn.0048a330
add esp, 0x10
test eax, eax
jge 0x4839ed
mov word [esi], 0
jmp 0x483bb9
mov eax, dword [esp + 0xfc]
mov ecx, dword [esp + 0x1e8]
cmp eax, ecx
jne 0x483a25
mov ebp, dword [esp + 0x1ec]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ebp, dword [esp + 0x100]
mov ecx, edx
xor edx, edx
mov dx, word [ebp + eax*2 - 2]
inc ecx
mov eax, edx
cdq
idiv ecx
jmp 0x483a45
mov edx, dword [esp + 0x100]
mov ebp, dword [esp + 0x1ec]
mov eax, dword [edx + eax*2 - 4]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ecx, edx
xor edx, edx
inc ecx
div ecx
lea edx, [esp + 0x6ac0]
mov word [esi], ax
mov dword [esp + 0x414], edx
mov edx, dword [esp + 0x1e8]
mov dword [esp + 0x410], 0
mov ax, word [esi]
test edx, edx
mov dword [esp + 0x18], eax
je 0x483b44
test ax, ax
je 0x483b44
cmp ax, 1
jne 0x483aab
lea eax, [esp + 0x410]
lea ecx, [esp + 0x1e8]
push eax
lea edx, [esp + 0x414]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
jmp 0x483b44
lea ebp, [esp + 0x2684]
test edx, edx
mov dword [esp + 0x574], ebp
jl 0x483ad2
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x2684]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x483b0f
mov ecx, dword [esp + 0x18]
and ecx, 0xffff
mov edi, dword [esp + 0x1ec]
xor edx, edx
mov dx, word [edi + eax*2]
mov edi, dword [ebp + eax*2]
imul edx, ecx
add edi, edx
mov dword [ebp + eax*2], edi
mov edx, dword [esp + 0x1e8]
mov ebp, dword [esp + 0x574]
inc eax
cmp eax, edx
jl 0x483ae2
cmp word [ebp + edx*2], 0
je 0x483b18
inc edx
lea eax, [esp + 0x410]
mov dword [esp + 0x570], edx
lea ecx, [esp + 0x570]
push eax
lea edx, [esp + 0x414]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
mov edi, 2
lea eax, [esp + 0xfc]
lea ecx, [esp + 0x410]
push eax
lea edx, [esp + 0x100]
push ecx
push edx
call fcn.0048a590
lea eax, [esp + 0x1f4]
lea ecx, [esp + 0x108]
push eax
push ecx
call fcn.0048a330
add esp, 0x14
test eax, eax
jl 0x483bb9
lea edx, [esp + 0xfc]
lea eax, [esp + 0x1e8]
push edx
lea ecx, [esp + 0x100]
push eax
push ecx
call fcn.0048a590
inc word [esi]
lea edx, [esp + 0x1f4]
lea eax, [esp + 0x108]
push edx
push eax
call fcn.0048a330
add esp, 0x14
test eax, eax
jge 0x483b7d
test ebx, ebx
je 0x483c24
mov eax, dword [esp + 0xfc]
mov ebp, dword [esp + 0x100]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
test ebx, ebx
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], ebp
jle 0x4838e8
cmp eax, dword [esp + 0x1e8]
jge 0x4838e8
mov word [esi], 0
mov eax, dword [esp + 0xfc]
mov ebp, dword [esp + 0x100]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
mov dword [esp + 0xfc], eax
test ebx, ebx
mov dword [esp + 0x100], ebp
jg 0x483be7
jmp 0x4838e8
mov eax, dword [esp + 0x2c8]
test eax, eax
jle 0x483c46
mov ecx, dword [esp + 0x2cc]
cmp word [ecx + eax*2 - 2], 0
jne 0x483c46
dec eax
mov dword [esp + 0x2c8], eax
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x483c5d
mov edx, dword [esp + 0x28]
lea eax, [esp + 0xfc]
push edx
push eax
jmp 0x483c7f
mov ecx, dword [esp + 0x28]
push eax
lea edx, [esp + 0x100]
push ecx
push edx
call fcn.0048a400
add esp, 0xc
jmp 0x483c87
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x3c]
push eax
push ecx
call fcn.0048a2f0
add esp, 8
mov edx, dword [esp + 0x24]
lea eax, [esp + 0x3c]
push edx
push eax
call fcn.0048a2f0
mov eax, dword [esp + 0x2c]
add esp, 8
lea ecx, [esp + 0x44]
push ecx
push eax
call fcn.0048a2f0
add esp, 8
mov dword [esp + 0x20], 4
mov edx, dword [esp + 0x44]
xor eax, eax
cmp edx, eax
je 0x483e39
lea ecx, [esp + 0x42f4]
mov dword [esp + 0x584], ecx
lea ecx, [edx + edx]
cmp ecx, eax
mov dword [esp + 0x24], ecx
jle 0x483cf1
mov edx, dword [esp + 0x584]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x483cda
mov edx, dword [esp + 0x44]
lea eax, [esp + 0x42f4]
xor ebx, ebx
test edx, edx
mov dword [esp + 0x214], eax
mov dword [esp + 0x210], 0
jle 0x483e07
mov ecx, dword [esp + 0x48]
test edx, edx
mov bp, word [ecx + ebx*2]
je 0x483dda
test bp, bp
je 0x483dda
cmp bp, 1
jne 0x483d4d
lea edx, [esp + 0x210]
lea eax, [esp + 0x44]
push edx
lea ecx, [esp + 0x214]
push eax
push ecx
jmp 0x483dce
lea esi, [esp + 0x288c]
test edx, edx
mov dword [esp + 0x610], esi
jl 0x483d74
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x288c]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x483da7
mov ecx, ebp
and ecx, 0xffff
mov edi, dword [esp + 0x48]
xor edx, edx
mov ebp, dword [esi + eax*2]
mov dx, word [edi + eax*2]
imul edx, ecx
add ebp, edx
mov dword [esi + eax*2], ebp
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x610]
inc eax
cmp eax, edx
jl 0x483d82
cmp word [esi + edx*2], 0
je 0x483daf
inc edx
lea eax, [esp + 0x210]
mov dword [esp + 0x60c], edx
lea ecx, [esp + 0x60c]
push eax
lea edx, [esp + 0x214]
push ecx
push edx
call fcn.0048a490
mov edx, dword [esp + 0x50]
add esp, 0xc
mov eax, dword [esp + 0x210]
test eax, eax
jle 0x483ded
dec eax
mov dword [esp + 0x210], eax
mov esi, dword [esp + 0x214]
add esi, 2
inc ebx
cmp ebx, edx
mov dword [esp + 0x214], esi
jl 0x483d14
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x584]
cmp word [ecx + eax*2 - 2], 0
jne 0x483e1b
dec eax
mov dword [esp + 0x580], eax
lea edx, [esp + 0x44]
lea eax, [esp + 0x580]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x483e3d
mov dword [esp + 0x44], eax
lea edx, [esp + 0x44]
lea esi, [esp + 0x44]
lea ecx, [esp + 0xa7e4]
mov dword [esp + 0x1c], esi
test edx, edx
mov dword [esp + 0x2dc], ecx
jne 0x483e74
lea eax, [esp + 0xa8e8]
lea esi, [esp + 0x82c]
mov dword [esp + 0x830], eax
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x44]
xor edi, edi
cmp eax, edi
jne 0x483e8c
mov dword [esp + 0x2d8], edi
mov dword [esi], edi
jmp 0x484358
cmp dword [esp + 0x10], 1
jne 0x483eb9
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x483eb9
lea edx, [esp + 0x2d8]
lea eax, [esp + 0x44]
push edx
push eax
call fcn.0048a2f0
add esp, 8
mov dword [esi], edi
jmp 0x484358
lea ecx, [esp + 0x10]
lea edx, [esp + 0x44]
push ecx
push edx
call fcn.0048a330
add esp, 8
test eax, eax
jge 0x483ee9
lea eax, [esp + 0x44]
push esi
push eax
mov dword [esp + 0x2e0], edi
call fcn.0048a2f0
add esp, 8
jmp 0x484358
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ax, word [edx + ecx*2 - 2]
xor ecx, ecx
cmp ax, di
mov dword [esp + 0x18], eax
je 0x483f0a
shr ax, 1
inc ecx
cmp ax, di
jne 0x483f01
mov esi, 0x10
lea edx, [esp + 0xbf40]
sub esi, ecx
lea ecx, [esp + 0x69b8]
mov dword [esp + 0x24], esi
mov dword [esp + 0x720], ecx
mov dword [esp + 0x1ac], edx
jne 0x483f5c
lea eax, [esp + 0x71c]
lea ecx, [esp + 0x44]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x1b0]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.0048a2f0
add esp, 0x10
jmp 0x483f85
lea ecx, [esp + 0x71c]
push esi
lea edx, [esp + 0x48]
push ecx
push edx
call fcn.0048a380
lea eax, [esp + 0x1b4]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.0048a380
add esp, 0x18
mov eax, dword [esp + 0x71c]
mov edx, dword [esp + 0x1a8]
mov esi, dword [esp + 0x2dc]
sub eax, edx
mov ebx, eax
mov edi, 2
lea ecx, [eax + 1]
mov eax, edx
mov edx, dword [esp + 0x720]
mov dword [esp + 0x2d8], ecx
lea esi, [esi + ecx*2 - 2]
mov dword [esp + 0xbc], eax
lea ecx, [edx + ebx*2]
mov dword [esp + 0xc0], ecx
test eax, eax
jne 0x483fde
mov word [esi], ax
mov dword [esp + 0xbc], eax
jmp 0x484296
cmp dword [esp + 0x1a8], 1
jne 0x48408f
cmp eax, 1
jne 0x48403f
mov edx, dword [esp + 0xc0]
xor eax, eax
xor ecx, ecx
mov ax, word [edx]
mov edx, dword [esp + 0x1ac]
mov cx, word [edx]
cdq
idiv ecx
xor edx, edx
mov word [esi], ax
mov ecx, dword [esp + 0x1ac]
imul ax, word [ecx]
mov ecx, dword [esp + 0xc0]
sub word [ecx], ax
mov eax, dword [esp + 0xc0]
cmp word [eax], dx
setne dl
mov dword [esp + 0xbc], edx
jmp 0x484296
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x1ac]
xor ebp, ebp
mov ecx, dword [ecx]
mov bp, word [edx]
mov eax, ecx
xor edx, edx
div ebp
mov word [esi], ax
mov edx, dword [esp + 0x1ac]
imul ax, word [edx]
sub ecx, eax
mov eax, dword [esp + 0xc0]
mov word [eax], cx
mov edx, dword [esp + 0xc0]
xor ecx, ecx
cmp word [edx], cx
setne cl
mov dword [esp + 0xbc], ecx
jmp 0x484296
lea eax, [esp + 0xbc]
lea ecx, [esp + 0xbc]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x1b0]
lea eax, [esp + 0xc4]
push edx
push eax
call fcn.0048a330
add esp, 0x10
test eax, eax
jge 0x4840ca
mov word [esi], 0
jmp 0x484296
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0x1a8]
cmp eax, ecx
jne 0x484102
mov ebp, dword [esp + 0x1ac]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ebp, dword [esp + 0xc0]
mov ecx, edx
xor edx, edx
mov dx, word [ebp + eax*2 - 2]
inc ecx
mov eax, edx
cdq
idiv ecx
jmp 0x484122
mov edx, dword [esp + 0xc0]
mov ebp, dword [esp + 0x1ac]
mov eax, dword [edx + eax*2 - 4]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ecx, edx
xor edx, edx
inc ecx
div ecx
lea edx, [esp + 0x6ccc]
mov word [esi], ax
mov dword [esp + 0x454], edx
mov edx, dword [esp + 0x1a8]
mov dword [esp + 0x450], 0
mov ax, word [esi]
test edx, edx
mov dword [esp + 0x18], eax
je 0x484221
test ax, ax
je 0x484221
cmp ax, 1
jne 0x484188
lea eax, [esp + 0x450]
lea ecx, [esp + 0x1a8]
push eax
lea edx, [esp + 0x454]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
jmp 0x484221
lea ebp, [esp + 0x3ad4]
test edx, edx
mov dword [esp + 0x660], ebp
jl 0x4841af
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x3ad4]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x4841ec
mov ecx, dword [esp + 0x18]
and ecx, 0xffff
mov edi, dword [esp + 0x1ac]
xor edx, edx
mov dx, word [edi + eax*2]
mov edi, dword [ebp + eax*2]
imul edx, ecx
add edi, edx
mov dword [ebp + eax*2], edi
mov edx, dword [esp + 0x1a8]
mov ebp, dword [esp + 0x660]
inc eax
cmp eax, edx
jl 0x4841bf
cmp word [ebp + edx*2], 0
je 0x4841f5
inc edx
lea eax, [esp + 0x450]
mov dword [esp + 0x65c], edx
lea ecx, [esp + 0x65c]
push eax
lea edx, [esp + 0x454]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
mov edi, 2
lea eax, [esp + 0xbc]
lea ecx, [esp + 0x450]
push eax
lea edx, [esp + 0xc0]
push ecx
push edx
call fcn.0048a590
lea eax, [esp + 0x1b4]
lea ecx, [esp + 0xc8]
push eax
push ecx
call fcn.0048a330
add esp, 0x14
test eax, eax
jl 0x484296
lea edx, [esp + 0xbc]
lea eax, [esp + 0x1a8]
push edx
lea ecx, [esp + 0xc0]
push eax
push ecx
call fcn.0048a590
inc word [esi]
lea edx, [esp + 0x1b4]
lea eax, [esp + 0xc8]
push edx
push eax
call fcn.0048a330
add esp, 0x14
test eax, eax
jge 0x48425a
test ebx, ebx
je 0x484301
mov eax, dword [esp + 0xbc]
mov ebp, dword [esp + 0xc0]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
test ebx, ebx
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], ebp
jle 0x483fcb
cmp eax, dword [esp + 0x1a8]
jge 0x483fcb
mov word [esi], 0
mov eax, dword [esp + 0xbc]
mov ebp, dword [esp + 0xc0]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
mov dword [esp + 0xbc], eax
test ebx, ebx
mov dword [esp + 0xc0], ebp
jg 0x4842c4
jmp 0x483fcb
mov eax, dword [esp + 0x2d8]
test eax, eax
jle 0x484323
mov ecx, dword [esp + 0x2dc]
cmp word [ecx + eax*2 - 2], 0
jne 0x484323
dec eax
mov dword [esp + 0x2d8], eax
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x484342
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0xbc]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x484358
mov ecx, dword [esp + 0x1c]
push eax
lea edx, [esp + 0xc0]
push ecx
push edx
call fcn.0048a400
add esp, 0xc
mov eax, dword [esp + 0x20]
dec eax
mov dword [esp + 0x20], eax
jne 0x483cb3
mov cl, byte [esp + 0x5b0]
test cl, cl
je 0x488b6b
mov eax, dword [esp + 0x5b0]
and eax, 0xff
mov edx, dword [esp + eax*8 + 0x890]
lea eax, [esp + eax*8 + 0x890]
test edx, edx
mov dword [esp + 0x20], eax
jne 0x48848e
mov al, cl
lea edx, [esp + 0xa0c8]
shr al, 2
and cl, 3
mov dword [esp + 0x50], edx
test al, al
mov byte [esp + 0x3c0], al
mov byte [esp + 0x3b0], cl
je 0x4863a6
mov eax, dword [esp + 0x3c0]
and eax, 0xff
mov ecx, dword [esp + eax*8 + 0x2a8]
lea eax, [esp + eax*8 + 0x2a8]
test ecx, ecx
mov dword [esp + 0x28], eax
jne 0x485cd2
mov al, byte [esp + 0x3c0]
cmp al, 1
jne 0x4848bd
lea edx, [esp + 0x2b0]
lea esi, [esp + 0x2b0]
lea ecx, [esp + 0xaaf0]
mov dword [esp + 0x1c], esi
test edx, edx
mov dword [esp + 0x2ec], ecx
jne 0x484437
lea eax, [esp + 0xabf4]
lea esi, [esp + 0x7ec]
mov dword [esp + 0x7f0], eax
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x2c]
xor edi, edi
cmp eax, edi
jne 0x48444f
mov dword [esp + 0x2e8], edi
mov dword [esi], edi
jmp 0x485cd2
cmp dword [esp + 0x10], 1
jne 0x48447c
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x48447c
lea edx, [esp + 0x2e8]
lea eax, [esp + 0x2c]
push edx
push eax
call fcn.0048a2f0
add esp, 8
mov dword [esi], edi
jmp 0x485cd2
lea ecx, [esp + 0x10]
lea edx, [esp + 0x2c]
push ecx
push edx
call fcn.0048a330
add esp, 8
test eax, eax
jge 0x4844ac
lea eax, [esp + 0x2c]
push esi
push eax
mov dword [esp + 0x2f0], edi
call fcn.0048a2f0
add esp, 8
jmp 0x485cd2
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ax, word [edx + ecx*2 - 2]
xor ecx, ecx
cmp ax, di
mov dword [esp + 0x18], eax
je 0x4844cd
shr ax, 1
inc ecx
cmp ax, di
jne 0x4844c4
mov esi, 0x10
lea edx, [esp + 0x6ed8]
sub esi, ecx
lea ecx, [esp + 0x6bc4]
mov dword [esp + 0x24], esi
mov dword [esp + 0x710], ecx
mov dword [esp + 0x1dc], edx
jne 0x48451f
lea eax, [esp + 0x70c]
lea ecx, [esp + 0x2c]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x1e0]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.0048a2f0
add esp, 0x10
jmp 0x484548
lea ecx, [esp + 0x70c]
push esi
lea edx, [esp + 0x30]
push ecx
push edx
call fcn.0048a380
lea eax, [esp + 0x1e4]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.0048a380
add esp, 0x18
mov eax, dword [esp + 0x70c]
mov edx, dword [esp + 0x1d8]
mov esi, dword [esp + 0x2ec]
sub eax, edx
mov ebx, eax
mov edi, 2
lea ecx, [eax + 1]
mov eax, edx
mov edx, dword [esp + 0x710]
mov dword [esp + 0x2e8], ecx
lea esi, [esi + ecx*2 - 2]
mov dword [esp + 0x6c], eax
lea ecx, [edx + ebx*2]
mov dword [esp + 0x70], ecx
test eax, eax
jne 0x484598
mov word [esi], ax
mov dword [esp + 0x6c], eax
jmp 0x48481a
cmp dword [esp + 0x1d8], 1
jne 0x484637
cmp eax, 1
jne 0x4845f0
mov edx, dword [esp + 0x70]
xor eax, eax
xor ecx, ecx
mov ax, word [edx]
mov edx, dword [esp + 0x1dc]
mov cx, word [edx]
cdq
idiv ecx
mov word [esi], ax
mov ecx, dword [esp + 0x1dc]
mov dx, word [ecx]
imul dx, ax
mov eax, dword [esp + 0x70]
sub word [eax], dx
mov ecx, dword [esp + 0x70]
xor eax, eax
cmp word [ecx], ax
setne al
mov dword [esp + 0x6c], eax
jmp 0x48481a
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x1dc]
xor ebp, ebp
mov ecx, dword [edx]
mov bp, word [eax]
mov eax, ecx
xor edx, edx
div ebp
mov word [esi], ax
mov edx, dword [esp + 0x1dc]
mov dx, word [edx]
imul dx, ax
mov eax, dword [esp + 0x70]
sub ecx, edx
mov word [eax], cx
mov edx, dword [esp + 0x70]
xor ecx, ecx
cmp word [edx], cx
setne cl
mov dword [esp + 0x6c], ecx
jmp 0x48481a
lea eax, [esp + 0x6c]
lea ecx, [esp + 0x6c]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x1e0]
lea eax, [esp + 0x74]
push edx
push eax
call fcn.0048a330
add esp, 0x10
test eax, eax
jge 0x484669
mov word [esi], 0
jmp 0x48481a
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x1d8]
cmp eax, ecx
jne 0x48469b
mov ebp, dword [esp + 0x1dc]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ebp, dword [esp + 0x70]
mov ecx, edx
xor edx, edx
mov dx, word [ebp + eax*2 - 2]
inc ecx
mov eax, edx
cdq
idiv ecx
jmp 0x4846b8
mov edx, dword [esp + 0x70]
mov ebp, dword [esp + 0x1dc]
mov eax, dword [edx + eax*2 - 4]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ecx, edx
xor edx, edx
inc ecx
div ecx
lea edx, [esp + 0xd598]
mov word [esi], ax
mov dword [esp + 0x424], edx
mov edx, dword [esp + 0x1d8]
mov dword [esp + 0x420], 0
mov ax, word [esi]
test edx, edx
mov dword [esp + 0x18], eax
je 0x4847b7
test ax, ax
je 0x4847b7
cmp ax, 1
jne 0x48471e
lea eax, [esp + 0x420]
lea ecx, [esp + 0x1d8]
push eax
lea edx, [esp + 0x424]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
jmp 0x4847b7
lea ebp, [esp + 0x2a94]
test edx, edx
mov dword [esp + 0x594], ebp
jl 0x484745
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x2a94]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x484782
mov ecx, dword [esp + 0x18]
and ecx, 0xffff
mov edi, dword [esp + 0x1dc]
xor edx, edx
mov dx, word [edi + eax*2]
mov edi, dword [ebp + eax*2]
imul edx, ecx
add edi, edx
mov dword [ebp + eax*2], edi
mov edx, dword [esp + 0x1d8]
mov ebp, dword [esp + 0x594]
inc eax
cmp eax, edx
jl 0x484755
cmp word [ebp + edx*2], 0
je 0x48478b
inc edx
lea eax, [esp + 0x420]
mov dword [esp + 0x590], edx
lea ecx, [esp + 0x590]
push eax
lea edx, [esp + 0x424]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
mov edi, 2
lea eax, [esp + 0x6c]
lea ecx, [esp + 0x420]
push eax
lea edx, [esp + 0x70]
push ecx
push edx
call fcn.0048a590
lea eax, [esp + 0x1e4]
lea ecx, [esp + 0x78]
push eax
push ecx
call fcn.0048a330
add esp, 0x14
test eax, eax
jl 0x48481a
lea edx, [esp + 0x6c]
lea eax, [esp + 0x1d8]
push edx
lea ecx, [esp + 0x70]
push eax
push ecx
call fcn.0048a590
inc word [esi]
lea edx, [esp + 0x1e4]
lea eax, [esp + 0x78]
push edx
push eax
call fcn.0048a330
add esp, 0x14
test eax, eax
jge 0x4847e7
test ebx, ebx
je 0x48486d
mov eax, dword [esp + 0x6c]
mov ebp, dword [esp + 0x70]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
test ebx, ebx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], ebp
jle 0x484588
cmp eax, dword [esp + 0x1d8]
jge 0x484588
mov word [esi], 0
mov eax, dword [esp + 0x6c]
mov ebp, dword [esp + 0x70]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
mov dword [esp + 0x6c], eax
test ebx, ebx
mov dword [esp + 0x70], ebp
jg 0x48483c
jmp 0x484588
mov eax, dword [esp + 0x2e8]
test eax, eax
jle 0x48488f
mov ecx, dword [esp + 0x2ec]
cmp word [ecx + eax*2 - 2], 0
jne 0x48488f
dec eax
mov dword [esp + 0x2e8], eax
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x4848ae
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x6c]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x485cd2
mov ecx, dword [esp + 0x1c]
push eax
push ecx
lea edx, [esp + 0x74]
jmp 0x485cc9
lea ecx, [esp + 0x70e4]
cmp al, 2
mov dword [esp + 0x120], ecx
jne 0x484f32
mov edx, dword [esp + 0x2c]
xor eax, eax
cmp edx, eax
je 0x484a5c
lea ecx, [esp + 0x4b14]
mov dword [esp + 0x5a4], ecx
lea ecx, [edx + edx]
cmp ecx, eax
mov dword [esp + 0x24], ecx
jle 0x484911
mov edx, dword [esp + 0x5a4]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x4848fa
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0x4b14]
xor ebx, ebx
test edx, edx
mov dword [esp + 0x21c], eax
mov dword [esp + 0x218], 0
jle 0x484a27
mov ecx, dword [esp + 0x30]
test edx, edx
mov bp, word [ecx + ebx*2]
je 0x4849fa
test bp, bp
je 0x4849fa
cmp bp, 1
jne 0x48496d
lea edx, [esp + 0x218]
lea eax, [esp + 0x2c]
push edx
lea ecx, [esp + 0x21c]
push eax
push ecx
jmp 0x4849ee
lea esi, [esp + 0xa14]
test edx, edx
mov dword [esp + 0x620], esi
jl 0x484994
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0xa14]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x4849c7
mov ecx, ebp
and ecx, 0xffff
mov edi, dword [esp + 0x30]
xor edx, edx
mov ebp, dword [esi + eax*2]
mov dx, word [edi + eax*2]
imul edx, ecx
add ebp, edx
mov dword [esi + eax*2], ebp
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x620]
inc eax
cmp eax, edx
jl 0x4849a2
cmp word [esi + edx*2], 0
je 0x4849cf
inc edx
lea eax, [esp + 0x218]
mov dword [esp + 0x61c], edx
lea ecx, [esp + 0x61c]
push eax
lea edx, [esp + 0x21c]
push ecx
push edx
call fcn.0048a490
mov edx, dword [esp + 0x38]
add esp, 0xc
mov eax, dword [esp + 0x218]
test eax, eax
jle 0x484a0d
dec eax
mov dword [esp + 0x218], eax
mov esi, dword [esp + 0x21c]
add esi, 2
inc ebx
cmp ebx, edx
mov dword [esp + 0x21c], esi
jl 0x484934
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x5a4]
cmp word [ecx + eax*2 - 2], 0
jne 0x484a3b
dec eax
mov dword [esp + 0x5a0], eax
lea edx, [esp + 0x11c]
lea eax, [esp + 0x5a0]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x484a63
mov dword [esp + 0x11c], eax
lea edx, [esp + 0x2b8]
lea esi, [esp + 0x2b8]
lea ecx, [esp + 0xadfc]
mov dword [esp + 0x1c], esi
test edx, edx
mov dword [esp + 0x2fc], ecx
jne 0x484aa0
lea eax, [esp + 0xaf00]
lea esi, [esp + 0x83c]
mov dword [esp + 0x840], eax
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x11c]
xor edi, edi
cmp eax, edi
jne 0x484abb
mov dword [esp + 0x2f8], edi
mov dword [esi], edi
jmp 0x485cd2
cmp dword [esp + 0x10], 1
jne 0x484aeb
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x484aeb
lea edx, [esp + 0x2f8]
lea eax, [esp + 0x11c]
push edx
push eax
call fcn.0048a2f0
add esp, 8
mov dword [esi], edi
jmp 0x485cd2
lea ecx, [esp + 0x10]
lea edx, [esp + 0x11c]
push ecx
push edx
call fcn.0048a330
add esp, 8
test eax, eax
jge 0x484b21
mov dword [esp + 0x2f8], edi
lea eax, [esp + 0x11c]
push esi
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x485cd2
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ax, word [edx + ecx*2 - 2]
xor ecx, ecx
cmp ax, di
mov dword [esp + 0x18], eax
je 0x484b42
shr ax, 1
inc ecx
cmp ax, di
jne 0x484b39
mov esi, 0x10
lea edx, [esp + 0xa3d4]
sub esi, ecx
lea ecx, [esp + 0x6dd0]
mov dword [esp + 0x24], esi
mov dword [esp + 0x748], ecx
mov dword [esp + 0x164], edx
jne 0x484b97
lea eax, [esp + 0x744]
lea ecx, [esp + 0x11c]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x168]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.0048a2f0
add esp, 0x10
jmp 0x484bc3
lea ecx, [esp + 0x744]
push esi
lea edx, [esp + 0x120]
push ecx
push edx
call fcn.0048a380
lea eax, [esp + 0x16c]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.0048a380
add esp, 0x18
mov eax, dword [esp + 0x744]
mov edx, dword [esp + 0x160]
mov esi, dword [esp + 0x2fc]
sub eax, edx
mov ebx, eax
mov edi, 2
lea ecx, [eax + 1]
mov eax, edx
mov edx, dword [esp + 0x748]
mov dword [esp + 0x2f8], ecx
lea esi, [esi + ecx*2 - 2]
mov dword [esp + 0x5c], eax
lea ecx, [edx + ebx*2]
mov dword [esp + 0x60], ecx
test eax, eax
jne 0x484c13
mov word [esi], ax
mov dword [esp + 0x5c], eax
jmp 0x484e8f
cmp dword [esp + 0x160], 1
jne 0x484cac
cmp eax, 1
jne 0x484c68
mov edx, dword [esp + 0x60]
xor eax, eax
xor ecx, ecx
mov ax, word [edx]
mov edx, dword [esp + 0x164]
mov cx, word [edx]
cdq
idiv ecx
xor edx, edx
mov word [esi], ax
mov ecx, dword [esp + 0x164]
imul ax, word [ecx]
mov ecx, dword [esp + 0x60]
sub word [ecx], ax
mov eax, dword [esp + 0x60]
cmp word [eax], dx
setne dl
mov dword [esp + 0x5c], edx
jmp 0x484e8f
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x164]
xor ebp, ebp
mov ecx, dword [ecx]
mov bp, word [edx]
mov eax, ecx
xor edx, edx
div ebp
mov word [esi], ax
mov edx, dword [esp + 0x164]
imul ax, word [edx]
sub ecx, eax
mov eax, dword [esp + 0x60]
mov word [eax], cx
mov edx, dword [esp + 0x60]
xor ecx, ecx
cmp word [edx], cx
setne cl
mov dword [esp + 0x5c], ecx
jmp 0x484e8f
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x5c]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x168]
lea eax, [esp + 0x64]
push edx
push eax
call fcn.0048a330
add esp, 0x10
test eax, eax
jge 0x484cde
mov word [esi], 0
jmp 0x484e8f
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x160]
cmp eax, ecx
jne 0x484d10
mov ebp, dword [esp + 0x164]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ebp, dword [esp + 0x60]
mov ecx, edx
xor edx, edx
mov dx, word [ebp + eax*2 - 2]
inc ecx
mov eax, edx
cdq
idiv ecx
jmp 0x484d2d
mov edx, dword [esp + 0x60]
mov ebp, dword [esp + 0x164]
mov eax, dword [edx + eax*2 - 4]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ecx, edx
xor edx, edx
inc ecx
div ecx
lea edx, [esp + 0x72f0]
mov word [esi], ax
mov dword [esp + 0x474], edx
mov edx, dword [esp + 0x160]
mov dword [esp + 0x470], 0
mov ax, word [esi]
test edx, edx
mov dword [esp + 0x18], eax
je 0x484e2c
test ax, ax
je 0x484e2c
cmp ax, 1
jne 0x484d93
lea eax, [esp + 0x470]
lea ecx, [esp + 0x160]
push eax
lea edx, [esp + 0x474]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
jmp 0x484e2c
lea ebp, [esp + 0xd20]
test edx, edx
mov dword [esp + 0x49c], ebp
jl 0x484dba
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0xd20]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x484df7
mov ecx, dword [esp + 0x18]
and ecx, 0xffff
mov edi, dword [esp + 0x164]
xor edx, edx
mov dx, word [edi + eax*2]
mov edi, dword [ebp + eax*2]
imul edx, ecx
add edi, edx
mov dword [ebp + eax*2], edi
mov edx, dword [esp + 0x160]
mov ebp, dword [esp + 0x49c]
inc eax
cmp eax, edx
jl 0x484dca
cmp word [ebp + edx*2], 0
je 0x484e00
inc edx
lea eax, [esp + 0x470]
mov dword [esp + 0x498], edx
lea ecx, [esp + 0x498]
push eax
lea edx, [esp + 0x474]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
mov edi, 2
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x470]
push eax
lea edx, [esp + 0x60]
push ecx
push edx
call fcn.0048a590
lea eax, [esp + 0x16c]
lea ecx, [esp + 0x68]
push eax
push ecx
call fcn.0048a330
add esp, 0x14
test eax, eax
jl 0x484e8f
lea edx, [esp + 0x5c]
lea eax, [esp + 0x160]
push edx
lea ecx, [esp + 0x60]
push eax
push ecx
call fcn.0048a590
inc word [esi]
lea edx, [esp + 0x16c]
lea eax, [esp + 0x68]
push edx
push eax
call fcn.0048a330
add esp, 0x14
test eax, eax
jge 0x484e5c
test ebx, ebx
je 0x484ee2
mov eax, dword [esp + 0x5c]
mov ebp, dword [esp + 0x60]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
test ebx, ebx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], ebp
jle 0x484c03
cmp eax, dword [esp + 0x160]
jge 0x484c03
mov word [esi], 0
mov eax, dword [esp + 0x5c]
mov ebp, dword [esp + 0x60]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
mov dword [esp + 0x5c], eax
test ebx, ebx
mov dword [esp + 0x60], ebp
jg 0x484eb1
jmp 0x484c03
mov eax, dword [esp + 0x2f8]
test eax, eax
jle 0x484f04
mov ecx, dword [esp + 0x2fc]
cmp word [ecx + eax*2 - 2], 0
jne 0x484f04
dec eax
mov dword [esp + 0x2f8], eax
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x484f23
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x5c]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x485cd2
mov ecx, dword [esp + 0x1c]
push eax
push ecx
lea edx, [esp + 0x64]
jmp 0x485cc9
cmp al, 3
jne 0x485cd2
mov edx, dword [esp + 0x2c]
xor eax, eax
cmp edx, eax
je 0x4850c3
lea ecx, [esp + 0xf28]
mov dword [esp + 0x4bc], ecx
lea ecx, [edx + edx]
cmp ecx, eax
mov dword [esp + 0x24], ecx
jle 0x484f78
mov edx, dword [esp + 0x4bc]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x484f61
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0xf28]
xor ebx, ebx
test edx, edx
mov dword [esp + 0x22c], eax
mov dword [esp + 0x228], 0
jle 0x48508e
mov ecx, dword [esp + 0x30]
test edx, edx
mov bp, word [ecx + ebx*2]
je 0x485061
test bp, bp
je 0x485061
cmp bp, 1
jne 0x484fd4
lea edx, [esp + 0x228]
lea eax, [esp + 0x2c]
push edx
lea ecx, [esp + 0x22c]
push eax
push ecx
jmp 0x485055
lea esi, [esp + 0x1130]
test edx, edx
mov dword [esp + 0x4ac], esi
jl 0x484ffb
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x1130]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x48502e
mov ecx, ebp
and ecx, 0xffff
mov edi, dword [esp + 0x30]
xor edx, edx
mov ebp, dword [esi + eax*2]
mov dx, word [edi + eax*2]
imul edx, ecx
add ebp, edx
mov dword [esi + eax*2], ebp
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x4ac]
inc eax
cmp eax, edx
jl 0x485009
cmp word [esi + edx*2], 0
je 0x485036
inc edx
lea eax, [esp + 0x228]
mov dword [esp + 0x4a8], edx
lea ecx, [esp + 0x4a8]
push eax
lea edx, [esp + 0x22c]
push ecx
push edx
call fcn.0048a490
mov edx, dword [esp + 0x38]
add esp, 0xc
mov eax, dword [esp + 0x228]
test eax, eax
jle 0x485074
dec eax
mov dword [esp + 0x228], eax
mov esi, dword [esp + 0x22c]
add esi, 2
inc ebx
cmp ebx, edx
mov dword [esp + 0x22c], esi
jl 0x484f9b
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x4bc]
cmp word [ecx + eax*2 - 2], 0
jne 0x4850a2
dec eax
mov dword [esp + 0x4b8], eax
lea edx, [esp + 0x11c]
lea eax, [esp + 0x4b8]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x4850ca
mov dword [esp + 0x11c], eax
lea edx, [esp + 0x11c]
lea esi, [esp + 0x11c]
lea ecx, [esp + 0xb108]
mov dword [esp + 0x1c], esi
test edx, edx
mov dword [esp + 0x30c], ecx
jne 0x485107
lea eax, [esp + 0xb20c]
lea esi, [esp + 0x7fc]
mov dword [esp + 0x800], eax
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x11c]
xor edi, edi
cmp eax, edi
jne 0x485122
mov dword [esp + 0x308], edi
mov dword [esi], edi
jmp 0x4855fd
cmp dword [esp + 0x10], 1
jne 0x485152
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x485152
lea edx, [esp + 0x308]
lea eax, [esp + 0x11c]
push edx
push eax
call fcn.0048a2f0
add esp, 8
mov dword [esi], edi
jmp 0x4855fd
lea ecx, [esp + 0x10]
lea edx, [esp + 0x11c]
push ecx
push edx
call fcn.0048a330
add esp, 8
test eax, eax
jge 0x485188
lea eax, [esp + 0x11c]
push esi
push eax
mov dword [esp + 0x310], edi
call fcn.0048a2f0
add esp, 8
jmp 0x4855fd
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ax, word [edx + ecx*2 - 2]
xor ecx, ecx
cmp ax, di
mov dword [esp + 0x18], eax
je 0x4851a9
shr ax, 1
inc ecx
cmp ax, di
jne 0x4851a0
mov esi, 0x10
lea edx, [esp + 0xc24c]
sub esi, ecx
lea ecx, [esp + 0x6fdc]
mov dword [esp + 0x24], esi
mov dword [esp + 0x6b8], ecx
mov dword [esp + 0x174], edx
jne 0x4851fe
lea eax, [esp + 0x6b4]
lea ecx, [esp + 0x11c]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x178]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.0048a2f0
add esp, 0x10
jmp 0x48522a
lea ecx, [esp + 0x6b4]
push esi
lea edx, [esp + 0x120]
push ecx
push edx
call fcn.0048a380
lea eax, [esp + 0x17c]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.0048a380
add esp, 0x18
mov eax, dword [esp + 0x6b4]
mov edx, dword [esp + 0x170]
mov esi, dword [esp + 0x30c]
sub eax, edx
mov ebx, eax
mov edi, 2
lea ecx, [eax + 1]
mov eax, edx
mov edx, dword [esp + 0x6b8]
mov dword [esp + 0x308], ecx
lea esi, [esi + ecx*2 - 2]
mov dword [esp + 0x84], eax
lea ecx, [edx + ebx*2]
mov dword [esp + 0x88], ecx
test eax, eax
jne 0x485283
mov word [esi], ax
mov dword [esp + 0x84], eax
jmp 0x48553b
cmp dword [esp + 0x170], 1
jne 0x485334
cmp eax, 1
jne 0x4852e4
mov edx, dword [esp + 0x88]
xor eax, eax
xor ecx, ecx
mov ax, word [edx]
mov edx, dword [esp + 0x174]
mov cx, word [edx]
cdq
idiv ecx
xor edx, edx
mov word [esi], ax
mov ecx, dword [esp + 0x174]
imul ax, word [ecx]
mov ecx, dword [esp + 0x88]
sub word [ecx], ax
mov eax, dword [esp + 0x88]
cmp word [eax], dx
setne dl
mov dword [esp + 0x84], edx
jmp 0x48553b
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x174]
xor ebp, ebp
mov ecx, dword [ecx]
mov bp, word [edx]
mov eax, ecx
xor edx, edx
div ebp
mov word [esi], ax
mov edx, dword [esp + 0x174]
imul ax, word [edx]
sub ecx, eax
mov eax, dword [esp + 0x88]
mov word [eax], cx
mov edx, dword [esp + 0x88]
xor ecx, ecx
cmp word [edx], cx
setne cl
mov dword [esp + 0x84], ecx
jmp 0x48553b
lea eax, [esp + 0x84]
lea ecx, [esp + 0x84]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x178]
lea eax, [esp + 0x8c]
push edx
push eax
call fcn.0048a330
add esp, 0x10
test eax, eax
jge 0x48536f
mov word [esi], 0
jmp 0x48553b
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x170]
cmp eax, ecx
jne 0x4853a7
mov ebp, dword [esp + 0x174]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ebp, dword [esp + 0x88]
mov ecx, edx
xor edx, edx
mov dx, word [ebp + eax*2 - 2]
inc ecx
mov eax, edx
cdq
idiv ecx
jmp 0x4853c7
mov edx, dword [esp + 0x88]
mov ebp, dword [esp + 0x174]
mov eax, dword [edx + eax*2 - 4]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ecx, edx
xor edx, edx
inc ecx
div ecx
lea edx, [esp + 0x74fc]
mov word [esi], ax
mov dword [esp + 0x3d4], edx
mov edx, dword [esp + 0x170]
mov dword [esp + 0x3d0], 0
mov ax, word [esi]
test edx, edx
mov dword [esp + 0x18], eax
je 0x4854c6
test ax, ax
je 0x4854c6
cmp ax, 1
jne 0x48542d
lea eax, [esp + 0x3d0]
lea ecx, [esp + 0x170]
push eax
lea edx, [esp + 0x3d4]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
jmp 0x4854c6
lea ebp, [esp + 0x1338]
test edx, edx
mov dword [esp + 0x4cc], ebp
jl 0x485454
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x1338]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x485491
mov ecx, dword [esp + 0x18]
and ecx, 0xffff
mov edi, dword [esp + 0x174]
xor edx, edx
mov dx, word [edi + eax*2]
mov edi, dword [ebp + eax*2]
imul edx, ecx
add edi, edx
mov dword [ebp + eax*2], edi
mov edx, dword [esp + 0x170]
mov ebp, dword [esp + 0x4cc]
inc eax
cmp eax, edx
jl 0x485464
cmp word [ebp + edx*2], 0
je 0x48549a
inc edx
lea eax, [esp + 0x3d0]
mov dword [esp + 0x4c8], edx
lea ecx, [esp + 0x4c8]
push eax
lea edx, [esp + 0x3d4]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
mov edi, 2
lea eax, [esp + 0x84]
lea ecx, [esp + 0x3d0]
push eax
lea edx, [esp + 0x88]
push ecx
push edx
call fcn.0048a590
lea eax, [esp + 0x17c]
lea ecx, [esp + 0x90]
push eax
push ecx
call fcn.0048a330
add esp, 0x14
test eax, eax
jl 0x48553b
lea edx, [esp + 0x84]
lea eax, [esp + 0x170]
push edx
lea ecx, [esp + 0x88]
push eax
push ecx
call fcn.0048a590
inc word [esi]
lea edx, [esp + 0x17c]
lea eax, [esp + 0x90]
push edx
push eax
call fcn.0048a330
add esp, 0x14
test eax, eax
jge 0x4854ff
test ebx, ebx
je 0x4855a6
mov eax, dword [esp + 0x84]
mov ebp, dword [esp + 0x88]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
test ebx, ebx
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], ebp
jle 0x485270
cmp eax, dword [esp + 0x170]
jge 0x485270
mov word [esi], 0
mov eax, dword [esp + 0x84]
mov ebp, dword [esp + 0x88]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
mov dword [esp + 0x84], eax
test ebx, ebx
mov dword [esp + 0x88], ebp
jg 0x485569
jmp 0x485270
mov eax, dword [esp + 0x308]
test eax, eax
jle 0x4855c8
mov ecx, dword [esp + 0x30c]
cmp word [ecx + eax*2 - 2], 0
jne 0x4855c8
dec eax
mov dword [esp + 0x308], eax
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x4855e7
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x84]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x4855fd
mov ecx, dword [esp + 0x1c]
push eax
lea edx, [esp + 0x88]
push ecx
push edx
call fcn.0048a400
add esp, 0xc
mov edx, dword [esp + 0x11c]
xor eax, eax
cmp edx, eax
je 0x4857b9
mov ecx, dword [esp + 0x2c]
cmp ecx, eax
je 0x4857b9
lea esi, [esp + 0x1540]
mov dword [esp + 0x4ec], esi
lea esi, [ecx + edx]
cmp esi, eax
mov dword [esp + 0x1c], esi
jle 0x485653
mov ecx, esi
mov edx, dword [esp + 0x4ec]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x485635
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x11c]
cmp edx, ecx
jl 0x485664
lea esi, [esp + 0x11c]
lea ebp, [esp + 0x2c]
jmp 0x48566f
lea esi, [esp + 0x2c]
lea ebp, [esp + 0x11c]
lea eax, [esp + 0x1540]
xor ebx, ebx
mov dword [esp + 0x23c], eax
mov dword [esp + 0x238], ebx
mov eax, dword [ebp]
mov dword [esp + 0x24], ebp
cmp eax, ebx
jle 0x485784
mov ecx, dword [ebp + 4]
mov eax, dword [esi]
test eax, eax
mov di, word [ecx + ebx*2]
je 0x485754
test di, di
je 0x485754
cmp di, 1
jne 0x4856c3
lea edx, [esp + 0x238]
push edx
push esi
jmp 0x485744
lea edx, [esp + 0x1748]
xor eax, eax
mov dword [esp + 0x4dc], edx
mov ecx, dword [esi]
test ecx, ecx
jl 0x4856ed
lea ecx, [esp + 0x1748]
mov word [ecx], 0
inc eax
add ecx, 2
cmp eax, dword [esi]
jle 0x4856e0
mov ecx, dword [esi]
xor eax, eax
test ecx, ecx
jle 0x485723
mov ecx, edi
and ecx, 0xffff
mov edi, dword [esi + 4]
xor ebp, ebp
mov bp, word [edi + eax*2]
mov edi, dword [edx + eax*2]
imul ebp, ecx
add edi, ebp
mov dword [edx + eax*2], edi
mov edx, dword [esi]
inc eax
cmp eax, edx
mov edx, dword [esp + 0x4dc]
jl 0x4856fd
mov ebp, dword [esp + 0x24]
mov eax, dword [esi]
cmp word [edx + eax*2], 0
je 0x48572d
inc eax
lea ecx, [esp + 0x238]
lea edx, [esp + 0x4d8]
push ecx
mov dword [esp + 0x4dc], eax
push edx
lea eax, [esp + 0x240]
push eax
call fcn.0048a490
add esp, 0xc
mov eax, dword [esp + 0x238]
test eax, eax
jle 0x485767
dec eax
mov dword [esp + 0x238], eax
mov edx, dword [esp + 0x23c]
add edx, 2
inc ebx
mov dword [esp + 0x23c], edx
mov eax, dword [ebp]
cmp ebx, eax
jl 0x485695
mov ecx, dword [esp + 0x4ec]
mov eax, dword [esp + 0x1c]
cmp word [ecx + eax*2 - 2], 0
jne 0x485798
dec eax
mov dword [esp + 0x4e8], eax
lea edx, [esp + 0x11c]
lea eax, [esp + 0x4e8]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x4857c0
mov dword [esp + 0x11c], eax
lea edx, [esp + 0x2c0]
lea esi, [esp + 0x2c0]
lea ecx, [esp + 0xb414]
mov dword [esp + 0x1c], esi
test edx, edx
mov dword [esp + 0x31c], ecx
jne 0x4857fd
lea eax, [esp + 0xb518]
lea esi, [esp + 0x84c]
mov dword [esp + 0x850], eax
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x11c]
xor edi, edi
cmp eax, edi
jne 0x485818
mov dword [esp + 0x318], edi
mov dword [esi], edi
jmp 0x485cd2
cmp dword [esp + 0x10], 1
jne 0x485835
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x485835
lea edx, [esp + 0x318]
jmp 0x484ad3
lea ecx, [esp + 0x10]
lea edx, [esp + 0x11c]
push ecx
push edx
call fcn.0048a330
add esp, 8
test eax, eax
jge 0x48585a
mov dword [esp + 0x318], edi
jmp 0x484b0b
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ax, word [edx + ecx*2 - 2]
xor ecx, ecx
cmp ax, di
mov dword [esp + 0x18], eax
je 0x48587b
shr ax, 1
inc ecx
cmp ax, di
jne 0x485872
mov esi, 0x10
lea edx, [esp + 0xa6e0]
sub esi, ecx
lea ecx, [esp + 0x71e8]
mov dword [esp + 0x24], esi
mov dword [esp + 0x6c0], ecx
mov dword [esp + 0x184], edx
jne 0x4858d0
lea eax, [esp + 0x6bc]
lea ecx, [esp + 0x11c]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x188]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.0048a2f0
add esp, 0x10
jmp 0x4858fc
lea ecx, [esp + 0x6bc]
push esi
lea edx, [esp + 0x120]
push ecx
push edx
call fcn.0048a380
lea eax, [esp + 0x18c]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.0048a380
add esp, 0x18
mov eax, dword [esp + 0x6bc]
mov edx, dword [esp + 0x180]
mov esi, dword [esp + 0x31c]
sub eax, edx
mov ebx, eax
mov edi, 2
lea ecx, [eax + 1]
mov eax, edx
mov edx, dword [esp + 0x6c0]
mov dword [esp + 0x318], ecx
lea esi, [esi + ecx*2 - 2]
mov dword [esp + 0x94], eax
lea ecx, [edx + ebx*2]
mov dword [esp + 0x98], ecx
test eax, eax
jne 0x485955
mov word [esi], ax
mov dword [esp + 0x94], eax
jmp 0x485c10
cmp dword [esp + 0x180], 1
jne 0x485a09
cmp eax, 1
jne 0x4859b6
mov edx, dword [esp + 0x98]
xor eax, eax
xor ecx, ecx
mov ax, word [edx]
mov edx, dword [esp + 0x184]
mov cx, word [edx]
cdq
idiv ecx
xor edx, edx
mov word [esi], ax
mov ecx, dword [esp + 0x184]
imul ax, word [ecx]
mov ecx, dword [esp + 0x98]
sub word [ecx], ax
mov eax, dword [esp + 0x98]
cmp word [eax], dx
setne dl
mov dword [esp + 0x94], edx
jmp 0x485c10
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x184]
xor ebp, ebp
mov ecx, dword [ecx]
mov bp, word [edx]
mov eax, ecx
xor edx, edx
div ebp
mov word [esi], ax
mov edx, dword [esp + 0x184]
mov dx, word [edx]
imul dx, ax
mov eax, dword [esp + 0x98]
sub ecx, edx
mov word [eax], cx
mov edx, dword [esp + 0x98]
xor ecx, ecx
cmp word [edx], cx
setne cl
mov dword [esp + 0x94], ecx
jmp 0x485c10
lea eax, [esp + 0x94]
lea ecx, [esp + 0x94]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x188]
lea eax, [esp + 0x9c]
push edx
push eax
call fcn.0048a330
add esp, 0x10
test eax, eax
jge 0x485a44
mov word [esi], 0
jmp 0x485c10
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x180]
cmp eax, ecx
jne 0x485a7c
mov ebp, dword [esp + 0x184]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ebp, dword [esp + 0x98]
mov ecx, edx
xor edx, edx
mov dx, word [ebp + eax*2 - 2]
inc ecx
mov eax, edx
cdq
idiv ecx
jmp 0x485a9c
mov edx, dword [esp + 0x98]
mov ebp, dword [esp + 0x184]
mov eax, dword [edx + eax*2 - 4]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ecx, edx
xor edx, edx
inc ecx
div ecx
lea edx, [esp + 0x7708]
mov word [esi], ax
mov dword [esp + 0x3dc], edx
mov edx, dword [esp + 0x180]
mov dword [esp + 0x3d8], 0
mov ax, word [esi]
test edx, edx
mov dword [esp + 0x18], eax
je 0x485b9b
test ax, ax
je 0x485b9b
cmp ax, 1
jne 0x485b02
lea eax, [esp + 0x3d8]
lea ecx, [esp + 0x180]
push eax
lea edx, [esp + 0x3dc]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
jmp 0x485b9b
lea ebp, [esp + 0x1950]
test edx, edx
mov dword [esp + 0x4fc], ebp
jl 0x485b29
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x1950]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x485b66
mov ecx, dword [esp + 0x18]
and ecx, 0xffff
mov edi, dword [esp + 0x184]
xor edx, edx
mov dx, word [edi + eax*2]
mov edi, dword [ebp + eax*2]
imul edx, ecx
add edi, edx
mov dword [ebp + eax*2], edi
mov edx, dword [esp + 0x180]
mov ebp, dword [esp + 0x4fc]
inc eax
cmp eax, edx
jl 0x485b39
cmp word [ebp + edx*2], 0
je 0x485b6f
inc edx
lea eax, [esp + 0x3d8]
mov dword [esp + 0x4f8], edx
lea ecx, [esp + 0x4f8]
push eax
lea edx, [esp + 0x3dc]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
mov edi, 2
lea eax, [esp + 0x94]
lea ecx, [esp + 0x3d8]
push eax
lea edx, [esp + 0x98]
push ecx
push edx
call fcn.0048a590
lea eax, [esp + 0x18c]
lea ecx, [esp + 0xa0]
push eax
push ecx
call fcn.0048a330
add esp, 0x14
test eax, eax
jl 0x485c10
lea edx, [esp + 0x94]
lea eax, [esp + 0x180]
push edx
lea ecx, [esp + 0x98]
push eax
push ecx
call fcn.0048a590
inc word [esi]
lea edx, [esp + 0x18c]
lea eax, [esp + 0xa0]
push edx
push eax
call fcn.0048a330
add esp, 0x14
test eax, eax
jge 0x485bd4
test ebx, ebx
je 0x485c7b
mov eax, dword [esp + 0x94]
mov ebp, dword [esp + 0x98]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
test ebx, ebx
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], ebp
jle 0x485942
cmp eax, dword [esp + 0x180]
jge 0x485942
mov word [esi], 0
mov eax, dword [esp + 0x94]
mov ebp, dword [esp + 0x98]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
mov dword [esp + 0x94], eax
test ebx, ebx
mov dword [esp + 0x98], ebp
jg 0x485c3e
jmp 0x485942
mov eax, dword [esp + 0x318]
test eax, eax
jle 0x485c9d
mov ecx, dword [esp + 0x31c]
cmp word [ecx + eax*2 - 2], 0
jne 0x485c9d
dec eax
mov dword [esp + 0x318], eax
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x485cbc
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x94]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x485cd2
mov ecx, dword [esp + 0x1c]
push eax
push ecx
lea edx, [esp + 0x9c]
push edx
call fcn.0048a400
add esp, 0xc
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x4c]
push eax
push ecx
call fcn.0048a2f0
add esp, 8
mov dword [esp + 0x28], 2
mov edx, dword [esp + 0x4c]
xor eax, eax
cmp edx, eax
je 0x485e72
lea ecx, [esp + 0x1b58]
mov dword [esp + 0x51c], ecx
lea ecx, [edx + edx]
cmp ecx, eax
mov dword [esp + 0x24], ecx
jle 0x485d2a
mov edx, dword [esp + 0x51c]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x485d13
mov edx, dword [esp + 0x4c]
lea eax, [esp + 0x1b58]
xor ebx, ebx
test edx, edx
mov dword [esp + 0x24c], eax
mov dword [esp + 0x248], 0
jle 0x485e40
mov ecx, dword [esp + 0x50]
test edx, edx
mov bp, word [ecx + ebx*2]
je 0x485e13
test bp, bp
je 0x485e13
cmp bp, 1
jne 0x485d86
lea edx, [esp + 0x248]
lea eax, [esp + 0x4c]
push edx
lea ecx, [esp + 0x24c]
push eax
push ecx
jmp 0x485e07
lea esi, [esp + 0x1d60]
test edx, edx
mov dword [esp + 0x50c], esi
jl 0x485dad
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x1d60]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x485de0
mov ecx, ebp
and ecx, 0xffff
mov edi, dword [esp + 0x50]
xor edx, edx
mov ebp, dword [esi + eax*2]
mov dx, word [edi + eax*2]
imul edx, ecx
add ebp, edx
mov dword [esi + eax*2], ebp
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x50c]
inc eax
cmp eax, edx
jl 0x485dbb
cmp word [esi + edx*2], 0
je 0x485de8
inc edx
lea eax, [esp + 0x248]
mov dword [esp + 0x508], edx
lea ecx, [esp + 0x508]
push eax
lea edx, [esp + 0x24c]
push ecx
push edx
call fcn.0048a490
mov edx, dword [esp + 0x58]
add esp, 0xc
mov eax, dword [esp + 0x248]
test eax, eax
jle 0x485e26
dec eax
mov dword [esp + 0x248], eax
mov esi, dword [esp + 0x24c]
add esi, 2
inc ebx
cmp ebx, edx
mov dword [esp + 0x24c], esi
jl 0x485d4d
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x51c]
cmp word [ecx + eax*2 - 2], 0
jne 0x485e54
dec eax
mov dword [esp + 0x518], eax
lea edx, [esp + 0x4c]
lea eax, [esp + 0x518]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x485e76
mov dword [esp + 0x4c], eax
lea edx, [esp + 0x4c]
lea esi, [esp + 0x4c]
lea ecx, [esp + 0xb720]
mov dword [esp + 0x1c], esi
test edx, edx
mov dword [esp + 0x32c], ecx
jne 0x485ead
lea eax, [esp + 0xb824]
lea esi, [esp + 0x80c]
mov dword [esp + 0x810], eax
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x4c]
xor edi, edi
cmp eax, edi
jne 0x485ec5
mov dword [esp + 0x328], edi
mov dword [esi], edi
jmp 0x486397
cmp dword [esp + 0x10], 1
jne 0x485ef2
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x485ef2
lea edx, [esp + 0x328]
lea eax, [esp + 0x4c]
push edx
push eax
call fcn.0048a2f0
add esp, 8
mov dword [esi], edi
jmp 0x486397
lea ecx, [esp + 0x10]
lea edx, [esp + 0x4c]
push ecx
push edx
call fcn.0048a330
add esp, 8
test eax, eax
jge 0x485f22
lea eax, [esp + 0x4c]
push esi
push eax
mov dword [esp + 0x330], edi
call fcn.0048a2f0
add esp, 8
jmp 0x486397
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ax, word [edx + ecx*2 - 2]
xor ecx, ecx
cmp ax, di
mov dword [esp + 0x18], eax
je 0x485f43
shr ax, 1
inc ecx
cmp ax, di
jne 0x485f3a
mov esi, 0x10
lea edx, [esp + 0xd188]
sub esi, ecx
lea ecx, [esp + 0x73f4]
mov dword [esp + 0x24], esi
mov dword [esp + 0x6d0], ecx
mov dword [esp + 0x194], edx
jne 0x485f95
lea eax, [esp + 0x6cc]
lea ecx, [esp + 0x4c]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x198]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.0048a2f0
add esp, 0x10
jmp 0x485fbe
lea ecx, [esp + 0x6cc]
push esi
lea edx, [esp + 0x50]
push ecx
push edx
call fcn.0048a380
lea eax, [esp + 0x19c]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.0048a380
add esp, 0x18
mov eax, dword [esp + 0x6cc]
mov edx, dword [esp + 0x190]
mov esi, dword [esp + 0x32c]
sub eax, edx
mov ebx, eax
mov edi, 2
lea ecx, [eax + 1]
mov eax, edx
mov edx, dword [esp + 0x6d0]
mov dword [esp + 0x328], ecx
lea esi, [esi + ecx*2 - 2]
mov dword [esp + 0xa4], eax
lea ecx, [edx + ebx*2]
mov dword [esp + 0xa8], ecx
test eax, eax
jne 0x486017
mov word [esi], ax
mov dword [esp + 0xa4], eax
jmp 0x4862d5
cmp dword [esp + 0x190], 1
jne 0x4860ce
cmp eax, 1
jne 0x48607b
mov edx, dword [esp + 0xa8]
xor eax, eax
xor ecx, ecx
mov ax, word [edx]
mov edx, dword [esp + 0x194]
mov cx, word [edx]
cdq
idiv ecx
mov word [esi], ax
mov ecx, dword [esp + 0x194]
mov dx, word [ecx]
imul dx, ax
mov eax, dword [esp + 0xa8]
sub word [eax], dx
mov ecx, dword [esp + 0xa8]
xor eax, eax
cmp word [ecx], ax
setne al
mov dword [esp + 0xa4], eax
jmp 0x4862d5
mov edx, dword [esp + 0xa8]
mov eax, dword [esp + 0x194]
xor ebp, ebp
mov ecx, dword [edx]
mov bp, word [eax]
mov eax, ecx
xor edx, edx
div ebp
mov word [esi], ax
mov edx, dword [esp + 0x194]
mov dx, word [edx]
imul dx, ax
mov eax, dword [esp + 0xa8]
sub ecx, edx
mov word [eax], cx
mov edx, dword [esp + 0xa8]
xor ecx, ecx
cmp word [edx], cx
setne cl
mov dword [esp + 0xa4], ecx
jmp 0x4862d5
lea eax, [esp + 0xa4]
lea ecx, [esp + 0xa4]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x198]
lea eax, [esp + 0xac]
push edx
push eax
call fcn.0048a330
add esp, 0x10
test eax, eax
jge 0x486109
mov word [esi], 0
jmp 0x4862d5
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0x190]
cmp eax, ecx
jne 0x486141
mov ebp, dword [esp + 0x194]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ebp, dword [esp + 0xa8]
mov ecx, edx
xor edx, edx
mov dx, word [ebp + eax*2 - 2]
inc ecx
mov eax, edx
cdq
idiv ecx
jmp 0x486161
mov edx, dword [esp + 0xa8]
mov ebp, dword [esp + 0x194]
mov eax, dword [edx + eax*2 - 4]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ecx, edx
xor edx, edx
inc ecx
div ecx
lea edx, [esp + 0x7914]
mov word [esi], ax
mov dword [esp + 0x3ec], edx
mov edx, dword [esp + 0x190]
mov dword [esp + 0x3e8], 0
mov ax, word [esi]
test edx, edx
mov dword [esp + 0x18], eax
je 0x486260
test ax, ax
je 0x486260
cmp ax, 1
jne 0x4861c7
lea eax, [esp + 0x3e8]
lea ecx, [esp + 0x190]
push eax
lea edx, [esp + 0x3ec]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
jmp 0x486260
lea ebp, [esp + 0x1f68]
test edx, edx
mov dword [esp + 0x52c], ebp
jl 0x4861ee
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x1f68]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x48622b
mov ecx, dword [esp + 0x18]
and ecx, 0xffff
mov edi, dword [esp + 0x194]
xor edx, edx
mov dx, word [edi + eax*2]
mov edi, dword [ebp + eax*2]
imul edx, ecx
add edi, edx
mov dword [ebp + eax*2], edi
mov edx, dword [esp + 0x190]
mov ebp, dword [esp + 0x52c]
inc eax
cmp eax, edx
jl 0x4861fe
cmp word [ebp + edx*2], 0
je 0x486234
inc edx
lea eax, [esp + 0x3e8]
mov dword [esp + 0x528], edx
lea ecx, [esp + 0x528]
push eax
lea edx, [esp + 0x3ec]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
mov edi, 2
lea eax, [esp + 0xa4]
lea ecx, [esp + 0x3e8]
push eax
lea edx, [esp + 0xa8]
push ecx
push edx
call fcn.0048a590
lea eax, [esp + 0x19c]
lea ecx, [esp + 0xb0]
push eax
push ecx
call fcn.0048a330
add esp, 0x14
test eax, eax
jl 0x4862d5
lea edx, [esp + 0xa4]
lea eax, [esp + 0x190]
push edx
lea ecx, [esp + 0xa8]
push eax
push ecx
call fcn.0048a590
inc word [esi]
lea edx, [esp + 0x19c]
lea eax, [esp + 0xb0]
push edx
push eax
call fcn.0048a330
add esp, 0x14
test eax, eax
jge 0x486299
test ebx, ebx
je 0x486340
mov eax, dword [esp + 0xa4]
mov ebp, dword [esp + 0xa8]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
test ebx, ebx
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], ebp
jle 0x486004
cmp eax, dword [esp + 0x190]
jge 0x486004
mov word [esi], 0
mov eax, dword [esp + 0xa4]
mov ebp, dword [esp + 0xa8]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
mov dword [esp + 0xa4], eax
test ebx, ebx
mov dword [esp + 0xa8], ebp
jg 0x486303
jmp 0x486004
mov eax, dword [esp + 0x328]
test eax, eax
jle 0x486362
mov ecx, dword [esp + 0x32c]
cmp word [ecx + eax*2 - 2], 0
jne 0x486362
dec eax
mov dword [esp + 0x328], eax
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x486381
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0xa4]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x486397
mov ecx, dword [esp + 0x1c]
push eax
lea edx, [esp + 0xa8]
push ecx
push edx
call fcn.0048a400
add esp, 0xc
mov eax, dword [esp + 0x28]
dec eax
mov dword [esp + 0x28], eax
jne 0x485cec
mov al, byte [esp + 0x3b0]
test al, al
je 0x488478
mov eax, dword [esp + 0x3b0]
and eax, 0xff
mov ecx, dword [esp + eax*8 + 0x2a8]
lea eax, [esp + eax*8 + 0x2a8]
test ecx, ecx
mov dword [esp + 0x28], eax
jne 0x487d91
mov al, byte [esp + 0x3b0]
cmp al, 1
jne 0x486910
lea edx, [esp + 0x2b0]
lea esi, [esp + 0x2b0]
lea ecx, [esp + 0xba2c]
mov dword [esp + 0x1c], esi
test edx, edx
mov dword [esp + 0x33c], ecx
jne 0x486427
lea eax, [esp + 0xbb30]
lea esi, [esp + 0x7a4]
mov dword [esp + 0x7a8], eax
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x2c]
xor edi, edi
cmp eax, edi
jne 0x48643f
mov dword [esp + 0x338], edi
mov dword [esi], edi
jmp 0x487d91
cmp dword [esp + 0x10], 1
jne 0x48646c
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x48646c
lea edx, [esp + 0x338]
lea eax, [esp + 0x2c]
push edx
push eax
call fcn.0048a2f0
add esp, 8
mov dword [esi], edi
jmp 0x487d91
lea ecx, [esp + 0x10]
lea edx, [esp + 0x2c]
push ecx
push edx
call fcn.0048a330
add esp, 8
test eax, eax
jge 0x48649c
lea eax, [esp + 0x2c]
push esi
push eax
mov dword [esp + 0x340], edi
call fcn.0048a2f0
add esp, 8
jmp 0x487d91
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ax, word [edx + ecx*2 - 2]
xor ecx, ecx
cmp ax, di
mov dword [esp + 0x18], eax
je 0x4864bd
shr ax, 1
inc ecx
cmp ax, di
jne 0x4864b4
mov esi, 0x10
lea edx, [esp + 0xa9ec]
sub esi, ecx
lea ecx, [esp + 0x7600]
mov dword [esp + 0x24], esi
mov dword [esp + 0x6e0], ecx
mov dword [esp + 0x1a4], edx
jne 0x48650f
lea eax, [esp + 0x6dc]
lea ecx, [esp + 0x2c]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x1a8]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.0048a2f0
add esp, 0x10
jmp 0x486538
lea ecx, [esp + 0x6dc]
push esi
lea edx, [esp + 0x30]
push ecx
push edx
call fcn.0048a380
lea eax, [esp + 0x1ac]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.0048a380
add esp, 0x18
mov eax, dword [esp + 0x6dc]
mov edx, dword [esp + 0x1a0]
mov esi, dword [esp + 0x33c]
sub eax, edx
mov ebx, eax
mov edi, 2
lea ecx, [eax + 1]
mov eax, edx
mov edx, dword [esp + 0x6e0]
mov dword [esp + 0x338], ecx
lea esi, [esi + ecx*2 - 2]
mov dword [esp + 0xb4], eax
lea ecx, [edx + ebx*2]
mov dword [esp + 0xb8], ecx
test eax, eax
jne 0x486591
mov word [esi], ax
mov dword [esp + 0xb4], eax
jmp 0x48684f
cmp dword [esp + 0x1a0], 1
jne 0x486648
cmp eax, 1
jne 0x4865f5
mov edx, dword [esp + 0xb8]
xor eax, eax
xor ecx, ecx
mov ax, word [edx]
mov edx, dword [esp + 0x1a4]
mov cx, word [edx]
cdq
idiv ecx
mov word [esi], ax
mov ecx, dword [esp + 0x1a4]
mov dx, word [ecx]
imul dx, ax
mov eax, dword [esp + 0xb8]
sub word [eax], dx
mov ecx, dword [esp + 0xb8]
xor eax, eax
cmp word [ecx], ax
setne al
mov dword [esp + 0xb4], eax
jmp 0x48684f
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0x1a4]
xor ebp, ebp
mov ecx, dword [edx]
mov bp, word [eax]
mov eax, ecx
xor edx, edx
div ebp
mov word [esi], ax
mov edx, dword [esp + 0x1a4]
mov dx, word [edx]
imul dx, ax
mov eax, dword [esp + 0xb8]
sub ecx, edx
mov word [eax], cx
mov edx, dword [esp + 0xb8]
xor ecx, ecx
cmp word [edx], cx
setne cl
mov dword [esp + 0xb4], ecx
jmp 0x48684f
lea eax, [esp + 0xb4]
lea ecx, [esp + 0xb4]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x1a8]
lea eax, [esp + 0xbc]
push edx
push eax
call fcn.0048a330
add esp, 0x10
test eax, eax
jge 0x486683
mov word [esi], 0
jmp 0x48684f
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x1a0]
cmp eax, ecx
jne 0x4866bb
mov ebp, dword [esp + 0x1a4]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ebp, dword [esp + 0xb8]
mov ecx, edx
xor edx, edx
mov dx, word [ebp + eax*2 - 2]
inc ecx
mov eax, edx
cdq
idiv ecx
jmp 0x4866db
mov edx, dword [esp + 0xb8]
mov ebp, dword [esp + 0x1a4]
mov eax, dword [edx + eax*2 - 4]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ecx, edx
xor edx, edx
inc ecx
div ecx
lea edx, [esp + 0x7b20]
mov word [esi], ax
mov dword [esp + 0x3fc], edx
mov edx, dword [esp + 0x1a0]
mov dword [esp + 0x3f8], 0
mov ax, word [esi]
test edx, edx
mov dword [esp + 0x18], eax
je 0x4867da
test ax, ax
je 0x4867da
cmp ax, 1
jne 0x486741
lea eax, [esp + 0x3f8]
lea ecx, [esp + 0x1a0]
push eax
lea edx, [esp + 0x3fc]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
jmp 0x4867da
lea ebp, [esp + 0x2170]
test edx, edx
mov dword [esp + 0x53c], ebp
jl 0x486768
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x2170]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x4867a5
mov ecx, dword [esp + 0x18]
and ecx, 0xffff
mov edi, dword [esp + 0x1a4]
xor edx, edx
mov dx, word [edi + eax*2]
mov edi, dword [ebp + eax*2]
imul edx, ecx
add edi, edx
mov dword [ebp + eax*2], edi
mov edx, dword [esp + 0x1a0]
mov ebp, dword [esp + 0x53c]
inc eax
cmp eax, edx
jl 0x486778
cmp word [ebp + edx*2], 0
je 0x4867ae
inc edx
lea eax, [esp + 0x3f8]
mov dword [esp + 0x538], edx
lea ecx, [esp + 0x538]
push eax
lea edx, [esp + 0x3fc]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
mov edi, 2
lea eax, [esp + 0xb4]
lea ecx, [esp + 0x3f8]
push eax
lea edx, [esp + 0xb8]
push ecx
push edx
call fcn.0048a590
lea eax, [esp + 0x1ac]
lea ecx, [esp + 0xc0]
push eax
push ecx
call fcn.0048a330
add esp, 0x14
test eax, eax
jl 0x48684f
lea edx, [esp + 0xb4]
lea eax, [esp + 0x1a0]
push edx
lea ecx, [esp + 0xb8]
push eax
push ecx
call fcn.0048a590
inc word [esi]
lea edx, [esp + 0x1ac]
lea eax, [esp + 0xc0]
push edx
push eax
call fcn.0048a330
add esp, 0x14
test eax, eax
jge 0x486813
test ebx, ebx
je 0x4868ba
mov eax, dword [esp + 0xb4]
mov ebp, dword [esp + 0xb8]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
test ebx, ebx
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], ebp
jle 0x48657e
cmp eax, dword [esp + 0x1a0]
jge 0x48657e
mov word [esi], 0
mov eax, dword [esp + 0xb4]
mov ebp, dword [esp + 0xb8]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
mov dword [esp + 0xb4], eax
test ebx, ebx
mov dword [esp + 0xb8], ebp
jg 0x48687d
jmp 0x48657e
mov eax, dword [esp + 0x338]
test eax, eax
jle 0x4868dc
mov ecx, dword [esp + 0x33c]
cmp word [ecx + eax*2 - 2], 0
jne 0x4868dc
dec eax
mov dword [esp + 0x338], eax
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x4868fe
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0xb4]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x487d91
mov ecx, dword [esp + 0x1c]
push eax
push ecx
lea edx, [esp + 0xbc]
jmp 0x487d88
lea ecx, [esp + 0xc558]
cmp al, 2
mov dword [esp + 0x130], ecx
jne 0x486fe8
mov edx, dword [esp + 0x2c]
xor eax, eax
cmp edx, eax
je 0x486aaf
lea ecx, [esp + 0x2378]
mov dword [esp + 0x55c], ecx
lea ecx, [edx + edx]
cmp ecx, eax
mov dword [esp + 0x24], ecx
jle 0x486964
mov edx, dword [esp + 0x55c]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x48694d
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0x2378]
xor ebx, ebx
test edx, edx
mov dword [esp + 0x25c], eax
mov dword [esp + 0x258], 0
jle 0x486a7a
mov ecx, dword [esp + 0x30]
test edx, edx
mov bp, word [ecx + ebx*2]
je 0x486a4d
test bp, bp
je 0x486a4d
cmp bp, 1
jne 0x4869c0
lea edx, [esp + 0x258]
lea eax, [esp + 0x2c]
push edx
lea ecx, [esp + 0x25c]
push eax
push ecx
jmp 0x486a41
lea esi, [esp + 0x2580]
test edx, edx
mov dword [esp + 0x54c], esi
jl 0x4869e7
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x2580]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x486a1a
mov ecx, ebp
and ecx, 0xffff
mov edi, dword [esp + 0x30]
xor edx, edx
mov ebp, dword [esi + eax*2]
mov dx, word [edi + eax*2]
imul edx, ecx
add ebp, edx
mov dword [esi + eax*2], ebp
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x54c]
inc eax
cmp eax, edx
jl 0x4869f5
cmp word [esi + edx*2], 0
je 0x486a22
inc edx
lea eax, [esp + 0x258]
mov dword [esp + 0x548], edx
lea ecx, [esp + 0x548]
push eax
lea edx, [esp + 0x25c]
push ecx
push edx
call fcn.0048a490
mov edx, dword [esp + 0x38]
add esp, 0xc
mov eax, dword [esp + 0x258]
test eax, eax
jle 0x486a60
dec eax
mov dword [esp + 0x258], eax
mov esi, dword [esp + 0x25c]
add esi, 2
inc ebx
cmp ebx, edx
mov dword [esp + 0x25c], esi
jl 0x486987
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x55c]
cmp word [ecx + eax*2 - 2], 0
jne 0x486a8e
dec eax
mov dword [esp + 0x558], eax
lea edx, [esp + 0x12c]
lea eax, [esp + 0x558]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x486ab6
mov dword [esp + 0x12c], eax
lea edx, [esp + 0x2b8]
lea esi, [esp + 0x2b8]
lea ecx, [esp + 0xbd38]
mov dword [esp + 0x1c], esi
test edx, edx
mov dword [esp + 0x34c], ecx
jne 0x486af3
lea eax, [esp + 0xbe3c]
lea esi, [esp + 0x7b4]
mov dword [esp + 0x7b8], eax
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x12c]
xor edi, edi
cmp eax, edi
jne 0x486b0e
mov dword [esp + 0x348], edi
mov dword [esi], edi
jmp 0x487d91
cmp dword [esp + 0x10], 1
jne 0x486b3e
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x486b3e
lea edx, [esp + 0x348]
lea eax, [esp + 0x12c]
push edx
push eax
call fcn.0048a2f0
add esp, 8
mov dword [esi], edi
jmp 0x487d91
lea ecx, [esp + 0x10]
lea edx, [esp + 0x12c]
push ecx
push edx
call fcn.0048a330
add esp, 8
test eax, eax
jge 0x486b74
mov dword [esp + 0x348], edi
lea eax, [esp + 0x12c]
push esi
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x487d91
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ax, word [edx + ecx*2 - 2]
xor ecx, ecx
cmp ax, di
mov dword [esp + 0x18], eax
je 0x486b95
shr ax, 1
inc ecx
cmp ax, di
jne 0x486b8c
mov esi, 0x10
lea edx, [esp + 0x7d2c]
sub esi, ecx
lea ecx, [esp + 0x780c]
mov dword [esp + 0x24], esi
mov dword [esp + 0x6f0], ecx
mov dword [esp + 0x1b4], edx
jne 0x486bea
lea eax, [esp + 0x6ec]
lea ecx, [esp + 0x12c]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x1b8]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.0048a2f0
add esp, 0x10
jmp 0x486c16
lea ecx, [esp + 0x6ec]
push esi
lea edx, [esp + 0x130]
push ecx
push edx
call fcn.0048a380
lea eax, [esp + 0x1bc]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.0048a380
add esp, 0x18
mov eax, dword [esp + 0x6ec]
mov edx, dword [esp + 0x1b0]
mov esi, dword [esp + 0x34c]
sub eax, edx
mov ebx, eax
mov edi, 2
lea ecx, [eax + 1]
mov eax, edx
mov edx, dword [esp + 0x6f0]
mov dword [esp + 0x348], ecx
lea esi, [esi + ecx*2 - 2]
mov dword [esp + 0xc4], eax
lea ecx, [edx + ebx*2]
mov dword [esp + 0xc8], ecx
test eax, eax
jne 0x486c6f
mov word [esi], ax
mov dword [esp + 0xc4], eax
jmp 0x486f27
cmp dword [esp + 0x1b0], 1
jne 0x486d20
cmp eax, 1
jne 0x486cd0
mov edx, dword [esp + 0xc8]
xor eax, eax
xor ecx, ecx
mov ax, word [edx]
mov edx, dword [esp + 0x1b4]
mov cx, word [edx]
cdq
idiv ecx
xor edx, edx
mov word [esi], ax
mov ecx, dword [esp + 0x1b4]
imul ax, word [ecx]
mov ecx, dword [esp + 0xc8]
sub word [ecx], ax
mov eax, dword [esp + 0xc8]
cmp word [eax], dx
setne dl
mov dword [esp + 0xc4], edx
jmp 0x486f27
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x1b4]
xor ebp, ebp
mov ecx, dword [ecx]
mov bp, word [edx]
mov eax, ecx
xor edx, edx
div ebp
mov word [esi], ax
mov edx, dword [esp + 0x1b4]
imul ax, word [edx]
sub ecx, eax
mov eax, dword [esp + 0xc8]
mov word [eax], cx
mov edx, dword [esp + 0xc8]
xor ecx, ecx
cmp word [edx], cx
setne cl
mov dword [esp + 0xc4], ecx
jmp 0x486f27
lea eax, [esp + 0xc4]
lea ecx, [esp + 0xc4]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x1b8]
lea eax, [esp + 0xcc]
push edx
push eax
call fcn.0048a330
add esp, 0x10
test eax, eax
jge 0x486d5b
mov word [esi], 0
jmp 0x486f27
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x1b0]
cmp eax, ecx
jne 0x486d93
mov ebp, dword [esp + 0x1b4]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ebp, dword [esp + 0xc8]
mov ecx, edx
xor edx, edx
mov dx, word [ebp + eax*2 - 2]
inc ecx
mov eax, edx
cdq
idiv ecx
jmp 0x486db3
mov edx, dword [esp + 0xc8]
mov ebp, dword [esp + 0x1b4]
mov eax, dword [edx + eax*2 - 4]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ecx, edx
xor edx, edx
inc ecx
div ecx
lea edx, [esp + 0xacf8]
mov word [esi], ax
mov dword [esp + 0x40c], edx
mov edx, dword [esp + 0x1b0]
mov dword [esp + 0x408], 0
mov ax, word [esi]
test edx, edx
mov dword [esp + 0x18], eax
je 0x486eb2
test ax, ax
je 0x486eb2
cmp ax, 1
jne 0x486e19
lea eax, [esp + 0x408]
lea ecx, [esp + 0x1b0]
push eax
lea edx, [esp + 0x40c]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
jmp 0x486eb2
lea ebp, [esp + 0x2788]
test edx, edx
mov dword [esp + 0x56c], ebp
jl 0x486e40
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x2788]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x486e7d
mov ecx, dword [esp + 0x18]
and ecx, 0xffff
mov edi, dword [esp + 0x1b4]
xor edx, edx
mov dx, word [edi + eax*2]
mov edi, dword [ebp + eax*2]
imul edx, ecx
add edi, edx
mov dword [ebp + eax*2], edi
mov edx, dword [esp + 0x1b0]
mov ebp, dword [esp + 0x56c]
inc eax
cmp eax, edx
jl 0x486e50
cmp word [ebp + edx*2], 0
je 0x486e86
inc edx
lea eax, [esp + 0x408]
mov dword [esp + 0x568], edx
lea ecx, [esp + 0x568]
push eax
lea edx, [esp + 0x40c]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
mov edi, 2
lea eax, [esp + 0xc4]
lea ecx, [esp + 0x408]
push eax
lea edx, [esp + 0xc8]
push ecx
push edx
call fcn.0048a590
lea eax, [esp + 0x1bc]
lea ecx, [esp + 0xd0]
push eax
push ecx
call fcn.0048a330
add esp, 0x14
test eax, eax
jl 0x486f27
lea edx, [esp + 0xc4]
lea eax, [esp + 0x1b0]
push edx
lea ecx, [esp + 0xc8]
push eax
push ecx
call fcn.0048a590
inc word [esi]
lea edx, [esp + 0x1bc]
lea eax, [esp + 0xd0]
push edx
push eax
call fcn.0048a330
add esp, 0x14
test eax, eax
jge 0x486eeb
test ebx, ebx
je 0x486f92
mov eax, dword [esp + 0xc4]
mov ebp, dword [esp + 0xc8]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
test ebx, ebx
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ebp
jle 0x486c5c
cmp eax, dword [esp + 0x1b0]
jge 0x486c5c
mov word [esi], 0
mov eax, dword [esp + 0xc4]
mov ebp, dword [esp + 0xc8]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
mov dword [esp + 0xc4], eax
test ebx, ebx
mov dword [esp + 0xc8], ebp
jg 0x486f55
jmp 0x486c5c
mov eax, dword [esp + 0x348]
test eax, eax
jle 0x486fb4
mov ecx, dword [esp + 0x34c]
cmp word [ecx + eax*2 - 2], 0
jne 0x486fb4
dec eax
mov dword [esp + 0x348], eax
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x486fd6
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0xc4]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x487d91
mov ecx, dword [esp + 0x1c]
push eax
push ecx
lea edx, [esp + 0xcc]
jmp 0x487d88
cmp al, 3
jne 0x487d91
mov edx, dword [esp + 0x2c]
xor eax, eax
cmp edx, eax
je 0x487179
lea ecx, [esp + 0x2990]
mov dword [esp + 0x58c], ecx
lea ecx, [edx + edx]
cmp ecx, eax
mov dword [esp + 0x24], ecx
jle 0x48702e
mov edx, dword [esp + 0x58c]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x487017
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0x2990]
xor ebx, ebx
test edx, edx
mov dword [esp + 0x26c], eax
mov dword [esp + 0x268], 0
jle 0x487144
mov ecx, dword [esp + 0x30]
test edx, edx
mov bp, word [ecx + ebx*2]
je 0x487117
test bp, bp
je 0x487117
cmp bp, 1
jne 0x48708a
lea edx, [esp + 0x268]
lea eax, [esp + 0x2c]
push edx
lea ecx, [esp + 0x26c]
push eax
push ecx
jmp 0x48710b
lea esi, [esp + 0x2b98]
test edx, edx
mov dword [esp + 0x57c], esi
jl 0x4870b1
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x2b98]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x4870e4
mov ecx, ebp
and ecx, 0xffff
mov edi, dword [esp + 0x30]
xor edx, edx
mov ebp, dword [esi + eax*2]
mov dx, word [edi + eax*2]
imul edx, ecx
add ebp, edx
mov dword [esi + eax*2], ebp
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x57c]
inc eax
cmp eax, edx
jl 0x4870bf
cmp word [esi + edx*2], 0
je 0x4870ec
inc edx
lea eax, [esp + 0x268]
mov dword [esp + 0x578], edx
lea ecx, [esp + 0x578]
push eax
lea edx, [esp + 0x26c]
push ecx
push edx
call fcn.0048a490
mov edx, dword [esp + 0x38]
add esp, 0xc
mov eax, dword [esp + 0x268]
test eax, eax
jle 0x48712a
dec eax
mov dword [esp + 0x268], eax
mov esi, dword [esp + 0x26c]
add esi, 2
inc ebx
cmp ebx, edx
mov dword [esp + 0x26c], esi
jl 0x487051
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x58c]
cmp word [ecx + eax*2 - 2], 0
jne 0x487158
dec eax
mov dword [esp + 0x588], eax
lea edx, [esp + 0x12c]
lea eax, [esp + 0x588]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x487180
mov dword [esp + 0x12c], eax
lea edx, [esp + 0x12c]
lea esi, [esp + 0x12c]
lea ecx, [esp + 0xc044]
mov dword [esp + 0x1c], esi
test edx, edx
mov dword [esp + 0x35c], ecx
jne 0x4871bd
lea eax, [esp + 0xc148]
lea esi, [esp + 0x7c4]
mov dword [esp + 0x7c8], eax
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x12c]
xor edi, edi
cmp eax, edi
jne 0x4871d8
mov dword [esp + 0x358], edi
mov dword [esi], edi
jmp 0x4876b9
cmp dword [esp + 0x10], 1
jne 0x487208
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x487208
lea edx, [esp + 0x358]
lea eax, [esp + 0x12c]
push edx
push eax
call fcn.0048a2f0
add esp, 8
mov dword [esi], edi
jmp 0x4876b9
lea ecx, [esp + 0x10]
lea edx, [esp + 0x12c]
push ecx
push edx
call fcn.0048a330
add esp, 8
test eax, eax
jge 0x48723e
lea eax, [esp + 0x12c]
push esi
push eax
mov dword [esp + 0x360], edi
call fcn.0048a2f0
add esp, 8
jmp 0x4876b9
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ax, word [edx + ecx*2 - 2]
xor ecx, ecx
cmp ax, di
mov dword [esp + 0x18], eax
je 0x48725f
shr ax, 1
inc ecx
cmp ax, di
jne 0x487256
mov esi, 0x10
lea edx, [esp + 0x7f38]
sub esi, ecx
lea ecx, [esp + 0x7a18]
mov dword [esp + 0x24], esi
mov dword [esp + 0x700], ecx
mov dword [esp + 0x1c4], edx
jne 0x4872b4
lea eax, [esp + 0x6fc]
lea ecx, [esp + 0x12c]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x1c8]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.0048a2f0
add esp, 0x10
jmp 0x4872e0
lea ecx, [esp + 0x6fc]
push esi
lea edx, [esp + 0x130]
push ecx
push edx
call fcn.0048a380
lea eax, [esp + 0x1cc]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.0048a380
add esp, 0x18
mov eax, dword [esp + 0x6fc]
mov edx, dword [esp + 0x1c0]
mov esi, dword [esp + 0x35c]
sub eax, edx
mov ebx, eax
mov edi, 2
lea ecx, [eax + 1]
mov eax, edx
mov edx, dword [esp + 0x700]
mov dword [esp + 0x358], ecx
lea esi, [esi + ecx*2 - 2]
mov dword [esp + 0xd4], eax
lea ecx, [edx + ebx*2]
mov dword [esp + 0xd8], ecx
test eax, eax
jne 0x487339
mov word [esi], ax
mov dword [esp + 0xd4], eax
jmp 0x4875f7
cmp dword [esp + 0x1c0], 1
jne 0x4873f0
cmp eax, 1
jne 0x48739d
mov edx, dword [esp + 0xd8]
xor eax, eax
xor ecx, ecx
mov ax, word [edx]
mov edx, dword [esp + 0x1c4]
mov cx, word [edx]
cdq
idiv ecx
mov word [esi], ax
mov ecx, dword [esp + 0x1c4]
mov dx, word [ecx]
imul dx, ax
mov eax, dword [esp + 0xd8]
sub word [eax], dx
mov ecx, dword [esp + 0xd8]
xor eax, eax
cmp word [ecx], ax
setne al
mov dword [esp + 0xd4], eax
jmp 0x4875f7
mov edx, dword [esp + 0xd8]
mov eax, dword [esp + 0x1c4]
xor ebp, ebp
mov ecx, dword [edx]
mov bp, word [eax]
mov eax, ecx
xor edx, edx
div ebp
mov word [esi], ax
mov edx, dword [esp + 0x1c4]
mov dx, word [edx]
imul dx, ax
mov eax, dword [esp + 0xd8]
sub ecx, edx
mov word [eax], cx
mov edx, dword [esp + 0xd8]
xor ecx, ecx
cmp word [edx], cx
setne cl
mov dword [esp + 0xd4], ecx
jmp 0x4875f7
lea eax, [esp + 0xd4]
lea ecx, [esp + 0xd4]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x1c8]
lea eax, [esp + 0xdc]
push edx
push eax
call fcn.0048a330
add esp, 0x10
test eax, eax
jge 0x48742b
mov word [esi], 0
jmp 0x4875f7
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0x1c0]
cmp eax, ecx
jne 0x487463
mov ebp, dword [esp + 0x1c4]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ebp, dword [esp + 0xd8]
mov ecx, edx
xor edx, edx
mov dx, word [ebp + eax*2 - 2]
inc ecx
mov eax, edx
cdq
idiv ecx
jmp 0x487483
mov edx, dword [esp + 0xd8]
mov ebp, dword [esp + 0x1c4]
mov eax, dword [edx + eax*2 - 4]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ecx, edx
xor edx, edx
inc ecx
div ecx
lea edx, [esp + 0xd494]
mov word [esi], ax
mov dword [esp + 0x41c], edx
mov edx, dword [esp + 0x1c0]
mov dword [esp + 0x418], 0
mov ax, word [esi]
test edx, edx
mov dword [esp + 0x18], eax
je 0x487582
test ax, ax
je 0x487582
cmp ax, 1
jne 0x4874e9
lea eax, [esp + 0x418]
lea ecx, [esp + 0x1c0]
push eax
lea edx, [esp + 0x41c]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
jmp 0x487582
lea ebp, [esp + 0x2da0]
test edx, edx
mov dword [esp + 0x59c], ebp
jl 0x487510
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x2da0]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x48754d
mov ecx, dword [esp + 0x18]
and ecx, 0xffff
mov edi, dword [esp + 0x1c4]
xor edx, edx
mov dx, word [edi + eax*2]
mov edi, dword [ebp + eax*2]
imul edx, ecx
add edi, edx
mov dword [ebp + eax*2], edi
mov edx, dword [esp + 0x1c0]
mov ebp, dword [esp + 0x59c]
inc eax
cmp eax, edx
jl 0x487520
cmp word [ebp + edx*2], 0
je 0x487556
inc edx
lea eax, [esp + 0x418]
mov dword [esp + 0x598], edx
lea ecx, [esp + 0x598]
push eax
lea edx, [esp + 0x41c]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
mov edi, 2
lea eax, [esp + 0xd4]
lea ecx, [esp + 0x418]
push eax
lea edx, [esp + 0xd8]
push ecx
push edx
call fcn.0048a590
lea eax, [esp + 0x1cc]
lea ecx, [esp + 0xe0]
push eax
push ecx
call fcn.0048a330
add esp, 0x14
test eax, eax
jl 0x4875f7
lea edx, [esp + 0xd4]
lea eax, [esp + 0x1c0]
push edx
lea ecx, [esp + 0xd8]
push eax
push ecx
call fcn.0048a590
inc word [esi]
lea edx, [esp + 0x1cc]
lea eax, [esp + 0xe0]
push edx
push eax
call fcn.0048a330
add esp, 0x14
test eax, eax
jge 0x4875bb
test ebx, ebx
je 0x487662
mov eax, dword [esp + 0xd4]
mov ebp, dword [esp + 0xd8]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
test ebx, ebx
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], ebp
jle 0x487326
cmp eax, dword [esp + 0x1c0]
jge 0x487326
mov word [esi], 0
mov eax, dword [esp + 0xd4]
mov ebp, dword [esp + 0xd8]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
mov dword [esp + 0xd4], eax
test ebx, ebx
mov dword [esp + 0xd8], ebp
jg 0x487625
jmp 0x487326
mov eax, dword [esp + 0x358]
test eax, eax
jle 0x487684
mov ecx, dword [esp + 0x35c]
cmp word [ecx + eax*2 - 2], 0
jne 0x487684
dec eax
mov dword [esp + 0x358], eax
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x4876a3
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0xd4]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x4876b9
mov ecx, dword [esp + 0x1c]
push eax
lea edx, [esp + 0xd8]
push ecx
push edx
call fcn.0048a400
add esp, 0xc
mov edx, dword [esp + 0x12c]
xor eax, eax
cmp edx, eax
je 0x487875
mov ecx, dword [esp + 0x2c]
cmp ecx, eax
je 0x487875
lea esi, [esp + 0x2fa8]
mov dword [esp + 0x5b8], esi
lea esi, [edx + ecx]
cmp esi, eax
mov dword [esp + 0x1c], esi
jle 0x48770f
mov ecx, esi
mov edx, dword [esp + 0x5b8]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x4876f1
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x12c]
cmp edx, ecx
jl 0x487720
lea esi, [esp + 0x12c]
lea ebp, [esp + 0x2c]
jmp 0x48772b
lea esi, [esp + 0x2c]
lea ebp, [esp + 0x12c]
lea eax, [esp + 0x2fa8]
xor ebx, ebx
mov dword [esp + 0x27c], eax
mov dword [esp + 0x278], ebx
mov eax, dword [ebp]
mov dword [esp + 0x24], ebp
cmp eax, ebx
jle 0x487840
mov ecx, dword [ebp + 4]
mov eax, dword [esi]
test eax, eax
mov di, word [ecx + ebx*2]
je 0x487810
test di, di
je 0x487810
cmp di, 1
jne 0x48777f
lea edx, [esp + 0x278]
push edx
push esi
jmp 0x487800
lea edx, [esp + 0x31b0]
xor eax, eax
mov dword [esp + 0x5ac], edx
mov ecx, dword [esi]
test ecx, ecx
jl 0x4877a9
lea ecx, [esp + 0x31b0]
mov word [ecx], 0
inc eax
add ecx, 2
cmp eax, dword [esi]
jle 0x48779c
mov ecx, dword [esi]
xor eax, eax
test ecx, ecx
jle 0x4877df
mov ecx, edi
and ecx, 0xffff
mov edi, dword [esi + 4]
xor ebp, ebp
mov bp, word [edi + eax*2]
mov edi, dword [edx + eax*2]
imul ebp, ecx
add edi, ebp
mov dword [edx + eax*2], edi
mov edx, dword [esi]
inc eax
cmp eax, edx
mov edx, dword [esp + 0x5ac]
jl 0x4877b9
mov ebp, dword [esp + 0x24]
mov eax, dword [esi]
cmp word [edx + eax*2], 0
je 0x4877e9
inc eax
lea ecx, [esp + 0x278]
lea edx, [esp + 0x5a8]
push ecx
mov dword [esp + 0x5ac], eax
push edx
lea eax, [esp + 0x280]
push eax
call fcn.0048a490
add esp, 0xc
mov eax, dword [esp + 0x278]
test eax, eax
jle 0x487823
dec eax
mov dword [esp + 0x278], eax
mov edx, dword [esp + 0x27c]
add edx, 2
inc ebx
mov dword [esp + 0x27c], edx
mov eax, dword [ebp]
cmp ebx, eax
jl 0x487751
mov ecx, dword [esp + 0x5b8]
mov eax, dword [esp + 0x1c]
cmp word [ecx + eax*2 - 2], 0
jne 0x487854
dec eax
mov dword [esp + 0x5b4], eax
lea edx, [esp + 0x12c]
lea eax, [esp + 0x5b4]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x48787c
mov dword [esp + 0x12c], eax
lea edx, [esp + 0x2c0]
lea esi, [esp + 0x2c0]
lea ecx, [esp + 0xc350]
mov dword [esp + 0x1c], esi
test edx, edx
mov dword [esp + 0x36c], ecx
jne 0x4878b9
lea eax, [esp + 0xc454]
lea esi, [esp + 0x7d4]
mov dword [esp + 0x7d8], eax
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x12c]
xor edi, edi
cmp eax, edi
jne 0x4878d4
mov dword [esp + 0x368], edi
mov dword [esi], edi
jmp 0x487d91
cmp dword [esp + 0x10], 1
jne 0x4878f1
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x4878f1
lea edx, [esp + 0x368]
jmp 0x486b26
lea ecx, [esp + 0x10]
lea edx, [esp + 0x12c]
push ecx
push edx
call fcn.0048a330
add esp, 8
test eax, eax
jge 0x487916
mov dword [esp + 0x368], edi
jmp 0x486b5e
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ax, word [edx + ecx*2 - 2]
xor ecx, ecx
cmp ax, di
mov dword [esp + 0x18], eax
je 0x487937
shr ax, 1
inc ecx
cmp ax, di
jne 0x48792e
mov esi, 0x10
lea edx, [esp + 0x8144]
sub esi, ecx
lea ecx, [esp + 0x7c24]
mov dword [esp + 0x24], esi
mov dword [esp + 0x730], ecx
mov dword [esp + 0x1d4], edx
jne 0x48798c
lea eax, [esp + 0x72c]
lea ecx, [esp + 0x12c]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x1d8]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.0048a2f0
add esp, 0x10
jmp 0x4879b8
lea ecx, [esp + 0x72c]
push esi
lea edx, [esp + 0x130]
push ecx
push edx
call fcn.0048a380
lea eax, [esp + 0x1dc]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.0048a380
add esp, 0x18
mov eax, dword [esp + 0x72c]
mov edx, dword [esp + 0x1d0]
mov esi, dword [esp + 0x36c]
sub eax, edx
mov ebx, eax
mov edi, 2
lea ecx, [eax + 1]
mov eax, edx
mov edx, dword [esp + 0x730]
mov dword [esp + 0x368], ecx
lea esi, [esi + ecx*2 - 2]
mov dword [esp + 0xe4], eax
lea ecx, [edx + ebx*2]
mov dword [esp + 0xe8], ecx
test eax, eax
jne 0x487a11
mov word [esi], ax
mov dword [esp + 0xe4], eax
jmp 0x487ccf
cmp dword [esp + 0x1d0], 1
jne 0x487ac8
cmp eax, 1
jne 0x487a75
mov edx, dword [esp + 0xe8]
xor eax, eax
xor ecx, ecx
mov ax, word [edx]
mov edx, dword [esp + 0x1d4]
mov cx, word [edx]
cdq
idiv ecx
mov word [esi], ax
mov ecx, dword [esp + 0x1d4]
mov dx, word [ecx]
imul dx, ax
mov eax, dword [esp + 0xe8]
sub word [eax], dx
mov ecx, dword [esp + 0xe8]
xor eax, eax
cmp word [ecx], ax
setne al
mov dword [esp + 0xe4], eax
jmp 0x487ccf
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0x1d4]
xor ebp, ebp
mov ecx, dword [edx]
mov bp, word [eax]
mov eax, ecx
xor edx, edx
div ebp
mov word [esi], ax
mov edx, dword [esp + 0x1d4]
mov dx, word [edx]
imul dx, ax
mov eax, dword [esp + 0xe8]
sub ecx, edx
mov word [eax], cx
mov edx, dword [esp + 0xe8]
xor ecx, ecx
cmp word [edx], cx
setne cl
mov dword [esp + 0xe4], ecx
jmp 0x487ccf
lea eax, [esp + 0xe4]
lea ecx, [esp + 0xe4]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x1d8]
lea eax, [esp + 0xec]
push edx
push eax
call fcn.0048a330
add esp, 0x10
test eax, eax
jge 0x487b03
mov word [esi], 0
jmp 0x487ccf
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x1d0]
cmp eax, ecx
jne 0x487b3b
mov ebp, dword [esp + 0x1d4]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ebp, dword [esp + 0xe8]
mov ecx, edx
xor edx, edx
mov dx, word [ebp + eax*2 - 2]
inc ecx
mov eax, edx
cdq
idiv ecx
jmp 0x487b5b
mov edx, dword [esp + 0xe8]
mov ebp, dword [esp + 0x1d4]
mov eax, dword [edx + eax*2 - 4]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ecx, edx
xor edx, edx
inc ecx
div ecx
lea edx, [esp + 0xb004]
mov word [esi], ax
mov dword [esp + 0x42c], edx
mov edx, dword [esp + 0x1d0]
mov dword [esp + 0x428], 0
mov ax, word [esi]
test edx, edx
mov dword [esp + 0x18], eax
je 0x487c5a
test ax, ax
je 0x487c5a
cmp ax, 1
jne 0x487bc1
lea eax, [esp + 0x428]
lea ecx, [esp + 0x1d0]
push eax
lea edx, [esp + 0x42c]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
jmp 0x487c5a
lea ebp, [esp + 0x33b8]
test edx, edx
mov dword [esp + 0x5c8], ebp
jl 0x487be8
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x33b8]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x487c25
mov ecx, dword [esp + 0x18]
and ecx, 0xffff
mov edi, dword [esp + 0x1d4]
xor edx, edx
mov dx, word [edi + eax*2]
mov edi, dword [ebp + eax*2]
imul edx, ecx
add edi, edx
mov dword [ebp + eax*2], edi
mov edx, dword [esp + 0x1d0]
mov ebp, dword [esp + 0x5c8]
inc eax
cmp eax, edx
jl 0x487bf8
cmp word [ebp + edx*2], 0
je 0x487c2e
inc edx
lea eax, [esp + 0x428]
mov dword [esp + 0x5c4], edx
lea ecx, [esp + 0x5c4]
push eax
lea edx, [esp + 0x42c]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
mov edi, 2
lea eax, [esp + 0xe4]
lea ecx, [esp + 0x428]
push eax
lea edx, [esp + 0xe8]
push ecx
push edx
call fcn.0048a590
lea eax, [esp + 0x1dc]
lea ecx, [esp + 0xf0]
push eax
push ecx
call fcn.0048a330
add esp, 0x14
test eax, eax
jl 0x487ccf
lea edx, [esp + 0xe4]
lea eax, [esp + 0x1d0]
push edx
lea ecx, [esp + 0xe8]
push eax
push ecx
call fcn.0048a590
inc word [esi]
lea edx, [esp + 0x1dc]
lea eax, [esp + 0xf0]
push edx
push eax
call fcn.0048a330
add esp, 0x14
test eax, eax
jge 0x487c93
test ebx, ebx
je 0x487d3a
mov eax, dword [esp + 0xe4]
mov ebp, dword [esp + 0xe8]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
test ebx, ebx
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], ebp
jle 0x4879fe
cmp eax, dword [esp + 0x1d0]
jge 0x4879fe
mov word [esi], 0
mov eax, dword [esp + 0xe4]
mov ebp, dword [esp + 0xe8]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
mov dword [esp + 0xe4], eax
test ebx, ebx
mov dword [esp + 0xe8], ebp
jg 0x487cfd
jmp 0x4879fe
mov eax, dword [esp + 0x368]
test eax, eax
jle 0x487d5c
mov ecx, dword [esp + 0x36c]
cmp word [ecx + eax*2 - 2], 0
jne 0x487d5c
dec eax
mov dword [esp + 0x368], eax
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x487d7b
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0xe4]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x487d91
mov ecx, dword [esp + 0x1c]
push eax
push ecx
lea edx, [esp + 0xec]
push edx
call fcn.0048a400
add esp, 0xc
mov al, byte [esp + 0x3c0]
test al, al
je 0x488466
mov ecx, dword [esp + 0x4c]
test ecx, ecx
je 0x487f51
mov eax, dword [esp + 0x28]
cmp dword [eax], 0
je 0x487f51
lea edx, [esp + 0x35c0]
mov dword [esp + 0x5e8], edx
mov edi, dword [eax]
mov edx, ecx
xor eax, eax
add edx, edi
test edx, edx
mov dword [esp + 0x1c], edx
jle 0x487df0
mov ecx, edx
mov edx, dword [esp + 0x5e8]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x487dd9
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x28]
cmp ecx, dword [eax]
jl 0x487e00
lea esi, [esp + 0x4c]
mov ebp, eax
jmp 0x487e06
mov esi, eax
lea ebp, [esp + 0x4c]
lea eax, [esp + 0x35c0]
mov dword [esp + 0x288], 0
mov dword [esp + 0x28c], eax
mov eax, dword [ebp]
xor ebx, ebx
mov dword [esp + 0x24], ebp
test eax, eax
jle 0x487f1f
mov ecx, dword [ebp + 4]
mov eax, dword [esi]
test eax, eax
mov di, word [ecx + ebx*2]
je 0x487eef
test di, di
je 0x487eef
cmp di, 1
jne 0x487e5e
lea edx, [esp + 0x288]
push edx
push esi
jmp 0x487edf
lea edx, [esp + 0x37c8]
xor eax, eax
mov dword [esp + 0x5d8], edx
mov ecx, dword [esi]
test ecx, ecx
jl 0x487e88
lea ecx, [esp + 0x37c8]
mov word [ecx], 0
inc eax
add ecx, 2
cmp eax, dword [esi]
jle 0x487e7b
mov ecx, dword [esi]
xor eax, eax
test ecx, ecx
jle 0x487ebe
mov ecx, edi
and ecx, 0xffff
mov edi, dword [esi + 4]
xor ebp, ebp
mov bp, word [edi + eax*2]
mov edi, dword [edx + eax*2]
imul ebp, ecx
add edi, ebp
mov dword [edx + eax*2], edi
mov edx, dword [esi]
inc eax
cmp eax, edx
mov edx, dword [esp + 0x5d8]
jl 0x487e98
mov ebp, dword [esp + 0x24]
mov eax, dword [esi]
cmp word [edx + eax*2], 0
je 0x487ec8
inc eax
lea ecx, [esp + 0x288]
lea edx, [esp + 0x5d4]
push ecx
mov dword [esp + 0x5d8], eax
push edx
lea eax, [esp + 0x290]
push eax
call fcn.0048a490
add esp, 0xc
mov eax, dword [esp + 0x288]
test eax, eax
jle 0x487f02
dec eax
mov dword [esp + 0x288], eax
mov edx, dword [esp + 0x28c]
add edx, 2
inc ebx
mov dword [esp + 0x28c], edx
mov eax, dword [ebp]
cmp ebx, eax
jl 0x487e30
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x5e8]
cmp word [ecx + eax*2 - 2], 0
jne 0x487f33
dec eax
mov dword [esp + 0x5e4], eax
lea edx, [esp + 0x4c]
lea eax, [esp + 0x5e4]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x487f59
mov dword [esp + 0x4c], 0
lea edx, [esp + 0x4c]
lea esi, [esp + 0x4c]
lea ecx, [esp + 0xc65c]
mov dword [esp + 0x1c], esi
test edx, edx
mov dword [esp + 0x37c], ecx
jne 0x487f90
lea eax, [esp + 0xc760]
lea esi, [esp + 0x7e4]
mov dword [esp + 0x7e8], eax
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x4c]
xor edi, edi
cmp eax, edi
jne 0x487fa8
mov dword [esp + 0x378], edi
mov dword [esi], edi
jmp 0x488478
cmp dword [esp + 0x10], 1
jne 0x487fd5
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x487fd5
lea edx, [esp + 0x378]
lea eax, [esp + 0x4c]
push edx
push eax
call fcn.0048a2f0
add esp, 8
mov dword [esi], edi
jmp 0x488478
lea ecx, [esp + 0x10]
lea edx, [esp + 0x4c]
push ecx
push edx
call fcn.0048a330
add esp, 8
test eax, eax
jge 0x487ffd
lea eax, [esp + 0x4c]
push esi
mov dword [esp + 0x37c], edi
push eax
jmp 0x488470
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ax, word [edx + ecx*2 - 2]
xor ecx, ecx
cmp ax, di
mov dword [esp + 0x18], eax
je 0x48801e
shr ax, 1
inc ecx
cmp ax, di
jne 0x488015
mov esi, 0x10
lea edx, [esp + 0x8350]
sub esi, ecx
lea ecx, [esp + 0x7e30]
mov dword [esp + 0x24], esi
mov dword [esp + 0x740], ecx
mov dword [esp + 0x1e4], edx
jne 0x488070
lea eax, [esp + 0x73c]
lea ecx, [esp + 0x4c]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x1e8]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.0048a2f0
add esp, 0x10
jmp 0x488099
lea ecx, [esp + 0x73c]
push esi
lea edx, [esp + 0x50]
push ecx
push edx
call fcn.0048a380
lea eax, [esp + 0x1ec]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.0048a380
add esp, 0x18
mov eax, dword [esp + 0x73c]
mov edx, dword [esp + 0x1e0]
mov esi, dword [esp + 0x37c]
sub eax, edx
mov ebx, eax
mov edi, 2
lea ecx, [eax + 1]
mov eax, edx
mov edx, dword [esp + 0x740]
mov dword [esp + 0x378], ecx
lea esi, [esi + ecx*2 - 2]
mov dword [esp + 0xf4], eax
lea ecx, [edx + ebx*2]
mov dword [esp + 0xf8], ecx
test eax, eax
jne 0x4880f2
mov word [esi], ax
mov dword [esp + 0xf4], eax
jmp 0x4883aa
cmp dword [esp + 0x1e0], 1
jne 0x4881a3
cmp eax, 1
jne 0x488153
mov edx, dword [esp + 0xf8]
xor eax, eax
xor ecx, ecx
mov ax, word [edx]
mov edx, dword [esp + 0x1e4]
mov cx, word [edx]
cdq
idiv ecx
xor edx, edx
mov word [esi], ax
mov ecx, dword [esp + 0x1e4]
imul ax, word [ecx]
mov ecx, dword [esp + 0xf8]
sub word [ecx], ax
mov eax, dword [esp + 0xf8]
cmp word [eax], dx
setne dl
mov dword [esp + 0xf4], edx
jmp 0x4883aa
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0x1e4]
xor ebp, ebp
mov ecx, dword [ecx]
mov bp, word [edx]
mov eax, ecx
xor edx, edx
div ebp
mov word [esi], ax
mov edx, dword [esp + 0x1e4]
imul ax, word [edx]
sub ecx, eax
mov eax, dword [esp + 0xf8]
mov word [eax], cx
mov edx, dword [esp + 0xf8]
xor ecx, ecx
cmp word [edx], cx
setne cl
mov dword [esp + 0xf4], ecx
jmp 0x4883aa
lea eax, [esp + 0xf4]
lea ecx, [esp + 0xf4]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x1e8]
lea eax, [esp + 0xfc]
push edx
push eax
call fcn.0048a330
add esp, 0x10
test eax, eax
jge 0x4881de
mov word [esi], 0
jmp 0x4883aa
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0x1e0]
cmp eax, ecx
jne 0x488216
mov ebp, dword [esp + 0x1e4]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ebp, dword [esp + 0xf8]
mov ecx, edx
xor edx, edx
mov dx, word [ebp + eax*2 - 2]
inc ecx
mov eax, edx
cdq
idiv ecx
jmp 0x488236
mov edx, dword [esp + 0xf8]
mov ebp, dword [esp + 0x1e4]
mov eax, dword [edx + eax*2 - 4]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ecx, edx
xor edx, edx
inc ecx
div ecx
lea edx, [esp + 0xc864]
mov word [esi], ax
mov dword [esp + 0x43c], edx
mov edx, dword [esp + 0x1e0]
mov dword [esp + 0x438], 0
mov ax, word [esi]
test edx, edx
mov dword [esp + 0x18], eax
je 0x488335
test ax, ax
je 0x488335
cmp ax, 1
jne 0x48829c
lea eax, [esp + 0x438]
lea ecx, [esp + 0x1e0]
push eax
lea edx, [esp + 0x43c]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
jmp 0x488335
lea ebp, [esp + 0x39d0]
test edx, edx
mov dword [esp + 0x5f8], ebp
jl 0x4882c3
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x39d0]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x488300
mov ecx, dword [esp + 0x18]
and ecx, 0xffff
mov edi, dword [esp + 0x1e4]
xor edx, edx
mov dx, word [edi + eax*2]
mov edi, dword [ebp + eax*2]
imul edx, ecx
add edi, edx
mov dword [ebp + eax*2], edi
mov edx, dword [esp + 0x1e0]
mov ebp, dword [esp + 0x5f8]
inc eax
cmp eax, edx
jl 0x4882d3
cmp word [ebp + edx*2], 0
je 0x488309
inc edx
lea eax, [esp + 0x438]
mov dword [esp + 0x5f4], edx
lea ecx, [esp + 0x5f4]
push eax
lea edx, [esp + 0x43c]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
mov edi, 2
lea eax, [esp + 0xf4]
lea ecx, [esp + 0x438]
push eax
lea edx, [esp + 0xf8]
push ecx
push edx
call fcn.0048a590
lea eax, [esp + 0x1ec]
lea ecx, [esp + 0x100]
push eax
push ecx
call fcn.0048a330
add esp, 0x14
test eax, eax
jl 0x4883aa
lea edx, [esp + 0xf4]
lea eax, [esp + 0x1e0]
push edx
lea ecx, [esp + 0xf8]
push eax
push ecx
call fcn.0048a590
inc word [esi]
lea edx, [esp + 0x1ec]
lea eax, [esp + 0x100]
push edx
push eax
call fcn.0048a330
add esp, 0x14
test eax, eax
jge 0x48836e
test ebx, ebx
je 0x488415
mov eax, dword [esp + 0xf4]
mov ebp, dword [esp + 0xf8]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
test ebx, ebx
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], ebp
jle 0x4880df
cmp eax, dword [esp + 0x1e0]
jge 0x4880df
mov word [esi], 0
mov eax, dword [esp + 0xf4]
mov ebp, dword [esp + 0xf8]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
mov dword [esp + 0xf4], eax
test ebx, ebx
mov dword [esp + 0xf8], ebp
jg 0x4883d8
jmp 0x4880df
mov eax, dword [esp + 0x378]
test eax, eax
jle 0x488437
mov ecx, dword [esp + 0x37c]
cmp word [ecx + eax*2 - 2], 0
jne 0x488437
dec eax
mov dword [esp + 0x378], eax
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x48844e
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0xf4]
push edx
push eax
jmp 0x488470
mov ecx, dword [esp + 0x1c]
push eax
lea edx, [esp + 0xf8]
push ecx
push edx
call fcn.0048a400
add esp, 0xc
jmp 0x488478
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x4c]
push eax
push ecx
call fcn.0048a2f0
add esp, 8
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x4c]
push edx
push eax
call fcn.0048a2f0
mov eax, dword [esp + 0x28]
add esp, 8
mov cl, byte [esp + 0x3ac]
test cl, cl
je 0x488b5d
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x48864a
cmp dword [eax], 0
je 0x48864a
lea edx, [esp + 0x3bd8]
mov dword [esp + 0x618], edx
mov edi, dword [eax]
mov edx, ecx
xor eax, eax
add edx, edi
test edx, edx
mov dword [esp + 0x1c], edx
jle 0x4884e9
mov ecx, edx
mov edx, dword [esp + 0x618]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x4884d2
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x20]
cmp ecx, dword [eax]
jl 0x4884f9
lea esi, [esp + 0x44]
mov ebp, eax
jmp 0x4884ff
mov esi, eax
lea ebp, [esp + 0x44]
lea eax, [esp + 0x3bd8]
mov dword [esp + 0x298], 0
mov dword [esp + 0x29c], eax
mov eax, dword [ebp]
xor ebx, ebx
mov dword [esp + 0x24], ebp
test eax, eax
jle 0x488618
mov ecx, dword [ebp + 4]
mov eax, dword [esi]
test eax, eax
mov di, word [ecx + ebx*2]
je 0x4885e8
test di, di
je 0x4885e8
cmp di, 1
jne 0x488557
lea edx, [esp + 0x298]
push edx
push esi
jmp 0x4885d8
lea edx, [esp + 0x3de0]
xor eax, eax
mov dword [esp + 0x608], edx
mov ecx, dword [esi]
test ecx, ecx
jl 0x488581
lea ecx, [esp + 0x3de0]
mov word [ecx], 0
inc eax
add ecx, 2
cmp eax, dword [esi]
jle 0x488574
mov ecx, dword [esi]
xor eax, eax
test ecx, ecx
jle 0x4885b7
mov ecx, edi
and ecx, 0xffff
mov edi, dword [esi + 4]
xor ebp, ebp
mov bp, word [edi + eax*2]
mov edi, dword [edx + eax*2]
imul ebp, ecx
add edi, ebp
mov dword [edx + eax*2], edi
mov edx, dword [esi]
inc eax
cmp eax, edx
mov edx, dword [esp + 0x608]
jl 0x488591
mov ebp, dword [esp + 0x24]
mov eax, dword [esi]
cmp word [edx + eax*2], 0
je 0x4885c1
inc eax
lea ecx, [esp + 0x298]
lea edx, [esp + 0x604]
push ecx
mov dword [esp + 0x608], eax
push edx
lea eax, [esp + 0x2a0]
push eax
call fcn.0048a490
add esp, 0xc
mov eax, dword [esp + 0x298]
test eax, eax
jle 0x4885fb
dec eax
mov dword [esp + 0x298], eax
mov edx, dword [esp + 0x29c]
add edx, 2
inc ebx
mov dword [esp + 0x29c], edx
mov eax, dword [ebp]
cmp ebx, eax
jl 0x488529
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x618]
cmp word [ecx + eax*2 - 2], 0
jne 0x48862c
dec eax
mov dword [esp + 0x614], eax
lea edx, [esp + 0x44]
lea eax, [esp + 0x614]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x488652
mov dword [esp + 0x44], 0
lea edx, [esp + 0x44]
lea esi, [esp + 0x44]
lea ecx, [esp + 0xc968]
mov dword [esp + 0x20], esi
test edx, edx
mov dword [esp + 0x2d4], ecx
jne 0x488689
lea eax, [esp + 0xca6c]
lea esi, [esp + 0x7f4]
mov dword [esp + 0x7f8], eax
mov dword [esp + 0x20], esi
mov eax, dword [esp + 0x44]
xor edi, edi
cmp eax, edi
jne 0x4886a1
mov dword [esp + 0x2d0], edi
mov dword [esi], edi
jmp 0x488b6b
cmp dword [esp + 0x10], 1
jne 0x4886ce
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x4886ce
lea edx, [esp + 0x2d0]
lea eax, [esp + 0x44]
push edx
push eax
call fcn.0048a2f0
add esp, 8
mov dword [esi], edi
jmp 0x488b6b
lea ecx, [esp + 0x10]
lea edx, [esp + 0x44]
push ecx
push edx
call fcn.0048a330
add esp, 8
test eax, eax
jge 0x4886f5
mov dword [esp + 0x2d0], edi
push esi
lea eax, [esp + 0x48]
jmp 0x488b62
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ax, word [edx + ecx*2 - 2]
xor ecx, ecx
cmp ax, di
mov dword [esp + 0x18], eax
je 0x488716
shr ax, 1
inc ecx
cmp ax, di
jne 0x48870d
mov esi, 0x10
lea edx, [esp + 0x855c]
sub esi, ecx
lea ecx, [esp + 0x803c]
mov dword [esp + 0x24], esi
mov dword [esp + 0x750], ecx
mov dword [esp + 0x14c], edx
jne 0x488768
lea eax, [esp + 0x74c]
lea ecx, [esp + 0x44]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x150]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.0048a2f0
add esp, 0x10
jmp 0x488791
lea ecx, [esp + 0x74c]
push esi
lea edx, [esp + 0x48]
push ecx
push edx
call fcn.0048a380
lea eax, [esp + 0x154]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.0048a380
add esp, 0x18
mov eax, dword [esp + 0x74c]
mov edx, dword [esp + 0x148]
mov esi, dword [esp + 0x2d4]
sub eax, edx
mov ebx, eax
mov edi, 2
lea ecx, [eax + 1]
mov eax, edx
mov edx, dword [esp + 0x750]
mov dword [esp + 0x2d0], ecx
lea esi, [esi + ecx*2 - 2]
mov dword [esp + 0x104], eax
lea ecx, [edx + ebx*2]
mov dword [esp + 0x108], ecx
test eax, eax
jne 0x4887ea
mov word [esi], ax
mov dword [esp + 0x104], eax
jmp 0x488aa2
cmp dword [esp + 0x148], 1
jne 0x48889b
cmp eax, 1
jne 0x48884b
mov edx, dword [esp + 0x108]
xor eax, eax
xor ecx, ecx
mov ax, word [edx]
mov edx, dword [esp + 0x14c]
mov cx, word [edx]
cdq
idiv ecx
xor edx, edx
mov word [esi], ax
mov ecx, dword [esp + 0x14c]
imul ax, word [ecx]
mov ecx, dword [esp + 0x108]
sub word [ecx], ax
mov eax, dword [esp + 0x108]
cmp word [eax], dx
setne dl
mov dword [esp + 0x104], edx
jmp 0x488aa2
mov ecx, dword [esp + 0x108]
mov edx, dword [esp + 0x14c]
xor ebp, ebp
mov ecx, dword [ecx]
mov bp, word [edx]
mov eax, ecx
xor edx, edx
div ebp
mov word [esi], ax
mov edx, dword [esp + 0x14c]
imul ax, word [edx]
sub ecx, eax
mov eax, dword [esp + 0x108]
mov word [eax], cx
mov edx, dword [esp + 0x108]
xor ecx, ecx
cmp word [edx], cx
setne cl
mov dword [esp + 0x104], ecx
jmp 0x488aa2
lea eax, [esp + 0x104]
lea ecx, [esp + 0x104]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x150]
lea eax, [esp + 0x10c]
push edx
push eax
call fcn.0048a330
add esp, 0x10
test eax, eax
jge 0x4888d6
mov word [esi], 0
jmp 0x488aa2
mov eax, dword [esp + 0x104]
mov ecx, dword [esp + 0x148]
cmp eax, ecx
jne 0x48890e
mov ebp, dword [esp + 0x14c]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ebp, dword [esp + 0x108]
mov ecx, edx
xor edx, edx
mov dx, word [ebp + eax*2 - 2]
inc ecx
mov eax, edx
cdq
idiv ecx
jmp 0x48892e
mov edx, dword [esp + 0x108]
mov ebp, dword [esp + 0x14c]
mov eax, dword [edx + eax*2 - 4]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ecx, edx
xor edx, edx
inc ecx
div ecx
lea edx, [esp + 0xb310]
mov word [esi], ax
mov dword [esp + 0x44c], edx
mov edx, dword [esp + 0x148]
mov dword [esp + 0x448], 0
mov ax, word [esi]
test edx, edx
mov dword [esp + 0x18], eax
je 0x488a2d
test ax, ax
je 0x488a2d
cmp ax, 1
jne 0x488994
lea eax, [esp + 0x448]
lea ecx, [esp + 0x148]
push eax
lea edx, [esp + 0x44c]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
jmp 0x488a2d
lea ebp, [esp + 0x3fe8]
test edx, edx
mov dword [esp + 0x628], ebp
jl 0x4889bb
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x3fe8]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x4889f8
mov ecx, dword [esp + 0x18]
and ecx, 0xffff
mov edi, dword [esp + 0x14c]
xor edx, edx
mov dx, word [edi + eax*2]
mov edi, dword [ebp + eax*2]
imul edx, ecx
add edi, edx
mov dword [ebp + eax*2], edi
mov edx, dword [esp + 0x148]
mov ebp, dword [esp + 0x628]
inc eax
cmp eax, edx
jl 0x4889cb
cmp word [ebp + edx*2], 0
je 0x488a01
inc edx
lea eax, [esp + 0x448]
mov dword [esp + 0x624], edx
lea ecx, [esp + 0x624]
push eax
lea edx, [esp + 0x44c]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
mov edi, 2
lea eax, [esp + 0x104]
lea ecx, [esp + 0x448]
push eax
lea edx, [esp + 0x108]
push ecx
push edx
call fcn.0048a590
lea eax, [esp + 0x154]
lea ecx, [esp + 0x110]
push eax
push ecx
call fcn.0048a330
add esp, 0x14
test eax, eax
jl 0x488aa2
lea edx, [esp + 0x104]
lea eax, [esp + 0x148]
push edx
lea ecx, [esp + 0x108]
push eax
push ecx
call fcn.0048a590
inc word [esi]
lea edx, [esp + 0x154]
lea eax, [esp + 0x110]
push edx
push eax
call fcn.0048a330
add esp, 0x14
test eax, eax
jge 0x488a66
test ebx, ebx
je 0x488b0d
mov eax, dword [esp + 0x104]
mov ebp, dword [esp + 0x108]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
test ebx, ebx
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], ebp
jle 0x4887d7
cmp eax, dword [esp + 0x148]
jge 0x4887d7
mov word [esi], 0
mov eax, dword [esp + 0x104]
mov ebp, dword [esp + 0x108]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
mov dword [esp + 0x104], eax
test ebx, ebx
mov dword [esp + 0x108], ebp
jg 0x488ad0
jmp 0x4887d7
mov eax, dword [esp + 0x2d0]
test eax, eax
jle 0x488b2f
mov ecx, dword [esp + 0x2d4]
cmp word [ecx + eax*2 - 2], 0
jne 0x488b2f
dec eax
mov dword [esp + 0x2d0], eax
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x488b45
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x104]
push edx
jmp 0x488b62
mov ecx, dword [esp + 0x20]
push eax
lea edx, [esp + 0x108]
push ecx
push edx
call fcn.0048a400
add esp, 0xc
jmp 0x488b6b
lea ecx, [esp + 0x44]
push ecx
push eax
call fcn.0048a2f0
add esp, 8
mov esi, dword [esp + 0x13c]
lea edx, [esp + 0x44]
push esi
push edx
call fcn.0048a2f0
mov eax, dword [esp + 0x3ac]
add esp, 8
test eax, eax
je 0x488ba9
lea eax, [esp + 0x34]
mov dword [esp + 0x3a4], 0
push eax
push esi
call fcn.0048a2f0
add esp, 8
jmp 0x489953
mov dword [esp + 0x24], 8
mov edx, dword [esp + 0x34]
xor eax, eax
cmp edx, eax
je 0x488d38
lea edi, [edx + edx]
lea ecx, [esp + 0x910]
cmp edi, eax
mov dword [esp + 0x648], ecx
mov dword [esp + 0x18], edi
jle 0x488bef
mov edx, dword [esp + 0x648]
inc eax
cmp eax, edi
mov word [edx + eax*2 - 2], 0
jl 0x488bd8
mov edx, dword [esp + 0x34]
lea eax, [esp + 0x910]
xor ebx, ebx
test edx, edx
mov dword [esp + 0x2ac], eax
mov dword [esp + 0x2a8], 0
jle 0x488d0a
mov ecx, dword [esp + 0x38]
test edx, edx
mov bp, word [ecx + ebx*2]
je 0x488cdd
test bp, bp
je 0x488cdd
cmp bp, 1
jne 0x488c4b
lea edx, [esp + 0x2a8]
lea eax, [esp + 0x34]
push edx
lea ecx, [esp + 0x2ac]
push eax
push ecx
jmp 0x488cd1
lea esi, [esp + 0x43f8]
test edx, edx
mov dword [esp + 0x638], esi
jl 0x488c76
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x43f8]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
mov edi, dword [esp + 0x18]
xor eax, eax
test edx, edx
jle 0x488caa
mov ecx, ebp
and ecx, 0xffff
mov ebp, dword [esp + 0x38]
xor edx, edx
mov dx, word [ebp + eax*2]
mov ebp, dword [esi + eax*2]
imul edx, ecx
add ebp, edx
mov dword [esi + eax*2], ebp
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x638]
inc eax
cmp eax, edx
jl 0x488c84
cmp word [esi + edx*2], 0
je 0x488cb2
inc edx
lea eax, [esp + 0x2a8]
mov dword [esp + 0x634], edx
lea ecx, [esp + 0x634]
push eax
lea edx, [esp + 0x2ac]
push ecx
push edx
call fcn.0048a490
mov edx, dword [esp + 0x40]
add esp, 0xc
mov eax, dword [esp + 0x2a8]
test eax, eax
jle 0x488cf0
dec eax
mov dword [esp + 0x2a8], eax
mov esi, dword [esp + 0x2ac]
add esi, 2
inc ebx
cmp ebx, edx
mov dword [esp + 0x2ac], esi
jl 0x488c12
mov eax, dword [esp + 0x648]
cmp word [eax + edi*2 - 2], 0
jne 0x488d1a
dec edi
lea ecx, [esp + 0x34]
lea edx, [esp + 0x644]
push ecx
push edx
mov dword [esp + 0x64c], edi
call fcn.0048a2f0
add esp, 8
jmp 0x488d3c
mov dword [esp + 0x34], eax
lea ecx, [esp + 0x34]
lea esi, [esp + 0x34]
lea eax, [esp + 0xcc74]
mov dword [esp + 0x20], esi
test ecx, ecx
mov dword [esp + 0x38c], eax
jne 0x488d73
lea edx, [esp + 0xcd78]
lea esi, [esp + 0x804]
mov dword [esp + 0x808], edx
mov dword [esp + 0x20], esi
mov eax, dword [esp + 0x34]
xor edi, edi
cmp eax, edi
jne 0x488d8b
mov dword [esp + 0x388], edi
mov dword [esi], edi
jmp 0x489260
cmp dword [esp + 0x10], 1
jne 0x488db8
mov eax, dword [esp + 0x14]
cmp word [eax], 1
jne 0x488db8
lea ecx, [esp + 0x388]
lea edx, [esp + 0x34]
push ecx
push edx
call fcn.0048a2f0
add esp, 8
mov dword [esi], edi
jmp 0x489260
lea eax, [esp + 0x10]
lea ecx, [esp + 0x34]
push eax
push ecx
call fcn.0048a330
add esp, 8
test eax, eax
jge 0x488de8
lea edx, [esp + 0x34]
push esi
push edx
mov dword [esp + 0x390], edi
call fcn.0048a2f0
add esp, 8
jmp 0x489260
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dx, word [ecx + eax*2 - 2]
xor ecx, ecx
mov ax, dx
mov dword [esp + 0x18], edx
cmp ax, di
je 0x488e0c
shr ax, 1
inc ecx
cmp ax, di
jne 0x488e03
mov esi, 0x10
lea eax, [esp + 0x8248]
sub esi, ecx
lea ecx, [esp + 0x8868]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x760], eax
mov dword [esp + 0x154], ecx
jne 0x488e5e
lea edx, [esp + 0x75c]
lea eax, [esp + 0x34]
push edx
push eax
call fcn.0048a2f0
lea ecx, [esp + 0x158]
lea edx, [esp + 0x18]
push ecx
push edx
call fcn.0048a2f0
add esp, 0x10
jmp 0x488e87
lea eax, [esp + 0x75c]
push esi
lea ecx, [esp + 0x38]
push eax
push ecx
call fcn.0048a380
lea edx, [esp + 0x15c]
push esi
lea eax, [esp + 0x20]
push edx
push eax
call fcn.0048a380
add esp, 0x18
mov eax, dword [esp + 0x75c]
mov edx, dword [esp + 0x150]
mov esi, dword [esp + 0x38c]
sub eax, edx
mov ebx, eax
mov edi, 2
lea ecx, [eax + 1]
mov eax, edx
mov dword [esp + 0x388], ecx
mov dword [esp + 0x114], eax
lea esi, [esi + ecx*2 - 2]
mov ecx, dword [esp + 0x760]
lea edx, [ecx + ebx*2]
mov dword [esp + 0x118], edx
test eax, eax
jne 0x488ee0
mov word [esi], ax
mov dword [esp + 0x114], eax
jmp 0x48919e
cmp dword [esp + 0x150], 1
jne 0x488f97
cmp eax, 1
jne 0x488f44
mov ecx, dword [esp + 0x118]
mov edx, dword [esp + 0x154]
xor eax, eax
mov ax, word [ecx]
xor ecx, ecx
mov cx, word [edx]
cdq
idiv ecx
mov word [esi], ax
mov ecx, dword [esp + 0x154]
mov dx, word [ecx]
imul dx, ax
mov eax, dword [esp + 0x118]
sub word [eax], dx
mov ecx, dword [esp + 0x118]
xor eax, eax
cmp word [ecx], ax
setne al
mov dword [esp + 0x114], eax
jmp 0x48919e
mov edx, dword [esp + 0x118]
mov eax, dword [esp + 0x154]
xor ebp, ebp
mov ecx, dword [edx]
mov bp, word [eax]
mov eax, ecx
xor edx, edx
div ebp
mov word [esi], ax
mov edx, dword [esp + 0x154]
mov dx, word [edx]
imul dx, ax
mov eax, dword [esp + 0x118]
sub ecx, edx
mov word [eax], cx
mov edx, dword [esp + 0x118]
xor ecx, ecx
cmp word [edx], cx
setne cl
mov dword [esp + 0x114], ecx
jmp 0x48919e
lea eax, [esp + 0x114]
lea ecx, [esp + 0x114]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x158]
lea eax, [esp + 0x11c]
push edx
push eax
call fcn.0048a330
add esp, 0x10
test eax, eax
jge 0x488fd2
mov word [esi], 0
jmp 0x48919e
mov eax, dword [esp + 0x114]
mov ecx, dword [esp + 0x150]
cmp eax, ecx
jne 0x48900a
mov ebp, dword [esp + 0x154]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ebp, dword [esp + 0x118]
mov ecx, edx
xor edx, edx
mov dx, word [ebp + eax*2 - 2]
inc ecx
mov eax, edx
cdq
idiv ecx
jmp 0x48902a
mov edx, dword [esp + 0x118]
mov ebp, dword [esp + 0x154]
mov eax, dword [edx + eax*2 - 4]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ecx, edx
xor edx, edx
inc ecx
div ecx
lea edx, [esp + 0xd390]
mov word [esi], ax
mov dword [esp + 0x45c], edx
mov edx, dword [esp + 0x150]
mov dword [esp + 0x458], 0
mov ax, word [esi]
test edx, edx
mov dword [esp + 0x18], eax
je 0x489129
test ax, ax
je 0x489129
cmp ax, 1
jne 0x489090
lea eax, [esp + 0x458]
lea ecx, [esp + 0x150]
push eax
lea edx, [esp + 0x45c]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
jmp 0x489129
lea ebp, [esp + 0x4600]
test edx, edx
mov dword [esp + 0x658], ebp
jl 0x4890b7
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x4600]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x4890f4
mov ecx, dword [esp + 0x18]
and ecx, 0xffff
mov edi, dword [esp + 0x154]
xor edx, edx
mov dx, word [edi + eax*2]
mov edi, dword [ebp + eax*2]
imul edx, ecx
add edi, edx
mov dword [ebp + eax*2], edi
mov edx, dword [esp + 0x150]
mov ebp, dword [esp + 0x658]
inc eax
cmp eax, edx
jl 0x4890c7
cmp word [ebp + edx*2], 0
je 0x4890fd
inc edx
lea eax, [esp + 0x458]
mov dword [esp + 0x654], edx
lea ecx, [esp + 0x654]
push eax
lea edx, [esp + 0x45c]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
mov edi, 2
lea eax, [esp + 0x114]
lea ecx, [esp + 0x458]
push eax
lea edx, [esp + 0x118]
push ecx
push edx
call fcn.0048a590
lea eax, [esp + 0x15c]
lea ecx, [esp + 0x120]
push eax
push ecx
call fcn.0048a330
add esp, 0x14
test eax, eax
jl 0x48919e
lea edx, [esp + 0x114]
lea eax, [esp + 0x150]
push edx
lea ecx, [esp + 0x118]
push eax
push ecx
call fcn.0048a590
inc word [esi]
lea edx, [esp + 0x15c]
lea eax, [esp + 0x120]
push edx
push eax
call fcn.0048a330
add esp, 0x14
test eax, eax
jge 0x489162
test ebx, ebx
je 0x489209
mov eax, dword [esp + 0x114]
mov ebp, dword [esp + 0x118]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
test ebx, ebx
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], ebp
jle 0x488ecd
cmp eax, dword [esp + 0x150]
jge 0x488ecd
mov word [esi], 0
mov eax, dword [esp + 0x114]
mov ebp, dword [esp + 0x118]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
mov dword [esp + 0x114], eax
test ebx, ebx
mov dword [esp + 0x118], ebp
jg 0x4891cc
jmp 0x488ecd
mov eax, dword [esp + 0x388]
test eax, eax
jle 0x48922b
mov ecx, dword [esp + 0x38c]
cmp word [ecx + eax*2 - 2], 0
jne 0x48922b
dec eax
mov dword [esp + 0x388], eax
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x48924a
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x114]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x489260
mov ecx, dword [esp + 0x20]
push eax
lea edx, [esp + 0x118]
push ecx
push edx
call fcn.0048a400
add esp, 0xc
mov eax, dword [esp + 0x24]
dec eax
mov dword [esp + 0x24], eax
jne 0x488bb1
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x489424
mov eax, dword [esp + 0x13c]
cmp dword [eax], 0
je 0x489424
lea edx, [esp + 0x4808]
mov dword [esp + 0x678], edx
mov edx, dword [eax]
add edx, ecx
xor eax, eax
test edx, edx
mov dword [esp + 0x20], edx
jle 0x4892c0
mov ecx, edx
mov edx, dword [esp + 0x678]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x4892a9
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x13c]
cmp ecx, dword [eax]
jl 0x4892d3
lea esi, [esp + 0x34]
mov ebp, eax
jmp 0x4892d9
mov esi, eax
lea ebp, [esp + 0x34]
lea eax, [esp + 0x4808]
mov dword [esp + 0x208], 0
mov dword [esp + 0x20c], eax
mov eax, dword [ebp]
xor ebx, ebx
mov dword [esp + 0x24], ebp
test eax, eax
jle 0x4893f2
mov ecx, dword [ebp + 4]
mov eax, dword [esi]
test eax, eax
mov di, word [ecx + ebx*2]
je 0x4893c2
test di, di
je 0x4893c2
cmp di, 1
jne 0x489331
lea edx, [esp + 0x208]
push edx
push esi
jmp 0x4893b2
lea edx, [esp + 0x4a10]
xor eax, eax
mov dword [esp + 0x668], edx
mov ecx, dword [esi]
test ecx, ecx
jl 0x48935b
lea ecx, [esp + 0x4a10]
mov word [ecx], 0
inc eax
add ecx, 2
cmp eax, dword [esi]
jle 0x48934e
mov ecx, dword [esi]
xor eax, eax
test ecx, ecx
jle 0x489391
mov ecx, edi
and ecx, 0xffff
mov edi, dword [esi + 4]
xor ebp, ebp
mov bp, word [edi + eax*2]
mov edi, dword [edx + eax*2]
imul ebp, ecx
add edi, ebp
mov dword [edx + eax*2], edi
mov edx, dword [esi]
inc eax
cmp eax, edx
mov edx, dword [esp + 0x668]
jl 0x48936b
mov ebp, dword [esp + 0x24]
mov eax, dword [esi]
cmp word [edx + eax*2], 0
je 0x48939b
inc eax
lea ecx, [esp + 0x208]
lea edx, [esp + 0x664]
push ecx
mov dword [esp + 0x668], eax
push edx
lea eax, [esp + 0x210]
push eax
call fcn.0048a490
add esp, 0xc
mov eax, dword [esp + 0x208]
test eax, eax
jle 0x4893d5
dec eax
mov dword [esp + 0x208], eax
mov edx, dword [esp + 0x20c]
add edx, 2
inc ebx
mov dword [esp + 0x20c], edx
mov eax, dword [ebp]
cmp ebx, eax
jl 0x489303
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x678]
cmp word [ecx + eax*2 - 2], 0
jne 0x489406
dec eax
mov dword [esp + 0x674], eax
lea edx, [esp + 0x34]
lea eax, [esp + 0x674]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x48942c
mov dword [esp + 0x34], 0
lea edx, [esp + 0x34]
lea esi, [esp + 0x34]
lea ecx, [esp + 0xcf80]
mov dword [esp + 0x13c], esi
test edx, edx
mov dword [esp + 0x2e4], ecx
jne 0x489469
lea eax, [esp + 0xd084]
lea esi, [esp + 0x814]
mov dword [esp + 0x818], eax
mov dword [esp + 0x13c], esi
mov eax, dword [esp + 0x34]
xor edi, edi
cmp eax, edi
jne 0x489481
mov dword [esp + 0x2e0], edi
mov dword [esi], edi
jmp 0x489953
cmp dword [esp + 0x10], 1
jne 0x4894ae
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x4894ae
lea edx, [esp + 0x2e0]
lea eax, [esp + 0x34]
push edx
push eax
call fcn.0048a2f0
add esp, 8
mov dword [esi], edi
jmp 0x489953
lea ecx, [esp + 0x10]
lea edx, [esp + 0x34]
push ecx
push edx
call fcn.0048a330
add esp, 8
test eax, eax
jge 0x4894de
lea eax, [esp + 0x34]
push esi
push eax
mov dword [esp + 0x2e8], edi
call fcn.0048a2f0
add esp, 8
jmp 0x489953
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ax, word [edx + ecx*2 - 2]
xor ecx, ecx
cmp ax, di
mov dword [esp + 0x18], eax
je 0x4894ff
shr ax, 1
inc ecx
cmp ax, di
jne 0x4894f6
mov esi, 0x10
lea edx, [esp + 0x8b74]
sub esi, ecx
lea ecx, [esp + 0x8454]
mov dword [esp + 0x24], esi
mov dword [esp + 0x770], ecx
mov dword [esp + 0x16c], edx
jne 0x489551
lea eax, [esp + 0x76c]
lea ecx, [esp + 0x34]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x170]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.0048a2f0
add esp, 0x10
jmp 0x48957a
lea ecx, [esp + 0x76c]
push esi
lea edx, [esp + 0x38]
push ecx
push edx
call fcn.0048a380
lea eax, [esp + 0x174]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.0048a380
add esp, 0x18
mov eax, dword [esp + 0x76c]
mov edx, dword [esp + 0x168]
mov esi, dword [esp + 0x2e4]
sub eax, edx
mov ebx, eax
mov edi, 2
lea ecx, [eax + 1]
mov eax, edx
mov edx, dword [esp + 0x770]
mov dword [esp + 0x2e0], ecx
lea esi, [esi + ecx*2 - 2]
mov dword [esp + 0xec], eax
lea ecx, [edx + ebx*2]
mov dword [esp + 0xf0], ecx
test eax, eax
jne 0x4895d3
mov word [esi], ax
mov dword [esp + 0xec], eax
jmp 0x48988b
cmp dword [esp + 0x168], 1
jne 0x489684
cmp eax, 1
jne 0x489634
mov edx, dword [esp + 0xf0]
xor eax, eax
xor ecx, ecx
mov ax, word [edx]
mov edx, dword [esp + 0x16c]
mov cx, word [edx]
cdq
idiv ecx
xor edx, edx
mov word [esi], ax
mov ecx, dword [esp + 0x16c]
imul ax, word [ecx]
mov ecx, dword [esp + 0xf0]
sub word [ecx], ax
mov eax, dword [esp + 0xf0]
cmp word [eax], dx
setne dl
mov dword [esp + 0xec], edx
jmp 0x48988b
mov ecx, dword [esp + 0xf0]
mov edx, dword [esp + 0x16c]
xor ebp, ebp
mov ecx, dword [ecx]
mov bp, word [edx]
mov eax, ecx
xor edx, edx
div ebp
mov word [esi], ax
mov edx, dword [esp + 0x16c]
imul ax, word [edx]
sub ecx, eax
mov eax, dword [esp + 0xf0]
mov word [eax], cx
mov edx, dword [esp + 0xf0]
xor ecx, ecx
cmp word [edx], cx
setne cl
mov dword [esp + 0xec], ecx
jmp 0x48988b
lea eax, [esp + 0xec]
lea ecx, [esp + 0xec]
push eax
push ecx
call fcn.0048a2f0
lea edx, [esp + 0x170]
lea eax, [esp + 0xf4]
push edx
push eax
call fcn.0048a330
add esp, 0x10
test eax, eax
jge 0x4896bf
mov word [esi], 0
jmp 0x48988b
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0x168]
cmp eax, ecx
jne 0x4896f7
mov ebp, dword [esp + 0x16c]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ebp, dword [esp + 0xf0]
mov ecx, edx
xor edx, edx
mov dx, word [ebp + eax*2 - 2]
inc ecx
mov eax, edx
cdq
idiv ecx
jmp 0x489717
mov edx, dword [esp + 0xf0]
mov ebp, dword [esp + 0x16c]
mov eax, dword [edx + eax*2 - 4]
xor edx, edx
mov dx, word [ebp + ecx*2 - 2]
mov ecx, edx
xor edx, edx
inc ecx
div ecx
lea edx, [esp + 0x512c]
mov word [esi], ax
mov dword [esp + 0x46c], edx
mov edx, dword [esp + 0x168]
mov dword [esp + 0x468], 0
mov ax, word [esi]
test edx, edx
mov dword [esp + 0x18], eax
je 0x489816
test ax, ax
je 0x489816
cmp ax, 1
jne 0x48977d
lea eax, [esp + 0x468]
lea ecx, [esp + 0x168]
push eax
lea edx, [esp + 0x46c]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
jmp 0x489816
lea ebp, [esp + 0x4c18]
test edx, edx
mov dword [esp + 0x688], ebp
jl 0x4897a4
lea ecx, [edx + 1]
xor eax, eax
lea edi, [esp + 0x4c18]
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
xor eax, eax
test edx, edx
jle 0x4897e1
mov ecx, dword [esp + 0x18]
and ecx, 0xffff
mov edi, dword [esp + 0x16c]
xor edx, edx
mov dx, word [edi + eax*2]
mov edi, dword [ebp + eax*2]
imul edx, ecx
add edi, edx
mov dword [ebp + eax*2], edi
mov edx, dword [esp + 0x168]
mov ebp, dword [esp + 0x688]
inc eax
cmp eax, edx
jl 0x4897b4
cmp word [ebp + edx*2], 0
je 0x4897ea
inc edx
lea eax, [esp + 0x468]
mov dword [esp + 0x684], edx
lea ecx, [esp + 0x684]
push eax
lea edx, [esp + 0x46c]
push ecx
push edx
call fcn.0048a490
add esp, 0xc
mov edi, 2
lea eax, [esp + 0xec]
lea ecx, [esp + 0x468]
push eax
lea edx, [esp + 0xf0]
push ecx
push edx
call fcn.0048a590
lea eax, [esp + 0x174]
lea ecx, [esp + 0xf8]
push eax
push ecx
call fcn.0048a330
add esp, 0x14
test eax, eax
jl 0x48988b
lea edx, [esp + 0xec]
lea eax, [esp + 0x168]
push edx
lea ecx, [esp + 0xf0]
push eax
push ecx
call fcn.0048a590
inc word [esi]
lea edx, [esp + 0x174]
lea eax, [esp + 0xf8]
push edx
push eax
call fcn.0048a330
add esp, 0x14
test eax, eax
jge 0x48984f
test ebx, ebx
je 0x4898f6
mov eax, dword [esp + 0xec]
mov ebp, dword [esp + 0xf0]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
test ebx, ebx
mov dword [esp + 0xec], eax
mov dword [esp + 0xf0], ebp
jle 0x4895c0
cmp eax, dword [esp + 0x168]
jge 0x4895c0
mov word [esi], 0
mov eax, dword [esp + 0xec]
mov ebp, dword [esp + 0xf0]
sub esi, edi
inc eax
sub ebp, edi
dec ebx
mov dword [esp + 0xec], eax
test ebx, ebx
mov dword [esp + 0xf0], ebp
jg 0x4898b9
jmp 0x4895c0
mov eax, dword [esp + 0x2e0]
test eax, eax
jle 0x489918
mov ecx, dword [esp + 0x2e4]
cmp word [ecx + eax*2 - 2], 0
jne 0x489918
dec eax
mov dword [esp + 0x2e0], eax
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x48993a
mov edx, dword [esp + 0x13c]
lea eax, [esp + 0xec]
push edx
push eax
call fcn.0048a2f0
add esp, 8
jmp 0x489953
mov ecx, dword [esp + 0x13c]
push eax
lea edx, [esp + 0xf0]
push ecx
push edx
call fcn.0048a400
add esp, 0xc
mov eax, dword [esp + 0x3bc]
dec eax
mov dword [esp + 0x3bc], eax
jns 0x47f4bc
mov eax, dword [esp + 0x3b8]
dec eax
mov dword [esp + 0x3b8], eax
jns 0x47f4b1
mov ebp, dword [esp + 0x1f500]
lea eax, [esp + 0x780]
lea ecx, [esp + 0x34]
push eax
push ecx
call fcn.0048a2f0
mov edx, dword [esp + 0x788]
mov ebx, dword [esp + 0x78c]
add esp, 8
lea eax, [edx + edx]
mov ecx, eax
lea esi, [ebx + eax - 1]
test ecx, ecx
mov edx, esi
jle 0x4899c1
cmp byte [edx], 0
jne 0x4899c1
dec ecx
dec edx
test ecx, ecx
jg 0x4899b6
cmp ecx, 0x11
ja 0x489a55
test eax, eax
lea edi, [esp + 0x788]
mov ecx, esi
jle 0x4899e2
cmp byte [ecx], 0
jne 0x4899e2
dec eax
dec ecx
test eax, eax
jg 0x4899d7
lea ecx, [esp + 0x788]
test ecx, ecx
je 0x4899ff
cmp eax, 1
mov ecx, ebx
jl 0x4899ff
mov esi, eax
mov dl, byte [ecx]
mov byte [edi], dl
inc edi
inc ecx
dec esi
jne 0x4899f6
mov cl, byte [esp + eax + 0x787]
test cl, cl
jne 0x489a31
sub eax, 0x10
cmp eax, 0x11
jge 0x489a55
lea esi, [esp + 0x789]
mov edx, 0x11
sub esi, ebp
lea ecx, [eax + ebp - 1]
sub edx, eax
mov al, byte [esi + ecx]
mov byte [ecx], al
inc ecx
dec edx
jne 0x489a26
jmp 0x489a55
sub eax, 0x11
cmp eax, 0x10
jge 0x489a55
lea esi, [esp + 0x788]
mov edx, 0x10
sub esi, ebp
lea ecx, [eax + ebp]
sub edx, eax
mov al, byte [esi + ecx]
mov byte [ecx], al
inc ecx
dec edx
jne 0x489a4c
lea ecx, [esp + 0x1f4f8]
mov byte [esp + 0x1f4e4], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1f4fc]
mov dword [esp + 0x1f4e4], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x1f4dc]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1f4d8
ret