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

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x4c0f10
push eax
mov eax, 0x1f4cc
mov dword fs:[0], esp
call fcn.00458e90
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.00489d4a
mov ebp, dword [esp + 0x1f50c]
lea eax, [esp + 0x884]
push 0x20
push eax
push ebp
call fcn.00489d4a
mov esi, dword [sym.imp.MSVCRT.dll_rand]
add esp, 0x18
call esi
sub al, 0x78
mov byte [esp + 0x874], al
je 0x47dc98
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 0x47dcbe
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 0x47dda8
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 0x47ddd0
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 0x47ddec
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 0x47de10
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 0x47de34
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 0x488344
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 0x47e51d
mov eax, dword [esp + 0x3a4]
test eax, eax
jne 0x488313
mov dword [esp + 0x13c], 8
mov edx, dword [esp + 0x34]
xor eax, eax
cmp edx, eax
je 0x47e044
lea edi, [edx + edx]
lea ecx, [esp + 0x41f0]
cmp edi, eax
mov dword [esp + 0x6a8], ecx
mov dword [esp + 0x24], edi
jle 0x47defb
mov edx, dword [esp + 0x6a8]
inc eax
cmp eax, edi
mov word [edx + eax*2 - 2], 0
jl 0x47dee4
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 0x47e016
mov ecx, dword [esp + 0x38]
test edx, edx
mov bp, word [ecx + ebx*2]
je 0x47dfe9
test bp, bp
je 0x47dfe9
cmp bp, 1
jne 0x47df57
lea edx, [esp + 0x260]
lea eax, [esp + 0x34]
push edx
lea ecx, [esp + 0x264]
push eax
push ecx
jmp 0x47dfdd
lea esi, [esp + 0xc1c]
test edx, edx
mov dword [esp + 0x698], esi
jl 0x47df82
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 0x47dfb6
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 0x47df90
cmp word [esi + edx*2], 0
je 0x47dfbe
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.00488e50
mov edx, dword [esp + 0x40]
add esp, 0xc
mov eax, dword [esp + 0x260]
test eax, eax
jle 0x47dffc
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 0x47df1e
mov eax, dword [esp + 0x6a8]
cmp word [eax + edi*2 - 2], 0
jne 0x47e026
dec edi
lea ecx, [esp + 0x34]
lea edx, [esp + 0x6a4]
push ecx
push edx
mov dword [esp + 0x6ac], edi
call fcn.00488cb0
add esp, 8
jmp 0x47e048
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 0x47e07f
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 0x47e097
mov dword [esp + 0x360], edi
mov dword [esi], edi
jmp 0x47e503
cmp dword [esp + 0x10], 1
jne 0x47e0c4
mov eax, dword [esp + 0x14]
cmp word [eax], 1
jne 0x47e0c4
lea ecx, [esp + 0x360]
lea edx, [esp + 0x34]
push ecx
push edx
call fcn.00488cb0
add esp, 8
mov dword [esi], edi
jmp 0x47e503
lea eax, [esp + 0x10]
lea ecx, [esp + 0x34]
push eax
push ecx
call fcn.00488cf0
add esp, 8
test eax, eax
jge 0x47e0f4
lea edx, [esp + 0x34]
push esi
push edx
mov dword [esp + 0x368], edi
call fcn.00488cb0
add esp, 8
jmp 0x47e503
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 0x47e118
shr ax, 1
inc ecx
cmp ax, di
jne 0x47e10f
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 0x47e16a
lea edx, [esp + 0x724]
lea eax, [esp + 0x34]
push edx
push eax
call fcn.00488cb0
lea ecx, [esp + 0x1f8]
lea edx, [esp + 0x18]
push ecx
push edx
call fcn.00488cb0
add esp, 0x10
jmp 0x47e193
lea eax, [esp + 0x724]
push esi
lea ecx, [esp + 0x38]
push eax
push ecx
call fcn.00488d40
lea edx, [esp + 0x1fc]
push esi
lea eax, [esp + 0x20]
push edx
push eax
call fcn.00488d40
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 0x47e1e3
mov word [esi], ax
mov dword [esp + 0x64], eax
jmp 0x47e45f
cmp dword [esp + 0x1f0], 1
jne 0x47e27c
cmp eax, 1
jne 0x47e238
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 0x47e45f
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 0x47e45f
lea eax, [esp + 0x64]
lea ecx, [esp + 0x64]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x1f8]
lea eax, [esp + 0x6c]
push edx
push eax
call fcn.00488cf0
add esp, 0x10
test eax, eax
jge 0x47e2ae
mov word [esi], 0
jmp 0x47e45f
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x1f0]
cmp eax, ecx
jne 0x47e2e0
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 0x47e2fd
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 0x47e3fc
test ax, ax
je 0x47e3fc
cmp ax, 1
jne 0x47e363
lea eax, [esp + 0x480]
lea ecx, [esp + 0x1f0]
push eax
lea edx, [esp + 0x484]
push ecx
push edx
call fcn.00488e50
add esp, 0xc
jmp 0x47e3fc
lea ebp, [esp + 0xb18]
test edx, edx
mov dword [esp + 0x4a4], ebp
jl 0x47e38a
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 0x47e3c7
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 0x47e39a
cmp word [ebp + edx*2], 0
je 0x47e3d0
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.00488e50
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.00488f50
lea eax, [esp + 0x1fc]
lea ecx, [esp + 0x70]
push eax
push ecx
call fcn.00488cf0
add esp, 0x14
test eax, eax
jl 0x47e45f
lea edx, [esp + 0x64]
lea eax, [esp + 0x1f0]
push edx
lea ecx, [esp + 0x68]
push eax
push ecx
call fcn.00488f50
inc word [esi]
lea edx, [esp + 0x1fc]
lea eax, [esp + 0x70]
push edx
push eax
call fcn.00488cf0
add esp, 0x14
test eax, eax
jge 0x47e42c
test ebx, ebx
je 0x47e4b2
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 0x47e1d3
cmp eax, dword [esp + 0x1f0]
jge 0x47e1d3
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 0x47e481
jmp 0x47e1d3
mov eax, dword [esp + 0x360]
test eax, eax
jle 0x47e4d4
mov ecx, dword [esp + 0x364]
cmp word [ecx + eax*2 - 2], 0
jne 0x47e4d4
dec eax
mov dword [esp + 0x360], eax
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x47e4f0
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x64]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x47e503
mov ecx, dword [esp + 0x28]
push eax
lea edx, [esp + 0x68]
push ecx
push edx
call fcn.00488dc0
add esp, 0xc
mov eax, dword [esp + 0x13c]
dec eax
mov dword [esp + 0x13c], eax
jne 0x47debd
jmp 0x488313
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 0x487569
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 0x482d27
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 0x48265d
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 0x4805de
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 0x47ff10
mov al, byte [esp + 0x3c4]
cmp al, 1
jne 0x47eab9
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 0x47e637
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 0x47e64f
mov dword [esp + 0x2f0], edi
mov dword [esi], edi
jmp 0x47ff10
cmp dword [esp + 0x10], 1
jne 0x47e678
cmp word [edx], 1
jne 0x47e678
lea edx, [esp + 0x2f0]
lea eax, [esp + 0x2c]
push edx
push eax
call fcn.00488cb0
add esp, 8
mov dword [esi], edi
jmp 0x47ff10
lea ecx, [esp + 0x10]
lea edx, [esp + 0x2c]
push ecx
push edx
call fcn.00488cf0
add esp, 8
test eax, eax
jge 0x47e6a8
lea eax, [esp + 0x2c]
push esi
push eax
mov dword [esp + 0x2f8], edi
call fcn.00488cb0
add esp, 8
jmp 0x47ff10
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 0x47e6c9
shr ax, 1
inc ecx
cmp ax, di
jne 0x47e6c0
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 0x47e71b
lea eax, [esp + 0x714]
lea ecx, [esp + 0x2c]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x148]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.00488cb0
add esp, 0x10
jmp 0x47e744
lea ecx, [esp + 0x714]
push esi
lea edx, [esp + 0x30]
push ecx
push edx
call fcn.00488d40
lea eax, [esp + 0x14c]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.00488d40
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 0x47e794
mov word [esi], ax
mov dword [esp + 0x74], eax
jmp 0x47ea16
cmp dword [esp + 0x140], 1
jne 0x47e82d
cmp eax, 1
jne 0x47e7e9
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 0x47ea16
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 0x47ea16
lea eax, [esp + 0x74]
lea ecx, [esp + 0x74]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x148]
lea eax, [esp + 0x7c]
push edx
push eax
call fcn.00488cf0
add esp, 0x10
test eax, eax
jge 0x47e85f
mov word [esi], 0
jmp 0x47ea16
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x140]
cmp eax, ecx
jne 0x47e891
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 0x47e8ae
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 0x47e9ad
test ax, ax
je 0x47e9ad
cmp ax, 1
jne 0x47e914
lea eax, [esp + 0x478]
lea ecx, [esp + 0x140]
push eax
lea edx, [esp + 0x47c]
push ecx
push edx
call fcn.00488e50
add esp, 0xc
jmp 0x47e9ad
lea ebp, [esp + 0x2c9c]
test edx, edx
mov dword [esp + 0x6a0], ebp
jl 0x47e93b
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 0x47e978
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 0x47e94b
cmp word [ebp + edx*2], 0
je 0x47e981
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.00488e50
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.00488f50
lea eax, [esp + 0x14c]
lea ecx, [esp + 0x80]
push eax
push ecx
call fcn.00488cf0
add esp, 0x14
test eax, eax
jl 0x47ea16
lea edx, [esp + 0x74]
lea eax, [esp + 0x140]
push edx
lea ecx, [esp + 0x78]
push eax
push ecx
call fcn.00488f50
inc word [esi]
lea edx, [esp + 0x14c]
lea eax, [esp + 0x80]
push edx
push eax
call fcn.00488cf0
add esp, 0x14
test eax, eax
jge 0x47e9e0
test ebx, ebx
je 0x47ea69
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 0x47e784
cmp eax, dword [esp + 0x140]
jge 0x47e784
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 0x47ea38
jmp 0x47e784
mov eax, dword [esp + 0x2f0]
test eax, eax
jle 0x47ea8b
mov ecx, dword [esp + 0x2f4]
cmp word [ecx + eax*2 - 2], 0
jne 0x47ea8b
dec eax
mov dword [esp + 0x2f0], eax
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x47eaaa
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x74]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x47ff10
mov ecx, dword [esp + 0x28]
push eax
push ecx
lea edx, [esp + 0x7c]
jmp 0x47ff07
lea ecx, [esp + 0xcb70]
cmp al, 2
mov dword [esp + 0x128], ecx
jne 0x47f16d
mov edx, dword [esp + 0x2c]
xor eax, eax
cmp edx, eax
je 0x47ec58
lea ecx, [esp + 0xe24]
mov dword [esp + 0x494], ecx
lea ecx, [edx + edx]
cmp ecx, eax
mov dword [esp + 0x20], ecx
jle 0x47eb0d
mov edx, dword [esp + 0x494]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x47eaf6
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 0x47ec23
mov ecx, dword [esp + 0x30]
test edx, edx
mov bp, word [ecx + ebx*2]
je 0x47ebf6
test bp, bp
je 0x47ebf6
cmp bp, 1
jne 0x47eb69
lea edx, [esp + 0x220]
lea eax, [esp + 0x2c]
push edx
lea ecx, [esp + 0x224]
push eax
push ecx
jmp 0x47ebea
lea esi, [esp + 0x3cdc]
test edx, edx
mov dword [esp + 0x4b4], esi
jl 0x47eb90
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 0x47ebc3
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 0x47eb9e
cmp word [esi + edx*2], 0
je 0x47ebcb
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.00488e50
mov edx, dword [esp + 0x38]
add esp, 0xc
mov eax, dword [esp + 0x220]
test eax, eax
jle 0x47ec09
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 0x47eb30
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x494]
cmp word [ecx + eax*2 - 2], 0
jne 0x47ec37
dec eax
mov dword [esp + 0x490], eax
lea edx, [esp + 0x124]
lea eax, [esp + 0x490]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x47ec5f
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 0x47ec9c
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 0x47ecb7
mov dword [esp + 0x340], edi
mov dword [esi], edi
jmp 0x47ff10
cmp dword [esp + 0x10], 1
jne 0x47ece7
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x47ece7
lea edx, [esp + 0x340]
lea eax, [esp + 0x124]
push edx
push eax
call fcn.00488cb0
add esp, 8
mov dword [esi], edi
jmp 0x47ff10
lea ecx, [esp + 0x10]
lea edx, [esp + 0x124]
push ecx
push edx
call fcn.00488cf0
add esp, 8
test eax, eax
jge 0x47ed1d
mov dword [esp + 0x340], edi
lea eax, [esp + 0x124]
push esi
push eax
call fcn.00488cb0
add esp, 8
jmp 0x47ff10
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 0x47ed3e
shr ax, 1
inc ecx
cmp ax, di
jne 0x47ed35
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 0x47ed93
lea eax, [esp + 0x6c4]
lea ecx, [esp + 0x124]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x160]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.00488cb0
add esp, 0x10
jmp 0x47edbf
lea ecx, [esp + 0x6c4]
push esi
lea edx, [esp + 0x128]
push ecx
push edx
call fcn.00488d40
lea eax, [esp + 0x164]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.00488d40
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 0x47ee12
mov word [esi], ax
mov dword [esp + 0x7c], eax
jmp 0x47f0bb
cmp dword [esp + 0x158], 1
jne 0x47eec3
cmp eax, 1
jne 0x47ee73
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 0x47f0bb
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 0x47f0bb
lea eax, [esp + 0x7c]
lea ecx, [esp + 0x7c]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x160]
lea eax, [esp + 0x84]
push edx
push eax
call fcn.00488cf0
add esp, 0x10
test eax, eax
jge 0x47eef8
mov word [esi], 0
jmp 0x47f0bb
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x158]
cmp eax, ecx
jne 0x47ef2d
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 0x47ef4d
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 0x47f04c
test ax, ax
je 0x47f04c
cmp ax, 1
jne 0x47efb3
lea eax, [esp + 0x488]
lea ecx, [esp + 0x158]
push eax
lea edx, [esp + 0x48c]
push ecx
push edx
call fcn.00488e50
add esp, 0xc
jmp 0x47f04c
lea ebp, [esp + 0x102c]
test edx, edx
mov dword [esp + 0x4c4], ebp
jl 0x47efda
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 0x47f017
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 0x47efea
cmp word [ebp + edx*2], 0
je 0x47f020
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.00488e50
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.00488f50
lea eax, [esp + 0x164]
lea ecx, [esp + 0x88]
push eax
push ecx
call fcn.00488cf0
add esp, 0x14
test eax, eax
jl 0x47f0bb
lea edx, [esp + 0x7c]
lea eax, [esp + 0x158]
push edx
lea ecx, [esp + 0x80]
push eax
push ecx
call fcn.00488f50
inc word [esi]
lea edx, [esp + 0x164]
lea eax, [esp + 0x88]
push edx
push eax
call fcn.00488cf0
add esp, 0x14
test eax, eax
jge 0x47f082
test ebx, ebx
je 0x47f11a
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 0x47ee02
cmp eax, dword [esp + 0x158]
jge 0x47ee02
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 0x47f0e3
jmp 0x47ee02
mov eax, dword [esp + 0x340]
test eax, eax
jle 0x47f13c
mov ecx, dword [esp + 0x344]
cmp word [ecx + eax*2 - 2], 0
jne 0x47f13c
dec eax
mov dword [esp + 0x340], eax
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x47f15b
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x7c]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x47ff10
mov ecx, dword [esp + 0x28]
push eax
push ecx
lea edx, [esp + 0x84]
jmp 0x47ff07
cmp al, 3
jne 0x47ff10
mov edx, dword [esp + 0x2c]
xor eax, eax
cmp edx, eax
je 0x47f2fe
lea ecx, [esp + 0x2ea4]
mov dword [esp + 0x4d4], ecx
lea ecx, [edx + edx]
cmp ecx, eax
mov dword [esp + 0x20], ecx
jle 0x47f1b3
mov edx, dword [esp + 0x4d4]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x47f19c
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 0x47f2c9
mov ecx, dword [esp + 0x30]
test edx, edx
mov bp, word [ecx + ebx*2]
je 0x47f29c
test bp, bp
je 0x47f29c
cmp bp, 1
jne 0x47f20f
lea edx, [esp + 0x2a0]
lea eax, [esp + 0x2c]
push edx
lea ecx, [esp + 0x2a4]
push eax
push ecx
jmp 0x47f290
lea esi, [esp + 0x1234]
test edx, edx
mov dword [esp + 0x630], esi
jl 0x47f236
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 0x47f269
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 0x47f244
cmp word [esi + edx*2], 0
je 0x47f271
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.00488e50
mov edx, dword [esp + 0x38]
add esp, 0xc
mov eax, dword [esp + 0x2a0]
test eax, eax
jle 0x47f2af
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 0x47f1d6
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x4d4]
cmp word [ecx + eax*2 - 2], 0
jne 0x47f2dd
dec eax
mov dword [esp + 0x4d0], eax
lea edx, [esp + 0x124]
lea eax, [esp + 0x4d0]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x47f305
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 0x47f342
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 0x47f35d
mov dword [esp + 0x300], edi
mov dword [esi], edi
jmp 0x47f83e
cmp dword [esp + 0x10], 1
jne 0x47f38d
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x47f38d
lea edx, [esp + 0x300]
lea eax, [esp + 0x124]
push edx
push eax
call fcn.00488cb0
add esp, 8
mov dword [esi], edi
jmp 0x47f83e
lea ecx, [esp + 0x10]
lea edx, [esp + 0x124]
push ecx
push edx
call fcn.00488cf0
add esp, 8
test eax, eax
jge 0x47f3c3
lea eax, [esp + 0x124]
push esi
push eax
mov dword [esp + 0x308], edi
call fcn.00488cb0
add esp, 8
jmp 0x47f83e
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 0x47f3e4
shr ax, 1
inc ecx
cmp ax, di
jne 0x47f3db
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 0x47f439
lea eax, [esp + 0x764]
lea ecx, [esp + 0x124]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x208]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.00488cb0
add esp, 0x10
jmp 0x47f465
lea ecx, [esp + 0x764]
push esi
lea edx, [esp + 0x128]
push ecx
push edx
call fcn.00488d40
lea eax, [esp + 0x20c]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.00488d40
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 0x47f4be
mov word [esi], ax
mov dword [esp + 0xcc], eax
jmp 0x47f77c
cmp dword [esp + 0x200], 1
jne 0x47f575
cmp eax, 1
jne 0x47f522
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 0x47f77c
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 0x47f77c
lea eax, [esp + 0xcc]
lea ecx, [esp + 0xcc]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x208]
lea eax, [esp + 0xd4]
push edx
push eax
call fcn.00488cf0
add esp, 0x10
test eax, eax
jge 0x47f5b0
mov word [esi], 0
jmp 0x47f77c
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0x200]
cmp eax, ecx
jne 0x47f5e8
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 0x47f608
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 0x47f707
test ax, ax
je 0x47f707
cmp ax, 1
jne 0x47f66e
lea eax, [esp + 0x430]
lea ecx, [esp + 0x200]
push eax
lea edx, [esp + 0x434]
push ecx
push edx
call fcn.00488e50
add esp, 0xc
jmp 0x47f707
lea ebp, [esp + 0x44fc]
test edx, edx
mov dword [esp + 0x5c0], ebp
jl 0x47f695
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 0x47f6d2
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 0x47f6a5
cmp word [ebp + edx*2], 0
je 0x47f6db
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.00488e50
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.00488f50
lea eax, [esp + 0x20c]
lea ecx, [esp + 0xd8]
push eax
push ecx
call fcn.00488cf0
add esp, 0x14
test eax, eax
jl 0x47f77c
lea edx, [esp + 0xcc]
lea eax, [esp + 0x200]
push edx
lea ecx, [esp + 0xd0]
push eax
push ecx
call fcn.00488f50
inc word [esi]
lea edx, [esp + 0x20c]
lea eax, [esp + 0xd8]
push edx
push eax
call fcn.00488cf0
add esp, 0x14
test eax, eax
jge 0x47f740
test ebx, ebx
je 0x47f7e7
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 0x47f4ab
cmp eax, dword [esp + 0x200]
jge 0x47f4ab
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 0x47f7aa
jmp 0x47f4ab
mov eax, dword [esp + 0x300]
test eax, eax
jle 0x47f809
mov ecx, dword [esp + 0x304]
cmp word [ecx + eax*2 - 2], 0
jne 0x47f809
dec eax
mov dword [esp + 0x300], eax
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x47f828
mov edx, dword [esp + 0x28]
lea eax, [esp + 0xcc]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x47f83e
mov ecx, dword [esp + 0x28]
push eax
lea edx, [esp + 0xd0]
push ecx
push edx
call fcn.00488dc0
add esp, 0xc
mov edx, dword [esp + 0x124]
xor eax, eax
cmp edx, eax
je 0x47f9fa
mov ecx, dword [esp + 0x2c]
cmp ecx, eax
je 0x47f9fa
lea esi, [esp + 0x143c]
mov dword [esp + 0x670], esi
lea esi, [edx + ecx]
cmp esi, eax
mov dword [esp + 0x1c], esi
jle 0x47f894
mov ecx, esi
mov edx, dword [esp + 0x670]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x47f876
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x124]
cmp edx, ecx
jl 0x47f8a5
lea esi, [esp + 0x124]
lea ebp, [esp + 0x2c]
jmp 0x47f8b0
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 0x47f9c5
mov ecx, dword [ebp + 4]
mov eax, dword [esi]
test eax, eax
mov di, word [ecx + ebx*2]
je 0x47f995
test di, di
je 0x47f995
cmp di, 1
jne 0x47f904
lea edx, [esp + 0x230]
push edx
push esi
jmp 0x47f985
lea edx, [esp + 0x30ac]
xor eax, eax
mov dword [esp + 0x4e4], edx
mov ecx, dword [esi]
test ecx, ecx
jl 0x47f92e
lea ecx, [esp + 0x30ac]
mov word [ecx], 0
inc eax
add ecx, 2
cmp eax, dword [esi]
jle 0x47f921
mov ecx, dword [esi]
xor eax, eax
test ecx, ecx
jle 0x47f964
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 0x47f93e
mov ebp, dword [esp + 0x20]
mov eax, dword [esi]
cmp word [edx + eax*2], 0
je 0x47f96e
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.00488e50
add esp, 0xc
mov eax, dword [esp + 0x230]
test eax, eax
jle 0x47f9a8
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 0x47f8d6
mov ecx, dword [esp + 0x670]
mov eax, dword [esp + 0x1c]
cmp word [ecx + eax*2 - 2], 0
jne 0x47f9d9
dec eax
mov dword [esp + 0x66c], eax
lea edx, [esp + 0x124]
lea eax, [esp + 0x66c]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x47fa01
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 0x47fa3e
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 0x47fa59
mov dword [esp + 0x380], edi
mov dword [esi], edi
jmp 0x47ff10
cmp dword [esp + 0x10], 1
jne 0x47fa76
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x47fa76
lea edx, [esp + 0x380]
jmp 0x47eccf
lea ecx, [esp + 0x10]
lea edx, [esp + 0x124]
push ecx
push edx
call fcn.00488cf0
add esp, 8
test eax, eax
jge 0x47fa9b
mov dword [esp + 0x380], edi
jmp 0x47ed07
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 0x47fabc
shr ax, 1
inc ecx
cmp ax, di
jne 0x47fab3
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 0x47fb11
lea eax, [esp + 0x6d4]
lea ecx, [esp + 0x124]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x1c0]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.00488cb0
add esp, 0x10
jmp 0x47fb3d
lea ecx, [esp + 0x6d4]
push esi
lea edx, [esp + 0x128]
push ecx
push edx
call fcn.00488d40
lea eax, [esp + 0x1c4]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.00488d40
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 0x47fb96
mov word [esi], ax
mov dword [esp + 0x8c], eax
jmp 0x47fe4e
cmp dword [esp + 0x1b8], 1
jne 0x47fc47
cmp eax, 1
jne 0x47fbf7
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 0x47fe4e
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 0x47fe4e
lea eax, [esp + 0x8c]
lea ecx, [esp + 0x8c]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x1c0]
lea eax, [esp + 0x94]
push edx
push eax
call fcn.00488cf0
add esp, 0x10
test eax, eax
jge 0x47fc82
mov word [esi], 0
jmp 0x47fe4e
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x1b8]
cmp eax, ecx
jne 0x47fcba
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 0x47fcda
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 0x47fdd9
test ax, ax
je 0x47fdd9
cmp ax, 1
jne 0x47fd40
lea eax, [esp + 0x3e0]
lea ecx, [esp + 0x1b8]
push eax
lea edx, [esp + 0x3e4]
push ecx
push edx
call fcn.00488e50
add esp, 0xc
jmp 0x47fdd9
lea ebp, [esp + 0x1644]
test edx, edx
mov dword [esp + 0x4f4], ebp
jl 0x47fd67
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 0x47fda4
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 0x47fd77
cmp word [ebp + edx*2], 0
je 0x47fdad
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.00488e50
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.00488f50
lea eax, [esp + 0x1c4]
lea ecx, [esp + 0x98]
push eax
push ecx
call fcn.00488cf0
add esp, 0x14
test eax, eax
jl 0x47fe4e
lea edx, [esp + 0x8c]
lea eax, [esp + 0x1b8]
push edx
lea ecx, [esp + 0x90]
push eax
push ecx
call fcn.00488f50
inc word [esi]
lea edx, [esp + 0x1c4]
lea eax, [esp + 0x98]
push edx
push eax
call fcn.00488cf0
add esp, 0x14
test eax, eax
jge 0x47fe12
test ebx, ebx
je 0x47feb9
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 0x47fb83
cmp eax, dword [esp + 0x1b8]
jge 0x47fb83
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 0x47fe7c
jmp 0x47fb83
mov eax, dword [esp + 0x380]
test eax, eax
jle 0x47fedb
mov ecx, dword [esp + 0x384]
cmp word [ecx + eax*2 - 2], 0
jne 0x47fedb
dec eax
mov dword [esp + 0x380], eax
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x47fefa
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x8c]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x47ff10
mov ecx, dword [esp + 0x28]
push eax
push ecx
lea edx, [esp + 0x94]
push edx
call fcn.00488dc0
add esp, 0xc
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x3c]
push eax
push ecx
call fcn.00488cb0
add esp, 8
mov dword [esp + 0x1c], 2
mov edx, dword [esp + 0x3c]
xor eax, eax
cmp edx, eax
je 0x4800b0
lea ecx, [esp + 0x3ee4]
mov dword [esp + 0x504], ecx
lea ecx, [edx + edx]
cmp ecx, eax
mov dword [esp + 0x20], ecx
jle 0x47ff68
mov edx, dword [esp + 0x504]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x47ff51
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 0x48007e
mov ecx, dword [esp + 0x40]
test edx, edx
mov bp, word [ecx + ebx*2]
je 0x480051
test bp, bp
je 0x480051
cmp bp, 1
jne 0x47ffc4
lea edx, [esp + 0x270]
lea eax, [esp + 0x3c]
push edx
lea ecx, [esp + 0x274]
push eax
push ecx
jmp 0x480045
lea esi, [esp + 0x184c]
test edx, edx
mov dword [esp + 0x5d0], esi
jl 0x47ffeb
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 0x48001e
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 0x47fff9
cmp word [esi + edx*2], 0
je 0x480026
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.00488e50
mov edx, dword [esp + 0x48]
add esp, 0xc
mov eax, dword [esp + 0x270]
test eax, eax
jle 0x480064
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 0x47ff8b
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x504]
cmp word [ecx + eax*2 - 2], 0
jne 0x480092
dec eax
mov dword [esp + 0x500], eax
lea edx, [esp + 0x3c]
lea eax, [esp + 0x500]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x4800b4
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 0x4800eb
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 0x480103
mov dword [esp + 0x310], edi
mov dword [esi], edi
jmp 0x4805cf
cmp dword [esp + 0x10], 1
jne 0x480130
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x480130
lea edx, [esp + 0x310]
lea eax, [esp + 0x3c]
push edx
push eax
call fcn.00488cb0
add esp, 8
mov dword [esi], edi
jmp 0x4805cf
lea ecx, [esp + 0x10]
lea edx, [esp + 0x3c]
push ecx
push edx
call fcn.00488cf0
add esp, 8
test eax, eax
jge 0x480160
lea eax, [esp + 0x3c]
push esi
push eax
mov dword [esp + 0x318], edi
call fcn.00488cb0
add esp, 8
jmp 0x4805cf
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 0x480181
shr ax, 1
inc ecx
cmp ax, di
jne 0x480178
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 0x4801d3
lea eax, [esp + 0x734]
lea ecx, [esp + 0x3c]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x180]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.00488cb0
add esp, 0x10
jmp 0x4801fc
lea ecx, [esp + 0x734]
push esi
lea edx, [esp + 0x40]
push ecx
push edx
call fcn.00488d40
lea eax, [esp + 0x184]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.00488d40
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 0x480255
mov word [esi], ax
mov dword [esp + 0x10c], eax
jmp 0x48050d
cmp dword [esp + 0x178], 1
jne 0x480306
cmp eax, 1
jne 0x4802b6
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 0x48050d
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 0x48050d
lea eax, [esp + 0x10c]
lea ecx, [esp + 0x10c]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x180]
lea eax, [esp + 0x114]
push edx
push eax
call fcn.00488cf0
add esp, 0x10
test eax, eax
jge 0x480341
mov word [esi], 0
jmp 0x48050d
mov eax, dword [esp + 0x10c]
mov ecx, dword [esp + 0x178]
cmp eax, ecx
jne 0x480379
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 0x480399
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 0x480498
test ax, ax
je 0x480498
cmp ax, 1
jne 0x4803ff
lea eax, [esp + 0x460]
lea ecx, [esp + 0x178]
push eax
lea edx, [esp + 0x464]
push ecx
push edx
call fcn.00488e50
add esp, 0xc
jmp 0x480498
lea ebp, [esp + 0x32b4]
test edx, edx
mov dword [esp + 0x640], ebp
jl 0x480426
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 0x480463
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 0x480436
cmp word [ebp + edx*2], 0
je 0x48046c
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.00488e50
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.00488f50
lea eax, [esp + 0x184]
lea ecx, [esp + 0x118]
push eax
push ecx
call fcn.00488cf0
add esp, 0x14
test eax, eax
jl 0x48050d
lea edx, [esp + 0x10c]
lea eax, [esp + 0x178]
push edx
lea ecx, [esp + 0x110]
push eax
push ecx
call fcn.00488f50
inc word [esi]
lea edx, [esp + 0x184]
lea eax, [esp + 0x118]
push edx
push eax
call fcn.00488cf0
add esp, 0x14
test eax, eax
jge 0x4804d1
test ebx, ebx
je 0x480578
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 0x480242
cmp eax, dword [esp + 0x178]
jge 0x480242
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 0x48053b
jmp 0x480242
mov eax, dword [esp + 0x310]
test eax, eax
jle 0x48059a
mov ecx, dword [esp + 0x314]
cmp word [ecx + eax*2 - 2], 0
jne 0x48059a
dec eax
mov dword [esp + 0x310], eax
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x4805b9
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x10c]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x4805cf
mov ecx, dword [esp + 0x28]
push eax
lea edx, [esp + 0x110]
push ecx
push edx
call fcn.00488dc0
add esp, 0xc
mov eax, dword [esp + 0x1c]
dec eax
mov dword [esp + 0x1c], eax
jne 0x47ff2a
mov al, byte [esp + 0x3b4]
test al, al
je 0x482647
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 0x481f5a
mov al, byte [esp + 0x3b4]
cmp al, 1
jne 0x480b42
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 0x48065f
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 0x480677
mov dword [esp + 0x350], edi
mov dword [esi], edi
jmp 0x481f5a
cmp dword [esp + 0x10], 1
jne 0x4806a4
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x4806a4
lea edx, [esp + 0x350]
lea eax, [esp + 0x2c]
push edx
push eax
call fcn.00488cb0
add esp, 8
mov dword [esi], edi
jmp 0x481f5a
lea ecx, [esp + 0x10]
lea edx, [esp + 0x2c]
push ecx
push edx
call fcn.00488cf0
add esp, 8
test eax, eax
jge 0x4806d4
lea eax, [esp + 0x2c]
push esi
push eax
mov dword [esp + 0x358], edi
call fcn.00488cb0
add esp, 8
jmp 0x481f5a
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 0x4806f5
shr ax, 1
inc ecx
cmp ax, di
jne 0x4806ec
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 0x480747
lea eax, [esp + 0x6e4]
lea ecx, [esp + 0x2c]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x200]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.00488cb0
add esp, 0x10
jmp 0x480770
lea ecx, [esp + 0x6e4]
push esi
lea edx, [esp + 0x30]
push ecx
push edx
call fcn.00488d40
lea eax, [esp + 0x204]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.00488d40
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 0x4807c9
mov word [esi], ax
mov dword [esp + 0x9c], eax
jmp 0x480a81
cmp dword [esp + 0x1f8], 1
jne 0x48087a
cmp eax, 1
jne 0x48082a
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 0x480a81
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 0x480a81
lea eax, [esp + 0x9c]
lea ecx, [esp + 0x9c]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x200]
lea eax, [esp + 0xa4]
push edx
push eax
call fcn.00488cf0
add esp, 0x10
test eax, eax
jge 0x4808b5
mov word [esi], 0
jmp 0x480a81
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x1f8]
cmp eax, ecx
jne 0x4808ed
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 0x48090d
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 0x480a0c
test ax, ax
je 0x480a0c
cmp ax, 1
jne 0x480973
lea eax, [esp + 0x3f0]
lea ecx, [esp + 0x1f8]
push eax
lea edx, [esp + 0x3f4]
push ecx
push edx
call fcn.00488e50
add esp, 0xc
jmp 0x480a0c
lea ebp, [esp + 0x1a54]
test edx, edx
mov dword [esp + 0x514], ebp
jl 0x48099a
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 0x4809d7
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 0x4809aa
cmp word [ebp + edx*2], 0
je 0x4809e0
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.00488e50
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.00488f50
lea eax, [esp + 0x204]
lea ecx, [esp + 0xa8]
push eax
push ecx
call fcn.00488cf0
add esp, 0x14
test eax, eax
jl 0x480a81
lea edx, [esp + 0x9c]
lea eax, [esp + 0x1f8]
push edx
lea ecx, [esp + 0xa0]
push eax
push ecx
call fcn.00488f50
inc word [esi]
lea edx, [esp + 0x204]
lea eax, [esp + 0xa8]
push edx
push eax
call fcn.00488cf0
add esp, 0x14
test eax, eax
jge 0x480a45
test ebx, ebx
je 0x480aec
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 0x4807b6
cmp eax, dword [esp + 0x1f8]
jge 0x4807b6
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 0x480aaf
jmp 0x4807b6
mov eax, dword [esp + 0x350]
test eax, eax
jle 0x480b0e
mov ecx, dword [esp + 0x354]
cmp word [ecx + eax*2 - 2], 0
jne 0x480b0e
dec eax
mov dword [esp + 0x350], eax
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x480b30
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x9c]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x481f5a
mov ecx, dword [esp + 0x28]
push eax
push ecx
lea edx, [esp + 0xa4]
jmp 0x481f51
lea ecx, [esp + 0x6290]
cmp al, 2
mov dword [esp + 0x138], ecx
jne 0x4811b7
mov edx, dword [esp + 0x2c]
xor eax, eax
cmp edx, eax
je 0x480ce1
lea ecx, [esp + 0x490c]
mov dword [esp + 0x524], ecx
lea ecx, [edx + edx]
cmp ecx, eax
mov dword [esp + 0x20], ecx
jle 0x480b96
mov edx, dword [esp + 0x524]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x480b7f
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 0x480cac
mov ecx, dword [esp + 0x30]
test edx, edx
mov bp, word [ecx + ebx*2]
je 0x480c7f
test bp, bp
je 0x480c7f
cmp bp, 1
jne 0x480bf2
lea edx, [esp + 0x240]
lea eax, [esp + 0x2c]
push edx
lea ecx, [esp + 0x244]
push eax
push ecx
jmp 0x480c73
lea esi, [esp + 0x1c5c]
test edx, edx
mov dword [esp + 0x5e0], esi
jl 0x480c19
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 0x480c4c
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 0x480c27
cmp word [esi + edx*2], 0
je 0x480c54
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.00488e50
mov edx, dword [esp + 0x38]
add esp, 0xc
mov eax, dword [esp + 0x240]
test eax, eax
jle 0x480c92
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 0x480bb9
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x524]
cmp word [ecx + eax*2 - 2], 0
jne 0x480cc0
dec eax
mov dword [esp + 0x520], eax
lea edx, [esp + 0x134]
lea eax, [esp + 0x520]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x480ce8
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 0x480d25
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 0x480d40
mov dword [esp + 0x320], edi
mov dword [esi], edi
jmp 0x481f5a
cmp dword [esp + 0x10], 1
jne 0x480d70
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x480d70
lea edx, [esp + 0x320]
lea eax, [esp + 0x134]
push edx
push eax
call fcn.00488cb0
add esp, 8
mov dword [esi], edi
jmp 0x481f5a
lea ecx, [esp + 0x10]
lea edx, [esp + 0x134]
push ecx
push edx
call fcn.00488cf0
add esp, 8
test eax, eax
jge 0x480da6
mov dword [esp + 0x320], edi
lea eax, [esp + 0x134]
push esi
push eax
call fcn.00488cb0
add esp, 8
jmp 0x481f5a
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 0x480dc7
shr ax, 1
inc ecx
cmp ax, di
jne 0x480dbe
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 0x480e1c
lea eax, [esp + 0x754]
lea ecx, [esp + 0x134]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x190]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.00488cb0
add esp, 0x10
jmp 0x480e48
lea ecx, [esp + 0x754]
push esi
lea edx, [esp + 0x138]
push ecx
push edx
call fcn.00488d40
lea eax, [esp + 0x194]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.00488d40
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 0x480e98
mov word [esi], ax
mov dword [esp + 0x54], eax
jmp 0x481114
cmp dword [esp + 0x188], 1
jne 0x480f31
cmp eax, 1
jne 0x480eed
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 0x481114
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 0x481114
lea eax, [esp + 0x54]
lea ecx, [esp + 0x54]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x190]
lea eax, [esp + 0x5c]
push edx
push eax
call fcn.00488cf0
add esp, 0x10
test eax, eax
jge 0x480f63
mov word [esi], 0
jmp 0x481114
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x188]
cmp eax, ecx
jne 0x480f95
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 0x480fb2
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 0x4810b1
test ax, ax
je 0x4810b1
cmp ax, 1
jne 0x481018
lea eax, [esp + 0x440]
lea ecx, [esp + 0x188]
push eax
lea edx, [esp + 0x444]
push ecx
push edx
call fcn.00488e50
add esp, 0xc
jmp 0x4810b1
lea ebp, [esp + 0x34bc]
test edx, edx
mov dword [esp + 0x690], ebp
jl 0x48103f
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 0x48107c
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 0x48104f
cmp word [ebp + edx*2], 0
je 0x481085
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.00488e50
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.00488f50
lea eax, [esp + 0x194]
lea ecx, [esp + 0x60]
push eax
push ecx
call fcn.00488cf0
add esp, 0x14
test eax, eax
jl 0x481114
lea edx, [esp + 0x54]
lea eax, [esp + 0x188]
push edx
lea ecx, [esp + 0x58]
push eax
push ecx
call fcn.00488f50
inc word [esi]
lea edx, [esp + 0x194]
lea eax, [esp + 0x60]
push edx
push eax
call fcn.00488cf0
add esp, 0x14
test eax, eax
jge 0x4810e1
test ebx, ebx
je 0x481167
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 0x480e88
cmp eax, dword [esp + 0x188]
jge 0x480e88
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 0x481136
jmp 0x480e88
mov eax, dword [esp + 0x320]
test eax, eax
jle 0x481189
mov ecx, dword [esp + 0x324]
cmp word [ecx + eax*2 - 2], 0
jne 0x481189
dec eax
mov dword [esp + 0x320], eax
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x4811a8
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x54]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x481f5a
mov ecx, dword [esp + 0x28]
push eax
push ecx
lea edx, [esp + 0x5c]
jmp 0x481f51
cmp al, 3
jne 0x481f5a
mov edx, dword [esp + 0x2c]
xor eax, eax
cmp edx, eax
je 0x481348
lea ecx, [esp + 0x1e64]
mov dword [esp + 0x5f0], ecx
lea ecx, [edx + edx]
cmp ecx, eax
mov dword [esp + 0x20], ecx
jle 0x4811fd
mov edx, dword [esp + 0x5f0]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x4811e6
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 0x481313
mov ecx, dword [esp + 0x30]
test edx, edx
mov bp, word [ecx + ebx*2]
je 0x4812e6
test bp, bp
je 0x4812e6
cmp bp, 1
jne 0x481259
lea edx, [esp + 0x290]
lea eax, [esp + 0x2c]
push edx
lea ecx, [esp + 0x294]
push eax
push ecx
jmp 0x4812da
lea esi, [esp + 0x40ec]
test edx, edx
mov dword [esp + 0x534], esi
jl 0x481280
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 0x4812b3
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 0x48128e
cmp word [esi + edx*2], 0
je 0x4812bb
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.00488e50
mov edx, dword [esp + 0x38]
add esp, 0xc
mov eax, dword [esp + 0x290]
test eax, eax
jle 0x4812f9
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 0x481220
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x5f0]
cmp word [ecx + eax*2 - 2], 0
jne 0x481327
dec eax
mov dword [esp + 0x5ec], eax
lea edx, [esp + 0x134]
lea eax, [esp + 0x5ec]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x48134f
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 0x48138c
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 0x4813a7
mov dword [esp + 0x370], edi
mov dword [esi], edi
jmp 0x481882
cmp dword [esp + 0x10], 1
jne 0x4813d7
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x4813d7
lea edx, [esp + 0x370]
lea eax, [esp + 0x134]
push edx
push eax
call fcn.00488cb0
add esp, 8
mov dword [esi], edi
jmp 0x481882
lea ecx, [esp + 0x10]
lea edx, [esp + 0x134]
push ecx
push edx
call fcn.00488cf0
add esp, 8
test eax, eax
jge 0x48140d
lea eax, [esp + 0x134]
push esi
push eax
mov dword [esp + 0x378], edi
call fcn.00488cb0
add esp, 8
jmp 0x481882
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 0x48142e
shr ax, 1
inc ecx
cmp ax, di
jne 0x481425
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 0x481483
lea eax, [esp + 0x6f4]
lea ecx, [esp + 0x134]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x1d0]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.00488cb0
add esp, 0x10
jmp 0x4814af
lea ecx, [esp + 0x6f4]
push esi
lea edx, [esp + 0x138]
push ecx
push edx
call fcn.00488d40
lea eax, [esp + 0x1d4]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.00488d40
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 0x481508
mov word [esi], ax
mov dword [esp + 0xdc], eax
jmp 0x4817c0
cmp dword [esp + 0x1c8], 1
jne 0x4815b9
cmp eax, 1
jne 0x481569
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 0x4817c0
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 0x4817c0
lea eax, [esp + 0xdc]
lea ecx, [esp + 0xdc]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x1d0]
lea eax, [esp + 0xe4]
push edx
push eax
call fcn.00488cf0
add esp, 0x10
test eax, eax
jge 0x4815f4
mov word [esi], 0
jmp 0x4817c0
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0x1c8]
cmp eax, ecx
jne 0x48162c
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 0x48164c
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 0x48174b
test ax, ax
je 0x48174b
cmp ax, 1
jne 0x4816b2
lea eax, [esp + 0x400]
lea ecx, [esp + 0x1c8]
push eax
lea edx, [esp + 0x404]
push ecx
push edx
call fcn.00488e50
add esp, 0xc
jmp 0x48174b
lea ebp, [esp + 0x206c]
test edx, edx
mov dword [esp + 0x544], ebp
jl 0x4816d9
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 0x481716
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 0x4816e9
cmp word [ebp + edx*2], 0
je 0x48171f
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.00488e50
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.00488f50
lea eax, [esp + 0x1d4]
lea ecx, [esp + 0xe8]
push eax
push ecx
call fcn.00488cf0
add esp, 0x14
test eax, eax
jl 0x4817c0
lea edx, [esp + 0xdc]
lea eax, [esp + 0x1c8]
push edx
lea ecx, [esp + 0xe0]
push eax
push ecx
call fcn.00488f50
inc word [esi]
lea edx, [esp + 0x1d4]
lea eax, [esp + 0xe8]
push edx
push eax
call fcn.00488cf0
add esp, 0x14
test eax, eax
jge 0x481784
test ebx, ebx
je 0x48182b
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 0x4814f5
cmp eax, dword [esp + 0x1c8]
jge 0x4814f5
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 0x4817ee
jmp 0x4814f5
mov eax, dword [esp + 0x370]
test eax, eax
jle 0x48184d
mov ecx, dword [esp + 0x374]
cmp word [ecx + eax*2 - 2], 0
jne 0x48184d
dec eax
mov dword [esp + 0x370], eax
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x48186c
mov edx, dword [esp + 0x28]
lea eax, [esp + 0xdc]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x481882
mov ecx, dword [esp + 0x28]
push eax
lea edx, [esp + 0xe0]
push ecx
push edx
call fcn.00488dc0
add esp, 0xc
mov edx, dword [esp + 0x134]
xor eax, eax
cmp edx, eax
je 0x481a3e
mov ecx, dword [esp + 0x2c]
cmp ecx, eax
je 0x481a3e
lea esi, [esp + 0x36c4]
mov dword [esp + 0x554], esi
lea esi, [edx + ecx]
cmp esi, eax
mov dword [esp + 0x28], esi
jle 0x4818d8
mov ecx, esi
mov edx, dword [esp + 0x554]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x4818ba
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x134]
cmp edx, ecx
jl 0x4818e9
lea esi, [esp + 0x134]
lea ebp, [esp + 0x2c]
jmp 0x4818f4
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 0x481a09
mov ecx, dword [ebp + 4]
mov eax, dword [esi]
test eax, eax
mov di, word [ecx + ebx*2]
je 0x4819d9
test di, di
je 0x4819d9
cmp di, 1
jne 0x481948
lea edx, [esp + 0x250]
push edx
push esi
jmp 0x4819c9
lea edx, [esp + 0x2274]
xor eax, eax
mov dword [esp + 0x650], edx
mov ecx, dword [esi]
test ecx, ecx
jl 0x481972
lea ecx, [esp + 0x2274]
mov word [ecx], 0
inc eax
add ecx, 2
cmp eax, dword [esi]
jle 0x481965
mov ecx, dword [esi]
xor eax, eax
test ecx, ecx
jle 0x4819a8
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 0x481982
mov ebp, dword [esp + 0x20]
mov eax, dword [esi]
cmp word [edx + eax*2], 0
je 0x4819b2
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.00488e50
add esp, 0xc
mov eax, dword [esp + 0x250]
test eax, eax
jle 0x4819ec
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 0x48191a
mov ecx, dword [esp + 0x554]
mov eax, dword [esp + 0x28]
cmp word [ecx + eax*2 - 2], 0
jne 0x481a1d
dec eax
mov dword [esp + 0x550], eax
lea edx, [esp + 0x134]
lea eax, [esp + 0x550]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x481a45
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 0x481a82
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 0x481a9d
mov dword [esp + 0x330], edi
mov dword [esi], edi
jmp 0x481f5a
cmp dword [esp + 0x10], 1
jne 0x481aba
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x481aba
lea edx, [esp + 0x330]
jmp 0x480d58
lea ecx, [esp + 0x10]
lea edx, [esp + 0x134]
push ecx
push edx
call fcn.00488cf0
add esp, 8
test eax, eax
jge 0x481adf
mov dword [esp + 0x330], edi
jmp 0x480d90
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 0x481b00
shr ax, 1
inc ecx
cmp ax, di
jne 0x481af7
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 0x481b55
lea eax, [esp + 0x704]
lea ecx, [esp + 0x134]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x1a0]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.00488cb0
add esp, 0x10
jmp 0x481b81
lea ecx, [esp + 0x704]
push esi
lea edx, [esp + 0x138]
push ecx
push edx
call fcn.00488d40
lea eax, [esp + 0x1a4]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.00488d40
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 0x481bda
mov word [esi], ax
mov dword [esp + 0xac], eax
jmp 0x481e98
cmp dword [esp + 0x198], 1
jne 0x481c91
cmp eax, 1
jne 0x481c3e
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 0x481e98
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 0x481e98
lea eax, [esp + 0xac]
lea ecx, [esp + 0xac]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x1a0]
lea eax, [esp + 0xb4]
push edx
push eax
call fcn.00488cf0
add esp, 0x10
test eax, eax
jge 0x481ccc
mov word [esi], 0
jmp 0x481e98
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0x198]
cmp eax, ecx
jne 0x481d04
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 0x481d24
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 0x481e23
test ax, ax
je 0x481e23
cmp ax, 1
jne 0x481d8a
lea eax, [esp + 0x3c8]
lea ecx, [esp + 0x198]
push eax
lea edx, [esp + 0x3cc]
push ecx
push edx
call fcn.00488e50
add esp, 0xc
jmp 0x481e23
lea ebp, [esp + 0x4704]
test edx, edx
mov dword [esp + 0x600], ebp
jl 0x481db1
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 0x481dee
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 0x481dc1
cmp word [ebp + edx*2], 0
je 0x481df7
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.00488e50
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.00488f50
lea eax, [esp + 0x1a4]
lea ecx, [esp + 0xb8]
push eax
push ecx
call fcn.00488cf0
add esp, 0x14
test eax, eax
jl 0x481e98
lea edx, [esp + 0xac]
lea eax, [esp + 0x198]
push edx
lea ecx, [esp + 0xb0]
push eax
push ecx
call fcn.00488f50
inc word [esi]
lea edx, [esp + 0x1a4]
lea eax, [esp + 0xb8]
push edx
push eax
call fcn.00488cf0
add esp, 0x14
test eax, eax
jge 0x481e5c
test ebx, ebx
je 0x481f03
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 0x481bc7
cmp eax, dword [esp + 0x198]
jge 0x481bc7
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 0x481ec6
jmp 0x481bc7
mov eax, dword [esp + 0x330]
test eax, eax
jle 0x481f25
mov ecx, dword [esp + 0x334]
cmp word [ecx + eax*2 - 2], 0
jne 0x481f25
dec eax
mov dword [esp + 0x330], eax
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x481f44
mov edx, dword [esp + 0x28]
lea eax, [esp + 0xac]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x481f5a
mov ecx, dword [esp + 0x28]
push eax
push ecx
lea edx, [esp + 0xb4]
push edx
call fcn.00488dc0
add esp, 0xc
mov al, byte [esp + 0x3c4]
test al, al
je 0x482635
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x48211a
mov eax, dword [esp + 0x1c]
cmp dword [eax], 0
je 0x48211a
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 0x481fb9
mov ecx, edx
mov edx, dword [esp + 0x680]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x481fa2
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x1c]
cmp ecx, dword [eax]
jl 0x481fc9
lea esi, [esp + 0x3c]
mov ebp, eax
jmp 0x481fcf
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 0x4820e8
mov ecx, dword [ebp + 4]
mov eax, dword [esi]
test eax, eax
mov di, word [ecx + ebx*2]
je 0x4820b8
test di, di
je 0x4820b8
cmp di, 1
jne 0x482027
lea edx, [esp + 0x280]
push edx
push esi
jmp 0x4820a8
lea edx, [esp + 0x38cc]
xor eax, eax
mov dword [esp + 0x564], edx
mov ecx, dword [esi]
test ecx, ecx
jl 0x482051
lea ecx, [esp + 0x38cc]
mov word [ecx], 0
inc eax
add ecx, 2
cmp eax, dword [esi]
jle 0x482044
mov ecx, dword [esi]
xor eax, eax
test ecx, ecx
jle 0x482087
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 0x482061
mov ebp, dword [esp + 0x20]
mov eax, dword [esi]
cmp word [edx + eax*2], 0
je 0x482091
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.00488e50
add esp, 0xc
mov eax, dword [esp + 0x280]
test eax, eax
jle 0x4820cb
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 0x481ff9
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x680]
cmp word [ecx + eax*2 - 2], 0
jne 0x4820fc
dec eax
mov dword [esp + 0x67c], eax
lea edx, [esp + 0x3c]
lea eax, [esp + 0x67c]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x482122
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 0x482159
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 0x482171
mov dword [esp + 0x2c8], edi
mov dword [esi], edi
jmp 0x482647
cmp dword [esp + 0x10], 1
jne 0x48219e
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x48219e
lea edx, [esp + 0x2c8]
lea eax, [esp + 0x3c]
push edx
push eax
call fcn.00488cb0
add esp, 8
mov dword [esi], edi
jmp 0x482647
lea ecx, [esp + 0x10]
lea edx, [esp + 0x3c]
push ecx
push edx
call fcn.00488cf0
add esp, 8
test eax, eax
jge 0x4821c6
lea eax, [esp + 0x3c]
push esi
mov dword [esp + 0x2cc], edi
push eax
jmp 0x48263f
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 0x4821e7
shr ax, 1
inc ecx
cmp ax, di
jne 0x4821de
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 0x482239
lea eax, [esp + 0x6ac]
lea ecx, [esp + 0x3c]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x1f0]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.00488cb0
add esp, 0x10
jmp 0x482262
lea ecx, [esp + 0x6ac]
push esi
lea edx, [esp + 0x40]
push ecx
push edx
call fcn.00488d40
lea eax, [esp + 0x1f4]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.00488d40
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 0x4822bb
mov word [esi], ax
mov dword [esp + 0xfc], eax
jmp 0x482579
cmp dword [esp + 0x1e8], 1
jne 0x482372
cmp eax, 1
jne 0x48231f
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 0x482579
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 0x482579
lea eax, [esp + 0xfc]
lea ecx, [esp + 0xfc]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x1f0]
lea eax, [esp + 0x104]
push edx
push eax
call fcn.00488cf0
add esp, 0x10
test eax, eax
jge 0x4823ad
mov word [esi], 0
jmp 0x482579
mov eax, dword [esp + 0xfc]
mov ecx, dword [esp + 0x1e8]
cmp eax, ecx
jne 0x4823e5
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 0x482405
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 0x482504
test ax, ax
je 0x482504
cmp ax, 1
jne 0x48246b
lea eax, [esp + 0x410]
lea ecx, [esp + 0x1e8]
push eax
lea edx, [esp + 0x414]
push ecx
push edx
call fcn.00488e50
add esp, 0xc
jmp 0x482504
lea ebp, [esp + 0x2684]
test edx, edx
mov dword [esp + 0x574], ebp
jl 0x482492
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 0x4824cf
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 0x4824a2
cmp word [ebp + edx*2], 0
je 0x4824d8
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.00488e50
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.00488f50
lea eax, [esp + 0x1f4]
lea ecx, [esp + 0x108]
push eax
push ecx
call fcn.00488cf0
add esp, 0x14
test eax, eax
jl 0x482579
lea edx, [esp + 0xfc]
lea eax, [esp + 0x1e8]
push edx
lea ecx, [esp + 0x100]
push eax
push ecx
call fcn.00488f50
inc word [esi]
lea edx, [esp + 0x1f4]
lea eax, [esp + 0x108]
push edx
push eax
call fcn.00488cf0
add esp, 0x14
test eax, eax
jge 0x48253d
test ebx, ebx
je 0x4825e4
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 0x4822a8
cmp eax, dword [esp + 0x1e8]
jge 0x4822a8
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 0x4825a7
jmp 0x4822a8
mov eax, dword [esp + 0x2c8]
test eax, eax
jle 0x482606
mov ecx, dword [esp + 0x2cc]
cmp word [ecx + eax*2 - 2], 0
jne 0x482606
dec eax
mov dword [esp + 0x2c8], eax
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x48261d
mov edx, dword [esp + 0x28]
lea eax, [esp + 0xfc]
push edx
push eax
jmp 0x48263f
mov ecx, dword [esp + 0x28]
push eax
lea edx, [esp + 0x100]
push ecx
push edx
call fcn.00488dc0
add esp, 0xc
jmp 0x482647
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x3c]
push eax
push ecx
call fcn.00488cb0
add esp, 8
mov edx, dword [esp + 0x24]
lea eax, [esp + 0x3c]
push edx
push eax
call fcn.00488cb0
mov eax, dword [esp + 0x2c]
add esp, 8
lea ecx, [esp + 0x44]
push ecx
push eax
call fcn.00488cb0
add esp, 8
mov dword [esp + 0x20], 4
mov edx, dword [esp + 0x44]
xor eax, eax
cmp edx, eax
je 0x4827f9
lea ecx, [esp + 0x42f4]
mov dword [esp + 0x584], ecx
lea ecx, [edx + edx]
cmp ecx, eax
mov dword [esp + 0x24], ecx
jle 0x4826b1
mov edx, dword [esp + 0x584]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x48269a
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 0x4827c7
mov ecx, dword [esp + 0x48]
test edx, edx
mov bp, word [ecx + ebx*2]
je 0x48279a
test bp, bp
je 0x48279a
cmp bp, 1
jne 0x48270d
lea edx, [esp + 0x210]
lea eax, [esp + 0x44]
push edx
lea ecx, [esp + 0x214]
push eax
push ecx
jmp 0x48278e
lea esi, [esp + 0x288c]
test edx, edx
mov dword [esp + 0x610], esi
jl 0x482734
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 0x482767
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 0x482742
cmp word [esi + edx*2], 0
je 0x48276f
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.00488e50
mov edx, dword [esp + 0x50]
add esp, 0xc
mov eax, dword [esp + 0x210]
test eax, eax
jle 0x4827ad
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 0x4826d4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x584]
cmp word [ecx + eax*2 - 2], 0
jne 0x4827db
dec eax
mov dword [esp + 0x580], eax
lea edx, [esp + 0x44]
lea eax, [esp + 0x580]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x4827fd
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 0x482834
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 0x48284c
mov dword [esp + 0x2d8], edi
mov dword [esi], edi
jmp 0x482d18
cmp dword [esp + 0x10], 1
jne 0x482879
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x482879
lea edx, [esp + 0x2d8]
lea eax, [esp + 0x44]
push edx
push eax
call fcn.00488cb0
add esp, 8
mov dword [esi], edi
jmp 0x482d18
lea ecx, [esp + 0x10]
lea edx, [esp + 0x44]
push ecx
push edx
call fcn.00488cf0
add esp, 8
test eax, eax
jge 0x4828a9
lea eax, [esp + 0x44]
push esi
push eax
mov dword [esp + 0x2e0], edi
call fcn.00488cb0
add esp, 8
jmp 0x482d18
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 0x4828ca
shr ax, 1
inc ecx
cmp ax, di
jne 0x4828c1
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 0x48291c
lea eax, [esp + 0x71c]
lea ecx, [esp + 0x44]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x1b0]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.00488cb0
add esp, 0x10
jmp 0x482945
lea ecx, [esp + 0x71c]
push esi
lea edx, [esp + 0x48]
push ecx
push edx
call fcn.00488d40
lea eax, [esp + 0x1b4]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.00488d40
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 0x48299e
mov word [esi], ax
mov dword [esp + 0xbc], eax
jmp 0x482c56
cmp dword [esp + 0x1a8], 1
jne 0x482a4f
cmp eax, 1
jne 0x4829ff
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 0x482c56
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 0x482c56
lea eax, [esp + 0xbc]
lea ecx, [esp + 0xbc]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x1b0]
lea eax, [esp + 0xc4]
push edx
push eax
call fcn.00488cf0
add esp, 0x10
test eax, eax
jge 0x482a8a
mov word [esi], 0
jmp 0x482c56
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0x1a8]
cmp eax, ecx
jne 0x482ac2
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 0x482ae2
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 0x482be1
test ax, ax
je 0x482be1
cmp ax, 1
jne 0x482b48
lea eax, [esp + 0x450]
lea ecx, [esp + 0x1a8]
push eax
lea edx, [esp + 0x454]
push ecx
push edx
call fcn.00488e50
add esp, 0xc
jmp 0x482be1
lea ebp, [esp + 0x3ad4]
test edx, edx
mov dword [esp + 0x660], ebp
jl 0x482b6f
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 0x482bac
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 0x482b7f
cmp word [ebp + edx*2], 0
je 0x482bb5
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.00488e50
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.00488f50
lea eax, [esp + 0x1b4]
lea ecx, [esp + 0xc8]
push eax
push ecx
call fcn.00488cf0
add esp, 0x14
test eax, eax
jl 0x482c56
lea edx, [esp + 0xbc]
lea eax, [esp + 0x1a8]
push edx
lea ecx, [esp + 0xc0]
push eax
push ecx
call fcn.00488f50
inc word [esi]
lea edx, [esp + 0x1b4]
lea eax, [esp + 0xc8]
push edx
push eax
call fcn.00488cf0
add esp, 0x14
test eax, eax
jge 0x482c1a
test ebx, ebx
je 0x482cc1
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 0x48298b
cmp eax, dword [esp + 0x1a8]
jge 0x48298b
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 0x482c84
jmp 0x48298b
mov eax, dword [esp + 0x2d8]
test eax, eax
jle 0x482ce3
mov ecx, dword [esp + 0x2dc]
cmp word [ecx + eax*2 - 2], 0
jne 0x482ce3
dec eax
mov dword [esp + 0x2d8], eax
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x482d02
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0xbc]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x482d18
mov ecx, dword [esp + 0x1c]
push eax
lea edx, [esp + 0xc0]
push ecx
push edx
call fcn.00488dc0
add esp, 0xc
mov eax, dword [esp + 0x20]
dec eax
mov dword [esp + 0x20], eax
jne 0x482673
mov cl, byte [esp + 0x5b0]
test cl, cl
je 0x48752b
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 0x486e4e
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 0x484d66
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 0x484692
mov al, byte [esp + 0x3c0]
cmp al, 1
jne 0x48327d
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 0x482df7
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 0x482e0f
mov dword [esp + 0x2e8], edi
mov dword [esi], edi
jmp 0x484692
cmp dword [esp + 0x10], 1
jne 0x482e3c
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x482e3c
lea edx, [esp + 0x2e8]
lea eax, [esp + 0x2c]
push edx
push eax
call fcn.00488cb0
add esp, 8
mov dword [esi], edi
jmp 0x484692
lea ecx, [esp + 0x10]
lea edx, [esp + 0x2c]
push ecx
push edx
call fcn.00488cf0
add esp, 8
test eax, eax
jge 0x482e6c
lea eax, [esp + 0x2c]
push esi
push eax
mov dword [esp + 0x2f0], edi
call fcn.00488cb0
add esp, 8
jmp 0x484692
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 0x482e8d
shr ax, 1
inc ecx
cmp ax, di
jne 0x482e84
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 0x482edf
lea eax, [esp + 0x70c]
lea ecx, [esp + 0x2c]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x1e0]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.00488cb0
add esp, 0x10
jmp 0x482f08
lea ecx, [esp + 0x70c]
push esi
lea edx, [esp + 0x30]
push ecx
push edx
call fcn.00488d40
lea eax, [esp + 0x1e4]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.00488d40
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 0x482f58
mov word [esi], ax
mov dword [esp + 0x6c], eax
jmp 0x4831da
cmp dword [esp + 0x1d8], 1
jne 0x482ff7
cmp eax, 1
jne 0x482fb0
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 0x4831da
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 0x4831da
lea eax, [esp + 0x6c]
lea ecx, [esp + 0x6c]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x1e0]
lea eax, [esp + 0x74]
push edx
push eax
call fcn.00488cf0
add esp, 0x10
test eax, eax
jge 0x483029
mov word [esi], 0
jmp 0x4831da
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x1d8]
cmp eax, ecx
jne 0x48305b
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 0x483078
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 0x483177
test ax, ax
je 0x483177
cmp ax, 1
jne 0x4830de
lea eax, [esp + 0x420]
lea ecx, [esp + 0x1d8]
push eax
lea edx, [esp + 0x424]
push ecx
push edx
call fcn.00488e50
add esp, 0xc
jmp 0x483177
lea ebp, [esp + 0x2a94]
test edx, edx
mov dword [esp + 0x594], ebp
jl 0x483105
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 0x483142
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 0x483115
cmp word [ebp + edx*2], 0
je 0x48314b
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.00488e50
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.00488f50
lea eax, [esp + 0x1e4]
lea ecx, [esp + 0x78]
push eax
push ecx
call fcn.00488cf0
add esp, 0x14
test eax, eax
jl 0x4831da
lea edx, [esp + 0x6c]
lea eax, [esp + 0x1d8]
push edx
lea ecx, [esp + 0x70]
push eax
push ecx
call fcn.00488f50
inc word [esi]
lea edx, [esp + 0x1e4]
lea eax, [esp + 0x78]
push edx
push eax
call fcn.00488cf0
add esp, 0x14
test eax, eax
jge 0x4831a7
test ebx, ebx
je 0x48322d
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 0x482f48
cmp eax, dword [esp + 0x1d8]
jge 0x482f48
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 0x4831fc
jmp 0x482f48
mov eax, dword [esp + 0x2e8]
test eax, eax
jle 0x48324f
mov ecx, dword [esp + 0x2ec]
cmp word [ecx + eax*2 - 2], 0
jne 0x48324f
dec eax
mov dword [esp + 0x2e8], eax
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x48326e
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x6c]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x484692
mov ecx, dword [esp + 0x1c]
push eax
push ecx
lea edx, [esp + 0x74]
jmp 0x484689
lea ecx, [esp + 0x70e4]
cmp al, 2
mov dword [esp + 0x120], ecx
jne 0x4838f2
mov edx, dword [esp + 0x2c]
xor eax, eax
cmp edx, eax
je 0x48341c
lea ecx, [esp + 0x4b14]
mov dword [esp + 0x5a4], ecx
lea ecx, [edx + edx]
cmp ecx, eax
mov dword [esp + 0x24], ecx
jle 0x4832d1
mov edx, dword [esp + 0x5a4]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x4832ba
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 0x4833e7
mov ecx, dword [esp + 0x30]
test edx, edx
mov bp, word [ecx + ebx*2]
je 0x4833ba
test bp, bp
je 0x4833ba
cmp bp, 1
jne 0x48332d
lea edx, [esp + 0x218]
lea eax, [esp + 0x2c]
push edx
lea ecx, [esp + 0x21c]
push eax
push ecx
jmp 0x4833ae
lea esi, [esp + 0xa14]
test edx, edx
mov dword [esp + 0x620], esi
jl 0x483354
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 0x483387
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 0x483362
cmp word [esi + edx*2], 0
je 0x48338f
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.00488e50
mov edx, dword [esp + 0x38]
add esp, 0xc
mov eax, dword [esp + 0x218]
test eax, eax
jle 0x4833cd
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 0x4832f4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x5a4]
cmp word [ecx + eax*2 - 2], 0
jne 0x4833fb
dec eax
mov dword [esp + 0x5a0], eax
lea edx, [esp + 0x11c]
lea eax, [esp + 0x5a0]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x483423
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 0x483460
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 0x48347b
mov dword [esp + 0x2f8], edi
mov dword [esi], edi
jmp 0x484692
cmp dword [esp + 0x10], 1
jne 0x4834ab
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x4834ab
lea edx, [esp + 0x2f8]
lea eax, [esp + 0x11c]
push edx
push eax
call fcn.00488cb0
add esp, 8
mov dword [esi], edi
jmp 0x484692
lea ecx, [esp + 0x10]
lea edx, [esp + 0x11c]
push ecx
push edx
call fcn.00488cf0
add esp, 8
test eax, eax
jge 0x4834e1
mov dword [esp + 0x2f8], edi
lea eax, [esp + 0x11c]
push esi
push eax
call fcn.00488cb0
add esp, 8
jmp 0x484692
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 0x483502
shr ax, 1
inc ecx
cmp ax, di
jne 0x4834f9
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 0x483557
lea eax, [esp + 0x744]
lea ecx, [esp + 0x11c]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x168]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.00488cb0
add esp, 0x10
jmp 0x483583
lea ecx, [esp + 0x744]
push esi
lea edx, [esp + 0x120]
push ecx
push edx
call fcn.00488d40
lea eax, [esp + 0x16c]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.00488d40
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 0x4835d3
mov word [esi], ax
mov dword [esp + 0x5c], eax
jmp 0x48384f
cmp dword [esp + 0x160], 1
jne 0x48366c
cmp eax, 1
jne 0x483628
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 0x48384f
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 0x48384f
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x5c]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x168]
lea eax, [esp + 0x64]
push edx
push eax
call fcn.00488cf0
add esp, 0x10
test eax, eax
jge 0x48369e
mov word [esi], 0
jmp 0x48384f
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x160]
cmp eax, ecx
jne 0x4836d0
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 0x4836ed
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 0x4837ec
test ax, ax
je 0x4837ec
cmp ax, 1
jne 0x483753
lea eax, [esp + 0x470]
lea ecx, [esp + 0x160]
push eax
lea edx, [esp + 0x474]
push ecx
push edx
call fcn.00488e50
add esp, 0xc
jmp 0x4837ec
lea ebp, [esp + 0xd20]
test edx, edx
mov dword [esp + 0x49c], ebp
jl 0x48377a
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 0x4837b7
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 0x48378a
cmp word [ebp + edx*2], 0
je 0x4837c0
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.00488e50
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.00488f50
lea eax, [esp + 0x16c]
lea ecx, [esp + 0x68]
push eax
push ecx
call fcn.00488cf0
add esp, 0x14
test eax, eax
jl 0x48384f
lea edx, [esp + 0x5c]
lea eax, [esp + 0x160]
push edx
lea ecx, [esp + 0x60]
push eax
push ecx
call fcn.00488f50
inc word [esi]
lea edx, [esp + 0x16c]
lea eax, [esp + 0x68]
push edx
push eax
call fcn.00488cf0
add esp, 0x14
test eax, eax
jge 0x48381c
test ebx, ebx
je 0x4838a2
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 0x4835c3
cmp eax, dword [esp + 0x160]
jge 0x4835c3
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 0x483871
jmp 0x4835c3
mov eax, dword [esp + 0x2f8]
test eax, eax
jle 0x4838c4
mov ecx, dword [esp + 0x2fc]
cmp word [ecx + eax*2 - 2], 0
jne 0x4838c4
dec eax
mov dword [esp + 0x2f8], eax
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x4838e3
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x5c]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x484692
mov ecx, dword [esp + 0x1c]
push eax
push ecx
lea edx, [esp + 0x64]
jmp 0x484689
cmp al, 3
jne 0x484692
mov edx, dword [esp + 0x2c]
xor eax, eax
cmp edx, eax
je 0x483a83
lea ecx, [esp + 0xf28]
mov dword [esp + 0x4bc], ecx
lea ecx, [edx + edx]
cmp ecx, eax
mov dword [esp + 0x24], ecx
jle 0x483938
mov edx, dword [esp + 0x4bc]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x483921
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 0x483a4e
mov ecx, dword [esp + 0x30]
test edx, edx
mov bp, word [ecx + ebx*2]
je 0x483a21
test bp, bp
je 0x483a21
cmp bp, 1
jne 0x483994
lea edx, [esp + 0x228]
lea eax, [esp + 0x2c]
push edx
lea ecx, [esp + 0x22c]
push eax
push ecx
jmp 0x483a15
lea esi, [esp + 0x1130]
test edx, edx
mov dword [esp + 0x4ac], esi
jl 0x4839bb
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 0x4839ee
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 0x4839c9
cmp word [esi + edx*2], 0
je 0x4839f6
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.00488e50
mov edx, dword [esp + 0x38]
add esp, 0xc
mov eax, dword [esp + 0x228]
test eax, eax
jle 0x483a34
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 0x48395b
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x4bc]
cmp word [ecx + eax*2 - 2], 0
jne 0x483a62
dec eax
mov dword [esp + 0x4b8], eax
lea edx, [esp + 0x11c]
lea eax, [esp + 0x4b8]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x483a8a
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 0x483ac7
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 0x483ae2
mov dword [esp + 0x308], edi
mov dword [esi], edi
jmp 0x483fbd
cmp dword [esp + 0x10], 1
jne 0x483b12
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x483b12
lea edx, [esp + 0x308]
lea eax, [esp + 0x11c]
push edx
push eax
call fcn.00488cb0
add esp, 8
mov dword [esi], edi
jmp 0x483fbd
lea ecx, [esp + 0x10]
lea edx, [esp + 0x11c]
push ecx
push edx
call fcn.00488cf0
add esp, 8
test eax, eax
jge 0x483b48
lea eax, [esp + 0x11c]
push esi
push eax
mov dword [esp + 0x310], edi
call fcn.00488cb0
add esp, 8
jmp 0x483fbd
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 0x483b69
shr ax, 1
inc ecx
cmp ax, di
jne 0x483b60
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 0x483bbe
lea eax, [esp + 0x6b4]
lea ecx, [esp + 0x11c]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x178]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.00488cb0
add esp, 0x10
jmp 0x483bea
lea ecx, [esp + 0x6b4]
push esi
lea edx, [esp + 0x120]
push ecx
push edx
call fcn.00488d40
lea eax, [esp + 0x17c]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.00488d40
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 0x483c43
mov word [esi], ax
mov dword [esp + 0x84], eax
jmp 0x483efb
cmp dword [esp + 0x170], 1
jne 0x483cf4
cmp eax, 1
jne 0x483ca4
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 0x483efb
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 0x483efb
lea eax, [esp + 0x84]
lea ecx, [esp + 0x84]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x178]
lea eax, [esp + 0x8c]
push edx
push eax
call fcn.00488cf0
add esp, 0x10
test eax, eax
jge 0x483d2f
mov word [esi], 0
jmp 0x483efb
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x170]
cmp eax, ecx
jne 0x483d67
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 0x483d87
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 0x483e86
test ax, ax
je 0x483e86
cmp ax, 1
jne 0x483ded
lea eax, [esp + 0x3d0]
lea ecx, [esp + 0x170]
push eax
lea edx, [esp + 0x3d4]
push ecx
push edx
call fcn.00488e50
add esp, 0xc
jmp 0x483e86
lea ebp, [esp + 0x1338]
test edx, edx
mov dword [esp + 0x4cc], ebp
jl 0x483e14
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 0x483e51
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 0x483e24
cmp word [ebp + edx*2], 0
je 0x483e5a
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.00488e50
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.00488f50
lea eax, [esp + 0x17c]
lea ecx, [esp + 0x90]
push eax
push ecx
call fcn.00488cf0
add esp, 0x14
test eax, eax
jl 0x483efb
lea edx, [esp + 0x84]
lea eax, [esp + 0x170]
push edx
lea ecx, [esp + 0x88]
push eax
push ecx
call fcn.00488f50
inc word [esi]
lea edx, [esp + 0x17c]
lea eax, [esp + 0x90]
push edx
push eax
call fcn.00488cf0
add esp, 0x14
test eax, eax
jge 0x483ebf
test ebx, ebx
je 0x483f66
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 0x483c30
cmp eax, dword [esp + 0x170]
jge 0x483c30
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 0x483f29
jmp 0x483c30
mov eax, dword [esp + 0x308]
test eax, eax
jle 0x483f88
mov ecx, dword [esp + 0x30c]
cmp word [ecx + eax*2 - 2], 0
jne 0x483f88
dec eax
mov dword [esp + 0x308], eax
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x483fa7
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x84]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x483fbd
mov ecx, dword [esp + 0x1c]
push eax
lea edx, [esp + 0x88]
push ecx
push edx
call fcn.00488dc0
add esp, 0xc
mov edx, dword [esp + 0x11c]
xor eax, eax
cmp edx, eax
je 0x484179
mov ecx, dword [esp + 0x2c]
cmp ecx, eax
je 0x484179
lea esi, [esp + 0x1540]
mov dword [esp + 0x4ec], esi
lea esi, [ecx + edx]
cmp esi, eax
mov dword [esp + 0x1c], esi
jle 0x484013
mov ecx, esi
mov edx, dword [esp + 0x4ec]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x483ff5
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x11c]
cmp edx, ecx
jl 0x484024
lea esi, [esp + 0x11c]
lea ebp, [esp + 0x2c]
jmp 0x48402f
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 0x484144
mov ecx, dword [ebp + 4]
mov eax, dword [esi]
test eax, eax
mov di, word [ecx + ebx*2]
je 0x484114
test di, di
je 0x484114
cmp di, 1
jne 0x484083
lea edx, [esp + 0x238]
push edx
push esi
jmp 0x484104
lea edx, [esp + 0x1748]
xor eax, eax
mov dword [esp + 0x4dc], edx
mov ecx, dword [esi]
test ecx, ecx
jl 0x4840ad
lea ecx, [esp + 0x1748]
mov word [ecx], 0
inc eax
add ecx, 2
cmp eax, dword [esi]
jle 0x4840a0
mov ecx, dword [esi]
xor eax, eax
test ecx, ecx
jle 0x4840e3
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 0x4840bd
mov ebp, dword [esp + 0x24]
mov eax, dword [esi]
cmp word [edx + eax*2], 0
je 0x4840ed
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.00488e50
add esp, 0xc
mov eax, dword [esp + 0x238]
test eax, eax
jle 0x484127
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 0x484055
mov ecx, dword [esp + 0x4ec]
mov eax, dword [esp + 0x1c]
cmp word [ecx + eax*2 - 2], 0
jne 0x484158
dec eax
mov dword [esp + 0x4e8], eax
lea edx, [esp + 0x11c]
lea eax, [esp + 0x4e8]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x484180
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 0x4841bd
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 0x4841d8
mov dword [esp + 0x318], edi
mov dword [esi], edi
jmp 0x484692
cmp dword [esp + 0x10], 1
jne 0x4841f5
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x4841f5
lea edx, [esp + 0x318]
jmp 0x483493
lea ecx, [esp + 0x10]
lea edx, [esp + 0x11c]
push ecx
push edx
call fcn.00488cf0
add esp, 8
test eax, eax
jge 0x48421a
mov dword [esp + 0x318], edi
jmp 0x4834cb
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 0x48423b
shr ax, 1
inc ecx
cmp ax, di
jne 0x484232
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 0x484290
lea eax, [esp + 0x6bc]
lea ecx, [esp + 0x11c]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x188]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.00488cb0
add esp, 0x10
jmp 0x4842bc
lea ecx, [esp + 0x6bc]
push esi
lea edx, [esp + 0x120]
push ecx
push edx
call fcn.00488d40
lea eax, [esp + 0x18c]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.00488d40
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 0x484315
mov word [esi], ax
mov dword [esp + 0x94], eax
jmp 0x4845d0
cmp dword [esp + 0x180], 1
jne 0x4843c9
cmp eax, 1
jne 0x484376
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 0x4845d0
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 0x4845d0
lea eax, [esp + 0x94]
lea ecx, [esp + 0x94]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x188]
lea eax, [esp + 0x9c]
push edx
push eax
call fcn.00488cf0
add esp, 0x10
test eax, eax
jge 0x484404
mov word [esi], 0
jmp 0x4845d0
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x180]
cmp eax, ecx
jne 0x48443c
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 0x48445c
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 0x48455b
test ax, ax
je 0x48455b
cmp ax, 1
jne 0x4844c2
lea eax, [esp + 0x3d8]
lea ecx, [esp + 0x180]
push eax
lea edx, [esp + 0x3dc]
push ecx
push edx
call fcn.00488e50
add esp, 0xc
jmp 0x48455b
lea ebp, [esp + 0x1950]
test edx, edx
mov dword [esp + 0x4fc], ebp
jl 0x4844e9
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 0x484526
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 0x4844f9
cmp word [ebp + edx*2], 0
je 0x48452f
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.00488e50
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.00488f50
lea eax, [esp + 0x18c]
lea ecx, [esp + 0xa0]
push eax
push ecx
call fcn.00488cf0
add esp, 0x14
test eax, eax
jl 0x4845d0
lea edx, [esp + 0x94]
lea eax, [esp + 0x180]
push edx
lea ecx, [esp + 0x98]
push eax
push ecx
call fcn.00488f50
inc word [esi]
lea edx, [esp + 0x18c]
lea eax, [esp + 0xa0]
push edx
push eax
call fcn.00488cf0
add esp, 0x14
test eax, eax
jge 0x484594
test ebx, ebx
je 0x48463b
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 0x484302
cmp eax, dword [esp + 0x180]
jge 0x484302
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 0x4845fe
jmp 0x484302
mov eax, dword [esp + 0x318]
test eax, eax
jle 0x48465d
mov ecx, dword [esp + 0x31c]
cmp word [ecx + eax*2 - 2], 0
jne 0x48465d
dec eax
mov dword [esp + 0x318], eax
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x48467c
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x94]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x484692
mov ecx, dword [esp + 0x1c]
push eax
push ecx
lea edx, [esp + 0x9c]
push edx
call fcn.00488dc0
add esp, 0xc
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x4c]
push eax
push ecx
call fcn.00488cb0
add esp, 8
mov dword [esp + 0x28], 2
mov edx, dword [esp + 0x4c]
xor eax, eax
cmp edx, eax
je 0x484832
lea ecx, [esp + 0x1b58]
mov dword [esp + 0x51c], ecx
lea ecx, [edx + edx]
cmp ecx, eax
mov dword [esp + 0x24], ecx
jle 0x4846ea
mov edx, dword [esp + 0x51c]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x4846d3
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 0x484800
mov ecx, dword [esp + 0x50]
test edx, edx
mov bp, word [ecx + ebx*2]
je 0x4847d3
test bp, bp
je 0x4847d3
cmp bp, 1
jne 0x484746
lea edx, [esp + 0x248]
lea eax, [esp + 0x4c]
push edx
lea ecx, [esp + 0x24c]
push eax
push ecx
jmp 0x4847c7
lea esi, [esp + 0x1d60]
test edx, edx
mov dword [esp + 0x50c], esi
jl 0x48476d
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 0x4847a0
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 0x48477b
cmp word [esi + edx*2], 0
je 0x4847a8
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.00488e50
mov edx, dword [esp + 0x58]
add esp, 0xc
mov eax, dword [esp + 0x248]
test eax, eax
jle 0x4847e6
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 0x48470d
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x51c]
cmp word [ecx + eax*2 - 2], 0
jne 0x484814
dec eax
mov dword [esp + 0x518], eax
lea edx, [esp + 0x4c]
lea eax, [esp + 0x518]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x484836
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 0x48486d
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 0x484885
mov dword [esp + 0x328], edi
mov dword [esi], edi
jmp 0x484d57
cmp dword [esp + 0x10], 1
jne 0x4848b2
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x4848b2
lea edx, [esp + 0x328]
lea eax, [esp + 0x4c]
push edx
push eax
call fcn.00488cb0
add esp, 8
mov dword [esi], edi
jmp 0x484d57
lea ecx, [esp + 0x10]
lea edx, [esp + 0x4c]
push ecx
push edx
call fcn.00488cf0
add esp, 8
test eax, eax
jge 0x4848e2
lea eax, [esp + 0x4c]
push esi
push eax
mov dword [esp + 0x330], edi
call fcn.00488cb0
add esp, 8
jmp 0x484d57
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 0x484903
shr ax, 1
inc ecx
cmp ax, di
jne 0x4848fa
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 0x484955
lea eax, [esp + 0x6cc]
lea ecx, [esp + 0x4c]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x198]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.00488cb0
add esp, 0x10
jmp 0x48497e
lea ecx, [esp + 0x6cc]
push esi
lea edx, [esp + 0x50]
push ecx
push edx
call fcn.00488d40
lea eax, [esp + 0x19c]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.00488d40
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 0x4849d7
mov word [esi], ax
mov dword [esp + 0xa4], eax
jmp 0x484c95
cmp dword [esp + 0x190], 1
jne 0x484a8e
cmp eax, 1
jne 0x484a3b
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 0x484c95
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 0x484c95
lea eax, [esp + 0xa4]
lea ecx, [esp + 0xa4]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x198]
lea eax, [esp + 0xac]
push edx
push eax
call fcn.00488cf0
add esp, 0x10
test eax, eax
jge 0x484ac9
mov word [esi], 0
jmp 0x484c95
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0x190]
cmp eax, ecx
jne 0x484b01
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 0x484b21
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 0x484c20
test ax, ax
je 0x484c20
cmp ax, 1
jne 0x484b87
lea eax, [esp + 0x3e8]
lea ecx, [esp + 0x190]
push eax
lea edx, [esp + 0x3ec]
push ecx
push edx
call fcn.00488e50
add esp, 0xc
jmp 0x484c20
lea ebp, [esp + 0x1f68]
test edx, edx
mov dword [esp + 0x52c], ebp
jl 0x484bae
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 0x484beb
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 0x484bbe
cmp word [ebp + edx*2], 0
je 0x484bf4
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.00488e50
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.00488f50
lea eax, [esp + 0x19c]
lea ecx, [esp + 0xb0]
push eax
push ecx
call fcn.00488cf0
add esp, 0x14
test eax, eax
jl 0x484c95
lea edx, [esp + 0xa4]
lea eax, [esp + 0x190]
push edx
lea ecx, [esp + 0xa8]
push eax
push ecx
call fcn.00488f50
inc word [esi]
lea edx, [esp + 0x19c]
lea eax, [esp + 0xb0]
push edx
push eax
call fcn.00488cf0
add esp, 0x14
test eax, eax
jge 0x484c59
test ebx, ebx
je 0x484d00
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 0x4849c4
cmp eax, dword [esp + 0x190]
jge 0x4849c4
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 0x484cc3
jmp 0x4849c4
mov eax, dword [esp + 0x328]
test eax, eax
jle 0x484d22
mov ecx, dword [esp + 0x32c]
cmp word [ecx + eax*2 - 2], 0
jne 0x484d22
dec eax
mov dword [esp + 0x328], eax
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x484d41
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0xa4]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x484d57
mov ecx, dword [esp + 0x1c]
push eax
lea edx, [esp + 0xa8]
push ecx
push edx
call fcn.00488dc0
add esp, 0xc
mov eax, dword [esp + 0x28]
dec eax
mov dword [esp + 0x28], eax
jne 0x4846ac
mov al, byte [esp + 0x3b0]
test al, al
je 0x486e38
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 0x486751
mov al, byte [esp + 0x3b0]
cmp al, 1
jne 0x4852d0
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 0x484de7
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 0x484dff
mov dword [esp + 0x338], edi
mov dword [esi], edi
jmp 0x486751
cmp dword [esp + 0x10], 1
jne 0x484e2c
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x484e2c
lea edx, [esp + 0x338]
lea eax, [esp + 0x2c]
push edx
push eax
call fcn.00488cb0
add esp, 8
mov dword [esi], edi
jmp 0x486751
lea ecx, [esp + 0x10]
lea edx, [esp + 0x2c]
push ecx
push edx
call fcn.00488cf0
add esp, 8
test eax, eax
jge 0x484e5c
lea eax, [esp + 0x2c]
push esi
push eax
mov dword [esp + 0x340], edi
call fcn.00488cb0
add esp, 8
jmp 0x486751
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 0x484e7d
shr ax, 1
inc ecx
cmp ax, di
jne 0x484e74
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 0x484ecf
lea eax, [esp + 0x6dc]
lea ecx, [esp + 0x2c]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x1a8]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.00488cb0
add esp, 0x10
jmp 0x484ef8
lea ecx, [esp + 0x6dc]
push esi
lea edx, [esp + 0x30]
push ecx
push edx
call fcn.00488d40
lea eax, [esp + 0x1ac]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.00488d40
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 0x484f51
mov word [esi], ax
mov dword [esp + 0xb4], eax
jmp 0x48520f
cmp dword [esp + 0x1a0], 1
jne 0x485008
cmp eax, 1
jne 0x484fb5
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 0x48520f
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 0x48520f
lea eax, [esp + 0xb4]
lea ecx, [esp + 0xb4]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x1a8]
lea eax, [esp + 0xbc]
push edx
push eax
call fcn.00488cf0
add esp, 0x10
test eax, eax
jge 0x485043
mov word [esi], 0
jmp 0x48520f
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x1a0]
cmp eax, ecx
jne 0x48507b
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 0x48509b
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 0x48519a
test ax, ax
je 0x48519a
cmp ax, 1
jne 0x485101
lea eax, [esp + 0x3f8]
lea ecx, [esp + 0x1a0]
push eax
lea edx, [esp + 0x3fc]
push ecx
push edx
call fcn.00488e50
add esp, 0xc
jmp 0x48519a
lea ebp, [esp + 0x2170]
test edx, edx
mov dword [esp + 0x53c], ebp
jl 0x485128
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 0x485165
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 0x485138
cmp word [ebp + edx*2], 0
je 0x48516e
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.00488e50
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.00488f50
lea eax, [esp + 0x1ac]
lea ecx, [esp + 0xc0]
push eax
push ecx
call fcn.00488cf0
add esp, 0x14
test eax, eax
jl 0x48520f
lea edx, [esp + 0xb4]
lea eax, [esp + 0x1a0]
push edx
lea ecx, [esp + 0xb8]
push eax
push ecx
call fcn.00488f50
inc word [esi]
lea edx, [esp + 0x1ac]
lea eax, [esp + 0xc0]
push edx
push eax
call fcn.00488cf0
add esp, 0x14
test eax, eax
jge 0x4851d3
test ebx, ebx
je 0x48527a
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 0x484f3e
cmp eax, dword [esp + 0x1a0]
jge 0x484f3e
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 0x48523d
jmp 0x484f3e
mov eax, dword [esp + 0x338]
test eax, eax
jle 0x48529c
mov ecx, dword [esp + 0x33c]
cmp word [ecx + eax*2 - 2], 0
jne 0x48529c
dec eax
mov dword [esp + 0x338], eax
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x4852be
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0xb4]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x486751
mov ecx, dword [esp + 0x1c]
push eax
push ecx
lea edx, [esp + 0xbc]
jmp 0x486748
lea ecx, [esp + 0xc558]
cmp al, 2
mov dword [esp + 0x130], ecx
jne 0x4859a8
mov edx, dword [esp + 0x2c]
xor eax, eax
cmp edx, eax
je 0x48546f
lea ecx, [esp + 0x2378]
mov dword [esp + 0x55c], ecx
lea ecx, [edx + edx]
cmp ecx, eax
mov dword [esp + 0x24], ecx
jle 0x485324
mov edx, dword [esp + 0x55c]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x48530d
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 0x48543a
mov ecx, dword [esp + 0x30]
test edx, edx
mov bp, word [ecx + ebx*2]
je 0x48540d
test bp, bp
je 0x48540d
cmp bp, 1
jne 0x485380
lea edx, [esp + 0x258]
lea eax, [esp + 0x2c]
push edx
lea ecx, [esp + 0x25c]
push eax
push ecx
jmp 0x485401
lea esi, [esp + 0x2580]
test edx, edx
mov dword [esp + 0x54c], esi
jl 0x4853a7
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 0x4853da
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 0x4853b5
cmp word [esi + edx*2], 0
je 0x4853e2
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.00488e50
mov edx, dword [esp + 0x38]
add esp, 0xc
mov eax, dword [esp + 0x258]
test eax, eax
jle 0x485420
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 0x485347
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x55c]
cmp word [ecx + eax*2 - 2], 0
jne 0x48544e
dec eax
mov dword [esp + 0x558], eax
lea edx, [esp + 0x12c]
lea eax, [esp + 0x558]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x485476
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 0x4854b3
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 0x4854ce
mov dword [esp + 0x348], edi
mov dword [esi], edi
jmp 0x486751
cmp dword [esp + 0x10], 1
jne 0x4854fe
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x4854fe
lea edx, [esp + 0x348]
lea eax, [esp + 0x12c]
push edx
push eax
call fcn.00488cb0
add esp, 8
mov dword [esi], edi
jmp 0x486751
lea ecx, [esp + 0x10]
lea edx, [esp + 0x12c]
push ecx
push edx
call fcn.00488cf0
add esp, 8
test eax, eax
jge 0x485534
mov dword [esp + 0x348], edi
lea eax, [esp + 0x12c]
push esi
push eax
call fcn.00488cb0
add esp, 8
jmp 0x486751
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 0x485555
shr ax, 1
inc ecx
cmp ax, di
jne 0x48554c
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 0x4855aa
lea eax, [esp + 0x6ec]
lea ecx, [esp + 0x12c]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x1b8]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.00488cb0
add esp, 0x10
jmp 0x4855d6
lea ecx, [esp + 0x6ec]
push esi
lea edx, [esp + 0x130]
push ecx
push edx
call fcn.00488d40
lea eax, [esp + 0x1bc]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.00488d40
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 0x48562f
mov word [esi], ax
mov dword [esp + 0xc4], eax
jmp 0x4858e7
cmp dword [esp + 0x1b0], 1
jne 0x4856e0
cmp eax, 1
jne 0x485690
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 0x4858e7
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 0x4858e7
lea eax, [esp + 0xc4]
lea ecx, [esp + 0xc4]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x1b8]
lea eax, [esp + 0xcc]
push edx
push eax
call fcn.00488cf0
add esp, 0x10
test eax, eax
jge 0x48571b
mov word [esi], 0
jmp 0x4858e7
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x1b0]
cmp eax, ecx
jne 0x485753
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 0x485773
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 0x485872
test ax, ax
je 0x485872
cmp ax, 1
jne 0x4857d9
lea eax, [esp + 0x408]
lea ecx, [esp + 0x1b0]
push eax
lea edx, [esp + 0x40c]
push ecx
push edx
call fcn.00488e50
add esp, 0xc
jmp 0x485872
lea ebp, [esp + 0x2788]
test edx, edx
mov dword [esp + 0x56c], ebp
jl 0x485800
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 0x48583d
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 0x485810
cmp word [ebp + edx*2], 0
je 0x485846
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.00488e50
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.00488f50
lea eax, [esp + 0x1bc]
lea ecx, [esp + 0xd0]
push eax
push ecx
call fcn.00488cf0
add esp, 0x14
test eax, eax
jl 0x4858e7
lea edx, [esp + 0xc4]
lea eax, [esp + 0x1b0]
push edx
lea ecx, [esp + 0xc8]
push eax
push ecx
call fcn.00488f50
inc word [esi]
lea edx, [esp + 0x1bc]
lea eax, [esp + 0xd0]
push edx
push eax
call fcn.00488cf0
add esp, 0x14
test eax, eax
jge 0x4858ab
test ebx, ebx
je 0x485952
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 0x48561c
cmp eax, dword [esp + 0x1b0]
jge 0x48561c
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 0x485915
jmp 0x48561c
mov eax, dword [esp + 0x348]
test eax, eax
jle 0x485974
mov ecx, dword [esp + 0x34c]
cmp word [ecx + eax*2 - 2], 0
jne 0x485974
dec eax
mov dword [esp + 0x348], eax
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x485996
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0xc4]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x486751
mov ecx, dword [esp + 0x1c]
push eax
push ecx
lea edx, [esp + 0xcc]
jmp 0x486748
cmp al, 3
jne 0x486751
mov edx, dword [esp + 0x2c]
xor eax, eax
cmp edx, eax
je 0x485b39
lea ecx, [esp + 0x2990]
mov dword [esp + 0x58c], ecx
lea ecx, [edx + edx]
cmp ecx, eax
mov dword [esp + 0x24], ecx
jle 0x4859ee
mov edx, dword [esp + 0x58c]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x4859d7
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 0x485b04
mov ecx, dword [esp + 0x30]
test edx, edx
mov bp, word [ecx + ebx*2]
je 0x485ad7
test bp, bp
je 0x485ad7
cmp bp, 1
jne 0x485a4a
lea edx, [esp + 0x268]
lea eax, [esp + 0x2c]
push edx
lea ecx, [esp + 0x26c]
push eax
push ecx
jmp 0x485acb
lea esi, [esp + 0x2b98]
test edx, edx
mov dword [esp + 0x57c], esi
jl 0x485a71
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 0x485aa4
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 0x485a7f
cmp word [esi + edx*2], 0
je 0x485aac
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.00488e50
mov edx, dword [esp + 0x38]
add esp, 0xc
mov eax, dword [esp + 0x268]
test eax, eax
jle 0x485aea
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 0x485a11
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x58c]
cmp word [ecx + eax*2 - 2], 0
jne 0x485b18
dec eax
mov dword [esp + 0x588], eax
lea edx, [esp + 0x12c]
lea eax, [esp + 0x588]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x485b40
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 0x485b7d
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 0x485b98
mov dword [esp + 0x358], edi
mov dword [esi], edi
jmp 0x486079
cmp dword [esp + 0x10], 1
jne 0x485bc8
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x485bc8
lea edx, [esp + 0x358]
lea eax, [esp + 0x12c]
push edx
push eax
call fcn.00488cb0
add esp, 8
mov dword [esi], edi
jmp 0x486079
lea ecx, [esp + 0x10]
lea edx, [esp + 0x12c]
push ecx
push edx
call fcn.00488cf0
add esp, 8
test eax, eax
jge 0x485bfe
lea eax, [esp + 0x12c]
push esi
push eax
mov dword [esp + 0x360], edi
call fcn.00488cb0
add esp, 8
jmp 0x486079
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 0x485c1f
shr ax, 1
inc ecx
cmp ax, di
jne 0x485c16
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 0x485c74
lea eax, [esp + 0x6fc]
lea ecx, [esp + 0x12c]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x1c8]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.00488cb0
add esp, 0x10
jmp 0x485ca0
lea ecx, [esp + 0x6fc]
push esi
lea edx, [esp + 0x130]
push ecx
push edx
call fcn.00488d40
lea eax, [esp + 0x1cc]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.00488d40
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 0x485cf9
mov word [esi], ax
mov dword [esp + 0xd4], eax
jmp 0x485fb7
cmp dword [esp + 0x1c0], 1
jne 0x485db0
cmp eax, 1
jne 0x485d5d
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 0x485fb7
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 0x485fb7
lea eax, [esp + 0xd4]
lea ecx, [esp + 0xd4]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x1c8]
lea eax, [esp + 0xdc]
push edx
push eax
call fcn.00488cf0
add esp, 0x10
test eax, eax
jge 0x485deb
mov word [esi], 0
jmp 0x485fb7
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0x1c0]
cmp eax, ecx
jne 0x485e23
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 0x485e43
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 0x485f42
test ax, ax
je 0x485f42
cmp ax, 1
jne 0x485ea9
lea eax, [esp + 0x418]
lea ecx, [esp + 0x1c0]
push eax
lea edx, [esp + 0x41c]
push ecx
push edx
call fcn.00488e50
add esp, 0xc
jmp 0x485f42
lea ebp, [esp + 0x2da0]
test edx, edx
mov dword [esp + 0x59c], ebp
jl 0x485ed0
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 0x485f0d
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 0x485ee0
cmp word [ebp + edx*2], 0
je 0x485f16
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.00488e50
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.00488f50
lea eax, [esp + 0x1cc]
lea ecx, [esp + 0xe0]
push eax
push ecx
call fcn.00488cf0
add esp, 0x14
test eax, eax
jl 0x485fb7
lea edx, [esp + 0xd4]
lea eax, [esp + 0x1c0]
push edx
lea ecx, [esp + 0xd8]
push eax
push ecx
call fcn.00488f50
inc word [esi]
lea edx, [esp + 0x1cc]
lea eax, [esp + 0xe0]
push edx
push eax
call fcn.00488cf0
add esp, 0x14
test eax, eax
jge 0x485f7b
test ebx, ebx
je 0x486022
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 0x485ce6
cmp eax, dword [esp + 0x1c0]
jge 0x485ce6
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 0x485fe5
jmp 0x485ce6
mov eax, dword [esp + 0x358]
test eax, eax
jle 0x486044
mov ecx, dword [esp + 0x35c]
cmp word [ecx + eax*2 - 2], 0
jne 0x486044
dec eax
mov dword [esp + 0x358], eax
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x486063
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0xd4]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x486079
mov ecx, dword [esp + 0x1c]
push eax
lea edx, [esp + 0xd8]
push ecx
push edx
call fcn.00488dc0
add esp, 0xc
mov edx, dword [esp + 0x12c]
xor eax, eax
cmp edx, eax
je 0x486235
mov ecx, dword [esp + 0x2c]
cmp ecx, eax
je 0x486235
lea esi, [esp + 0x2fa8]
mov dword [esp + 0x5b8], esi
lea esi, [edx + ecx]
cmp esi, eax
mov dword [esp + 0x1c], esi
jle 0x4860cf
mov ecx, esi
mov edx, dword [esp + 0x5b8]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x4860b1
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x12c]
cmp edx, ecx
jl 0x4860e0
lea esi, [esp + 0x12c]
lea ebp, [esp + 0x2c]
jmp 0x4860eb
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 0x486200
mov ecx, dword [ebp + 4]
mov eax, dword [esi]
test eax, eax
mov di, word [ecx + ebx*2]
je 0x4861d0
test di, di
je 0x4861d0
cmp di, 1
jne 0x48613f
lea edx, [esp + 0x278]
push edx
push esi
jmp 0x4861c0
lea edx, [esp + 0x31b0]
xor eax, eax
mov dword [esp + 0x5ac], edx
mov ecx, dword [esi]
test ecx, ecx
jl 0x486169
lea ecx, [esp + 0x31b0]
mov word [ecx], 0
inc eax
add ecx, 2
cmp eax, dword [esi]
jle 0x48615c
mov ecx, dword [esi]
xor eax, eax
test ecx, ecx
jle 0x48619f
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 0x486179
mov ebp, dword [esp + 0x24]
mov eax, dword [esi]
cmp word [edx + eax*2], 0
je 0x4861a9
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.00488e50
add esp, 0xc
mov eax, dword [esp + 0x278]
test eax, eax
jle 0x4861e3
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 0x486111
mov ecx, dword [esp + 0x5b8]
mov eax, dword [esp + 0x1c]
cmp word [ecx + eax*2 - 2], 0
jne 0x486214
dec eax
mov dword [esp + 0x5b4], eax
lea edx, [esp + 0x12c]
lea eax, [esp + 0x5b4]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x48623c
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 0x486279
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 0x486294
mov dword [esp + 0x368], edi
mov dword [esi], edi
jmp 0x486751
cmp dword [esp + 0x10], 1
jne 0x4862b1
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x4862b1
lea edx, [esp + 0x368]
jmp 0x4854e6
lea ecx, [esp + 0x10]
lea edx, [esp + 0x12c]
push ecx
push edx
call fcn.00488cf0
add esp, 8
test eax, eax
jge 0x4862d6
mov dword [esp + 0x368], edi
jmp 0x48551e
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 0x4862f7
shr ax, 1
inc ecx
cmp ax, di
jne 0x4862ee
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 0x48634c
lea eax, [esp + 0x72c]
lea ecx, [esp + 0x12c]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x1d8]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.00488cb0
add esp, 0x10
jmp 0x486378
lea ecx, [esp + 0x72c]
push esi
lea edx, [esp + 0x130]
push ecx
push edx
call fcn.00488d40
lea eax, [esp + 0x1dc]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.00488d40
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 0x4863d1
mov word [esi], ax
mov dword [esp + 0xe4], eax
jmp 0x48668f
cmp dword [esp + 0x1d0], 1
jne 0x486488
cmp eax, 1
jne 0x486435
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 0x48668f
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 0x48668f
lea eax, [esp + 0xe4]
lea ecx, [esp + 0xe4]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x1d8]
lea eax, [esp + 0xec]
push edx
push eax
call fcn.00488cf0
add esp, 0x10
test eax, eax
jge 0x4864c3
mov word [esi], 0
jmp 0x48668f
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x1d0]
cmp eax, ecx
jne 0x4864fb
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 0x48651b
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 0x48661a
test ax, ax
je 0x48661a
cmp ax, 1
jne 0x486581
lea eax, [esp + 0x428]
lea ecx, [esp + 0x1d0]
push eax
lea edx, [esp + 0x42c]
push ecx
push edx
call fcn.00488e50
add esp, 0xc
jmp 0x48661a
lea ebp, [esp + 0x33b8]
test edx, edx
mov dword [esp + 0x5c8], ebp
jl 0x4865a8
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 0x4865e5
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 0x4865b8
cmp word [ebp + edx*2], 0
je 0x4865ee
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.00488e50
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.00488f50
lea eax, [esp + 0x1dc]
lea ecx, [esp + 0xf0]
push eax
push ecx
call fcn.00488cf0
add esp, 0x14
test eax, eax
jl 0x48668f
lea edx, [esp + 0xe4]
lea eax, [esp + 0x1d0]
push edx
lea ecx, [esp + 0xe8]
push eax
push ecx
call fcn.00488f50
inc word [esi]
lea edx, [esp + 0x1dc]
lea eax, [esp + 0xf0]
push edx
push eax
call fcn.00488cf0
add esp, 0x14
test eax, eax
jge 0x486653
test ebx, ebx
je 0x4866fa
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 0x4863be
cmp eax, dword [esp + 0x1d0]
jge 0x4863be
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 0x4866bd
jmp 0x4863be
mov eax, dword [esp + 0x368]
test eax, eax
jle 0x48671c
mov ecx, dword [esp + 0x36c]
cmp word [ecx + eax*2 - 2], 0
jne 0x48671c
dec eax
mov dword [esp + 0x368], eax
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x48673b
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0xe4]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x486751
mov ecx, dword [esp + 0x1c]
push eax
push ecx
lea edx, [esp + 0xec]
push edx
call fcn.00488dc0
add esp, 0xc
mov al, byte [esp + 0x3c0]
test al, al
je 0x486e26
mov ecx, dword [esp + 0x4c]
test ecx, ecx
je 0x486911
mov eax, dword [esp + 0x28]
cmp dword [eax], 0
je 0x486911
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 0x4867b0
mov ecx, edx
mov edx, dword [esp + 0x5e8]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x486799
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x28]
cmp ecx, dword [eax]
jl 0x4867c0
lea esi, [esp + 0x4c]
mov ebp, eax
jmp 0x4867c6
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 0x4868df
mov ecx, dword [ebp + 4]
mov eax, dword [esi]
test eax, eax
mov di, word [ecx + ebx*2]
je 0x4868af
test di, di
je 0x4868af
cmp di, 1
jne 0x48681e
lea edx, [esp + 0x288]
push edx
push esi
jmp 0x48689f
lea edx, [esp + 0x37c8]
xor eax, eax
mov dword [esp + 0x5d8], edx
mov ecx, dword [esi]
test ecx, ecx
jl 0x486848
lea ecx, [esp + 0x37c8]
mov word [ecx], 0
inc eax
add ecx, 2
cmp eax, dword [esi]
jle 0x48683b
mov ecx, dword [esi]
xor eax, eax
test ecx, ecx
jle 0x48687e
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 0x486858
mov ebp, dword [esp + 0x24]
mov eax, dword [esi]
cmp word [edx + eax*2], 0
je 0x486888
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.00488e50
add esp, 0xc
mov eax, dword [esp + 0x288]
test eax, eax
jle 0x4868c2
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 0x4867f0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x5e8]
cmp word [ecx + eax*2 - 2], 0
jne 0x4868f3
dec eax
mov dword [esp + 0x5e4], eax
lea edx, [esp + 0x4c]
lea eax, [esp + 0x5e4]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x486919
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 0x486950
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 0x486968
mov dword [esp + 0x378], edi
mov dword [esi], edi
jmp 0x486e38
cmp dword [esp + 0x10], 1
jne 0x486995
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x486995
lea edx, [esp + 0x378]
lea eax, [esp + 0x4c]
push edx
push eax
call fcn.00488cb0
add esp, 8
mov dword [esi], edi
jmp 0x486e38
lea ecx, [esp + 0x10]
lea edx, [esp + 0x4c]
push ecx
push edx
call fcn.00488cf0
add esp, 8
test eax, eax
jge 0x4869bd
lea eax, [esp + 0x4c]
push esi
mov dword [esp + 0x37c], edi
push eax
jmp 0x486e30
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 0x4869de
shr ax, 1
inc ecx
cmp ax, di
jne 0x4869d5
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 0x486a30
lea eax, [esp + 0x73c]
lea ecx, [esp + 0x4c]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x1e8]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.00488cb0
add esp, 0x10
jmp 0x486a59
lea ecx, [esp + 0x73c]
push esi
lea edx, [esp + 0x50]
push ecx
push edx
call fcn.00488d40
lea eax, [esp + 0x1ec]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.00488d40
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 0x486ab2
mov word [esi], ax
mov dword [esp + 0xf4], eax
jmp 0x486d6a
cmp dword [esp + 0x1e0], 1
jne 0x486b63
cmp eax, 1
jne 0x486b13
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 0x486d6a
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 0x486d6a
lea eax, [esp + 0xf4]
lea ecx, [esp + 0xf4]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x1e8]
lea eax, [esp + 0xfc]
push edx
push eax
call fcn.00488cf0
add esp, 0x10
test eax, eax
jge 0x486b9e
mov word [esi], 0
jmp 0x486d6a
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0x1e0]
cmp eax, ecx
jne 0x486bd6
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 0x486bf6
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 0x486cf5
test ax, ax
je 0x486cf5
cmp ax, 1
jne 0x486c5c
lea eax, [esp + 0x438]
lea ecx, [esp + 0x1e0]
push eax
lea edx, [esp + 0x43c]
push ecx
push edx
call fcn.00488e50
add esp, 0xc
jmp 0x486cf5
lea ebp, [esp + 0x39d0]
test edx, edx
mov dword [esp + 0x5f8], ebp
jl 0x486c83
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 0x486cc0
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 0x486c93
cmp word [ebp + edx*2], 0
je 0x486cc9
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.00488e50
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.00488f50
lea eax, [esp + 0x1ec]
lea ecx, [esp + 0x100]
push eax
push ecx
call fcn.00488cf0
add esp, 0x14
test eax, eax
jl 0x486d6a
lea edx, [esp + 0xf4]
lea eax, [esp + 0x1e0]
push edx
lea ecx, [esp + 0xf8]
push eax
push ecx
call fcn.00488f50
inc word [esi]
lea edx, [esp + 0x1ec]
lea eax, [esp + 0x100]
push edx
push eax
call fcn.00488cf0
add esp, 0x14
test eax, eax
jge 0x486d2e
test ebx, ebx
je 0x486dd5
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 0x486a9f
cmp eax, dword [esp + 0x1e0]
jge 0x486a9f
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 0x486d98
jmp 0x486a9f
mov eax, dword [esp + 0x378]
test eax, eax
jle 0x486df7
mov ecx, dword [esp + 0x37c]
cmp word [ecx + eax*2 - 2], 0
jne 0x486df7
dec eax
mov dword [esp + 0x378], eax
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x486e0e
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0xf4]
push edx
push eax
jmp 0x486e30
mov ecx, dword [esp + 0x1c]
push eax
lea edx, [esp + 0xf8]
push ecx
push edx
call fcn.00488dc0
add esp, 0xc
jmp 0x486e38
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x4c]
push eax
push ecx
call fcn.00488cb0
add esp, 8
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x4c]
push edx
push eax
call fcn.00488cb0
mov eax, dword [esp + 0x28]
add esp, 8
mov cl, byte [esp + 0x3ac]
test cl, cl
je 0x48751d
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x48700a
cmp dword [eax], 0
je 0x48700a
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 0x486ea9
mov ecx, edx
mov edx, dword [esp + 0x618]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x486e92
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x20]
cmp ecx, dword [eax]
jl 0x486eb9
lea esi, [esp + 0x44]
mov ebp, eax
jmp 0x486ebf
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 0x486fd8
mov ecx, dword [ebp + 4]
mov eax, dword [esi]
test eax, eax
mov di, word [ecx + ebx*2]
je 0x486fa8
test di, di
je 0x486fa8
cmp di, 1
jne 0x486f17
lea edx, [esp + 0x298]
push edx
push esi
jmp 0x486f98
lea edx, [esp + 0x3de0]
xor eax, eax
mov dword [esp + 0x608], edx
mov ecx, dword [esi]
test ecx, ecx
jl 0x486f41
lea ecx, [esp + 0x3de0]
mov word [ecx], 0
inc eax
add ecx, 2
cmp eax, dword [esi]
jle 0x486f34
mov ecx, dword [esi]
xor eax, eax
test ecx, ecx
jle 0x486f77
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 0x486f51
mov ebp, dword [esp + 0x24]
mov eax, dword [esi]
cmp word [edx + eax*2], 0
je 0x486f81
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.00488e50
add esp, 0xc
mov eax, dword [esp + 0x298]
test eax, eax
jle 0x486fbb
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 0x486ee9
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x618]
cmp word [ecx + eax*2 - 2], 0
jne 0x486fec
dec eax
mov dword [esp + 0x614], eax
lea edx, [esp + 0x44]
lea eax, [esp + 0x614]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x487012
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 0x487049
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 0x487061
mov dword [esp + 0x2d0], edi
mov dword [esi], edi
jmp 0x48752b
cmp dword [esp + 0x10], 1
jne 0x48708e
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x48708e
lea edx, [esp + 0x2d0]
lea eax, [esp + 0x44]
push edx
push eax
call fcn.00488cb0
add esp, 8
mov dword [esi], edi
jmp 0x48752b
lea ecx, [esp + 0x10]
lea edx, [esp + 0x44]
push ecx
push edx
call fcn.00488cf0
add esp, 8
test eax, eax
jge 0x4870b5
mov dword [esp + 0x2d0], edi
push esi
lea eax, [esp + 0x48]
jmp 0x487522
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 0x4870d6
shr ax, 1
inc ecx
cmp ax, di
jne 0x4870cd
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 0x487128
lea eax, [esp + 0x74c]
lea ecx, [esp + 0x44]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x150]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.00488cb0
add esp, 0x10
jmp 0x487151
lea ecx, [esp + 0x74c]
push esi
lea edx, [esp + 0x48]
push ecx
push edx
call fcn.00488d40
lea eax, [esp + 0x154]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.00488d40
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 0x4871aa
mov word [esi], ax
mov dword [esp + 0x104], eax
jmp 0x487462
cmp dword [esp + 0x148], 1
jne 0x48725b
cmp eax, 1
jne 0x48720b
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 0x487462
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 0x487462
lea eax, [esp + 0x104]
lea ecx, [esp + 0x104]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x150]
lea eax, [esp + 0x10c]
push edx
push eax
call fcn.00488cf0
add esp, 0x10
test eax, eax
jge 0x487296
mov word [esi], 0
jmp 0x487462
mov eax, dword [esp + 0x104]
mov ecx, dword [esp + 0x148]
cmp eax, ecx
jne 0x4872ce
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 0x4872ee
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 0x4873ed
test ax, ax
je 0x4873ed
cmp ax, 1
jne 0x487354
lea eax, [esp + 0x448]
lea ecx, [esp + 0x148]
push eax
lea edx, [esp + 0x44c]
push ecx
push edx
call fcn.00488e50
add esp, 0xc
jmp 0x4873ed
lea ebp, [esp + 0x3fe8]
test edx, edx
mov dword [esp + 0x628], ebp
jl 0x48737b
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 0x4873b8
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 0x48738b
cmp word [ebp + edx*2], 0
je 0x4873c1
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.00488e50
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.00488f50
lea eax, [esp + 0x154]
lea ecx, [esp + 0x110]
push eax
push ecx
call fcn.00488cf0
add esp, 0x14
test eax, eax
jl 0x487462
lea edx, [esp + 0x104]
lea eax, [esp + 0x148]
push edx
lea ecx, [esp + 0x108]
push eax
push ecx
call fcn.00488f50
inc word [esi]
lea edx, [esp + 0x154]
lea eax, [esp + 0x110]
push edx
push eax
call fcn.00488cf0
add esp, 0x14
test eax, eax
jge 0x487426
test ebx, ebx
je 0x4874cd
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 0x487197
cmp eax, dword [esp + 0x148]
jge 0x487197
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 0x487490
jmp 0x487197
mov eax, dword [esp + 0x2d0]
test eax, eax
jle 0x4874ef
mov ecx, dword [esp + 0x2d4]
cmp word [ecx + eax*2 - 2], 0
jne 0x4874ef
dec eax
mov dword [esp + 0x2d0], eax
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x487505
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x104]
push edx
jmp 0x487522
mov ecx, dword [esp + 0x20]
push eax
lea edx, [esp + 0x108]
push ecx
push edx
call fcn.00488dc0
add esp, 0xc
jmp 0x48752b
lea ecx, [esp + 0x44]
push ecx
push eax
call fcn.00488cb0
add esp, 8
mov esi, dword [esp + 0x13c]
lea edx, [esp + 0x44]
push esi
push edx
call fcn.00488cb0
mov eax, dword [esp + 0x3ac]
add esp, 8
test eax, eax
je 0x487569
lea eax, [esp + 0x34]
mov dword [esp + 0x3a4], 0
push eax
push esi
call fcn.00488cb0
add esp, 8
jmp 0x488313
mov dword [esp + 0x24], 8
mov edx, dword [esp + 0x34]
xor eax, eax
cmp edx, eax
je 0x4876f8
lea edi, [edx + edx]
lea ecx, [esp + 0x910]
cmp edi, eax
mov dword [esp + 0x648], ecx
mov dword [esp + 0x18], edi
jle 0x4875af
mov edx, dword [esp + 0x648]
inc eax
cmp eax, edi
mov word [edx + eax*2 - 2], 0
jl 0x487598
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 0x4876ca
mov ecx, dword [esp + 0x38]
test edx, edx
mov bp, word [ecx + ebx*2]
je 0x48769d
test bp, bp
je 0x48769d
cmp bp, 1
jne 0x48760b
lea edx, [esp + 0x2a8]
lea eax, [esp + 0x34]
push edx
lea ecx, [esp + 0x2ac]
push eax
push ecx
jmp 0x487691
lea esi, [esp + 0x43f8]
test edx, edx
mov dword [esp + 0x638], esi
jl 0x487636
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 0x48766a
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 0x487644
cmp word [esi + edx*2], 0
je 0x487672
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.00488e50
mov edx, dword [esp + 0x40]
add esp, 0xc
mov eax, dword [esp + 0x2a8]
test eax, eax
jle 0x4876b0
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 0x4875d2
mov eax, dword [esp + 0x648]
cmp word [eax + edi*2 - 2], 0
jne 0x4876da
dec edi
lea ecx, [esp + 0x34]
lea edx, [esp + 0x644]
push ecx
push edx
mov dword [esp + 0x64c], edi
call fcn.00488cb0
add esp, 8
jmp 0x4876fc
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 0x487733
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 0x48774b
mov dword [esp + 0x388], edi
mov dword [esi], edi
jmp 0x487c20
cmp dword [esp + 0x10], 1
jne 0x487778
mov eax, dword [esp + 0x14]
cmp word [eax], 1
jne 0x487778
lea ecx, [esp + 0x388]
lea edx, [esp + 0x34]
push ecx
push edx
call fcn.00488cb0
add esp, 8
mov dword [esi], edi
jmp 0x487c20
lea eax, [esp + 0x10]
lea ecx, [esp + 0x34]
push eax
push ecx
call fcn.00488cf0
add esp, 8
test eax, eax
jge 0x4877a8
lea edx, [esp + 0x34]
push esi
push edx
mov dword [esp + 0x390], edi
call fcn.00488cb0
add esp, 8
jmp 0x487c20
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 0x4877cc
shr ax, 1
inc ecx
cmp ax, di
jne 0x4877c3
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 0x48781e
lea edx, [esp + 0x75c]
lea eax, [esp + 0x34]
push edx
push eax
call fcn.00488cb0
lea ecx, [esp + 0x158]
lea edx, [esp + 0x18]
push ecx
push edx
call fcn.00488cb0
add esp, 0x10
jmp 0x487847
lea eax, [esp + 0x75c]
push esi
lea ecx, [esp + 0x38]
push eax
push ecx
call fcn.00488d40
lea edx, [esp + 0x15c]
push esi
lea eax, [esp + 0x20]
push edx
push eax
call fcn.00488d40
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 0x4878a0
mov word [esi], ax
mov dword [esp + 0x114], eax
jmp 0x487b5e
cmp dword [esp + 0x150], 1
jne 0x487957
cmp eax, 1
jne 0x487904
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 0x487b5e
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 0x487b5e
lea eax, [esp + 0x114]
lea ecx, [esp + 0x114]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x158]
lea eax, [esp + 0x11c]
push edx
push eax
call fcn.00488cf0
add esp, 0x10
test eax, eax
jge 0x487992
mov word [esi], 0
jmp 0x487b5e
mov eax, dword [esp + 0x114]
mov ecx, dword [esp + 0x150]
cmp eax, ecx
jne 0x4879ca
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 0x4879ea
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 0x487ae9
test ax, ax
je 0x487ae9
cmp ax, 1
jne 0x487a50
lea eax, [esp + 0x458]
lea ecx, [esp + 0x150]
push eax
lea edx, [esp + 0x45c]
push ecx
push edx
call fcn.00488e50
add esp, 0xc
jmp 0x487ae9
lea ebp, [esp + 0x4600]
test edx, edx
mov dword [esp + 0x658], ebp
jl 0x487a77
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 0x487ab4
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 0x487a87
cmp word [ebp + edx*2], 0
je 0x487abd
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.00488e50
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.00488f50
lea eax, [esp + 0x15c]
lea ecx, [esp + 0x120]
push eax
push ecx
call fcn.00488cf0
add esp, 0x14
test eax, eax
jl 0x487b5e
lea edx, [esp + 0x114]
lea eax, [esp + 0x150]
push edx
lea ecx, [esp + 0x118]
push eax
push ecx
call fcn.00488f50
inc word [esi]
lea edx, [esp + 0x15c]
lea eax, [esp + 0x120]
push edx
push eax
call fcn.00488cf0
add esp, 0x14
test eax, eax
jge 0x487b22
test ebx, ebx
je 0x487bc9
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 0x48788d
cmp eax, dword [esp + 0x150]
jge 0x48788d
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 0x487b8c
jmp 0x48788d
mov eax, dword [esp + 0x388]
test eax, eax
jle 0x487beb
mov ecx, dword [esp + 0x38c]
cmp word [ecx + eax*2 - 2], 0
jne 0x487beb
dec eax
mov dword [esp + 0x388], eax
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x487c0a
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x114]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x487c20
mov ecx, dword [esp + 0x20]
push eax
lea edx, [esp + 0x118]
push ecx
push edx
call fcn.00488dc0
add esp, 0xc
mov eax, dword [esp + 0x24]
dec eax
mov dword [esp + 0x24], eax
jne 0x487571
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x487de4
mov eax, dword [esp + 0x13c]
cmp dword [eax], 0
je 0x487de4
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 0x487c80
mov ecx, edx
mov edx, dword [esp + 0x678]
inc eax
cmp eax, ecx
mov word [edx + eax*2 - 2], 0
jl 0x487c69
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x13c]
cmp ecx, dword [eax]
jl 0x487c93
lea esi, [esp + 0x34]
mov ebp, eax
jmp 0x487c99
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 0x487db2
mov ecx, dword [ebp + 4]
mov eax, dword [esi]
test eax, eax
mov di, word [ecx + ebx*2]
je 0x487d82
test di, di
je 0x487d82
cmp di, 1
jne 0x487cf1
lea edx, [esp + 0x208]
push edx
push esi
jmp 0x487d72
lea edx, [esp + 0x4a10]
xor eax, eax
mov dword [esp + 0x668], edx
mov ecx, dword [esi]
test ecx, ecx
jl 0x487d1b
lea ecx, [esp + 0x4a10]
mov word [ecx], 0
inc eax
add ecx, 2
cmp eax, dword [esi]
jle 0x487d0e
mov ecx, dword [esi]
xor eax, eax
test ecx, ecx
jle 0x487d51
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 0x487d2b
mov ebp, dword [esp + 0x24]
mov eax, dword [esi]
cmp word [edx + eax*2], 0
je 0x487d5b
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.00488e50
add esp, 0xc
mov eax, dword [esp + 0x208]
test eax, eax
jle 0x487d95
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 0x487cc3
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x678]
cmp word [ecx + eax*2 - 2], 0
jne 0x487dc6
dec eax
mov dword [esp + 0x674], eax
lea edx, [esp + 0x34]
lea eax, [esp + 0x674]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x487dec
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 0x487e29
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 0x487e41
mov dword [esp + 0x2e0], edi
mov dword [esi], edi
jmp 0x488313
cmp dword [esp + 0x10], 1
jne 0x487e6e
mov ecx, dword [esp + 0x14]
cmp word [ecx], 1
jne 0x487e6e
lea edx, [esp + 0x2e0]
lea eax, [esp + 0x34]
push edx
push eax
call fcn.00488cb0
add esp, 8
mov dword [esi], edi
jmp 0x488313
lea ecx, [esp + 0x10]
lea edx, [esp + 0x34]
push ecx
push edx
call fcn.00488cf0
add esp, 8
test eax, eax
jge 0x487e9e
lea eax, [esp + 0x34]
push esi
push eax
mov dword [esp + 0x2e8], edi
call fcn.00488cb0
add esp, 8
jmp 0x488313
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 0x487ebf
shr ax, 1
inc ecx
cmp ax, di
jne 0x487eb6
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 0x487f11
lea eax, [esp + 0x76c]
lea ecx, [esp + 0x34]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x170]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.00488cb0
add esp, 0x10
jmp 0x487f3a
lea ecx, [esp + 0x76c]
push esi
lea edx, [esp + 0x38]
push ecx
push edx
call fcn.00488d40
lea eax, [esp + 0x174]
push esi
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.00488d40
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 0x487f93
mov word [esi], ax
mov dword [esp + 0xec], eax
jmp 0x48824b
cmp dword [esp + 0x168], 1
jne 0x488044
cmp eax, 1
jne 0x487ff4
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 0x48824b
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 0x48824b
lea eax, [esp + 0xec]
lea ecx, [esp + 0xec]
push eax
push ecx
call fcn.00488cb0
lea edx, [esp + 0x170]
lea eax, [esp + 0xf4]
push edx
push eax
call fcn.00488cf0
add esp, 0x10
test eax, eax
jge 0x48807f
mov word [esi], 0
jmp 0x48824b
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0x168]
cmp eax, ecx
jne 0x4880b7
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 0x4880d7
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 0x4881d6
test ax, ax
je 0x4881d6
cmp ax, 1
jne 0x48813d
lea eax, [esp + 0x468]
lea ecx, [esp + 0x168]
push eax
lea edx, [esp + 0x46c]
push ecx
push edx
call fcn.00488e50
add esp, 0xc
jmp 0x4881d6
lea ebp, [esp + 0x4c18]
test edx, edx
mov dword [esp + 0x688], ebp
jl 0x488164
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 0x4881a1
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 0x488174
cmp word [ebp + edx*2], 0
je 0x4881aa
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.00488e50
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.00488f50
lea eax, [esp + 0x174]
lea ecx, [esp + 0xf8]
push eax
push ecx
call fcn.00488cf0
add esp, 0x14
test eax, eax
jl 0x48824b
lea edx, [esp + 0xec]
lea eax, [esp + 0x168]
push edx
lea ecx, [esp + 0xf0]
push eax
push ecx
call fcn.00488f50
inc word [esi]
lea edx, [esp + 0x174]
lea eax, [esp + 0xf8]
push edx
push eax
call fcn.00488cf0
add esp, 0x14
test eax, eax
jge 0x48820f
test ebx, ebx
je 0x4882b6
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 0x487f80
cmp eax, dword [esp + 0x168]
jge 0x487f80
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 0x488279
jmp 0x487f80
mov eax, dword [esp + 0x2e0]
test eax, eax
jle 0x4882d8
mov ecx, dword [esp + 0x2e4]
cmp word [ecx + eax*2 - 2], 0
jne 0x4882d8
dec eax
mov dword [esp + 0x2e0], eax
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x4882fa
mov edx, dword [esp + 0x13c]
lea eax, [esp + 0xec]
push edx
push eax
call fcn.00488cb0
add esp, 8
jmp 0x488313
mov ecx, dword [esp + 0x13c]
push eax
lea edx, [esp + 0xf0]
push ecx
push edx
call fcn.00488dc0
add esp, 0xc
mov eax, dword [esp + 0x3bc]
dec eax
mov dword [esp + 0x3bc], eax
jns 0x47de7c
mov eax, dword [esp + 0x3b8]
dec eax
mov dword [esp + 0x3b8], eax
jns 0x47de71
mov ebp, dword [esp + 0x1f500]
lea eax, [esp + 0x780]
lea ecx, [esp + 0x34]
push eax
push ecx
call fcn.00488cb0
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 0x488381
cmp byte [edx], 0
jne 0x488381
dec ecx
dec edx
test ecx, ecx
jg 0x488376
cmp ecx, 0x11
ja 0x488415
test eax, eax
lea edi, [esp + 0x788]
mov ecx, esi
jle 0x4883a2
cmp byte [ecx], 0
jne 0x4883a2
dec eax
dec ecx
test eax, eax
jg 0x488397
lea ecx, [esp + 0x788]
test ecx, ecx
je 0x4883bf
cmp eax, 1
mov ecx, ebx
jl 0x4883bf
mov esi, eax
mov dl, byte [ecx]
mov byte [edi], dl
inc edi
inc ecx
dec esi
jne 0x4883b6
mov cl, byte [esp + eax + 0x787]
test cl, cl
jne 0x4883f1
sub eax, 0x10
cmp eax, 0x11
jge 0x488415
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 0x4883e6
jmp 0x488415
sub eax, 0x11
cmp eax, 0x10
jge 0x488415
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 0x48840c
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