Function at 0x608390
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0x8c4
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x2c0], eax
xor eax, eax
mov edx, dword [ebp + 0x18]
mov ecx, dword [0x6d159c]
xor ecx, esp
mov dword [esp + 0x8b8], ecx
mov esi, dword [ebp + 0x24]
mov dword [esp + 0x838], eax
mov dword [esp + 0x84c], eax
mov dword [esp + 0x850], eax
mov dword [esp + 0x854], eax
mov dword [esp + 0x858], eax
mov dword [esp + 0x85c], eax
mov dword [esp + 0x860], eax
mov dword [esp + 0x864], eax
mov dword [esp + 0x868], eax
mov dword [esp + 0x86c], eax
mov dword [esp + 0x870], eax
mov dword [esp + 0x874], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x2c4], edx
test edx, edx
jle 0x60cddd
mov ecx, dword [ebp + 0x20]
mov edx, ecx
shr edx, 0x16
and edx, 7
test ecx, 0x80000000
jne 0x608449
test dl, 1
jne 0x608449
xor edx, edx
mov edi, dword [ebp + 0x20]
mov ebx, edi
and ebx, 0x80002000
xor ecx, ecx
mov dword [esp], eax
mov eax, edi
cmp ebx, 0x80002000
mov ebx, ecx
sete bl
and eax, 0x80001000
cmp eax, 0x80001000
mov eax, ecx
sete al
and edi, 0x80000800
cmp edi, 0x80000800
sete cl
shl ebx, 0xa
shl eax, 9
shl ecx, 8
or ebx, eax
or ebx, ecx
mov ecx, edx
bts ebx, edx
and ecx, 2
mov eax, dword [esp]
test dl, 4
je 0x6084b8
mov edx, 0xaaaa
test ecx, ecx
jne 0x6084af
mov edx, 0xfa
mov dword [esp + 0x22c], edx
jmp 0x6084df
test ecx, ecx
je 0x6084c9
mov dword [esp + 0x22c], 0xfa00
jmp 0x6084df
test dl, 1
mov edx, 0xa8a8
je 0x6084d8
mov edx, 0
mov dword [esp + 0x22c], edx
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x44], edx
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x48], edx
mov edx, dword [ebp + 0x14]
mov edi, edx
mov dword [esp + 0x40], ecx
mov ecx, edx
and ecx, 0x80000000
xor edi, ecx
mov dword [esp + 0x2a8], edx
mov dword [esp], edi
mov dword [esp + 0x4c], edi
mov dword [ebp + 0x14], edi
lea edi, [edi - 0x3fff0000]
mov dword [esp + 8], edi
and edx, 0x7fff0000
je 0x608532
cmp edx, 0x7fff0000
jne 0x6089c0
mov eax, dword [esp]
xor eax, edx
or eax, dword [esp + 0x48]
or eax, dword [esp + 0x44]
or eax, dword [esp + 0x40]
jne 0x608604
xor eax, eax
mov dword [esp + 0x848], eax
mov dword [esp + 0x844], eax
mov dword [esp + 0x840], eax
mov dword [esp + 0x83c], eax
test edx, edx
je 0x6085e4
test ecx, ecx
je 0x60857a
mov eax, dword [ebp + 0x34]
mov dword [eax], 0xfffffffc
jmp 0x608583
mov eax, dword [ebp + 0x34]
mov dword [eax], 4
test ebx, 0x400
je 0x6085a1
test ebx, 0x200
je 0x60859a
mov eax, str.INFINITY
jmp 0x6085a6
mov eax, str.infinity
jmp 0x6085a6
mov eax, str.Infinity
mov edi, esi
lea edx, [eax + 1]
movsx eax, byte [eax]
test eax, eax
je 0x6085bd
mov byte [edi], al
inc edi
movsx eax, byte [edx]
inc edx
test eax, eax
jne 0x6085b2
mov ebx, dword [ebp + 0x30]
mov edx, edi
mov ecx, dword [ebp + 0x20]
sub edx, esi
and ecx, 0x40000000
shr ecx, 0x1d
mov dword [ebx], edx
mov edx, 4
shl edx, cl
mov eax, dword [ebp + 0x24]
add edx, 0xfffffffc
jmp 0x6087c4
test ecx, ecx
je 0x6085f6
mov eax, dword [ebp + 0x34]
mov dword [eax], 0xffffffff
jmp 0x6086ff
mov eax, dword [ebp + 0x34]
mov dword [eax], 1
jmp 0x6086ff
test edx, edx
je 0x6086bc
xor eax, eax
mov dword [esp + 0x848], eax
mov dword [esp + 0x844], eax
mov dword [esp + 0x840], eax
mov dword [esp + 0x83c], eax
test ebx, 0x400
je 0x608673
test dword [esp], 0x8000
jne 0x60864a
shr ecx, 0x1e
mov eax, 0x10
shr eax, cl
add eax, 0xfffffff6
jmp 0x608658
mov eax, 0xfffffffb
test ecx, ecx
jne 0x608658
mov eax, 5
mov edx, dword [ebp + 0x34]
mov dword [edx], eax
test ebx, 0x200
je 0x60866c
mov eax, 0x69aea0
jmp 0x608681
mov eax, 0x69aea4
jmp 0x608681
mov eax, dword [ebp + 0x34]
mov dword [eax], 0
mov eax, 0x69aea8
mov edi, esi
lea edx, [eax + 1]
movsx eax, byte [eax]
test eax, eax
je 0x608698
mov byte [edi], al
inc edi
movsx eax, byte [edx]
inc edx
test eax, eax
jne 0x60868d
mov ebx, dword [ebp + 0x30]
mov ecx, edi
mov edx, 0xa
test dword [ebp + 0x20], 0x40000000
mov eax, dword [ebp + 0x24]
jne 0x6086b3
mov edx, 0
sub ecx, esi
mov dword [ebx], ecx
jmp 0x6087c4
test ecx, ecx
je 0x6086cb
mov eax, dword [ebp + 0x34]
mov dword [eax], 0xfffffffe
jmp 0x6086d4
mov eax, dword [ebp + 0x34]
mov dword [eax], 2
test dword [ebp + 0x20], 0x10000000
je 0x608833
xor eax, eax
mov dword [esp + 0x848], eax
mov dword [esp + 0x844], eax
mov dword [esp + 0x840], eax
mov dword [esp + 0x83c], eax
test dword [ebp + 0x20], 0x80
je 0x608715
mov dword [esp + 0x2c0], 1
jmp 0x608774
test byte [ebp + 0x20], 2
je 0x608739
mov eax, dword [esp + 0x2c0]
inc eax
mov dword [esp + 0x2c0], eax
cmp eax, dword [ebp + 0x18]
jle 0x608752
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x2c4], eax
mov edx, dword [esp + 0x2c4]
mov edi, esi
lea eax, [edx - 1]
mov dword [esp + 0x2c0], eax
test edx, edx
jne 0x60877b
jmp 0x6087a5
cmp dword [esp + 0x2c0], 0
jg 0x608774
mov edx, dword [ebp + 0x30]
mov eax, esi
mov byte [esi], 0x30
lea edi, [esi + 1]
mov dword [edx], 1
mov edx, 6
jmp 0x6087c4
dec dword [esp + 0x2c0]
mov edx, dword [esp + 0x2c0]
lea eax, [edx + 1]
cmp edx, 0x60
jle 0x60c753
push eax
push 0x30
push esi
call fcn.0062a5e0
add esp, 0xc
mov eax, dword [esp + 0x2c0]
lea edi, [esi + eax + 1]
mov eax, dword [ebp + 0x30]
mov edx, 0xb
test dword [ebp + 0x20], 0x40000000
mov dword [eax], 1
mov eax, dword [ebp + 0x24]
jne 0x6087c4
mov edx, 0
mov ebx, dword [ebp + 0x28]
mov byte [edi], 0
test ebx, ebx
je 0x6087d4
mov ecx, eax
sub ecx, esi
mov dword [ebx], ecx
mov ecx, dword [ebp + 0x2c]
test ecx, ecx
je 0x6087e1
neg esi
add esi, edi
mov dword [ecx], esi
mov ecx, eax
test eax, eax
je 0x6087f8
cmp ecx, edi
jae 0x6087f8
movsx ebx, byte [ecx]
inc ecx
cmp ebx, 0x30
jne 0x6087fd
test ecx, ecx
jne 0x6087e7
mov edx, 0xb
mov ecx, dword [ebp + 0x38]
test ecx, ecx
je 0x608806
mov dword [ecx], edx
mov ecx, dword [esp + 0x8b8]
mov dword [esp + 0x8b8], 0
xor ecx, esp
cmp ecx, dword [0x6d159c]
jne 0x60c74e
add esp, 0x8c4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x14]
mov edi, edx
and edi, 0x7fff0000
shr edi, 0x10
mov dword [esp + 8], edi
je 0x608886
mov ecx, dword [ebp + 0x10]
mov eax, ecx
shl edx, 0xf
shr eax, 0x11
or edx, eax
mov eax, dword [ebp + 0xc]
mov edi, eax
shl ecx, 0xf
shr edi, 0x11
or ecx, edi
mov edi, dword [ebp + 8]
mov dword [esp + 4], edx
mov edx, edi
shl eax, 0xf
shr edx, 0x11
shl edi, 0xf
or eax, edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edi
jmp 0x6089a1
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x230], ebx
mov ebx, edi
mov ecx, dword [ebp + 0x10]
mov eax, ecx
shl ecx, 0x10
shr ebx, 0x10
or ecx, ebx
mov ebx, dword [ebp + 8]
mov dword [esp + 0x14], ecx
mov ecx, ebx
shl edi, 0x10
shr ecx, 0x10
shl edx, 0x10
or edi, ecx
shr eax, 0x10
shl ebx, 0x10
mov dword [esp + 0xc], ebx
or edx, eax
mov dword [esp + 0x10], edi
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x230]
jne 0x60891f
mov ecx, edi
mov dword [esp + 0x230], ebx
xor edi, edi
mov dword [esp + 0x334], esi
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 8]
mov eax, ebx
add esi, 0xffffffe0
mov ebx, ecx
mov ecx, edx
mov edx, edi
test eax, eax
je 0x6088ee
mov dword [esp + 0x14], ebx
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov ebx, dword [esp + 0x230]
mov esi, dword [esp + 0x334]
cmp dword [esp + 4], 0
jle 0x6089a1
mov dword [esp], 0
mov eax, dword [esp]
mov edx, dword [esp + 4]
add edx, edx
inc eax
test edx, edx
jg 0x608934
mov dword [esp], eax
mov dword [esp + 4], edx
cmp dword [esp], 0
je 0x6089a1
mov dword [esp + 0x230], ebx
mov ebx, eax
mov ecx, ebx
mov edx, dword [esp + 0x14]
neg ecx
mov edi, edx
shr edi, cl
add dword [esp + 8], ecx
mov eax, dword [esp + 0x10]
mov dword [esp], ecx
mov ecx, ebx
or dword [esp + 4], edi
mov edi, eax
shl edx, cl
mov ecx, dword [esp]
shr edi, cl
mov ecx, ebx
or edx, edi
mov edi, dword [esp + 0xc]
mov dword [esp + 0x14], edx
mov edx, edi
shl eax, cl
mov ecx, dword [esp]
shr edx, cl
mov ecx, ebx
shl edi, cl
or eax, edx
mov ebx, dword [esp + 0x230]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edi
mov eax, dword [esp + 4]
mov edx, dword [esp + 8]
shr eax, 0xf
shl edx, 0x10
movzx eax, ax
add edx, 0xc0010000
or edx, eax
mov dword [esp + 8], edx
jmp 0x6089d8
test ecx, ecx
je 0x6089cf
mov edx, dword [ebp + 0x34]
mov dword [edx], 0xfffffffd
jmp 0x6089d8
mov edx, dword [ebp + 0x34]
mov dword [edx], 3
mov edx, ebx
and edx, 0x100
mov dword [esp + 0x228], edx
je 0x608c5d
and ebx, 0x200
mov eax, ebx
xor eax, 0x200
shr eax, 4
mov edx, dword [ebp + 0x14]
lea edi, [eax + 0x46]
mov ecx, edx
and ecx, 0x7fff0000
add eax, 8
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], eax
shr ecx, 0x10
mov dword [esp + 0x14], ecx
je 0x608a64
mov ecx, dword [ebp + 0x10]
or edx, 0xffff0000
mov eax, ecx
shl edx, 0xf
shr eax, 0x11
or edx, eax
mov eax, dword [ebp + 0xc]
mov edi, eax
shl ecx, 0xf
shr edi, 0x11
or ecx, edi
mov edi, dword [ebp + 8]
mov dword [esp + 0x10], edx
mov edx, edi
shl eax, 0xf
shr edx, 0x11
shl edi, 0xf
or eax, edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], edi
jmp 0x608b7f
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x230], ebx
mov ebx, edi
mov ecx, dword [ebp + 0x10]
mov eax, ecx
shl ecx, 0x10
shr ebx, 0x10
or ecx, ebx
mov ebx, dword [ebp + 8]
mov dword [esp + 4], ecx
mov ecx, ebx
shl edi, 0x10
shr ecx, 0x10
shl edx, 0x10
or edi, ecx
shr eax, 0x10
shl ebx, 0x10
mov dword [esp + 0xc], ebx
or edx, eax
mov dword [esp + 8], edi
mov dword [esp + 0x10], edx
mov ebx, dword [esp + 0x230]
jne 0x608afd
mov edx, edi
mov dword [esp + 0x230], ebx
xor edi, edi
mov dword [esp + 0x334], esi
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 4]
mov ebx, dword [esp + 0x14]
mov esi, ecx
add ebx, 0xffffffe0
mov ecx, edx
mov edx, eax
mov eax, edi
test esi, esi
je 0x608acc
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov ebx, dword [esp + 0x230]
mov esi, dword [esp + 0x334]
cmp dword [esp + 0x10], 0
jle 0x608b7f
mov dword [esp], 0
mov eax, dword [esp]
mov edx, dword [esp + 0x10]
add edx, edx
inc eax
test edx, edx
jg 0x608b12
mov dword [esp], eax
mov dword [esp + 0x10], edx
cmp dword [esp], 0
je 0x608b7f
mov dword [esp + 0x230], ebx
mov ebx, eax
mov ecx, ebx
mov edx, dword [esp + 4]
neg ecx
mov edi, edx
shr edi, cl
add dword [esp + 0x14], ecx
mov eax, dword [esp + 8]
mov dword [esp], ecx
mov ecx, ebx
or dword [esp + 0x10], edi
mov edi, eax
shl edx, cl
mov ecx, dword [esp]
shr edi, cl
mov ecx, ebx
or edx, edi
mov edi, dword [esp + 0xc]
mov dword [esp + 4], edx
mov edx, edi
shl eax, cl
mov ecx, dword [esp]
shr edx, cl
mov ecx, ebx
shl edi, cl
or eax, edx
mov ebx, dword [esp + 0x230]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edi
xor eax, eax
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 4]
cmp eax, edi
mov dword [esp + 0x83c], ecx
mov ecx, 1
mov edx, dword [esp + 8]
adc ecx, 0
test edx, edx
mov eax, dword [esp + 0xc]
je 0x608bab
mov ecx, 3
test eax, eax
mov dword [esp + 0x844], edx
je 0x608bbb
mov ecx, 4
mov edx, dword [ebp + 0x18]
mov dword [esp + 0x840], edi
lea edi, [esi + 1]
mov dword [esp + 0x848], eax
mov eax, edi
mov byte [esi], 0x30
lea edx, [edx - 1]
mov dword [esp], edx
mov edx, 8
mov dword [esp + 0x230], ebx
mov dword [esp + 0x334], esi
mov dword [esp + 0x20], 1
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1fc], eax
mov ebx, dword [esp]
mov esi, dword [esp + 0x10]
mov ecx, esi
dec edx
shr ecx, 0x1c
shl esi, 4
cmp ecx, 0xa
jge 0x608c1a
lea eax, [ecx + 0x30]
jmp 0x608c2c
cmp dword [esp + 0x230], 0
je 0x608c29
lea eax, [ecx + 0x37]
jmp 0x608c2c
lea eax, [ecx + 0x57]
mov byte [edi], al
inc edi
test ebx, ebx
jle 0x60c9f4
dec ebx
test edx, edx
jne 0x608c07
mov eax, dword [esp + 0x20]
cmp eax, dword [esp + 0x24]
jae 0x60c78c
mov edx, 8
inc eax
mov dword [esp + 0x20], eax
mov esi, dword [esp + eax*4 + 0x838]
jmp 0x608c07
mov edi, dword [esp + 8]
test edi, edi
mov edx, dword [esp + 0xc]
mov dword [esp + 0x83c], eax
mov eax, 0
mov dword [esp + 0x848], edx
setl al
mov ecx, dword [esp + 0x10]
add eax, 0x4d104d42
mov edx, dword [esp + 0x14]
mov dword [esp + 0x844], ecx
mov dword [esp + 0x840], edx
mov dword [esp + 0x184], edi
mov dword [esp + 0x188], eax
mov eax, dword [esp + 0x184]
imul dword [esp + 0x188]
mov dword [esp + 0x18c], edx
mov edx, dword [esp + 0x2a8]
mov edi, ebx
mov ecx, dword [ebp + 0x20]
and edi, 2
shr edx, 0x1c
and ecx, 2
mov dword [esp + 0x1b4], ecx
mov ecx, ebx
movsx eax, word [esp + 0x18e]
and edx, 0xfffffff8
inc eax
and ecx, 0x41
mov dword [esp + 0x2a8], edx
xor edx, edx
mov dword [esp + 0x19c], eax
lea eax, [esi + 1]
and ebx, 0x14
mov dword [esp + 0x198], edx
mov dword [esp + 0x230], ebx
mov dword [esp + 0x190], ecx
mov dword [esp + 0x194], edi
mov dword [esp + 0x210], edx
mov dword [esp + 0x1fc], eax
mov dword [esp + 0x334], esi
jmp 0x608d44
mov edi, dword [esp + 0x1f8]
neg edi
lea eax, [edi + 1]
mov dword [esp + 0x19c], eax
cmp dword [esp + 0x1b4], 0
je 0x608de5
cmp dword [esp + 0x2c0], 0
jge 0x608d7e
mov eax, dword [esp + 0x2c0]
neg eax
mov dword [esp + 0x198], eax
mov dword [esp + 0x210], eax
mov dword [esp + 0x2c0], 0
mov eax, dword [esp + 0x2c0]
mov edx, dword [esp + 0x19c]
lea ecx, [eax + edx]
mov dword [esp + 0x2c4], ecx
cmp ecx, dword [ebp + 0x18]
jle 0x608dce
mov eax, edx
sub ecx, dword [ebp + 0x18]
neg ecx
mov ebx, dword [esp + 0x210]
add ecx, dword [esp + 0x198]
test ebx, ebx
mov edx, dword [ebp + 0x30]
mov esi, dword [ebp + 0x18]
je 0x608dbc
mov ebx, ecx
mov dword [edx], eax
mov dword [esp + 0x210], ebx
mov dword [esp + 0x2c4], esi
jmp 0x608df1
cmp dword [esp + 0x2c4], 0
jle 0x60ca1b
mov eax, edx
mov edx, dword [ebp + 0x30]
mov dword [edx], eax
jmp 0x608df1
mov edx, dword [ebp + 0x30]
mov eax, dword [esp + 0x19c]
mov dword [edx], eax
mov edi, eax
neg edi
jne 0x608fdf
mov esi, dword [ebp + 0x14]
mov eax, esi
and eax, 0x7fff0000
mov edx, dword [ebp + 0x10]
shr eax, 0x10
je 0x608e4d
or esi, 0xffff0000
mov ebx, edx
shl esi, 0xf
shr ebx, 0x11
mov ecx, dword [ebp + 0xc]
or esi, ebx
mov ebx, ecx
shl edx, 0xf
shr ebx, 0x11
or edx, ebx
mov ebx, dword [ebp + 8]
mov dword [esp + 0x154], edx
mov edx, ebx
shl ecx, 0xf
shr edx, 0x11
or ecx, edx
mov dword [esp + 0x150], ecx
shl ebx, 0xf
jmp 0x608f71
mov ebx, dword [ebp + 0xc]
mov ecx, ebx
mov dword [esp + 0x324], eax
mov eax, edx
shl edx, 0x10
shr ecx, 0x10
or edx, ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x154], edx
mov edx, ecx
shl ebx, 0x10
shr edx, 0x10
or ebx, edx
mov dword [esp + 0x150], ebx
mov ebx, ecx
shl esi, 0x10
shr eax, 0x10
shl ebx, 0x10
or esi, eax
mov eax, dword [esp + 0x324]
jne 0x608ecf
mov dword [esp + 0x1f8], edi
xor ecx, ecx
mov edx, dword [esp + 0x150]
mov edi, dword [esp + 0x154]
mov esi, edi
add eax, 0xffffffe0
mov edi, edx
mov edx, ebx
mov ebx, ecx
test esi, esi
je 0x608eab
mov dword [esp + 0x154], edi
mov dword [esp + 0x150], edx
mov edi, dword [esp + 0x1f8]
test esi, esi
jle 0x608f71
mov dword [esp + 0xb8], 0
mov edx, dword [esp + 0xb8]
add esi, esi
inc edx
test esi, esi
jg 0x608ee9
mov dword [esp + 0xb8], edx
cmp dword [esp + 0xb8], 0
je 0x608f71
mov ecx, edx
neg ecx
add eax, ecx
mov dword [esp + 0x324], eax
mov eax, dword [esp + 0x154]
mov dword [esp + 0x1f8], edi
mov edi, eax
shr edi, cl
or esi, edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], ecx
mov ecx, edx
mov esi, dword [esp + 0x150]
mov edi, esi
shl eax, cl
mov ecx, dword [esp + 0x14]
shr edi, cl
mov ecx, edx
or eax, edi
mov dword [esp + 0x154], eax
mov eax, ebx
shl esi, cl
mov ecx, dword [esp + 0x14]
shr eax, cl
mov ecx, edx
or esi, eax
mov dword [esp + 0x150], esi
shl ebx, cl
mov eax, dword [esp + 0x324]
mov edi, dword [esp + 0x1f8]
mov esi, dword [esp + 0x18]
xor edx, edx
add eax, 0xffffc002
mov dword [esp + 0x83c], esi
mov esi, dword [esp + 0x154]
cmp edx, esi
mov edx, 1
mov dword [esp + 0x840], esi
adc edx, 0
mov esi, dword [esp + 0x150]
test esi, esi
mov dword [esp + 0x844], esi
je 0x608fae
mov edx, 3
mov esi, 0x71
test ebx, ebx
mov dword [esp + 0x848], ebx
je 0x608fc3
mov edx, 4
xor ebx, ebx
mov dword [esp + 0x20c], esi
mov dword [esp + 0x214], ebx
mov dword [esp + 0x1f8], edi
jmp 0x60c067
xor eax, eax
mov dword [esp + 0x878], eax
mov dword [esp + 0x87c], eax
mov dword [esp + 0x880], eax
mov dword [esp + 0x884], eax
mov dword [esp + 0x888], eax
mov dword [esp + 0x88c], eax
mov dword [esp + 0x890], eax
mov dword [esp + 0x894], eax
mov dword [esp + 0x898], eax
mov dword [esp + 0x89c], eax
mov dword [esp + 0x8a0], eax
mov dword [esp + 0x8a4], eax
mov dword [esp + 0x8a8], eax
mov dword [esp + 0x8ac], eax
mov dword [esp + 0x8b0], eax
mov dword [esp + 0x8b4], eax
cmp edi, 0xfffffeaa
jl 0x609061
cmp edi, 0x159
jle 0x609068
mov esi, 0x80
jmp 0x60907c
mov esi, 0x80
cmp dword [esp + 0x2c4], 0x11
jg 0x60907c
mov esi, 0x40
xor ebx, ebx
cmp esi, 0x80
mov dword [esp + 0x20c], esi
setne bl
mov dword [esp + 0x214], ebx
mov dword [esp + 0x1f8], edi
mov eax, dword [ebp + 0x14]
mov ecx, eax
and ecx, 0x7fff0000
mov edx, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
shr ecx, 0x10
mov dword [esp + 0x1f4], ecx
je 0x6090e7
or eax, 0xffff0000
mov ecx, ebx
shl eax, 0xf
mov edi, esi
shr ecx, 0x11
or eax, ecx
mov ecx, edx
shl ebx, 0xf
shr edi, 0x11
shl esi, 0xf
or ebx, edi
shr ecx, 0x11
shl edx, 0xf
or esi, ecx
jmp 0x6091a3
mov edi, esi
mov ecx, ebx
shl ebx, 0x10
shr edi, 0x10
or ebx, edi
mov edi, edx
shl esi, 0x10
shr edi, 0x10
shl eax, 0x10
or esi, edi
shr ecx, 0x10
shl edx, 0x10
or eax, ecx
jne 0x609129
mov ecx, dword [esp + 0x1f4]
xor edi, edi
mov eax, ebx
add ecx, 0xffffffe0
mov ebx, esi
mov esi, edx
mov edx, edi
test eax, eax
je 0x609113
mov dword [esp + 0x1f4], ecx
test eax, eax
jle 0x6091a3
mov dword [esp + 0x170], 0
mov ecx, dword [esp + 0x170]
add eax, eax
inc ecx
test eax, eax
jg 0x60913f
mov dword [esp + 0x170], ecx
cmp dword [esp + 0x170], 0
je 0x6091a3
mov dword [esp + 0x148], edx
mov edi, ebx
mov edx, ecx
neg edx
mov ecx, edx
shr edi, cl
mov ecx, dword [esp + 0x170]
or eax, edi
shl ebx, cl
mov ecx, edx
mov edi, esi
shr edi, cl
add dword [esp + 0x1f4], edx
or ebx, edi
mov ecx, dword [esp + 0x170]
shl esi, cl
mov ecx, edx
mov edx, dword [esp + 0x148]
mov edi, edx
shr edi, cl
mov ecx, dword [esp + 0x170]
or esi, edi
shl edx, cl
mov dword [esp + 0x83c], eax
xor eax, eax
cmp eax, ebx
mov dword [esp + 0x840], ebx
mov ebx, 1
adc ebx, 0
test esi, esi
mov dword [esp + 0x844], esi
je 0x6091cd
mov ebx, 3
test edx, edx
mov dword [esp + 0x848], edx
mov dword [esp + 0x7f8], eax
mov dword [esp + 0x804], eax
mov dword [esp + 0x808], eax
mov dword [esp + 0x80c], eax
mov dword [esp + 0x810], eax
mov dword [esp + 0x814], eax
mov dword [esp + 0x818], eax
mov dword [esp + 0x81c], eax
mov dword [esp + 0x820], eax
mov dword [esp + 0x824], eax
mov dword [esp + 0x828], eax
mov dword [esp + 0x82c], eax
mov dword [esp + 0x830], eax
mov dword [esp + 0x834], eax
je 0x60923f
mov ebx, 4
mov edi, dword [esp + 0x1f8]
cmp dword [esp + 0x20c], 0x40
jne 0x6098ea
mov eax, edi
lea edx, [eax + 0x2f]
cmp edx, 0x5e
ja 0x6092c8
mov esi, dword [esp + 0x19c]
xor eax, eax
mov dword [esp + 0x800], eax
mov dword [esp + 0x7fc], eax
mov edx, edi
lea eax, [esi*8]
neg eax
mov esi, 2
movsx ecx, word [edx*2 + 0x69b9fe]
mov dword [esp + 0x1e0], ecx
mov edi, dword [eax + 0x69b81c]
mov edx, dword [eax + 0x69b818]
mov dword [esp + 0x87c], edi
mov dword [esp + 0x880], edx
test edx, edx
jne 0x60cabf
dec esi
lea edi, [esp + esi*4 + 0x878]
cmp dword [edi], 0
je 0x6092b6
jmp 0x60bb91
cmp dword [esp + 0x1f8], 0
js 0x60caf0
mov ecx, eax
sar ecx, 3
movzx edx, word [ecx*2 + 0x69bbe2]
lea esi, [ecx + 1]
shr edx, 5
cmp edx, eax
jle 0x6092ef
mov esi, ecx
movzx edx, word [esi*2 + 0x69bbe0]
mov ecx, edx
and ecx, 0x1f
shr edx, 5
neg edx
add edx, eax
mov eax, dword [ecx*8 + 0x69bb64]
movsx edi, word [ecx*2 + 0x69bc58]
mov dword [esp + 0x7fc], eax
mov dword [esp + 0x138], edi
mov eax, dword [ecx*8 + 0x69bb60]
movsx ecx, word [edx*2 + 0x69b9fe]
mov esi, dword [edx*8 + 0x69b81c]
mov edx, dword [edx*8 + 0x69b818]
mov dword [esp + 0x800], eax
mov dword [esp + 0x13c], ecx
mov ecx, 2
mov dword [esp + 0x87c], esi
mov dword [esp + 0x880], edx
test edx, edx
jne 0x60cadf
dec ecx
lea edi, [esp + ecx*4 + 0x878]
cmp dword [edi], 0
lea esi, [ecx*4]
je 0x609366
mov dword [esp + 0x12c], eax
mov eax, dword [edi]
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x128]
mul dword [esp + 0x12c]
mov dword [esp + 0x130], eax
mov dword [esp + 0x134], edx
mov eax, dword [edi]
mov dword [esp + 0x2f4], eax
mov edx, dword [esp + 0x134]
mov edi, dword [esp + 0x130]
mov eax, dword [esp + 0x7fc]
mov dword [esp + ecx*4 + 0x6bc], 0
mov dword [esp + ecx*4 + 0x67c], edx
mov dword [esp + ecx*4 + 0x680], edi
mov dword [esp + 0x2f8], eax
mov eax, dword [esp + 0x2f4]
mul dword [esp + 0x2f8]
mov dword [esp + 0x2fc], eax
mov dword [esp + 0x300], edx
mov edi, dword [esp + 0x2fc]
xor edx, edx
mov eax, dword [esp + ecx*4 + 0x67c]
add eax, edi
cmp eax, edi
mov dword [esp + ecx*4 + 0x6b8], edx
setb dl
mov dword [esp + ecx*4 + 0x67c], eax
mov eax, ecx
add edx, dword [esp + 0x300]
mov dword [esp + ecx*4 + 0x678], edx
dec eax
js 0x609509
mov edx, ecx
shr edx, 1
je 0x60cad5
mov dword [esp + 0x2dc], 0
lea edi, [esp + esi + 0x6b8]
mov dword [esp + 4], edi
lea edi, [esp + esi + 0x678]
mov dword [esp], edi
xor edi, edi
mov dword [esp + 0x3f4], ebx
mov dword [esp + 0x2e0], esi
mov dword [esp + 0x2d8], ecx
mov dword [esp + 0x3e0], eax
mov ecx, dword [esp]
mov ebx, dword [esp + 4]
mov esi, dword [esp + 0x2dc]
lea eax, [esi*8]
inc esi
neg eax
mov dword [ebx + eax - 4], edi
mov dword [ecx + eax - 4], edi
mov dword [ebx + eax - 8], edi
mov dword [ecx + eax - 8], edi
cmp esi, edx
jb 0x609492
mov dword [esp + 0x2dc], esi
mov edx, esi
mov ebx, dword [esp + 0x3f4]
mov esi, dword [esp + 0x2e0]
mov eax, dword [esp + 0x3e0]
lea edi, [edx + edx + 1]
mov ecx, dword [esp + 0x2d8]
lea edx, [edi - 1]
cmp edx, ecx
jae 0x609509
shl edi, 2
xor edx, edx
neg edi
mov dword [esp + 0x3f4], ebx
lea ebx, [esp + esi + 0x6b8]
lea esi, [esp + esi + 0x678]
mov dword [edi + ebx], edx
mov dword [edi + esi], edx
mov ebx, dword [esp + 0x3f4]
test eax, eax
je 0x6095cc
mov dword [esp + 0x3f4], ebx
mov dword [esp + 0x2d8], ecx
mov dword [esp + 0x3e0], eax
mov esi, 2
lea ebx, [esp + eax*4 + 0x6b8]
lea ecx, [esp + eax*4 + 0x678]
mov eax, dword [esp + 0x3e0]
mov edi, dword [esp + esi*4 + 0x7f8]
mov dword [esp + 0x3d4], edi
mov edx, dword [esp + eax*4 + 0x878]
mov dword [esp + 0x3d0], edx
mov eax, dword [esp + 0x3d0]
mul dword [esp + 0x3d4]
mov dword [esp + 0x3d8], eax
mov dword [esp + 0x3dc], edx
mov edi, dword [esp + 0x3d8]
mov edx, dword [ecx + esi*4]
add edx, edi
mov dword [ecx + esi*4], edx
xor eax, eax
cmp edx, edi
mov edx, 0
setb al
add eax, dword [esp + 0x3dc]
mov edi, dword [ecx + esi*4 - 4]
add edi, eax
cmp edi, eax
mov dword [ecx + esi*4 - 4], edi
setb dl
add dword [ebx + esi*4 - 8], edx
dec esi
jne 0x609539
mov eax, dword [esp + 0x3e0]
dec eax
jne 0x60951f
mov ebx, dword [esp + 0x3f4]
mov ecx, dword [esp + 0x2d8]
mov edx, dword [esp + 0x13c]
lea esi, [ecx + 2]
mov edi, dword [esp + 0x138]
mov eax, dword [esp + ecx*4 + 0x680]
add edi, edx
mov dword [esp + 0x1e0], edi
lea edi, [esp + ecx*4 + 0x880]
mov dword [edi], eax
lea edx, [ecx + 1]
mov dword [esp + 0x140], edx
cmp esi, 1
je 0x609755
mov dword [esp + 0x144], 0
shr edx, 1
mov dword [esp + 0x28c], edx
je 0x60cacb
xor edx, edx
lea eax, [esp + ecx*4 + 0x6bc]
mov dword [esp + 0xc0], eax
lea eax, [esp + ecx*4 + 0x67c]
mov dword [esp + 0x288], eax
lea eax, [esp + ecx*4 + 0x87c]
mov dword [esp + 0x284], eax
mov dword [esp + 0x3f4], ebx
mov dword [esp + 0x2d8], ecx
mov dword [esp + 0xbc], edi
mov dword [esp + 0x34c], esi
mov ecx, edx
mov ebx, dword [esp + 0xc0]
mov eax, dword [esp + 0x144]
nop
lea esi, [esi]
mov esi, dword [esp + 0x288]
inc edx
add eax, dword [ecx + ebx]
mov edi, dword [esp + 0x284]
mov dword [esp + 0x290], edx
mov edx, dword [ecx + esi]
add edx, eax
cmp edx, eax
mov eax, 0
mov dword [ecx + edi], edx
mov edx, eax
setb dl
add edx, dword [ecx + ebx - 4]
mov esi, dword [ecx + esi - 4]
add esi, edx
cmp esi, edx
mov edx, dword [esp + 0x290]
mov dword [ecx + edi - 4], esi
setb al
add ecx, 0xfffffff8
cmp edx, dword [esp + 0x28c]
jb 0x609680
mov dword [esp + 0x144], eax
lea edx, [edx + edx + 1]
mov ebx, dword [esp + 0x3f4]
mov edi, dword [esp + 0xbc]
mov esi, dword [esp + 0x34c]
mov ecx, dword [esp + 0x2d8]
lea eax, [edx - 1]
cmp eax, dword [esp + 0x140]
jae 0x609753
shl edx, 2
neg edx
mov dword [esp + 0x3f4], ebx
lea ebx, [esp + ecx*4 + 0x6bc]
mov eax, dword [esp + 0x144]
mov dword [esp + 0x34c], esi
lea esi, [esp + ecx*4 + 0x67c]
add eax, dword [edx + ebx + 4]
lea ecx, [esp + ecx*4 + 0x87c]
add eax, dword [edx + esi + 4]
mov dword [edx + ecx + 4], eax
mov eax, dword [edi]
mov ebx, dword [esp + 0x3f4]
mov esi, dword [esp + 0x34c]
jmp 0x609755
mov eax, dword [edi]
test eax, eax
jne 0x609766
dec esi
lea edi, [esp + esi*4 + 0x878]
cmp dword [edi], 0
je 0x609759
mov eax, dword [esp + 0x87c]
test eax, eax
jle 0x609841
mov ecx, dword [esp + 0x13c]
add eax, eax
mov edx, dword [esp + 0x138]
mov dword [esp + 0x87c], eax
lea edx, [edx + ecx - 1]
mov dword [esp + 0x1e0], edx
cmp esi, 2
jb 0x609837
lea edx, [esi - 1]
shr edx, 1
je 0x60cb90
mov dword [esp + 0xbc], edi
xor ecx, ecx
mov dword [esp + 0x34c], esi
mov eax, dword [esp + ecx*8 + 0x880]
mov esi, eax
shr esi, 0x1f
add eax, eax
or dword [esp + ecx*8 + 0x87c], esi
mov esi, dword [esp + ecx*8 + 0x884]
mov edi, esi
shr edi, 0x1f
add esi, esi
or eax, edi
mov dword [esp + ecx*8 + 0x880], eax
mov dword [esp + ecx*8 + 0x884], esi
inc ecx
cmp ecx, edx
jb 0x6097bb
mov edi, dword [esp + 0xbc]
lea eax, [ecx + ecx + 1]
mov esi, dword [esp + 0x34c]
lea edx, [eax - 1]
lea ecx, [esi - 1]
cmp edx, ecx
jae 0x60982f
mov ecx, dword [esp + eax*4 + 0x87c]
mov edx, ecx
shr edx, 0x1f
add ecx, ecx
or dword [esp + eax*4 + 0x878], edx
mov dword [esp + eax*4 + 0x87c], ecx
mov edx, dword [edi]
jmp 0x609831
mov edx, dword [edi]
test edx, edx
je 0x609840
jmp 0x60984a
cmp dword [edi], 0
jne 0x60bb91
dec esi
cmp esi, 2
jb 0x60bb8a
mov eax, dword [esp + 0x884]
shr eax, 0x1f
mov edx, dword [esp + 0x880]
add edx, eax
mov dword [esp + 0x880], edx
cmp edx, eax
jae 0x6098cb
mov dword [esp + 0x878], 0
mov esi, 1
cmp dword [esp + 0x87c], 0xffffffff
je 0x60988d
lea edi, [esp + 0x87c]
mov eax, dword [edi]
jmp 0x6098a0
dec esi
lea edi, [esp + esi*4 + 0x878]
mov eax, dword [edi]
cmp eax, 0xffffffff
je 0x60988d
test esi, esi
je 0x6098a8
inc eax
mov dword [edi], eax
jmp 0x60bb91
inc dword [esp + 0x1e0]
mov esi, 1
mov dword [esp + 0x87c], 0x80000000
lea edi, [esp + 0x87c]
jmp 0x60bb91
mov esi, 2
test edx, edx
jne 0x60cabf
dec esi
lea edi, [esp + esi*4 + 0x878]
cmp dword [edi], 0
je 0x6098d8
jmp 0x60bb91
mov dword [esp + 0x800], eax
mov dword [esp + 0x7fc], eax
mov dword [esp + 0x7b8], eax
mov dword [esp + 0x7cc], eax
mov dword [esp + 0x7d0], eax
mov dword [esp + 0x7d4], eax
mov dword [esp + 0x7d8], eax
mov dword [esp + 0x7dc], eax
mov dword [esp + 0x7e0], eax
mov dword [esp + 0x7e4], eax
mov dword [esp + 0x7e8], eax
mov dword [esp + 0x7ec], eax
mov dword [esp + 0x7f0], eax
mov dword [esp + 0x7f4], eax
cmp dword [esp + 0x1f8], 0xfffffdea
jge 0x60a10a
mov edx, dword [esp + 0x20c]
shr edx, 5
cmp dword [esp + 0x1f8], 0xfffff000
jle 0x6099ca
mov esi, 0x1000
mov dword [esp + 0x2bc], 0
mov dword [esp + 0x16c], esi
mov dword [esp + 0x160], edi
mov dword [esp + 0x7c8], eax
mov dword [esp + 0x7c4], eax
mov dword [esp + 0x7c0], eax
mov dword [esp + 0x7bc], eax
mov eax, 3
mov dword [esp + 0x168], ecx
mov esi, dword [esp + 0x2bc]
mov edi, dword [esp + 0x164]
jmp 0x609a37
mov eax, edi
mov esi, 0x1000
mov dword [esp + 0x168], ecx
mov dword [esp + 0x16c], esi
lea edi, [eax + 0x1000]
mov eax, 3
mov dword [esp + 0x160], edi
mov ecx, eax
shl ecx, 4
movsx edi, word [eax*2 + 0x69b65e]
mov esi, dword [ecx + 0x69b34c]
mov dword [esp + 0x7bc], esi
mov esi, dword [ecx + 0x69b348]
mov dword [esp + 0x7c0], esi
mov esi, dword [ecx + 0x69b344]
mov ecx, dword [ecx + 0x69b340]
mov dword [esp + 0x7c4], esi
mov esi, 4
mov dword [esp + 0x7c8], ecx
mov dword [esp + 0x164], edi
lea ecx, [edx - 1]
mov dword [esp + 0x158], ecx
mov dword [esp + 0x3f4], ebx
mov dword [esp + 0x15c], edx
mov ecx, dword [esp + 0x16c]
mov edi, dword [esp + 0x160]
jmp 0x609a6d
mov eax, dword [esp + 0x1a0]
sar ecx, 1
dec eax
js 0x60a0c8
mov dword [esp + 0x1a0], eax
mov eax, ecx
neg eax
cmp edi, eax
jg 0x609a66
add edi, ecx
test esi, esi
je 0x60a0e2
mov ebx, dword [esp + 0x1a0]
movsx eax, word [ebx*2 + 0x69b65e]
shl ebx, 4
mov dword [esp + 0x168], eax
mov edx, dword [ebx + 0x69b34c]
mov eax, dword [ebx + 0x69b348]
mov dword [esp + 0x7fc], edx
mov dword [esp + 0x800], eax
mov edx, dword [ebx + 0x69b344]
mov ebx, dword [ebx + 0x69b340]
mov eax, dword [esp + esi*4 + 0x7b8]
mov dword [esp + 0x804], edx
mov dword [esp + 0x808], ebx
mov dword [esp + 0xdc], ebx
lea ebx, [esi + 3]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xd8]
mul dword [esp + 0xdc]
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], edx
mov eax, dword [esp + 0xe4]
mov edx, dword [esp + 0xe0]
mov dword [esp + ebx*4 + 0x578], eax
mov eax, 3
mov dword [esp + ebx*4 + 0x57c], edx
mov dword [esp + 0x16c], ecx
mov ecx, eax
mov dword [esp + 0x160], edi
mov edx, dword [esp + esi*4 + 0x7b8]
mov edi, dword [esp + ecx*4 + 0x7f8]
mov dword [esp + ebx*4 + 0x5b8], 0
mov dword [esp + 0x2c8], edx
mov dword [esp + 0x2cc], edi
mov eax, dword [esp + 0x2c8]
mul dword [esp + 0x2cc]
mov dword [esp + 0x2d0], eax
mov dword [esp + 0x2d4], edx
mov edi, dword [esp + 0x2d0]
mov edx, dword [esp + ebx*4 + 0x578]
add edx, edi
cmp edx, edi
mov dword [esp + ebx*4 + 0x578], edx
mov edx, 0
setb dl
dec ebx
add edx, dword [esp + 0x2d4]
mov dword [esp + ebx*4 + 0x578], edx
dec ecx
jne 0x609b41
mov eax, ebx
mov ecx, dword [esp + 0x16c]
dec eax
mov edi, dword [esp + 0x160]
mov dword [esp + ebx*4 + 0x5b8], 0
js 0x609ca5
mov eax, ebx
shr eax, 1
mov dword [esp + 0xf4], eax
je 0x60cb5c
xor eax, eax
lea edx, [esp + ebx*4 + 0x574]
mov dword [esp + 0xd4], edx
lea edx, [esp + ebx*4 + 0x5b4]
mov dword [esp + 0xd0], edx
mov dword [esp + 0x2bc], esi
mov dword [esp + 0xcc], ebx
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x160], edi
xor edi, edi
mov edx, eax
mov ecx, dword [esp + 0xd0]
mov ebx, dword [esp + 0xd4]
mov esi, dword [esp + 0xf4]
inc eax
mov dword [edx + ecx], edi
mov dword [edx + ebx], edi
mov dword [edx + ecx - 4], edi
mov dword [edx + ebx - 4], edi
add edx, 0xfffffff8
cmp eax, esi
jb 0x609c3d
mov esi, dword [esp + 0x2bc]
lea edx, [eax + eax + 1]
mov ebx, dword [esp + 0xcc]
mov ecx, dword [esp + 0x16c]
mov edi, dword [esp + 0x160]
lea eax, [edx - 1]
cmp eax, ebx
jae 0x609ca5
shl edx, 2
xor eax, eax
neg edx
mov dword [esp + 0x2bc], esi
lea esi, [esp + ebx*4 + 0x5b4]
lea ebx, [esp + ebx*4 + 0x574]
mov dword [edx + esi + 4], eax
mov dword [edx + ebx + 4], eax
mov esi, dword [esp + 0x2bc]
mov edx, esi
dec edx
je 0x609d7e
mov dword [esp + 0x2bc], esi
mov eax, 4
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x160], edi
mov dword [esp + 0x3b8], edx
mov esi, eax
lea ebx, [esp + edx*4 + 0x5b8]
lea ecx, [esp + edx*4 + 0x578]
mov eax, dword [esp + 0x3b8]
mov edi, dword [esp + esi*4 + 0x7f8]
mov dword [esp + 0x3ac], edi
mov edx, dword [esp + eax*4 + 0x7b8]
mov dword [esp + 0x3a8], edx
mov eax, dword [esp + 0x3a8]
mul dword [esp + 0x3ac]
mov dword [esp + 0x3b0], eax
mov dword [esp + 0x3b4], edx
mov edi, dword [esp + 0x3b0]
mov edx, dword [ecx + esi*4]
add edx, edi
mov dword [ecx + esi*4], edx
xor eax, eax
cmp edx, edi
mov edx, 0
setb al
add eax, dword [esp + 0x3b4]
mov edi, dword [ecx + esi*4 - 4]
add edi, eax
cmp edi, eax
mov dword [ecx + esi*4 - 4], edi
setb dl
add dword [ebx + esi*4 - 8], edx
dec esi
jne 0x609cdf
mov edx, dword [esp + 0x3b8]
mov eax, 4
dec edx
jne 0x609cc8
mov esi, dword [esp + 0x2bc]
mov ecx, dword [esp + 0x16c]
mov edi, dword [esp + 0x160]
mov ebx, dword [esp + 0x164]
lea edx, [esi + 4]
add ebx, dword [esp + 0x168]
lea eax, [esp + esi*4 + 0x7c8]
mov dword [esp + 0x164], ebx
mov ebx, dword [eax - 0x240]
mov dword [esp + 0xec], edx
mov dword [esp + 0xe8], eax
mov dword [eax], ebx
lea eax, [esi + 3]
cmp edx, 1
je 0x609f1e
mov edx, eax
mov dword [esp + 0xf0], 0
shr edx, 1
mov dword [esp + 0x25c], edx
je 0x60cb52
xor edx, edx
lea ebx, [esp + esi*4 + 0x7c4]
mov dword [esp + 0x258], ebx
lea ebx, [esp + esi*4 + 0x584]
mov dword [esp + 0xb4], ebx
lea ebx, [esp + esi*4 + 0x5c4]
mov dword [esp + 0x254], ebx
mov dword [esp + 0xb0], eax
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x2bc], esi
mov dword [esp + 0x160], edi
mov ecx, edx
mov ebx, dword [esp + 0xb4]
mov eax, dword [esp + 0xf0]
lea esi, [esi]
lea edi, [edi]
mov esi, dword [esp + 0x254]
inc edx
mov edi, dword [esp + 0x258]
mov dword [esp + 0x260], edx
add eax, dword [ecx + esi]
mov edx, dword [ecx + ebx]
add edx, eax
cmp edx, eax
mov eax, 0
mov dword [ecx + edi], edx
mov edx, eax
setb dl
add edx, dword [ecx + esi - 4]
mov esi, dword [ecx + ebx - 4]
add esi, edx
cmp esi, edx
mov edx, dword [esp + 0x260]
mov dword [ecx + edi - 4], esi
setb al
add ecx, 0xfffffff8
cmp edx, dword [esp + 0x25c]
jb 0x609e40
mov dword [esp + 0xf0], eax
lea edx, [edx + edx + 1]
mov esi, dword [esp + 0x2bc]
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0x16c]
mov edi, dword [esp + 0x160]
lea ebx, [edx - 1]
cmp ebx, eax
jae 0x609f15
shl edx, 2
lea ebx, [esp + esi*4 + 0x584]
neg edx
mov dword [esp + 0xb0], eax
mov dword [esp + 0x16c], ecx
lea ecx, [esp + esi*4 + 0x5c4]
mov eax, dword [esp + 0xf0]
lea esi, [esp + esi*4 + 0x7c4]
add eax, dword [edx + ecx + 4]
add eax, dword [edx + ebx + 4]
mov dword [edx + esi + 4], eax
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0x16c]
mov ebx, dword [edx]
jmp 0x609f1e
mov edx, dword [esp + 0xe8]
mov ebx, dword [edx]
test ebx, ebx
jne 0x609f49
mov edx, dword [esp + 0xec]
dec edx
lea eax, [esp + edx*4 + 0x7b8]
cmp dword [eax], 0
je 0x609f29
mov dword [esp + 0xec], edx
mov dword [esp + 0xe8], eax
mov eax, edx
lea eax, [eax - 1]
mov edx, dword [esp + 0x7bc]
test edx, edx
jle 0x60a005
dec dword [esp + 0x164]
add edx, edx
mov dword [esp + 0x7bc], edx
cmp dword [esp + 0xec], 2
jb 0x60a005
mov edx, dword [esp + 0xec]
lea ebx, [edx - 1]
shr ebx, 1
je 0x60cb48
mov dword [esp + 0x16c], ecx
xor esi, esi
mov dword [esp + 0x160], edi
mov edx, dword [esp + esi*8 + 0x7c0]
mov ecx, edx
shr ecx, 0x1f
add edx, edx
or dword [esp + esi*8 + 0x7bc], ecx
mov ecx, dword [esp + esi*8 + 0x7c4]
mov edi, ecx
shr edi, 0x1f
add ecx, ecx
or edx, edi
mov dword [esp + esi*8 + 0x7c0], edx
mov dword [esp + esi*8 + 0x7c4], ecx
inc esi
cmp esi, ebx
jb 0x609f98
mov ecx, dword [esp + 0x16c]
lea edx, [esi + esi + 1]
mov edi, dword [esp + 0x160]
lea ebx, [edx - 1]
cmp ebx, eax
jae 0x60a005
mov esi, dword [esp + edx*4 + 0x7bc]
mov ebx, esi
shr ebx, 0x1f
add esi, esi
or dword [esp + edx*4 + 0x7b8], ebx
mov dword [esp + edx*4 + 0x7bc], esi
mov edx, dword [esp + 0xe8]
mov esi, eax
cmp dword [edx], 0
je 0x60a01a
mov esi, dword [esp + 0xec]
cmp esi, dword [esp + 0x15c]
jb 0x60a0b9
mov esi, dword [esp + 0x15c]
mov eax, esi
mov edx, dword [esp + eax*4 + 0x7bc]
shr edx, 0x1f
mov eax, dword [esp + eax*4 + 0x7b8]
add eax, edx
cmp eax, edx
jae 0x60a0a1
mov edx, esi
mov esi, dword [esp + 0x158]
mov dword [esp + edx*4 + 0x7b8], eax
lea edx, [esp + edx*4 + 0x7b4]
mov dword [esp + 0x7b8], 0
mov eax, dword [edx]
cmp eax, 0xffffffff
jne 0x60a07f
dec esi
lea edx, [esp + esi*4 + 0x7b8]
mov eax, dword [edx]
cmp eax, 0xffffffff
je 0x60a070
test esi, esi
je 0x60a088
inc eax
mov dword [edx], eax
jmp 0x60a0b9
inc dword [esp + 0x164]
mov esi, 1
mov dword [esp + 0x7bc], 0x80000000
jmp 0x60a0b9
mov edx, esi
mov dword [esp + edx*4 + 0x7b8], eax
test eax, eax
jne 0x60a0b9
dec esi
cmp dword [esp + esi*4 + 0x7b8], 0
je 0x60a0ae
sar ecx, 1
dec dword [esp + 0x1a0]
jns 0x609a7d
mov dword [esp + 0x2bc], esi
mov ebx, dword [esp + 0x3f4]
mov ecx, dword [esp + 0x168]
jmp 0x60a882
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x160], edi
mov ebx, dword [esp + 0x3f4]
mov eax, dword [esp + 0x1a0]
mov edx, dword [esp + 0x15c]
jmp 0x6099f1
cmp dword [esp + 0x1f8], 0x216
jle 0x60a85b
mov edx, dword [esp + 0x20c]
shr edx, 5
cmp dword [esp + 0x1f8], 0x1000
jge 0x60a188
mov esi, 0x1000
mov dword [esp + 0x2bc], 0
mov dword [esp + 0x100], esi
mov dword [esp + 0x160], edi
mov dword [esp + 0x7c8], eax
mov dword [esp + 0x7c4], eax
mov dword [esp + 0x7c0], eax
mov dword [esp + 0x7bc], eax
mov eax, 3
mov dword [esp + 0x168], ecx
mov esi, dword [esp + 0x2bc]
mov edi, dword [esp + 0x164]
jmp 0x60a1f5
mov eax, edi
mov esi, 0x1000
mov dword [esp + 0x168], ecx
mov dword [esp + 0x100], esi
lea edi, [eax - 0x1000]
mov eax, 3
mov dword [esp + 0x160], edi
mov ecx, eax
shl ecx, 4
movsx edi, word [eax*2 + 0x69b67a]
mov esi, dword [ecx + 0x69b4cc]
mov dword [esp + 0x7bc], esi
mov esi, dword [ecx + 0x69b4c8]
mov dword [esp + 0x7c0], esi
mov esi, dword [ecx + 0x69b4c4]
mov ecx, dword [ecx + 0x69b4c0]
mov dword [esp + 0x7c4], esi
mov esi, 4
mov dword [esp + 0x7c8], ecx
mov dword [esp + 0x164], edi
lea ecx, [edx - 1]
mov dword [esp + 0xf8], ecx
mov dword [esp + 0x3f4], ebx
mov dword [esp + 0xfc], edx
mov ecx, dword [esp + 0x100]
mov edi, dword [esp + 0x160]
jmp 0x60a22b
mov eax, dword [esp + 0x14c]
sar ecx, 1
dec eax
js 0x60a0c8
mov dword [esp + 0x14c], eax
cmp edi, ecx
jl 0x60a224
sub edi, ecx
test esi, esi
je 0x60a833
mov ebx, dword [esp + 0x14c]
movsx eax, word [ebx*2 + 0x69b67a]
shl ebx, 4
mov dword [esp + 0x168], eax
mov edx, dword [ebx + 0x69b4cc]
mov eax, dword [ebx + 0x69b4c8]
mov dword [esp + 0x7fc], edx
mov dword [esp + 0x800], eax
mov edx, dword [ebx + 0x69b4c4]
mov ebx, dword [ebx + 0x69b4c0]
mov eax, dword [esp + esi*4 + 0x7b8]
mov dword [esp + 0x804], edx
mov dword [esp + 0x808], ebx
mov dword [esp + 0x30], ebx
lea ebx, [esi + 3]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mul dword [esp + 0x30]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
mov dword [esp + ebx*4 + 0x3f8], eax
mov eax, 3
mov dword [esp + ebx*4 + 0x3fc], edx
mov dword [esp + 0x100], ecx
mov ecx, eax
mov dword [esp + 0x160], edi
mov edx, dword [esp + esi*4 + 0x7b8]
mov edi, dword [esp + ecx*4 + 0x7f8]
mov dword [esp + ebx*4 + 0x438], 0
mov dword [esp + 0x244], edx
mov dword [esp + 0x248], edi
mov eax, dword [esp + 0x244]
mul dword [esp + 0x248]
mov dword [esp + 0x24c], eax
mov dword [esp + 0x250], edx
mov edi, dword [esp + 0x24c]
mov edx, dword [esp + ebx*4 + 0x3f8]
add edx, edi
cmp edx, edi
mov dword [esp + ebx*4 + 0x3f8], edx
mov edx, 0
setb dl
dec ebx
add edx, dword [esp + 0x250]
mov dword [esp + ebx*4 + 0x3f8], edx
dec ecx
jne 0x60a2e3
mov eax, ebx
mov ecx, dword [esp + 0x100]
dec eax
mov edi, dword [esp + 0x160]
mov dword [esp + ebx*4 + 0x438], 0
js 0x60a42f
mov eax, ebx
shr eax, 1
mov dword [esp + 0x48], eax
je 0x60cb7a
xor eax, eax
lea edx, [esp + ebx*4 + 0x3f4]
mov dword [esp + 0x28], edx
lea edx, [esp + ebx*4 + 0x434]
mov dword [esp + 0x24], edx
mov dword [esp + 0x2bc], esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x100], ecx
mov dword [esp + 0x160], edi
xor edi, edi
mov edx, eax
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x48]
inc eax
mov dword [edx + ecx], edi
mov dword [edx + ebx], edi
mov dword [edx + ecx - 4], edi
mov dword [edx + ebx - 4], edi
add edx, 0xfffffff8
cmp eax, esi
jb 0x60a3ca
mov esi, dword [esp + 0x2bc]
lea edx, [eax + eax + 1]
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x100]
mov edi, dword [esp + 0x160]
lea eax, [edx - 1]
cmp eax, ebx
jae 0x60a42f
shl edx, 2
xor eax, eax
neg edx
mov dword [esp + 0x2bc], esi
lea esi, [esp + ebx*4 + 0x434]
lea ebx, [esp + ebx*4 + 0x3f4]
mov dword [edx + esi + 4], eax
mov dword [edx + ebx + 4], eax
mov esi, dword [esp + 0x2bc]
mov edx, esi
dec edx
je 0x60a508
mov dword [esp + 0x2bc], esi
mov eax, 4
mov dword [esp + 0x100], ecx
mov dword [esp + 0x160], edi
mov dword [esp + 0x37c], edx
mov esi, eax
lea ebx, [esp + edx*4 + 0x438]
lea ecx, [esp + edx*4 + 0x3f8]
mov eax, dword [esp + 0x37c]
mov edi, dword [esp + esi*4 + 0x7f8]
mov dword [esp + 0x370], edi
mov edx, dword [esp + eax*4 + 0x7b8]
mov dword [esp + 0x36c], edx
mov eax, dword [esp + 0x36c]
mul dword [esp + 0x370]
mov dword [esp + 0x374], eax
mov dword [esp + 0x378], edx
mov edi, dword [esp + 0x374]
mov edx, dword [ecx + esi*4]
add edx, edi
mov dword [ecx + esi*4], edx
xor eax, eax
cmp edx, edi
mov edx, 0
setb al
add eax, dword [esp + 0x378]
mov edi, dword [ecx + esi*4 - 4]
add edi, eax
cmp edi, eax
mov dword [ecx + esi*4 - 4], edi
setb dl
add dword [ebx + esi*4 - 8], edx
dec esi
jne 0x60a469
mov edx, dword [esp + 0x37c]
mov eax, 4
dec edx
jne 0x60a452
mov esi, dword [esp + 0x2bc]
mov ecx, dword [esp + 0x100]
mov edi, dword [esp + 0x160]
mov ebx, dword [esp + 0x164]
lea edx, [esi + 4]
add ebx, dword [esp + 0x168]
lea eax, [esp + esi*4 + 0x7c8]
mov dword [esp + 0x164], ebx
mov ebx, dword [eax - 0x3c0]
mov dword [esp + 0x40], edx
mov dword [esp + 0x3c], eax
mov dword [eax], ebx
lea eax, [esi + 3]
cmp edx, 1
je 0x60a679
mov edx, eax
mov dword [esp + 0x44], 0
shr edx, 1
mov dword [esp + 0x1ac], edx
je 0x60cb70
xor edx, edx
lea ebx, [esp + esi*4 + 0x404]
mov dword [esp + 0x10], ebx
lea ebx, [esp + esi*4 + 0x444]
mov dword [esp + 0x1a8], ebx
lea ebx, [esp + esi*4 + 0x7c4]
mov dword [esp + 0x1a4], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x100], ecx
mov dword [esp + 0x2bc], esi
mov dword [esp + 0x160], edi
mov ecx, edx
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x44]
nop
lea esi, [esi]
mov esi, dword [esp + 0x1a8]
inc edx
mov edi, dword [esp + 0x1a4]
mov dword [esp + 0x1b0], edx
add eax, dword [ecx + esi]
mov edx, dword [ecx + ebx]
add edx, eax
cmp edx, eax
mov eax, 0
mov dword [ecx + edi], edx
mov edx, eax
setb dl
add edx, dword [ecx + esi - 4]
mov esi, dword [ecx + ebx - 4]
add esi, edx
cmp esi, edx
mov edx, dword [esp + 0x1b0]
mov dword [ecx + edi - 4], esi
setb al
add ecx, 0xfffffff8
cmp edx, dword [esp + 0x1ac]
jb 0x60a5b0
mov dword [esp + 0x44], eax
lea edx, [edx + edx + 1]
mov esi, dword [esp + 0x2bc]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x100]
mov edi, dword [esp + 0x160]
lea ebx, [edx - 1]
cmp ebx, eax
jae 0x60a673
shl edx, 2
lea ebx, [esp + esi*4 + 0x404]
neg edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x100], ecx
lea ecx, [esp + esi*4 + 0x444]
mov eax, dword [esp + 0x44]
lea esi, [esp + esi*4 + 0x7c4]
add eax, dword [edx + ecx + 4]
add eax, dword [edx + ebx + 4]
mov dword [edx + esi + 4], eax
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x100]
mov ebx, dword [edx]
jmp 0x60a679
mov edx, dword [esp + 0x3c]
mov ebx, dword [edx]
test ebx, ebx
jne 0x60a69b
mov edx, dword [esp + 0x40]
dec edx
lea eax, [esp + edx*4 + 0x7b8]
cmp dword [eax], 0
je 0x60a681
mov dword [esp + 0x40], edx
mov dword [esp + 0x3c], eax
mov eax, edx
lea eax, [eax - 1]
mov edx, dword [esp + 0x7bc]
test edx, edx
jle 0x60a751
dec dword [esp + 0x164]
add edx, edx
mov dword [esp + 0x7bc], edx
cmp dword [esp + 0x40], 2
jb 0x60a751
mov edx, dword [esp + 0x40]
lea ebx, [edx - 1]
shr ebx, 1
je 0x60cb66
mov dword [esp + 0x100], ecx
xor esi, esi
mov dword [esp + 0x160], edi
mov edx, dword [esp + esi*8 + 0x7c0]
mov ecx, edx
shr ecx, 0x1f
add edx, edx
or dword [esp + esi*8 + 0x7bc], ecx
mov ecx, dword [esp + esi*8 + 0x7c4]
mov edi, ecx
shr edi, 0x1f
add ecx, ecx
or edx, edi
mov dword [esp + esi*8 + 0x7c0], edx
mov dword [esp + esi*8 + 0x7c4], ecx
inc esi
cmp esi, ebx
jb 0x60a6e4
mov ecx, dword [esp + 0x100]
lea edx, [esi + esi + 1]
mov edi, dword [esp + 0x160]
lea ebx, [edx - 1]
cmp ebx, eax
jae 0x60a751
mov esi, dword [esp + edx*4 + 0x7bc]
mov ebx, esi
shr ebx, 0x1f
add esi, esi
or dword [esp + edx*4 + 0x7b8], ebx
mov dword [esp + edx*4 + 0x7bc], esi
mov edx, dword [esp + 0x3c]
mov esi, eax
cmp dword [edx], 0
je 0x60a760
mov esi, dword [esp + 0x40]
cmp esi, dword [esp + 0xfc]
jb 0x60a80d
mov esi, dword [esp + 0xfc]
mov eax, esi
mov edx, dword [esp + eax*4 + 0x7bc]
shr edx, 0x1f
mov eax, dword [esp + eax*4 + 0x7b8]
add eax, edx
cmp eax, edx
jae 0x60a7f5
mov edx, esi
mov esi, dword [esp + 0xf8]
mov dword [esp + edx*4 + 0x7b8], eax
lea edx, [esp + edx*4 + 0x7b4]
mov dword [esp + 0x7b8], 0
mov eax, dword [edx]
cmp eax, 0xffffffff
jne 0x60a7d3
mov dword [esp + 0x160], edi
dec esi
lea edx, [esp + esi*4 + 0x7b8]
mov eax, dword [edx]
cmp eax, 0xffffffff
je 0x60a7bd
mov edi, dword [esp + 0x160]
test esi, esi
je 0x60a7dc
inc eax
mov dword [edx], eax
jmp 0x60a80d
inc dword [esp + 0x164]
mov esi, 1
mov dword [esp + 0x7bc], 0x80000000
jmp 0x60a80d
mov edx, esi
mov dword [esp + edx*4 + 0x7b8], eax
test eax, eax
jne 0x60a80d
dec esi
cmp dword [esp + esi*4 + 0x7b8], 0
je 0x60a802
sar ecx, 1
dec dword [esp + 0x14c]
jns 0x60a23b
mov dword [esp + 0x2bc], esi
mov ebx, dword [esp + 0x3f4]
mov ecx, dword [esp + 0x168]
jmp 0x60a882
mov dword [esp + 0x100], ecx
mov dword [esp + 0x160], edi
mov ebx, dword [esp + 0x3f4]
mov eax, dword [esp + 0x14c]
mov edx, dword [esp + 0xfc]
jmp 0x60a1af
mov dword [esp + 0x7c8], eax
mov dword [esp + 0x7c4], eax
mov dword [esp + 0x7c0], eax
mov dword [esp + 0x7bc], eax
mov dword [esp + 0x2bc], 0
lea eax, [edi + 0x1b]
cmp eax, 0x1a
ja 0x60a8ef
movsx eax, word [edi*2 + 0x69b65e]
shl edi, 4
mov dword [esp + 0x1e0], eax
mov edx, dword [edi + 0x69b33c]
mov ecx, dword [edi + 0x69b338]
mov esi, dword [edi + 0x69b334]
mov edi, dword [edi + 0x69b330]
mov dword [esp + 0x87c], edx
mov dword [esp + 0x880], ecx
mov dword [esp + 0x884], esi
mov esi, 4
mov dword [esp + 0x888], edi
test edi, edi
jne 0x60cb84
dec esi
lea edi, [esp + esi*4 + 0x878]
cmp dword [edi], 0
je 0x60a8dd
jmp 0x60b613
xor eax, eax
mov dword [esp + 0x778], eax
mov dword [esp + 0x784], eax
mov dword [esp + 0x788], eax
mov dword [esp + 0x78c], eax
mov dword [esp + 0x790], eax
mov dword [esp + 0x794], eax
mov dword [esp + 0x798], eax
mov dword [esp + 0x79c], eax
mov dword [esp + 0x7a0], eax
mov dword [esp + 0x7a4], eax
mov dword [esp + 0x7a8], eax
mov dword [esp + 0x7ac], eax
mov dword [esp + 0x7b0], eax
mov dword [esp + 0x7b4], eax
test edi, edi
jl 0x60cd5f
cmp edi, 0x37
jl 0x60a9d7
mov edx, edi
sar edx, 3
mov dword [esp + 0x240], 4
movzx ecx, word [edx*2 + 0x69b5a2]
lea esi, [edx + 1]
shr ecx, 5
cmp ecx, edi
jle 0x60a984
mov esi, edx
movzx ecx, word [esi*2 + 0x69b5a0]
mov eax, ecx
and eax, 0x1f
shr ecx, 5
sub edi, ecx
movsx ecx, word [eax*2 + 0x69b682]
shl eax, 4
mov edx, dword [eax + 0x69b50c]
mov dword [esp + 0x7fc], edx
mov esi, dword [eax + 0x69b508]
mov edx, dword [eax + 0x69b504]
mov eax, dword [eax + 0x69b500]
mov dword [esp + 0x800], esi
mov dword [esp + 0x804], edx
mov dword [esp + 0x808], eax
jmp 0x60a9e2
mov dword [esp + 0x240], 0
cmp edi, 0x37
je 0x60cd06
lea eax, [edi - 0x1b]
mov dword [esp + 0x98], eax
test eax, eax
jle 0x60ccf1
mov esi, eax
movsx eax, word [esi*2 + 0x69b9fe]
mov edx, dword [esi*8 + 0x69b81c]
mov edi, dword [esi*8 + 0x69b818]
mov dword [esp + 0x94], eax
mov eax, 2
mov dword [esp + 0x77c], edx
mov dword [esp + 0x780], edi
mov dword [esp + 0x294], eax
test edi, edi
jne 0x60cce7
dec eax
cmp dword [esp + eax*4 + 0x778], 0
je 0x60aa3e
mov dword [esp + 0x294], eax
mov edi, 0x1b
movsx edx, word [edi*2 + 0x69b9fe]
mov esi, 2
mov dword [esp + 0x1e0], edx
mov edx, dword [edi*8 + 0x69b81c]
mov edi, dword [edi*8 + 0x69b818]
mov dword [esp + 0x87c], edx
mov dword [esp + 0x880], edi
test edi, edi
jne 0x60ccdb
dec esi
lea edi, [esp + esi*4 + 0x878]
cmp dword [edi], 0
je 0x60aa8d
cmp dword [esp + 0x98], 0
jle 0x60b0ae
mov eax, dword [esp + 0x294]
lea edx, [eax + esi - 1]
mov dword [esp + 0xa4], edx
mov edx, dword [edi]
mov dword [esp + 0x84], edx
mov edx, dword [esp + eax*4 + 0x778]
mov dword [esp + 0x88], edx
mov eax, dword [esp + 0x84]
mul dword [esp + 0x88]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], edx
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0x90]
mov dword [esp + eax*4 + 0x4f8], edx
mov edx, dword [esp + 0x8c]
mov dword [esp + eax*4 + 0x4fc], edx
mov eax, dword [esp + 0x294]
dec eax
je 0x60abc9
mov dword [esp + 0x3f4], ebx
mov dword [esp + 0x34c], esi
mov dword [esp + 0x168], ecx
mov ecx, eax
mov ebx, dword [esp + 0xa4]
mov edx, dword [edi]
mov esi, dword [esp + ecx*4 + 0x778]
mov dword [esp + ebx*4 + 0x538], 0
mov dword [esp + 0x2ac], edx
mov dword [esp + 0x2b0], esi
mov eax, dword [esp + 0x2ac]
mul dword [esp + 0x2b0]
mov dword [esp + 0x2b4], eax
mov dword [esp + 0x2b8], edx
mov esi, dword [esp + 0x2b4]
mov edx, dword [esp + ebx*4 + 0x4f8]
add edx, esi
cmp edx, esi
mov dword [esp + ebx*4 + 0x4f8], edx
mov edx, 0
setb dl
dec ebx
add edx, dword [esp + 0x2b8]
mov dword [esp + ebx*4 + 0x4f8], edx
dec ecx
jne 0x60ab3c
mov dword [esp + 0xa4], ebx
mov ebx, dword [esp + 0x3f4]
mov esi, dword [esp + 0x34c]
mov ecx, dword [esp + 0x168]
mov edx, dword [esp + 0xa4]
mov dword [esp + edx*4 + 0x538], 0
dec edx
js 0x60acb2
mov edx, dword [esp + 0xa4]
shr edx, 1
mov dword [esp + 0xac], edx
je 0x60ccd1
mov edi, dword [esp + 0xa4]
xor eax, eax
mov dword [esp + 0x3f4], ebx
mov dword [esp + 0x34c], esi
lea edx, [esp + edi*4 + 0x4f4]
mov dword [esp + 0x80], edx
lea edx, [esp + edi*4 + 0x534]
mov dword [esp + 0x7c], edx
xor edi, edi
mov dword [esp + 0x168], ecx
mov edx, eax
mov ecx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x80]
mov esi, dword [esp + 0xac]
inc eax
mov dword [edx + ecx], edi
mov dword [edx + ebx], edi
mov dword [edx + ecx - 4], edi
mov dword [edx + ebx - 4], edi
add edx, 0xfffffff8
cmp eax, esi
jb 0x60ac45
mov ebx, dword [esp + 0x3f4]
lea edx, [eax + eax + 1]
mov esi, dword [esp + 0x34c]
mov ecx, dword [esp + 0x168]
lea edi, [edx - 1]
cmp edi, dword [esp + 0xa4]
jae 0x60acb2
shl edx, 2
xor eax, eax
mov edi, dword [esp + 0xa4]
neg edx
mov dword [esp + 0x3f4], ebx
lea ebx, [esp + edi*4 + 0x534]
mov dword [edx + ebx + 4], eax
lea ebx, [esp + edi*4 + 0x4f4]
mov dword [edx + ebx + 4], eax
mov ebx, dword [esp + 0x3f4]
mov eax, esi
dec eax
je 0x60ad97
mov dword [esp + 0x3f4], ebx
mov dword [esp + 0x34c], esi
mov dword [esp + 0x168], ecx
mov edx, dword [esp + 0x294]
mov esi, edx
test edx, edx
je 0x60ad7b
mov dword [esp + 0x3a4], eax
lea ebx, [esp + eax*4 + 0x538]
lea ecx, [esp + eax*4 + 0x4f8]
mov eax, dword [esp + 0x3a4]
mov edi, dword [esp + esi*4 + 0x778]
mov dword [esp + 0x398], edi
mov edx, dword [esp + eax*4 + 0x878]
mov dword [esp + 0x394], edx
mov eax, dword [esp + 0x394]
mul dword [esp + 0x398]
mov dword [esp + 0x39c], eax
mov dword [esp + 0x3a0], edx
mov edi, dword [esp + 0x39c]
mov edx, dword [ecx + esi*4]
add edx, edi
mov dword [ecx + esi*4], edx
xor eax, eax
cmp edx, edi
mov edx, 0
setb al
add eax, dword [esp + 0x3a0]
mov edi, dword [ecx + esi*4 - 4]
add edi, eax
cmp edi, eax
mov dword [ecx + esi*4 - 4], edi
setb dl
add dword [ebx + esi*4 - 8], edx
dec esi
jne 0x60acf6
mov eax, dword [esp + 0x3a4]
mov edx, dword [esp + 0x294]
dec eax
jne 0x60acd7
mov ebx, dword [esp + 0x3f4]
mov esi, dword [esp + 0x34c]
mov ecx, dword [esp + 0x168]
mov edi, dword [esp + 0x294]
mov edx, dword [esp + 0x1e0]
add edx, dword [esp + 0x94]
mov dword [esp + 0x1e0], edx
lea edx, [esi + edi]
mov dword [esp + 0xa0], edx
lea esi, [esi + edi - 1]
lea edi, [esp + edx*4 + 0x878]
mov dword [esp + 0x9c], edi
cmp edx, 1
mov edx, dword [edi - 0x380]
mov dword [edi], edx
je 0x60af02
mov eax, esi
mov dword [esp + 0xa8], 0
shr eax, 1
je 0x60ccc7
xor edx, edx
lea edi, [esp + esi*4 + 0x4f8]
mov dword [esp + 0x78], edi
lea edi, [esp + esi*4 + 0x538]
mov dword [esp + 0x238], edi
lea edi, [esp + esi*4 + 0x878]
mov dword [esp + 0x3f4], ebx
mov dword [esp + 0x234], eax
mov dword [esp + 0x168], ecx
mov dword [esp + 0x34c], esi
mov ecx, edx
mov ebx, dword [esp + 0x78]
mov eax, dword [esp + 0xa8]
mov esi, dword [esp + 0x238]
inc edx
mov dword [esp + 0x23c], edx
add eax, dword [ecx + esi]
mov edx, dword [ecx + ebx]
add edx, eax
cmp edx, eax
mov eax, 0
mov dword [ecx + edi], edx
mov edx, eax
setb dl
add edx, dword [ecx + esi - 4]
mov esi, dword [ecx + ebx - 4]
add esi, edx
cmp esi, edx
mov edx, dword [esp + 0x23c]
mov dword [ecx + edi - 4], esi
setb al
add ecx, 0xfffffff8
cmp edx, dword [esp + 0x234]
jb 0x60ae40
mov dword [esp + 0xa8], eax
lea eax, [edx + edx + 1]
mov ebx, dword [esp + 0x3f4]
mov esi, dword [esp + 0x34c]
mov ecx, dword [esp + 0x168]
lea edx, [eax - 1]
cmp edx, esi
jae 0x60aef9
shl eax, 2
lea edi, [esp + esi*4 + 0x4f8]
neg eax
mov dword [esp + 0x3f4], ebx
lea ebx, [esp + esi*4 + 0x538]
mov edx, dword [esp + 0xa8]
add edx, dword [eax + ebx + 4]
lea ebx, [esp + esi*4 + 0x878]
add edx, dword [eax + edi + 4]
mov dword [eax + ebx + 4], edx
mov edx, dword [esp + 0x9c]
mov ebx, dword [esp + 0x3f4]
mov edx, dword [edx]
jmp 0x60af02
mov edx, dword [esp + 0x9c]
mov edx, dword [edx]
test edx, edx
jne 0x60af2d
mov edx, dword [esp + 0xa0]
dec edx
lea eax, [esp + edx*4 + 0x878]
cmp dword [eax], 0
je 0x60af0d
mov dword [esp + 0xa0], edx
mov dword [esp + 0x9c], eax
mov eax, edx
lea esi, [eax - 1]
mov edx, dword [esp + 0x87c]
test edx, edx
jle 0x60afe9
dec dword [esp + 0x1e0]
add edx, edx
mov dword [esp + 0x87c], edx
cmp dword [esp + 0xa0], 2
jb 0x60afe9
mov edx, dword [esp + 0xa0]
lea edi, [edx - 1]
shr edi, 1
je 0x60ccbd
mov dword [esp + 0x34c], esi
xor edx, edx
mov dword [esp + 0x168], ecx
mov eax, dword [esp + edx*8 + 0x880]
mov ecx, eax
shr ecx, 0x1f
add eax, eax
or dword [esp + edx*8 + 0x87c], ecx
mov ecx, dword [esp + edx*8 + 0x884]
mov esi, ecx
shr esi, 0x1f
add ecx, ecx
or eax, esi
mov dword [esp + edx*8 + 0x880], eax
mov dword [esp + edx*8 + 0x884], ecx
inc edx
cmp edx, edi
jb 0x60af7c
mov esi, dword [esp + 0x34c]
lea eax, [edx + edx + 1]
mov ecx, dword [esp + 0x168]
lea edx, [eax - 1]
cmp edx, esi
jae 0x60afe9
mov edi, dword [esp + eax*4 + 0x87c]
mov edx, edi
shr edx, 0x1f
add edi, edi
or dword [esp + eax*4 + 0x878], edx
mov dword [esp + eax*4 + 0x87c], edi
mov edx, dword [esp + 0x9c]
mov edi, dword [esp + 0x20c]
shr edi, 5
cmp dword [edx], 0
je 0x60b006
mov esi, dword [esp + 0xa0]
cmp esi, edi
jb 0x60b0a7
mov esi, edi
mov edx, esi
mov edi, dword [esp + edx*4 + 0x87c]
shr edi, 0x1f
mov eax, edi
mov edi, edx
lea edi, [esp + edi*4 + 0x878]
mov edx, dword [edi]
add edx, eax
mov dword [esp + 8], edx
cmp edx, eax
jae 0x60b08f
mov edx, esi
mov esi, dword [esp + 8]
mov dword [edi], esi
mov dword [esp + 0x878], 0
lea edi, [esp + edx*4 + 0x874]
mov eax, dword [edi]
lea esi, [edx - 1]
cmp eax, 0xffffffff
jne 0x60b066
dec esi
lea edi, [esp + esi*4 + 0x878]
mov eax, dword [edi]
cmp eax, 0xffffffff
je 0x60b057
test esi, esi
je 0x60b06f
inc eax
mov dword [edi], eax
jmp 0x60b0ae
inc dword [esp + 0x1e0]
mov esi, 1
mov dword [esp + 0x87c], 0x80000000
lea edi, [esp + 0x87c]
jmp 0x60b0ae
mov dword [edi], edx
cmp dword [esp + 8], 0
jne 0x60b0ae
dec esi
lea edi, [esp + esi*4 + 0x878]
cmp dword [edi], 0
je 0x60b098
jmp 0x60b0ae
lea edi, [esp + esi*4 + 0x878]
cmp dword [esp + 0x240], 0
je 0x60b613
mov eax, dword [esp + 0x240]
lea edx, [esi + eax]
mov dword [esp + 0x6c], edx
lea edx, [esi + eax - 1]
mov dword [esp + 0x70], edx
mov edx, dword [edi]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + eax*4 + 0x7f8]
mov dword [esp + 0x60], edx
mov eax, dword [esp + 0x5c]
mul dword [esp + 0x60]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], edx
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x68]
mov dword [esp + eax*4 + 0x478], edx
mov edx, dword [esp + 0x64]
mov dword [esp + eax*4 + 0x47c], edx
mov edx, dword [esp + 0x240]
lea eax, [edx - 1]
mov dword [esp + 0x3f4], ebx
mov dword [esp + 0x34c], esi
mov dword [esp + 0x168], ecx
mov ecx, eax
mov ebx, dword [esp + 0x70]
mov edx, dword [edi]
mov esi, dword [esp + ecx*4 + 0x7f8]
mov dword [esp + ebx*4 + 0x4b8], 0
mov dword [esp + 0x274], edx
mov dword [esp + 0x278], esi
mov eax, dword [esp + 0x274]
mul dword [esp + 0x278]
mov dword [esp + 0x27c], eax
mov dword [esp + 0x280], edx
mov esi, dword [esp + 0x27c]
mov edx, dword [esp + ebx*4 + 0x478]
add edx, esi
cmp edx, esi
mov dword [esp + ebx*4 + 0x478], edx
mov edx, 0
setb dl
dec ebx
add edx, dword [esp + 0x280]
mov dword [esp + ebx*4 + 0x478], edx
dec ecx
jne 0x60b132
mov dword [esp + 0x70], ebx
mov ebx, dword [esp + 0x3f4]
mov esi, dword [esp + 0x34c]
mov ecx, dword [esp + 0x168]
mov edx, dword [esp + 0x70]
mov dword [esp + edx*4 + 0x4b8], 0
dec edx
js 0x60b28a
mov edx, dword [esp + 0x70]
shr edx, 1
mov dword [esp + 0x74], edx
je 0x60ccb3
mov edi, dword [esp + 0x70]
xor eax, eax
mov dword [esp + 0x3f4], ebx
mov dword [esp + 0x34c], esi
lea edx, [esp + edi*4 + 0x474]
mov dword [esp + 0x50], edx
lea edx, [esp + edi*4 + 0x4b4]
mov dword [esp + 0x4c], edx
xor edi, edi
mov dword [esp + 0x168], ecx
mov edx, eax
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x50]
mov esi, dword [esp + 0x74]
inc eax
mov dword [edx + ecx], edi
mov dword [edx + ebx], edi
mov dword [edx + ecx - 4], edi
mov dword [edx + ebx - 4], edi
add edx, 0xfffffff8
cmp eax, esi
jb 0x60b223
mov ebx, dword [esp + 0x3f4]
lea edx, [eax + eax + 1]
mov esi, dword [esp + 0x34c]
mov ecx, dword [esp + 0x168]
lea edi, [edx - 1]
cmp edi, dword [esp + 0x70]
jae 0x60b28a
shl edx, 2
xor eax, eax
mov edi, dword [esp + 0x70]
neg edx
mov dword [esp + 0x3f4], ebx
lea ebx, [esp + edi*4 + 0x4b4]
mov dword [edx + ebx + 4], eax
lea ebx, [esp + edi*4 + 0x474]
mov dword [edx + ebx + 4], eax
mov ebx, dword [esp + 0x3f4]
mov eax, esi
dec eax
je 0x60b36f
mov dword [esp + 0x3f4], ebx
mov dword [esp + 0x34c], esi
mov dword [esp + 0x168], ecx
mov edx, dword [esp + 0x240]
mov esi, edx
test edx, edx
je 0x60b353
mov dword [esp + 0x390], eax
lea ebx, [esp + eax*4 + 0x4b8]
lea ecx, [esp + eax*4 + 0x478]
mov eax, dword [esp + 0x390]
mov edi, dword [esp + esi*4 + 0x7f8]
mov dword [esp + 0x384], edi
mov edx, dword [esp + eax*4 + 0x878]
mov dword [esp + 0x380], edx
mov eax, dword [esp + 0x380]
mul dword [esp + 0x384]
mov dword [esp + 0x388], eax
mov dword [esp + 0x38c], edx
mov edi, dword [esp + 0x388]
mov edx, dword [ecx + esi*4]
add edx, edi
mov dword [ecx + esi*4], edx
xor eax, eax
cmp edx, edi
mov edx, 0
setb al
add eax, dword [esp + 0x38c]
mov edi, dword [ecx + esi*4 - 4]
add edi, eax
cmp edi, eax
mov dword [ecx + esi*4 - 4], edi
setb dl
add dword [ebx + esi*4 - 8], edx
dec esi
jne 0x60b2ce
mov eax, dword [esp + 0x390]
mov edx, dword [esp + 0x240]
dec eax
jne 0x60b2af
mov ebx, dword [esp + 0x3f4]
mov esi, dword [esp + 0x34c]
mov ecx, dword [esp + 0x168]
add dword [esp + 0x1e0], ecx
mov edx, dword [esp + 0x240]
mov ecx, dword [esp + 0x6c]
lea esi, [esi + edx - 1]
mov edx, dword [esp + ecx*4 + 0x478]
lea edi, [esp + ecx*4 + 0x878]
mov dword [esp + 0x54], edi
mov dword [edi], edx
cmp ecx, 1
je 0x60b4a1
mov edx, esi
mov dword [esp + 0x58], 0
shr edx, 1
je 0x60cca9
xor eax, eax
lea ecx, [esp + esi*4 + 0x478]
mov dword [esp + 0x1c], ecx
lea ecx, [esp + esi*4 + 0x4b8]
lea edi, [esp + esi*4 + 0x878]
mov dword [esp + 0x3f4], ebx
mov dword [esp + 0x1bc], ecx
mov dword [esp + 0x1b8], edx
mov dword [esp + 0x34c], esi
mov ecx, eax
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x58]
lea esi, [esi]
lea edi, [edi]
mov esi, dword [esp + 0x1bc]
inc eax
mov dword [esp + 0x1c0], eax
add edx, dword [ecx + esi]
mov eax, dword [ecx + ebx]
add eax, edx
cmp eax, edx
mov edx, 0
mov dword [ecx + edi], eax
mov eax, edx
setb al
add eax, dword [ecx + esi - 4]
mov esi, dword [ecx + ebx - 4]
add esi, eax
cmp esi, eax
mov eax, dword [esp + 0x1c0]
mov dword [ecx + edi - 4], esi
setb dl
add ecx, 0xfffffff8
cmp eax, dword [esp + 0x1b8]
jb 0x60b400
mov dword [esp + 0x58], edx
lea eax, [eax + eax + 1]
mov ebx, dword [esp + 0x3f4]
mov esi, dword [esp + 0x34c]
lea edx, [eax - 1]
cmp edx, esi
jae 0x60b49b
shl eax, 2
lea ecx, [esp + esi*4 + 0x4b8]
neg eax
lea edi, [esp + esi*4 + 0x478]
mov edx, dword [esp + 0x58]
add edx, dword [eax + ecx + 4]
lea ecx, [esp + esi*4 + 0x878]
add edx, dword [eax + edi + 4]
mov dword [eax + ecx + 4], edx
mov edx, dword [esp + 0x54]
mov edx, dword [edx]
jmp 0x60b4a1
mov edx, dword [esp + 0x54]
mov edx, dword [edx]
test edx, edx
jne 0x60b4c3
mov edx, dword [esp + 0x6c]
dec edx
lea eax, [esp + edx*4 + 0x878]
cmp dword [eax], 0
je 0x60b4a9
mov dword [esp + 0x6c], edx
mov dword [esp + 0x54], eax
mov eax, edx
lea esi, [eax - 1]
mov edx, dword [esp + 0x87c]
test edx, edx
jle 0x60b567
dec dword [esp + 0x1e0]
add edx, edx
mov dword [esp + 0x87c], edx
cmp dword [esp + 0x6c], 2
jb 0x60b567
mov edx, dword [esp + 0x6c]
lea ecx, [edx - 1]
shr ecx, 1
je 0x60cc9f
mov dword [esp + 0x34c], esi
xor edx, edx
mov eax, dword [esp + edx*8 + 0x880]
mov esi, eax
shr esi, 0x1f
add eax, eax
or dword [esp + edx*8 + 0x87c], esi
mov esi, dword [esp + edx*8 + 0x884]
mov edi, esi
shr edi, 0x1f
add esi, esi
or eax, edi
mov dword [esp + edx*8 + 0x880], eax
mov dword [esp + edx*8 + 0x884], esi
inc edx
cmp edx, ecx
jb 0x60b501
mov esi, dword [esp + 0x34c]
lea edi, [edx + edx + 1]
lea edx, [edi - 1]
cmp edx, esi
jae 0x60b567
mov ecx, dword [esp + edi*4 + 0x87c]
mov edx, ecx
shr edx, 0x1f
add ecx, ecx
or dword [esp + edi*4 + 0x878], edx
mov dword [esp + edi*4 + 0x87c], ecx
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x20c]
shr eax, 5
cmp dword [edx], 0
je 0x60b57e
mov esi, dword [esp + 0x6c]
cmp esi, eax
jb 0x60b60c
mov esi, eax
mov edx, dword [esp + eax*4 + 0x87c]
shr edx, 0x1f
lea edi, [esp + eax*4 + 0x878]
mov ecx, dword [edi]
add ecx, edx
cmp ecx, edx
jae 0x60b5f7
mov dword [edi], ecx
lea edi, [esp + eax*4 + 0x874]
mov dword [esp + 0x878], 0
lea esi, [eax - 1]
mov eax, dword [edi]
cmp eax, 0xffffffff
jne 0x60b5ce
dec esi
lea edi, [esp + esi*4 + 0x878]
mov eax, dword [edi]
cmp eax, 0xffffffff
je 0x60b5bf
test esi, esi
je 0x60b5d7
inc eax
mov dword [edi], eax
jmp 0x60b613
inc dword [esp + 0x1e0]
mov esi, 1
mov dword [esp + 0x87c], 0x80000000
lea edi, [esp + 0x87c]
jmp 0x60b613
mov dword [edi], ecx
test ecx, ecx
jne 0x60b613
dec esi
lea edi, [esp + esi*4 + 0x878]
cmp dword [edi], 0
je 0x60b5fd
jmp 0x60b613
lea edi, [esp + esi*4 + 0x878]
cmp dword [esp + 0x2bc], 0
je 0x60bb91
mov eax, dword [esp + 0x2bc]
mov edx, dword [edi]
mov dword [esp + 0x118], edx
mov edx, dword [esp + eax*4 + 0x7b8]
lea ecx, [eax + esi - 1]
mov dword [esp + 0x11c], edx
mov eax, dword [esp + 0x118]
mul dword [esp + 0x11c]
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], edx
mov edx, dword [esp + 0x124]
mov dword [esp + ecx*4 + 0x5f8], edx
mov edx, dword [esp + 0x120]
mov eax, dword [esp + 0x2bc]
mov dword [esp + ecx*4 + 0x5fc], edx
dec eax
je 0x60b718
mov dword [esp + 0x3f4], ebx
mov ebx, eax
mov dword [esp + 0x34c], esi
mov edx, dword [edi]
mov esi, dword [esp + ebx*4 + 0x7b8]
mov dword [esp + ecx*4 + 0x638], 0
mov dword [esp + 0x2e4], edx
mov dword [esp + 0x2e8], esi
mov eax, dword [esp + 0x2e4]
mul dword [esp + 0x2e8]
mov dword [esp + 0x2ec], eax
mov dword [esp + 0x2f0], edx
mov esi, dword [esp + 0x2ec]
mov edx, dword [esp + ecx*4 + 0x5f8]
add edx, esi
cmp edx, esi
mov dword [esp + ecx*4 + 0x5f8], edx
mov edx, 0
setb dl
dec ecx
add edx, dword [esp + 0x2f0]
mov dword [esp + ecx*4 + 0x5f8], edx
dec ebx
jne 0x60b699
mov ebx, dword [esp + 0x3f4]
mov esi, dword [esp + 0x34c]
mov edx, ecx
mov dword [esp + ecx*4 + 0x638], 0
dec edx
js 0x60b7ce
mov edi, ecx
shr edi, 1
je 0x60cc95
xor edx, edx
lea eax, [esp + ecx*4 + 0x5f4]
mov dword [esp + 0x10c], eax
lea eax, [esp + ecx*4 + 0x634]
mov dword [esp + 0x108], eax
xor eax, eax
mov dword [esp + 0x3f4], ebx
mov dword [esp + 0x104], ecx
mov dword [esp + 0x34c], esi
xor esi, esi
mov ecx, dword [esp + 0x108]
mov ebx, dword [esp + 0x10c]
inc edx
mov dword [eax + ecx], esi
mov dword [eax + ebx], esi
mov dword [eax + ecx - 4], esi
mov dword [eax + ebx - 4], esi
add eax, 0xfffffff8
cmp edx, edi
jb 0x60b77b
mov ebx, dword [esp + 0x3f4]
lea edx, [edx + edx + 1]
mov ecx, dword [esp + 0x104]
mov esi, dword [esp + 0x34c]
lea edi, [edx - 1]
cmp edi, ecx
jae 0x60b7ce
shl edx, 2
lea edi, [esp + ecx*4 + 0x634]
neg edx
lea ecx, [esp + ecx*4 + 0x5f4]
xor eax, eax
mov dword [edx + edi + 4], eax
mov dword [edx + ecx + 4], eax
mov eax, esi
dec eax
je 0x60b8b3
mov dword [esp + 0x3f4], ebx
mov dword [esp + 0x34c], esi
mov edx, dword [esp + 0x2bc]
mov esi, edx
test edx, edx
je 0x60b897
mov dword [esp + 0x3cc], eax
lea ebx, [esp + eax*4 + 0x638]
mov dword [esp + 0x2bc], edx
lea ecx, [esp + eax*4 + 0x5f8]
mov eax, dword [esp + 0x3cc]
mov edi, dword [esp + esi*4 + 0x7b8]
mov dword [esp + 0x3c0], edi
mov edx, dword [esp + eax*4 + 0x878]
mov dword [esp + 0x3bc], edx
mov eax, dword [esp + 0x3bc]
mul dword [esp + 0x3c0]
mov dword [esp + 0x3c4], eax
mov dword [esp + 0x3c8], edx
mov edi, dword [esp + 0x3c4]
mov edx, dword [ecx + esi*4]
add edx, edi
mov dword [ecx + esi*4], edx
xor eax, eax
cmp edx, edi
mov edx, 0
setb al
add eax, dword [esp + 0x3c8]
mov edi, dword [ecx + esi*4 - 4]
add edi, eax
cmp edi, eax
mov dword [ecx + esi*4 - 4], edi
setb dl
add dword [ebx + esi*4 - 8], edx
dec esi
jne 0x60b812
mov eax, dword [esp + 0x3cc]
mov edx, dword [esp + 0x2bc]
dec eax
jne 0x60b7ec
mov dword [esp + 0x2bc], edx
mov ebx, dword [esp + 0x3f4]
mov esi, dword [esp + 0x34c]
mov ecx, dword [esp + 0x2bc]
mov edx, dword [esp + 0x1e0]
add edx, dword [esp + 0x164]
mov dword [esp + 0x1e0], edx
lea edx, [esi + ecx]
lea esi, [esi + ecx - 1]
mov ecx, dword [esp + edx*4 + 0x5f8]
lea edi, [esp + edx*4 + 0x878]
mov dword [esp + 0x110], edi
mov dword [edi], ecx
cmp edx, 1
je 0x60ba39
mov ecx, esi
mov dword [esp + 0x114], 0
shr ecx, 1
je 0x60cc8b
xor eax, eax
lea edi, [esp + esi*4 + 0x878]
mov dword [esp + 0x26c], edi
lea edi, [esp + esi*4 + 0x5f8]
mov dword [esp + 0xc8], edi
lea edi, [esp + esi*4 + 0x638]
mov dword [esp + 0x3f4], ebx
mov dword [esp + 0x264], ecx
mov dword [esp + 0xc4], edx
mov dword [esp + 0x268], edi
mov dword [esp + 0x34c], esi
mov ecx, eax
mov ebx, dword [esp + 0xc8]
mov edx, dword [esp + 0x114]
lea esi, [esi]
lea edi, [edi]
mov esi, dword [esp + 0x268]
inc eax
mov edi, dword [esp + 0x26c]
mov dword [esp + 0x270], eax
add edx, dword [ecx + esi]
mov eax, dword [ecx + ebx]
add eax, edx
cmp eax, edx
mov edx, 0
mov dword [ecx + edi], eax
mov eax, edx
setb al
add eax, dword [ecx + esi - 4]
mov esi, dword [ecx + ebx - 4]
add esi, eax
cmp esi, eax
mov eax, dword [esp + 0x270]
mov dword [ecx + edi - 4], esi
setb dl
add ecx, 0xfffffff8
cmp eax, dword [esp + 0x264]
jb 0x60b970
mov dword [esp + 0x114], edx
lea eax, [eax + eax + 1]
mov ebx, dword [esp + 0x3f4]
mov edx, dword [esp + 0xc4]
mov esi, dword [esp + 0x34c]
lea ecx, [eax - 1]
cmp ecx, esi
jae 0x60ba30
shl eax, 2
lea edi, [esp + esi*4 + 0x5f8]
neg eax
mov dword [esp + 0x3f4], ebx
lea ebx, [esp + esi*4 + 0x638]
mov ecx, dword [esp + 0x114]
add ecx, dword [eax + ebx + 4]
lea ebx, [esp + esi*4 + 0x878]
add ecx, dword [eax + edi + 4]
mov dword [eax + ebx + 4], ecx
mov ecx, dword [esp + 0x110]
mov ebx, dword [esp + 0x3f4]
mov ecx, dword [ecx]
jmp 0x60ba39
mov ecx, dword [esp + 0x110]
mov ecx, dword [ecx]
test ecx, ecx
jne 0x60ba54
dec edx
lea eax, [esp + edx*4 + 0x878]
cmp dword [eax], 0
je 0x60ba3d
mov dword [esp + 0x110], eax
lea esi, [edx - 1]
mov ecx, dword [esp + 0x87c]
test ecx, ecx
jle 0x60bb04
dec dword [esp + 0x1e0]
add ecx, ecx
mov dword [esp + 0x87c], ecx
cmp edx, 2
jb 0x60bb04
lea ecx, [edx - 1]
shr ecx, 1
je 0x60cc81
mov dword [esp + 0xc4], edx
xor edi, edi
mov dword [esp + 0x34c], esi
mov eax, dword [esp + edi*8 + 0x880]
mov edx, eax
shr edx, 0x1f
add eax, eax
or dword [esp + edi*8 + 0x87c], edx
mov edx, dword [esp + edi*8 + 0x884]
mov esi, edx
shr esi, 0x1f
add edx, edx
or eax, esi
mov dword [esp + edi*8 + 0x880], eax
mov dword [esp + edi*8 + 0x884], edx
inc edi
cmp edi, ecx
jb 0x60ba97
mov edx, dword [esp + 0xc4]
lea eax, [edi + edi + 1]
mov esi, dword [esp + 0x34c]
lea ecx, [eax - 1]
cmp ecx, esi
jae 0x60bb04
mov edi, dword [esp + eax*4 + 0x87c]
mov ecx, edi
shr ecx, 0x1f
add edi, edi
or dword [esp + eax*4 + 0x878], ecx
mov dword [esp + eax*4 + 0x87c], edi
mov ecx, dword [esp + 0x110]
mov eax, dword [esp + 0x20c]
shr eax, 5
cmp dword [ecx], 0
je 0x60bb1c
mov esi, edx
cmp esi, eax
jb 0x60bb8a
mov esi, eax
mov edx, dword [esp + eax*4 + 0x87c]
shr edx, 0x1f
lea edi, [esp + eax*4 + 0x878]
mov ecx, dword [edi]
add ecx, edx
cmp ecx, edx
jae 0x60bb75
mov dword [edi], ecx
lea edi, [esp + eax*4 + 0x874]
mov dword [esp + 0x878], 0
lea esi, [eax - 1]
mov eax, dword [edi]
cmp eax, 0xffffffff
jne 0x60bb68
dec esi
lea edi, [esp + esi*4 + 0x878]
mov eax, dword [edi]
cmp eax, 0xffffffff
je 0x60bb59
test esi, esi
jne 0x6098a0
jmp 0x6098a8
mov dword [edi], ecx
test ecx, ecx
jne 0x60bb91
dec esi
lea edi, [esp + esi*4 + 0x878]
cmp dword [edi], 0
je 0x60bb7b
jmp 0x60bb91
lea edi, [esp + esi*4 + 0x878]
mov edi, dword [edi]
lea edx, [esi + ebx - 1]
mov ecx, dword [esp + ebx*4 + 0x838]
mov dword [esp + 0x1d4], edi
lea edi, [esi + ebx]
mov dword [esp + 0x1e8], edx
mov dword [esp + 0x1e4], edx
mov dword [esp + 0x1d0], ecx
mov eax, dword [esp + 0x1d0]
mul dword [esp + 0x1d4]
mov dword [esp + 0x1d8], eax
mov dword [esp + 0x1dc], edx
mov edx, dword [esp + 0x1e8]
mov ecx, dword [esp + 0x1dc]
lea edx, [esp + edx*4 + 0x6f8]
mov dword [esp + 0x33c], edx
mov dword [edx], ecx
mov ecx, dword [esp + 0x1d8]
mov dword [edx + 4], ecx
mov ecx, esi
dec ecx
je 0x60bca7
mov dword [esp + 0x34c], esi
mov dword [esp + 0x1cc], edi
mov esi, dword [esp + 0x1e4]
mov eax, dword [esp + ebx*4 + 0x838]
mov edx, dword [esp + ecx*4 + 0x878]
mov dword [esp + esi*4 + 0x738], 0
mov dword [esp + 0x350], eax
mov dword [esp + 0x354], edx
mov eax, dword [esp + 0x350]
mul dword [esp + 0x354]
mov dword [esp + 0x358], eax
mov dword [esp + 0x35c], edx
mov edi, dword [esp + 0x358]
xor edx, edx
mov eax, dword [esp + esi*4 + 0x6f8]
add eax, edi
cmp eax, edi
mov dword [esp + esi*4 + 0x6f8], eax
setb dl
dec esi
add edx, dword [esp + 0x35c]
mov dword [esp + esi*4 + 0x6f8], edx
dec ecx
jne 0x60bc1f
mov dword [esp + 0x1e4], esi
mov edi, dword [esp + 0x1cc]
mov esi, dword [esp + 0x34c]
mov edx, dword [esp + 0x1e4]
mov dword [esp + edx*4 + 0x738], 0
dec edx
js 0x60bd96
mov edx, dword [esp + 0x1e4]
shr edx, 1
mov dword [esp + 0x1f0], edx
je 0x60cc77
mov ecx, dword [esp + 0x1e4]
xor eax, eax
mov dword [esp + 0x3f4], ebx
mov dword [esp + 0x34c], esi
lea edx, [esp + ecx*4 + 0x6f4]
mov dword [esp + 0x1c8], edx
lea edx, [esp + ecx*4 + 0x734]
mov dword [esp + 0x1c4], edx
mov dword [esp + 0x1cc], edi
xor edi, edi
mov edx, eax
mov ecx, dword [esp + 0x1c4]
mov ebx, dword [esp + 0x1c8]
mov esi, dword [esp + 0x1f0]
inc eax
mov dword [edx + ecx], edi
mov dword [edx + ebx], edi
mov dword [edx + ecx - 4], edi
mov dword [edx + ebx - 4], edi
add edx, 0xfffffff8
cmp eax, esi
jb 0x60bd29
mov ebx, dword [esp + 0x3f4]
lea edx, [eax + eax + 1]
mov edi, dword [esp + 0x1cc]
mov esi, dword [esp + 0x34c]
lea ecx, [edx - 1]
cmp ecx, dword [esp + 0x1e4]
jae 0x60bd96
shl edx, 2
xor eax, eax
mov dword [esp + 0x3f4], ebx
neg edx
mov ebx, dword [esp + 0x1e4]
lea ecx, [esp + ebx*4 + 0x734]
mov dword [edx + ecx + 4], eax
lea ecx, [esp + ebx*4 + 0x6f4]
mov dword [edx + ecx + 4], eax
mov ebx, dword [esp + 0x3f4]
dec ebx
je 0x60be5f
mov dword [esp + 0x1cc], edi
mov eax, esi
mov edi, eax
test eax, eax
je 0x60be51
mov dword [esp + 0x3f4], ebx
lea esi, [esp + ebx*4 + 0x738]
mov dword [esp + 0x34c], eax
lea ecx, [esp + ebx*4 + 0x6f8]
mov eax, dword [esp + 0x3f4]
mov ebx, dword [esp + edi*4 + 0x878]
mov dword [esp + 0x3e8], ebx
mov edx, dword [esp + eax*4 + 0x838]
mov dword [esp + 0x3e4], edx
mov eax, dword [esp + 0x3e4]
mul dword [esp + 0x3e8]
mov dword [esp + 0x3ec], eax
mov dword [esp + 0x3f0], edx
mov edx, dword [esp + 0x3ec]
mov ebx, dword [ecx + edi*4]
add ebx, edx
mov dword [ecx + edi*4], ebx
xor eax, eax
cmp ebx, edx
mov ebx, 0
setb al
add eax, dword [esp + 0x3f0]
mov edx, dword [ecx + edi*4 - 4]
add edx, eax
cmp edx, eax
mov dword [ecx + edi*4 - 4], edx
setb bl
add dword [esi + edi*4 - 8], ebx
dec edi
jne 0x60bdcc
mov ebx, dword [esp + 0x3f4]
mov eax, dword [esp + 0x34c]
dec ebx
jne 0x60bda6
mov edi, dword [esp + 0x1cc]
mov eax, dword [esp + 0x1f4]
mov edx, dword [esp + 0x1e0]
lea eax, [eax + edx - 0x3ffe]
mov edx, dword [esp + edi*4 + 0x6f8]
mov dword [esp + edi*4 + 0x838], edx
cmp edi, 1
je 0x60bf9d
mov edx, dword [esp + 0x1e8]
shr edx, 1
mov dword [esp + 0x344], edx
mov edx, 0
je 0x60cc6d
mov ecx, dword [esp + 0x1e8]
xor ebx, ebx
mov dword [esp + 0x324], eax
mov dword [esp + 0x1cc], edi
lea esi, [esp + ecx*4 + 0x838]
mov dword [esp + 0x340], esi
lea esi, [esp + ecx*4 + 0x738]
mov eax, ebx
mov ecx, esi
lea esi, [esi]
lea edi, [edi]
mov esi, dword [esp + 0x33c]
inc ebx
add edx, dword [eax + ecx]
mov edi, dword [esp + 0x340]
mov dword [esp + 0x348], ebx
mov ebx, dword [eax + esi]
add ebx, edx
cmp ebx, edx
mov edx, 0
mov dword [eax + edi], ebx
mov ebx, edx
setb bl
add ebx, dword [eax + ecx - 4]
mov esi, dword [eax + esi - 4]
add esi, ebx
cmp esi, ebx
mov ebx, dword [esp + 0x348]
mov dword [eax + edi - 4], esi
setb dl
add eax, 0xfffffff8
cmp ebx, dword [esp + 0x344]
jb 0x60bee0
mov edi, dword [esp + 0x1cc]
lea ebx, [ebx + ebx + 1]
mov eax, dword [esp + 0x324]
lea esi, [ebx - 1]
cmp esi, dword [esp + 0x1e8]
jae 0x60bf96
shl ebx, 2
mov ecx, dword [esp + 0x33c]
mov esi, dword [esp + 0x1e8]
sub ecx, ebx
mov dword [esp + 0x324], eax
neg ebx
lea eax, [esp + esi*4 + 0x738]
add edx, dword [ebx + eax + 4]
lea eax, [esp + esi*4 + 0x838]
add edx, dword [ecx + 4]
mov dword [ebx + eax + 4], edx
mov edx, dword [esp + edi*4 + 0x838]
mov eax, dword [esp + 0x324]
jmp 0x60bf9d
mov edx, dword [esp + edi*4 + 0x838]
test edx, edx
jne 0x60cc5a
dec edi
lea edx, [esp + edi*4 + 0x838]
cmp dword [edx], 0
je 0x60bfa5
mov dword [esp + 0x1ec], edx
mov edx, dword [esp + 0x83c]
test edx, edx
jle 0x60c056
add edx, edx
dec eax
mov dword [esp + 0x83c], edx
cmp edi, 2
jb 0x60c056
lea ebx, [edi - 1]
shr ebx, 1
je 0x60cb9a
mov dword [esp + 0x324], eax
xor edx, edx
mov eax, dword [esp + edx*8 + 0x840]
mov ecx, eax
shr ecx, 0x1f
add eax, eax
or dword [esp + edx*8 + 0x83c], ecx
mov ecx, dword [esp + edx*8 + 0x844]
mov esi, ecx
shr esi, 0x1f
add ecx, ecx
or eax, esi
mov dword [esp + edx*8 + 0x840], eax
mov dword [esp + edx*8 + 0x844], ecx
inc edx
cmp edx, ebx
jb 0x60bfeb
mov eax, dword [esp + 0x324]
lea ebx, [edx + edx + 1]
lea edx, [edi - 1]
lea esi, [ebx - 1]
cmp esi, edx
jae 0x60c059
mov ecx, dword [esp + ebx*4 + 0x83c]
mov esi, ecx
shr esi, 0x1f
add ecx, ecx
or dword [esp + ebx*4 + 0x838], esi
mov dword [esp + ebx*4 + 0x83c], ecx
jmp 0x60c059
lea edx, [edi - 1]
mov ebx, dword [esp + 0x1ec]
cmp dword [ebx], 0
je 0x60c067
mov edx, edi
test eax, eax
jg 0x608d31
mov edi, eax
neg edi
je 0x60c18a
mov ecx, edi
mov esi, dword [esp + edx*4 + 0x838]
neg ecx
mov ebx, esi
shl ebx, cl
mov ecx, edi
shr esi, cl
mov dword [esp + edx*4 + 0x83c], ebx
mov dword [esp + edx*4 + 0x838], esi
lea esi, [edx - 1]
cmp edx, 1
je 0x60c183
mov ebx, esi
shr ebx, 1
mov dword [esp + 0x328], ebx
je 0x60cc50
xor ebx, ebx
lea ecx, [esp + edx*4 + 0x834]
mov dword [esp + 0x29c], edx
mov dword [esp + 0x324], eax
mov dword [esp + 0x178], esi
mov dword [esp + 0x32c], edi
mov edx, ebx
mov eax, ecx
mov esi, dword [edx + eax]
inc ebx
mov edi, dword [esp + 0x324]
mov ecx, edi
mov dword [esp + 0x330], ebx
mov ebx, esi
shl ebx, cl
or dword [edx + eax + 4], ebx
mov ebx, dword [edx + eax - 4]
mov ecx, dword [esp + 0x32c]
shr esi, cl
mov ecx, edi
mov edi, ebx
shl edi, cl
mov ecx, dword [esp + 0x32c]
or esi, edi
shr ebx, cl
mov dword [edx + eax - 4], ebx
mov ebx, dword [esp + 0x330]
mov dword [edx + eax], esi
add edx, 0xfffffff8
cmp ebx, dword [esp + 0x328]
jb 0x60c0e0
mov edi, ecx
mov esi, dword [esp + 0x178]
lea ecx, [ebx + ebx + 1]
mov edx, dword [esp + 0x29c]
mov eax, dword [esp + 0x324]
lea ebx, [ecx - 1]
cmp ebx, esi
jae 0x60c17c
sub esi, ecx
mov ecx, eax
mov ebx, dword [esp + esi*4 + 0x83c]
shl ebx, cl
mov ecx, edi
or dword [esp + esi*4 + 0x840], ebx
shr dword [esp + esi*4 + 0x83c], cl
mov ebx, dword [esp + edx*4 + 0x83c]
jmp 0x60c183
mov ebx, dword [esp + edx*4 + 0x83c]
xor eax, eax
cmp eax, ebx
adc edx, 0
mov ebx, dword [esp + 0x2c4]
cmp ebx, 0x27
mov eax, dword [esp + 0x334]
jle 0x60c1a2
mov ebx, 0x27
mov ecx, dword [esp + 0x1fc]
mov byte [eax], 0x30
mov dword [esp + 0x200], ecx
cmp ebx, dword [esp + 0x210]
jle 0x60c3c8
sub ebx, dword [esp + 0x210]
je 0x60c3c8
xor eax, eax
mov dword [esp + 0x338], ebx
xor esi, esi
mov dword [esp + 0x838], 0
test edx, edx
je 0x60c391
mov ebx, dword [esp + edx*4 + 0x838]
mov ecx, 0
mov dword [esp + edx*4 + 0x838], 0
je 0x60c382
mov ecx, edx
shr ecx, 1
mov dword [esp + 0x364], ecx
je 0x60cba4
xor ecx, ecx
lea edi, [esp + edx*4 + 0x838]
mov dword [esp + 0x298], ecx
mov dword [esp + 0x360], ecx
mov dword [esp + 0x29c], edx
mov dword [esp + 0x2a4], eax
mov dword [esp + 0x2a0], esi
mov edx, dword [esp + 0x298]
mov ecx, edi
xor eax, eax
lea esi, [ebx + ebx*4]
cmp esi, ebx
mov edi, esi
setb al
shr ebx, 0x1e
add ebx, eax
shr edi, 0x1f
add ebx, ebx
or ebx, edi
mov edi, dword [edx + ecx]
mov eax, dword [edx + ecx - 4]
mov dword [esp + 0x368], ebx
lea ebx, [esi + esi]
lea esi, [edi + esi*2]
mov dword [edx + ecx], esi
cmp esi, ebx
mov esi, eax
mov ebx, 0
setb bl
mov edi, dword [esp + 0x368]
add edi, ebx
lea eax, [esi + esi*4]
xor ebx, ebx
cmp eax, esi
setb bl
shr esi, 0x1e
lea edi, [edi + eax*2]
add esi, ebx
mov ebx, eax
add eax, eax
add esi, esi
cmp edi, eax
mov eax, 0
mov dword [edx + ecx - 4], edi
setb al
shr ebx, 0x1f
or esi, ebx
inc dword [esp + 0x360]
add esi, eax
mov ebx, dword [edx + ecx - 8]
mov dword [edx + ecx - 8], esi
add edx, 0xfffffff8
mov esi, dword [esp + 0x360]
cmp esi, dword [esp + 0x364]
jb 0x60c24e
mov ecx, esi
mov eax, dword [esp + 0x2a4]
lea ecx, [ecx + ecx + 1]
mov esi, dword [esp + 0x2a0]
mov edx, dword [esp + 0x29c]
lea edi, [ecx - 1]
cmp edi, edx
jae 0x60c37b
neg ecx
lea edi, [ebx + ebx*4]
add ecx, edx
cmp edi, ebx
mov dword [esp + 0x29c], edx
mov edx, 0
mov dword [esp + 0x2a0], esi
mov dword [esp + 0x2a4], eax
mov eax, edx
mov esi, dword [esp + ecx*4 + 0x83c]
setb al
shr ebx, 0x1e
add ebx, eax
lea eax, [edi + edi]
add ebx, ebx
lea esi, [esi + edi*2]
cmp esi, eax
mov dword [esp + ecx*4 + 0x83c], esi
setb dl
shr edi, 0x1f
or ebx, edi
add ebx, edx
mov edx, dword [esp + 0x29c]
mov dword [esp + ecx*4 + 0x838], ebx
mov eax, dword [esp + 0x2a4]
mov esi, dword [esp + 0x2a0]
mov ecx, dword [esp + edx*4 + 0x838]
jmp 0x60c382
mov ecx, dword [esp + edx*4 + 0x838]
cmp ecx, 1
mov ebx, dword [esp + 0x838]
sbb edx, 0
jmp 0x60c393
xor ebx, ebx
mov edi, dword [esp + 0x334]
lea ecx, [ebx + 0x30]
add eax, 0x35269
mov byte [esi + edi + 1], cl
lea ecx, [esi + edi + 2]
inc esi
cmp esi, dword [esp + 0x338]
jb 0x60c1d8
mov dword [esp + 0x204], ebx
mov dword [esp + 0x200], ecx
jmp 0x60c3d8
mov eax, dword [esp + 0x838]
mov dword [esp + 0x204], eax
xor eax, eax
mov edx, ecx
add eax, 0xffff
mov ebx, dword [esp + 0x20c]
shr eax, 0x10
mov byte [edx], 0
lea edx, [ebx + 0x1f]
mov esi, edx
and esi, 0xffffffe0
mov ecx, esi
sub ecx, ebx
add ecx, eax
mov eax, dword [esp + 0x83c]
mov ebx, dword [esp + 0x214]
shl ebx, cl
mov dword [esp + 0x220], eax
mov dword [esp + 0x21c], ecx
add eax, 0x80000000
mov dword [esp + 0x30c], eax
je 0x60c43f
xor eax, eax
cmp dword [esp + 0x30c], 0x80000000
setne al
mov dword [esp + 0x224], eax
jmp 0x60c44a
mov dword [esp + 0x224], 0
xor eax, eax
cmp dword [esp + 0x30c], 0
mov dword [esp + 0x304], edx
mov edx, eax
setns dl
mov ecx, dword [esp + 0x2a8]
mov edi, dword [esp + 0x204]
and edi, 1
mov dword [esp + 0x218], edx
add edx, ecx
mov ecx, dword [esp + 0x224]
mov dword [esp + 0x204], edi
sub esi, dword [esp + 0x21c]
lea edi, [edx + edi*2]
mov edx, dword [esp + 0x22c]
lea ecx, [edi + ecx*4]
mov edi, dword [esp + 0x220]
shr edx, cl
lea ecx, [ebx + ebx]
and edx, 1
mov dword [esp + 0x208], edx
lea edx, [ebx + edi - 0x80000000]
cmp edx, ecx
mov edx, dword [esp + 0x304]
setbe al
cmp esi, 0x20
jb 0x60c71d
mov eax, edi
add eax, reloc.WS2_32.dll_accept
cmp eax, 1
ja 0x60cbf6
mov ecx, dword [esp + 0x21c]
mov eax, ecx
shr edx, 5
shr eax, 5
mov ebx, dword [esp + 0x214]
sub edx, eax
shl ebx, cl
mov dword [esp + 0x308], ebx
mov eax, ebx
mov dword [esp + 0x17c], edx
cmp edx, 1
jle 0x60c6b5
lea ecx, [edx - 1]
shr ecx, 1
mov dword [esp + 0x318], ecx
je 0x60cc40
xor esi, esi
lea ecx, [esp + edx*4 + 0x838]
mov dword [esp + 0x31c], ecx
xor ecx, ecx
mov dword [esp + 0x314], ecx
mov dword [esp + 0x304], edx
mov dword [esp + 0x310], eax
mov dword [esp + 0x174], ebx
inc esi
xor ebx, ebx
mov dword [esp + 0x320], esi
xor eax, eax
mov esi, dword [esp + 0x31c]
mov edx, dword [esp + 0x30c]
mov edi, dword [ecx + esi]
test edi, edi
mov esi, dword [ecx + esi - 4]
setne al
add ecx, 0xfffffff8
or edx, eax
xor eax, eax
test esi, esi
setne al
or edx, eax
xor eax, eax
mov dword [esp + 0x30c], edx
mov edx, dword [esp + 0x310]
add edx, edi
cmp edx, edi
mov edx, ebx
setb dl
add edx, esi
cmp edx, esi
mov edx, ebx
setb dl
mov dword [esp + 0x310], edx
mov edx, dword [esp + 0x308]
neg edx
add edx, edi
cmp edx, edi
mov edi, dword [esp + 0x304]
seta al
neg eax
add eax, esi
cmp eax, esi
mov eax, dword [esp + 0x314]
mov esi, dword [esp + 0x320]
seta bl
mov dword [esp + 0x308], ebx
lea edx, [eax + edi - 2]
add eax, 0xfffffffe
mov dword [esp + 0x314], eax
cmp esi, dword [esp + 0x318]
jb 0x60c551
mov dword [esp + 0x17c], edx
lea ecx, [esi + esi + 1]
mov edx, edi
mov eax, dword [esp + 0x310]
mov ebx, dword [esp + 0x174]
mov dword [esp + 0x180], ecx
mov ecx, dword [esp + 0x180]
lea edi, [edx - 1]
lea esi, [ecx - 1]
cmp esi, edi
jae 0x60cc27
mov edi, edx
sub edi, dword [esp + 0x180]
mov dword [esp + 0x174], ebx
xor ebx, ebx
xor ecx, ecx
mov esi, dword [esp + edi*4 + 0x83c]
test esi, esi
setne cl
add eax, esi
cmp eax, esi
mov eax, dword [esp + 0x308]
setb bl
neg eax
add eax, esi
mov dword [esp + 0x310], ebx
cmp eax, esi
mov ebx, dword [esp + 0x180]
mov eax, 0
seta al
neg ebx
or dword [esp + 0x30c], ecx
mov ecx, 0
mov dword [esp + 0x308], eax
setge cl
mov dword [esp + 0x218], ecx
add edx, ebx
mov dword [esp + 0x17c], edx
mov ebx, dword [esp + 0x174]
mov eax, dword [esp + 0x310]
mov edx, dword [esp + 0x17c]
mov ecx, dword [esp + edx*4 + 0x838]
add eax, ecx
sub ecx, dword [esp + 0x308]
xor eax, ecx
shr eax, 0x1f
cmp dword [esp + 0x30c], 0
je 0x60c6ed
xor edx, edx
cmp dword [esp + 0x30c], 0x80000000
setne dl
jmp 0x60c6ef
xor edx, edx
mov esi, dword [esp + 0x2a8]
mov edi, dword [esp + 0x204]
lea ecx, [esi + edi*2]
add ecx, dword [esp + 0x218]
lea ecx, [ecx + edx*4]
mov edx, dword [esp + 0x22c]
shr edx, cl
and edx, 1
mov dword [esp + 0x208], edx
test eax, eax
je 0x60cbf6
test ebx, ebx
je 0x60cbf6
cmp dword [esp + 0x20c], 0x80
jae 0x60cbae
mov dword [esp + 0x20c], 0x80
jmp 0x60909c
call fcn.0063f93a
mov ecx, eax
shr ecx, 1
je 0x60c785
xor ebx, ebx
mov edx, 0x30
mov byte [esi + ebx*2], dl
mov byte [esi + ebx*2 + 1], dl
inc ebx
cmp ebx, ecx
jb 0x60c760
lea ecx, [ebx + ebx + 1]
lea edx, [ecx - 1]
cmp edx, eax
jae 0x60879a
mov byte [ecx + esi - 1], 0x30
jmp 0x60879a
mov ecx, 1
jmp 0x60c770
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x1fc]
mov esi, dword [esp + 0x334]
cmp ecx, dword [esp + 0x20]
jbe 0x60c7be
mov edx, dword [esp + 0x20]
inc edx
mov dword [esp + 0x20], edx
mov ebx, dword [esp + edx*4 + 0x838]
mov dword [esp + 0x10], ebx
jmp 0x60c7c6
mov dword [esp + 0x10], 0
mov edx, dword [esp + 0x20]
lea edx, [edx + 1]
cmp edx, ecx
ja 0x60c859
sub ecx, edx
inc ecx
mov edx, ecx
mov dword [esp + 8], 0
shr edx, 1
mov dword [esp + 0xc], edx
je 0x60c970
mov ebx, dword [esp + 0x20]
xor edx, edx
mov dword [esp + 0x200], edi
mov dword [esp + 0x334], esi
mov edi, dword [esp + 0xc]
lea ebx, [esp + ebx*4 + 0x83c]
mov dword [esp], ebx
mov ebx, dword [esp + 8]
mov esi, dword [esp]
or ebx, dword [esi + edx*8]
or ebx, dword [esi + edx*8 + 4]
inc edx
cmp edx, edi
jb 0x60c817
mov dword [esp + 8], ebx
lea edx, [edx + edx + 1]
mov edi, dword [esp + 0x200]
mov esi, dword [esp + 0x334]
lea ebx, [edx - 1]
cmp ebx, ecx
jae 0x60c861
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 8]
lea edx, [edx + ecx + 1]
or ebx, dword [esp + edx*4 + 0x834]
mov dword [esp + 8], ebx
jmp 0x60c861
mov dword [esp + 8], 0
mov ebx, dword [esp + 0x2a8]
shr ebx, 0x1c
mov ecx, dword [esp + 4]
and ebx, 0xfffffff8
and ecx, 1
mov dword [esp + 0x200], edi
mov dword [esp + 0x1fc], eax
mov edi, dword [esp + 0x10]
xor edx, edx
test edi, 0x7fffffff
lea eax, [ebx + ecx*2]
mov ecx, 0
setne dl
mov ebx, dword [esp + 8]
or ebx, edx
mov edx, dword [esp + 0x22c]
setne cl
shr edi, 0x1f
add eax, edi
mov edi, dword [ebp + 0x30]
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x14]
shr edx, cl
add eax, 0xffffc002
mov dword [edi], eax
and edx, 1
mov eax, dword [esp + 0x1fc]
mov edi, dword [esp + 0x200]
test edx, edx
je 0x60c907
movsx edx, byte [edi - 1]
cmp edx, dword [esp + 0x1c]
jne 0x60c8ee
mov ecx, dword [esp + 0x1c]
dec edi
movsx edx, byte [edi - 1]
cmp edx, ecx
je 0x60c8e5
cmp edx, 0x39
mov ecx, dword [esp + 0x18]
je 0x60c8fc
mov ecx, 1
add edx, ecx
mov byte [edi - 1], dl
cmp edi, eax
je 0x60c97a
jmp 0x60c915
cmp dword [esp + 0x2c4], 0
jle 0x6086ff
test dword [ebp + 0x20], 0x80
je 0x60c92d
cmp byte [edi - 1], 0x30
jne 0x60c969
dec edi
cmp byte [edi - 1], 0x30
je 0x60c924
jmp 0x60c969
mov edx, dword [esp + 0x2c4]
sub edx, edi
lea ebx, [edx + eax - 1]
test ebx, ebx
jl 0x60c969
lea edx, [ebx + 1]
mov dword [esp], edx
cmp ebx, 0x60
jle 0x60c9b0
push dword [esp]
push 0x30
push edi
mov dword [esp + 0x208], eax
call fcn.0062a5e0
mov eax, dword [esp + 0x208]
add esp, 0xc
lea edi, [edi + ebx + 1]
xor edx, edx
jmp 0x6087c4
mov edx, 1
jmp 0x60c839
mov edx, dword [ebp + 0x30]
dec eax
inc dword [edx]
cmp dword [esp + 0x228], 0
je 0x60c98d
mov byte [eax], 0x38
test byte [ebp + 0x20], 2
je 0x60c915
mov ecx, dword [esp + 0x2c4]
inc ecx
mov edx, dword [ebp + 0x18]
cmp ecx, edx
jl 0x60c9a4
mov ecx, edx
mov dword [esp + 0x2c4], ecx
jmp 0x60c915
shr edx, 1
je 0x60c9ed
mov dword [esp + 0x334], esi
xor ecx, ecx
mov esi, edx
mov edx, 0x30
mov byte [edi + ecx*2], dl
mov byte [edi + ecx*2 + 1], dl
inc ecx
cmp ecx, esi
jb 0x60c9c4
mov esi, dword [esp + 0x334]
lea ecx, [ecx + ecx + 1]
lea edx, [ecx - 1]
cmp edx, dword [esp]
jae 0x60c965
mov byte [edi + ecx - 1], 0x30
jmp 0x60c965
mov ecx, 1
jmp 0x60c9db
mov dword [esp + 4], ecx
mov dword [esp + 0x10], esi
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x1fc]
mov esi, dword [esp + 0x334]
test edx, edx
je 0x60c7a2
jmp 0x60c7c6
cmp dword [esp + 0x194], 0
jne 0x60ca4f
cmp dword [esp + 0x190], 0
je 0x60ca39
cmp dword [esp + 0x2c4], 0
js 0x60ca4f
cmp dword [esp + 0x230], 0
jne 0x60ca62
mov eax, edx
mov edx, dword [ebp + 0x30]
mov dword [edx], eax
jmp 0x608df1
mov eax, edx
mov edx, dword [ebp + 0x30]
mov esi, dword [esp + 0x334]
mov dword [edx], eax
jmp 0x6086ff
mov ecx, dword [esp + 0x2a8]
add ecx, 4
mov edx, dword [esp + 0x22c]
shr edx, cl
mov eax, dword [esp + 0x1fc]
mov esi, dword [esp + 0x334]
test dl, 1
je 0x60caae
mov edx, dword [esp + 0x2c0]
test edx, edx
mov ecx, dword [ebp + 0x30]
mov edi, eax
mov eax, 0
sete al
mov byte [esi], 0x31
sub eax, edx
mov dword [ecx], eax
xor edx, edx
mov eax, esi
jmp 0x6087c4
mov edx, dword [ebp + 0x30]
mov eax, dword [esp + 0x19c]
mov dword [edx], eax
jmp 0x6086ff
lea edi, [esp + 0x880]
jmp 0x60bb91
mov edx, 1
jmp 0x6096fa
mov edi, 1
jmp 0x6094d9
mov esi, 8
lea edi, [esp + 0x880]
jmp 0x60937a
mov ecx, eax
neg ecx
mov esi, ecx
sar esi, 3
movzx edx, word [esi*2 + 0x69bae0]
lea edi, [esi + 1]
shr edx, 5
cmp edx, ecx
jl 0x60cb0d
mov edi, esi
movzx edx, word [edi*2 + 0x69bae0]
mov esi, edx
and esi, 0x1f
shr edx, 5
add edx, eax
movsx eax, word [esi*2 + 0x69bc3a]
mov ecx, dword [esi*8 + 0x69ba64]
mov dword [esp + 0x138], eax
mov dword [esp + 0x7fc], ecx
mov eax, dword [esi*8 + 0x69ba60]
jmp 0x609327
mov edx, 1
jmp 0x609fe2
mov edx, 1
jmp 0x609eba
mov edx, 1
jmp 0x609c73
mov edx, 1
jmp 0x60a72e
mov edx, 1
jmp 0x60a624
mov edx, 1
jmp 0x60a3fd
lea edi, [esp + 0x888]
jmp 0x60b613
mov eax, 1
jmp 0x609805
mov ebx, 1
jmp 0x60c02e
mov ecx, 1
jmp 0x60c300
mov edx, dword [esp + 0x2a8]
mov ecx, dword [esp + 0x204]
mov eax, dword [esp + 0x1fc]
mov edi, dword [esp + 0x200]
lea ecx, [edx + ecx*2 + 1]
mov edx, dword [esp + 0x22c]
shr edx, cl
mov esi, dword [esp + 0x334]
and edx, 1
mov dword [esp + 0x1c], 0x39
mov dword [esp + 0x18], 1
jmp 0x60c8d3
mov edx, dword [esp + 0x208]
mov eax, dword [esp + 0x1fc]
mov edi, dword [esp + 0x200]
mov esi, dword [esp + 0x334]
mov dword [esp + 0x1c], 0x39
mov dword [esp + 0x18], 1
jmp 0x60c8d3
xor edx, edx
cmp dword [esp + 0x30c], 0
setge dl
mov dword [esp + 0x218], edx
jmp 0x60c6b5
mov dword [esp + 0x180], 1
jmp 0x60c620
mov ecx, 1
jmp 0x60c14f
lea edx, [esp + edi*4 + 0x838]
mov dword [esp + 0x1ec], edx
jmp 0x60bfb9
mov ebx, 1
jmp 0x60bf45
mov edx, 1
jmp 0x60bd58
mov eax, 1
jmp 0x60bae1
mov eax, 1
jmp 0x60b9e3
mov edx, 1
jmp 0x60b7aa
mov edi, 1
jmp 0x60b544
mov eax, 1
jmp 0x60b462
mov edx, 1
jmp 0x60b252
mov eax, 1
jmp 0x60afc6
mov eax, 1
jmp 0x60aeac
mov edx, 1
jmp 0x60ac74
lea edi, [esp + 0x880]
jmp 0x60aa9a
mov edi, 0x1b
jmp 0x60aa55
xor eax, eax
mov dword [esp + 0x780], eax
mov dword [esp + 0x77c], eax
jmp 0x60aa55
movsx edx, word [0x69b682]
xor eax, eax
mov dword [esp + 0x780], eax
mov dword [esp + 0x77c], eax
mov dword [esp + 0x1e0], edx
mov esi, dword [0x69b50c]
mov edi, dword [0x69b508]
mov eax, dword [0x69b504]
mov edx, dword [0x69b500]
mov dword [esp + 0x87c], esi
mov esi, 4
mov dword [esp + 0x880], edi
lea edi, [esp + 0x888]
mov dword [edi - 4], eax
mov dword [edi], edx
jmp 0x60b0ae
mov edx, edi
neg edx
mov esi, edx
sar esi, 3
mov dword [esp + 0x240], 4
movzx ecx, word [esi*2 + 0x69b420]
lea eax, [esi + 1]
shr ecx, 5
cmp ecx, edx
jl 0x60cd87
mov eax, esi
movzx ecx, word [eax*2 + 0x69b420]
mov eax, ecx
and eax, 0x1f
shr ecx, 5
add edi, ecx
movsx ecx, word [eax*2 + 0x69b666]
shl eax, 4
mov edx, dword [eax + 0x69b38c]
mov dword [esp + 0x7fc], edx
mov esi, dword [eax + 0x69b388]
mov edx, dword [eax + 0x69b384]
mov eax, dword [eax + 0x69b380]
mov dword [esp + 0x800], esi
mov dword [esp + 0x804], edx
mov dword [esp + 0x808], eax
jmp 0x60a9e2
mov dword [esp + 0x848], eax
mov dword [esp + 0x844], eax
mov dword [esp + 0x840], eax
mov dword [esp + 0x83c], eax
jmp 0x60875c