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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xadc
mov ebx, dword [esp + 0xaf0]
add ebx, 0x1eb8
mov ecx, dword [ebx + 0x7c]
mov dword [esp + 0xb8], ebx
test ecx, ecx
mov dword [esp + 0xc4], ecx
sete dl
xor eax, eax
cmp dword [esp + 0xb14], 0x10
sete al
test eax, edx
je 0x8f4eab
mov edi, dword [esp + 0xb10]
test edi, edi
jne 0x8f4eab
mov dword [esp + 0xad0], 0
mov dword [esp + 0xad4], 0
mov ebp, dword [esp + 0xaf0]
mov edi, dword [ebp + 0xa0]
mov ebx, dword [esp + 0xaf0]
mov ecx, dword [esp + 0xb8]
mov esi, dword [ebx + 0x2018]
mov eax, dword [ecx + 0x64]
mov dword [esp + 0xab8], edi
imul edi, dword [ebx + 0x201c]
mov edx, dword [esp + 0xb8]
mov ebx, dword [esp + 0xb8]
add edi, esi
mov dword [esp + 0xaac], eax
mov esi, dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
mov ebp, dword [edx + 0x90]
mov ecx, dword [ebx + 0x94]
mov edx, dword [eax + 0x9c]
mov dword [esp + 0xab4], edi
mov edi, dword [esi + 0x98]
mov dword [esp + 0xaa8], ebp
mov dword [esp + 0xaa4], edi
mov ebp, dword [esp + 0xb8]
mov dword [esp + 0xaa0], ecx
mov dword [esp + 0xa9c], edx
mov edi, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xb8]
mov esi, dword [ebp + 0x150]
mov eax, dword [ecx + 0xa4]
mov ebx, dword [edi + 0xa0]
mov ebp, dword [edx + 0x60]
mov dword [esp + 0xa98], esi
mov dword [esp + 0xa90], eax
mov dword [esp + 0xa94], ebx
mov dword [esp + 0xa8c], ebp
mov eax, dword [esp + 0xb8]
mov esi, dword [eax + 0x88]
test esi, esi
jne 0x8f5384
mov ebp, dword [esp + 0xb8]
mov esi, dword [esp + 0xaf0]
mov ebx, dword [ebp + 0x70]
mov edi, dword [esi + 0xc88]
mov dword [esp + 0xabc], ebx
mov dword [esp + 0xab0], edi
mov eax, dword [esp + 0xb8]
call fcn.008c2557
mov edx, dword [esp + 0xab0]
test edx, edx
mov dword [esp + 0xac0], eax
je 0x8fc7c6
mov edi, dword [esp + 0xb8]
mov esi, dword [esp + 0xb04]
mov ecx, dword [esp + 0xb00]
mov ebx, dword [edi + 0x128]
shl esi, 4
shl ecx, 4
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], ebx
mov eax, dword [esi + edi + 0xe8]
mov dword [esp + 8], eax
mov ebp, dword [ecx + edi + 0xa8]
mov dword [esp + 4], ebp
mov ebp, dword [esp + 0xaf0]
mov dword [esp], ebp
call dword [esp + 0xab0]
mov edx, dword [esp + 0xac0]
mov ebx, dword [esp + 0xa8c]
mov ecx, eax
mov dword [esp + 0xac4], eax
mov eax, dword [esp + 0xaac]
mov dword [ebx], edx
mov dword [eax], ecx
cmp dword [ebp + 0xab0], 3
je 0x8f66bd
mov edi, dword [esp + 0xaf0]
test byte [edi + 0x3c], 0x40
je 0x8f4578
mov esi, dword [esp + 0xa98]
mov ebx, dword [esp + 0xa94]
mov ebp, dword [esp + 0xa90]
movzx eax, byte [ebx + esi]
movzx edx, byte [ebp + esi]
add eax, edx
imul eax, dword [esp + 0xabc]
add ecx, eax
mov dword [esp + 0xac4], ecx
mov edi, dword [esp + 0xaf0]
mov ecx, dword [edi + 0x2910]
test ecx, ecx
je 0x8f561e
mov ebp, dword [esp + 0xafc]
mov edx, dword [esp + 0xac0]
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
sar esi, 1
sar ebx, 1
mov eax, esi
lea edi, [ebx + esi*8]
shl eax, 0xb
and edi, 0x3f
add eax, ebx
cmp ebx, dword [esp + 0xaa8]
lea ebp, [eax + edx]
jl 0x8ffeae
cmp ebx, dword [esp + 0xaa0]
jg 0x8ffe92
cmp esi, dword [esp + 0xaa4]
jl 0x8ffe76
cmp esi, dword [esp + 0xa9c]
jg 0x8ffe5a
mov ecx, dword [esp + 0xa8c]
cmp dword [ecx + edi*4], ebp
je 0x8f46fe
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xb00]
mov eax, dword [ecx + 0x128]
mov ecx, dword [esp + 0xb04]
shl edx, 4
shl ecx, 4
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0xb8]
imul esi, eax
add ebx, dword [ecx + edx + 0xe8]
mov ecx, dword [esp + 0x38]
lea eax, [ebx + esi]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xaf0]
mov ebx, dword [ecx + edx + 0xa8]
mov dword [esp], eax
mov dword [esp + 4], ebx
call dword [esp + 0xab0]
mov edx, dword [esp + 0xa8c]
mov esi, dword [esp + 0xaac]
mov dword [edx + edi*4], ebp
mov ecx, dword [esp + 0xafc]
mov dword [esi + edi*4], eax
mov esi, dword [ecx + 8]
mov ebx, dword [esp + 0xa98]
mov edi, dword [esp + 0xafc]
sar esi, 1
mov ebp, dword [esp + 0xa98]
lea edx, [esi + esi]
sub edx, dword [esp + 0xa94]
movzx ecx, byte [ebx + edx]
mov ebx, dword [edi + 0xc]
sar ebx, 1
lea edx, [ebx + ebx]
sub edx, dword [esp + 0xa90]
movzx edi, byte [ebp + edx]
mov ebp, dword [esp + 0xad0]
mov edx, dword [esp + 0xad4]
add ecx, edi
mov edi, dword [esp + 0xac4]
imul ecx, dword [esp + 0xabc]
add eax, ecx
cmp eax, edi
cmovl edi, eax
cmovl ebp, esi
cmovl edx, ebx
mov dword [esp + 0xac4], edi
mov dword [esp + 0xad0], ebp
mov dword [esp + 0xad4], edx
mov ebp, dword [esp + 0xab4]
mov ebx, dword [esp + 0xb08]
mov edi, dword [esp + 0xb08]
movsx esi, word [ebx + ebp*4]
movsx eax, word [edi + ebp*4 + 2]
imul esi, dword [esp + 0xb0c]
imul eax, dword [esp + 0xb0c]
lea edx, [esi + 0x8000]
add eax, 0x8000
sar edx, 0x10
sar eax, 0x10
cmp edx, dword [esp + 0xaa0]
jle 0x8f671a
mov ecx, dword [esp + 0xaa0]
cmp dword [esp + 0xaa8], ecx
jle 0x8f6704
mov esi, dword [esp + 0xaa8]
cmp eax, dword [esp + 0xa9c]
jle 0x8f66f8
mov edx, dword [esp + 0xa9c]
cmp dword [esp + 0xaa4], edx
jle 0x8f66e2
mov ebx, dword [esp + 0xaa4]
mov eax, ebx
mov edi, dword [esp + 0xac0]
shl eax, 0xb
add eax, esi
lea ebp, [eax + edi]
lea edi, [esi + ebx*8]
and edi, 0x3f
cmp esi, dword [esp + 0xaa8]
jl 0x90086d
cmp esi, dword [esp + 0xaa0]
jg 0x900851
cmp ebx, dword [esp + 0xaa4]
jl 0x900835
cmp ebx, dword [esp + 0xa9c]
jg 0x900819
mov ecx, dword [esp + 0xa8c]
cmp dword [ecx + edi*4], ebp
je 0x8f48cd
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb00]
mov edx, dword [eax + 0x128]
shl ecx, 4
mov eax, dword [esp + 0xb04]
shl eax, 4
mov dword [esp + 0x38], ecx
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0xb8]
imul edx, ebx
mov eax, dword [eax + ecx + 0xe8]
add eax, esi
add eax, edx
mov edx, dword [esp + 0x38]
mov dword [esp + 8], eax
mov eax, dword [edx + ecx + 0xa8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xaf0]
mov dword [esp], eax
call dword [esp + 0xab0]
mov ecx, dword [esp + 0xa8c]
lea edx, [esi + esi]
mov dword [ecx + edi*4], ebp
mov ebp, dword [esp + 0xaac]
lea ecx, [ebx + ebx]
mov dword [ebp + edi*4], eax
sub edx, dword [esp + 0xa94]
mov edi, dword [esp + 0xa98]
sub ecx, dword [esp + 0xa90]
movzx ebp, byte [edi + edx]
movzx edx, byte [edi + ecx]
mov edi, dword [esp + 0xad0]
add ebp, edx
mov edx, dword [esp + 0xad4]
imul ebp, dword [esp + 0xabc]
add eax, ebp
mov ebp, dword [esp + 0xac4]
cmp eax, ebp
cmovl ebp, eax
cmovl edi, esi
cmovl edx, ebx
mov eax, edi
mov dword [esp + 0xac4], ebp
mov dword [esp + 0xad0], eax
mov dword [esp + 0xad4], edx
cmp dword [esp + 0xac4], 0x400
jle 0x8f4cab
mov ebp, dword [esp + 0xb8]
mov edi, dword [ebp + 0x88]
test edi, edi
jne 0x8f6726
mov esi, dword [esp + 0xb08]
mov ebp, dword [esp + 0xab4]
mov ebx, dword [esp + 0xab4]
movsx edi, word [esi + ebp*4 + 4]
movsx eax, word [esi + ebx*4 + 6]
imul edi, dword [esp + 0xb0c]
imul eax, dword [esp + 0xb0c]
lea edx, [edi + 0x8000]
add eax, 0x8000
sar edx, 0x10
sar eax, 0x10
cmp edx, dword [esp + 0xaa0]
jle 0x8f81d0
mov ecx, dword [esp + 0xaa0]
cmp dword [esp + 0xaa8], ecx
jle 0x8f81fe
mov esi, dword [esp + 0xaa8]
cmp eax, dword [esp + 0xa9c]
jle 0x8f81f2
mov edx, dword [esp + 0xa9c]
cmp dword [esp + 0xaa4], edx
jle 0x8f81dc
mov ebx, dword [esp + 0xaa4]
mov eax, ebx
mov edi, dword [esp + 0xac0]
shl eax, 0xb
add eax, esi
lea ebp, [eax + edi]
lea edi, [esi + ebx*8]
and edi, 0x3f
cmp esi, dword [esp + 0xaa8]
jl 0x901a43
cmp esi, dword [esp + 0xaa0]
jg 0x901a7b
cmp ebx, dword [esp + 0xaa4]
jl 0x901a5f
cmp ebx, dword [esp + 0xa9c]
jg 0x901a27
mov ecx, dword [esp + 0xa8c]
cmp dword [ecx + edi*4], ebp
je 0x8f4ac1
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb00]
mov edx, dword [eax + 0x128]
shl ecx, 4
mov eax, dword [esp + 0xb04]
shl eax, 4
mov dword [esp + 0x38], ecx
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0xb8]
imul edx, ebx
mov eax, dword [eax + ecx + 0xe8]
add eax, esi
add eax, edx
mov edx, dword [esp + 0x38]
mov dword [esp + 8], eax
mov eax, dword [edx + ecx + 0xa8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xaf0]
mov dword [esp], eax
call dword [esp + 0xab0]
mov edx, dword [esp + 0xa8c]
lea ecx, [esi + esi]
mov dword [edx + edi*4], ebp
mov ebp, dword [esp + 0xaac]
lea edx, [ebx + ebx]
mov dword [ebp + edi*4], eax
sub ecx, dword [esp + 0xa94]
mov edi, dword [esp + 0xa98]
sub edx, dword [esp + 0xa90]
movzx ebp, byte [edi + ecx]
movzx ecx, byte [edi + edx]
mov edi, dword [esp + 0xad0]
mov edx, dword [esp + 0xad4]
add ebp, ecx
imul ebp, dword [esp + 0xabc]
add eax, ebp
mov ebp, dword [esp + 0xac4]
cmp eax, ebp
cmovl ebp, eax
cmovl edi, esi
cmovl edx, ebx
mov dword [esp + 0xac4], ebp
mov dword [esp + 0xad0], edi
mov dword [esp + 0xad4], edx
mov ebx, dword [esp + 0xaf0]
mov esi, dword [ebx + 0x201c]
add esi, 1
cmp esi, dword [ebx + 0xd0]
jge 0x8f4cab
mov edi, dword [esp + 0xab8]
mov ebp, dword [esp + 0xb08]
add edi, dword [esp + 0xab4]
movsx edx, word [ebp + edi*4]
movsx eax, word [ebp + edi*4 + 2]
imul edx, dword [esp + 0xb0c]
imul eax, dword [esp + 0xb0c]
add edx, 0x8000
add eax, 0x8000
sar edx, 0x10
sar eax, 0x10
cmp edx, dword [esp + 0xaa0]
jle 0x8f9a09
mov ecx, dword [esp + 0xaa0]
cmp dword [esp + 0xaa8], ecx
jle 0x8f99f3
mov esi, dword [esp + 0xaa8]
cmp eax, dword [esp + 0xa9c]
jle 0x8f99e7
mov edx, dword [esp + 0xa9c]
cmp dword [esp + 0xaa4], edx
jle 0x8f99d1
mov esi, dword [esp + 0xb8]
mov edi, dword [esi]
mov esi, dword [edi + 0x1dc]
test esi, esi
je 0x8f4dd5
mov ecx, dword [esp + 0xaf0]
xor ebx, ebx
mov edx, dword [ecx + 0x2018]
mov edi, edx
sub edi, esi
cmovs edi, ebx
mov dword [esp + 0x4c], edi
mov edi, ecx
mov ecx, dword [ecx + 0x201c]
mov ebp, ecx
mov eax, dword [edi + 0x98]
sub ebp, esi
cmovns ebx, ebp
lea ebp, [edx + esi + 1]
mov edx, dword [edi + 0x9c]
cmp eax, ebp
cmovle ebp, eax
mov eax, ebx
mov dword [esp + 0xa78], ebp
lea ebp, [ecx + esi + 1]
cmp edx, ebp
cmovle ebp, edx
cmp ebx, ebp
mov dword [esp + 0xa74], ebp
jge 0x8f4dd5
mov ebx, dword [esp + 0xb04]
mov esi, dword [esp + 0xb00]
shl ebx, 4
shl esi, 4
mov dword [esp + 0x54], ebx
mov dword [esp + 0x50], esi
mov edi, dword [esp + 0x4c]
lea edx, [eax + 1]
cmp edi, dword [esp + 0xa78]
mov dword [esp + 0x74], edx
jge 0x8f4dc4
mov ecx, dword [esp + 0x74]
mov ebx, dword [esp + 0xb08]
mov esi, dword [esp + 0xb08]
imul ecx, dword [esp + 0xab8]
lea edx, [ecx + edi + 1]
movsx eax, word [ebx + edx*4]
movsx ebp, word [esi + edx*4 + 2]
imul eax, dword [esp + 0xb0c]
imul ebp, dword [esp + 0xb0c]
lea ebx, [eax + 0x8000]
lea esi, [ebp + 0x8000]
sar ebx, 0x10
sar esi, 0x10
cmp ebx, dword [esp + 0xaa0]
setg cl
cmp ebx, dword [esp + 0xaa8]
setl al
or eax, ecx
test al, 1
je 0x8f54aa
add edi, 1
cmp edi, dword [esp + 0xa78]
jl 0x8f4d51
mov eax, dword [esp + 0x74]
cmp eax, dword [esp + 0xa74]
jl 0x8f4d3d
mov edi, dword [esp + 0xb8]
mov eax, dword [edi + 0x8c]
cmp eax, 0xffffffff
je 0x8f7dc4
jl 0x8f74ee
cmp eax, 1
jle 0x8f8c2e
cmp eax, 0x400
jg 0x8f8214
cmp eax, 0x300
jg 0x8f73c7
cmp eax, 0x200
jg 0x8f9929
cmp eax, 0x100
jle 0x8f9563
mov eax, dword [esp + 0xb00]
mov edi, dword [esp + 0xabc]
mov esi, dword [esp + 0xb04]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0xac4]
lea edx, [esp + 0xad0]
mov eax, dword [esp + 0xaf0]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x10
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edi
mov dword [esp + 8], esi
mov dword [esp], ecx
call fcn.008de422
mov edx, eax
mov ebx, dword [esp + 0xad0]
mov edi, dword [esp + 0xaf4]
mov esi, dword [esp + 0xaf8]
mov dword [edi], ebx
mov eax, dword [esp + 0xad4]
mov dword [esi], eax
mov eax, edx
add esp, 0xadc
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0xac8], 0
mov dword [esp + 0xacc], 0
mov ecx, dword [esp + 0xaf0]
mov ebx, dword [ecx + 0xa0]
mov ebp, dword [esp + 0xaf0]
mov edi, dword [esp + 0xb8]
mov edx, dword [ebp + 0x2018]
mov dword [esp + 0xa1c], ebx
imul ebx, dword [ebp + 0x201c]
add ebx, edx
mov eax, dword [edi + 0x64]
mov esi, dword [esp + 0xb8]
mov edx, dword [esp + 0xb8]
mov dword [esp + 0xa18], ebx
mov dword [esp + 0xa0c], eax
mov ebx, dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
mov ecx, dword [esi + 0x90]
mov ebp, dword [edx + 0x98]
mov edi, dword [ebx + 0x94]
mov esi, dword [eax + 0x9c]
mov dword [esp + 0xa08], ecx
mov dword [esp + 0xa04], ebp
mov ecx, dword [esp + 0xb8]
mov ebp, dword [esp + 0xb8]
mov dword [esp + 0xa00], edi
mov dword [esp + 0x9fc], esi
mov edi, dword [esp + 0xb8]
mov esi, dword [esp + 0xb8]
mov edx, dword [ecx + 0x150]
mov ebx, dword [ebp + 0xa0]
mov eax, dword [edi + 0xa4]
mov ecx, dword [esi + 0x60]
mov dword [esp + 0x9f8], edx
mov dword [esp + 0x9f4], ebx
mov dword [esp + 0x9f0], eax
mov dword [esp + 0x9ec], ecx
mov edx, dword [esp + 0xc4]
mov ebx, dword [esp + 0xb8]
and edx, 1
mov ebp, dword [ebx + 0x88]
add edx, 1
test ebp, ebp
mov dword [esp + 0x9e8], edx
jne 0x8f50ff
mov eax, dword [esp + 0xaf0]
mov ebp, dword [esp + 0xb8]
mov edi, dword [esp + 0xb10]
mov esi, dword [esp + 0xb10]
mov edx, dword [ebp + 0x70]
mov ebx, dword [eax + edi*4 + 0xc88]
mov ecx, dword [eax + esi*4 + 0xc8c]
mov dword [esp + 0xa20], edx
mov dword [esp + 0xa14], ebx
mov dword [esp + 0xa10], ecx
mov eax, dword [esp + 0xb8]
call fcn.008c2557
mov ecx, dword [esp + 0xa14]
test ecx, ecx
mov dword [esp + 0xa24], eax
je 0x8fa0fd
mov ecx, dword [esp + 0xb04]
mov ebp, dword [esp + 0xb8]
mov edx, dword [esp + 0xb8]
shl ecx, 4
mov edi, dword [ebp + 0x128]
mov ebx, dword [esp + 0xb8]
lea ebp, [ecx + edx]
mov ecx, dword [esp + 0xb00]
mov esi, dword [ebx + 0x12c]
shl ecx, 4
lea eax, [ebp + 0xe8]
mov dword [esp + 0x9e4], edi
mov ebx, dword [esp + 0xc4]
mov edi, dword [esp + 0xc4]
lea edx, [ecx + edx]
and edi, 1
and ebx, 2
mov dword [esp + 0x9dc], eax
test byte [esp + 0xc4], 4
lea eax, [edx + 0xa8]
mov dword [esp + 0x9e0], esi
mov dword [esp + 0x9d8], eax
lea esi, [edi + 1]
je 0x8f513f
mov edx, dword [esp + 0xb8]
mov eax, dword [edx + 0x90]
test eax, eax
jg 0x8f50e3
mov ebx, dword [edx + 0x94]
mov ecx, esi
shl ebx, cl
cmp ebx, 0
jl 0x8f50e3
mov eax, dword [edx + 0x98]
test eax, eax
jle 0x8f758d
mov dword [esp + 8], 0x7d
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd30f5c
call fcn.00a5b730
mov ebp, dword [ebx + 0x6c]
mov edx, dword [esp + 0xb10]
mov ebx, dword [esp + 0xaf0]
mov eax, dword [esp + 0xb10]
mov edi, dword [ebx + edx*4 + 0xc70]
mov dword [esp + 0xa20], ebp
mov esi, dword [ebx + eax*4 + 0xc74]
mov dword [esp + 0xa14], edi
mov dword [esp + 0xa10], esi
jmp 0x8f500b
mov ecx, dword [esp + 0xb14]
mov edi, dword [esp + 0x9e4]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], edi
mov ecx, dword [esp + 0xaf0]
mov eax, dword [ebp + 0xe8]
mov dword [esp + 8], eax
mov esi, dword [edx + 0xa8]
mov dword [esp], ecx
mov dword [esp + 4], esi
call dword [esp + 0xa14]
test ebx, ebx
mov ebp, eax
jne 0x8f53a7
mov ecx, dword [esp + 0xa24]
mov eax, dword [esp + 0x9ec]
mov ebx, dword [esp + 0xa0c]
mov dword [eax], ecx
mov esi, dword [esp + 0xaf0]
mov dword [ebx], ebp
cmp dword [esi + 0xab0], 3
mov dword [esp + 0xa28], ebp
je 0x8f66cc
mov esi, dword [esp + 0xaf0]
test byte [esi + 0x3c], 0x40
je 0x8f51f5
mov ebx, dword [esp + 0x9f8]
mov edi, dword [esp + 0x9f4]
mov ecx, dword [esp + 0x9f0]
movzx eax, byte [edi + ebx]
movzx edx, byte [ecx + ebx]
add eax, edx
imul eax, dword [esp + 0xa20]
add ebp, eax
mov dword [esp + 0xa28], ebp
mov esi, dword [esp + 0xaf0]
mov ebp, dword [esi + 0x2910]
test ebp, ebp
je 0x8f64ed
mov ebp, dword [esp + 0xafc]
movzx ecx, byte [esp + 0x9e8]
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
sar edi, cl
sar ebx, cl
mov edx, edi
lea eax, [ebx + edi*8]
shl edx, 0xb
and eax, 0x3f
add edx, ebx
mov dword [esp + 0x988], eax
add edx, dword [esp + 0xa24]
cmp ebx, dword [esp + 0xa08]
mov dword [esp + 0x98c], edx
jl 0x8ff8ab
cmp ebx, dword [esp + 0xa00]
jg 0x8ffba9
cmp edi, dword [esp + 0xa04]
jl 0x8ffb8d
cmp edi, dword [esp + 0x9fc]
jg 0x8ffb71
mov esi, dword [esp + 0x98c]
mov edx, dword [esp + 0x988]
mov eax, dword [esp + 0x9ec]
cmp dword [eax + edx*4], esi
je 0x8f6e7d
mov edx, dword [esp + 0xb8]
mov esi, dword [esp + 0xb8]
mov eax, dword [esp + 0xc4]
mov ebp, dword [edx + 0x12c]
mov ecx, dword [esi + 0x128]
and eax, 2
mov dword [esp + 0x980], ebp
mov ebp, dword [esp + 0xc4]
mov dword [esp + 0x984], ecx
and ebp, 1
mov dword [esp + 0x30], eax
mov esi, ebx
mov dword [esp + 0x97c], ebp
add ebp, 1
mov edx, edi
mov ecx, ebp
mov eax, dword [esp + 0xb04]
shl esi, cl
shl edx, cl
shl eax, 4
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x974], edx
mov dword [esp + 0x978], esi
lea edx, [eax + ecx]
mov eax, dword [esp + 0xb00]
shl eax, 4
lea esi, [edx + 0xe8]
test byte [esp + 0xc4], 4
lea ecx, [eax + ecx]
mov dword [esp + 0x970], esi
lea esi, [ecx + 0xa8]
mov dword [esp + 0x96c], esi
je 0x8f7c1a
mov edx, dword [esp + 0xb8]
cmp dword [edx + 0x90], ebx
jg 0x8f5368
mov ebx, dword [edx + 0x94]
mov ecx, ebp
shl ebx, cl
cmp ebx, dword [esp + 0x978]
jge 0x8f6b33
mov dword [esp + 8], 0x7d
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd30f5c
call fcn.00a5b730
mov ecx, dword [eax + 0x6c]
mov eax, dword [esp + 0xaf0]
mov edx, dword [eax + 0xc70]
mov dword [esp + 0xabc], ecx
mov dword [esp + 0xab0], edx
jmp 0x8f4495
mov ebx, dword [esp + 0xb10]
mov esi, dword [esp + 0x9e4]
mov edi, dword [esp + 0xb8]
shl ebx, 4
shl esi, 4
mov eax, dword [esp + 0x9e0]
mov edx, ebx
add esi, dword [edi + 0x58]
mov ecx, dword [esp + 0x9dc]
add edx, dword [edi + 0x13c]
mov edi, dword [esp + 0xb14]
mov dword [esp + 8], eax
sar edi, 1
mov dword [esp + 0xc], edi
mov eax, dword [ecx + 4]
mov dword [esp], esi
mov dword [esp + 4], eax
call dword [edx + 0x10]
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0x9e0]
add ebx, dword [edx + 0x13c]
mov eax, dword [esp + 0x9dc]
mov dword [esp + 0xc], edi
mov dword [esp + 8], ecx
lea ecx, [esi + 8]
mov edx, dword [eax + 8]
mov dword [esp + 0x990], ecx
mov dword [esp], ecx
mov dword [esp + 4], edx
call dword [ebx + 0x10]
mov eax, dword [esp + 0x9e0]
mov dword [esp + 0x10], edi
mov edx, dword [esp + 0x9d8]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xaf0]
mov ebx, dword [edx + 4]
mov dword [esp + 4], esi
mov dword [esp], ecx
mov dword [esp + 8], ebx
call dword [esp + 0xa10]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x9e0]
lea ebx, [ebp + eax]
mov dword [esp + 0xc], edi
mov eax, dword [esp + 0x9d8]
mov esi, dword [eax + 8]
mov ebp, dword [esp + 0x990]
mov edx, dword [esp + 0xaf0]
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp], edx
call dword [esp + 0xa10]
lea ebp, [ebx + eax]
jmp 0x8f5184
cmp esi, dword [esp + 0xa9c]
setg dl
cmp esi, dword [esp + 0xaa4]
setl al
or eax, edx
test al, 1
jne 0x8f4db8
mov ebp, esi
shl ebp, 0xb
add ebp, ebx
add ebp, dword [esp + 0xac0]
mov dword [esp + 0xa70], ebp
lea ebp, [ebx + esi*8]
and ebp, 0x3f
cmp ebx, dword [esp + 0xaa8]
jl 0x8fb2aa
cmp ebx, dword [esp + 0xaa0]
jg 0x8fb28e
cmp esi, dword [esp + 0xaa4]
jl 0x8fb272
cmp esi, dword [esp + 0xa9c]
jg 0x8fb2c6
mov ecx, dword [esp + 0xa70]
mov eax, dword [esp + 0xa8c]
cmp dword [eax + ebp*4], ecx
je 0x8f4db8
mov edx, dword [esp + 0xb8]
mov ecx, dword [edx + 0x128]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0xb8]
mov ecx, dword [eax + edx + 0xe8]
mov edx, dword [esp + 0x24]
add ecx, ebx
imul edx, esi
mov eax, ecx
mov ecx, dword [esp + 0xb8]
add eax, edx
mov edx, dword [esp + 0x50]
mov dword [esp + 8], eax
mov eax, dword [edx + ecx + 0xa8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xaf0]
mov dword [esp], eax
call dword [esp + 0xab0]
mov ecx, dword [esp + 0xa70]
mov edx, dword [esp + 0xa8c]
mov dword [edx + ebp*4], ecx
mov ecx, dword [esp + 0xaac]
lea edx, [ebx + ebx]
mov dword [ecx + ebp*4], eax
sub edx, dword [esp + 0xa94]
mov ebp, dword [esp + 0xa98]
movzx ecx, byte [ebp + edx]
lea edx, [esi + esi]
sub edx, dword [esp + 0xa90]
movzx edx, byte [ebp + edx]
mov ebp, dword [esp + 0xac4]
add ecx, edx
mov edx, dword [esp + 0xad4]
imul ecx, dword [esp + 0xabc]
add eax, ecx
mov ecx, dword [esp + 0xad0]
cmp eax, ebp
cmovl ebp, eax
cmovl ecx, ebx
cmovl edx, esi
add edi, 1
mov dword [esp + 0xac4], ebp
mov dword [esp + 0xad0], ecx
mov dword [esp + 0xad4], edx
jmp 0x8f4dbb
mov edi, dword [esp + 0xaf0]
mov ebx, dword [edi]
mov esi, dword [ebx + 0x308]
shl esi, 8
sar esi, 8
cmp esi, dword [esp + 0xac4]
jle 0x8f565b
mov ebp, dword [esp + 0xafc]
mov edx, dword [ebp + 0xc]
or edx, dword [ebp + 8]
or edx, dword [ebp + 0x10]
or edx, dword [ebp + 0x14]
or edx, dword [ebp + 0x18]
or edx, dword [ebp + 0x1c]
je 0x8f6ac7
mov edx, dword [esp + 0xafc]
mov ebx, dword [esp + 0xafc]
mov ebp, dword [edx + 0x24]
mov esi, ebp
mov dword [esp + 0xc8], ebp
mov ebp, dword [ebx + 0x20]
sar esi, 1
mov ebx, ebp
mov edi, esi
sar ebx, 1
shl edi, 0xb
add edi, ebx
add edi, dword [esp + 0xac0]
mov dword [esp + 0xa88], edi
lea edi, [ebx + esi*8]
and edi, 0x3f
cmp ebx, dword [esp + 0xaa8]
jl 0x900994
cmp ebx, dword [esp + 0xaa0]
jg 0x9008a5
cmp esi, dword [esp + 0xaa4]
jl 0x900889
cmp esi, dword [esp + 0xa9c]
jg 0x900940
mov eax, dword [esp + 0xa88]
mov ecx, dword [esp + 0xa8c]
cmp dword [ecx + edi*4], eax
je 0x8f57e8
mov ebp, dword [esp + 0xb8]
mov edx, dword [esp + 0xb04]
mov ecx, dword [esp + 0xb00]
mov eax, dword [ebp + 0x128]
shl edx, 4
shl ecx, 4
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], eax
mov ebp, dword [esp + 0xb8]
imul esi, eax
add ebx, dword [edx + ebp + 0xe8]
lea eax, [ebx + esi]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xaf0]
mov edx, dword [ecx + ebp + 0xa8]
mov dword [esp], eax
mov dword [esp + 4], edx
call dword [esp + 0xab0]
mov ecx, dword [esp + 0xa88]
mov ebx, dword [esp + 0xa8c]
mov ebp, dword [esp + 0xaac]
mov dword [ebx + edi*4], ecx
mov esi, dword [esp + 0xafc]
mov dword [ebp + edi*4], eax
mov ebx, dword [esp + 0xafc]
mov edi, dword [esp + 0xa98]
mov ebp, dword [esi + 0x20]
mov esi, ebp
sar esi, 1
lea edx, [esi + esi]
sub edx, dword [esp + 0xa94]
movzx ecx, byte [edi + edx]
mov edx, dword [ebx + 0x24]
mov ebx, edx
mov dword [esp + 0xc8], edx
sar ebx, 1
lea edx, [ebx + ebx]
sub edx, dword [esp + 0xa90]
movzx edx, byte [edi + edx]
mov edi, dword [esp + 0xac4]
add ecx, edx
mov edx, dword [esp + 0xad4]
imul ecx, dword [esp + 0xabc]
add eax, ecx
mov ecx, dword [esp + 0xad0]
cmp eax, edi
cmovl edi, eax
cmovl ecx, esi
cmovl edx, ebx
mov dword [esp + 0xac4], edi
mov dword [esp + 0xad0], ecx
mov dword [esp + 0xad4], edx
mov edx, ebp
mov eax, dword [esp + 0xc8]
sar eax, 1
sar edx, 1
sub eax, 1
cmp edx, dword [esp + 0xaa0]
jle 0x8f745a
mov edi, dword [esp + 0xaa0]
cmp dword [esp + 0xaa8], edi
jle 0x8f7444
mov esi, dword [esp + 0xaa8]
cmp eax, dword [esp + 0xa9c]
jle 0x8f7438
mov ebx, dword [esp + 0xa9c]
cmp dword [esp + 0xaa4], ebx
jle 0x8f7422
mov ebx, dword [esp + 0xaa4]
mov ecx, ebx
lea edi, [esi + ebx*8]
shl ecx, 0xb
and edi, 0x3f
add ecx, esi
add ecx, dword [esp + 0xac0]
cmp esi, dword [esp + 0xaa8]
mov dword [esp + 0xa84], ecx
jl 0x90105b
cmp esi, dword [esp + 0xaa0]
jg 0x90103f
cmp ebx, dword [esp + 0xaa4]
jl 0x901023
cmp ebx, dword [esp + 0xa9c]
jg 0x901007
mov edx, dword [esp + 0xa84]
mov eax, dword [esp + 0xa8c]
cmp dword [eax + edi*4], edx
je 0x8f59ab
mov ebp, dword [esp + 0xb8]
mov eax, dword [esp + 0xb04]
mov ecx, dword [esp + 0xb00]
mov edx, dword [ebp + 0x128]
shl eax, 4
shl ecx, 4
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], edx
mov ebp, dword [esp + 0xb8]
imul edx, ebx
mov eax, dword [eax + ebp + 0xe8]
add eax, esi
add eax, edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0xaf0]
mov edx, dword [ecx + ebp + 0xa8]
mov dword [esp], eax
mov dword [esp + 4], edx
call dword [esp + 0xab0]
mov ecx, dword [esp + 0xa84]
mov edx, dword [esp + 0xa8c]
mov dword [edx + edi*4], ecx
mov ebp, dword [esp + 0xaac]
lea edx, [esi + esi]
lea ecx, [ebx + ebx]
mov dword [ebp + edi*4], eax
sub edx, dword [esp + 0xa94]
mov edi, dword [esp + 0xa98]
sub ecx, dword [esp + 0xa90]
movzx ebp, byte [edi + edx]
movzx edx, byte [edi + ecx]
mov ecx, dword [esp + 0xad0]
add ebp, edx
mov edx, dword [esp + 0xad4]
imul ebp, dword [esp + 0xabc]
add eax, ebp
mov ebp, dword [esp + 0xac4]
cmp eax, ebp
cmovl ebp, eax
cmovl ecx, esi
cmovl edx, ebx
mov dword [esp + 0xad0], ecx
mov dword [esp + 0xad4], edx
mov edi, dword [esp + 0xafc]
mov dword [esp + 0xac4], ebp
mov esi, dword [esp + 0xafc]
mov ebp, dword [edi + 0x24]
mov dword [esp + 0xc8], ebp
mov ebp, dword [esi + 0x20]
mov edx, ebp
mov eax, dword [esp + 0xc8]
sar eax, 1
sar edx, 1
add eax, 1
cmp edx, dword [esp + 0xaa0]
jle 0x8f749e
mov esi, dword [esp + 0xaa0]
cmp dword [esp + 0xaa8], esi
jle 0x8f7488
mov esi, dword [esp + 0xaa8]
cmp eax, dword [esp + 0xa9c]
jle 0x8f747c
mov ebx, dword [esp + 0xa9c]
cmp dword [esp + 0xaa4], ebx
jle 0x8f7466
mov ebx, dword [esp + 0xaa4]
mov edi, ebx
shl edi, 0xb
add edi, esi
add edi, dword [esp + 0xac0]
mov dword [esp + 0xa80], edi
lea edi, [esi + ebx*8]
and edi, 0x3f
cmp esi, dword [esp + 0xaa8]
jl 0x9010cb
cmp esi, dword [esp + 0xaa0]
jg 0x9010af
cmp ebx, dword [esp + 0xaa4]
jl 0x901093
cmp ebx, dword [esp + 0xa9c]
jg 0x901077
mov ecx, dword [esp + 0xa80]
mov edx, dword [esp + 0xa8c]
cmp dword [edx + edi*4], ecx
je 0x8f5b6e
mov ebp, dword [esp + 0xb8]
mov eax, dword [esp + 0xb04]
mov ecx, dword [esp + 0xb00]
mov edx, dword [ebp + 0x128]
shl eax, 4
shl ecx, 4
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], edx
mov ebp, dword [esp + 0xb8]
imul edx, ebx
mov eax, dword [eax + ebp + 0xe8]
add eax, esi
add eax, edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0xaf0]
mov edx, dword [ecx + ebp + 0xa8]
mov dword [esp], eax
mov dword [esp + 4], edx
call dword [esp + 0xab0]
mov ecx, dword [esp + 0xa80]
mov edx, dword [esp + 0xa8c]
mov dword [edx + edi*4], ecx
mov ebp, dword [esp + 0xaac]
lea edx, [esi + esi]
lea ecx, [ebx + ebx]
mov dword [ebp + edi*4], eax
sub edx, dword [esp + 0xa94]
mov edi, dword [esp + 0xa98]
sub ecx, dword [esp + 0xa90]
movzx ebp, byte [edi + edx]
movzx edx, byte [edi + ecx]
mov ecx, dword [esp + 0xad0]
add ebp, edx
mov edi, dword [esp + 0xad4]
imul ebp, dword [esp + 0xabc]
add eax, ebp
mov ebp, dword [esp + 0xac4]
cmp eax, ebp
cmovl ebp, eax
cmovl ecx, esi
cmovl edi, ebx
mov dword [esp + 0xad0], ecx
mov dword [esp + 0xad4], edi
mov esi, dword [esp + 0xafc]
mov dword [esp + 0xac4], ebp
mov eax, dword [esp + 0xafc]
mov ebp, dword [esi + 0x24]
mov dword [esp + 0xc8], ebp
mov ebp, dword [eax + 0x20]
mov eax, ebp
mov edx, dword [esp + 0xc8]
sar eax, 1
sar edx, 1
sub eax, 1
cmp eax, dword [esp + 0xaa0]
jle 0x8f74e2
mov esi, dword [esp + 0xaa0]
cmp dword [esp + 0xaa8], esi
jle 0x8f74cc
mov esi, dword [esp + 0xaa8]
cmp edx, dword [esp + 0xa9c]
jle 0x8f74c0
mov ebx, dword [esp + 0xa9c]
cmp dword [esp + 0xaa4], ebx
jle 0x8f74aa
mov ebx, dword [esp + 0xaa4]
mov edi, ebx
shl edi, 0xb
add edi, esi
add edi, dword [esp + 0xac0]
mov dword [esp + 0xa7c], edi
lea edi, [esi + ebx*8]
and edi, 0x3f
cmp esi, dword [esp + 0xaa8]
jl 0x90113b
cmp esi, dword [esp + 0xaa0]
jg 0x90111f
cmp ebx, dword [esp + 0xaa4]
jl 0x901103
cmp ebx, dword [esp + 0xa9c]
jg 0x9010e7
mov ecx, dword [esp + 0xa7c]
mov edx, dword [esp + 0xa8c]
cmp dword [edx + edi*4], ecx
je 0x8f5d31
mov ebp, dword [esp + 0xb8]
mov eax, dword [esp + 0xb04]
mov ecx, dword [esp + 0xb00]
mov edx, dword [ebp + 0x128]
shl eax, 4
shl ecx, 4
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], edx
mov ebp, dword [esp + 0xb8]
imul edx, ebx
mov eax, dword [eax + ebp + 0xe8]
add eax, esi
add eax, edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0xaf0]
mov edx, dword [ecx + ebp + 0xa8]
mov dword [esp], eax
mov dword [esp + 4], edx
call dword [esp + 0xab0]
mov ecx, dword [esp + 0xa7c]
mov edx, dword [esp + 0xa8c]
mov dword [edx + edi*4], ecx
mov ebp, dword [esp + 0xaac]
lea edx, [esi + esi]
lea ecx, [ebx + ebx]
mov dword [ebp + edi*4], eax
sub edx, dword [esp + 0xa94]
mov edi, dword [esp + 0xa98]
sub ecx, dword [esp + 0xa90]
movzx ebp, byte [edi + edx]
movzx edx, byte [edi + ecx]
mov ecx, dword [esp + 0xad0]
add ebp, edx
mov edi, dword [esp + 0xad4]
imul ebp, dword [esp + 0xabc]
add eax, ebp
mov ebp, dword [esp + 0xac4]
cmp eax, ebp
cmovl ebp, eax
cmovl ecx, esi
cmovl edi, ebx
mov dword [esp + 0xad0], ecx
mov dword [esp + 0xad4], edi
mov esi, dword [esp + 0xafc]
mov dword [esp + 0xac4], ebp
mov eax, dword [esp + 0xafc]
mov ebp, dword [esi + 0x24]
mov dword [esp + 0xc8], ebp
mov ebp, dword [eax + 0x20]
sar ebp, 1
mov edx, dword [esp + 0xc8]
lea eax, [ebp + 1]
sar edx, 1
cmp eax, dword [esp + 0xaa0]
jle 0x8f7581
mov esi, dword [esp + 0xaa0]
cmp dword [esp + 0xaa8], esi
jle 0x8f756b
mov esi, dword [esp + 0xaa8]
cmp edx, dword [esp + 0xa9c]
jle 0x8f755f
mov ebx, dword [esp + 0xa9c]
cmp dword [esp + 0xaa4], ebx
jle 0x8f7549
mov ebx, dword [esp + 0xaa4]
mov ecx, ebx
mov edi, dword [esp + 0xac0]
shl ecx, 0xb
add ecx, esi
lea ebp, [ecx + edi]
lea edi, [esi + ebx*8]
and edi, 0x3f
cmp esi, dword [esp + 0xaa8]
jl 0x9011ab
cmp esi, dword [esp + 0xaa0]
jg 0x90118f
cmp ebx, dword [esp + 0xaa4]
jl 0x901173
cmp ebx, dword [esp + 0xa9c]
jg 0x901157
mov edx, dword [esp + 0xa8c]
cmp dword [edx + edi*4], ebp
je 0x8f5ecd
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb00]
mov edx, dword [eax + 0x128]
shl ecx, 4
mov eax, dword [esp + 0xb04]
shl eax, 4
mov dword [esp + 0x38], ecx
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0xb8]
imul edx, ebx
mov eax, dword [eax + ecx + 0xe8]
add eax, esi
add eax, edx
mov edx, dword [esp + 0x38]
mov dword [esp + 8], eax
mov eax, dword [edx + ecx + 0xa8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xaf0]
mov dword [esp], eax
call dword [esp + 0xab0]
mov ecx, dword [esp + 0xa8c]
lea edx, [esi + esi]
mov dword [ecx + edi*4], ebp
mov ebp, dword [esp + 0xaac]
lea ecx, [ebx + ebx]
mov dword [ebp + edi*4], eax
sub edx, dword [esp + 0xa94]
mov edi, dword [esp + 0xa98]
sub ecx, dword [esp + 0xa90]
movzx ebp, byte [edi + edx]
movzx edx, byte [edi + ecx]
mov ecx, dword [esp + 0xad0]
mov edi, dword [esp + 0xad4]
add ebp, edx
imul ebp, dword [esp + 0xabc]
add eax, ebp
mov ebp, dword [esp + 0xac4]
cmp eax, ebp
cmovl ebp, eax
cmovl ecx, esi
cmovl edi, ebx
mov dword [esp + 0xac4], ebp
mov dword [esp + 0xad0], ecx
mov dword [esp + 0xad4], edi
mov esi, dword [esp + 0xb08]
mov ebp, dword [esp + 0xab4]
mov ebx, dword [esp + 0xab4]
movsx edi, word [esi + ebp*4]
movsx eax, word [esi + ebx*4 + 2]
imul edi, dword [esp + 0xb0c]
imul eax, dword [esp + 0xb0c]
lea edx, [edi + 0x8000]
add eax, 0x8000
sar edx, 0x10
sar eax, 0x10
cmp edx, dword [esp + 0xaa0]
jle 0x8f785d
mov ecx, dword [esp + 0xaa0]
cmp dword [esp + 0xaa8], ecx
jle 0x8f7847
mov esi, dword [esp + 0xaa8]
cmp eax, dword [esp + 0xa9c]
jle 0x8f783b
mov edx, dword [esp + 0xa9c]
cmp dword [esp + 0xaa4], edx
jle 0x8f7825
mov ebx, dword [esp + 0xaa4]
mov eax, ebx
mov edi, dword [esp + 0xac0]
shl eax, 0xb
add eax, esi
lea ebp, [eax + edi]
lea edi, [esi + ebx*8]
and edi, 0x3f
cmp esi, dword [esp + 0xaa8]
jl 0x900f97
cmp esi, dword [esp + 0xaa0]
jg 0x900f7b
cmp ebx, dword [esp + 0xaa4]
jl 0x900f5f
cmp ebx, dword [esp + 0xa9c]
jg 0x900f43
mov ecx, dword [esp + 0xa8c]
cmp dword [ecx + edi*4], ebp
je 0x8f609a
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb00]
mov edx, dword [eax + 0x128]
shl ecx, 4
mov eax, dword [esp + 0xb04]
shl eax, 4
mov dword [esp + 0x38], ecx
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0xb8]
imul edx, ebx
mov eax, dword [eax + ecx + 0xe8]
add eax, esi
add eax, edx
mov edx, dword [esp + 0x38]
mov dword [esp + 8], eax
mov eax, dword [edx + ecx + 0xa8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xaf0]
mov dword [esp], eax
call dword [esp + 0xab0]
mov edx, dword [esp + 0xa8c]
lea ecx, [esi + esi]
mov dword [edx + edi*4], ebp
mov ebp, dword [esp + 0xaac]
lea edx, [ebx + ebx]
mov dword [ebp + edi*4], eax
sub ecx, dword [esp + 0xa94]
mov edi, dword [esp + 0xa98]
sub edx, dword [esp + 0xa90]
movzx ebp, byte [edi + ecx]
movzx ecx, byte [edi + edx]
mov edi, dword [esp + 0xad0]
mov edx, dword [esp + 0xad4]
add ebp, ecx
imul ebp, dword [esp + 0xabc]
add eax, ebp
mov ebp, dword [esp + 0xac4]
cmp eax, ebp
cmovl ebp, eax
cmovl edi, esi
cmovl edx, ebx
mov dword [esp + 0xac4], ebp
mov dword [esp + 0xad0], edi
mov dword [esp + 0xad4], edx
mov ebx, dword [esp + 0xafc]
mov ebp, dword [esp + 0xafc]
mov edi, dword [esp + 0xac0]
mov esi, dword [ebx + 0xc]
mov ebx, dword [ebp + 8]
sar esi, 1
sar ebx, 1
mov ecx, esi
shl ecx, 0xb
add ecx, ebx
lea ebp, [ecx + edi]
lea edi, [ebx + esi*8]
and edi, 0x3f
cmp ebx, dword [esp + 0xaa8]
jl 0x901237
cmp ebx, dword [esp + 0xaa0]
jg 0x90121b
cmp esi, dword [esp + 0xaa4]
jl 0x9011ff
cmp esi, dword [esp + 0xa9c]
jg 0x9011e3
mov edx, dword [esp + 0xa8c]
cmp dword [edx + edi*4], ebp
je 0x8f6212
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xb00]
mov eax, dword [ecx + 0x128]
mov ecx, dword [esp + 0xb04]
shl edx, 4
shl ecx, 4
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0xb8]
imul esi, eax
add ebx, dword [ecx + edx + 0xe8]
mov ecx, dword [esp + 0x38]
lea eax, [ebx + esi]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xaf0]
mov ebx, dword [ecx + edx + 0xa8]
mov dword [esp], eax
mov dword [esp + 4], ebx
call dword [esp + 0xab0]
mov edx, dword [esp + 0xa8c]
mov esi, dword [esp + 0xaac]
mov dword [edx + edi*4], ebp
mov ecx, dword [esp + 0xafc]
mov dword [esi + edi*4], eax
mov esi, dword [ecx + 8]
mov ebx, dword [esp + 0xa98]
mov edi, dword [esp + 0xafc]
sar esi, 1
mov ebp, dword [esp + 0xa98]
lea edx, [esi + esi]
sub edx, dword [esp + 0xa94]
movzx ecx, byte [ebx + edx]
mov ebx, dword [edi + 0xc]
sar ebx, 1
lea edx, [ebx + ebx]
sub edx, dword [esp + 0xa90]
movzx edi, byte [ebp + edx]
mov ebp, dword [esp + 0xad4]
add ecx, edi
mov edi, dword [esp + 0xac4]
imul ecx, dword [esp + 0xabc]
add eax, ecx
mov ecx, dword [esp + 0xad0]
cmp eax, edi
cmovl edi, eax
cmovl ecx, esi
cmovl ebp, ebx
mov dword [esp + 0xac4], edi
mov dword [esp + 0xad0], ecx
mov dword [esp + 0xad4], ebp
mov ebp, dword [esp + 0xafc]
mov edi, dword [esp + 0xac0]
mov esi, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x10]
sar esi, 1
sar ebx, 1
mov eax, esi
shl eax, 0xb
add eax, ebx
lea ebp, [eax + edi]
lea edi, [ebx + esi*8]
and edi, 0x3f
cmp ebx, dword [esp + 0xaa8]
jl 0x9011c7
cmp ebx, dword [esp + 0xaa0]
jg 0x901253
cmp esi, dword [esp + 0xaa4]
jl 0x90128b
cmp esi, dword [esp + 0xa9c]
jg 0x90126f
mov edx, dword [esp + 0xa8c]
cmp dword [edx + edi*4], ebp
je 0x8f6383
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xb00]
mov eax, dword [ecx + 0x128]
mov ecx, dword [esp + 0xb04]
shl edx, 4
shl ecx, 4
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0xb8]
imul esi, eax
add ebx, dword [ecx + edx + 0xe8]
mov ecx, dword [esp + 0x38]
lea eax, [ebx + esi]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xaf0]
mov ebx, dword [ecx + edx + 0xa8]
mov dword [esp], eax
mov dword [esp + 4], ebx
call dword [esp + 0xab0]
mov edx, dword [esp + 0xa8c]
mov esi, dword [esp + 0xaac]
mov dword [edx + edi*4], ebp
mov ecx, dword [esp + 0xafc]
mov dword [esi + edi*4], eax
mov esi, dword [ecx + 0x10]
mov ebx, dword [esp + 0xa98]
mov edi, dword [esp + 0xafc]
sar esi, 1
mov ebp, dword [esp + 0xa98]
lea edx, [esi + esi]
sub edx, dword [esp + 0xa94]
movzx ecx, byte [ebx + edx]
mov ebx, dword [edi + 0x14]
sar ebx, 1
lea edx, [ebx + ebx]
sub edx, dword [esp + 0xa90]
movzx edi, byte [ebp + edx]
mov ebp, dword [esp + 0xad4]
add ecx, edi
mov edi, dword [esp + 0xac4]
imul ecx, dword [esp + 0xabc]
add eax, ecx
mov ecx, dword [esp + 0xad0]
cmp eax, edi
cmovl edi, eax
cmovl ecx, esi
cmovl ebp, ebx
mov dword [esp + 0xac4], edi
mov dword [esp + 0xad0], ecx
mov dword [esp + 0xad4], ebp
mov ebp, dword [esp + 0xafc]
mov edi, dword [esp + 0xac0]
mov esi, dword [ebp + 0x1c]
mov ebx, dword [ebp + 0x18]
sar esi, 1
sar ebx, 1
mov eax, esi
shl eax, 0xb
add eax, ebx
lea ebp, [eax + edi]
lea edi, [ebx + esi*8]
and edi, 0x3f
cmp ebx, dword [esp + 0xaa8]
jl 0x9012fb
cmp ebx, dword [esp + 0xaa0]
jg 0x9012df
cmp esi, dword [esp + 0xaa4]
jl 0x9012c3
cmp esi, dword [esp + 0xa9c]
jg 0x9012a7
mov edx, dword [esp + 0xa8c]
cmp dword [edx + edi*4], ebp
je 0x8f48cd
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xb00]
mov eax, dword [ecx + 0x128]
mov ecx, dword [esp + 0xb04]
shl edx, 4
shl ecx, 4
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0xb8]
imul esi, eax
add ebx, dword [ecx + edx + 0xe8]
mov ecx, dword [esp + 0x38]
lea eax, [ebx + esi]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xaf0]
mov ebx, dword [ecx + edx + 0xa8]
mov dword [esp], eax
mov dword [esp + 4], ebx
call dword [esp + 0xab0]
mov edx, dword [esp + 0xa8c]
mov esi, dword [esp + 0xaac]
mov dword [edx + edi*4], ebp
mov ecx, dword [esp + 0xafc]
mov dword [esi + edi*4], eax
mov esi, dword [ecx + 0x18]
mov ebx, dword [esp + 0xa98]
mov edi, dword [esp + 0xafc]
sar esi, 1
mov ebp, dword [esp + 0xa98]
lea edx, [esi + esi]
sub edx, dword [esp + 0xa94]
movzx ecx, byte [ebx + edx]
mov ebx, dword [edi + 0x1c]
sar ebx, 1
lea edx, [ebx + ebx]
sub edx, dword [esp + 0xa90]
movzx edi, byte [ebp + edx]
mov edx, dword [esp + 0xad4]
add ecx, edi
mov edi, dword [esp + 0xac4]
imul ecx, dword [esp + 0xabc]
add eax, ecx
mov ecx, dword [esp + 0xad0]
cmp eax, edi
cmovl edi, eax
cmovl ecx, esi
cmovl edx, ebx
mov eax, ecx
mov dword [esp + 0xac4], edi
jmp 0x8f48bf
mov ebp, dword [esp + 0xb14]
mov ecx, dword [esp + 0xaf0]
imul ebp, ebp
mov edx, dword [ecx]
imul ebp, dword [edx + 0x308]
sar ebp, 8
cmp ebp, dword [esp + 0xa28]
jle 0x8f6532
mov ebx, dword [esp + 0xafc]
mov eax, dword [ebx + 0xc]
or eax, dword [ebx + 8]
or eax, dword [ebx + 0x10]
or eax, dword [ebx + 0x14]
or eax, dword [ebx + 0x18]
or eax, dword [ebx + 0x1c]
je 0x8f6b01
mov edi, dword [esp + 0xafc]
movzx ecx, byte [esp + 0x9e8]
mov esi, dword [esp + 0xafc]
mov ebp, dword [edi + 0x24]
mov ebx, dword [esi + 0x20]
mov edi, ebp
mov esi, ebx
mov dword [esp + 0x48], ebx
sar edi, cl
sar esi, cl
mov eax, edi
lea edx, [esi + edi*8]
shl eax, 0xb
and edx, 0x3f
add eax, esi
mov dword [esp + 0x8a8], edx
add eax, dword [esp + 0xa24]
cmp esi, dword [esp + 0xa08]
mov dword [esp + 0x8ac], eax
jl 0x9008dd
cmp esi, dword [esp + 0xa00]
jg 0x9008c1
cmp edi, dword [esp + 0xa04]
jl 0x900978
cmp edi, dword [esp + 0x9fc]
jg 0x90095c
mov ecx, dword [esp + 0x8ac]
mov eax, dword [esp + 0x8a8]
mov edx, dword [esp + 0x9ec]
cmp dword [edx + eax*4], ecx
je 0x8f71c3
mov eax, dword [esp + 0xb8]
mov ebp, dword [esp + 0xc4]
mov ecx, dword [esp + 0xb8]
mov ebx, dword [eax + 0x128]
mov eax, dword [esp + 0xc4]
and ebp, 2
and eax, 1
mov dword [esp + 0x2c], ebp
mov edx, dword [ecx + 0x12c]
mov ebp, eax
mov dword [esp + 0x8a4], ebx
mov dword [esp + 0x8a0], edx
add ebp, 1
mov dword [esp + 0x89c], eax
mov ebx, esi
mov ecx, ebp
mov edx, edi
mov eax, dword [esp + 0xb04]
shl ebx, cl
shl edx, cl
shl eax, 4
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x894], edx
mov dword [esp + 0x898], ebx
lea edx, [eax + ecx]
mov eax, dword [esp + 0xb00]
shl eax, 4
lea ebx, [edx + 0xe8]
test byte [esp + 0xc4], 4
lea ecx, [eax + ecx]
mov dword [esp + 0x890], ebx
lea ebx, [ecx + 0xa8]
mov dword [esp + 0x88c], ebx
je 0x8f7097
mov edx, dword [esp + 0xb8]
cmp dword [edx + 0x90], esi
jg 0x8f66a1
mov esi, dword [edx + 0x94]
mov ecx, ebp
shl esi, cl
cmp esi, dword [esp + 0x898]
jge 0x8f92c5
mov dword [esp + 8], 0x7d
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd30f5c
call fcn.00a5b730
test byte [edi + 0x7c], 4
je 0x8f4547
jmp 0x8f453a
mov edi, dword [esp + 0xb8]
test byte [edi + 0x7c], 4
je 0x8f51c5
jmp 0x8f51b8
cmp eax, dword [esp + 0xa9c]
mov ebx, dword [esp + 0xa9c]
cmovle ebx, eax
jmp 0x8f478d
cmp dword [esp + 0xaa4], eax
jmp 0x8f4780
cmp edx, dword [esp + 0xaa0]
mov esi, dword [esp + 0xaa0]
cmovle esi, edx
jmp 0x8f4765
cmp dword [esp + 0xaa8], edx
jmp 0x8f4758
mov edx, dword [esp + 0xab4]
mov esi, dword [esp + 0xb08]
mov ebx, dword [esp + 0xab4]
movsx eax, word [esi + edx*4 - 4]
imul eax, dword [esp + 0xb0c]
lea edx, [eax + 0x8000]
movsx eax, word [esi + ebx*4 - 2]
imul eax, dword [esp + 0xb0c]
sar edx, 0x10
add eax, 0x8000
sar eax, 0x10
cmp edx, dword [esp + 0xaa0]
jle 0x8f81c4
mov ecx, dword [esp + 0xaa0]
cmp dword [esp + 0xaa8], ecx
jle 0x8f81ae
mov esi, dword [esp + 0xaa8]
cmp eax, dword [esp + 0xa9c]
jle 0x8f81a2
mov edi, dword [esp + 0xa9c]
cmp dword [esp + 0xaa4], edi
jle 0x8f818c
mov ebx, dword [esp + 0xaa4]
mov eax, ebx
lea edi, [esi + ebx*8]
mov edx, dword [esp + 0xac0]
shl eax, 0xb
and edi, 0x3f
add eax, esi
cmp esi, dword [esp + 0xaa8]
lea ebp, [eax + edx]
jl 0x901f2a
cmp esi, dword [esp + 0xaa0]
jg 0x901f0e
cmp ebx, dword [esp + 0xaa4]
jl 0x9020ac
cmp ebx, dword [esp + 0xa9c]
jg 0x902090
mov ecx, dword [esp + 0xa8c]
cmp dword [ecx + edi*4], ebp
je 0x8f68f4
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb00]
mov edx, dword [eax + 0x128]
shl ecx, 4
mov eax, dword [esp + 0xb04]
shl eax, 4
mov dword [esp + 0x38], ecx
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0xb8]
imul edx, ebx
mov eax, dword [eax + ecx + 0xe8]
add eax, esi
add eax, edx
mov edx, dword [esp + 0x38]
mov dword [esp + 8], eax
mov eax, dword [edx + ecx + 0xa8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xaf0]
mov dword [esp], eax
call dword [esp + 0xab0]
mov edx, dword [esp + 0xa8c]
lea ecx, [esi + esi]
mov dword [edx + edi*4], ebp
mov ebp, dword [esp + 0xaac]
lea edx, [ebx + ebx]
mov dword [ebp + edi*4], eax
sub ecx, dword [esp + 0xa94]
mov edi, dword [esp + 0xa98]
sub edx, dword [esp + 0xa90]
movzx ebp, byte [edi + ecx]
movzx ecx, byte [edi + edx]
mov edx, dword [esp + 0xad0]
mov edi, dword [esp + 0xad4]
add ebp, ecx
imul ebp, dword [esp + 0xabc]
add eax, ebp
mov ebp, dword [esp + 0xac4]
cmp eax, ebp
cmovl ebp, eax
cmovl edx, esi
cmovl edi, ebx
mov dword [esp + 0xac4], ebp
mov dword [esp + 0xad0], edx
mov dword [esp + 0xad4], edi
mov esi, dword [esp + 0xaf0]
mov ebx, dword [esi + 0x2910]
test ebx, ebx
jne 0x8f4cab
mov edi, dword [esp + 0xab4]
mov ebp, dword [esp + 0xb08]
sub edi, dword [esp + 0xab8]
movsx edx, word [ebp + edi*4]
movsx eax, word [ebp + edi*4 + 2]
imul edx, dword [esp + 0xb0c]
imul eax, dword [esp + 0xb0c]
add edx, 0x8000
add eax, 0x8000
sar edx, 0x10
sar eax, 0x10
cmp edx, dword [esp + 0xaa0]
jle 0x8f99c5
mov ecx, dword [esp + 0xaa0]
cmp dword [esp + 0xaa8], ecx
jle 0x8f99af
mov esi, dword [esp + 0xaa8]
cmp eax, dword [esp + 0xa9c]
jle 0x8f99a3
mov edx, dword [esp + 0xa9c]
cmp dword [esp + 0xaa4], edx
jle 0x8f998d
mov eax, dword [esp + 0xaf8]
mov esi, dword [esp + 0xaf4]
mov ecx, dword [esp + 0xb8]
mov dword [esi], 0
mov dword [eax], 0
mov dword [ecx + 4], 1
mov eax, dword [esp + 0xac4]
add esp, 0xadc
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebp, dword [esp + 0xaf4]
mov edi, dword [esp + 0xaf8]
mov esi, dword [esp + 0xb8]
mov eax, dword [esp + 0xa28]
mov dword [ebp], 0
mov dword [edi], 0
mov dword [esi + 4], 1
jmp 0x8f6af6
cmp dword [edx + 0x98], edi
jg 0x8f5368
mov edi, dword [edx + 0x9c]
shl edi, cl
cmp edi, dword [esp + 0x974]
jl 0x8f5368
mov eax, dword [esp + 0x97c]
mov ecx, dword [esp + 0xaf0]
mov edx, dword [esp + 0xaf0]
add eax, eax
movzx ebx, word [ecx + 0x27b0]
movzx ecx, word [edx + 0x27b2]
add eax, 1
cmp dword [edx + 0x1d40], 1
mov dword [esp + 0x968], ebx
mov dword [esp + 0x964], eax
je 0x90136b
mov edx, dword [esp + 0xb8]
mov esi, dword [esp + 0x978]
mov ebx, dword [esp + 0x974]
mov edi, dword [esp + 0x978]
add esi, dword [edx + 0x28]
add ebx, dword [edx + 0x2c]
test edi, edi
je 0x900fdb
mov eax, esi
sub eax, dword [edx + 8]
mov dword [esp + 0x948], eax
mov edi, dword [esp + 0x974]
test edi, edi
je 0x900fb3
mov ecx, ebx
mov eax, dword [esp + 0xb8]
sub ecx, dword [eax + 0xc]
mov dword [esp + 0x944], ecx
mov eax, dword [esp + 0x964]
mov edi, dword [esp + 0x964]
mov ecx, ebp
and eax, ebx
and edi, esi
mov edx, dword [esp + 0x944]
shl eax, cl
mov ebp, dword [esp + 0x97c]
add edi, eax
mov eax, dword [esp + 0x948]
and eax, dword [esp + 0x964]
and dword [esp + 0x964], edx
mov dword [esp + 0x940], edi
shl dword [esp + 0x964], cl
add eax, dword [esp + 0x964]
test ebp, ebp
mov dword [esp + 0x93c], eax
jne 0x902e21
mov ebp, esi
mov esi, dword [esp + 0xaf0]
mov edx, dword [esi + 0x2018]
sar ebp, 1
shl edx, 4
lea esi, [ebp + edx]
cmp esi, 0xfffffff0
jl 0x907cfc
mov eax, ebx
mov ebx, dword [esp + 0xaf0]
mov ecx, dword [ebx + 0x201c]
sar eax, 1
shl ecx, 4
lea ebx, [eax + ecx]
cmp ebx, 0xfffffff0
jl 0x905d13
mov edi, dword [esp + 0xaf0]
mov edi, dword [edi + 4]
cmp esi, edi
mov dword [esp + 0x938], edi
jg 0x905cf7
mov edi, dword [esp + 0xaf0]
mov esi, dword [edi + 8]
cmp ebx, esi
mov dword [esp + 0x934], esi
jg 0x905cdb
mov esi, dword [esp + 0x948]
sar esi, 1
lea edi, [esi + edx]
cmp edi, 0xfffffff0
jl 0x905cbf
mov ebx, dword [esp + 0x944]
sar ebx, 1
lea edx, [ebx + ecx]
cmp edx, 0xfffffff0
jl 0x906418
cmp edi, dword [esp + 0x938]
jg 0x9063fc
cmp edx, dword [esp + 0x934]
jg 0x909c6a
mov ecx, dword [esp + 0x984]
mov edi, dword [esp + 0xb8]
mov edx, dword [edi + 0x13c]
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], ecx
mov edi, dword [esp + 0x970]
imul eax, ecx
add ebp, dword [edi]
lea eax, [ebp + eax]
mov ebp, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x940]
mov ecx, dword [ebp + 0x58]
mov dword [esp], ecx
call dword [edx + eax*4]
mov ecx, dword [esp + 0x984]
mov edx, dword [ebp + 0x140]
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], ecx
imul ebx, ecx
add esi, dword [edi + 0x20]
lea eax, [esi + ebx]
mov dword [esp + 4], eax
mov ecx, dword [ebp + 0x58]
mov ebp, dword [esp + 0x93c]
mov dword [esp], ecx
call dword [edx + ebp*4]
mov ecx, dword [esp + 0x984]
mov dword [esp + 0x10], 0x10
mov eax, dword [esp + 0x96c]
mov dword [esp + 0xc], ecx
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0xaf0]
mov edx, dword [eax]
mov dword [esp + 8], edx
mov esi, dword [ebp + 0x58]
mov dword [esp], ebx
mov dword [esp + 4], esi
call dword [esp + 0xa14]
mov ebp, eax
mov eax, dword [esp + 0x988]
mov edx, dword [esp + 0x98c]
mov ecx, dword [esp + 0x9ec]
mov esi, dword [esp + 0xa0c]
mov dword [ecx + eax*4], edx
mov edi, dword [esp + 0xafc]
mov dword [esi + eax*4], ebp
movzx ecx, byte [esp + 0x9e8]
mov ebx, dword [esp + 0x9f8]
mov esi, dword [edi + 8]
mov eax, dword [esp + 0xafc]
sar esi, cl
mov edx, esi
shl edx, cl
sub edx, dword [esp + 0x9f4]
movzx edi, byte [ebx + edx]
mov ebx, dword [eax + 0xc]
mov edx, dword [esp + 0x9f8]
sar ebx, cl
mov eax, ebx
shl eax, cl
sub eax, dword [esp + 0x9f0]
movzx eax, byte [edx + eax]
mov edx, dword [esp + 0xac8]
lea ecx, [edi + eax]
mov edi, edx
mov eax, dword [esp + 0xacc]
imul ecx, dword [esp + 0xa20]
add ebp, ecx
mov ecx, dword [esp + 0xa28]
mov dword [esp + 0x38], ebp
cmp ebp, ecx
cmovl ecx, ebp
cmovl edi, esi
cmovl eax, ebx
mov dword [esp + 0xa28], ecx
mov dword [esp + 0xac8], edi
mov dword [esp + 0xacc], eax
mov ebx, dword [esp + 0xa18]
mov esi, dword [esp + 0xb08]
mov ebp, dword [esp + 0xb08]
movsx edi, word [esi + ebx*4]
movsx eax, word [ebp + ebx*4 + 2]
imul edi, dword [esp + 0xb0c]
imul eax, dword [esp + 0xb0c]
lea ecx, [edi + 0x8000]
add eax, 0x8000
sar ecx, 0x10
sar eax, 0x10
cmp ecx, dword [esp + 0xa00]
jle 0x8f7c0e
mov edx, dword [esp + 0xa00]
cmp dword [esp + 0xa08], edx
jle 0x8f7bf8
mov ebp, dword [esp + 0xa08]
cmp eax, dword [esp + 0x9fc]
jle 0x8f7bec
mov ecx, dword [esp + 0x9fc]
cmp dword [esp + 0xa04], ecx
jle 0x8f7bd8
mov eax, dword [esp + 0xa04]
mov dword [esp + 0x928], eax
mov edi, dword [esp + 0x928]
mov ebx, dword [esp + 0x928]
shl edi, 0xb
lea eax, [ebp + ebx*8]
add edi, ebp
and eax, 0x3f
add edi, dword [esp + 0xa24]
cmp ebp, dword [esp + 0xa08]
mov dword [esp + 0x920], eax
mov dword [esp + 0x924], edi
jl 0x901684
cmp ebp, dword [esp + 0xa00]
jg 0x901668
mov ebp, dword [esp + 0x8a4]
mov eax, dword [esp + 0xb14]
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], eax
mov ebx, ebp
mov eax, dword [edx + 0xe8]
imul ebx, edi
mov ebp, dword [esp + 0xaf0]
add eax, esi
add eax, ebx
mov dword [esp + 8], eax
mov edx, dword [ecx + 0xa8]
mov dword [esp], ebp
mov dword [esp + 4], edx
call dword [esp + 0xa14]
mov ebx, dword [esp + 0x2c]
test ebx, ebx
mov dword [esp + 0x888], eax
jne 0x8fa9ad
mov ecx, dword [esp + 0x8a8]
mov esi, dword [esp + 0x8ac]
mov ebp, dword [esp + 0x9ec]
mov eax, dword [esp + 0x888]
mov ebx, dword [esp + 0xa0c]
mov dword [ebp + ecx*4], esi
mov edi, dword [esp + 0xafc]
mov dword [ebx + ecx*4], eax
movzx ecx, byte [esp + 0x9e8]
mov ebp, dword [edi + 0x20]
mov edx, dword [esp + 0x9f8]
mov esi, dword [esp + 0xafc]
mov dword [esp + 0x48], ebp
sar ebp, cl
mov ebx, dword [esp + 0x9f8]
mov dword [esp + 0x30], ebp
shl ebp, cl
sub ebp, dword [esp + 0x9f4]
movzx edi, byte [edx + ebp]
mov ebp, dword [esi + 0x24]
mov eax, ebp
sar eax, cl
mov edx, eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xacc]
shl edx, cl
sub edx, dword [esp + 0x9f0]
movzx esi, byte [ebx + edx]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
lea ecx, [edi + esi]
mov esi, dword [esp + 0xa28]
mov edi, dword [esp + 0xac8]
imul ecx, dword [esp + 0xa20]
add ecx, dword [esp + 0x888]
mov dword [esp + 0x38], ecx
cmp ecx, esi
cmovl esi, ecx
cmovl edi, edx
cmovl eax, ebx
mov dword [esp + 0xa28], esi
mov dword [esp + 0xac8], edi
mov dword [esp + 0xacc], eax
movzx ecx, byte [esp + 0x9e8]
mov esi, dword [esp + 0x48]
mov eax, ebp
sar eax, cl
sar esi, cl
sub eax, 1
cmp esi, dword [esp + 0xa00]
jle 0x8f8180
mov edx, dword [esp + 0xa00]
cmp dword [esp + 0xa08], edx
jle 0x8f816c
mov esi, dword [esp + 0xa08]
cmp eax, dword [esp + 0x9fc]
mov dword [esp + 0x848], esi
jle 0x8f8160
mov edi, dword [esp + 0x9fc]
cmp dword [esp + 0xa04], edi
jle 0x8f814c
mov eax, dword [esp + 0xa04]
mov dword [esp + 0x844], eax
mov eax, dword [esp + 0x848]
mov ebx, dword [esp + 0xa08]
mov edx, dword [esp + 0x844]
mov ecx, dword [esp + 0x844]
shl edx, 0xb
lea esi, [eax + ecx*8]
add edx, dword [esp + 0x848]
and esi, 0x3f
add edx, dword [esp + 0xa24]
cmp eax, ebx
mov dword [esp + 0x83c], esi
mov dword [esp + 0x840], edx
jl 0x9016d8
mov edi, dword [esp + 0xa00]
cmp dword [esp + 0x848], edi
jg 0x9016bc
mov ebx, dword [esp + 0xa04]
cmp dword [esp + 0x844], ebx
jl 0x901ab3
mov eax, dword [esp + 0x9fc]
cmp dword [esp + 0x844], eax
jg 0x901a97
mov esi, dword [esp + 0x840]
mov edx, dword [esp + 0x83c]
mov ecx, dword [esp + 0x9ec]
cmp dword [ecx + edx*4], esi
je 0x8f7f3c
mov ebx, dword [esp + 0xb8]
mov esi, dword [esp + 0xc4]
mov eax, dword [esp + 0x848]
and esi, 1
mov edi, dword [ebx + 0x12c]
mov edx, dword [esp + 0x844]
mov dword [esp + 0x838], edi
mov edi, esi
mov dword [esp + 0x834], esi
add edi, 1
mov esi, dword [esp + 0xb04]
mov ebp, dword [ebx + 0x128]
mov ecx, edi
shl esi, 4
mov ebx, dword [esp + 0xc4]
shl eax, cl
shl edx, cl
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x82c], edx
lea edx, [esi + ecx]
mov esi, dword [esp + 0xb00]
shl esi, 4
mov dword [esp + 0x830], eax
lea eax, [edx + 0xe8]
lea ecx, [esi + ecx]
and ebx, 2
mov dword [esp + 0x828], eax
test byte [esp + 0xc4], 4
lea eax, [ecx + 0xa8]
mov dword [esp + 0x824], eax
je 0x8f7e1f
mov ecx, dword [esp + 0x848]
mov edx, dword [esp + 0xb8]
cmp dword [edx + 0x90], ecx
jg 0x8f73ab
mov eax, dword [edx + 0x94]
mov ecx, edi
shl eax, cl
cmp eax, dword [esp + 0x830]
jge 0x8fa428
mov dword [esp + 8], 0x7d
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd30f5c
call fcn.00a5b730
mov eax, dword [esp + 0xb04]
mov edx, dword [esp + 0xac4]
mov esi, dword [esp + 0xabc]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0xb00]
mov dword [esp], edx
mov eax, dword [esp + 0xaf0]
lea edx, [esp + 0xad0]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x10
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], esi
mov dword [esp + 4], ecx
call fcn.008e25f5
jmp 0x8f4e7c
cmp eax, dword [esp + 0xa9c]
mov ebx, dword [esp + 0xa9c]
cmovle ebx, eax
jmp 0x8f5848
cmp dword [esp + 0xaa4], eax
jmp 0x8f583b
cmp edx, dword [esp + 0xaa0]
mov esi, dword [esp + 0xaa0]
cmovle esi, edx
jmp 0x8f5820
cmp dword [esp + 0xaa8], edx
jmp 0x8f5813
cmp eax, dword [esp + 0xa9c]
mov ebx, dword [esp + 0xa9c]
cmovle ebx, eax
jmp 0x8f5a0b
cmp dword [esp + 0xaa4], eax
jmp 0x8f59fe
cmp edx, dword [esp + 0xaa0]
mov esi, dword [esp + 0xaa0]
cmovle esi, edx
jmp 0x8f59e3
cmp dword [esp + 0xaa8], edx
jmp 0x8f59d6
cmp edx, dword [esp + 0xa9c]
mov ebx, dword [esp + 0xa9c]
cmovle ebx, edx
jmp 0x8f5bce
cmp dword [esp + 0xaa4], edx
jmp 0x8f5bc1
cmp eax, dword [esp + 0xaa0]
mov esi, dword [esp + 0xaa0]
cmovle esi, eax
jmp 0x8f5ba6
cmp dword [esp + 0xaa8], eax
jmp 0x8f5b99
mov edx, dword [esp + 0xb00]
mov ebx, dword [esp + 0xabc]
mov edi, dword [esp + 0xb04]
mov dword [esp + 4], edx
mov ecx, dword [esp + 0xac4]
lea edx, [esp + 0xad0]
mov eax, dword [esp + 0xaf0]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x10
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], ebx
mov dword [esp + 8], edi
mov dword [esp], ecx
call fcn.008ea9da
jmp 0x8f4e7c
cmp edx, dword [esp + 0xa9c]
mov ebx, dword [esp + 0xa9c]
cmovle ebx, edx
jmp 0x8f5d8f
cmp dword [esp + 0xaa4], edx
jmp 0x8f5d82
cmp eax, dword [esp + 0xaa0]
mov esi, dword [esp + 0xaa0]
cmovle esi, eax
jmp 0x8f5d67
cmp dword [esp + 0xaa8], eax
jmp 0x8f5d5a
mov ebx, dword [edx + 0x9c]
shl ebx, cl
cmp ebx, 0
jl 0x8f50e3
mov edx, dword [esp + 0xaf0]
mov ecx, dword [esp + 0xaf0]
lea eax, [edi + edi]
movzx ebx, word [edx + 0x27b0]
movzx edx, word [ecx + 0x27b2]
mov ecx, dword [esp + 0xaf0]
add eax, 1
cmp dword [ecx + 0x1d40], 1
mov dword [esp + 0x9d4], ebx
mov dword [esp + 0x9d0], eax
je 0x8fa119
mov ecx, dword [esp + 0xb8]
sub edx, dword [esp + 0x9d4]
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x34], edx
imul edx, dword [ecx + 8]
mov ebx, dword [eax + 0x28]
mov eax, edx
mov dword [esp + 0x38], ebx
mov ebx, dword [ecx + 0x2c]
cdq
mov ecx, dword [esp + 0x34]
idiv dword [esp + 0x9d4]
mov dword [esp + 0x9ac], eax
mov eax, dword [esp + 0xb8]
imul ecx, dword [eax + 0xc]
mov eax, ecx
mov dword [esp + 0x34], ecx
mov ecx, esi
cdq
mov esi, dword [esp + 0x9ac]
idiv dword [esp + 0x9d4]
mov edx, dword [esp + 0x9d0]
and esi, dword [esp + 0x9d0]
mov dword [esp + 0x9a8], eax
mov eax, dword [esp + 0x9d0]
and edx, dword [esp + 0x38]
and eax, ebx
shl eax, cl
add edx, eax
mov dword [esp + 0x9a4], edx
mov edx, dword [esp + 0x9a8]
and dword [esp + 0x9d0], edx
shl dword [esp + 0x9d0], cl
add esi, dword [esp + 0x9d0]
test edi, edi
mov dword [esp + 0x9a0], esi
jne 0x8fafca
mov ebp, dword [esp + 0xaf0]
mov edx, dword [esp + 0x38]
sar edx, 1
mov ecx, dword [ebp + 0x2018]
shl ecx, 4
mov ebp, edx
mov dword [esp + 0x998], edx
add ebp, ecx
cmp ebp, 0xfffffff0
jl 0x903f43
mov eax, ebx
mov ebx, dword [esp + 0xaf0]
mov edx, dword [ebx + 0x201c]
sar eax, 1
shl edx, 4
lea edi, [eax + edx]
cmp edi, 0xfffffff0
jl 0x903f27
mov ebx, dword [esp + 0xaf0]
mov esi, dword [ebx + 4]
cmp ebp, esi
mov dword [esp + 0x994], esi
jg 0x903fb3
mov esi, dword [esp + 0xaf0]
mov ebp, dword [esi + 8]
cmp edi, ebp
jg 0x903f97
mov esi, dword [esp + 0x9ac]
sar esi, 1
lea ecx, [esi + ecx]
cmp ecx, 0xfffffff0
jl 0x903f7b
mov ebx, dword [esp + 0x9a8]
sar ebx, 1
lea edx, [ebx + edx]
cmp edx, 0xfffffff0
jl 0x903f5f
cmp ecx, dword [esp + 0x994]
jg 0x904613
cmp edx, ebp
jg 0x903ee3
mov edi, dword [esp + 0xb8]
mov ebp, dword [esp + 0x9e4]
mov ecx, dword [esp + 0x9dc]
mov edx, dword [edi + 0x13c]
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], ebp
mov ecx, dword [ecx]
imul eax, ebp
add dword [esp + 0x998], ecx
add eax, dword [esp + 0x998]
mov dword [esp + 4], eax
mov ebp, dword [edi + 0x58]
mov edi, dword [esp + 0x9a4]
mov dword [esp], ebp
call dword [edx + edi*4]
mov eax, dword [esp + 0x9e4]
mov edx, dword [esp + 0xb8]
mov edi, dword [edx + 0x140]
mov ecx, dword [esp + 0x9dc]
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], eax
imul ebx, eax
add esi, dword [ecx + 0x20]
mov ecx, dword [esp + 0x9a0]
lea ebp, [esi + ebx]
mov dword [esp + 4], ebp
mov eax, dword [edx + 0x58]
mov dword [esp], eax
call dword [edi + ecx*4]
mov ebp, dword [esp + 0x9e4]
mov dword [esp + 0x10], 0x10
mov edi, dword [esp + 0x9d8]
mov dword [esp + 0xc], ebp
mov eax, dword [esp + 0xb8]
mov ebx, dword [esp + 0xaf0]
mov edx, dword [edi]
mov dword [esp + 8], edx
mov esi, dword [eax + 0x58]
mov dword [esp], ebx
mov dword [esp + 4], esi
call dword [esp + 0xa14]
mov ebp, eax
jmp 0x8f5184
cmp eax, dword [esp + 0xa9c]
mov ebx, dword [esp + 0xa9c]
cmovle ebx, eax
jmp 0x8f5f5c
cmp dword [esp + 0xaa4], eax
jmp 0x8f5f4f
cmp edx, dword [esp + 0xaa0]
mov esi, dword [esp + 0xaa0]
cmovle esi, edx
jmp 0x8f5f34
cmp dword [esp + 0xaa8], edx
jmp 0x8f5f27
mov ebx, dword [esp + 0x920]
mov edi, dword [esp + 0x924]
mov esi, dword [esp + 0x9ec]
mov dword [esi + ebx*4], edi
mov eax, dword [esp + 0xa0c]
mov edi, dword [esp + 0x900]
mov dword [eax + ebx*4], edi
movzx ecx, byte [esp + 0x9e8]
mov edx, ebp
mov eax, dword [esp + 0x928]
shl edx, cl
mov esi, dword [esp + 0x9f8]
shl eax, cl
sub edx, dword [esp + 0x9f4]
sub eax, dword [esp + 0x9f0]
movzx ebx, byte [esi + edx]
movzx edx, byte [esi + eax]
mov eax, dword [esp + 0xac8]
mov esi, dword [esp + 0xa28]
lea ecx, [ebx + edx]
mov ebx, dword [esp + 0x928]
imul ecx, dword [esp + 0xa20]
add ecx, edi
mov edi, eax
mov eax, dword [esp + 0xacc]
mov dword [esp + 0x38], ecx
cmp ecx, esi
cmovl esi, ecx
cmovl edi, ebp
cmovl eax, ebx
mov edx, eax
mov dword [esp + 0xa28], esi
mov dword [esp + 0xac8], edi
mov dword [esp + 0xacc], edx
mov ebx, dword [esp + 0xb14]
imul ebx, ebx
shl ebx, 2
cmp ebx, dword [esp + 0xa28]
jge 0x8f84c9
mov esi, dword [esp + 0xb8]
mov edi, dword [esi + 0x88]
test edi, edi
je 0x8f9ebb
mov edx, dword [esp + 0xa18]
mov ecx, dword [esp + 0xb08]
mov ebp, dword [esp + 0xb08]
movsx eax, word [ecx + edx*4 - 4]
imul eax, dword [esp + 0xb0c]
lea ecx, [eax + 0x8000]
movsx eax, word [ebp + edx*4 - 2]
imul eax, dword [esp + 0xb0c]
sar ecx, 0x10
add eax, 0x8000
sar eax, 0x10
cmp ecx, dword [esp + 0xa00]
jle 0x8fb92f
mov ebx, dword [esp + 0xa00]
cmp dword [esp + 0xa08], ebx
jle 0x8fb914
mov edi, dword [esp + 0xa08]
mov dword [esp + 0x508], edi
cmp eax, dword [esp + 0x9fc]
jle 0x8fb908
mov esi, dword [esp + 0x9fc]
cmp dword [esp + 0xa04], esi
jle 0x8fb8f4
mov eax, dword [esp + 0xa04]
mov dword [esp + 0x504], eax
mov eax, dword [esp + 0x508]
mov ebp, dword [esp + 0xa08]
mov ebx, dword [esp + 0x504]
mov ecx, dword [esp + 0x504]
shl ebx, 0xb
lea edx, [eax + ecx*8]
add ebx, dword [esp + 0x508]
and edx, 0x3f
add ebx, dword [esp + 0xa24]
cmp eax, ebp
mov dword [esp + 0x4fc], edx
mov dword [esp + 0x500], ebx
jl 0x909d2e
mov edi, dword [esp + 0xa00]
cmp dword [esp + 0x508], edi
jg 0x909d12
mov esi, dword [esp + 0xa04]
cmp dword [esp + 0x504], esi
jl 0x909cf6
mov ebp, dword [esp + 0x9fc]
cmp dword [esp + 0x504], ebp
jg 0x909cda
mov ecx, dword [esp + 0x500]
mov eax, dword [esp + 0x4fc]
mov edx, dword [esp + 0x9ec]
cmp dword [edx + eax*4], ecx
je 0x8fb69e
mov edi, dword [esp + 0xc4]
mov ebp, dword [esp + 0xb8]
mov esi, dword [esp + 0x508]
and edi, 1
mov eax, dword [ebp + 0x128]
mov ebp, dword [esp + 0xb04]
mov dword [esp + 0x4f0], edi
add edi, 1
shl ebp, 4
mov ecx, edi
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x70], edi
shl esi, cl
mov edi, dword [esp + 0xb8]
mov ebx, dword [edx + 0x12c]
mov dword [esp + 0x4f8], eax
lea edx, [ebp + edi]
mov dword [esp + 0x4ec], esi
mov eax, dword [esp + 0xb00]
mov esi, dword [esp + 0x504]
mov dword [esp + 0x4f4], ebx
shl esi, cl
shl eax, 4
lea ecx, [edx + 0xe8]
mov ebx, dword [esp + 0xc4]
mov dword [esp + 0x4e4], ecx
lea ecx, [eax + edi]
and ebx, 2
lea ebp, [ecx + 0xa8]
test byte [esp + 0xc4], 4
mov dword [esp + 0x4e8], esi
mov dword [esp + 0x4e0], ebp
je 0x8fb58a
mov ecx, dword [esp + 0x508]
cmp dword [edi + 0x90], ecx
jg 0x8f7bbc
mov ebx, dword [edi + 0x94]
movzx ecx, byte [esp + 0x70]
shl ebx, cl
cmp ebx, dword [esp + 0x4ec]
jge 0x8ffbc5
mov dword [esp + 8], 0x7d
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd30f5c
call fcn.00a5b730
cmp eax, dword [esp + 0x9fc]
cmovg eax, dword [esp + 0x9fc]
jmp 0x8f6f0c
cmp dword [esp + 0xa04], eax
jmp 0x8f6eff
cmp ecx, dword [esp + 0xa00]
mov ebp, dword [esp + 0xa00]
cmovle ebp, ecx
jmp 0x8f6ee4
cmp dword [esp + 0xa08], ecx
jmp 0x8f6ed7
mov ebp, dword [esp + 0x984]
mov eax, dword [esp + 0xb14]
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], eax
mov esi, ebp
mov eax, dword [edx + 0xe8]
imul esi, edi
mov ebp, dword [esp + 0xaf0]
add eax, ebx
add eax, esi
mov dword [esp + 8], eax
mov edx, dword [ecx + 0xa8]
mov dword [esp], ebp
mov dword [esp + 4], edx
call dword [esp + 0xa14]
mov esi, dword [esp + 0x30]
test esi, esi
mov ebp, eax
je 0x8f6dc7
mov eax, ebx
mov esi, edi
mov edx, dword [esp + 0xb8]
and eax, 1
and esi, 1
mov ecx, dword [edx + 0x58]
lea esi, [eax + esi*2]
mov edx, dword [esp + 0xb10]
mov eax, dword [esp + 0x984]
shl edx, 4
shl eax, 4
sar ebx, 1
add eax, ecx
lea esi, [edx + esi*4]
mov ecx, dword [esp + 0xb14]
mov dword [esp + 0x930], eax
mov edx, esi
mov eax, dword [esp + 0xb8]
add edx, dword [eax + 0x13c]
sar ecx, 1
mov eax, dword [esp + 0x980]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x92c], ecx
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x970]
sar edi, 1
mov eax, dword [ecx + 4]
imul edi, dword [esp + 0x980]
add eax, ebx
add eax, edi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x930]
mov dword [esp], eax
call dword [edx + 0x10]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x92c]
mov edx, dword [esp + 0x980]
add esi, dword [ecx + 0x13c]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov ecx, dword [esp + 0x970]
add ebx, dword [ecx + 8]
add ebx, edi
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x930]
add ebx, 8
mov dword [esp], ebx
call dword [esi + 0x10]
mov esi, dword [esp + 0x92c]
mov eax, dword [esp + 0x980]
mov dword [esp + 0x10], esi
mov edx, dword [esp + 0x96c]
mov dword [esp + 0xc], eax
mov ecx, dword [edx + 4]
mov edi, dword [esp + 0x930]
mov esi, dword [esp + 0xaf0]
mov dword [esp + 8], ecx
mov dword [esp + 4], edi
mov dword [esp], esi
call dword [esp + 0xa10]
mov edx, dword [esp + 0x96c]
mov edi, dword [esp + 0xaf0]
lea esi, [ebp + eax]
mov ebp, dword [esp + 0x980]
mov eax, dword [esp + 0x92c]
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], eax
mov ecx, dword [edx + 8]
mov dword [esp + 4], ebx
mov dword [esp], edi
mov dword [esp + 8], ecx
call dword [esp + 0xa10]
lea ebp, [esi + eax]
jmp 0x8f6dc7
mov eax, dword [esp + 0xabc]
mov ebp, dword [esp + 0xb04]
mov esi, dword [esp + 0xb00]
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0xac4]
lea edx, [esp + 0xad0]
mov eax, dword [esp + 0xaf0]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x10
mov dword [esp + 0x10], 0
mov dword [esp + 8], ebp
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.008d6522
jmp 0x8f4e7c
mov esi, dword [esp + 0xb14]
mov dword [esp + 0xc], ebp
mov edi, dword [esp + 0x848]
mov dword [esp + 0x10], esi
add edi, dword [edx + 0xe8]
mov edx, dword [esp + 0x844]
imul edx, ebp
add edi, edx
mov dword [esp + 8], edi
mov edi, dword [esp + 0xaf0]
mov eax, dword [ecx + 0xa8]
mov dword [esp], edi
mov dword [esp + 4], eax
call dword [esp + 0xa14]
test ebx, ebx
mov dword [esp + 0x820], eax
jne 0x8fc5b6
mov eax, dword [esp + 0x83c]
mov ebx, dword [esp + 0x840]
mov edx, dword [esp + 0x9ec]
mov dword [edx + eax*4], ebx
mov edi, dword [esp + 0xa0c]
mov edx, dword [esp + 0x820]
mov dword [edi + eax*4], edx
movzx ecx, byte [esp + 0x9e8]
mov ebp, dword [esp + 0x848]
mov eax, dword [esp + 0x844]
shl ebp, cl
mov esi, dword [esp + 0x9f8]
shl eax, cl
sub ebp, dword [esp + 0x9f4]
sub eax, dword [esp + 0x9f0]
movzx ebx, byte [esi + ebp]
mov ebp, dword [esp + 0xac8]
movzx edi, byte [esi + eax]
mov esi, dword [esp + 0xa28]
mov eax, dword [esp + 0x848]
lea ecx, [ebx + edi]
mov edi, ebp
mov ebx, dword [esp + 0x844]
imul ecx, dword [esp + 0xa20]
mov ebp, dword [esp + 0xacc]
add ecx, edx
mov dword [esp + 0x38], ecx
cmp ecx, esi
cmovl esi, ecx
cmovl edi, eax
cmovl ebp, ebx
mov dword [esp + 0xac8], edi
mov dword [esp + 0xacc], ebp
mov ebx, dword [esp + 0xafc]
mov dword [esp + 0xa28], esi
mov esi, dword [ebx + 0x20]
mov ebp, dword [ebx + 0x24]
mov dword [esp + 0x48], esi
movzx ecx, byte [esp + 0x9e8]
mov esi, dword [esp + 0x48]
mov eax, ebp
sar eax, cl
sar esi, cl
add eax, 1
cmp esi, dword [esp + 0xa00]
jle 0x8f95f2
mov edi, dword [esp + 0xa00]
cmp dword [esp + 0xa08], edi
jle 0x8f95de
mov esi, dword [esp + 0xa08]
cmp eax, dword [esp + 0x9fc]
mov dword [esp + 0x7d0], esi
jle 0x8f95d2
mov esi, dword [esp + 0x9fc]
cmp dword [esp + 0xa04], esi
jle 0x8f95be
mov eax, dword [esp + 0xa04]
mov dword [esp + 0x7cc], eax
mov ebx, dword [esp + 0x7d0]
mov eax, dword [esp + 0xa08]
mov edi, dword [esp + 0x7cc]
mov ecx, dword [esp + 0x7cc]
shl edi, 0xb
lea edx, [ebx + ecx*8]
add edi, dword [esp + 0x7d0]
and edx, 0x3f
add edi, dword [esp + 0xa24]
cmp ebx, eax
mov dword [esp + 0x7c4], edx
mov dword [esp + 0x7c8], edi
jl 0x9045f7
mov esi, dword [esp + 0xa00]
cmp dword [esp + 0x7d0], esi
jg 0x9045db
mov eax, dword [esp + 0xa04]
cmp dword [esp + 0x7cc], eax
jl 0x9045bf
mov ebx, dword [esp + 0x9fc]
cmp dword [esp + 0x7cc], ebx
jg 0x9045a3
mov edi, dword [esp + 0x7c8]
mov edx, dword [esp + 0x7c4]
mov ecx, dword [esp + 0x9ec]
cmp dword [ecx + edx*4], edi
je 0x8f9716
mov ebx, dword [esp + 0xb8]
mov esi, dword [esp + 0xb8]
mov edi, dword [esp + 0x7d0]
mov ebp, dword [ebx + 0x12c]
mov eax, dword [esi + 0x128]
mov edx, dword [esp + 0x7cc]
mov dword [esp + 0x7bc], ebp
mov ebp, dword [esp + 0xc4]
mov esi, dword [esp + 0xb04]
and ebp, 1
shl esi, 4
mov dword [esp + 0x7c0], eax
mov dword [esp + 0x7b8], ebp
add ebp, 1
mov eax, dword [esp + 0xb00]
mov ecx, ebp
shl eax, 4
mov ebx, dword [esp + 0xc4]
shl edi, cl
shl edx, cl
and ebx, 2
mov dword [esp + 0x7b4], edi
mov edi, dword [esp + 0xb8]
mov dword [esp + 0x7b0], edx
lea edx, [esi + edi]
test byte [esp + 0xc4], 4
lea ecx, [edx + 0xe8]
mov dword [esp + 0x7ac], ecx
lea ecx, [eax + edi]
lea esi, [ecx + 0xa8]
mov dword [esp + 0x7a8], esi
je 0x8f95fe
mov edx, dword [esp + 0x7d0]
mov eax, dword [esp + 0xb8]
cmp dword [eax + 0x90], edx
jg 0x8f8130
mov edi, dword [eax + 0x94]
mov ecx, ebp
shl edi, cl
cmp edi, dword [esp + 0x7b4]
jge 0x8fbe1f
mov dword [esp + 8], 0x7d
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd30f5c
call fcn.00a5b730
cmp eax, dword [esp + 0x9fc]
cmovg eax, dword [esp + 0x9fc]
jmp 0x8f722f
cmp dword [esp + 0xa04], eax
jmp 0x8f7222
cmp esi, dword [esp + 0xa00]
cmovg esi, dword [esp + 0xa00]
jmp 0x8f7200
cmp dword [esp + 0xa08], esi
jmp 0x8f71f3
cmp eax, dword [esp + 0xa9c]
mov ebx, dword [esp + 0xa9c]
cmovle ebx, eax
jmp 0x8f67b6
cmp dword [esp + 0xaa4], eax
jmp 0x8f67a9
cmp edx, dword [esp + 0xaa0]
mov esi, dword [esp + 0xaa0]
cmovle esi, edx
jmp 0x8f678e
cmp dword [esp + 0xaa8], edx
jmp 0x8f6781
cmp dword [esp + 0xaa8], edx
jmp 0x8f494e
cmp eax, dword [esp + 0xa9c]
mov ebx, dword [esp + 0xa9c]
cmovle ebx, eax
jmp 0x8f4983
cmp dword [esp + 0xaa4], eax
jmp 0x8f4976
cmp edx, dword [esp + 0xaa0]
mov esi, dword [esp + 0xaa0]
cmovle esi, edx
jmp 0x8f495b
mov ebp, dword [esp + 0xabc]
mov ebx, dword [esp + 0xb04]
mov edi, dword [esp + 0xb00]
mov esi, dword [esp + 0xac4]
lea edx, [esp + 0xad0]
mov eax, dword [esp + 0xaf0]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x10
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], ebp
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov dword [esp], esi
call fcn.008e5d56
jmp 0x8f4e7c
mov edi, dword [esp + 0x490]
mov esi, dword [esp + 0xb14]
mov eax, dword [esp + 0x4a0]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], edi
mov ebp, dword [esp + 0x49c]
add eax, dword [edx + 0xe8]
imul ebp, edi
add eax, ebp
mov ebp, dword [esp + 0xaf0]
mov dword [esp + 8], eax
mov edx, dword [ecx + 0xa8]
mov dword [esp], ebp
mov dword [esp + 4], edx
call dword [esp + 0xa14]
test ebx, ebx
mov dword [esp + 0x474], eax
je 0x8f8412
mov eax, dword [esp + 0x4a0]
mov ebp, dword [esp + 0x49c]
mov edx, dword [esp + 0xb10]
and eax, 1
and ebp, 1
shl edx, 4
lea ebx, [eax + ebp*2]
mov ebp, edi
mov ecx, dword [esp + 0xb8]
lea ebx, [edx + ebx*4]
mov eax, dword [esp + 0xb8]
sar esi, 1
mov edx, ebx
shl ebp, 4
mov dword [esp + 0x43c], esi
add ebp, dword [ecx + 0x58]
add edx, dword [eax + 0x13c]
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x48c]
mov edi, dword [esp + 0x47c]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x4a0]
mov ecx, dword [edi + 4]
mov edi, dword [esp + 0x49c]
sar esi, 1
sar edi, 1
add ecx, esi
mov dword [esp], ebp
imul edi, dword [esp + 0x48c]
add ecx, edi
mov dword [esp + 4], ecx
call dword [edx + 0x10]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x43c]
mov ecx, dword [esp + 0x48c]
add ebx, dword [eax + 0x13c]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov eax, dword [esp + 0x47c]
add esi, dword [eax + 8]
add esi, edi
mov dword [esp + 4], esi
lea esi, [ebp + 8]
mov dword [esp], esi
call dword [ebx + 0x10]
mov edx, dword [esp + 0x43c]
mov ecx, dword [esp + 0x48c]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ecx
mov ebx, dword [esp + 0x478]
mov edi, dword [ebx + 4]
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov edi, dword [esp + 0xaf0]
mov dword [esp], edi
call dword [esp + 0xa10]
mov ebx, dword [esp + 0x474]
mov ebp, dword [esp + 0x43c]
add ebx, eax
mov eax, dword [esp + 0x48c]
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x478]
mov ecx, dword [edx + 8]
mov dword [esp + 4], esi
mov dword [esp], edi
mov dword [esp + 8], ecx
call dword [esp + 0xa10]
add ebx, eax
mov dword [esp + 0x474], ebx
mov ebp, dword [esp + 0x494]
mov eax, dword [esp + 0x498]
mov edx, dword [esp + 0x9ec]
mov dword [edx + ebp*4], eax
movzx ecx, byte [esp + 0x9e8]
mov ebx, dword [esp + 0x4a0]
mov eax, dword [esp + 0x49c]
mov edx, dword [esp + 0x474]
mov edi, dword [esp + 0xa0c]
shl ebx, cl
shl eax, cl
mov dword [edi + ebp*4], edx
mov esi, dword [esp + 0x9f8]
sub ebx, dword [esp + 0x9f4]
sub eax, dword [esp + 0x9f0]
movzx ebp, byte [esi + ebx]
movzx edi, byte [esi + eax]
mov ebx, dword [esp + 0xac8]
lea ecx, [ebp + edi]
mov esi, dword [esp + 0xa28]
mov edi, ebx
imul ecx, dword [esp + 0xa20]
mov ebp, dword [esp + 0xacc]
mov eax, dword [esp + 0x4a0]
add ecx, edx
mov ebx, dword [esp + 0x49c]
mov dword [esp + 0x38], ecx
cmp ecx, esi
cmovl esi, ecx
cmovl edi, eax
cmovl ebp, ebx
mov dword [esp + 0xa28], esi
mov dword [esp + 0xac8], edi
mov dword [esp + 0xacc], ebp
mov esi, dword [esp + 0xb8]
mov ebx, dword [esi]
mov esi, dword [ebx + 0x1dc]
test esi, esi
je 0x8f8b55
mov ecx, dword [esp + 0xaf0]
xor ebp, ebp
mov edx, dword [ecx + 0x2018]
mov edi, edx
sub edi, esi
cmovs edi, ebp
mov dword [esp + 0x40], edi
mov edi, ecx
mov ecx, dword [ecx + 0x201c]
mov ebx, ecx
mov eax, dword [edi + 0x98]
sub ebx, esi
cmovns ebp, ebx
lea ebx, [edx + esi + 1]
lea edx, [ecx + esi + 1]
cmp eax, ebx
mov ecx, ebp
cmovle ebx, eax
mov eax, dword [edi + 0x9c]
cmp eax, edx
mov dword [esp + 0x36c], ebx
cmovle edx, eax
mov dword [esp + 0x368], edx
cmp ebp, dword [esp + 0x368]
jge 0x8f8b55
mov eax, dword [esp + 0xb04]
mov edx, dword [esp + 0xb00]
mov ebx, dword [esp + 0xb14]
shl eax, 4
shl edx, 4
mov ebp, dword [esp + 0xc4]
mov esi, dword [esp + 0xc4]
sar ebx, 1
and ebp, 1
and esi, 2
add eax, dword [esp + 0xb8]
add edx, dword [esp + 0xb8]
mov dword [esp + 0x2f0], ebx
mov dword [esp + 0x64], ebp
mov dword [esp + 0x60], esi
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], edx
mov edi, dword [esp + 0x40]
lea edx, [ecx + 1]
mov ecx, dword [esp + 0x36c]
cmp edi, ecx
mov dword [esp + 0x364], edi
mov dword [esp + 0xb0], edx
jmp 0x8f85d0
add dword [esp + 0x364], 1
mov ebp, dword [esp + 0x36c]
cmp dword [esp + 0x364], ebp
jge 0x8f8b41
mov esi, dword [esp + 0xb0]
mov ebx, dword [esp + 0x364]
mov edi, dword [esp + 0xb08]
imul esi, dword [esp + 0xa1c]
lea edx, [esi + ebx + 1]
movsx ebp, word [edi + edx*4]
movsx eax, word [edi + edx*4 + 2]
imul ebp, dword [esp + 0xb0c]
imul eax, dword [esp + 0xb0c]
lea esi, [ebp + 0x8000]
lea edi, [eax + 0x8000]
mov ebp, esi
mov ecx, edi
sar ebp, 0x10
sar ecx, 0x10
cmp ebp, dword [esp + 0xa00]
mov dword [esp + 0x360], ecx
setg bl
cmp ebp, dword [esp + 0xa08]
setl al
or eax, ebx
test al, 1
jne 0x8f85ba
mov ebx, dword [esp + 0x9fc]
mov ecx, dword [esp + 0xa04]
cmp dword [esp + 0x360], ebx
setg dl
cmp dword [esp + 0x360], ecx
setl al
or eax, edx
test al, 1
jne 0x8f85ba
mov ecx, dword [esp + 0x360]
mov edx, dword [esp + 0x360]
shl ecx, 0xb
lea eax, [ebp + edx*8]
add ecx, ebp
and eax, 0x3f
add ecx, dword [esp + 0xa24]
cmp ebp, dword [esp + 0xa08]
mov dword [esp + 0x358], eax
mov dword [esp + 0x35c], ecx
jl 0x90335d
cmp ebp, dword [esp + 0xa00]
jg 0x903341
mov ebx, dword [esp + 0xa04]
cmp dword [esp + 0x360], ebx
jl 0x903325
mov eax, dword [esp + 0x9fc]
cmp dword [esp + 0x360], eax
jg 0x903309
mov edx, dword [esp + 0x35c]
mov ecx, dword [esp + 0x358]
mov ebx, dword [esp + 0x9ec]
cmp dword [ebx + ecx*4], edx
je 0x8f85ba
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
mov eax, dword [edx + 0x128]
mov edx, dword [esp + 0x64]
mov ebx, dword [ecx + 0x12c]
add edx, 1
mov dword [esp + 0x354], eax
mov eax, ebp
mov dword [esp + 0xac], edx
mov dword [esp + 0x350], ebx
mov edx, dword [esp + 0x5c]
movzx ecx, byte [esp + 0xac]
mov ebx, dword [esp + 0x360]
add edx, 0xe8
shl eax, cl
shl ebx, cl
mov dword [esp + 0x344], edx
mov dword [esp + 0x34c], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x348], ebx
add eax, 0xa8
test byte [esp + 0xc4], 4
mov dword [esp + 0x340], eax
je 0x8f9cf1
mov ecx, dword [esp + 0xb8]
cmp dword [ecx + 0x90], ebp
jg 0x9016a0
mov edi, dword [ecx + 0x94]
movzx ecx, byte [esp + 0xac]
shl edi, cl
cmp edi, dword [esp + 0x34c]
jl 0x9016a0
mov ebx, dword [esp + 0x360]
mov esi, dword [esp + 0xb8]
cmp dword [esi + 0x98], ebx
jg 0x9016a0
mov eax, dword [esi + 0x9c]
shl eax, cl
cmp eax, dword [esp + 0x348]
jl 0x9016a0
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0xaf0]
mov esi, dword [esp + 0xaf0]
add edx, edx
movzx ebx, word [ecx + 0x27b0]
movzx ecx, word [esi + 0x27b2]
add edx, 1
cmp dword [esi + 0x1d40], 1
mov dword [esp + 0x338], ebx
mov dword [esp + 0x334], edx
je 0x8fa6e8
mov edx, dword [esp + 0xb8]
mov esi, dword [esp + 0x34c]
mov ebx, dword [esp + 0x348]
mov edi, dword [esp + 0x34c]
add esi, dword [edx + 0x28]
add ebx, dword [edx + 0x2c]
test edi, edi
je 0x8fa3d4
mov eax, esi
sub eax, dword [edx + 8]
mov dword [esp + 0x318], eax
mov edi, dword [esp + 0x348]
test edi, edi
je 0x8fa400
mov eax, dword [esp + 0x354]
mov dword [esp + 0x10], 0x10
mov edi, dword [esp + 0x340]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0xb8]
mov esi, dword [esp + 0xaf0]
mov ecx, dword [edi]
mov dword [esp + 8], ecx
mov ebx, dword [edx + 0x58]
mov dword [esp], esi
mov dword [esp + 4], ebx
call dword [esp + 0xa14]
mov dword [esp + 0x33c], eax
mov ebx, dword [esp + 0x358]
mov edi, dword [esp + 0x35c]
mov esi, dword [esp + 0x9ec]
mov dword [esi + ebx*4], edi
mov eax, dword [esp + 0xa0c]
mov edi, dword [esp + 0x33c]
mov dword [eax + ebx*4], edi
movzx ecx, byte [esp + 0x9e8]
mov edx, ebp
mov eax, dword [esp + 0x360]
shl edx, cl
mov esi, dword [esp + 0x9f8]
shl eax, cl
sub edx, dword [esp + 0x9f4]
sub eax, dword [esp + 0x9f0]
movzx ebx, byte [esi + edx]
movzx edx, byte [esi + eax]
mov eax, dword [esp + 0xac8]
mov esi, dword [esp + 0xa28]
lea ecx, [ebx + edx]
mov ebx, dword [esp + 0x360]
imul ecx, dword [esp + 0xa20]
add ecx, edi
mov edi, eax
mov eax, dword [esp + 0xacc]
mov dword [esp + 0x38], ecx
cmp ecx, esi
cmovl esi, ecx
cmovl edi, ebp
cmovl eax, ebx
mov dword [esp + 0xa28], esi
mov dword [esp + 0xac8], edi
mov dword [esp + 0xacc], eax
jmp 0x8f85ba
mov ecx, dword [esp + 0xb0]
cmp ecx, dword [esp + 0x368]
jl 0x8f859a
mov ecx, dword [esp + 0xb8]
mov eax, dword [ecx + 0x8c]
cmp eax, 0xffffffff
je 0x8fc6fe
jl 0x8fb20e
cmp eax, 1
jle 0x8fc7e2
cmp eax, 0x400
jg 0x8fc762
cmp eax, 0x300
jg 0x8fe3ec
cmp eax, 0x200
jg 0x8ffb04
cmp eax, 0x100
jle 0x8ff2b9
mov eax, dword [esp + 0xa20]
mov edx, dword [esp + 0xa28]
mov ecx, dword [esp + 0xc4]
mov ebp, dword [esp + 0xb14]
mov ebx, dword [esp + 0xb10]
mov dword [esp + 0xc], eax
mov esi, dword [esp + 0xb04]
mov edi, dword [esp + 0xb00]
mov dword [esp], edx
mov eax, dword [esp + 0xaf0]
lea edx, [esp + 0xac8]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], ebx
mov dword [esp + 8], esi
mov dword [esp + 4], edi
call fcn.008de422
mov edx, eax
mov eax, dword [esp + 0xac8]
mov ebx, dword [esp + 0xaf4]
mov edi, dword [esp + 0xaf8]
mov dword [ebx], eax
mov eax, edx
mov esi, dword [esp + 0xacc]
mov dword [edi], esi
jmp 0x8f4ea0
mov esi, dword [esp + 0xac4]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
mov ebp, dword [ecx + 0x64]
mov ebx, dword [eax + 0x90]
mov edi, dword [esp + 0xb8]
mov dword [esp + 0xa6c], esi
mov esi, dword [esp + 0xb8]
mov edx, dword [edi + 0x98]
mov ecx, dword [esi + 0x94]
mov dword [esp + 0xa60], ebp
mov dword [esp + 0xa5c], ebx
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0xb8]
mov dword [esp + 0xa58], edx
mov eax, dword [ebp + 0x9c]
mov edi, dword [ebx + 0x150]
mov edx, dword [esp + 0xb8]
mov dword [esp + 0xa54], ecx
mov ecx, dword [esp + 0xb8]
mov esi, dword [edx + 0xa0]
mov ebp, dword [ecx + 0xa4]
mov dword [esp + 0xa50], eax
mov dword [esp + 0xa4c], edi
mov eax, dword [esp + 0xb8]
mov edi, dword [esp + 0xb8]
mov edx, dword [esp + 0xaf0]
mov ebx, dword [eax + 0x60]
mov dword [esp + 0xa48], esi
mov dword [esp + 0xa44], ebp
mov esi, dword [edx + 0xc88]
mov ebp, dword [edi + 0x68]
mov dword [esp + 0xa40], ebx
mov dword [esp + 0xa3c], ebp
mov dword [esp + 0xa64], 0xffffffff
mov dword [esp + 0xa68], esi
mov ebx, dword [esp + 0xad4]
mov esi, dword [esp + 0xad0]
mov eax, dword [esp + 0xa40]
mov ecx, ebx
lea edi, [esi + ebx*8]
shl ecx, 0xb
and edi, 0x3f
add ecx, esi
lea ebp, [ecx + ebp]
cmp dword [eax + edi*4], ebp
je 0x8f8dd0
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb00]
mov eax, dword [edx + 0x128]
mov edx, dword [esp + 0xb04]
shl ecx, 4
shl edx, 4
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xb8]
imul ebx, eax
add esi, dword [edx + ecx + 0xe8]
mov edx, dword [esp + 0x38]
lea eax, [esi + ebx]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xaf0]
mov esi, dword [edx + ecx + 0xa8]
mov dword [esp], eax
mov dword [esp + 4], esi
call dword [esp + 0xa68]
mov ebx, dword [esp + 0xa60]
mov edx, dword [esp + 0xa40]
mov dword [ebx + edi*4], eax
mov dword [edx + edi*4], ebp
mov ebx, dword [esp + 0xad4]
mov edi, dword [esp + 0xa64]
mov esi, dword [esp + 0xad0]
mov dword [esp + 0xa64], 0xffffffff
mov dword [esp + 0xa38], edi
mov edi, ebx
cmp dword [esp + 0xa38], 2
setne bl
xor eax, eax
cmp esi, dword [esp + 0xa5c]
setg al
test eax, ebx
je 0x8f8f23
mov edx, edi
mov ebx, dword [esp + 0xa3c]
mov ebp, dword [esp + 0xa40]
shl edx, 0xb
add edx, esi
lea ecx, [edx + ebx - 1]
lea ebx, [esi + edi*8 - 1]
and ebx, 0x3f
mov dword [esp + 0xa34], ecx
cmp dword [ebp + ebx*4], ecx
je 0x8f8f23
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb00]
lea ebp, [esi - 1]
mov edx, dword [eax + 0x128]
shl ecx, 4
mov eax, dword [esp + 0xb04]
shl eax, 4
mov dword [esp + 0x38], ecx
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0xb8]
imul edx, edi
mov eax, dword [eax + ecx + 0xe8]
add eax, ebp
add eax, edx
mov edx, dword [esp + 0x38]
mov dword [esp + 8], eax
mov eax, dword [edx + ecx + 0xa8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xaf0]
mov dword [esp], eax
call dword [esp + 0xa68]
mov ecx, dword [esp + 0xa34]
mov edx, dword [esp + 0xa40]
mov dword [edx + ebx*4], ecx
mov ecx, dword [esp + 0xa60]
lea edx, [ebp + ebp]
mov dword [ecx + ebx*4], eax
sub edx, dword [esp + 0xa48]
mov ebx, dword [esp + 0xa4c]
movzx ecx, byte [ebx + edx]
lea edx, [edi + edi]
sub edx, dword [esp + 0xa44]
movzx edx, byte [ebx + edx]
add ecx, edx
imul ecx, dword [esp + 0xabc]
add eax, ecx
cmp eax, dword [esp + 0xa6c]
jge 0x8f8f23
mov dword [esp + 0xad0], ebp
mov dword [esp + 0xad4], edi
mov dword [esp + 0xa6c], eax
mov dword [esp + 0xa64], 0
cmp dword [esp + 0xa38], 3
setne bl
xor edx, edx
cmp edi, dword [esp + 0xa58]
setg dl
test edx, ebx
je 0x8f904e
lea ebp, [edi - 1]
mov eax, dword [esp + 0xa40]
mov ecx, ebp
lea ebx, [esi + ebp*8]
shl ecx, 0xb
and ebx, 0x3f
add ecx, esi
add ecx, dword [esp + 0xa3c]
cmp dword [eax + ebx*4], ecx
mov dword [esp + 0xa30], ecx
je 0x8f904e
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb00]
mov edx, dword [eax + 0x128]
shl ecx, 4
mov eax, dword [esp + 0xb04]
shl eax, 4
mov dword [esp + 0x38], ecx
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0xb8]
imul edx, ebp
mov eax, dword [eax + ecx + 0xe8]
add eax, esi
add eax, edx
mov edx, dword [esp + 0x38]
mov dword [esp + 8], eax
mov eax, dword [edx + ecx + 0xa8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xaf0]
mov dword [esp], eax
call dword [esp + 0xa68]
mov ecx, dword [esp + 0xa30]
mov edx, dword [esp + 0xa40]
mov dword [edx + ebx*4], ecx
mov ecx, dword [esp + 0xa60]
lea edx, [esi + esi]
mov dword [ecx + ebx*4], eax
sub edx, dword [esp + 0xa48]
mov ebx, dword [esp + 0xa4c]
movzx ecx, byte [ebx + edx]
lea edx, [ebp + ebp]
sub edx, dword [esp + 0xa44]
movzx edx, byte [ebx + edx]
add ecx, edx
imul ecx, dword [esp + 0xabc]
add eax, ecx
cmp eax, dword [esp + 0xa6c]
jge 0x8f904e
mov dword [esp + 0xad0], esi
mov dword [esp + 0xad4], ebp
mov dword [esp + 0xa6c], eax
mov dword [esp + 0xa64], 1
mov ebp, dword [esp + 0xa38]
test ebp, ebp
setne bl
xor edx, edx
cmp esi, dword [esp + 0xa54]
setl dl
test edx, ebx
je 0x8f917f
mov eax, edi
mov ebx, dword [esp + 0xa3c]
mov edx, dword [esp + 0xa40]
shl eax, 0xb
add eax, esi
lea ecx, [eax + ebx + 1]
lea ebx, [esi + edi*8 + 1]
and ebx, 0x3f
mov dword [esp + 0xa2c], ecx
cmp dword [edx + ebx*4], ecx
je 0x8f917f
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb00]
lea ebp, [esi + 1]
mov edx, dword [eax + 0x128]
shl ecx, 4
mov eax, dword [esp + 0xb04]
shl eax, 4
mov dword [esp + 0x38], ecx
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0xb8]
imul edx, edi
mov eax, dword [eax + ecx + 0xe8]
add eax, ebp
add eax, edx
mov edx, dword [esp + 0x38]
mov dword [esp + 8], eax
mov eax, dword [edx + ecx + 0xa8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xaf0]
mov dword [esp], eax
call dword [esp + 0xa68]
mov ecx, dword [esp + 0xa2c]
mov edx, dword [esp + 0xa40]
mov dword [edx + ebx*4], ecx
mov ecx, dword [esp + 0xa60]
lea edx, [ebp + ebp]
mov dword [ecx + ebx*4], eax
sub edx, dword [esp + 0xa48]
mov ebx, dword [esp + 0xa4c]
movzx ecx, byte [ebx + edx]
lea edx, [edi + edi]
sub edx, dword [esp + 0xa44]
movzx edx, byte [ebx + edx]
add ecx, edx
imul ecx, dword [esp + 0xabc]
add eax, ecx
cmp eax, dword [esp + 0xa6c]
jge 0x8f917f
mov dword [esp + 0xad0], ebp
mov dword [esp + 0xad4], edi
mov dword [esp + 0xa6c], eax
mov dword [esp + 0xa64], 2
cmp dword [esp + 0xa38], 1
setne bl
xor edx, edx
cmp edi, dword [esp + 0xa50]
setl dl
test edx, ebx
je 0x8f92ab
add edi, 1
mov ebx, dword [esp + 0xa3c]
mov ecx, dword [esp + 0xa40]
mov eax, edi
shl eax, 0xb
add eax, esi
lea ebp, [eax + ebx]
lea ebx, [esi + edi*8]
and ebx, 0x3f
cmp dword [ecx + ebx*4], ebp
je 0x8f92ab
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb00]
mov edx, dword [eax + 0x128]
shl ecx, 4
mov eax, dword [esp + 0xb04]
shl eax, 4
mov dword [esp + 0x38], ecx
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0xb8]
imul edx, edi
mov eax, dword [eax + ecx + 0xe8]
add eax, esi
add eax, edx
mov edx, dword [esp + 0x38]
mov dword [esp + 8], eax
mov eax, dword [edx + ecx + 0xa8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xaf0]
mov dword [esp], eax
call dword [esp + 0xa68]
mov ecx, dword [esp + 0xa40]
lea edx, [esi + esi]
mov dword [ecx + ebx*4], ebp
mov ebp, dword [esp + 0xa60]
lea ecx, [edi + edi]
mov dword [ebp + ebx*4], eax
sub edx, dword [esp + 0xa48]
mov ebx, dword [esp + 0xa4c]
sub ecx, dword [esp + 0xa44]
movzx ebp, byte [ebx + edx]
movzx edx, byte [ebx + ecx]
add ebp, edx
imul ebp, dword [esp + 0xabc]
add eax, ebp
cmp eax, dword [esp + 0xa6c]
jge 0x8f92ab
mov dword [esp + 0xad4], edi
mov dword [esp + 0xad0], esi
mov dword [esp + 0xa6c], eax
mov ebx, dword [esp + 0xad4]
mov dword [esp + 0xa64], 3
jmp 0x8f8dd0
cmp dword [esp + 0xa64], 0xffffffff
jne 0x8f8dc9
mov edx, dword [esp + 0xa6c]
jmp 0x8f4e7e
cmp dword [edx + 0x98], edi
jg 0x8f66a1
mov edi, dword [edx + 0x9c]
shl edi, cl
cmp edi, dword [esp + 0x894]
jl 0x8f66a1
mov eax, dword [esp + 0x89c]
mov ecx, dword [esp + 0xaf0]
mov edx, dword [esp + 0xaf0]
add eax, eax
movzx ebx, word [ecx + 0x27b0]
movzx ecx, word [edx + 0x27b2]
add eax, 1
cmp dword [edx + 0x1d40], 1
mov dword [esp + 0x884], ebx
mov dword [esp + 0x880], eax
je 0x902b5c
mov edx, dword [esp + 0xb8]
mov esi, dword [esp + 0x898]
mov ebx, dword [esp + 0x894]
mov edi, dword [esp + 0x898]
add esi, dword [edx + 0x28]
add ebx, dword [edx + 0x2c]
test edi, edi
je 0x90133f
mov eax, esi
sub eax, dword [edx + 8]
mov dword [esp + 0x864], eax
mov edi, dword [esp + 0x894]
test edi, edi
je 0x901317
mov ecx, ebx
mov eax, dword [esp + 0xb8]
sub ecx, dword [eax + 0xc]
mov dword [esp + 0x860], ecx
mov eax, dword [esp + 0x880]
mov edi, dword [esp + 0x880]
mov ecx, ebp
and eax, ebx
and edi, esi
mov edx, dword [esp + 0x860]
shl eax, cl
mov ebp, dword [esp + 0x89c]
add edi, eax
mov eax, dword [esp + 0x864]
and eax, dword [esp + 0x880]
and dword [esp + 0x880], edx
mov dword [esp + 0x85c], edi
shl dword [esp + 0x880], cl
add eax, dword [esp + 0x880]
test ebp, ebp
mov dword [esp + 0x858], eax
jne 0x902919
mov ebp, esi
mov esi, dword [esp + 0xaf0]
mov edx, dword [esi + 0x2018]
sar ebp, 1
shl edx, 4
lea esi, [ebp + edx]
cmp esi, 0xfffffff0
jl 0x909d9e
mov eax, ebx
mov ebx, dword [esp + 0xaf0]
mov ecx, dword [ebx + 0x201c]
sar eax, 1
shl ecx, 4
lea ebx, [eax + ecx]
cmp ebx, 0xfffffff0
jl 0x909d82
mov edi, dword [esp + 0xaf0]
mov edi, dword [edi + 4]
cmp esi, edi
mov dword [esp + 0x854], edi
jg 0x909d66
mov edi, dword [esp + 0xaf0]
mov esi, dword [edi + 8]
cmp ebx, esi
mov dword [esp + 0x850], esi
jg 0x909d4a
mov esi, dword [esp + 0x864]
sar esi, 1
lea edi, [esi + edx]
cmp edi, 0xfffffff0
jl 0x9099d3
mov ebx, dword [esp + 0x860]
sar ebx, 1
lea edx, [ebx + ecx]
cmp edx, 0xfffffff0
jl 0x9099b7
cmp edi, dword [esp + 0x854]
jg 0x90999b
cmp edx, dword [esp + 0x850]
jg 0x90997f
mov ecx, dword [esp + 0x8a4]
mov edi, dword [esp + 0xb8]
mov edx, dword [edi + 0x13c]
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], ecx
mov edi, dword [esp + 0x890]
imul eax, ecx
add ebp, dword [edi]
lea eax, [ebp + eax]
mov ebp, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x85c]
mov ecx, dword [ebp + 0x58]
mov dword [esp], ecx
call dword [edx + eax*4]
mov ecx, dword [esp + 0x8a4]
mov edx, dword [ebp + 0x140]
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], ecx
imul ebx, ecx
add esi, dword [edi + 0x20]
lea eax, [esi + ebx]
mov dword [esp + 4], eax
mov ecx, dword [ebp + 0x58]
mov ebp, dword [esp + 0x858]
mov dword [esp], ecx
call dword [edx + ebp*4]
mov ecx, dword [esp + 0x8a4]
mov dword [esp + 0x10], 0x10
mov eax, dword [esp + 0x88c]
mov dword [esp + 0xc], ecx
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0xaf0]
mov edx, dword [eax]
mov dword [esp + 8], edx
mov esi, dword [ebp + 0x58]
mov dword [esp], ebx
mov dword [esp + 4], esi
call dword [esp + 0xa14]
mov dword [esp + 0x888], eax
jmp 0x8f70ee
mov edx, dword [esp + 0xb04]
mov ecx, dword [esp + 0xabc]
mov ebp, dword [esp + 0xb00]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0xac4]
lea edx, [esp + 0xad0]
mov eax, dword [esp + 0xaf0]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x10
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 4], ebp
mov dword [esp], ebx
call fcn.008f0e14
jmp 0x8f4e7c
cmp eax, dword [esp + 0x9fc]
cmovg eax, dword [esp + 0x9fc]
jmp 0x8f7fa8
cmp dword [esp + 0xa04], eax
jmp 0x8f7f9b
cmp esi, dword [esp + 0xa00]
cmovg esi, dword [esp + 0xa00]
jmp 0x8f7f79
cmp dword [esp + 0xa08], esi
jmp 0x8f7f6c
mov edi, dword [esp + 0x7c0]
mov esi, dword [esp + 0xb14]
mov eax, dword [esp + 0x7d0]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], edi
mov ebp, dword [esp + 0x7cc]
add eax, dword [edx + 0xe8]
imul ebp, edi
add eax, ebp
mov ebp, dword [esp + 0xaf0]
mov dword [esp + 8], eax
mov edx, dword [ecx + 0xa8]
mov dword [esp], ebp
mov dword [esp + 4], edx
call dword [esp + 0xa14]
test ebx, ebx
mov ebp, eax
jne 0x8ff31d
mov edi, dword [esp + 0x7c4]
mov ebx, dword [esp + 0x7c8]
mov esi, dword [esp + 0x9ec]
mov eax, dword [esp + 0xa0c]
mov dword [esi + edi*4], ebx
movzx ecx, byte [esp + 0x9e8]
mov dword [eax + edi*4], ebp
mov edx, dword [esp + 0x7d0]
mov edi, dword [esp + 0x7cc]
shl edx, cl
shl edi, cl
mov esi, dword [esp + 0x9f8]
sub edx, dword [esp + 0x9f4]
sub edi, dword [esp + 0x9f0]
mov ecx, dword [esp + 0xac8]
movzx eax, byte [esi + edi]
movzx ebx, byte [esi + edx]
mov edi, ecx
lea edx, [ebx + eax]
mov esi, dword [esp + 0xa28]
mov eax, dword [esp + 0xacc]
imul edx, dword [esp + 0xa20]
mov ecx, dword [esp + 0x7d0]
mov ebx, dword [esp + 0x7cc]
add ebp, edx
mov dword [esp + 0x38], ebp
cmp ebp, esi
cmovl esi, ebp
cmovl edi, ecx
cmovl eax, ebx
mov dword [esp + 0xac8], edi
mov dword [esp + 0xacc], eax
mov dword [esp + 0xa28], esi
mov esi, dword [esp + 0xafc]
mov edi, dword [esi + 0x20]
mov ebp, dword [esi + 0x24]
mov dword [esp + 0x48], edi
movzx ecx, byte [esp + 0x9e8]
mov eax, dword [esp + 0x48]
mov edx, ebp
sar eax, cl
sar edx, cl
sub eax, 1
cmp eax, dword [esp + 0xa00]
jle 0x8fab06
mov edi, dword [esp + 0xa00]
cmp dword [esp + 0xa08], edi
jle 0x8faaeb
mov eax, dword [esp + 0xa08]
mov dword [esp + 0x764], eax
cmp edx, dword [esp + 0x9fc]
jle 0x8fafbe
mov esi, dword [esp + 0x9fc]
cmp dword [esp + 0xa04], esi
jle 0x8fafa3
mov edx, dword [esp + 0xa04]
mov dword [esp + 0x760], edx
mov esi, dword [esp + 0x760]
mov ecx, dword [esp + 0x764]
mov eax, dword [esp + 0x760]
shl esi, 0xb
lea edi, [ecx + eax*8]
mov ebx, dword [esp + 0xa08]
add esi, dword [esp + 0x764]
and edi, 0x3f
add esi, dword [esp + 0xa24]
cmp ecx, ebx
mov dword [esp + 0x758], edi
mov dword [esp + 0x75c], esi
jl 0x9042f1
mov edx, dword [esp + 0xa00]
cmp dword [esp + 0x764], edx
jg 0x9042d5
mov ebx, dword [esp + 0xa04]
cmp dword [esp + 0x760], ebx
jl 0x90464b
mov ecx, dword [esp + 0x9fc]
cmp dword [esp + 0x760], ecx
jg 0x90462f
mov edi, dword [esp + 0x75c]
mov esi, dword [esp + 0x758]
mov eax, dword [esp + 0x9ec]
cmp dword [eax + esi*4], edi
je 0x8fad84
mov esi, dword [esp + 0xb8]
mov eax, dword [esp + 0xc4]
mov edx, dword [esp + 0xb8]
and eax, 1
mov ebx, dword [esi + 0x12c]
mov edi, dword [esp + 0x764]
mov dword [esp + 0x750], ebx
mov ebx, eax
mov ebp, dword [edx + 0x128]
add ebx, 1
mov dword [esp + 0x754], ebp
mov edx, dword [esp + 0x760]
mov ecx, ebx
mov ebp, dword [esp + 0xb04]
mov esi, dword [esp + 0xc4]
shl edi, cl
shl edx, cl
shl ebp, 4
mov dword [esp + 0x748], edi
mov edi, dword [esp + 0xb00]
mov ecx, dword [esp + 0xb8]
shl edi, 4
mov dword [esp + 0x744], edx
lea edx, [ebp + ecx]
lea ecx, [edi + ecx]
mov dword [esp + 0x74c], eax
and esi, 2
lea eax, [edx + 0xe8]
lea ebp, [ecx + 0xa8]
test byte [esp + 0xc4], 4
mov dword [esp + 0x740], eax
mov dword [esp + 0x73c], ebp
je 0x8fab12
mov ecx, dword [esp + 0x764]
mov eax, dword [esp + 0xb8]
cmp dword [eax + 0x90], ecx
jg 0x8f990d
mov edi, dword [eax + 0x94]
mov ecx, ebx
shl edi, cl
cmp edi, dword [esp + 0x748]
jge 0x8fe4f8
mov dword [esp + 8], 0x7d
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd30f5c
call fcn.00a5b730
and eax, 0xff
mov edx, dword [esp + 0xabc]
mov ebp, dword [esp + 0xb04]
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], edx
mov ebx, dword [esp + 0xb00]
mov edi, dword [esp + 0xac4]
lea edx, [esp + 0xad0]
mov eax, dword [esp + 0xaf0]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x10
mov dword [esp + 0x10], 0
mov dword [esp + 8], ebp
mov dword [esp + 4], ebx
mov dword [esp], edi
call fcn.008d96ea
jmp 0x8f4e7c
cmp dword [esp + 0xaa4], eax
jmp 0x8f698c
cmp edx, dword [esp + 0xaa0]
mov esi, dword [esp + 0xaa0]
cmovle esi, edx
jmp 0x8f6971
cmp dword [esp + 0xaa8], edx
jmp 0x8f6964
cmp dword [esp + 0xaa4], eax
jmp 0x8f4b60
cmp edx, dword [esp + 0xaa0]
mov esi, dword [esp + 0xaa0]
cmovle esi, edx
jmp 0x8f4b45
cmp dword [esp + 0xaa8], edx
jmp 0x8f4b38
mov edx, dword [esp + 0x8f8]
mov eax, dword [esp + 0x8f8]
mov ecx, edi
and edx, ebx
and eax, esi
mov edi, dword [esp + 0x914]
shl edx, cl
add eax, edx
mov edx, dword [esp + 0x8d4]
mov dword [esp + 0x8d0], eax
mov eax, dword [esp + 0x8d8]
and eax, dword [esp + 0x8f8]
and dword [esp + 0x8f8], edx
shl dword [esp + 0x8f8], cl
add eax, dword [esp + 0x8f8]
test edi, edi
mov dword [esp + 0x8cc], eax
jne 0x9036c7
sar esi, 1
mov dword [esp + 0x8c0], esi
mov esi, dword [esp + 0xaf0]
mov edx, dword [esi + 0x2018]
mov esi, dword [esp + 0x8c0]
shl edx, 4
add esi, edx
cmp esi, 0xfffffff0
jl 0x905b08
mov eax, ebx
mov ebx, dword [esp + 0xaf0]
mov ecx, dword [ebx + 0x201c]
sar eax, 1
shl ecx, 4
lea ebx, [eax + ecx]
cmp ebx, 0xfffffff0
jl 0x905aec
mov edi, dword [esp + 0xaf0]
mov edi, dword [edi + 4]
cmp esi, edi
mov dword [esp + 0x8bc], edi
jg 0x905b94
mov edi, dword [esp + 0xaf0]
mov esi, dword [edi + 8]
cmp ebx, esi
mov dword [esp + 0x8b8], esi
jg 0x905ad0
mov esi, dword [esp + 0x8d8]
sar esi, 1
lea edi, [esi + edx]
cmp edi, 0xfffffff0
jl 0x90559f
mov ebx, dword [esp + 0x8d4]
sar ebx, 1
lea edx, [ebx + ecx]
cmp edx, 0xfffffff0
jl 0x905583
cmp edi, dword [esp + 0x8bc]
jg 0x905567
cmp edx, dword [esp + 0x8b8]
jg 0x90554b
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0x908]
mov edx, dword [ecx + 0x13c]
mov ecx, dword [esp + 0x91c]
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], ecx
imul eax, ecx
mov ecx, dword [esp + 0x8d0]
mov edi, dword [edi]
add dword [esp + 0x8c0], edi
mov edi, dword [esp + 0xb8]
add eax, dword [esp + 0x8c0]
mov dword [esp + 4], eax
mov eax, dword [edi + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4]
mov ecx, dword [esp + 0x91c]
mov edi, dword [esp + 0xb8]
mov edx, dword [edi + 0x140]
mov eax, dword [esp + 0x908]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0x10
imul ebx, ecx
mov ecx, dword [esp + 0x8cc]
add esi, dword [eax + 0x20]
lea edi, [esi + ebx]
mov ebx, dword [esp + 0xb8]
mov dword [esp + 4], edi
mov eax, dword [ebx + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4]
mov ecx, dword [esp + 0x91c]
mov dword [esp + 0x10], 0x10
mov edi, dword [esp + 0x904]
mov dword [esp + 0xc], ecx
mov edx, dword [esp + 0xb8]
mov esi, dword [esp + 0xaf0]
mov eax, dword [edi]
mov dword [esp + 8], eax
mov ebx, dword [edx + 0x58]
mov dword [esp], esi
mov dword [esp + 4], ebx
call dword [esp + 0xa14]
mov dword [esp + 0x900], eax
jmp 0x8f78c1
mov ebx, dword [esp + 0xb14]
mov ecx, dword [esp + 0x354]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
mov edx, dword [esp + 0x360]
mov ebx, dword [eax + 0xe8]
imul edx, dword [esp + 0x354]
mov ecx, dword [esp + 0x58]
add ebx, ebp
add ebx, edx
mov edx, dword [esp + 0xaf0]
mov dword [esp + 8], ebx
mov eax, dword [ecx + 0xa8]
mov dword [esp], edx
mov dword [esp + 4], eax
call dword [esp + 0xa14]
mov ebx, dword [esp + 0x60]
test ebx, ebx
mov dword [esp + 0x33c], eax
je 0x8f8a92
mov edx, dword [esp + 0xb8]
mov ebx, dword [esp + 0x360]
mov ecx, ebp
mov eax, dword [edx + 0x58]
and ecx, 1
mov edx, dword [esp + 0xb10]
and ebx, 1
shl edx, 4
sar esi, 0x11
lea ebx, [ecx + ebx*2]
mov ecx, dword [esp + 0x354]
sar edi, 0x11
lea ebx, [edx + ebx*4]
shl ecx, 4
imul edi, dword [esp + 0x350]
add ecx, eax
mov edx, ebx
mov eax, dword [esp + 0xb8]
add edx, dword [eax + 0x13c]
mov dword [esp + 0x2f4], ecx
mov eax, dword [esp + 0x350]
mov ecx, dword [esp + 0x2f0]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x344]
mov eax, dword [ecx + 4]
add eax, esi
add eax, edi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2f4]
mov dword [esp], eax
call dword [edx + 0x10]
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0x2f0]
mov eax, dword [esp + 0x350]
add ebx, dword [edx + 0x13c]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
mov edx, dword [esp + 0x344]
add esi, dword [edx + 8]
add esi, edi
mov dword [esp + 4], esi
mov esi, dword [esp + 0x2f4]
add esi, 8
mov dword [esp], esi
call dword [ebx + 0x10]
mov ebx, dword [esp + 0x2f0]
mov ecx, dword [esp + 0x350]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x340]
mov edx, dword [eax + 4]
mov edi, dword [esp + 0x2f4]
mov ebx, dword [esp + 0xaf0]
mov dword [esp + 8], edx
mov dword [esp + 4], edi
mov dword [esp], ebx
call dword [esp + 0xa10]
mov ebx, dword [esp + 0x33c]
mov ecx, dword [esp + 0x2f0]
add ebx, eax
mov eax, dword [esp + 0x350]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x340]
mov edi, dword [edx + 8]
mov dword [esp + 4], esi
mov esi, dword [esp + 0xaf0]
mov dword [esp + 8], edi
mov dword [esp], esi
call dword [esp + 0xa10]
add ebx, eax
mov dword [esp + 0x33c], ebx
jmp 0x8f8a92
mov ebx, dword [esp + 0xa18]
mov ecx, dword [esp + 0xb08]
mov esi, dword [esp + 0xb08]
movsx edi, word [ecx + ebx*4 + 4]
movsx eax, word [esi + ebx*4 + 6]
imul edi, dword [esp + 0xb0c]
imul eax, dword [esp + 0xb0c]
lea ecx, [edi + 0x8000]
add eax, 0x8000
sar ecx, 0x10
sar eax, 0x10
cmp ecx, dword [esp + 0xa00]
jle 0x8fb57e
mov ebp, dword [esp + 0xa00]
cmp dword [esp + 0xa08], ebp
jle 0x8fb563
mov edx, dword [esp + 0xa08]
mov dword [esp + 0x438], edx
cmp eax, dword [esp + 0x9fc]
jle 0x8fb557
mov esi, dword [esp + 0x9fc]
cmp dword [esp + 0xa04], esi
jle 0x8fb543
mov eax, dword [esp + 0xa04]
mov dword [esp + 0x434], eax
mov ebx, dword [esp + 0x438]
mov eax, dword [esp + 0xa08]
mov ebp, dword [esp + 0x434]
mov ecx, dword [esp + 0x434]
shl ebp, 0xb
lea edi, [ebx + ecx*8]
add ebp, dword [esp + 0x438]
and edi, 0x3f
add ebp, dword [esp + 0xa24]
cmp ebx, eax
mov dword [esp + 0x42c], edi
mov dword [esp + 0x430], ebp
jl 0x9091c0
mov edx, dword [esp + 0xa00]
cmp dword [esp + 0x438], edx
jg 0x906bc8
mov esi, dword [esp + 0xa04]
cmp dword [esp + 0x434], esi
jl 0x906bac
mov eax, dword [esp + 0x9fc]
cmp dword [esp + 0x434], eax
jg 0x907d18
mov ebx, dword [esp + 0x430]
mov ecx, dword [esp + 0x42c]
mov edi, dword [esp + 0x9ec]
cmp dword [edi + ecx*4], ebx
je 0x8fba4f
mov esi, dword [esp + 0xc4]
mov ebp, dword [esp + 0xb8]
mov edi, dword [esp + 0xb8]
and esi, 1
mov eax, dword [ebp + 0x128]
mov edx, dword [esp + 0x438]
mov dword [esp + 0x420], esi
add esi, 1
mov ebp, dword [esp + 0xb04]
mov ecx, esi
mov ebx, dword [edi + 0x12c]
shl ebp, 4
shl edx, cl
mov edi, dword [esp + 0xb8]
mov dword [esp + 0x428], eax
mov dword [esp + 0xc0], esi
mov dword [esp + 0x41c], edx
mov esi, dword [esp + 0x434]
lea edx, [ebp + edi]
mov eax, dword [esp + 0xb00]
shl esi, cl
shl eax, 4
lea ecx, [edx + 0xe8]
mov dword [esp + 0x424], ebx
mov dword [esp + 0x414], ecx
mov ebx, dword [esp + 0xc4]
lea ecx, [eax + edi]
and ebx, 2
lea ebp, [ecx + 0xa8]
test byte [esp + 0xc4], 4
mov dword [esp + 0x418], esi
mov dword [esp + 0x410], ebp
je 0x8fb93b
mov ecx, dword [esp + 0x438]
cmp dword [edi + 0x90], ecx
jg 0x8fa0e1
mov edx, dword [edi + 0x94]
movzx ecx, byte [esp + 0xc0]
shl edx, cl
cmp edx, dword [esp + 0x41c]
jge 0x900344
mov dword [esp + 8], 0x7d
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd30f5c
call fcn.00a5b730
mov dword [esp + 8], 0x42d
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd3166c
call fcn.00a5b730
sub edx, ebx
lea ebp, [edi + 4]
mov dword [esp + 0x9cc], 0
mov dword [esp + 0x9c0], edx
mov dword [esp + 0x9bc], ebp
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x9cc]
mov ecx, dword [esp + 0x9cc]
mov ebp, dword [eax + edx*8 + 0x28]
mov ebx, dword [esp + 0xb8]
mov dword [esp + 0x9c8], ebp
mov ebp, dword [eax + ecx*8 + 0x2c]
mov eax, dword [esp + 0x9c0]
imul eax, dword [ebx + ecx*8 + 8]
mov ebx, dword [esp + 0x9cc]
movzx ecx, byte [esp + 0x9bc]
and ebx, 1
cdq
idiv dword [esp + 0x9d4]
mov edx, ebx
shl edx, cl
mov ecx, dword [esp + 0xb8]
add eax, edx
mov edx, dword [esp + 0x9cc]
mov dword [esp + 0x9c4], eax
mov eax, dword [esp + 0x9c0]
imul eax, dword [ecx + edx*8 + 0xc]
movzx ecx, byte [esp + 0x9bc]
cdq
idiv dword [esp + 0x9d4]
mov edx, dword [esp + 0x9cc]
sar edx, 1
mov dword [esp + 0x38], edx
shl edx, cl
mov ecx, esi
add eax, edx
mov edx, dword [esp + 0x9c8]
mov dword [esp + 0x9b8], eax
mov eax, dword [esp + 0x9d0]
and edx, dword [esp + 0x9d0]
and eax, ebp
shl eax, cl
add edx, eax
mov eax, dword [esp + 0x9b8]
and eax, dword [esp + 0x9d0]
mov dword [esp + 0x9b4], edx
mov edx, dword [esp + 0x9c4]
shl eax, cl
and edx, dword [esp + 0x9d0]
mov ecx, dword [esp + 0x38]
add edx, eax
imul ecx, dword [esp + 0x9e4]
mov dword [esp + 0x9b0], edx
mov edx, dword [esp + 0xb8]
add ebx, ecx
mov eax, dword [edx + 0x58]
test edi, edi
lea ebx, [eax + ebx*8]
je 0x8fa314
mov eax, dword [esp + 0x9e4]
mov edx, dword [edx + 0x144]
mov ecx, dword [esp + 0x9dc]
mov dword [esp + 8], eax
sar dword [esp + 0x9c8], 2
sar ebp, 2
mov ecx, dword [ecx]
imul ebp, eax
mov dword [esp], ebx
add dword [esp + 0x9c8], ecx
mov eax, dword [esp + 0x9c8]
add eax, ebp
mov ebp, dword [esp + 0x9b4]
mov dword [esp + 4], eax
call dword [edx + ebp*4 + 0x40]
mov ecx, dword [esp + 0xb8]
sar dword [esp + 0x9b8], 2
mov edx, dword [ecx + 0x148]
mov ecx, dword [esp + 0x9e4]
mov eax, dword [esp + 0x9dc]
mov dword [esp + 8], ecx
sar dword [esp + 0x9c4], 2
mov ebp, dword [eax + 0x20]
mov eax, dword [esp + 0x9b8]
mov dword [esp], ebx
imul eax, ecx
add dword [esp + 0x9c4], ebp
mov ebx, dword [esp + 0x9b0]
mov dword [esp + 0x9b8], eax
mov ecx, dword [esp + 0x9c4]
add ecx, dword [esp + 0x9b8]
mov dword [esp + 4], ecx
call dword [edx + ebx*4 + 0x40]
add dword [esp + 0x9cc], 1
cmp dword [esp + 0x9cc], 3
jle 0x8fa137
jmp 0x8f77df
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x9dc]
sar dword [esp + 0x9c8], 1
mov edx, dword [ecx + 0x13c]
mov ecx, dword [esp + 0x9e4]
mov dword [esp + 0xc], 8
mov dword [esp + 8], ecx
sar ebp, 1
mov eax, dword [eax]
imul ebp, ecx
mov dword [esp], ebx
add dword [esp + 0x9c8], eax
mov ecx, dword [esp + 0x9b4]
mov eax, dword [esp + 0x9c8]
add eax, ebp
mov dword [esp + 4], eax
call dword [edx + ecx*4 + 0x10]
mov eax, dword [esp + 0xb8]
mov ebp, dword [esp + 0x9dc]
mov edx, dword [eax + 0x140]
mov eax, dword [esp + 0x9e4]
mov dword [esp + 0xc], 8
mov dword [esp + 8], eax
sar dword [esp + 0x9c4], 1
sar dword [esp + 0x9b8], 1
mov ecx, dword [ebp + 0x20]
mov ebp, dword [esp + 0x9b8]
mov dword [esp], ebx
add dword [esp + 0x9c4], ecx
imul ebp, eax
mov ebx, dword [esp + 0x9b0]
mov ecx, dword [esp + 0x9c4]
add ecx, ebp
mov dword [esp + 4], ecx
call dword [edx + ebx*4 + 0x10]
jmp 0x8fa2f9
mov edx, ecx
mov eax, dword [esp + 0xb8]
sub edx, dword [esp + 0x338]
mov edi, edx
imul edi, dword [eax + 8]
mov eax, edi
cdq
idiv dword [esp + 0x338]
mov dword [esp + 0x318], eax
jmp 0x8f8864
mov esi, dword [esp + 0x844]
cmp dword [edx + 0x98], esi
jg 0x8f73ab
mov ebx, dword [edx + 0x9c]
shl ebx, cl
cmp ebx, dword [esp + 0x82c]
jl 0x8f73ab
mov eax, dword [esp + 0x834]
mov ecx, dword [esp + 0xaf0]
mov edx, dword [esp + 0xaf0]
add eax, eax
movzx esi, word [ecx + 0x27b0]
mov ebx, dword [esp + 0xaf0]
add eax, 1
cmp dword [edx + 0x1d40], 1
mov dword [esp + 0x81c], esi
movzx ecx, word [ebx + 0x27b2]
mov dword [esp + 0x818], eax
je 0x903c0b
mov ebx, dword [esp + 0xb8]
mov esi, dword [esp + 0x830]
mov eax, dword [esp + 0xb8]
add esi, dword [ebx + 0x28]
mov edx, dword [esp + 0x830]
mov ebx, dword [esp + 0x82c]
add ebx, dword [eax + 0x2c]
test edx, edx
je 0x903bdf
mov edx, esi
sub edx, dword [eax + 8]
mov dword [esp + 0x7f8], edx
mov eax, dword [esp + 0x82c]
test eax, eax
je 0x903bb7
mov ecx, ebx
mov edx, dword [esp + 0xb8]
sub ecx, dword [edx + 0xc]
mov dword [esp + 0x7f4], ecx
mov edx, dword [esp + 0x818]
mov eax, dword [esp + 0x818]
mov ecx, edi
and edx, ebx
and eax, esi
mov edi, dword [esp + 0x834]
shl edx, cl
add eax, edx
mov edx, dword [esp + 0x7f4]
mov dword [esp + 0x7f0], eax
mov eax, dword [esp + 0x7f8]
and eax, dword [esp + 0x818]
and dword [esp + 0x818], edx
shl dword [esp + 0x818], cl
add eax, dword [esp + 0x818]
test edi, edi
mov dword [esp + 0x7ec], eax
jne 0x90398a
sar esi, 1
mov dword [esp + 0x7e0], esi
mov esi, dword [esp + 0xaf0]
mov edx, dword [esi + 0x2018]
mov esi, dword [esp + 0x7e0]
shl edx, 4
add esi, edx
cmp esi, 0xfffffff0
jl 0x904b62
mov eax, ebx
mov ebx, dword [esp + 0xaf0]
mov ecx, dword [ebx + 0x201c]
sar eax, 1
shl ecx, 4
lea ebx, [eax + ecx]
cmp ebx, 0xfffffff0
jl 0x904b46
mov edi, dword [esp + 0xaf0]
mov edi, dword [edi + 4]
cmp esi, edi
mov dword [esp + 0x7dc], edi
jg 0x904b2a
mov edi, dword [esp + 0xaf0]
mov esi, dword [edi + 8]
cmp ebx, esi
mov dword [esp + 0x7d8], esi
jg 0x904b0e
mov esi, dword [esp + 0x7f8]
sar esi, 1
lea edi, [esi + edx]
cmp edi, 0xfffffff0
jl 0x905b78
mov ebx, dword [esp + 0x7f4]
sar ebx, 1
lea edx, [ebx + ecx]
cmp edx, 0xfffffff0
jl 0x905b5c
cmp edi, dword [esp + 0x7dc]
jg 0x905b40
cmp edx, dword [esp + 0x7d8]
jg 0x905b24
mov edi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x828]
imul eax, ebp
mov edx, dword [edi + 0x13c]
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], ebp
mov ecx, dword [ecx]
imul ebx, ebp
add dword [esp + 0x7e0], ecx
add eax, dword [esp + 0x7e0]
mov dword [esp + 4], eax
mov ecx, dword [edi + 0x58]
mov edi, dword [esp + 0x7f0]
mov dword [esp], ecx
call dword [edx + edi*4]
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x828]
mov edx, dword [eax + 0x140]
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], ebp
add esi, dword [ecx + 0x20]
mov ecx, dword [esp + 0x7ec]
lea edi, [esi + ebx]
mov ebx, dword [esp + 0xb8]
mov dword [esp + 4], edi
mov eax, dword [ebx + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4]
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], 0x10
mov edx, dword [esp + 0x824]
mov eax, dword [edx]
mov ebx, dword [esp + 0xb8]
mov ebp, dword [esp + 0xaf0]
mov dword [esp + 8], eax
mov esi, dword [ebx + 0x58]
mov dword [esp], ebp
mov dword [esp + 4], esi
call dword [esp + 0xa14]
mov dword [esp + 0x820], eax
jmp 0x8f7e75
mov edi, dword [esp + 0x64]
sub ecx, ebx
mov dword [esp + 0x330], 0
add edi, 4
mov dword [esp + 0x32c], ecx
mov dword [esp + 0x328], edi
mov eax, dword [esp + 0x330]
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0x34c]
mov esi, dword [esp + 0x348]
mov ebx, dword [esp + 0x34c]
add ecx, dword [edx + eax*8 + 0x28]
add esi, dword [edx + eax*8 + 0x2c]
test ebx, ebx
mov dword [esp + 0x38], ecx
je 0x8fa895
mov ebx, ecx
sub ebx, dword [edx + eax*8 + 8]
mov eax, dword [esp + 0x348]
test eax, eax
je 0x8fa975
mov ebx, dword [esp + 0x330]
mov eax, dword [esp + 0x32c]
mov edi, dword [esp + 0xb8]
imul eax, dword [edi + ebx*8 + 8]
movzx ecx, byte [esp + 0x328]
cdq
idiv dword [esp + 0x338]
mov edx, ebx
and edx, 1
shl edx, cl
lea ebx, [eax + edx]
jmp 0x8fa747
mov eax, esi
mov ebp, edi
mov edx, dword [esp + 0xb10]
and eax, 1
and ebp, 1
shl edx, 4
lea ebx, [eax + ebp*2]
mov ebp, dword [esp + 0x8a4]
mov ecx, dword [esp + 0xb8]
lea ebx, [edx + ebx*4]
shl ebp, 4
mov eax, dword [esp + 0xb8]
add ebp, dword [ecx + 0x58]
mov edx, ebx
mov ecx, dword [esp + 0xb14]
add edx, dword [eax + 0x13c]
sar ecx, 1
mov eax, dword [esp + 0x8a0]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x84c], ecx
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x890]
sar esi, 1
sar edi, 1
mov eax, dword [ecx + 4]
imul edi, dword [esp + 0x8a0]
mov dword [esp], ebp
add eax, esi
add eax, edi
mov dword [esp + 4], eax
call dword [edx + 0x10]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x84c]
mov ecx, dword [esp + 0x8a0]
add ebx, dword [eax + 0x13c]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov eax, dword [esp + 0x890]
add esi, dword [eax + 8]
add esi, edi
mov dword [esp + 4], esi
lea esi, [ebp + 8]
mov dword [esp], esi
call dword [ebx + 0x10]
mov edx, dword [esp + 0x84c]
mov ecx, dword [esp + 0x8a0]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ecx
mov ebx, dword [esp + 0x88c]
mov edi, dword [ebx + 4]
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov edi, dword [esp + 0xaf0]
mov dword [esp], edi
call dword [esp + 0xa10]
mov ebx, dword [esp + 0x888]
mov ebp, dword [esp + 0x8a0]
add ebx, eax
mov eax, dword [esp + 0x84c]
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x88c]
mov ecx, dword [edx + 8]
mov dword [esp + 4], esi
mov dword [esp], edi
mov dword [esp + 8], ecx
call dword [esp + 0xa10]
add ebx, eax
mov dword [esp + 0x888], ebx
jmp 0x8f70ee
cmp eax, dword [esp + 0xa00]
cmovg eax, dword [esp + 0xa00]
mov dword [esp + 0x764], eax
jmp 0x8f975a
cmp dword [esp + 0xa08], eax
jmp 0x8f9746
mov edi, dword [esp + 0xb14]
mov eax, dword [esp + 0x764]
mov ebx, dword [esp + 0xaf0]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x754]
mov dword [esp + 0xc], edi
add eax, dword [edx + 0xe8]
mov edx, dword [esp + 0x760]
imul edx, edi
add eax, edx
mov dword [esp + 8], eax
mov ebp, dword [ecx + 0xa8]
mov dword [esp], ebx
mov dword [esp + 4], ebp
call dword [esp + 0xa14]
test esi, esi
mov dword [esp + 0x738], eax
je 0x8facbc
mov esi, dword [esp + 0x764]
mov ebp, dword [esp + 0x760]
mov edx, dword [esp + 0xb10]
and esi, 1
and ebp, 1
shl edx, 4
lea ebx, [esi + ebp*2]
mov ecx, dword [esp + 0xb14]
mov ebp, edi
lea ebx, [edx + ebx*4]
sar ecx, 1
mov edi, dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
mov esi, dword [esp + 0x750]
mov edx, ebx
shl ebp, 4
add edx, dword [eax + 0x13c]
mov dword [esp + 0x6fc], ecx
add ebp, dword [edi + 0x58]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], esi
mov edi, dword [esp + 0x740]
mov esi, dword [esp + 0x764]
mov eax, dword [edi + 4]
mov edi, dword [esp + 0x760]
sar esi, 1
sar edi, 1
add eax, esi
mov dword [esp], ebp
imul edi, dword [esp + 0x750]
add eax, edi
mov dword [esp + 4], eax
call dword [edx + 0x10]
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0x6fc]
mov ecx, dword [esp + 0x750]
add ebx, dword [edx + 0x13c]
mov edx, dword [esp + 0x740]
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
add esi, dword [edx + 8]
add esi, edi
mov dword [esp + 4], esi
lea esi, [ebp + 8]
mov dword [esp], esi
call dword [ebx + 0x10]
mov ecx, dword [esp + 0x750]
mov eax, dword [esp + 0x6fc]
mov dword [esp + 0xc], ecx
mov ebx, dword [esp + 0x73c]
mov dword [esp + 0x10], eax
mov edi, dword [ebx + 4]
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov edi, dword [esp + 0xaf0]
mov dword [esp], edi
call dword [esp + 0xa10]
mov ebx, dword [esp + 0x738]
mov edx, dword [esp + 0x6fc]
add ebx, eax
mov eax, dword [esp + 0x750]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov ebp, dword [esp + 0x73c]
mov ecx, dword [ebp + 8]
mov dword [esp + 4], esi
mov dword [esp], edi
mov dword [esp + 8], ecx
call dword [esp + 0xa10]
add ebx, eax
mov dword [esp + 0x738], ebx
mov eax, dword [esp + 0x758]
mov ebx, dword [esp + 0x75c]
mov ebp, dword [esp + 0x9ec]
mov dword [ebp + eax*4], ebx
mov edi, dword [esp + 0xa0c]
mov ebp, dword [esp + 0x738]
mov dword [edi + eax*4], ebp
movzx ecx, byte [esp + 0x9e8]
mov edx, dword [esp + 0x764]
mov eax, dword [esp + 0x760]
shl edx, cl
mov esi, dword [esp + 0x9f8]
shl eax, cl
sub edx, dword [esp + 0x9f4]
sub eax, dword [esp + 0x9f0]
movzx ebx, byte [esi + edx]
mov edx, dword [esp + 0xac8]
movzx edi, byte [esi + eax]
mov esi, dword [esp + 0xa28]
mov eax, dword [esp + 0x764]
lea ecx, [ebx + edi]
mov edi, edx
mov ebx, dword [esp + 0x760]
imul ecx, dword [esp + 0xa20]
add ecx, ebp
mov ebp, dword [esp + 0xacc]
mov dword [esp + 0x38], ecx
cmp ecx, esi
cmovl esi, ecx
cmovl edi, eax
cmovl ebp, ebx
mov dword [esp + 0xac8], edi
mov dword [esp + 0xacc], ebp
mov eax, dword [esp + 0xafc]
mov dword [esp + 0xa28], esi
mov ecx, dword [eax + 0x20]
mov ebp, dword [eax + 0x24]
mov dword [esp + 0x48], ecx
movzx ecx, byte [esp + 0x9e8]
mov edx, ebp
sar dword [esp + 0x48], cl
sar edx, cl
mov eax, dword [esp + 0x48]
add eax, 1
cmp eax, dword [esp + 0xa00]
jle 0x8fc0e8
mov esi, dword [esp + 0xa00]
cmp dword [esp + 0xa08], esi
jle 0x8fc0cd
mov edi, dword [esp + 0xa08]
mov dword [esp + 0x6f8], edi
cmp edx, dword [esp + 0x9fc]
jle 0x8fc5aa
mov eax, dword [esp + 0x9fc]
cmp dword [esp + 0xa04], eax
jle 0x8fc58f
mov edx, dword [esp + 0xa04]
mov dword [esp + 0x6f4], edx
mov edi, dword [esp + 0x6f4]
mov ebx, dword [esp + 0x6f8]
mov esi, dword [esp + 0x6f4]
shl edi, 0xb
lea ecx, [ebx + esi*8]
mov ebp, dword [esp + 0xa08]
add edi, dword [esp + 0x6f8]
and ecx, 0x3f
add edi, dword [esp + 0xa24]
cmp ebx, ebp
mov dword [esp + 0x6ec], ecx
mov dword [esp + 0x6f0], edi
jl 0x907dc0
mov eax, dword [esp + 0xa00]
cmp dword [esp + 0x6f8], eax
jg 0x907da4
mov dword [esp + 8], 0x7d
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd30f5c
call fcn.00a5b730
cmp edx, dword [esp + 0x9fc]
cmovg edx, dword [esp + 0x9fc]
mov dword [esp + 0x760], edx
jmp 0x8f9789
cmp dword [esp + 0xa04], edx
jmp 0x8f9775
mov ecx, dword [esp + 0xb8]
mov esi, dword [esp + 0x9e4]
sar ebx, 2
mov edx, dword [ecx + 0x144]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x38]
sar esi, 2
mov eax, dword [ebp + 0xe8]
mov edi, dword [esp + 0x9e4]
imul edi, ebx
add eax, esi
add ebx, 8
add eax, edi
mov dword [esp + 0x99c], edi
mov dword [esp + 4], eax
mov edi, dword [ecx + 0x58]
mov ecx, dword [esp + 0x9a4]
mov dword [esp], edi
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0xb8]
mov edi, dword [esp + 0x9e4]
mov edx, dword [eax + 0x144]
mov dword [esp + 8], edi
mov ecx, dword [esp + 0x99c]
mov eax, dword [ebp + 0xe8]
add eax, esi
lea edi, [eax + ecx + 8]
mov eax, dword [esp + 0x9a4]
mov dword [esp + 4], edi
mov edi, dword [esp + 0xb8]
mov ecx, dword [edi + 0x58]
add ecx, 8
mov dword [esp], ecx
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x9e4]
mov edx, dword [edi + 0x144]
mov dword [esp + 8], ecx
imul ebx, ecx
mov eax, dword [esp + 0x9a4]
mov edi, dword [ebp + 0xe8]
add edi, esi
add ebx, edi
mov edi, ecx
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
shl edi, 3
mov ecx, dword [ebx + 0x58]
add ecx, edi
mov dword [esp], ecx
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x9e4]
mov edx, dword [ebx + 0x144]
mov dword [esp + 8], ecx
add esi, dword [ebp + 0xe8]
mov ebp, dword [esp + 0x9a4]
add esi, dword [esp + 0x99c]
lea eax, [esi + edi + 8]
mov dword [esp + 4], eax
mov ecx, dword [ebx + 0x58]
add ecx, edi
add ecx, 8
mov dword [esp], ecx
call dword [edx + ebp*4 + 0x40]
mov esi, dword [esp + 0xb8]
mov ebp, dword [esp + 0x9e4]
mov edx, dword [esi + 0x148]
mov ebx, dword [esp + 0x9dc]
mov dword [esp + 8], ebp
mov eax, dword [ebx + 0x20]
mov esi, dword [esp + 0x9ac]
mov ebx, dword [esp + 0x9a8]
sar esi, 2
sar ebx, 2
mov ecx, dword [esp + 0xb8]
imul ebp, ebx
add eax, esi
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
mov dword [esp], eax
mov eax, dword [esp + 0x9a0]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x9e4]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x9dc]
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0xb8]
add eax, esi
lea eax, [eax + ebp + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
add eax, 8
mov dword [esp], eax
mov eax, dword [esp + 0x9a0]
call dword [edx + eax*4 + 0x40]
mov eax, dword [esp + 0x9e4]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x9dc]
imul ebx, eax
mov eax, dword [ecx + 0x20]
add eax, esi
add ebx, eax
mov eax, dword [esp + 0x9a0]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov ecx, dword [ebx + 0x58]
add ecx, edi
mov dword [esp], ecx
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x9e4]
mov eax, dword [ebx + 0x148]
mov edx, dword [esp + 0x9dc]
mov dword [esp + 8], ecx
add esi, dword [edx + 0x20]
add esi, ebp
lea ebp, [esi + edi + 8]
mov dword [esp + 4], ebp
add edi, dword [ebx + 0x58]
add edi, 8
mov dword [esp], edi
mov edi, dword [esp + 0x9a0]
call dword [eax + edi*4 + 0x40]
jmp 0x8f77df
mov eax, dword [esp + 0xb00]
mov edx, dword [esp + 0xa28]
mov ecx, dword [esp + 0xc4]
mov ebp, dword [esp + 0xb14]
mov edi, dword [esp + 0xb10]
mov esi, dword [esp + 0xa20]
mov ebx, dword [esp + 0xb04]
mov dword [esp + 4], eax
mov dword [esp], edx
mov eax, dword [esp + 0xaf0]
lea edx, [esp + 0xac8]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebx
call fcn.008ea9da
jmp 0x8f8c05
mov dword [esp + 8], 0x470
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31671
call fcn.00a5b730
mov dword [esp + 8], 0x470
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd3167e
call fcn.00a5b730
mov dword [esp + 8], 0x470
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd3168b
call fcn.00a5b730
mov dword [esp + 8], 0x470
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31698
call fcn.00a5b730
mov edi, dword [esp + 0xb8]
mov eax, dword [esp + 0x354]
mov ecx, dword [esp + 0x344]
mov edx, dword [edi + 0x144]
mov dword [esp + 8], eax
sar esi, 2
mov eax, dword [ecx]
sar ebx, 2
mov edi, dword [esp + 0x354]
imul edi, ebx
add eax, esi
mov ecx, dword [esp + 0xb8]
add eax, edi
mov dword [esp + 0x308], edi
mov edi, dword [esp + 0x310]
mov dword [esp + 4], eax
add ebx, 8
mov eax, dword [ecx + 0x58]
mov dword [esp], eax
call dword [edx + edi*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x354]
mov edx, dword [ecx + 0x144]
mov edi, dword [esp + 0x344]
mov dword [esp + 8], eax
mov eax, dword [edi]
mov ecx, dword [esp + 0x308]
add eax, esi
lea edi, [eax + ecx + 8]
mov ecx, dword [esp + 0x310]
mov dword [esp + 4], edi
mov edi, dword [esp + 0xb8]
mov eax, dword [edi + 0x58]
add eax, 8
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov ecx, dword [esp + 0x354]
mov edx, dword [edi + 0x144]
mov dword [esp + 8], ecx
mov edi, dword [esp + 0x344]
imul ebx, ecx
mov eax, dword [edi]
mov edi, ecx
mov ecx, dword [esp + 0x310]
add eax, esi
shl edi, 3
add ebx, eax
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov eax, dword [ebx + 0x58]
add eax, edi
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0xb8]
mov ebx, dword [esp + 0x354]
mov edx, dword [eax + 0x144]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x344]
add esi, dword [ebx]
add esi, dword [esp + 0x308]
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
mov esi, eax
mov ecx, dword [eax + 0x58]
mov eax, dword [esp + 0x310]
add ecx, edi
add ecx, 8
mov dword [esp], ecx
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x354]
mov edx, dword [esi + 0x148]
mov dword [esp + 8], ecx
mov esi, dword [esp + 0x318]
mov eax, dword [ebx + 0x20]
mov ebx, dword [esp + 0x314]
sar esi, 2
sar ebx, 2
add eax, esi
imul ecx, ebx
add ebx, 8
add eax, ecx
mov dword [esp + 0x304], ecx
mov ecx, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
mov dword [esp], eax
mov eax, dword [esp + 0x30c]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x354]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x344]
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x304]
add eax, esi
lea eax, [eax + ecx + 8]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
add eax, 8
mov dword [esp], eax
mov eax, dword [esp + 0x30c]
call dword [edx + eax*4 + 0x40]
mov eax, dword [esp + 0x354]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x344]
imul ebx, eax
mov eax, dword [ecx + 0x20]
add eax, esi
add ebx, eax
mov eax, dword [esp + 0x30c]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov ecx, dword [ebx + 0x58]
add ecx, edi
mov dword [esp], ecx
call dword [edx + eax*4 + 0x40]
mov edx, dword [esp + 0x354]
mov eax, dword [ebx + 0x148]
mov ecx, dword [esp + 0x344]
mov dword [esp + 8], edx
add esi, dword [ecx + 0x20]
add esi, dword [esp + 0x304]
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
add edi, dword [ebx + 0x58]
mov ebx, dword [esp + 0x30c]
add edi, 8
mov dword [esp], edi
call dword [eax + ebx*4 + 0x40]
jmp 0x8f8a4c
cmp eax, dword [esp + 0x9fc]
cmovg eax, dword [esp + 0x9fc]
jmp 0x8f9f52
cmp dword [esp + 0xa04], eax
jmp 0x8f9f45
cmp ecx, dword [esp + 0xa00]
cmovg ecx, dword [esp + 0xa00]
mov dword [esp + 0x438], ecx
jmp 0x8f9f2a
cmp dword [esp + 0xa08], ecx
jmp 0x8f9f16
mov edi, dword [esp + 0x4f8]
mov esi, dword [esp + 0xb14]
mov eax, dword [esp + 0x508]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], edi
mov ebp, dword [esp + 0x504]
add eax, dword [edx + 0xe8]
imul ebp, edi
add eax, ebp
mov ebp, dword [esp + 0xaf0]
mov dword [esp + 8], eax
mov edx, dword [ecx + 0xa8]
mov dword [esp], ebp
mov dword [esp + 4], edx
call dword [esp + 0xa14]
test ebx, ebx
mov dword [esp + 0x4dc], eax
jne 0x901f46
mov eax, dword [esp + 0x4fc]
mov ebx, dword [esp + 0x500]
mov ebp, dword [esp + 0x9ec]
mov dword [ebp + eax*4], ebx
mov edi, dword [esp + 0xa0c]
mov ebp, dword [esp + 0x4dc]
mov dword [edi + eax*4], ebp
movzx ecx, byte [esp + 0x9e8]
mov edx, dword [esp + 0x508]
mov eax, dword [esp + 0x504]
shl edx, cl
mov esi, dword [esp + 0x9f8]
shl eax, cl
sub edx, dword [esp + 0x9f4]
sub eax, dword [esp + 0x9f0]
movzx ebx, byte [esi + edx]
mov edx, dword [esp + 0xac8]
movzx edi, byte [esi + eax]
mov esi, dword [esp + 0xa28]
mov eax, dword [esp + 0x508]
lea ecx, [ebx + edi]
mov edi, edx
mov ebx, dword [esp + 0x504]
imul ecx, dword [esp + 0xa20]
add ecx, ebp
mov ebp, dword [esp + 0xacc]
mov dword [esp + 0x38], ecx
cmp ecx, esi
cmovl esi, ecx
cmovl edi, eax
cmovl ebp, ebx
mov dword [esp + 0xa28], esi
mov dword [esp + 0xac8], edi
mov dword [esp + 0xacc], ebp
mov ecx, dword [esp + 0xaf0]
mov esi, dword [ecx + 0x2910]
test esi, esi
jne 0x8f84c9
mov edi, dword [esp + 0xa18]
mov ebp, dword [esp + 0xb08]
sub edi, dword [esp + 0xa1c]
movsx edx, word [ebp + edi*4]
movsx eax, word [ebp + edi*4 + 2]
imul edx, dword [esp + 0xb0c]
imul eax, dword [esp + 0xb0c]
add edx, 0x8000
add eax, 0x8000
sar edx, 0x10
sar eax, 0x10
cmp edx, dword [esp + 0xa00]
jle 0x900c8a
mov ebx, dword [esp + 0xa00]
cmp dword [esp + 0xa08], ebx
jle 0x900c6f
mov edx, dword [esp + 0xa08]
mov dword [esp + 0x4a0], edx
cmp eax, dword [esp + 0x9fc]
jle 0x900c63
mov esi, dword [esp + 0x9fc]
cmp dword [esp + 0xa04], esi
jle 0x900c48
mov eax, dword [esp + 0xa04]
mov dword [esp + 0x49c], eax
mov edx, dword [esp + 0x49c]
mov edi, dword [esp + 0x4a0]
mov ebx, dword [esp + 0x49c]
shl edx, 0xb
lea ebp, [edi + ebx*8]
mov ecx, dword [esp + 0xa08]
add edx, dword [esp + 0x4a0]
and ebp, 0x3f
add edx, dword [esp + 0xa24]
cmp edi, ecx
mov dword [esp + 0x494], ebp
mov dword [esp + 0x498], edx
jl 0x9078f6
mov esi, dword [esp + 0xa00]
cmp dword [esp + 0x4a0], esi
jg 0x909cbe
mov eax, dword [esp + 0xa04]
cmp dword [esp + 0x49c], eax
jl 0x909ca2
mov ecx, dword [esp + 0x9fc]
cmp dword [esp + 0x49c], ecx
jg 0x909c86
mov edi, dword [esp + 0x498]
mov ebp, dword [esp + 0x494]
mov ebx, dword [esp + 0x9ec]
cmp dword [ebx + ebp*4], edi
je 0x8f84c9
mov esi, dword [esp + 0xc4]
mov eax, dword [esp + 0xb8]
mov ebx, dword [esp + 0xb8]
and esi, 1
mov ebp, dword [eax + 0x128]
mov edi, dword [ebx + 0x12c]
mov dword [esp + 0x488], esi
add esi, 1
mov edx, dword [esp + 0x4a0]
mov dword [esp + 0x68], esi
mov eax, dword [esp + 0xb04]
mov dword [esp + 0x48c], edi
movzx ecx, byte [esp + 0x68]
shl eax, 4
mov edi, dword [esp + 0xb8]
shl edx, cl
mov dword [esp + 0x490], ebp
mov esi, dword [esp + 0x49c]
mov dword [esp + 0x484], edx
mov ebp, dword [esp + 0xb00]
lea edx, [eax + edi]
shl esi, cl
shl ebp, 4
lea ecx, [edx + 0xe8]
mov ebx, dword [esp + 0xc4]
mov dword [esp + 0x47c], ecx
lea ecx, [ebp + edi]
and ebx, 2
lea eax, [ecx + 0xa8]
test byte [esp + 0xc4], 4
mov dword [esp + 0x480], esi
mov dword [esp + 0x478], eax
je 0x8f826f
mov ecx, dword [esp + 0x4a0]
cmp dword [edi + 0x90], ecx
jg 0x8fb8d8
mov edx, dword [edi + 0x94]
movzx ecx, byte [esp + 0x68]
shl edx, cl
cmp edx, dword [esp + 0x484]
jge 0x902684
mov dword [esp + 8], 0x7d
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd30f5c
call fcn.00a5b730
cmp eax, dword [esp + 0x9fc]
cmovg eax, dword [esp + 0x9fc]
jmp 0x8f7a33
cmp dword [esp + 0xa04], eax
jmp 0x8f7a26
cmp ecx, dword [esp + 0xa00]
cmovg ecx, dword [esp + 0xa00]
mov dword [esp + 0x508], ecx
jmp 0x8f7a0b
cmp dword [esp + 0xa08], ecx
jmp 0x8f79f7
mov edi, dword [esp + 0x428]
mov esi, dword [esp + 0xb14]
mov eax, dword [esp + 0x438]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], edi
mov ebp, dword [esp + 0x434]
add eax, dword [edx + 0xe8]
imul ebp, edi
add eax, ebp
mov ebp, dword [esp + 0xaf0]
mov dword [esp + 8], eax
mov edx, dword [ecx + 0xa8]
mov dword [esp], ebp
mov dword [esp + 4], edx
call dword [esp + 0xa14]
test ebx, ebx
mov dword [esp + 0x40c], eax
jne 0x9020c8
mov eax, dword [esp + 0x42c]
mov ebx, dword [esp + 0x430]
mov ebp, dword [esp + 0x9ec]
mov dword [ebp + eax*4], ebx
mov edi, dword [esp + 0xa0c]
mov ebp, dword [esp + 0x40c]
mov dword [edi + eax*4], ebp
movzx ecx, byte [esp + 0x9e8]
mov edx, dword [esp + 0x438]
mov eax, dword [esp + 0x434]
shl edx, cl
mov esi, dword [esp + 0x9f8]
shl eax, cl
sub edx, dword [esp + 0x9f4]
sub eax, dword [esp + 0x9f0]
movzx ebx, byte [esi + edx]
mov edx, dword [esp + 0xac8]
movzx edi, byte [esi + eax]
mov esi, dword [esp + 0xa28]
mov eax, dword [esp + 0x438]
lea ecx, [ebx + edi]
mov edi, edx
mov ebx, dword [esp + 0x434]
imul ecx, dword [esp + 0xa20]
add ecx, ebp
mov ebp, dword [esp + 0xacc]
mov dword [esp + 0x38], ecx
cmp ecx, esi
cmovl esi, ecx
cmovl edi, eax
cmovl ebp, ebx
mov dword [esp + 0xa28], esi
mov dword [esp + 0xac8], edi
mov dword [esp + 0xacc], ebp
mov edi, dword [esp + 0xaf0]
mov esi, dword [esp + 0xaf0]
mov edx, dword [edi + 0x201c]
mov ecx, edx
mov dword [esp + 0x44], edx
add ecx, 1
cmp ecx, dword [esi + 0xd0]
jge 0x8f84c9
mov eax, dword [esp + 0xa1c]
mov ebp, dword [esp + 0xb08]
add eax, dword [esp + 0xa18]
movsx edx, word [ebp + eax*4]
movsx eax, word [ebp + eax*4 + 2]
imul edx, dword [esp + 0xb0c]
imul eax, dword [esp + 0xb0c]
add edx, 0x8000
add eax, 0x8000
sar edx, 0x10
sar eax, 0x10
cmp edx, dword [esp + 0xa00]
jle 0x900934
mov ebx, dword [esp + 0xa00]
cmp dword [esp + 0xa08], ebx
jle 0x900919
mov esi, dword [esp + 0xa08]
mov dword [esp + 0x3d0], esi
cmp eax, dword [esp + 0x9fc]
jle 0x90090d
mov ecx, dword [esp + 0x9fc]
cmp dword [esp + 0xa04], ecx
jle 0x9008f9
mov eax, dword [esp + 0xa04]
mov dword [esp + 0x3cc], eax
mov edi, dword [esp + 0x3d0]
mov edx, dword [esp + 0xa08]
mov ebx, dword [esp + 0x3cc]
mov ebp, dword [esp + 0x3cc]
shl ebx, 0xb
lea eax, [edi + ebp*8]
add ebx, dword [esp + 0x3d0]
and eax, 0x3f
add ebx, dword [esp + 0xa24]
cmp edi, edx
mov dword [esp + 0x3c4], eax
mov dword [esp + 0x3c8], ebx
jl 0x904bd2
mov esi, dword [esp + 0xa00]
cmp dword [esp + 0x3d0], esi
jg 0x904bb6
mov ecx, dword [esp + 0xa04]
cmp dword [esp + 0x3cc], ecx
jl 0x904b9a
mov edx, dword [esp + 0x9fc]
cmp dword [esp + 0x3cc], edx
jg 0x904b7e
mov edi, dword [esp + 0x3c8]
mov eax, dword [esp + 0x3c4]
mov ebp, dword [esp + 0x9ec]
cmp dword [ebp + eax*4], edi
je 0x8f84c9
mov edx, dword [esp + 0xc4]
mov ebp, dword [esp + 0xb8]
mov edi, dword [esp + 0xb8]
and edx, 1
mov eax, dword [ebp + 0x128]
mov esi, dword [esp + 0x3d0]
mov dword [esp + 0x3b8], edx
add edx, 1
mov ebp, dword [esp + 0xb04]
mov ecx, edx
mov ebx, dword [edi + 0x12c]
shl ebp, 4
shl esi, cl
mov edi, dword [esp + 0xb8]
mov dword [esp + 0x3c0], eax
mov dword [esp + 0xbc], edx
mov dword [esp + 0x3b4], esi
lea edx, [ebp + edi]
mov esi, dword [esp + 0x3cc]
mov eax, dword [esp + 0xb00]
mov dword [esp + 0x3bc], ebx
shl esi, cl
shl eax, 4
lea ecx, [edx + 0xe8]
mov ebx, dword [esp + 0xc4]
mov dword [esp + 0x3ac], ecx
lea ecx, [eax + edi]
and ebx, 2
lea ebp, [ecx + 0xa8]
test byte [esp + 0xc4], 4
mov dword [esp + 0x3b0], esi
mov dword [esp + 0x3a8], ebp
je 0x901acf
mov ecx, dword [esp + 0x3d0]
cmp dword [edi + 0x90], ecx
jg 0x8fbca0
mov edx, dword [edi + 0x94]
movzx ecx, byte [esp + 0xbc]
shl edx, cl
cmp edx, dword [esp + 0x3b4]
jge 0x9016f4
mov dword [esp + 8], 0x7d
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd30f5c
call fcn.00a5b730
mov ebx, dword [esp + 0x928]
mov edx, ebp
mov eax, dword [esp + 0xb8]
and edx, 1
and ebx, 1
mov ecx, dword [eax + 0x58]
lea ebx, [edx + ebx*2]
mov edx, dword [esp + 0xb10]
mov eax, dword [esp + 0xb8]
shl edx, 4
sar esi, 1
shl edi, 4
lea ebx, [edx + ebx*4]
add edi, ecx
mov dword [esp + 0x8b0], esi
mov edx, ebx
mov dword [esp + 0x8b4], edi
mov edi, dword [esp + 0x908]
add edx, dword [eax + 0x13c]
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x918]
mov dword [esp + 8], esi
mov esi, ebp
mov eax, dword [esp + 0x8b4]
mov ecx, dword [edi + 4]
mov edi, dword [esp + 0x928]
sar esi, 1
sar edi, 1
add ecx, esi
mov dword [esp], eax
imul edi, dword [esp + 0x918]
add ecx, edi
mov dword [esp + 4], ecx
call dword [edx + 0x10]
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0x8b0]
mov eax, dword [esp + 0x918]
add ebx, dword [ecx + 0x13c]
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x908]
add esi, dword [ecx + 8]
add esi, edi
mov dword [esp + 4], esi
mov esi, dword [esp + 0x8b4]
add esi, 8
mov dword [esp], esi
call dword [ebx + 0x10]
mov ebx, dword [esp + 0x8b0]
mov edx, dword [esp + 0x918]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x904]
mov ecx, dword [eax + 4]
mov edi, dword [esp + 0x8b4]
mov ebx, dword [esp + 0xaf0]
mov dword [esp + 8], ecx
mov dword [esp + 4], edi
mov dword [esp], ebx
call dword [esp + 0xa10]
mov ebx, dword [esp + 0x900]
mov edx, dword [esp + 0x8b0]
add ebx, eax
mov eax, dword [esp + 0x918]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x904]
mov edi, dword [ecx + 8]
mov dword [esp + 4], esi
mov esi, dword [esp + 0xaf0]
mov dword [esp + 8], edi
mov dword [esp], esi
call dword [esp + 0xa10]
add ebx, eax
mov dword [esp + 0x900], ebx
jmp 0x8f78c1
mov ebx, dword [esp + 0x7cc]
mov esi, dword [esp + 0xb8]
cmp dword [esi + 0x98], ebx
jg 0x8f8130
mov eax, dword [esi + 0x9c]
shl eax, cl
cmp eax, dword [esp + 0x7b0]
jl 0x8f8130
mov edx, dword [esp + 0x7b8]
mov edi, dword [esp + 0xaf0]
mov esi, dword [esp + 0xaf0]
add edx, edx
movzx edi, word [edi + 0x27b0]
mov ebx, dword [esp + 0xaf0]
add edx, 1
cmp dword [esi + 0x1d40], 1
mov dword [esp + 0x7a4], edi
movzx ecx, word [ebx + 0x27b2]
mov dword [esp + 0x7a0], edx
je 0x904693
mov edx, dword [esp + 0xb8]
mov esi, dword [esp + 0x7b4]
mov ebx, dword [esp + 0x7b0]
mov edi, dword [esp + 0x7b4]
add esi, dword [edx + 0x28]
add ebx, dword [edx + 0x2c]
test edi, edi
je 0x904667
mov eax, esi
sub eax, dword [edx + 8]
mov dword [esp + 0x784], eax
mov edi, dword [esp + 0x7b0]
test edi, edi
je 0x903eff
mov ecx, ebx
mov eax, dword [esp + 0xb8]
sub ecx, dword [eax + 0xc]
mov dword [esp + 0x780], ecx
mov eax, dword [esp + 0x7a0]
mov edi, dword [esp + 0x7a0]
mov ecx, ebp
and eax, ebx
and edi, esi
mov edx, dword [esp + 0x780]
shl eax, cl
mov ebp, dword [esp + 0x7b8]
add edi, eax
mov eax, dword [esp + 0x784]
and eax, dword [esp + 0x7a0]
and dword [esp + 0x7a0], edx
mov dword [esp + 0x77c], edi
shl dword [esp + 0x7a0], cl
add eax, dword [esp + 0x7a0]
test ebp, ebp
mov dword [esp + 0x778], eax
jne 0x907912
mov ebp, esi
mov esi, dword [esp + 0xaf0]
mov edx, dword [esi + 0x2018]
sar ebp, 1
shl edx, 4
lea esi, [ebp + edx]
cmp esi, 0xfffffff0
jl 0x907ce0
mov eax, ebx
mov ebx, dword [esp + 0xaf0]
mov ecx, dword [ebx + 0x201c]
sar eax, 1
shl ecx, 4
lea ebx, [eax + ecx]
cmp ebx, 0xfffffff0
jl 0x907cc4
mov edi, dword [esp + 0xaf0]
mov edi, dword [edi + 4]
cmp esi, edi
mov dword [esp + 0x774], edi
jg 0x907ca8
mov edi, dword [esp + 0xaf0]
mov esi, dword [edi + 8]
cmp ebx, esi
mov dword [esp + 0x770], esi
jg 0x907c8c
mov esi, dword [esp + 0x784]
sar esi, 1
lea edi, [esi + edx]
cmp edi, 0xfffffff0
jl 0x907e30
mov ebx, dword [esp + 0x780]
sar ebx, 1
lea edx, [ebx + ecx]
cmp edx, 0xfffffff0
jl 0x907e14
cmp edi, dword [esp + 0x774]
jg 0x907df8
cmp edx, dword [esp + 0x770]
jg 0x907ddc
mov ecx, dword [esp + 0x7c0]
mov dword [esp + 0x10], 0x10
mov eax, dword [esp + 0x7a8]
mov dword [esp + 0xc], ecx
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0xaf0]
mov edx, dword [eax]
mov dword [esp + 8], edx
mov esi, dword [ebp + 0x58]
mov dword [esp], ebx
mov dword [esp + 4], esi
call dword [esp + 0xa14]
mov ebp, eax
jmp 0x8f9656
cmp eax, dword [esp + 0xa00]
cmovg eax, dword [esp + 0xa00]
mov dword [esp + 0x6f8], eax
jmp 0x8fadca
cmp dword [esp + 0xa08], eax
jmp 0x8fadb6
mov eax, dword [esp + 0x6ec]
mov ebx, dword [esp + 0x6f0]
mov ebp, dword [esp + 0x9ec]
mov dword [ebp + eax*4], ebx
mov edi, dword [esp + 0xa0c]
mov ebp, dword [esp + 0x6cc]
mov dword [edi + eax*4], ebp
movzx ecx, byte [esp + 0x9e8]
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0x6f4]
shl edx, cl
mov esi, dword [esp + 0x9f8]
shl eax, cl
sub edx, dword [esp + 0x9f4]
sub eax, dword [esp + 0x9f0]
movzx ebx, byte [esi + edx]
mov edx, dword [esp + 0xac8]
movzx edi, byte [esi + eax]
mov esi, dword [esp + 0xa28]
mov eax, dword [esp + 0x6f8]
lea ecx, [ebx + edi]
mov edi, edx
mov ebx, dword [esp + 0x6f4]
imul ecx, dword [esp + 0xa20]
add ecx, ebp
mov ebp, dword [esp + 0xacc]
mov dword [esp + 0x38], ecx
cmp ecx, esi
cmovl esi, ecx
cmovl edi, eax
cmovl ebp, ebx
mov dword [esp + 0xa28], esi
mov dword [esp + 0xac8], edi
mov dword [esp + 0xacc], ebp
mov edx, dword [esp + 0xa18]
mov ecx, dword [esp + 0xb08]
mov esi, dword [esp + 0xb08]
movsx edi, word [ecx + edx*4]
movsx eax, word [esi + edx*4 + 2]
imul edi, dword [esp + 0xb0c]
imul eax, dword [esp + 0xb0c]
lea ecx, [edi + 0x8000]
add eax, 0x8000
sar ecx, 0x10
sar eax, 0x10
cmp ecx, dword [esp + 0xa00]
jle 0x8ff4ba
mov ebp, dword [esp + 0xa00]
cmp dword [esp + 0xa08], ebp
jle 0x8ff49f
mov ebx, dword [esp + 0xa08]
mov dword [esp + 0x690], ebx
cmp eax, dword [esp + 0x9fc]
jle 0x8ff493
mov esi, dword [esp + 0x9fc]
cmp dword [esp + 0xa04], esi
jle 0x8ff47f
mov eax, dword [esp + 0xa04]
mov dword [esp + 0x68c], eax
mov edi, dword [esp + 0x690]
mov eax, dword [esp + 0xa08]
mov ebp, dword [esp + 0x68c]
mov ecx, dword [esp + 0x68c]
shl ebp, 0xb
lea edx, [edi + ecx*8]
add ebp, dword [esp + 0x690]
and edx, 0x3f
add ebp, dword [esp + 0xa24]
cmp edi, eax
mov dword [esp + 0x684], edx
mov dword [esp + 0x688], ebp
jl 0x9091dc
mov ebx, dword [esp + 0xa00]
cmp dword [esp + 0x690], ebx
jg 0x909214
mov esi, dword [esp + 0xa04]
cmp dword [esp + 0x68c], esi
jl 0x9091f8
mov eax, dword [esp + 0x9fc]
cmp dword [esp + 0x68c], eax
jg 0x906354
mov edi, dword [esp + 0x688]
mov ecx, dword [esp + 0x684]
mov edx, dword [esp + 0x9ec]
cmp dword [edx + ecx*4], edi
je 0x8ff720
mov edi, dword [esp + 0xc4]
mov ebp, dword [esp + 0xb8]
mov esi, dword [esp + 0x690]
and edi, 1
mov eax, dword [ebp + 0x128]
mov ebp, dword [esp + 0xb04]
mov dword [esp + 0x678], edi
add edi, 1
shl ebp, 4
mov ecx, edi
mov edx, dword [esp + 0xb8]
mov dword [esp + 0xa8], edi
shl esi, cl
mov edi, dword [esp + 0xb8]
mov ebx, dword [edx + 0x12c]
mov dword [esp + 0x680], eax
lea edx, [ebp + edi]
mov dword [esp + 0x674], esi
mov eax, dword [esp + 0xb00]
mov esi, dword [esp + 0x68c]
mov dword [esp + 0x67c], ebx
shl esi, cl
shl eax, 4
lea ecx, [edx + 0xe8]
mov ebx, dword [esp + 0xc4]
mov dword [esp + 0x66c], ecx
lea ecx, [eax + edi]
and ebx, 2
lea ebp, [ecx + 0xa8]
test byte [esp + 0xc4], 4
mov dword [esp + 0x670], esi
mov dword [esp + 0x668], ebp
je 0x8ff4c6
mov ecx, dword [esp + 0x690]
cmp dword [edi + 0x90], ecx
jg 0x8fc573
mov ebx, dword [edi + 0x94]
movzx ecx, byte [esp + 0xa8]
shl ebx, cl
cmp ebx, dword [esp + 0x674]
jge 0x901c76
mov dword [esp + 8], 0x7d
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd30f5c
call fcn.00a5b730
cmp edx, dword [esp + 0x9fc]
cmovg edx, dword [esp + 0x9fc]
mov dword [esp + 0x6f4], edx
jmp 0x8fadf9
cmp dword [esp + 0xa04], edx
jmp 0x8fade5
mov eax, dword [esp + 0x848]
mov edi, dword [esp + 0x844]
mov edx, dword [esp + 0xb10]
and eax, 1
and edi, 1
shl edx, 4
lea ebx, [eax + edi*2]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
lea ebx, [edx + ebx*4]
sar esi, 1
shl ebp, 4
mov edx, ebx
add ebp, dword [ecx + 0x58]
mov dword [esp + 0x7d4], esi
add edx, dword [eax + 0x13c]
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x838]
mov dword [esp + 8], esi
mov edi, dword [esp + 0x828]
mov esi, dword [esp + 0x848]
mov ecx, dword [edi + 4]
mov edi, dword [esp + 0x844]
sar esi, 1
sar edi, 1
add ecx, esi
mov dword [esp], ebp
imul edi, dword [esp + 0x838]
add ecx, edi
mov dword [esp + 4], ecx
call dword [edx + 0x10]
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0x7d4]
mov ecx, dword [esp + 0x838]
add ebx, dword [edx + 0x13c]
mov edx, dword [esp + 0x828]
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
add esi, dword [edx + 8]
add esi, edi
mov dword [esp + 4], esi
lea esi, [ebp + 8]
mov dword [esp], esi
call dword [ebx + 0x10]
mov ecx, dword [esp + 0x838]
mov eax, dword [esp + 0x7d4]
mov dword [esp + 0xc], ecx
mov ebx, dword [esp + 0x824]
mov dword [esp + 0x10], eax
mov edi, dword [ebx + 4]
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov edi, dword [esp + 0xaf0]
mov dword [esp], edi
call dword [esp + 0xa10]
mov ebx, dword [esp + 0x820]
mov edx, dword [esp + 0x7d4]
add ebx, eax
mov eax, dword [esp + 0x838]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov ebp, dword [esp + 0x824]
mov ecx, dword [ebp + 8]
mov dword [esp + 4], esi
mov dword [esp], edi
mov dword [esp + 8], ecx
call dword [esp + 0xa10]
add ebx, eax
mov dword [esp + 0x820], ebx
jmp 0x8f7e75
mov eax, dword [esp + 0xb00]
mov edx, dword [esp + 0xa28]
mov ecx, dword [esp + 0xc4]
mov ebp, dword [esp + 0xb14]
mov edi, dword [esp + 0xb10]
mov esi, dword [esp + 0xa20]
mov ebx, dword [esp + 0xb04]
mov dword [esp + 4], eax
mov dword [esp], edx
mov eax, dword [esp + 0xaf0]
lea edx, [esp + 0xac8]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebx
call fcn.008d6522
jmp 0x8f8c05
mov eax, dword [esp + 0xa20]
mov edx, dword [esp + 0xa28]
mov ecx, dword [esp + 0xc4]
mov ebp, dword [esp + 0xb14]
mov ebx, dword [esp + 0xb10]
mov dword [esp + 0xc], eax
mov esi, dword [esp + 0xb04]
mov edi, dword [esp + 0xb00]
mov dword [esp], edx
mov eax, dword [esp + 0xaf0]
lea edx, [esp + 0xac8]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], ebx
mov dword [esp + 8], esi
mov dword [esp + 4], edi
call fcn.008e5d56
jmp 0x8f8c05
mov dword [esp + 8], 0x42d
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd3166c
call fcn.00a5b730
mov ecx, dword [esp + 0xb8]
mov ebx, dword [esp + 0xb8]
mov edi, dword [esp + 0xa28]
mov edx, dword [ecx + 0x90]
mov eax, dword [ebx + 0x64]
mov ebp, dword [esp + 0xb8]
mov dword [esp + 0x2d8], edx
mov edx, dword [esp + 0xb8]
mov esi, dword [ebp + 0x98]
mov dword [esp + 0x2ec], edi
mov ebp, dword [edx + 0x150]
mov edi, dword [esp + 0xb8]
mov dword [esp + 0x2dc], eax
mov eax, dword [esp + 0xb8]
mov ebx, dword [edi + 0x94]
mov ecx, dword [eax + 0x9c]
mov dword [esp + 0x2d4], esi
mov dword [esp + 0x2c8], ebp
mov esi, dword [esp + 0xb8]
mov ebp, dword [esp + 0xc4]
mov dword [esp + 0x2d0], ebx
mov edi, dword [esi + 0xa0]
mov ebx, dword [esp + 0xb8]
and ebp, 1
mov esi, dword [esp + 0xb8]
mov dword [esp + 0x2cc], ecx
mov ecx, dword [esp + 0xb8]
mov eax, dword [ebx + 0xa4]
mov edx, dword [ecx + 0x60]
mov dword [esp + 0x2c4], edi
mov dword [esp + 0x2b8], ebp
mov edi, dword [esi + 0x68]
add ebp, 1
mov dword [esp + 0x2c0], eax
mov dword [esp + 0x2bc], edx
mov dword [esp + 0xa4], ebp
mov dword [esp + 0x2e0], 0xffffffff
mov dword [esp + 0x2b4], edi
mov esi, dword [esp + 0xacc]
mov ecx, dword [esp + 0xaf0]
mov edx, dword [esp + 0xb10]
mov dword [esp + 0xa0], esi
mov ebp, dword [ecx + edx*4 + 0xc8c]
mov edx, esi
mov ebx, dword [esp + 0xb10]
shl edx, 0xb
mov esi, dword [esp + 0xac8]
mov edi, dword [esp + 0xa0]
mov eax, dword [ecx + ebx*4 + 0xc88]
add edx, esi
lea ebx, [esi + edi*8]
add edx, dword [esp + 0x2b4]
and ebx, 0x3f
mov dword [esp + 0x2e8], eax
mov eax, dword [esp + 0x2bc]
mov dword [esp + 0x2e4], ebp
mov dword [esp + 0x2b0], edx
cmp dword [eax + ebx*4], edx
mov dword [esp + 0x2ac], ebx
je 0x8fce8e
mov edx, dword [esp + 0xb8]
movzx ecx, byte [esp + 0xa4]
mov edi, esi
mov ebp, dword [edx + 0x128]
shl edi, cl
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x2a8], ebp
mov ebp, dword [esp + 0xb04]
shl edx, cl
shl ebp, 4
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x2a0], edi
mov edi, dword [esp + 0xb8]
mov ebx, dword [eax + 0x12c]
mov dword [esp + 0x29c], edx
mov eax, dword [esp + 0xb00]
lea edx, [ebp + edi]
mov dword [esp + 0x2a4], ebx
lea ecx, [edx + 0xe8]
shl eax, 4
mov ebx, dword [esp + 0xc4]
mov dword [esp + 0x298], ecx
lea ecx, [eax + edi]
and ebx, 2
lea ebp, [ecx + 0xa8]
test byte [esp + 0xc4], 4
mov dword [esp + 0x294], ebp
je 0x902212
cmp dword [esp + 0x2d8], esi
jg 0x8fca1a
mov esi, dword [esp + 0x2d0]
movzx ecx, byte [esp + 0xa4]
shl esi, cl
cmp esi, dword [esp + 0x2a0]
jge 0x9023e5
mov dword [esp + 8], 0x7d
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd30f5c
call fcn.00a5b730
mov ebp, dword [esp + 0x24c]
mov edx, dword [esp + 0x250]
mov ebx, dword [esp + 0x2bc]
add ebp, 1
mov eax, ebp
lea ecx, [edx + ebp*8]
mov dword [esp + 0x8c], ebp
shl eax, 0xb
and ecx, 0x3f
add eax, dword [esp + 0x250]
mov dword [esp + 0x124], ecx
add eax, dword [esp + 0x2b4]
mov dword [esp + 0x128], eax
mov esi, dword [esp + 0x128]
cmp dword [ebx + ecx*4], esi
je 0x8fdc42
mov edx, dword [esp + 0xc4]
mov ecx, dword [esp + 0xb8]
mov esi, dword [esp + 0x250]
and edx, 1
mov eax, dword [ecx + 0x128]
mov edi, dword [esp + 0xb8]
mov dword [esp + 0x118], edx
add edx, 1
mov dword [esp + 0x120], eax
mov ecx, edx
mov eax, dword [esp + 0xb04]
mov ebx, dword [edi + 0x12c]
shl esi, cl
shl eax, 4
mov dword [esp + 0x6c], edx
mov dword [esp + 0x114], esi
mov esi, dword [esp + 0xb8]
mov edi, dword [esp + 0xb00]
lea edx, [eax + esi]
shl ebp, cl
shl edi, 4
lea ecx, [edx + 0xe8]
mov dword [esp + 0x11c], ebx
mov ebx, dword [esp + 0xc4]
mov dword [esp + 0x10c], ecx
lea ecx, [edi + esi]
and ebx, 2
mov dword [esp + 0x110], ebp
test byte [esp + 0xc4], 4
lea ebp, [ecx + 0xa8]
mov dword [esp + 0x108], ebp
je 0x8fe18a
mov ebp, dword [esp + 0x250]
cmp dword [esi + 0x90], ebp
jg 0x906370
mov edx, dword [esi + 0x94]
movzx ecx, byte [esp + 0x6c]
shl edx, cl
cmp edx, dword [esp + 0x114]
jl 0x906370
mov ebx, dword [esp + 0x8c]
cmp dword [esi + 0x98], ebx
jg 0x906370
mov edi, dword [esi + 0x9c]
shl edi, cl
cmp edi, dword [esp + 0x110]
jl 0x906370
mov esi, dword [esp + 0xaf0]
mov ebp, dword [esp + 0xaf0]
mov eax, dword [esp + 0x118]
movzx ecx, word [ebp + 0x27b0]
add eax, eax
cmp dword [esi + 0x1d40], 1
mov dword [esp + 0x104], ecx
lea ebx, [eax + 1]
movzx ecx, word [esi + 0x27b2]
je 0x8fed32
mov eax, dword [esp + 0xb8]
mov esi, dword [esp + 0x114]
mov edi, dword [esp + 0x110]
mov ebp, dword [esp + 0x114]
add esi, dword [eax + 0x28]
add edi, dword [eax + 0x2c]
test ebp, ebp
je 0x8fe450
mov edx, esi
sub edx, dword [eax + 8]
mov dword [esp + 0xe8], edx
mov ebp, dword [esp + 0x110]
test ebp, ebp
je 0x8fe47c
mov ecx, edi
mov eax, dword [esp + 0xb8]
sub ecx, dword [eax + 0xc]
mov dword [esp + 0xe4], ecx
mov ebp, esi
mov edx, edi
mov eax, dword [esp + 0xe8]
and ebp, ebx
and edx, ebx
and eax, ebx
movzx ecx, byte [esp + 0x6c]
and ebx, dword [esp + 0xe4]
shl ebx, cl
shl edx, cl
add eax, ebx
mov ebx, dword [esp + 0x118]
add ebp, edx
test ebx, ebx
mov dword [esp + 0xe0], ebp
mov dword [esp + 0xdc], eax
jne 0x9005dc
mov ebp, esi
mov esi, dword [esp + 0xaf0]
mov edx, dword [esi + 0x2018]
sar ebp, 1
shl edx, 4
lea esi, [ebp + edx]
cmp esi, 0xfffffff0
jl 0x909a5f
mov eax, edi
mov edi, dword [esp + 0xaf0]
mov ecx, dword [edi + 0x201c]
sar eax, 1
shl ecx, 4
lea ebx, [eax + ecx]
cmp ebx, 0xfffffff0
jl 0x909748
mov edi, dword [esp + 0xaf0]
mov edi, dword [edi + 4]
cmp esi, edi
mov dword [esp + 0xd8], edi
jg 0x906568
mov edi, dword [esp + 0xaf0]
mov esi, dword [edi + 8]
cmp ebx, esi
mov dword [esp + 0xd4], esi
jg 0x90654c
mov esi, dword [esp + 0xe8]
sar esi, 1
lea edi, [esi + edx]
cmp edi, 0xfffffff0
jl 0x906530
mov ebx, dword [esp + 0xe4]
sar ebx, 1
lea edx, [ebx + ecx]
cmp edx, 0xfffffff0
jl 0x906514
cmp edi, dword [esp + 0xd8]
jg 0x907d88
cmp edx, dword [esp + 0xd4]
jg 0x907d6c
mov ecx, dword [esp + 0x120]
mov edi, dword [esp + 0xb8]
mov edx, dword [edi + 0x13c]
mov edi, dword [esp + 0x10c]
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], ecx
imul eax, ecx
add ebp, dword [edi]
lea eax, [ebp + eax]
mov ebp, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe0]
mov ecx, dword [ebp + 0x58]
mov dword [esp], ecx
call dword [edx + eax*4]
mov ecx, dword [esp + 0x120]
mov edx, dword [ebp + 0x140]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0x10
imul ebx, ecx
add esi, dword [edi + 0x20]
mov ecx, dword [esp + 0xdc]
lea edi, [esi + ebx]
mov dword [esp + 4], edi
mov eax, dword [ebp + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4]
mov ecx, dword [esp + 0x120]
mov dword [esp + 0x10], 0x10
mov eax, dword [esp + 0x108]
mov dword [esp + 0xc], ecx
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0xaf0]
mov edx, dword [eax]
mov dword [esp + 8], edx
mov esi, dword [ebp + 0x58]
mov dword [esp], ebx
mov dword [esp + 4], esi
call dword [esp + 0x2e8]
mov ebp, eax
mov esi, dword [esp + 0x124]
mov ebx, dword [esp + 0x128]
mov eax, dword [esp + 0x2bc]
mov dword [eax + esi*4], ebx
movzx ecx, byte [esp + 0xa4]
mov edx, dword [esp + 0x250]
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x2dc]
shl edx, cl
shl eax, cl
mov dword [edi + esi*4], ebp
sub edx, dword [esp + 0x2c4]
sub eax, dword [esp + 0x2c0]
mov ebx, dword [esp + 0x2c8]
movzx esi, byte [ebx + eax]
movzx edi, byte [ebx + edx]
add edi, esi
imul edi, dword [esp + 0xa20]
lea eax, [ebp + edi]
cmp eax, dword [esp + 0x2ec]
jge 0x8fdc42
mov ecx, dword [esp + 0x250]
mov ebp, dword [esp + 0x8c]
mov dword [esp + 0x2ec], eax
mov dword [esp + 0xac8], ecx
mov dword [esp + 0xacc], ebp
mov dword [esp + 0x2e0], 3
mov eax, dword [esp + 0xacc]
mov dword [esp + 0xa0], eax
mov ebp, dword [esp + 0x2e0]
mov ebx, dword [esp + 0xac8]
mov edi, dword [esp + 0x2d8]
cmp ebp, 2
mov esi, dword [esp + 0xa0]
mov dword [esp + 0x254], ebp
setne dl
xor ecx, ecx
cmp ebx, edi
setg cl
mov dword [esp + 0x250], ebx
mov dword [esp + 0x24c], esi
test ecx, edx
mov dword [esp + 0x2e0], 0xffffffff
je 0x8fd336
mov edi, esi
mov ebp, dword [esp + 0x2b4]
lea eax, [ebx + esi*8 - 1]
shl edi, 0xb
and eax, 0x3f
mov edx, dword [esp + 0x2bc]
add edi, ebx
mov dword [esp + 0x244], eax
lea ecx, [edi + ebp - 1]
mov dword [esp + 0x248], ecx
mov esi, dword [esp + 0x248]
cmp dword [edx + eax*4], esi
je 0x8fd336
mov edx, dword [esp + 0xc4]
sub ebx, 1
mov eax, dword [esp + 0xb8]
and edx, 1
mov dword [esp + 0x98], ebx
mov ebp, dword [eax + 0x128]
mov dword [esp + 0x238], edx
add edx, 1
mov edi, dword [esp + 0xb8]
mov ecx, edx
mov esi, dword [esp + 0x98]
mov eax, dword [esp + 0xb04]
shl esi, cl
mov ebx, dword [edi + 0x12c]
shl eax, 4
mov edi, dword [esp + 0xb8]
mov dword [esp + 0x240], ebp
mov dword [esp + 0x88], edx
mov dword [esp + 0x234], esi
lea edx, [eax + edi]
mov esi, dword [esp + 0x24c]
mov ebp, dword [esp + 0xb00]
shl esi, cl
lea ecx, [edx + 0xe8]
shl ebp, 4
mov dword [esp + 0x23c], ebx
mov dword [esp + 0x22c], ecx
mov ebx, dword [esp + 0xc4]
lea ecx, [ebp + edi]
mov dword [esp + 0x230], esi
and ebx, 2
lea eax, [ecx + 0xa8]
test byte [esp + 0xc4], 4
mov dword [esp + 0x228], eax
je 0x8fdc5c
mov ecx, dword [esp + 0x98]
cmp dword [edi + 0x90], ecx
jg 0x9078da
mov edx, dword [edi + 0x94]
movzx ecx, byte [esp + 0x88]
shl edx, cl
cmp edx, dword [esp + 0x234]
jl 0x9078da
mov ebx, dword [esp + 0x24c]
cmp dword [edi + 0x98], ebx
jg 0x9078da
mov ebp, dword [edi + 0x9c]
shl ebp, cl
cmp ebp, esi
jl 0x9078da
mov ecx, dword [esp + 0xaf0]
mov esi, dword [esp + 0xaf0]
mov edi, dword [esp + 0x238]
movzx eax, word [ecx + 0x27b0]
add edi, edi
cmp dword [esi + 0x1d40], 1
mov dword [esp + 0x224], eax
movzx ecx, word [esi + 0x27b2]
lea ebx, [edi + 1]
je 0x8fea6d
mov eax, dword [esp + 0xb8]
mov esi, dword [esp + 0x234]
mov edi, dword [esp + 0x230]
mov ebp, dword [esp + 0x234]
add esi, dword [eax + 0x28]
add edi, dword [eax + 0x2c]
test ebp, ebp
je 0x8fe398
mov edx, esi
sub edx, dword [eax + 8]
mov dword [esp + 0x208], edx
mov ebp, dword [esp + 0x230]
test ebp, ebp
je 0x8fe3c4
mov ecx, edi
mov eax, dword [esp + 0xb8]
sub ecx, dword [eax + 0xc]
mov dword [esp + 0x204], ecx
mov ebp, esi
mov edx, edi
mov eax, dword [esp + 0x208]
and ebp, ebx
and edx, ebx
and eax, ebx
movzx ecx, byte [esp + 0x88]
and ebx, dword [esp + 0x204]
shl ebx, cl
shl edx, cl
add eax, ebx
mov ebx, dword [esp + 0x238]
add ebp, edx
test ebx, ebx
mov dword [esp + 0x200], ebp
mov dword [esp + 0x1fc], eax
jne 0x8ff8c7
mov ebp, esi
mov esi, dword [esp + 0xaf0]
mov edx, dword [esi + 0x2018]
sar ebp, 1
shl edx, 4
lea esi, [ebp + edx]
cmp esi, 0xfffffff0
jl 0x9089e8
mov eax, edi
mov edi, dword [esp + 0xaf0]
mov ecx, dword [edi + 0x201c]
sar eax, 1
shl ecx, 4
lea ebx, [eax + ecx]
cmp ebx, 0xfffffff0
jl 0x9089cc
mov edi, dword [esp + 0xaf0]
mov edi, dword [edi + 4]
cmp esi, edi
mov dword [esp + 0x1f8], edi
jg 0x909a43
mov edi, dword [esp + 0xaf0]
mov esi, dword [edi + 8]
cmp ebx, esi
mov dword [esp + 0x1f4], esi
jg 0x909a27
mov esi, dword [esp + 0x208]
sar esi, 1
lea edi, [esi + edx]
cmp edi, 0xfffffff0
jl 0x909a0b
mov ebx, dword [esp + 0x204]
sar ebx, 1
lea edx, [ebx + ecx]
cmp edx, 0xfffffff0
jl 0x9099ef
cmp edi, dword [esp + 0x1f8]
jg 0x909780
cmp edx, dword [esp + 0x1f4]
jg 0x909764
mov ecx, dword [esp + 0x240]
mov edi, dword [esp + 0xb8]
mov edx, dword [edi + 0x13c]
mov edi, dword [esp + 0x22c]
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], ecx
imul eax, ecx
add ebp, dword [edi]
lea eax, [ebp + eax]
mov ebp, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x200]
mov ecx, dword [ebp + 0x58]
mov dword [esp], ecx
call dword [edx + eax*4]
mov ecx, dword [esp + 0x240]
mov edx, dword [ebp + 0x140]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0x10
imul ebx, ecx
add esi, dword [edi + 0x20]
mov ecx, dword [esp + 0x1fc]
lea edi, [esi + ebx]
mov dword [esp + 4], edi
mov eax, dword [ebp + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4]
mov ecx, dword [esp + 0x240]
mov dword [esp + 0x10], 0x10
mov eax, dword [esp + 0x228]
mov dword [esp + 0xc], ecx
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0xaf0]
mov edx, dword [eax]
mov dword [esp + 8], edx
mov esi, dword [ebp + 0x58]
mov dword [esp], ebx
mov dword [esp + 4], esi
call dword [esp + 0x2e8]
mov ebp, eax
mov esi, dword [esp + 0x244]
mov ebx, dword [esp + 0x248]
mov ecx, dword [esp + 0x2bc]
mov dword [ecx + esi*4], ebx
mov edx, dword [esp + 0x98]
movzx ecx, byte [esp + 0xa4]
shl edx, cl
mov eax, dword [esp + 0x2dc]
mov edi, dword [esp + 0x2c8]
mov dword [eax + esi*4], ebp
sub edx, dword [esp + 0x2c4]
mov ebx, dword [esp + 0x2c0]
movzx eax, byte [edi + edx]
shl dword [esp + 0xa0], cl
mov esi, dword [esp + 0x2c8]
sub dword [esp + 0xa0], ebx
mov edi, dword [esp + 0xa0]
movzx ecx, byte [esi + edi]
add eax, ecx
imul eax, dword [esp + 0xa20]
lea eax, [ebp + eax]
cmp eax, dword [esp + 0x2ec]
jge 0x8fd336
mov edx, dword [esp + 0x98]
mov ebp, dword [esp + 0x24c]
mov dword [esp + 0x2ec], eax
mov dword [esp + 0xac8], edx
mov dword [esp + 0xacc], ebp
mov dword [esp + 0x2e0], 0
cmp dword [esp + 0x254], 3
mov edi, dword [esp + 0x2d4]
setne bl
xor eax, eax
cmp dword [esp + 0x24c], edi
setg al
test eax, ebx
je 0x8fd7a8
mov ebx, dword [esp + 0x24c]
mov edx, dword [esp + 0x250]
mov ebp, dword [esp + 0x2bc]
sub ebx, 1
mov ecx, ebx
lea esi, [edx + ebx*8]
mov dword [esp + 0x94], ebx
shl ecx, 0xb
and esi, 0x3f
add ecx, dword [esp + 0x250]
mov dword [esp + 0x1e4], esi
add ecx, dword [esp + 0x2b4]
cmp dword [ebp + esi*4], ecx
mov dword [esp + 0x1e8], ecx
je 0x8fd7a8
mov edx, dword [esp + 0xc4]
mov eax, dword [esp + 0xb8]
mov edi, dword [esp + 0x250]
and edx, 1
mov ebp, dword [eax + 0x128]
mov ebx, dword [esp + 0xb8]
mov dword [esp + 0x1d8], edx
add edx, 1
mov eax, dword [esp + 0xb04]
mov ecx, edx
mov esi, dword [ebx + 0x12c]
shl eax, 4
shl edi, cl
mov dword [esp + 0x1e0], ebp
mov dword [esp + 0x1dc], esi
mov dword [esp + 0x1d4], edi
mov edi, dword [esp + 0xb8]
mov dword [esp + 0x80], edx
mov esi, dword [esp + 0x94]
lea edx, [eax + edi]
mov ebp, dword [esp + 0xb00]
shl esi, cl
shl ebp, 4
lea ecx, [edx + 0xe8]
mov ebx, dword [esp + 0xc4]
mov dword [esp + 0x1cc], ecx
lea ecx, [ebp + edi]
and ebx, 2
lea eax, [ecx + 0xa8]
test byte [esp + 0xc4], 4
mov dword [esp + 0x1d0], esi
mov dword [esp + 0x1c8], eax
je 0x8fde16
mov ecx, dword [esp + 0x250]
cmp dword [edi + 0x90], ecx
jg 0x9063c4
mov edx, dword [edi + 0x94]
movzx ecx, byte [esp + 0x80]
shl edx, cl
cmp edx, dword [esp + 0x1d4]
jl 0x9063c4
mov ebx, dword [esp + 0x94]
cmp dword [edi + 0x98], ebx
jg 0x9063c4
mov ebp, dword [edi + 0x9c]
shl ebp, cl
cmp ebp, esi
jl 0x9063c4
mov ecx, dword [esp + 0xaf0]
mov edi, dword [esp + 0xaf0]
mov esi, dword [esp + 0x1d8]
movzx eax, word [ecx + 0x27b0]
add esi, esi
cmp dword [edi + 0x1d40], 1
mov dword [esp + 0x1c4], eax
movzx ecx, word [edi + 0x27b2]
lea ebx, [esi + 1]
je 0x8feff4
mov eax, dword [esp + 0xb8]
mov esi, dword [esp + 0x1d4]
mov edi, dword [esp + 0x1d0]
mov ebp, dword [esp + 0x1d4]
add esi, dword [eax + 0x28]
add edi, dword [eax + 0x2c]
test ebp, ebp
je 0x8fe344
mov edx, esi
sub edx, dword [eax + 8]
mov dword [esp + 0x1a8], edx
mov ebp, dword [esp + 0x1d0]
test ebp, ebp
je 0x8fe370
mov ecx, edi
mov eax, dword [esp + 0xb8]
sub ecx, dword [eax + 0xc]
mov dword [esp + 0x1a4], ecx
mov ebp, esi
mov edx, edi
mov eax, dword [esp + 0x1a8]
and ebp, ebx
and edx, ebx
and eax, ebx
movzx ecx, byte [esp + 0x80]
and ebx, dword [esp + 0x1a4]
shl ebx, cl
shl edx, cl
add eax, ebx
mov ebx, dword [esp + 0x1d8]
add ebp, edx
test ebx, ebx
mov dword [esp + 0x1a0], ebp
mov dword [esp + 0x19c], eax
jne 0x8ffeca
mov ebp, esi
mov esi, dword [esp + 0xaf0]
mov edx, dword [esi + 0x2018]
sar ebp, 1
shl edx, 4
lea esi, [ebp + edx]
cmp esi, 0xfffffff0
jl 0x9089b0
mov eax, edi
mov edi, dword [esp + 0xaf0]
mov ecx, dword [edi + 0x201c]
sar eax, 1
shl ecx, 4
lea ebx, [eax + ecx]
cmp ebx, 0xfffffff0
jl 0x908994
mov edi, dword [esp + 0xaf0]
mov edi, dword [edi + 4]
cmp esi, edi
mov dword [esp + 0x198], edi
jg 0x909c4e
mov edi, dword [esp + 0xaf0]
mov esi, dword [edi + 8]
cmp ebx, esi
mov dword [esp + 0x194], esi
jg 0x909c32
mov esi, dword [esp + 0x1a8]
sar esi, 1
lea edi, [esi + edx]
cmp edi, 0xfffffff0
jl 0x909c16
mov ebx, dword [esp + 0x1a4]
sar ebx, 1
lea edx, [ebx + ecx]
cmp edx, 0xfffffff0
jl 0x909bfa
cmp edi, dword [esp + 0x198]
jg 0x906450
cmp edx, dword [esp + 0x194]
jg 0x906434
mov ecx, dword [esp + 0x1e0]
mov edi, dword [esp + 0xb8]
mov edx, dword [edi + 0x13c]
mov edi, dword [esp + 0x1cc]
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], ecx
imul eax, ecx
add ebp, dword [edi]
lea eax, [ebp + eax]
mov ebp, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1a0]
mov ecx, dword [ebp + 0x58]
mov dword [esp], ecx
call dword [edx + eax*4]
mov ecx, dword [esp + 0x1e0]
mov edx, dword [ebp + 0x140]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0x10
imul ebx, ecx
add esi, dword [edi + 0x20]
mov ecx, dword [esp + 0x19c]
lea edi, [esi + ebx]
mov dword [esp + 4], edi
mov eax, dword [ebp + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4]
mov ecx, dword [esp + 0x1e0]
mov dword [esp + 0x10], 0x10
mov eax, dword [esp + 0x1c8]
mov dword [esp + 0xc], ecx
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0xaf0]
mov edx, dword [eax]
mov dword [esp + 8], edx
mov esi, dword [ebp + 0x58]
mov dword [esp], ebx
mov dword [esp + 4], esi
call dword [esp + 0x2e8]
mov ebp, eax
mov esi, dword [esp + 0x1e4]
mov ebx, dword [esp + 0x1e8]
mov eax, dword [esp + 0x2bc]
mov dword [eax + esi*4], ebx
movzx ecx, byte [esp + 0xa4]
mov edx, dword [esp + 0x250]
mov eax, dword [esp + 0x94]
mov edi, dword [esp + 0x2dc]
shl edx, cl
shl eax, cl
mov dword [edi + esi*4], ebp
sub edx, dword [esp + 0x2c4]
sub eax, dword [esp + 0x2c0]
mov ebx, dword [esp + 0x2c8]
movzx esi, byte [ebx + eax]
movzx edi, byte [ebx + edx]
add edi, esi
imul edi, dword [esp + 0xa20]
lea eax, [ebp + edi]
cmp eax, dword [esp + 0x2ec]
jge 0x8fd7a8
mov ecx, dword [esp + 0x250]
mov ebp, dword [esp + 0x94]
mov dword [esp + 0x2ec], eax
mov dword [esp + 0xac8], ecx
mov dword [esp + 0xacc], ebp
mov dword [esp + 0x2e0], 1
mov esi, dword [esp + 0x254]
mov edi, dword [esp + 0x2d0]
test esi, esi
setne dl
xor eax, eax
cmp dword [esp + 0x250], edi
setl al
test eax, edx
je 0x8fdc1c
mov edi, dword [esp + 0x24c]
mov esi, dword [esp + 0x2b4]
mov eax, dword [esp + 0x24c]
shl edi, 0xb
mov ebp, dword [esp + 0x2bc]
add edi, dword [esp + 0x250]
lea edx, [edi + esi + 1]
mov dword [esp + 0x188], edx
mov edx, dword [esp + 0x250]
lea ecx, [edx + eax*8 + 1]
mov ebx, dword [esp + 0x188]
and ecx, 0x3f
cmp dword [ebp + ecx*4], ebx
mov dword [esp + 0x184], ecx
je 0x8fdc1c
mov edi, dword [esp + 0xc4]
mov ebp, dword [esp + 0xb8]
add edx, 1
and edi, 1
mov eax, dword [ebp + 0x128]
mov ebp, dword [esp + 0xb04]
mov dword [esp + 0x178], edi
add edi, 1
shl ebp, 4
mov ecx, edi
mov esi, dword [esp + 0xb8]
mov dword [esp + 0x90], edx
mov dword [esp + 0x78], edi
shl edx, cl
mov edi, dword [esp + 0xb8]
mov ebx, dword [esi + 0x12c]
mov dword [esp + 0x180], eax
mov dword [esp + 0x174], edx
mov esi, dword [esp + 0x24c]
lea edx, [ebp + edi]
mov eax, dword [esp + 0xb00]
shl esi, cl
shl eax, 4
lea ecx, [edx + 0xe8]
mov dword [esp + 0x17c], ebx
mov dword [esp + 0x16c], ecx
mov ebx, dword [esp + 0xc4]
lea ecx, [eax + edi]
and ebx, 2
test byte [esp + 0xc4], 4
lea ebp, [ecx + 0xa8]
mov dword [esp + 0x170], esi
mov dword [esp + 0x168], ebp
je 0x8fdfd0
mov edx, dword [esp + 0x90]
cmp dword [edi + 0x90], edx
jg 0x9063e0
mov ebx, dword [edi + 0x94]
movzx ecx, byte [esp + 0x78]
shl ebx, cl
cmp ebx, dword [esp + 0x174]
jl 0x9063e0
mov eax, dword [esp + 0x24c]
cmp dword [edi + 0x98], eax
jg 0x9063e0
mov ebp, dword [edi + 0x9c]
shl ebp, cl
cmp ebp, esi
jl 0x9063e0
mov edi, dword [esp + 0xaf0]
mov edx, dword [esp + 0xaf0]
mov esi, dword [esp + 0x178]
movzx ecx, word [edx + 0x27b0]
add esi, esi
cmp dword [edi + 0x1d40], 1
mov dword [esp + 0x164], ecx
lea ebx, [esi + 1]
movzx ecx, word [edi + 0x27b2]
je 0x8fe7ab
mov eax, dword [esp + 0xb8]
mov esi, dword [esp + 0x174]
mov edi, dword [esp + 0x170]
mov ebp, dword [esp + 0x174]
add esi, dword [eax + 0x28]
add edi, dword [eax + 0x2c]
test ebp, ebp
je 0x8fe4a4
mov edx, esi
sub edx, dword [eax + 8]
mov dword [esp + 0x148], edx
mov ebp, dword [esp + 0x170]
test ebp, ebp
je 0x8fe4d0
mov ecx, edi
mov eax, dword [esp + 0xb8]
sub ecx, dword [eax + 0xc]
mov dword [esp + 0x144], ecx
mov ebp, esi
mov edx, edi
mov eax, dword [esp + 0x148]
and ebp, ebx
and edx, ebx
and eax, ebx
movzx ecx, byte [esp + 0x78]
and ebx, dword [esp + 0x144]
shl ebx, cl
shl edx, cl
add eax, ebx
mov ebx, dword [esp + 0x178]
add ebp, edx
test ebx, ebx
mov dword [esp + 0x140], ebp
mov dword [esp + 0x13c], eax
jne 0x900107
mov ebp, esi
mov esi, dword [esp + 0xaf0]
mov edx, dword [esi + 0x2018]
sar ebp, 1
shl edx, 4
lea esi, [ebp + edx]
cmp esi, 0xfffffff0
jl 0x9063a8
mov eax, edi
mov edi, dword [esp + 0xaf0]
mov ecx, dword [edi + 0x201c]
sar eax, 1
shl ecx, 4
lea ebx, [eax + ecx]
cmp ebx, 0xfffffff0
jl 0x90638c
mov edi, dword [esp + 0xaf0]
mov edi, dword [edi + 4]
cmp esi, edi
mov dword [esp + 0x138], edi
jg 0x9064f8
mov edi, dword [esp + 0xaf0]
mov esi, dword [edi + 8]
cmp ebx, esi
mov dword [esp + 0x134], esi
jg 0x9064dc
mov esi, dword [esp + 0x148]
sar esi, 1
lea edi, [esi + edx]
cmp edi, 0xfffffff0
jl 0x9064c0
mov ebx, dword [esp + 0x144]
sar ebx, 1
lea edx, [ebx + ecx]
cmp edx, 0xfffffff0
jl 0x9064a4
cmp edi, dword [esp + 0x138]
jg 0x906488
cmp edx, dword [esp + 0x134]
jg 0x90646c
mov ecx, dword [esp + 0x180]
mov edi, dword [esp + 0xb8]
mov edx, dword [edi + 0x13c]
mov edi, dword [esp + 0x16c]
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], ecx
imul eax, ecx
add ebp, dword [edi]
lea eax, [ebp + eax]
mov ebp, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x140]
mov ecx, dword [ebp + 0x58]
mov dword [esp], ecx
call dword [edx + eax*4]
mov ecx, dword [esp + 0x180]
mov edx, dword [ebp + 0x140]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0x10
imul ebx, ecx
add esi, dword [edi + 0x20]
mov ecx, dword [esp + 0x13c]
lea edi, [esi + ebx]
mov dword [esp + 4], edi
mov eax, dword [ebp + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4]
mov ecx, dword [esp + 0x180]
mov dword [esp + 0x10], 0x10
mov eax, dword [esp + 0x168]
mov dword [esp + 0xc], ecx
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0xaf0]
mov edx, dword [eax]
mov dword [esp + 8], edx
mov esi, dword [ebp + 0x58]
mov dword [esp], ebx
mov dword [esp + 4], esi
call dword [esp + 0x2e8]
mov ebp, eax
mov esi, dword [esp + 0x184]
mov ebx, dword [esp + 0x188]
mov eax, dword [esp + 0x2bc]
mov dword [eax + esi*4], ebx
movzx ecx, byte [esp + 0xa4]
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x24c]
mov edi, dword [esp + 0x2dc]
shl edx, cl
shl eax, cl
mov dword [edi + esi*4], ebp
sub edx, dword [esp + 0x2c4]
sub eax, dword [esp + 0x2c0]
mov ebx, dword [esp + 0x2c8]
movzx esi, byte [ebx + eax]
movzx edi, byte [ebx + edx]
add edi, esi
imul edi, dword [esp + 0xa20]
lea eax, [ebp + edi]
cmp eax, dword [esp + 0x2ec]
jge 0x8fdc1c
mov ecx, dword [esp + 0x90]
mov ebp, dword [esp + 0x24c]
mov dword [esp + 0x2ec], eax
mov dword [esp + 0xac8], ecx
mov dword [esp + 0xacc], ebp
mov dword [esp + 0x2e0], 2
cmp dword [esp + 0x254], 1
mov edi, dword [esp + 0x2cc]
setne dl
xor eax, eax
cmp dword [esp + 0x24c], edi
setl al
test eax, edx
jne 0x8fca36
cmp dword [esp + 0x2e0], 0xffffffff
jne 0x8fce80
mov edx, dword [esp + 0x2ec]
jmp 0x8f8c07
mov edi, dword [esp + 0x240]
mov esi, dword [esp + 0xb14]
mov eax, dword [esp + 0x98]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], edi
mov ebp, dword [esp + 0x24c]
add eax, dword [edx + 0xe8]
imul ebp, edi
add eax, ebp
mov ebp, dword [esp + 0xaf0]
mov dword [esp + 8], eax
mov edx, dword [ecx + 0xa8]
mov dword [esp], ebp
mov dword [esp + 4], edx
call dword [esp + 0x2e8]
test ebx, ebx
mov ebp, eax
je 0x8fd285
mov edx, dword [esp + 0x98]
mov ebx, dword [esp + 0x24c]
mov eax, dword [esp + 0xb8]
and edx, 1
and ebx, 1
mov ecx, dword [eax + 0x58]
lea ebx, [edx + ebx*2]
mov edx, dword [esp + 0xb10]
mov eax, dword [esp + 0xb8]
shl edx, 4
sar esi, 1
shl edi, 4
lea ebx, [edx + ebx*4]
add edi, ecx
mov dword [esp + 0x1ec], esi
mov edx, ebx
mov dword [esp + 0x1f0], edi
mov edi, dword [esp + 0x22c]
add edx, dword [eax + 0x13c]
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x23c]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x98]
mov eax, dword [esp + 0x1f0]
mov ecx, dword [edi + 4]
mov edi, dword [esp + 0x24c]
sar esi, 1
sar edi, 1
add ecx, esi
mov dword [esp], eax
imul edi, dword [esp + 0x23c]
add ecx, edi
mov dword [esp + 4], ecx
call dword [edx + 0x10]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x1ec]
mov edx, dword [esp + 0x23c]
add ebx, dword [ecx + 0x13c]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov ecx, dword [esp + 0x22c]
add esi, dword [ecx + 8]
add esi, edi
mov dword [esp + 4], esi
mov esi, dword [esp + 0x1f0]
add esi, 8
mov dword [esp], esi
call dword [ebx + 0x10]
mov ebx, dword [esp + 0x1ec]
mov eax, dword [esp + 0x23c]
mov dword [esp + 0x10], ebx
mov edx, dword [esp + 0x228]
mov dword [esp + 0xc], eax
mov ecx, dword [edx + 4]
mov edi, dword [esp + 0x1f0]
mov ebx, dword [esp + 0xaf0]
mov dword [esp + 8], ecx
mov dword [esp + 4], edi
mov dword [esp], ebx
call dword [esp + 0x2e4]
mov edx, dword [esp + 0x228]
mov edi, dword [esp + 0xaf0]
lea ebx, [ebp + eax]
mov ebp, dword [esp + 0x1ec]
mov eax, dword [esp + 0x23c]
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], eax
mov ecx, dword [edx + 8]
mov dword [esp + 4], esi
mov dword [esp], edi
mov dword [esp + 8], ecx
call dword [esp + 0x2e4]
lea ebp, [ebx + eax]
jmp 0x8fd285
mov edi, dword [esp + 0x1e0]
mov esi, dword [esp + 0xb14]
mov eax, dword [esp + 0x250]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], edi
mov ebp, dword [esp + 0x94]
add eax, dword [edx + 0xe8]
imul ebp, edi
add eax, ebp
mov ebp, dword [esp + 0xaf0]
mov dword [esp + 8], eax
mov edx, dword [ecx + 0xa8]
mov dword [esp], ebp
mov dword [esp + 4], edx
call dword [esp + 0x2e8]
test ebx, ebx
mov ebp, eax
je 0x8fd70a
mov edx, dword [esp + 0x250]
mov ebx, dword [esp + 0x94]
mov eax, dword [esp + 0xb8]
and edx, 1
and ebx, 1
mov ecx, dword [eax + 0x58]
lea ebx, [edx + ebx*2]
mov edx, dword [esp + 0xb10]
mov eax, dword [esp + 0xb8]
shl edx, 4
sar esi, 1
shl edi, 4
lea ebx, [edx + ebx*4]
add edi, ecx
mov dword [esp + 0x18c], esi
mov edx, ebx
mov dword [esp + 0x190], edi
mov edi, dword [esp + 0x1cc]
add edx, dword [eax + 0x13c]
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x1dc]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x250]
mov eax, dword [esp + 0x190]
mov ecx, dword [edi + 4]
mov edi, dword [esp + 0x94]
sar esi, 1
sar edi, 1
add ecx, esi
mov dword [esp], eax
imul edi, dword [esp + 0x1dc]
add ecx, edi
mov dword [esp + 4], ecx
call dword [edx + 0x10]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x18c]
mov edx, dword [esp + 0x1dc]
add ebx, dword [ecx + 0x13c]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov ecx, dword [esp + 0x1cc]
add esi, dword [ecx + 8]
add esi, edi
mov dword [esp + 4], esi
mov esi, dword [esp + 0x190]
add esi, 8
mov dword [esp], esi
call dword [ebx + 0x10]
mov ebx, dword [esp + 0x18c]
mov eax, dword [esp + 0x1dc]
mov dword [esp + 0x10], ebx
mov edx, dword [esp + 0x1c8]
mov dword [esp + 0xc], eax
mov ecx, dword [edx + 4]
mov edi, dword [esp + 0x190]
mov ebx, dword [esp + 0xaf0]
mov dword [esp + 8], ecx
mov dword [esp + 4], edi
mov dword [esp], ebx
call dword [esp + 0x2e4]
mov edx, dword [esp + 0x1c8]
mov edi, dword [esp + 0xaf0]
lea ebx, [ebp + eax]
mov ebp, dword [esp + 0x18c]
mov eax, dword [esp + 0x1dc]
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], eax
mov ecx, dword [edx + 8]
mov dword [esp + 4], esi
mov dword [esp], edi
mov dword [esp + 8], ecx
call dword [esp + 0x2e4]
lea ebp, [ebx + eax]
jmp 0x8fd70a
mov edi, dword [esp + 0x180]
mov esi, dword [esp + 0xb14]
mov eax, dword [esp + 0x90]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], edi
mov ebp, dword [esp + 0x24c]
add eax, dword [edx + 0xe8]
imul ebp, edi
add eax, ebp
mov ebp, dword [esp + 0xaf0]
mov dword [esp + 8], eax
mov edx, dword [ecx + 0xa8]
mov dword [esp], ebp
mov dword [esp + 4], edx
call dword [esp + 0x2e8]
test ebx, ebx
mov ebp, eax
je 0x8fdb7e
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0x24c]
mov eax, dword [esp + 0xb8]
and edx, 1
and ebx, 1
mov ecx, dword [eax + 0x58]
lea ebx, [edx + ebx*2]
mov edx, dword [esp + 0xb10]
mov eax, dword [esp + 0xb8]
shl edx, 4
sar esi, 1
shl edi, 4
lea ebx, [edx + ebx*4]
add edi, ecx
mov dword [esp + 0x12c], esi
mov edx, ebx
mov dword [esp + 0x130], edi
mov edi, dword [esp + 0x16c]
add edx, dword [eax + 0x13c]
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x17c]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x90]
mov eax, dword [esp + 0x130]
mov ecx, dword [edi + 4]
mov edi, dword [esp + 0x24c]
sar esi, 1
sar edi, 1
add ecx, esi
mov dword [esp], eax
imul edi, dword [esp + 0x17c]
add ecx, edi
mov dword [esp + 4], ecx
call dword [edx + 0x10]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x12c]
mov edx, dword [esp + 0x17c]
add ebx, dword [ecx + 0x13c]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov ecx, dword [esp + 0x16c]
add esi, dword [ecx + 8]
add esi, edi
mov dword [esp + 4], esi
mov esi, dword [esp + 0x130]
add esi, 8
mov dword [esp], esi
call dword [ebx + 0x10]
mov ebx, dword [esp + 0x12c]
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x10], ebx
mov edx, dword [esp + 0x168]
mov dword [esp + 0xc], eax
mov ecx, dword [edx + 4]
mov edi, dword [esp + 0x130]
mov ebx, dword [esp + 0xaf0]
mov dword [esp + 8], ecx
mov dword [esp + 4], edi
mov dword [esp], ebx
call dword [esp + 0x2e4]
mov edx, dword [esp + 0x168]
mov edi, dword [esp + 0xaf0]
lea ebx, [ebp + eax]
mov ebp, dword [esp + 0x12c]
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], eax
mov ecx, dword [edx + 8]
mov dword [esp + 4], esi
mov dword [esp], edi
mov dword [esp + 8], ecx
call dword [esp + 0x2e4]
lea ebp, [ebx + eax]
jmp 0x8fdb7e
mov edi, dword [esp + 0x120]
mov esi, dword [esp + 0xb14]
mov eax, dword [esp + 0x250]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], edi
mov ebp, dword [esp + 0x8c]
add eax, dword [edx + 0xe8]
imul ebp, edi
add eax, ebp
mov ebp, dword [esp + 0xaf0]
mov dword [esp + 8], eax
mov edx, dword [ecx + 0xa8]
mov dword [esp], ebp
mov dword [esp + 4], edx
call dword [esp + 0x2e8]
test ebx, ebx
mov ebp, eax
je 0x8fcdde
mov edx, dword [esp + 0x250]
mov ebx, dword [esp + 0x8c]
mov eax, dword [esp + 0xb8]
and edx, 1
and ebx, 1
mov ecx, dword [eax + 0x58]
lea ebx, [edx + ebx*2]
mov edx, dword [esp + 0xb10]
mov eax, dword [esp + 0xb8]
shl edx, 4
sar esi, 1
shl edi, 4
lea ebx, [edx + ebx*4]
add edi, ecx
mov dword [esp + 0xcc], esi
mov edx, ebx
mov dword [esp + 0xd0], edi
mov edi, dword [esp + 0x10c]
add edx, dword [eax + 0x13c]
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x11c]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x250]
mov eax, dword [esp + 0xd0]
mov ecx, dword [edi + 4]
mov edi, dword [esp + 0x8c]
sar esi, 1
sar edi, 1
add ecx, esi
mov dword [esp], eax
imul edi, dword [esp + 0x11c]
add ecx, edi
mov dword [esp + 4], ecx
call dword [edx + 0x10]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0xcc]
mov edx, dword [esp + 0x11c]
add ebx, dword [ecx + 0x13c]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov ecx, dword [esp + 0x10c]
add esi, dword [ecx + 8]
add esi, edi
mov dword [esp + 4], esi
mov esi, dword [esp + 0xd0]
add esi, 8
mov dword [esp], esi
call dword [ebx + 0x10]
mov ebx, dword [esp + 0xcc]
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x10], ebx
mov edx, dword [esp + 0x108]
mov dword [esp + 0xc], eax
mov ecx, dword [edx + 4]
mov edi, dword [esp + 0xd0]
mov ebx, dword [esp + 0xaf0]
mov dword [esp + 8], ecx
mov dword [esp + 4], edi
mov dword [esp], ebx
call dword [esp + 0x2e4]
mov edx, dword [esp + 0x108]
mov edi, dword [esp + 0xaf0]
lea ebx, [ebp + eax]
mov ebp, dword [esp + 0xcc]
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], eax
mov ecx, dword [edx + 8]
mov dword [esp + 4], esi
mov dword [esp], edi
mov dword [esp + 8], ecx
call dword [esp + 0x2e4]
lea ebp, [ebx + eax]
jmp 0x8fcdde
mov edx, ecx
mov eax, dword [esp + 0xb8]
sub edx, dword [esp + 0x1c4]
mov ebp, edx
imul ebp, dword [eax + 8]
mov eax, ebp
cdq
idiv dword [esp + 0x1c4]
mov dword [esp + 0x1a8], eax
jmp 0x8fd52a
sub ecx, dword [esp + 0x1c4]
mov ebp, dword [esp + 0xb8]
imul ecx, dword [ebp + 0xc]
mov eax, ecx
cdq
idiv dword [esp + 0x1c4]
mov dword [esp + 0x1a4], eax
jmp 0x8fd54c
mov edx, ecx
mov eax, dword [esp + 0xb8]
sub edx, dword [esp + 0x224]
mov ebp, edx
imul ebp, dword [eax + 8]
mov eax, ebp
cdq
idiv dword [esp + 0x224]
mov dword [esp + 0x208], eax
jmp 0x8fd0a5
sub ecx, dword [esp + 0x224]
mov ebp, dword [esp + 0xb8]
imul ecx, dword [ebp + 0xc]
mov eax, ecx
cdq
idiv dword [esp + 0x224]
mov dword [esp + 0x204], eax
jmp 0x8fd0c7
mov eax, dword [esp + 0xa20]
mov edx, dword [esp + 0xa28]
mov ecx, dword [esp + 0xc4]
mov ebp, dword [esp + 0xb14]
mov ebx, dword [esp + 0xb10]
mov dword [esp + 0xc], eax
mov esi, dword [esp + 0xb04]
mov edi, dword [esp + 0xb00]
mov dword [esp], edx
mov eax, dword [esp + 0xaf0]
lea edx, [esp + 0xac8]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], ebx
mov dword [esp + 8], esi
mov dword [esp + 4], edi
call fcn.008e25f5
jmp 0x8f8c05
mov edx, ecx
mov eax, dword [esp + 0xb8]
sub edx, dword [esp + 0x104]
mov ebp, edx
imul ebp, dword [eax + 8]
mov eax, ebp
cdq
idiv dword [esp + 0x104]
mov dword [esp + 0xe8], eax
jmp 0x8fcc01
sub ecx, dword [esp + 0x104]
mov ebp, dword [esp + 0xb8]
imul ecx, dword [ebp + 0xc]
mov eax, ecx
cdq
idiv dword [esp + 0x104]
mov dword [esp + 0xe4], eax
jmp 0x8fcc23
mov edx, ecx
mov eax, dword [esp + 0xb8]
sub edx, dword [esp + 0x164]
mov ebp, edx
imul ebp, dword [eax + 8]
mov eax, ebp
cdq
idiv dword [esp + 0x164]
mov dword [esp + 0x148], eax
jmp 0x8fd9a1
sub ecx, dword [esp + 0x164]
mov ebp, dword [esp + 0xb8]
imul ecx, dword [ebp + 0xc]
mov eax, ecx
cdq
idiv dword [esp + 0x164]
mov dword [esp + 0x144], eax
jmp 0x8fd9c3
mov eax, dword [esp + 0x760]
mov edi, dword [esp + 0xb8]
cmp dword [edi + 0x98], eax
jg 0x8f990d
mov ebp, dword [edi + 0x9c]
shl ebp, cl
cmp ebp, dword [esp + 0x744]
jl 0x8f990d
mov edi, dword [esp + 0x74c]
mov ecx, dword [esp + 0xaf0]
mov edx, dword [esp + 0xaf0]
add edi, edi
movzx ebp, word [ecx + 0x27b0]
mov esi, dword [esp + 0xaf0]
add edi, 1
cmp dword [edx + 0x1d40], 1
mov dword [esp + 0x734], ebp
movzx ecx, word [esi + 0x27b2]
mov dword [esp + 0x730], edi
je 0x908dc3
mov eax, dword [esp + 0xb8]
mov esi, dword [esp + 0x748]
mov edi, dword [esp + 0x744]
mov ebp, dword [esp + 0x748]
add esi, dword [eax + 0x28]
add edi, dword [eax + 0x2c]
test ebp, ebp
je 0x908d97
mov edx, esi
sub edx, dword [eax + 8]
mov dword [esp + 0x714], edx
mov ebp, dword [esp + 0x744]
test ebp, ebp
je 0x908d6f
mov ecx, edi
mov eax, dword [esp + 0xb8]
sub ecx, dword [eax + 0xc]
mov dword [esp + 0x710], ecx
mov eax, dword [esp + 0x730]
mov ebp, dword [esp + 0x730]
mov ecx, ebx
and eax, edi
and ebp, esi
mov edx, dword [esp + 0x710]
shl eax, cl
mov ebx, dword [esp + 0x74c]
add ebp, eax
mov eax, dword [esp + 0x714]
and eax, dword [esp + 0x730]
and dword [esp + 0x730], edx
mov dword [esp + 0x70c], ebp
shl dword [esp + 0x730], cl
add eax, dword [esp + 0x730]
test ebx, ebx
mov dword [esp + 0x708], eax
jne 0x908b2f
mov eax, dword [esp + 0x178]
sub ecx, dword [esp + 0x164]
mov dword [esp + 0x160], 0
add eax, 4
mov dword [esp + 0x15c], ecx
mov dword [esp + 0x158], eax
mov edi, dword [esp + 0x160]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x174]
mov esi, dword [esp + 0x170]
mov ebp, dword [esp + 0x174]
add edx, dword [eax + edi*8 + 0x28]
add esi, dword [eax + edi*8 + 0x2c]
test ebp, ebp
mov dword [esp + 0x38], edx
je 0x8fe954
mov ebp, edx
mov ecx, dword [esp + 0x160]
sub ebp, dword [eax + ecx*8 + 8]
mov eax, dword [esp + 0x170]
test eax, eax
je 0x8fea35
mov edi, esi
mov edx, dword [esp + 0x160]
mov ecx, dword [esp + 0xb8]
sub edi, dword [ecx + edx*8 + 0xc]
mov eax, esi
movzx ecx, byte [esp + 0x78]
mov edx, dword [esp + 0x38]
and eax, ebx
and edx, ebx
shl eax, cl
add edx, eax
mov eax, edi
and eax, ebx
mov dword [esp + 0x154], edx
mov edx, ebp
shl eax, cl
and edx, ebx
mov ecx, dword [esp + 0x160]
add edx, eax
sar ecx, 1
mov dword [esp + 0x150], edx
mov edx, dword [esp + 0x160]
imul ecx, dword [esp + 0x180]
and edx, 1
add edx, ecx
mov ecx, dword [esp + 0xb8]
mov eax, dword [ecx + 0x58]
lea edx, [eax + edx*8]
mov eax, dword [esp + 0x178]
test eax, eax
mov dword [esp + 0x14c], edx
je 0x8fe98d
mov eax, dword [esp + 0x180]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x16c]
mov dword [esp + 8], eax
sar dword [esp + 0x38], 2
sar esi, 2
mov ecx, dword [ecx]
imul esi, eax
mov eax, dword [esp + 0x14c]
add dword [esp + 0x38], ecx
mov dword [esp], eax
sar ebp, 2
mov ecx, dword [esp + 0x38]
sar edi, 2
add ecx, esi
mov esi, dword [esp + 0x154]
mov dword [esp + 4], ecx
call dword [edx + esi*4 + 0x40]
mov esi, dword [esp + 0x180]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov eax, dword [esp + 0x16c]
mov dword [esp + 8], esi
add ebp, dword [eax + 0x20]
imul edi, esi
mov esi, dword [esp + 0x150]
lea ecx, [ebp + edi]
mov ebp, dword [esp + 0x14c]
mov dword [esp + 4], ecx
mov dword [esp], ebp
call dword [edx + esi*4 + 0x40]
add dword [esp + 0x160], 1
cmp dword [esp + 0x160], 3
jle 0x8fe7d5
jmp 0x8fdb3d
mov edi, dword [esp + 0x160]
mov ebp, dword [esp + 0xb8]
mov eax, dword [esp + 0x15c]
imul eax, dword [ebp + edi*8 + 8]
movzx ecx, byte [esp + 0x158]
cdq
idiv dword [esp + 0x164]
mov edx, edi
and edx, 1
shl edx, cl
lea ebp, [eax + edx]
jmp 0x8fe819
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x16c]
sar dword [esp + 0x38], 1
mov edx, dword [ecx + 0x13c]
mov ecx, dword [esp + 0x180]
mov dword [esp + 0xc], 8
mov dword [esp + 8], ecx
sar esi, 1
sar ebp, 1
mov eax, dword [eax]
imul esi, ecx
mov ecx, dword [esp + 0x14c]
add dword [esp + 0x38], eax
mov dword [esp], ecx
sar edi, 1
mov eax, dword [esp + 0x38]
add eax, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x154]
call dword [edx + eax*4 + 0x10]
mov esi, dword [esp + 0xb8]
mov eax, dword [esp + 0x180]
mov edx, dword [esi + 0x140]
mov ecx, dword [esp + 0x16c]
mov dword [esp + 0xc], 8
mov dword [esp + 8], eax
imul edi, eax
add ebp, dword [ecx + 0x20]
lea esi, [ebp + edi]
mov ebp, dword [esp + 0x14c]
mov edi, dword [esp + 0x150]
mov dword [esp + 4], esi
mov dword [esp], ebp
call dword [edx + edi*4 + 0x10]
jmp 0x8fe939
mov ecx, dword [esp + 0x160]
mov edi, dword [esp + 0xb8]
mov eax, dword [esp + 0x15c]
imul eax, dword [edi + ecx*8 + 0xc]
cdq
idiv dword [esp + 0x164]
mov edx, ecx
movzx ecx, byte [esp + 0x158]
sar edx, 1
shl edx, cl
lea edi, [eax + edx]
jmp 0x8fe83c
mov edx, dword [esp + 0x238]
sub ecx, dword [esp + 0x224]
mov dword [esp + 0x220], 0
add edx, 4
mov dword [esp + 0x21c], ecx
mov dword [esp + 0x218], edx
mov edi, dword [esp + 0x220]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x234]
mov esi, dword [esp + 0x230]
mov ebp, dword [esp + 0x234]
add edx, dword [eax + edi*8 + 0x28]
add esi, dword [eax + edi*8 + 0x2c]
test ebp, ebp
mov dword [esp + 0x38], edx
je 0x8fec19
mov ebp, edx
mov ecx, dword [esp + 0x220]
sub ebp, dword [eax + ecx*8 + 8]
mov eax, dword [esp + 0x230]
test eax, eax
je 0x8fecfa
mov edi, esi
mov edx, dword [esp + 0x220]
mov ecx, dword [esp + 0xb8]
sub edi, dword [ecx + edx*8 + 0xc]
mov eax, esi
movzx ecx, byte [esp + 0x88]
mov edx, dword [esp + 0x38]
and eax, ebx
and edx, ebx
shl eax, cl
add edx, eax
mov eax, edi
and eax, ebx
mov dword [esp + 0x214], edx
mov edx, ebp
shl eax, cl
and edx, ebx
mov ecx, dword [esp + 0x220]
add edx, eax
sar ecx, 1
mov dword [esp + 0x210], edx
mov edx, dword [esp + 0x220]
imul ecx, dword [esp + 0x240]
and edx, 1
add edx, ecx
mov ecx, dword [esp + 0xb8]
mov eax, dword [ecx + 0x58]
lea edx, [eax + edx*8]
mov eax, dword [esp + 0x238]
test eax, eax
mov dword [esp + 0x20c], edx
je 0x8fec52
mov eax, dword [esp + 0x240]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x22c]
mov dword [esp + 8], eax
sar dword [esp + 0x38], 2
sar esi, 2
mov ecx, dword [ecx]
imul esi, eax
mov eax, dword [esp + 0x20c]
add dword [esp + 0x38], ecx
mov dword [esp], eax
sar ebp, 2
mov ecx, dword [esp + 0x38]
sar edi, 2
add ecx, esi
mov esi, dword [esp + 0x214]
mov dword [esp + 4], ecx
call dword [edx + esi*4 + 0x40]
mov esi, dword [esp + 0x240]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov eax, dword [esp + 0x22c]
mov dword [esp + 8], esi
add ebp, dword [eax + 0x20]
imul edi, esi
mov esi, dword [esp + 0x210]
lea ecx, [ebp + edi]
mov ebp, dword [esp + 0x20c]
mov dword [esp + 4], ecx
mov dword [esp], ebp
call dword [edx + esi*4 + 0x40]
add dword [esp + 0x220], 1
cmp dword [esp + 0x220], 3
jle 0x8fea97
jmp 0x8fd244
mov edi, dword [esp + 0x220]
mov ebp, dword [esp + 0xb8]
mov eax, dword [esp + 0x21c]
imul eax, dword [ebp + edi*8 + 8]
movzx ecx, byte [esp + 0x218]
cdq
idiv dword [esp + 0x224]
mov edx, edi
and edx, 1
shl edx, cl
lea ebp, [eax + edx]
jmp 0x8feadb
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x22c]
sar dword [esp + 0x38], 1
mov edx, dword [ecx + 0x13c]
mov ecx, dword [esp + 0x240]
mov dword [esp + 0xc], 8
mov dword [esp + 8], ecx
sar esi, 1
sar ebp, 1
mov eax, dword [eax]
imul esi, ecx
mov ecx, dword [esp + 0x20c]
add dword [esp + 0x38], eax
mov dword [esp], ecx
sar edi, 1
mov eax, dword [esp + 0x38]
add eax, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x214]
call dword [edx + eax*4 + 0x10]
mov esi, dword [esp + 0xb8]
mov eax, dword [esp + 0x240]
mov edx, dword [esi + 0x140]
mov ecx, dword [esp + 0x22c]
mov dword [esp + 0xc], 8
mov dword [esp + 8], eax
imul edi, eax
add ebp, dword [ecx + 0x20]
lea esi, [ebp + edi]
mov ebp, dword [esp + 0x20c]
mov edi, dword [esp + 0x210]
mov dword [esp + 4], esi
mov dword [esp], ebp
call dword [edx + edi*4 + 0x10]
jmp 0x8febfe
mov ecx, dword [esp + 0x220]
mov edi, dword [esp + 0xb8]
mov eax, dword [esp + 0x21c]
imul eax, dword [edi + ecx*8 + 0xc]
cdq
idiv dword [esp + 0x224]
mov edx, ecx
movzx ecx, byte [esp + 0x218]
sar edx, 1
shl edx, cl
lea edi, [eax + edx]
jmp 0x8feafe
mov edx, dword [esp + 0x118]
sub ecx, dword [esp + 0x104]
mov dword [esp + 0x100], 0
add edx, 4
mov dword [esp + 0xfc], ecx
mov dword [esp + 0xf8], edx
mov ecx, dword [esp + 0x100]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x114]
mov esi, dword [esp + 0x110]
mov edi, dword [esp + 0x114]
add edx, dword [eax + ecx*8 + 0x28]
add esi, dword [eax + ecx*8 + 0x2c]
test edi, edi
mov dword [esp + 0x38], edx
je 0x8feedb
mov ebp, edx
mov edx, dword [esp + 0x100]
sub ebp, dword [eax + edx*8 + 8]
mov eax, dword [esp + 0x110]
test eax, eax
je 0x8fefbc
mov edi, esi
mov edx, dword [esp + 0x100]
mov ecx, dword [esp + 0xb8]
sub edi, dword [ecx + edx*8 + 0xc]
mov eax, esi
movzx ecx, byte [esp + 0x6c]
mov edx, dword [esp + 0x38]
and eax, ebx
and edx, ebx
shl eax, cl
add edx, eax
mov eax, edi
and eax, ebx
mov dword [esp + 0xf4], edx
mov edx, ebp
shl eax, cl
and edx, ebx
mov ecx, dword [esp + 0x100]
add edx, eax
sar ecx, 1
mov dword [esp + 0xf0], edx
mov edx, dword [esp + 0x100]
imul ecx, dword [esp + 0x120]
and edx, 1
add edx, ecx
mov ecx, dword [esp + 0xb8]
mov eax, dword [ecx + 0x58]
lea edx, [eax + edx*8]
mov eax, dword [esp + 0x118]
test eax, eax
mov dword [esp + 0xec], edx
je 0x8fef14
mov eax, dword [esp + 0x120]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x10c]
mov dword [esp + 8], eax
sar dword [esp + 0x38], 2
sar esi, 2
mov ecx, dword [ecx]
imul esi, eax
mov eax, dword [esp + 0xec]
add dword [esp + 0x38], ecx
mov dword [esp], eax
sar ebp, 2
mov ecx, dword [esp + 0x38]
sar edi, 2
add ecx, esi
mov esi, dword [esp + 0xf4]
mov dword [esp + 4], ecx
call dword [edx + esi*4 + 0x40]
mov esi, dword [esp + 0x120]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov eax, dword [esp + 0x10c]
mov dword [esp + 8], esi
add ebp, dword [eax + 0x20]
imul edi, esi
mov esi, dword [esp + 0xf0]
lea ecx, [ebp + edi]
mov ebp, dword [esp + 0xec]
mov dword [esp + 4], ecx
mov dword [esp], ebp
call dword [edx + esi*4 + 0x40]
add dword [esp + 0x100], 1
cmp dword [esp + 0x100], 3
jle 0x8fed5c
jmp 0x8fcd9d
mov edi, dword [esp + 0x100]
mov ebp, dword [esp + 0xb8]
mov eax, dword [esp + 0xfc]
imul eax, dword [ebp + edi*8 + 8]
movzx ecx, byte [esp + 0xf8]
cdq
idiv dword [esp + 0x104]
mov edx, edi
and edx, 1
shl edx, cl
lea ebp, [eax + edx]
jmp 0x8feda0
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x10c]
sar dword [esp + 0x38], 1
mov edx, dword [ecx + 0x13c]
mov ecx, dword [esp + 0x120]
mov dword [esp + 0xc], 8
mov dword [esp + 8], ecx
sar esi, 1
sar ebp, 1
mov eax, dword [eax]
imul esi, ecx
mov ecx, dword [esp + 0xec]
add dword [esp + 0x38], eax
mov dword [esp], ecx
sar edi, 1
mov eax, dword [esp + 0x38]
add eax, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0xf4]
call dword [edx + eax*4 + 0x10]
mov esi, dword [esp + 0xb8]
mov eax, dword [esp + 0x120]
mov edx, dword [esi + 0x140]
mov ecx, dword [esp + 0x10c]
mov dword [esp + 0xc], 8
mov dword [esp + 8], eax
imul edi, eax
add ebp, dword [ecx + 0x20]
lea esi, [ebp + edi]
mov ebp, dword [esp + 0xec]
mov edi, dword [esp + 0xf0]
mov dword [esp + 4], esi
mov dword [esp], ebp
call dword [edx + edi*4 + 0x10]
jmp 0x8feec0
mov ecx, dword [esp + 0x100]
mov edi, dword [esp + 0xb8]
mov eax, dword [esp + 0xfc]
imul eax, dword [edi + ecx*8 + 0xc]
cdq
idiv dword [esp + 0x104]
mov edx, ecx
movzx ecx, byte [esp + 0xf8]
sar edx, 1
shl edx, cl
lea edi, [eax + edx]
jmp 0x8fedc3
mov edx, dword [esp + 0x1d8]
sub ecx, dword [esp + 0x1c4]
mov dword [esp + 0x1c0], 0
add edx, 4
mov dword [esp + 0x1bc], ecx
mov dword [esp + 0x1b8], edx
mov edi, dword [esp + 0x1c0]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x1d4]
mov esi, dword [esp + 0x1d0]
mov ebp, dword [esp + 0x1d4]
add edx, dword [eax + edi*8 + 0x28]
add esi, dword [eax + edi*8 + 0x2c]
test ebp, ebp
mov dword [esp + 0x38], edx
je 0x8ff1a0
mov ebp, edx
mov ecx, dword [esp + 0x1c0]
sub ebp, dword [eax + ecx*8 + 8]
mov eax, dword [esp + 0x1d0]
test eax, eax
je 0x8ff281
mov edi, esi
mov edx, dword [esp + 0x1c0]
mov ecx, dword [esp + 0xb8]
sub edi, dword [ecx + edx*8 + 0xc]
mov eax, esi
movzx ecx, byte [esp + 0x80]
mov edx, dword [esp + 0x38]
and eax, ebx
and edx, ebx
shl eax, cl
add edx, eax
mov eax, edi
and eax, ebx
mov dword [esp + 0x1b4], edx
mov edx, ebp
shl eax, cl
and edx, ebx
mov ecx, dword [esp + 0x1c0]
add edx, eax
sar ecx, 1
mov dword [esp + 0x1b0], edx
mov edx, dword [esp + 0x1c0]
imul ecx, dword [esp + 0x1e0]
and edx, 1
add edx, ecx
mov ecx, dword [esp + 0xb8]
mov eax, dword [ecx + 0x58]
lea edx, [eax + edx*8]
mov eax, dword [esp + 0x1d8]
test eax, eax
mov dword [esp + 0x1ac], edx
je 0x8ff1d9
mov eax, dword [esp + 0x1e0]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x1cc]
mov dword [esp + 8], eax
sar dword [esp + 0x38], 2
sar esi, 2
mov ecx, dword [ecx]
imul esi, eax
mov eax, dword [esp + 0x1ac]
add dword [esp + 0x38], ecx
mov dword [esp], eax
sar ebp, 2
mov ecx, dword [esp + 0x38]
sar edi, 2
add ecx, esi
mov esi, dword [esp + 0x1b4]
mov dword [esp + 4], ecx
call dword [edx + esi*4 + 0x40]
mov esi, dword [esp + 0x1e0]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov eax, dword [esp + 0x1cc]
mov dword [esp + 8], esi
add ebp, dword [eax + 0x20]
imul edi, esi
mov esi, dword [esp + 0x1b0]
lea ecx, [ebp + edi]
mov ebp, dword [esp + 0x1ac]
mov dword [esp + 4], ecx
mov dword [esp], ebp
call dword [edx + esi*4 + 0x40]
add dword [esp + 0x1c0], 1
cmp dword [esp + 0x1c0], 3
jle 0x8ff01e
jmp 0x8fd6c9
mov edi, dword [esp + 0x1c0]
mov ebp, dword [esp + 0xb8]
mov eax, dword [esp + 0x1bc]
imul eax, dword [ebp + edi*8 + 8]
movzx ecx, byte [esp + 0x1b8]
cdq
idiv dword [esp + 0x1c4]
mov edx, edi
and edx, 1
shl edx, cl
lea ebp, [eax + edx]
jmp 0x8ff062
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x1cc]
sar dword [esp + 0x38], 1
mov edx, dword [ecx + 0x13c]
mov ecx, dword [esp + 0x1e0]
mov dword [esp + 0xc], 8
mov dword [esp + 8], ecx
sar esi, 1
sar ebp, 1
mov eax, dword [eax]
imul esi, ecx
mov ecx, dword [esp + 0x1ac]
add dword [esp + 0x38], eax
mov dword [esp], ecx
sar edi, 1
mov eax, dword [esp + 0x38]
add eax, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1b4]
call dword [edx + eax*4 + 0x10]
mov esi, dword [esp + 0xb8]
mov eax, dword [esp + 0x1e0]
mov edx, dword [esi + 0x140]
mov ecx, dword [esp + 0x1cc]
mov dword [esp + 0xc], 8
mov dword [esp + 8], eax
imul edi, eax
add ebp, dword [ecx + 0x20]
lea esi, [ebp + edi]
mov ebp, dword [esp + 0x1ac]
mov edi, dword [esp + 0x1b0]
mov dword [esp + 4], esi
mov dword [esp], ebp
call dword [edx + edi*4 + 0x10]
jmp 0x8ff185
mov ecx, dword [esp + 0x1c0]
mov edi, dword [esp + 0xb8]
mov eax, dword [esp + 0x1bc]
imul eax, dword [edi + ecx*8 + 0xc]
cdq
idiv dword [esp + 0x1c4]
mov edx, ecx
movzx ecx, byte [esp + 0x1b8]
sar edx, 1
shl edx, cl
lea edi, [eax + edx]
jmp 0x8ff085
mov eax, dword [esp + 0xa20]
mov edx, dword [esp + 0xa28]
mov ecx, dword [esp + 0xc4]
mov ebp, dword [esp + 0xb14]
mov ebx, dword [esp + 0xb10]
mov dword [esp + 0xc], eax
mov esi, dword [esp + 0xb04]
mov edi, dword [esp + 0xb00]
mov dword [esp], edx
mov eax, dword [esp + 0xaf0]
lea edx, [esp + 0xac8]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], ebx
mov dword [esp + 8], esi
mov dword [esp + 4], edi
call fcn.008f0e14
jmp 0x8f8c05
mov edx, dword [esp + 0x7d0]
mov ebx, dword [esp + 0x7cc]
mov eax, dword [esp + 0xb8]
and edx, 1
and ebx, 1
mov ecx, dword [eax + 0x58]
lea ebx, [edx + ebx*2]
mov edx, dword [esp + 0xb10]
mov eax, dword [esp + 0xb8]
shl edx, 4
sar esi, 1
shl edi, 4
lea ebx, [edx + ebx*4]
add edi, ecx
mov dword [esp + 0x768], esi
mov edx, ebx
mov dword [esp + 0x76c], edi
mov edi, dword [esp + 0x7ac]
add edx, dword [eax + 0x13c]
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x7bc]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x7d0]
mov eax, dword [esp + 0x76c]
mov ecx, dword [edi + 4]
mov edi, dword [esp + 0x7cc]
sar esi, 1
sar edi, 1
add ecx, esi
mov dword [esp], eax
imul edi, dword [esp + 0x7bc]
add ecx, edi
mov dword [esp + 4], ecx
call dword [edx + 0x10]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x768]
mov edx, dword [esp + 0x7bc]
add ebx, dword [ecx + 0x13c]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov ecx, dword [esp + 0x7ac]
add esi, dword [ecx + 8]
add esi, edi
mov dword [esp + 4], esi
mov esi, dword [esp + 0x76c]
add esi, 8
mov dword [esp], esi
call dword [ebx + 0x10]
mov ebx, dword [esp + 0x768]
mov eax, dword [esp + 0x7bc]
mov dword [esp + 0x10], ebx
mov edx, dword [esp + 0x7a8]
mov dword [esp + 0xc], eax
mov ecx, dword [edx + 4]
mov edi, dword [esp + 0x76c]
mov ebx, dword [esp + 0xaf0]
mov dword [esp + 8], ecx
mov dword [esp + 4], edi
mov dword [esp], ebx
call dword [esp + 0xa10]
mov edx, dword [esp + 0x7a8]
mov edi, dword [esp + 0xaf0]
lea ebx, [ebp + eax]
mov ebp, dword [esp + 0x768]
mov eax, dword [esp + 0x7bc]
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], eax
mov ecx, dword [edx + 8]
mov dword [esp + 4], esi
mov dword [esp], edi
mov dword [esp + 8], ecx
call dword [esp + 0xa10]
lea ebp, [ebx + eax]
jmp 0x8f9656
cmp eax, dword [esp + 0x9fc]
cmovg eax, dword [esp + 0x9fc]
jmp 0x8fc3e4
cmp dword [esp + 0xa04], eax
jmp 0x8fc3d7
cmp ecx, dword [esp + 0xa00]
cmovg ecx, dword [esp + 0xa00]
mov dword [esp + 0x690], ecx
jmp 0x8fc3bc
cmp dword [esp + 0xa08], ecx
jmp 0x8fc3a8
mov edi, dword [esp + 0x680]
mov esi, dword [esp + 0xb14]
mov eax, dword [esp + 0x690]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], edi
mov ebp, dword [esp + 0x68c]
add eax, dword [edx + 0xe8]
imul ebp, edi
add eax, ebp
mov ebp, dword [esp + 0xaf0]
mov dword [esp + 8], eax
mov edx, dword [ecx + 0xa8]
mov dword [esp], ebp
mov dword [esp + 4], edx
call dword [esp + 0xa14]
test ebx, ebx
mov dword [esp + 0x664], eax
je 0x8ff669
mov eax, dword [esp + 0x690]
mov ebp, dword [esp + 0x68c]
mov edx, dword [esp + 0xb10]
and eax, 1
and ebp, 1
shl edx, 4
lea ebx, [eax + ebp*2]
mov ebp, edi
mov ecx, dword [esp + 0xb8]
lea ebx, [edx + ebx*4]
mov eax, dword [esp + 0xb8]
sar esi, 1
mov edx, ebx
shl ebp, 4
mov dword [esp + 0x62c], esi
add ebp, dword [ecx + 0x58]
add edx, dword [eax + 0x13c]
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x67c]
mov edi, dword [esp + 0x66c]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x690]
mov ecx, dword [edi + 4]
mov edi, dword [esp + 0x68c]
sar esi, 1
sar edi, 1
add ecx, esi
mov dword [esp], ebp
imul edi, dword [esp + 0x67c]
add ecx, edi
mov dword [esp + 4], ecx
call dword [edx + 0x10]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x62c]
mov ecx, dword [esp + 0x67c]
add ebx, dword [eax + 0x13c]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov eax, dword [esp + 0x66c]
add esi, dword [eax + 8]
add esi, edi
mov dword [esp + 4], esi
lea esi, [ebp + 8]
mov dword [esp], esi
call dword [ebx + 0x10]
mov edx, dword [esp + 0x62c]
mov ecx, dword [esp + 0x67c]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ecx
mov ebx, dword [esp + 0x668]
mov edi, dword [ebx + 4]
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov edi, dword [esp + 0xaf0]
mov dword [esp], edi
call dword [esp + 0xa10]
mov ebx, dword [esp + 0x664]
mov ebp, dword [esp + 0x62c]
add ebx, eax
mov eax, dword [esp + 0x67c]
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x668]
mov ecx, dword [edx + 8]
mov dword [esp + 4], esi
mov dword [esp], edi
mov dword [esp + 8], ecx
call dword [esp + 0xa10]
add ebx, eax
mov dword [esp + 0x664], ebx
mov eax, dword [esp + 0x684]
mov ebx, dword [esp + 0x688]
mov ebp, dword [esp + 0x9ec]
mov dword [ebp + eax*4], ebx
mov edi, dword [esp + 0xa0c]
mov ebp, dword [esp + 0x664]
mov dword [edi + eax*4], ebp
movzx ecx, byte [esp + 0x9e8]
mov edx, dword [esp + 0x690]
mov eax, dword [esp + 0x68c]
shl edx, cl
mov esi, dword [esp + 0x9f8]
shl eax, cl
sub edx, dword [esp + 0x9f4]
sub eax, dword [esp + 0x9f0]
movzx ebx, byte [esi + edx]
mov edx, dword [esp + 0xac8]
movzx edi, byte [esi + eax]
mov esi, dword [esp + 0xa28]
mov eax, dword [esp + 0x690]
lea ecx, [ebx + edi]
mov edi, edx
mov ebx, dword [esp + 0x68c]
imul ecx, dword [esp + 0xa20]
add ecx, ebp
mov ebp, dword [esp + 0xacc]
mov dword [esp + 0x38], ecx
cmp ecx, esi
cmovl esi, ecx
cmovl edi, eax
cmovl ebp, ebx
mov dword [esp + 0xa28], esi
mov dword [esp + 0xac8], edi
mov dword [esp + 0xacc], ebp
mov edx, dword [esp + 0xafc]
movzx ecx, byte [esp + 0x9e8]
mov edi, dword [edx + 0xc]
mov esi, dword [edx + 8]
sar edi, cl
sar esi, cl
mov eax, edi
lea ecx, [esi + edi*8]
shl eax, 0xb
and ecx, 0x3f
add eax, esi
mov dword [esp + 0x624], ecx
add eax, dword [esp + 0xa24]
cmp esi, dword [esp + 0xa08]
mov dword [esp + 0x628], eax
jl 0x908364
cmp esi, dword [esp + 0xa00]
jg 0x909bde
cmp edi, dword [esp + 0xa04]
jl 0x909bc2
cmp edi, dword [esp + 0x9fc]
jg 0x908a04
mov ebx, dword [esp + 0x628]
mov ebp, dword [esp + 0x624]
mov eax, dword [esp + 0x9ec]
cmp dword [eax + ebp*4], ebx
je 0x900db1
mov ebp, dword [esp + 0xc4]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0xb8]
and ebp, 1
mov ecx, dword [eax + 0x128]
mov ebx, dword [edx + 0x12c]
mov dword [esp + 0x618], ebp
add ebp, 1
mov dword [esp + 0x620], ecx
mov dword [esp + 0x9c], ebp
mov eax, esi
mov edx, edi
movzx ecx, byte [esp + 0x9c]
mov ebp, dword [esp + 0xb04]
mov dword [esp + 0x61c], ebx
shl eax, cl
shl edx, cl
shl ebp, 4
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x610], edx
mov ebx, dword [esp + 0xc4]
lea edx, [ebp + ecx]
mov ebp, dword [esp + 0xb00]
mov dword [esp + 0x614], eax
shl ebp, 4
lea eax, [edx + 0xe8]
and ebx, 2
lea ecx, [ebp + ecx]
mov dword [esp + 0x60c], eax
test byte [esp + 0xc4], 4
lea eax, [ecx + 0xa8]
mov dword [esp + 0x608], eax
je 0x900c96
mov edx, dword [esp + 0xb8]
cmp dword [edx + 0x90], esi
jg 0x8ff88f
mov esi, dword [edx + 0x94]
movzx ecx, byte [esp + 0x9c]
shl esi, cl
cmp esi, dword [esp + 0x614]
jge 0x90403f
mov dword [esp + 8], 0x7d
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd30f5c
call fcn.00a5b730
mov dword [esp + 8], 0x438
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd316a5
call fcn.00a5b730
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0x22c]
sar esi, 2
mov edx, dword [ebp + 0x144]
mov ebp, dword [esp + 0x240]
mov ecx, dword [esp + 0x200]
mov dword [esp + 8], ebp
mov eax, dword [ebx]
mov ebx, edi
mov edi, dword [esp + 0xb8]
sar ebx, 2
add eax, esi
imul ebp, ebx
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [edi + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0x240]
mov edx, dword [edi + 0x144]
mov dword [esp + 8], eax
mov edi, dword [esp + 0x22c]
mov ecx, dword [edi]
add ecx, esi
lea eax, [ecx + ebp + 8]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x200]
mov edi, dword [ecx + 0x58]
add edi, 8
mov dword [esp], edi
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0x22c]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x240]
mov dword [esp + 8], ecx
imul ebx, ecx
mov eax, dword [edi]
mov edi, ecx
mov ecx, dword [esp + 0x200]
add eax, esi
shl edi, 3
add ebx, eax
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov eax, dword [ebx + 0x58]
add eax, edi
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0xb8]
mov ebx, dword [esp + 0x240]
mov edx, dword [eax + 0x144]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x22c]
add esi, dword [ebx]
add esi, ebp
mov ebp, dword [esp + 0x200]
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
mov esi, eax
mov ecx, dword [eax + 0x58]
add ecx, edi
add ecx, 8
mov dword [esp], ecx
call dword [edx + ebp*4 + 0x40]
mov edx, dword [esi + 0x148]
mov esi, dword [esp + 0x240]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x208]
mov ebp, dword [esp + 0x240]
mov eax, dword [ebx + 0x20]
mov ebx, dword [esp + 0x204]
sar esi, 2
sar ebx, 2
add eax, esi
mov ecx, dword [esp + 0xb8]
imul ebp, ebx
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
mov dword [esp], eax
mov eax, dword [esp + 0x1fc]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x240]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x22c]
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0xb8]
add eax, esi
lea eax, [eax + ebp + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
add eax, 8
mov dword [esp], eax
mov eax, dword [esp + 0x1fc]
call dword [edx + eax*4 + 0x40]
mov eax, dword [esp + 0x240]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x22c]
imul ebx, eax
mov eax, dword [ecx + 0x20]
add eax, esi
add ebx, eax
mov eax, dword [esp + 0x1fc]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov ecx, dword [ebx + 0x58]
add ecx, edi
mov dword [esp], ecx
call dword [edx + eax*4 + 0x40]
mov edx, dword [esp + 0x240]
mov eax, dword [ebx + 0x148]
mov ecx, dword [esp + 0x22c]
mov dword [esp + 8], edx
add esi, dword [ecx + 0x20]
add esi, ebp
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
add edi, dword [ebx + 0x58]
add edi, 8
mov dword [esp], edi
mov edi, dword [esp + 0x1fc]
call dword [eax + edi*4 + 0x40]
jmp 0x8fd244
and eax, 0xff
mov edx, dword [esp + 0xa28]
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xa20]
mov ebp, dword [esp + 0xb14]
mov ebx, dword [esp + 0xb10]
mov dword [esp + 0xc], eax
mov esi, dword [esp + 0xb04]
mov edi, dword [esp + 0xb00]
mov dword [esp], edx
mov eax, dword [esp + 0xaf0]
lea edx, [esp + 0xac8]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], ebx
mov dword [esp + 8], esi
mov dword [esp + 4], edi
call fcn.008d96ea
jmp 0x8f8c05
mov dword [esp + 8], 0x438
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd316be
call fcn.00a5b730
mov dword [esp + 8], 0x438
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd316d7
call fcn.00a5b730
mov dword [esp + 8], 0x438
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd316f0
call fcn.00a5b730
mov edx, dword [esp + 0x504]
cmp dword [edi + 0x98], edx
jg 0x8f7bbc
mov eax, dword [edi + 0x9c]
shl eax, cl
cmp eax, esi
jl 0x8f7bbc
mov edi, dword [esp + 0x4f0]
mov esi, dword [esp + 0xaf0]
add edi, edi
movzx ebx, word [esi + 0x27b0]
movzx ecx, word [esi + 0x27b2]
add edi, 1
cmp dword [esi + 0x1d40], 1
mov dword [esp + 0x4d8], edi
je 0x90608c
mov eax, dword [esp + 0xb8]
mov esi, dword [esp + 0x4ec]
mov edi, dword [esp + 0x4e8]
mov ebp, dword [esp + 0x4ec]
add esi, dword [eax + 0x28]
add edi, dword [eax + 0x2c]
test ebp, ebp
je 0x90606a
mov edx, esi
sub edx, dword [eax + 8]
mov dword [esp + 0x4bc], edx
mov ebp, dword [esp + 0x4e8]
test ebp, ebp
je 0x90604c
mov ebx, edi
mov ecx, dword [esp + 0xb8]
sub ebx, dword [ecx + 0xc]
mov dword [esp + 0x4b8], ebx
mov ebx, dword [esp + 0x4d8]
mov ebp, dword [esp + 0x4d8]
movzx ecx, byte [esp + 0x70]
and ebx, edi
mov eax, dword [esp + 0x4bc]
mov edx, dword [esp + 0x4b8]
and eax, dword [esp + 0x4d8]
shl ebx, cl
and dword [esp + 0x4d8], edx
and ebp, esi
shl dword [esp + 0x4d8], cl
add ebp, ebx
mov ebx, dword [esp + 0x4f0]
add eax, dword [esp + 0x4d8]
test ebx, ebx
mov dword [esp + 0x4b4], ebp
mov dword [esp + 0x4b0], eax
jne 0x905e0f
mov ebp, esi
mov esi, dword [esp + 0xaf0]
mov edx, dword [esi + 0x2018]
sar ebp, 1
shl edx, 4
lea esi, [ebp + edx]
cmp esi, 0xfffffff0
jl 0x905df3
mov eax, edi
mov edi, dword [esp + 0xaf0]
mov ecx, dword [edi + 0x201c]
sar eax, 1
shl ecx, 4
lea ebx, [eax + ecx]
cmp ebx, 0xfffffff0
jl 0x905dd7
mov edi, dword [esp + 0xaf0]
mov edi, dword [edi + 4]
cmp esi, edi
mov dword [esp + 0x4ac], edi
jg 0x905dbb
mov edi, dword [esp + 0xaf0]
mov esi, dword [edi + 8]
cmp ebx, esi
mov dword [esp + 0x4a8], esi
jg 0x905d9f
mov esi, dword [esp + 0x4bc]
sar esi, 1
lea edi, [esi + edx]
cmp edi, 0xfffffff0
jl 0x905d83
mov ebx, dword [esp + 0x4b8]
sar ebx, 1
lea edx, [ebx + ecx]
cmp edx, 0xfffffff0
jl 0x905d67
cmp edi, dword [esp + 0x4ac]
jg 0x905d4b
cmp edx, dword [esp + 0x4a8]
jg 0x905d2f
mov ecx, dword [esp + 0x4f8]
mov edi, dword [esp + 0xb8]
mov edx, dword [edi + 0x13c]
mov edi, dword [esp + 0x4e4]
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], ecx
imul eax, ecx
add ebp, dword [edi]
lea eax, [ebp + eax]
mov ebp, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x4b4]
mov ecx, dword [ebp + 0x58]
mov dword [esp], ecx
call dword [edx + eax*4]
mov ecx, dword [esp + 0x4f8]
mov edx, dword [ebp + 0x140]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0x10
imul ebx, ecx
add esi, dword [edi + 0x20]
mov ecx, dword [esp + 0x4b0]
lea edi, [esi + ebx]
mov dword [esp + 4], edi
mov eax, dword [ebp + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4]
mov ecx, dword [esp + 0x4f8]
mov dword [esp + 0x10], 0x10
mov eax, dword [esp + 0x4e0]
mov dword [esp + 0xc], ecx
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0xaf0]
mov edx, dword [eax]
mov dword [esp + 8], edx
mov esi, dword [ebp + 0x58]
mov dword [esp], ebx
mov dword [esp + 4], esi
call dword [esp + 0xa14]
mov dword [esp + 0x4dc], eax
jmp 0x8fb5e7
mov dword [esp + 8], 0x438
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd316be
call fcn.00a5b730
mov dword [esp + 8], 0x438
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd316d7
call fcn.00a5b730
mov dword [esp + 8], 0x438
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd316f0
call fcn.00a5b730
mov dword [esp + 8], 0x438
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd316a5
call fcn.00a5b730
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0x1cc]
sar esi, 2
mov edx, dword [ebp + 0x144]
mov ebp, dword [esp + 0x1e0]
mov ecx, dword [esp + 0x1a0]
mov dword [esp + 8], ebp
mov eax, dword [ebx]
mov ebx, edi
mov edi, dword [esp + 0xb8]
sar ebx, 2
add eax, esi
imul ebp, ebx
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [edi + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0x1e0]
mov edx, dword [edi + 0x144]
mov dword [esp + 8], eax
mov edi, dword [esp + 0x1cc]
mov ecx, dword [edi]
add ecx, esi
lea eax, [ecx + ebp + 8]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1a0]
mov edi, dword [ecx + 0x58]
add edi, 8
mov dword [esp], edi
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0x1cc]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x1e0]
mov dword [esp + 8], ecx
imul ebx, ecx
mov eax, dword [edi]
mov edi, ecx
mov ecx, dword [esp + 0x1a0]
add eax, esi
shl edi, 3
add ebx, eax
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov eax, dword [ebx + 0x58]
add eax, edi
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0xb8]
mov ebx, dword [esp + 0x1e0]
mov edx, dword [eax + 0x144]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x1cc]
add esi, dword [ebx]
add esi, ebp
mov ebp, dword [esp + 0x1a0]
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
mov esi, eax
mov ecx, dword [eax + 0x58]
add ecx, edi
add ecx, 8
mov dword [esp], ecx
call dword [edx + ebp*4 + 0x40]
mov edx, dword [esi + 0x148]
mov esi, dword [esp + 0x1e0]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x1a8]
mov ebp, dword [esp + 0x1e0]
mov eax, dword [ebx + 0x20]
mov ebx, dword [esp + 0x1a4]
sar esi, 2
sar ebx, 2
add eax, esi
mov ecx, dword [esp + 0xb8]
imul ebp, ebx
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
mov dword [esp], eax
mov eax, dword [esp + 0x19c]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x1e0]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x1cc]
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0xb8]
add eax, esi
lea eax, [eax + ebp + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
add eax, 8
mov dword [esp], eax
mov eax, dword [esp + 0x19c]
call dword [edx + eax*4 + 0x40]
mov eax, dword [esp + 0x1e0]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x1cc]
imul ebx, eax
mov eax, dword [ecx + 0x20]
add eax, esi
add ebx, eax
mov eax, dword [esp + 0x19c]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov ecx, dword [ebx + 0x58]
add ecx, edi
mov dword [esp], ecx
call dword [edx + eax*4 + 0x40]
mov edx, dword [esp + 0x1e0]
mov eax, dword [ebx + 0x148]
mov ecx, dword [esp + 0x1cc]
mov dword [esp + 8], edx
add esi, dword [ecx + 0x20]
add esi, ebp
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
add edi, dword [ebx + 0x58]
add edi, 8
mov dword [esp], edi
mov edi, dword [esp + 0x19c]
call dword [eax + edi*4 + 0x40]
jmp 0x8fd6c9
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0x16c]
sar esi, 2
mov edx, dword [ebp + 0x144]
mov ebp, dword [esp + 0x180]
mov ecx, dword [esp + 0x140]
mov dword [esp + 8], ebp
mov eax, dword [ebx]
mov ebx, edi
mov edi, dword [esp + 0xb8]
sar ebx, 2
add eax, esi
imul ebp, ebx
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [edi + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0x180]
mov edx, dword [edi + 0x144]
mov dword [esp + 8], eax
mov edi, dword [esp + 0x16c]
mov ecx, dword [edi]
add ecx, esi
lea eax, [ecx + ebp + 8]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x140]
mov edi, dword [ecx + 0x58]
add edi, 8
mov dword [esp], edi
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0x16c]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x180]
mov dword [esp + 8], ecx
imul ebx, ecx
mov eax, dword [edi]
mov edi, ecx
mov ecx, dword [esp + 0x140]
add eax, esi
shl edi, 3
add ebx, eax
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov eax, dword [ebx + 0x58]
add eax, edi
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0xb8]
mov ebx, dword [esp + 0x180]
mov edx, dword [eax + 0x144]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x16c]
add esi, dword [ebx]
add esi, ebp
mov ebp, dword [esp + 0x140]
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
mov esi, eax
mov ecx, dword [eax + 0x58]
add ecx, edi
add ecx, 8
mov dword [esp], ecx
call dword [edx + ebp*4 + 0x40]
mov edx, dword [esi + 0x148]
mov esi, dword [esp + 0x180]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x148]
mov ebp, dword [esp + 0x180]
mov eax, dword [ebx + 0x20]
mov ebx, dword [esp + 0x144]
sar esi, 2
sar ebx, 2
add eax, esi
mov ecx, dword [esp + 0xb8]
imul ebp, ebx
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
mov dword [esp], eax
mov eax, dword [esp + 0x13c]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x180]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x16c]
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0xb8]
add eax, esi
lea eax, [eax + ebp + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
add eax, 8
mov dword [esp], eax
mov eax, dword [esp + 0x13c]
call dword [edx + eax*4 + 0x40]
mov eax, dword [esp + 0x180]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x16c]
imul ebx, eax
mov eax, dword [ecx + 0x20]
add eax, esi
add ebx, eax
mov eax, dword [esp + 0x13c]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov ecx, dword [ebx + 0x58]
add ecx, edi
mov dword [esp], ecx
call dword [edx + eax*4 + 0x40]
mov edx, dword [esp + 0x180]
mov eax, dword [ebx + 0x148]
mov ecx, dword [esp + 0x16c]
mov dword [esp + 8], edx
add esi, dword [ecx + 0x20]
add esi, ebp
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
add edi, dword [ebx + 0x58]
add edi, 8
mov dword [esp], edi
mov edi, dword [esp + 0x13c]
call dword [eax + edi*4 + 0x40]
jmp 0x8fdb3d
mov ebx, dword [esp + 0x434]
cmp dword [edi + 0x98], ebx
jg 0x8fa0e1
mov eax, dword [edi + 0x9c]
shl eax, cl
cmp eax, esi
jl 0x8fa0e1
mov edi, dword [esp + 0x420]
mov esi, dword [esp + 0xaf0]
add edi, edi
movzx ebx, word [esi + 0x27b0]
movzx ecx, word [esi + 0x27b2]
add edi, 1
cmp dword [esi + 0x1d40], 1
mov dword [esp + 0x408], edi
je 0x9068e1
mov eax, dword [esp + 0xb8]
mov esi, dword [esp + 0x41c]
mov edi, dword [esp + 0x418]
mov ebp, dword [esp + 0x41c]
add esi, dword [eax + 0x28]
add edi, dword [eax + 0x2c]
test ebp, ebp
je 0x9068bf
mov edx, esi
sub edx, dword [eax + 8]
mov dword [esp + 0x3ec], edx
mov ebp, dword [esp + 0x418]
test ebp, ebp
je 0x9068a1
mov ebx, edi
mov ecx, dword [esp + 0xb8]
sub ebx, dword [ecx + 0xc]
mov dword [esp + 0x3e8], ebx
mov ebx, dword [esp + 0x408]
mov ebp, dword [esp + 0x408]
movzx ecx, byte [esp + 0xc0]
and ebx, edi
mov eax, dword [esp + 0x3ec]
mov edx, dword [esp + 0x3e8]
and eax, dword [esp + 0x408]
shl ebx, cl
and dword [esp + 0x408], edx
and ebp, esi
shl dword [esp + 0x408], cl
add ebp, ebx
mov ebx, dword [esp + 0x420]
add eax, dword [esp + 0x408]
test ebx, ebx
mov dword [esp + 0x3e4], ebp
mov dword [esp + 0x3e0], eax
jne 0x906664
mov ebp, esi
mov esi, dword [esp + 0xaf0]
mov edx, dword [esi + 0x2018]
sar ebp, 1
shl edx, 4
lea esi, [ebp + edx]
cmp esi, 0xfffffff0
jl 0x906648
mov eax, edi
mov edi, dword [esp + 0xaf0]
mov ecx, dword [edi + 0x201c]
sar eax, 1
shl ecx, 4
lea ebx, [eax + ecx]
cmp ebx, 0xfffffff0
jl 0x90662c
mov edi, dword [esp + 0xaf0]
mov edi, dword [edi + 4]
cmp esi, edi
mov dword [esp + 0x3dc], edi
jg 0x906610
mov edi, dword [esp + 0xaf0]
mov esi, dword [edi + 8]
cmp ebx, esi
mov dword [esp + 0x3d8], esi
jg 0x9065f4
mov esi, dword [esp + 0x3ec]
sar esi, 1
lea edi, [esi + edx]
cmp edi, 0xfffffff0
jl 0x9065d8
mov ebx, dword [esp + 0x3e8]
sar ebx, 1
lea edx, [ebx + ecx]
cmp edx, 0xfffffff0
jl 0x9065bc
cmp edi, dword [esp + 0x3dc]
jg 0x9065a0
cmp edx, dword [esp + 0x3d8]
jg 0x906584
mov ecx, dword [esp + 0x428]
mov edi, dword [esp + 0xb8]
mov edx, dword [edi + 0x13c]
mov edi, dword [esp + 0x414]
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], ecx
imul eax, ecx
add ebp, dword [edi]
lea eax, [ebp + eax]
mov ebp, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3e4]
mov ecx, dword [ebp + 0x58]
mov dword [esp], ecx
call dword [edx + eax*4]
mov ecx, dword [esp + 0x428]
mov edx, dword [ebp + 0x140]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0x10
imul ebx, ecx
add esi, dword [edi + 0x20]
mov ecx, dword [esp + 0x3e0]
lea edi, [esi + ebx]
mov dword [esp + 4], edi
mov eax, dword [ebp + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4]
mov ecx, dword [esp + 0x428]
mov dword [esp + 0x10], 0x10
mov eax, dword [esp + 0x410]
mov dword [esp + 0xc], ecx
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0xaf0]
mov edx, dword [eax]
mov dword [esp + 8], edx
mov esi, dword [ebp + 0x58]
mov dword [esp], ebx
mov dword [esp + 4], esi
call dword [esp + 0xa14]
mov dword [esp + 0x40c], eax
jmp 0x8fb998
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0x10c]
sar esi, 2
mov edx, dword [ebp + 0x144]
mov ebp, dword [esp + 0x120]
mov ecx, dword [esp + 0xe0]
mov dword [esp + 8], ebp
mov eax, dword [ebx]
mov ebx, edi
mov edi, dword [esp + 0xb8]
sar ebx, 2
add eax, esi
imul ebp, ebx
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [edi + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0x120]
mov edx, dword [edi + 0x144]
mov dword [esp + 8], eax
mov edi, dword [esp + 0x10c]
mov ecx, dword [edi]
add ecx, esi
lea eax, [ecx + ebp + 8]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe0]
mov edi, dword [ecx + 0x58]
add edi, 8
mov dword [esp], edi
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0x10c]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x120]
mov dword [esp + 8], ecx
imul ebx, ecx
mov eax, dword [edi]
mov edi, ecx
mov ecx, dword [esp + 0xe0]
add eax, esi
shl edi, 3
add ebx, eax
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov eax, dword [ebx + 0x58]
add eax, edi
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0xb8]
mov ebx, dword [esp + 0x120]
mov edx, dword [eax + 0x144]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x10c]
add esi, dword [ebx]
add esi, ebp
mov ebp, dword [esp + 0xe0]
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
mov esi, eax
mov ecx, dword [eax + 0x58]
add ecx, edi
add ecx, 8
mov dword [esp], ecx
call dword [edx + ebp*4 + 0x40]
mov edx, dword [esi + 0x148]
mov esi, dword [esp + 0x120]
mov dword [esp + 8], esi
mov esi, dword [esp + 0xe8]
mov ebp, dword [esp + 0x120]
mov eax, dword [ebx + 0x20]
mov ebx, dword [esp + 0xe4]
sar esi, 2
sar ebx, 2
add eax, esi
mov ecx, dword [esp + 0xb8]
imul ebp, ebx
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x120]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x10c]
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0xb8]
add eax, esi
lea eax, [eax + ebp + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
add eax, 8
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
call dword [edx + eax*4 + 0x40]
mov eax, dword [esp + 0x120]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x10c]
imul ebx, eax
mov eax, dword [ecx + 0x20]
add eax, esi
add ebx, eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov ecx, dword [ebx + 0x58]
add ecx, edi
mov dword [esp], ecx
call dword [edx + eax*4 + 0x40]
mov edx, dword [esp + 0x120]
mov eax, dword [ebx + 0x148]
mov ecx, dword [esp + 0x10c]
mov dword [esp + 8], edx
add esi, dword [ecx + 0x20]
add esi, ebp
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
add edi, dword [ebx + 0x58]
add edi, 8
mov dword [esp], edi
mov edi, dword [esp + 0xdc]
call dword [eax + edi*4 + 0x40]
jmp 0x8fcd9d
mov dword [esp + 8], 0x43a
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31452
call fcn.00a5b730
mov dword [esp + 8], 0x43a
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31444
call fcn.00a5b730
mov dword [esp + 8], 0x43a
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31436
call fcn.00a5b730
mov dword [esp + 8], 0x43a
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31428
call fcn.00a5b730
mov dword [esp + 8], 0x445
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31709
call fcn.00a5b730
mov dword [esp + 8], 0x445
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31723
call fcn.00a5b730
mov dword [esp + 8], 0x445
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31723
call fcn.00a5b730
mov dword [esp + 8], 0x445
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd3173d
call fcn.00a5b730
cmp eax, dword [esp + 0x9fc]
cmovg eax, dword [esp + 0x9fc]
jmp 0x8fbb0f
cmp dword [esp + 0xa04], eax
jmp 0x8fbb02
cmp edx, dword [esp + 0xa00]
cmovg edx, dword [esp + 0xa00]
mov dword [esp + 0x3d0], edx
jmp 0x8fbae7
cmp dword [esp + 0xa08], edx
jmp 0x8fbad3
mov dword [esp + 8], 0x445
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31757
call fcn.00a5b730
mov dword [esp + 8], 0x445
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31757
call fcn.00a5b730
mov dword [esp + 8], 0x445
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31709
call fcn.00a5b730
mov dword [esp + 8], 0x445
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd3173d
call fcn.00a5b730
mov ebx, dword [esp + 0x6f4]
cmp dword [edi + 0x98], ebx
jg 0x8faf87
mov ebp, dword [edi + 0x9c]
shl ebp, cl
cmp ebp, esi
jl 0x8faf87
mov esi, dword [esp + 0x6e0]
mov edi, dword [esp + 0xaf0]
add esi, esi
movzx ebx, word [edi + 0x27b0]
movzx ecx, word [edi + 0x27b2]
add esi, 1
cmp dword [edi + 0x1d40], 1
mov dword [esp + 0x6c8], esi
je 0x904edb
mov eax, dword [esp + 0xb8]
mov esi, dword [esp + 0x6dc]
mov edi, dword [esp + 0x6d8]
mov ebp, dword [esp + 0x6dc]
add esi, dword [eax + 0x28]
add edi, dword [eax + 0x2c]
test ebp, ebp
je 0x904eb9
mov edx, esi
sub edx, dword [eax + 8]
mov dword [esp + 0x6ac], edx
mov ebp, dword [esp + 0x6d8]
test ebp, ebp
je 0x904e9b
mov ebx, edi
mov ecx, dword [esp + 0xb8]
sub ebx, dword [ecx + 0xc]
mov dword [esp + 0x6a8], ebx
mov ebx, dword [esp + 0x6c8]
mov ebp, dword [esp + 0x6c8]
movzx ecx, byte [esp + 0xb4]
and ebx, edi
mov eax, dword [esp + 0x6ac]
mov edx, dword [esp + 0x6a8]
and eax, dword [esp + 0x6c8]
shl ebx, cl
and dword [esp + 0x6c8], edx
and ebp, esi
shl dword [esp + 0x6c8], cl
add ebp, ebx
mov ebx, dword [esp + 0x6e0]
add eax, dword [esp + 0x6c8]
test ebx, ebx
mov dword [esp + 0x6a4], ebp
mov dword [esp + 0x6a0], eax
jne 0x904c5e
mov ebp, esi
mov esi, dword [esp + 0xaf0]
mov edx, dword [esi + 0x2018]
sar ebp, 1
shl edx, 4
lea esi, [ebp + edx]
cmp esi, 0xfffffff0
jl 0x904c42
mov eax, edi
mov edi, dword [esp + 0xaf0]
mov ecx, dword [edi + 0x201c]
sar eax, 1
shl ecx, 4
lea ebx, [eax + ecx]
cmp ebx, 0xfffffff0
jl 0x904c26
mov edi, dword [esp + 0xaf0]
mov edi, dword [edi + 4]
cmp esi, edi
mov dword [esp + 0x69c], edi
jg 0x904c0a
mov edi, dword [esp + 0xaf0]
mov esi, dword [edi + 8]
cmp ebx, esi
mov dword [esp + 0x698], esi
jg 0x904bee
mov esi, dword [esp + 0x6ac]
sar esi, 1
lea edi, [esi + edx]
cmp edi, 0xfffffff0
jl 0x90716c
mov ebx, dword [esp + 0x6a8]
sar ebx, 1
lea edx, [ebx + ecx]
cmp edx, 0xfffffff0
jl 0x907150
cmp edi, dword [esp + 0x69c]
jg 0x907684
cmp edx, dword [esp + 0x698]
jg 0x907134
mov ecx, dword [esp + 0x6e8]
mov edi, dword [esp + 0xb8]
mov edx, dword [edi + 0x13c]
mov edi, dword [esp + 0x6d4]
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], ecx
imul eax, ecx
add ebp, dword [edi]
lea eax, [ebp + eax]
mov ebp, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6a4]
mov ecx, dword [ebp + 0x58]
mov dword [esp], ecx
call dword [edx + eax*4]
mov ecx, dword [esp + 0x6e8]
mov edx, dword [ebp + 0x140]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0x10
imul ebx, ecx
add esi, dword [edi + 0x20]
mov ecx, dword [esp + 0x6a0]
lea edi, [esi + ebx]
mov dword [esp + 4], edi
mov eax, dword [ebp + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4]
mov ecx, dword [esp + 0x6e8]
mov dword [esp + 0x10], 0x10
mov eax, dword [esp + 0x6d0]
mov dword [esp + 0xc], ecx
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0xaf0]
mov edx, dword [eax]
mov dword [esp + 8], edx
mov esi, dword [ebp + 0x58]
mov dword [esp], ebx
mov dword [esp + 4], esi
call dword [esp + 0xa14]
mov dword [esp + 0x6cc], eax
jmp 0x8fc297
cmp eax, dword [esp + 0x9fc]
cmovg eax, dword [esp + 0x9fc]
mov dword [esp + 0x49c], eax
jmp 0x8fb751
cmp dword [esp + 0xa04], eax
jmp 0x8fb73d
cmp edx, dword [esp + 0xa00]
cmovg edx, dword [esp + 0xa00]
mov dword [esp + 0x4a0], edx
jmp 0x8fb722
cmp dword [esp + 0xa08], edx
jmp 0x8fb70e
mov ebp, dword [esp + 0xb14]
mov eax, dword [esp + 0x620]
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], eax
mov ebp, dword [esp + 0x620]
mov eax, dword [edx + 0xe8]
imul ebp, edi
add eax, esi
add eax, ebp
mov ebp, dword [esp + 0xaf0]
mov dword [esp + 8], eax
mov edx, dword [ecx + 0xa8]
mov dword [esp], ebp
mov dword [esp + 4], edx
call dword [esp + 0xa14]
test ebx, ebx
mov dword [esp + 0x604], eax
jne 0x907b55
mov ecx, dword [esp + 0x624]
mov edx, dword [esp + 0x628]
mov eax, dword [esp + 0x9ec]
mov ebp, dword [esp + 0x604]
mov esi, dword [esp + 0xa0c]
mov dword [eax + ecx*4], edx
mov edi, dword [esp + 0xafc]
mov dword [esi + ecx*4], ebp
movzx ecx, byte [esp + 0x9e8]
mov esi, dword [edi + 8]
mov ebx, dword [esp + 0x9f8]
mov eax, dword [esp + 0xafc]
sar esi, cl
mov ebp, dword [esp + 0x9f8]
mov edx, esi
shl edx, cl
sub edx, dword [esp + 0x9f4]
movzx edi, byte [ebx + edx]
mov ebx, dword [eax + 0xc]
sar ebx, cl
mov edx, ebx
shl edx, cl
sub edx, dword [esp + 0x9f0]
movzx eax, byte [ebp + edx]
mov edx, dword [esp + 0xac8]
mov ebp, dword [esp + 0xacc]
lea ecx, [edi + eax]
mov eax, dword [esp + 0xa28]
mov edi, edx
imul ecx, dword [esp + 0xa20]
add ecx, dword [esp + 0x604]
mov dword [esp + 0x38], ecx
cmp ecx, eax
cmovl eax, ecx
cmovl edi, esi
cmovl ebp, ebx
mov dword [esp + 0xa28], eax
mov dword [esp + 0xac8], edi
mov dword [esp + 0xacc], ebp
mov esi, dword [esp + 0xafc]
movzx ecx, byte [esp + 0x9e8]
mov eax, dword [esp + 0xafc]
mov edi, dword [esi + 0x14]
mov esi, dword [eax + 0x10]
sar edi, cl
sar esi, cl
mov ebp, edi
lea ebx, [esi + edi*8]
shl ebp, 0xb
and ebx, 0x3f
add ebp, esi
mov dword [esp + 0x5c4], ebx
add ebp, dword [esp + 0xa24]
cmp esi, dword [esp + 0xa08]
mov dword [esp + 0x5c8], ebp
jl 0x90839c
cmp esi, dword [esp + 0xa00]
jg 0x908380
cmp edi, dword [esp + 0xa04]
jl 0x909963
cmp edi, dword [esp + 0x9fc]
jg 0x909947
mov edx, dword [esp + 0x5c8]
mov ebp, dword [esp + 0x5c4]
mov ebx, dword [esp + 0x9ec]
cmp dword [ebx + ebp*4], edx
je 0x90317f
mov ebp, dword [esp + 0xc4]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0xb8]
and ebp, 1
mov ecx, dword [eax + 0x128]
mov ebx, dword [edx + 0x12c]
mov dword [esp + 0x5b8], ebp
add ebp, 1
mov dword [esp + 0x5c0], ecx
mov dword [esp + 0x84], ebp
mov eax, esi
mov edx, edi
movzx ecx, byte [esp + 0x84]
mov ebp, dword [esp + 0xb04]
mov dword [esp + 0x5bc], ebx
shl eax, cl
shl edx, cl
shl ebp, 4
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x5b0], edx
mov ebx, dword [esp + 0xc4]
lea edx, [ebp + ecx]
mov ebp, dword [esp + 0xb00]
mov dword [esp + 0x5b4], eax
shl ebp, 4
lea eax, [edx + 0xe8]
and ebx, 2
lea ecx, [ebp + ecx]
mov dword [esp + 0x5ac], eax
test byte [esp + 0xc4], 4
lea eax, [ecx + 0xa8]
mov dword [esp + 0x5a8], eax
je 0x903064
mov edx, dword [esp + 0xb8]
cmp dword [edx + 0x90], esi
jg 0x900f27
mov esi, dword [edx + 0x94]
movzx ecx, byte [esp + 0x84]
shl esi, cl
cmp esi, dword [esp + 0x5b4]
jge 0x90430d
mov dword [esp + 8], 0x7d
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd30f5c
call fcn.00a5b730
mov dword [esp + 8], 0x44b
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31452
call fcn.00a5b730
mov dword [esp + 8], 0x44b
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31444
call fcn.00a5b730
mov dword [esp + 8], 0x44b
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31436
call fcn.00a5b730
mov dword [esp + 8], 0x44b
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31428
call fcn.00a5b730
sub ecx, dword [esp + 0x968]
mov edi, dword [esp + 0xb8]
imul ecx, dword [edi + 0xc]
mov eax, ecx
cdq
idiv dword [esp + 0x968]
mov dword [esp + 0x944], eax
jmp 0x8f6bef
mov edx, ecx
mov eax, dword [esp + 0xb8]
sub edx, dword [esp + 0x968]
mov edi, edx
imul edi, dword [eax + 8]
mov eax, edi
cdq
idiv dword [esp + 0x968]
mov dword [esp + 0x948], eax
jmp 0x8f6bcd
mov dword [esp + 8], 0x446
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31452
call fcn.00a5b730
mov dword [esp + 8], 0x446
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31444
call fcn.00a5b730
mov dword [esp + 8], 0x446
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31436
call fcn.00a5b730
mov dword [esp + 8], 0x446
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31428
call fcn.00a5b730
mov dword [esp + 8], 0x447
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31452
call fcn.00a5b730
mov dword [esp + 8], 0x447
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31444
call fcn.00a5b730
mov dword [esp + 8], 0x447
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31436
call fcn.00a5b730
mov dword [esp + 8], 0x447
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31428
call fcn.00a5b730
mov dword [esp + 8], 0x448
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31452
call fcn.00a5b730
mov dword [esp + 8], 0x448
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31444
call fcn.00a5b730
mov dword [esp + 8], 0x448
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31436
call fcn.00a5b730
mov dword [esp + 8], 0x448
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31428
call fcn.00a5b730
mov dword [esp + 8], 0x449
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31452
call fcn.00a5b730
mov dword [esp + 8], 0x449
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31444
call fcn.00a5b730
mov dword [esp + 8], 0x449
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31436
call fcn.00a5b730
mov dword [esp + 8], 0x449
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31428
call fcn.00a5b730
mov dword [esp + 8], 0x44d
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31771
call fcn.00a5b730
mov dword [esp + 8], 0x44c
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd3178b
call fcn.00a5b730
mov dword [esp + 8], 0x44c
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd317a5
call fcn.00a5b730
mov dword [esp + 8], 0x44c
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd317bf
call fcn.00a5b730
mov dword [esp + 8], 0x44c
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd317d9
call fcn.00a5b730
mov dword [esp + 8], 0x44d
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd317f3
call fcn.00a5b730
mov dword [esp + 8], 0x44d
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd3180d
call fcn.00a5b730
mov dword [esp + 8], 0x44d
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31827
call fcn.00a5b730
mov dword [esp + 8], 0x44e
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31841
call fcn.00a5b730
mov dword [esp + 8], 0x44e
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd3185a
call fcn.00a5b730
mov dword [esp + 8], 0x44e
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31873
call fcn.00a5b730
mov dword [esp + 8], 0x44e
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd3188c
call fcn.00a5b730
sub ecx, dword [esp + 0x884]
mov edi, dword [esp + 0xb8]
imul ecx, dword [edi + 0xc]
mov eax, ecx
cdq
idiv dword [esp + 0x884]
mov dword [esp + 0x860], eax
jmp 0x8f9381
mov edx, ecx
mov eax, dword [esp + 0xb8]
sub edx, dword [esp + 0x884]
mov edi, edx
imul edi, dword [eax + 8]
mov eax, edi
cdq
idiv dword [esp + 0x884]
mov dword [esp + 0x864], eax
jmp 0x8f935f
mov esi, dword [esp + 0x97c]
sub ecx, ebx
mov dword [esp + 0x960], 0
add esi, 4
mov dword [esp + 0x95c], ecx
mov dword [esp + 0x958], esi
mov eax, dword [esp + 0x960]
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0x978]
mov esi, dword [esp + 0x974]
mov ebx, dword [esp + 0x978]
add ecx, dword [edx + eax*8 + 0x28]
add esi, dword [edx + eax*8 + 0x2c]
test ebx, ebx
mov dword [esp + 0x38], ecx
je 0x901518
mov ebx, ecx
sub ebx, dword [edx + eax*8 + 8]
mov eax, dword [esp + 0x974]
test eax, eax
je 0x9015f8
mov edi, esi
mov edx, dword [esp + 0x960]
mov ecx, dword [esp + 0xb8]
sub edi, dword [ecx + edx*8 + 0xc]
mov eax, dword [esp + 0x964]
mov ecx, ebp
mov edx, dword [esp + 0x964]
and eax, esi
and edx, dword [esp + 0x38]
shl eax, cl
add edx, eax
mov eax, dword [esp + 0x964]
and eax, edi
mov dword [esp + 0x954], edx
mov edx, dword [esp + 0x964]
shl eax, cl
and edx, ebx
mov ecx, dword [esp + 0x960]
add edx, eax
sar ecx, 1
mov dword [esp + 0x950], edx
mov edx, dword [esp + 0x960]
imul ecx, dword [esp + 0x984]
and edx, 1
add edx, ecx
mov ecx, dword [esp + 0xb8]
mov eax, dword [ecx + 0x58]
lea edx, [eax + edx*8]
mov eax, dword [esp + 0x97c]
test eax, eax
mov dword [esp + 0x94c], edx
je 0x901551
mov eax, dword [esp + 0x984]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x970]
mov dword [esp + 8], eax
sar dword [esp + 0x38], 2
sar esi, 2
mov ecx, dword [ecx]
imul esi, eax
mov eax, dword [esp + 0x94c]
add dword [esp + 0x38], ecx
mov dword [esp], eax
sar ebx, 2
mov ecx, dword [esp + 0x38]
sar edi, 2
add ecx, esi
mov esi, dword [esp + 0x954]
mov dword [esp + 4], ecx
call dword [edx + esi*4 + 0x40]
mov esi, dword [esp + 0x984]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov eax, dword [esp + 0x970]
mov dword [esp + 8], esi
add ebx, dword [eax + 0x20]
imul edi, esi
mov esi, dword [esp + 0x950]
lea ecx, [ebx + edi]
mov ebx, dword [esp + 0x94c]
mov dword [esp + 4], ecx
mov dword [esp], ebx
call dword [edx + esi*4 + 0x40]
add dword [esp + 0x960], 1
cmp dword [esp + 0x960], 3
jle 0x901390
jmp 0x8f6d86
mov ebx, dword [esp + 0x960]
mov edi, dword [esp + 0xb8]
mov eax, dword [esp + 0x95c]
imul eax, dword [edi + ebx*8 + 8]
mov edi, ebx
movzx ecx, byte [esp + 0x958]
cdq
and edi, 1
idiv dword [esp + 0x968]
shl edi, cl
lea ebx, [eax + edi]
jmp 0x9013cd
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x970]
sar dword [esp + 0x38], 1
mov edx, dword [ecx + 0x13c]
mov ecx, dword [esp + 0x984]
mov dword [esp + 0xc], 8
mov dword [esp + 8], ecx
sar esi, 1
sar ebx, 1
mov eax, dword [eax]
imul esi, ecx
mov ecx, dword [esp + 0x94c]
add dword [esp + 0x38], eax
mov dword [esp], ecx
sar edi, 1
mov eax, dword [esp + 0x38]
add eax, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x954]
call dword [edx + eax*4 + 0x10]
mov esi, dword [esp + 0xb8]
mov eax, dword [esp + 0x984]
mov edx, dword [esi + 0x140]
mov ecx, dword [esp + 0x970]
mov dword [esp + 0xc], 8
mov dword [esp + 8], eax
imul edi, eax
add ebx, dword [ecx + 0x20]
lea esi, [ebx + edi]
mov ebx, dword [esp + 0x94c]
mov edi, dword [esp + 0x950]
mov dword [esp + 4], esi
mov dword [esp], ebx
call dword [edx + edi*4 + 0x10]
jmp 0x9014fd
mov ecx, dword [esp + 0x960]
mov edi, dword [esp + 0xb8]
mov eax, dword [esp + 0x95c]
imul eax, dword [edi + ecx*8 + 0xc]
cdq
idiv dword [esp + 0x968]
mov edx, ecx
movzx ecx, byte [esp + 0x958]
sar edx, 1
shl edx, cl
lea edi, [eax + edx]
jmp 0x9013f0
mov dword [esp + 8], 0x43a
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31428
call fcn.00a5b730
mov dword [esp + 8], 0x7d
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd30f5c
call fcn.00a5b730
mov dword [esp + 8], 0x446
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31436
call fcn.00a5b730
mov dword [esp + 8], 0x446
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31428
call fcn.00a5b730
mov ebx, dword [esp + 0x3cc]
cmp dword [edi + 0x98], ebx
jg 0x8fbca0
mov eax, dword [esp + 0x3c0]
mov dword [esp + 0x10], 0x10
mov esi, dword [esp + 0x3a8]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0xb8]
mov ebx, dword [esp + 0xaf0]
mov ebp, dword [esi]
mov dword [esp + 8], ebp
mov edi, dword [edx + 0x58]
mov dword [esp], ebx
mov dword [esp + 4], edi
call dword [esp + 0xa14]
mov dword [esp + 0x3a4], eax
mov ebp, dword [esp + 0x3c4]
mov eax, dword [esp + 0x3c8]
mov edx, dword [esp + 0x9ec]
mov dword [edx + ebp*4], eax
movzx ecx, byte [esp + 0x9e8]
mov ebx, dword [esp + 0x3d0]
mov eax, dword [esp + 0x3cc]
mov edx, dword [esp + 0x3a4]
mov edi, dword [esp + 0xa0c]
shl ebx, cl
shl eax, cl
mov dword [edi + ebp*4], edx
mov esi, dword [esp + 0x9f8]
sub ebx, dword [esp + 0x9f4]
sub eax, dword [esp + 0x9f0]
movzx ebp, byte [esi + ebx]
movzx edi, byte [esi + eax]
mov ebx, dword [esp + 0xac8]
lea ecx, [ebp + edi]
mov esi, dword [esp + 0xa28]
mov edi, ebx
imul ecx, dword [esp + 0xa20]
mov ebp, dword [esp + 0xacc]
mov eax, dword [esp + 0x3d0]
add ecx, edx
mov ebx, dword [esp + 0x3cc]
mov dword [esp + 0x38], ecx
cmp ecx, esi
cmovl esi, ecx
cmovl edi, eax
cmovl ebp, ebx
jmp 0x8f84b4
mov dword [esp + 8], 0x459
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31452
call fcn.00a5b730
mov dword [esp + 8], 0x459
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31428
call fcn.00a5b730
mov dword [esp + 8], 0x459
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31444
call fcn.00a5b730
mov dword [esp + 8], 0x459
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31436
call fcn.00a5b730
mov dword [esp + 8], 0x446
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31452
call fcn.00a5b730
mov dword [esp + 8], 0x446
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31444
call fcn.00a5b730
mov edi, dword [esp + 0x3c0]
mov esi, dword [esp + 0xb14]
mov ebp, dword [esp + 0x3d0]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], edi
mov eax, dword [esp + 0x3cc]
add ebp, dword [edx + 0xe8]
imul eax, edi
add ebp, eax
mov dword [esp + 8], ebp
mov edx, dword [ecx + 0xa8]
mov ecx, dword [esp + 0xaf0]
mov dword [esp + 4], edx
mov dword [esp], ecx
call dword [esp + 0xa14]
test ebx, ebx
mov dword [esp + 0x3a4], eax
je 0x901980
mov eax, dword [esp + 0x3d0]
mov ebp, dword [esp + 0x3cc]
mov edx, dword [esp + 0xb10]
and eax, 1
and ebp, 1
shl edx, 4
lea ebx, [eax + ebp*2]
mov ebp, edi
mov ecx, dword [esp + 0xb8]
lea ebx, [edx + ebx*4]
mov eax, dword [esp + 0xb8]
sar esi, 1
mov edx, ebx
shl ebp, 4
mov dword [esp + 0x370], esi
add ebp, dword [ecx + 0x58]
add edx, dword [eax + 0x13c]
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x3bc]
mov edi, dword [esp + 0x3ac]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x3d0]
mov ecx, dword [edi + 4]
mov edi, dword [esp + 0x3cc]
sar esi, 1
sar edi, 1
add ecx, esi
mov dword [esp], ebp
imul edi, dword [esp + 0x3bc]
add ecx, edi
mov dword [esp + 4], ecx
call dword [edx + 0x10]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x370]
mov ecx, dword [esp + 0x3bc]
add ebx, dword [eax + 0x13c]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov eax, dword [esp + 0x3ac]
add esi, dword [eax + 8]
add esi, edi
mov dword [esp + 4], esi
lea esi, [ebp + 8]
mov dword [esp], esi
call dword [ebx + 0x10]
mov edx, dword [esp + 0x370]
mov ecx, dword [esp + 0x3bc]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ecx
mov ebx, dword [esp + 0x3a8]
mov edi, dword [ebx + 4]
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov edi, dword [esp + 0xaf0]
mov dword [esp], edi
call dword [esp + 0xa10]
mov ebx, dword [esp + 0x3a4]
mov ebp, dword [esp + 0x3bc]
add ebx, eax
mov eax, dword [esp + 0x370]
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x3a8]
mov ecx, dword [edx + 8]
mov dword [esp + 4], esi
mov dword [esp], edi
mov dword [esp + 8], ecx
call dword [esp + 0xa10]
add ebx, eax
mov dword [esp + 0x3a4], ebx
jmp 0x901980
mov edx, dword [esp + 0x68c]
cmp dword [edi + 0x98], edx
jg 0x8fc573
mov eax, dword [edi + 0x9c]
shl eax, cl
cmp eax, esi
jl 0x8fc573
mov edi, dword [esp + 0x678]
mov esi, dword [esp + 0xaf0]
add edi, edi
movzx ebx, word [esi + 0x27b0]
movzx ecx, word [esi + 0x27b2]
add edi, 1
cmp dword [esi + 0x1d40], 1
mov dword [esp + 0x660], edi
je 0x908785
mov eax, dword [esp + 0xb8]
mov esi, dword [esp + 0x674]
mov edi, dword [esp + 0x670]
mov ebp, dword [esp + 0x674]
add esi, dword [eax + 0x28]
add edi, dword [eax + 0x2c]
test ebp, ebp
je 0x908763
mov edx, esi
sub edx, dword [eax + 8]
mov dword [esp + 0x644], edx
mov ebp, dword [esp + 0x670]
test ebp, ebp
je 0x908745
mov ebx, edi
mov ecx, dword [esp + 0xb8]
sub ebx, dword [ecx + 0xc]
mov dword [esp + 0x640], ebx
mov ebx, dword [esp + 0x660]
mov ebp, dword [esp + 0x660]
movzx ecx, byte [esp + 0xa8]
and ebx, edi
mov eax, dword [esp + 0x644]
mov edx, dword [esp + 0x640]
and eax, dword [esp + 0x660]
shl ebx, cl
and dword [esp + 0x660], edx
and ebp, esi
shl dword [esp + 0x660], cl
add ebp, ebx
mov ebx, dword [esp + 0x678]
add eax, dword [esp + 0x660]
test ebx, ebx
mov dword [esp + 0x63c], ebp
mov dword [esp + 0x638], eax
jne 0x908508
mov ebp, esi
mov esi, dword [esp + 0xaf0]
mov edx, dword [esi + 0x2018]
sar ebp, 1
shl edx, 4
lea esi, [ebp + edx]
cmp esi, 0xfffffff0
jl 0x9084ec
mov eax, edi
mov edi, dword [esp + 0xaf0]
mov ecx, dword [edi + 0x201c]
sar eax, 1
shl ecx, 4
lea ebx, [eax + ecx]
cmp ebx, 0xfffffff0
jl 0x9084d0
mov edi, dword [esp + 0xaf0]
mov edi, dword [edi + 4]
cmp esi, edi
mov dword [esp + 0x634], edi
jg 0x9084b4
mov edi, dword [esp + 0xaf0]
mov esi, dword [edi + 8]
cmp ebx, esi
mov dword [esp + 0x630], esi
jg 0x908498
mov esi, dword [esp + 0x644]
sar esi, 1
lea edi, [esi + edx]
cmp edi, 0xfffffff0
jl 0x90847c
mov ebx, dword [esp + 0x640]
sar ebx, 1
lea edx, [ebx + ecx]
cmp edx, 0xfffffff0
jl 0x908460
cmp edi, dword [esp + 0x634]
jg 0x908444
cmp edx, dword [esp + 0x630]
jg 0x908428
mov ecx, dword [esp + 0x680]
mov edi, dword [esp + 0xb8]
mov edx, dword [edi + 0x13c]
mov edi, dword [esp + 0x66c]
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], ecx
imul eax, ecx
add ebp, dword [edi]
lea eax, [ebp + eax]
mov ebp, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x63c]
mov ecx, dword [ebp + 0x58]
mov dword [esp], ecx
call dword [edx + eax*4]
mov ecx, dword [esp + 0x680]
mov edx, dword [ebp + 0x140]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0x10
imul ebx, ecx
add esi, dword [edi + 0x20]
mov ecx, dword [esp + 0x638]
lea edi, [esi + ebx]
mov dword [esp + 4], edi
mov eax, dword [ebp + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4]
mov ecx, dword [esp + 0x680]
mov dword [esp + 0x10], 0x10
mov eax, dword [esp + 0x668]
mov dword [esp + 0xc], ecx
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0xaf0]
mov edx, dword [eax]
mov dword [esp + 8], edx
mov esi, dword [ebp + 0x58]
mov dword [esp], ebx
mov dword [esp + 4], esi
call dword [esp + 0xa14]
mov dword [esp + 0x664], eax
jmp 0x8ff669
mov dword [esp + 8], 0x453
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31436
call fcn.00a5b730
mov dword [esp + 8], 0x453
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31428
call fcn.00a5b730
mov eax, dword [esp + 0x508]
mov ebp, dword [esp + 0x504]
mov edx, dword [esp + 0xb10]
and eax, 1
and ebp, 1
shl edx, 4
lea ebx, [eax + ebp*2]
mov ebp, edi
mov ecx, dword [esp + 0xb8]
lea ebx, [edx + ebx*4]
mov eax, dword [esp + 0xb8]
sar esi, 1
mov edx, ebx
shl ebp, 4
mov dword [esp + 0x4a4], esi
add ebp, dword [ecx + 0x58]
add edx, dword [eax + 0x13c]
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x4f4]
mov edi, dword [esp + 0x4e4]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x508]
mov ecx, dword [edi + 4]
mov edi, dword [esp + 0x504]
sar esi, 1
sar edi, 1
add ecx, esi
mov dword [esp], ebp
imul edi, dword [esp + 0x4f4]
add ecx, edi
mov dword [esp + 4], ecx
call dword [edx + 0x10]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x4a4]
mov ecx, dword [esp + 0x4f4]
add ebx, dword [eax + 0x13c]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov eax, dword [esp + 0x4e4]
add esi, dword [eax + 8]
add esi, edi
mov dword [esp + 4], esi
lea esi, [ebp + 8]
mov dword [esp], esi
call dword [ebx + 0x10]
mov edx, dword [esp + 0x4a4]
mov ecx, dword [esp + 0x4f4]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ecx
mov ebx, dword [esp + 0x4e0]
mov edi, dword [ebx + 4]
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov edi, dword [esp + 0xaf0]
mov dword [esp], edi
call dword [esp + 0xa10]
mov ebx, dword [esp + 0x4dc]
mov ebp, dword [esp + 0x4a4]
add ebx, eax
mov eax, dword [esp + 0x4f4]
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x4e0]
mov ecx, dword [edx + 8]
mov dword [esp + 4], esi
mov dword [esp], edi
mov dword [esp + 8], ecx
call dword [esp + 0xa10]
add ebx, eax
mov dword [esp + 0x4dc], ebx
jmp 0x8fb5e7
mov dword [esp + 8], 0x453
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31452
call fcn.00a5b730
mov dword [esp + 8], 0x453
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31444
call fcn.00a5b730
mov eax, dword [esp + 0x438]
mov ebp, dword [esp + 0x434]
mov edx, dword [esp + 0xb10]
and eax, 1
and ebp, 1
shl edx, 4
lea ebx, [eax + ebp*2]
mov ebp, edi
mov ecx, dword [esp + 0xb8]
lea ebx, [edx + ebx*4]
mov eax, dword [esp + 0xb8]
sar esi, 1
mov edx, ebx
shl ebp, 4
mov dword [esp + 0x3d4], esi
add ebp, dword [ecx + 0x58]
add edx, dword [eax + 0x13c]
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x424]
mov edi, dword [esp + 0x414]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x438]
mov ecx, dword [edi + 4]
mov edi, dword [esp + 0x434]
sar esi, 1
sar edi, 1
add ecx, esi
mov dword [esp], ebp
imul edi, dword [esp + 0x424]
add ecx, edi
mov dword [esp + 4], ecx
call dword [edx + 0x10]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x3d4]
mov ecx, dword [esp + 0x424]
add ebx, dword [eax + 0x13c]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov eax, dword [esp + 0x414]
add esi, dword [eax + 8]
add esi, edi
mov dword [esp + 4], esi
lea esi, [ebp + 8]
mov dword [esp], esi
call dword [ebx + 0x10]
mov edx, dword [esp + 0x3d4]
mov ecx, dword [esp + 0x424]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ecx
mov ebx, dword [esp + 0x410]
mov edi, dword [ebx + 4]
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov edi, dword [esp + 0xaf0]
mov dword [esp], edi
call dword [esp + 0xa10]
mov ebx, dword [esp + 0x40c]
mov ebp, dword [esp + 0x3d4]
add ebx, eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x410]
mov ecx, dword [edx + 8]
mov dword [esp + 4], esi
mov dword [esp], edi
mov dword [esp + 8], ecx
call dword [esp + 0xa10]
add ebx, eax
mov dword [esp + 0x40c], ebx
jmp 0x8fb998
mov ebp, dword [esp + 0x2a8]
mov edi, dword [esp + 0xb14]
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], edi
mov eax, dword [edx + 0xe8]
mov edx, dword [esp + 0xa0]
imul edx, ebp
add eax, esi
mov ebp, dword [esp + 0xaf0]
add eax, edx
mov dword [esp + 8], eax
mov edx, dword [ecx + 0xa8]
mov dword [esp], ebp
mov dword [esp + 4], edx
call dword [esp + 0x2e8]
test ebx, ebx
mov dword [esp + 0x290], eax
je 0x9023a9
mov eax, esi
mov ebp, dword [esp + 0xa0]
mov edx, dword [esp + 0xb10]
and eax, 1
and ebp, 1
shl edx, 4
lea ebx, [eax + ebp*2]
mov ebp, dword [esp + 0x2a8]
mov ecx, dword [esp + 0xb8]
lea ebx, [edx + ebx*4]
shl ebp, 4
mov eax, dword [esp + 0xb8]
add ebp, dword [ecx + 0x58]
sar edi, 1
mov ecx, dword [esp + 0x2a4]
mov edx, ebx
mov dword [esp + 0x258], edi
sar esi, 1
add edx, dword [eax + 0x13c]
mov dword [esp + 0xc], edi
mov dword [esp + 8], ecx
mov edi, dword [esp + 0x298]
mov eax, dword [edi + 4]
mov edi, dword [esp + 0xa0]
mov dword [esp], ebp
sar edi, 1
add eax, esi
imul edi, dword [esp + 0x2a4]
add eax, edi
mov dword [esp + 4], eax
call dword [edx + 0x10]
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0x258]
mov ecx, dword [esp + 0x2a4]
add ebx, dword [edx + 0x13c]
mov edx, dword [esp + 0x298]
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
add esi, dword [edx + 8]
add esi, edi
mov dword [esp + 4], esi
lea esi, [ebp + 8]
mov dword [esp], esi
call dword [ebx + 0x10]
mov ecx, dword [esp + 0x2a4]
mov eax, dword [esp + 0x258]
mov dword [esp + 0xc], ecx
mov ebx, dword [esp + 0x294]
mov dword [esp + 0x10], eax
mov edi, dword [ebx + 4]
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov edi, dword [esp + 0xaf0]
mov dword [esp], edi
call dword [esp + 0x2e4]
mov ebx, dword [esp + 0x290]
mov ebp, dword [esp + 0x258]
mov edx, dword [esp + 0x2a4]
add ebx, eax
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x294]
mov ecx, dword [eax + 8]
mov dword [esp + 4], esi
mov dword [esp], edi
mov dword [esp + 8], ecx
call dword [esp + 0x2e4]
add ebx, eax
mov dword [esp + 0x290], ebx
mov edx, dword [esp + 0x2ac]
mov ebp, dword [esp + 0x290]
mov ecx, dword [esp + 0x2dc]
mov ebx, dword [esp + 0x2b0]
mov edi, dword [esp + 0x2bc]
mov dword [ecx + edx*4], ebp
mov dword [edi + edx*4], ebx
mov esi, dword [esp + 0xacc]
mov dword [esp + 0xa0], esi
jmp 0x8fce8e
mov edi, dword [esp + 0xa0]
cmp dword [esp + 0x2d4], edi
jg 0x8fca1a
mov ebx, dword [esp + 0x2cc]
shl ebx, cl
cmp ebx, dword [esp + 0x29c]
jl 0x8fca1a
mov eax, dword [esp + 0x2b8]
mov ebp, dword [esp + 0xaf0]
add eax, eax
movzx ebx, word [ebp + 0x27b0]
movzx ecx, word [ebp + 0x27b2]
add eax, 1
cmp dword [ebp + 0x1d40], 1
mov dword [esp + 0x28c], eax
je 0x907475
mov eax, dword [esp + 0xb8]
mov esi, dword [esp + 0x2a0]
mov edi, dword [esp + 0x29c]
mov ebp, dword [esp + 0x2a0]
add esi, dword [eax + 0x28]
add edi, dword [eax + 0x2c]
test ebp, ebp
je 0x907453
mov edx, esi
sub edx, dword [eax + 8]
mov dword [esp + 0x270], edx
mov ebp, dword [esp + 0x29c]
test ebp, ebp
je 0x907435
mov ebx, edi
mov ecx, dword [esp + 0xb8]
sub ebx, dword [ecx + 0xc]
mov dword [esp + 0x26c], ebx
mov ebx, dword [esp + 0x28c]
mov ebp, dword [esp + 0x28c]
movzx ecx, byte [esp + 0xa4]
and ebx, edi
mov eax, dword [esp + 0x270]
mov edx, dword [esp + 0x26c]
and eax, dword [esp + 0x28c]
shl ebx, cl
and dword [esp + 0x28c], edx
and ebp, esi
shl dword [esp + 0x28c], cl
add ebp, ebx
mov ebx, dword [esp + 0x2b8]
add eax, dword [esp + 0x28c]
test ebx, ebx
mov dword [esp + 0x268], ebp
mov dword [esp + 0x264], eax
jne 0x9071f8
mov ebp, esi
mov esi, dword [esp + 0xaf0]
mov edx, dword [esi + 0x2018]
sar ebp, 1
shl edx, 4
lea esi, [ebp + edx]
cmp esi, 0xfffffff0
jl 0x9071dc
mov eax, edi
mov edi, dword [esp + 0xaf0]
mov ecx, dword [edi + 0x201c]
sar eax, 1
shl ecx, 4
lea ebx, [eax + ecx]
cmp ebx, 0xfffffff0
jl 0x9071c0
mov edi, dword [esp + 0xaf0]
mov edi, dword [edi + 4]
cmp esi, edi
mov dword [esp + 0x260], edi
jg 0x9071a4
mov edi, dword [esp + 0xaf0]
mov esi, dword [edi + 8]
cmp ebx, esi
mov dword [esp + 0x25c], esi
jg 0x907188
mov esi, dword [esp + 0x270]
sar esi, 1
lea edi, [esi + edx]
cmp edi, 0xfffffff0
jl 0x907668
mov ebx, dword [esp + 0x26c]
sar ebx, 1
lea edx, [ebx + ecx]
cmp edx, 0xfffffff0
jl 0x90764c
cmp edi, dword [esp + 0x260]
jg 0x9077af
cmp edx, dword [esp + 0x25c]
jg 0x907630
mov ecx, dword [esp + 0x2a8]
mov edi, dword [esp + 0xb8]
mov edx, dword [edi + 0x13c]
mov edi, dword [esp + 0x298]
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], ecx
imul eax, ecx
add ebp, dword [edi]
lea eax, [ebp + eax]
mov ebp, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x268]
mov ecx, dword [ebp + 0x58]
mov dword [esp], ecx
call dword [edx + eax*4]
mov ecx, dword [esp + 0x2a8]
mov edx, dword [ebp + 0x140]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0x10
imul ebx, ecx
add esi, dword [edi + 0x20]
mov ecx, dword [esp + 0x264]
lea edi, [esi + ebx]
mov dword [esp + 4], edi
mov eax, dword [ebp + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4]
mov ecx, dword [esp + 0x2a8]
mov dword [esp + 0x10], 0x10
mov eax, dword [esp + 0x294]
mov dword [esp + 0xc], ecx
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0xaf0]
mov edx, dword [eax]
mov dword [esp + 8], edx
mov esi, dword [ebp + 0x58]
mov dword [esp], ebx
mov dword [esp + 4], esi
call dword [esp + 0x2e8]
mov dword [esp + 0x290], eax
jmp 0x9023a9
mov ebx, dword [esp + 0x49c]
cmp dword [edi + 0x98], ebx
jg 0x8fb8d8
mov ebp, dword [edi + 0x9c]
shl ebp, cl
cmp ebp, esi
jl 0x8fb8d8
mov edi, dword [esp + 0x488]
mov esi, dword [esp + 0xaf0]
add edi, edi
movzx ebx, word [esi + 0x27b0]
movzx ecx, word [esi + 0x27b2]
add edi, 1
cmp dword [esi + 0x1d40], 1
mov dword [esp + 0x470], edi
je 0x90a117
mov eax, dword [esp + 0xb8]
mov esi, dword [esp + 0x484]
mov edi, dword [esp + 0x480]
mov ebp, dword [esp + 0x484]
add esi, dword [eax + 0x28]
add edi, dword [eax + 0x2c]
test ebp, ebp
je 0x90a0f5
mov edx, esi
sub edx, dword [eax + 8]
mov dword [esp + 0x454], edx
mov ebp, dword [esp + 0x480]
test ebp, ebp
je 0x90a0d7
mov ebx, edi
mov ecx, dword [esp + 0xb8]
sub ebx, dword [ecx + 0xc]
mov dword [esp + 0x450], ebx
mov ebx, dword [esp + 0x470]
mov ebp, dword [esp + 0x470]
movzx ecx, byte [esp + 0x68]
and ebx, edi
mov eax, dword [esp + 0x454]
mov edx, dword [esp + 0x450]
and eax, dword [esp + 0x470]
shl ebx, cl
and dword [esp + 0x470], edx
and ebp, esi
shl dword [esp + 0x470], cl
add ebp, ebx
mov ebx, dword [esp + 0x488]
add eax, dword [esp + 0x470]
test ebx, ebx
mov dword [esp + 0x44c], ebp
mov dword [esp + 0x448], eax
jne 0x909e9a
mov ebp, esi
mov esi, dword [esp + 0xaf0]
mov edx, dword [esi + 0x2018]
sar ebp, 1
shl edx, 4
lea esi, [ebp + edx]
cmp esi, 0xfffffff0
jl 0x909e7e
mov eax, edi
mov edi, dword [esp + 0xaf0]
mov ecx, dword [edi + 0x201c]
sar eax, 1
shl ecx, 4
lea ebx, [eax + ecx]
cmp ebx, 0xfffffff0
jl 0x909e62
mov edi, dword [esp + 0xaf0]
mov edi, dword [edi + 4]
cmp esi, edi
mov dword [esp + 0x444], edi
jg 0x909e46
mov edi, dword [esp + 0xaf0]
mov esi, dword [edi + 8]
cmp ebx, esi
mov dword [esp + 0x440], esi
jg 0x909e2a
mov esi, dword [esp + 0x454]
sar esi, 1
lea edi, [esi + edx]
cmp edi, 0xfffffff0
jl 0x909e0e
mov ebx, dword [esp + 0x450]
sar ebx, 1
lea edx, [ebx + ecx]
cmp edx, 0xfffffff0
jl 0x909df2
cmp edi, dword [esp + 0x444]
jg 0x909dd6
cmp edx, dword [esp + 0x440]
jg 0x909dba
mov ecx, dword [esp + 0x490]
mov edi, dword [esp + 0xb8]
mov edx, dword [edi + 0x13c]
mov edi, dword [esp + 0x47c]
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], ecx
imul eax, ecx
add ebp, dword [edi]
lea eax, [ebp + eax]
mov ebp, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44c]
mov ecx, dword [ebp + 0x58]
mov dword [esp], ecx
call dword [edx + eax*4]
mov ecx, dword [esp + 0x490]
mov edx, dword [ebp + 0x140]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0x10
imul ebx, ecx
add esi, dword [edi + 0x20]
mov ecx, dword [esp + 0x448]
lea edi, [esi + ebx]
mov dword [esp + 4], edi
mov eax, dword [ebp + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4]
mov ecx, dword [esp + 0x490]
mov dword [esp + 0x10], 0x10
mov eax, dword [esp + 0x478]
mov dword [esp + 0xc], ecx
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0xaf0]
mov edx, dword [eax]
mov dword [esp + 8], edx
mov esi, dword [ebp + 0x58]
mov dword [esp], ebx
mov dword [esp + 4], esi
call dword [esp + 0xa14]
mov dword [esp + 0x474], eax
jmp 0x8f8412
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x8a4]
mov ebp, dword [esp + 0x890]
mov edx, dword [eax + 0x144]
mov dword [esp + 8], ecx
sar esi, 2
mov edi, dword [ebp]
sar ebx, 2
mov ebp, dword [esp + 0x8a4]
imul ebp, ebx
add edi, esi
mov ecx, dword [esp + 0x85c]
add edi, ebp
add ebx, 8
mov dword [esp + 4], edi
mov edi, dword [esp + 0xb8]
mov eax, dword [edi + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0x8a4]
mov edx, dword [edi + 0x144]
mov dword [esp + 8], eax
mov edi, dword [esp + 0x890]
mov ecx, dword [edi]
add ecx, esi
lea eax, [ecx + ebp + 8]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x85c]
mov edi, dword [ecx + 0x58]
add edi, 8
mov dword [esp], edi
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0x890]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x8a4]
mov dword [esp + 8], ecx
imul ebx, ecx
mov eax, dword [edi]
mov edi, ecx
mov ecx, dword [esp + 0x85c]
add eax, esi
shl edi, 3
add ebx, eax
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov eax, dword [ebx + 0x58]
add eax, edi
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0xb8]
mov ebx, dword [esp + 0x8a4]
mov edx, dword [eax + 0x144]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x890]
add esi, dword [ebx]
add esi, ebp
mov ebp, dword [esp + 0x85c]
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
mov esi, eax
mov ecx, dword [eax + 0x58]
add ecx, edi
add ecx, 8
mov dword [esp], ecx
call dword [edx + ebp*4 + 0x40]
mov edx, dword [esi + 0x148]
mov esi, dword [esp + 0x8a4]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x864]
mov ebp, dword [esp + 0x8a4]
mov eax, dword [ebx + 0x20]
mov ebx, dword [esp + 0x860]
sar esi, 2
sar ebx, 2
add eax, esi
mov ecx, dword [esp + 0xb8]
imul ebp, ebx
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
mov dword [esp], eax
mov eax, dword [esp + 0x858]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x8a4]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x890]
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0xb8]
add eax, esi
lea eax, [eax + ebp + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
add eax, 8
mov dword [esp], eax
mov eax, dword [esp + 0x858]
call dword [edx + eax*4 + 0x40]
mov eax, dword [esp + 0x8a4]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x890]
imul ebx, eax
mov eax, dword [ecx + 0x20]
add eax, esi
add ebx, eax
mov eax, dword [esp + 0x858]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov ecx, dword [ebx + 0x58]
add ecx, edi
mov dword [esp], ecx
call dword [edx + eax*4 + 0x40]
mov edx, dword [esp + 0x8a4]
mov eax, dword [ebx + 0x148]
mov ecx, dword [esp + 0x890]
mov dword [esp + 8], edx
add esi, dword [ecx + 0x20]
add esi, ebp
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
add edi, dword [ebx + 0x58]
mov ebx, dword [esp + 0x858]
add edi, 8
mov dword [esp], edi
call dword [eax + ebx*4 + 0x40]
jmp 0x8f9518
sub ecx, ebx
mov ebx, dword [esp + 0x89c]
mov dword [esp + 0x87c], 0
add ebx, 4
mov dword [esp + 0x878], ecx
mov dword [esp + 0x874], ebx
mov eax, dword [esp + 0x87c]
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0x898]
mov esi, dword [esp + 0x894]
mov edi, dword [esp + 0x898]
add ecx, dword [edx + eax*8 + 0x28]
add esi, dword [edx + eax*8 + 0x2c]
test edi, edi
mov dword [esp + 0x38], ecx
je 0x902d09
mov ebx, ecx
sub ebx, dword [edx + eax*8 + 8]
mov eax, dword [esp + 0x894]
test eax, eax
je 0x902de9
mov edi, esi
mov edx, dword [esp + 0x87c]
mov ecx, dword [esp + 0xb8]
sub edi, dword [ecx + edx*8 + 0xc]
mov eax, dword [esp + 0x880]
mov ecx, ebp
mov edx, dword [esp + 0x880]
and eax, esi
and edx, dword [esp + 0x38]
shl eax, cl
add edx, eax
mov eax, dword [esp + 0x880]
and eax, edi
mov dword [esp + 0x870], edx
mov edx, dword [esp + 0x880]
shl eax, cl
and edx, ebx
mov ecx, dword [esp + 0x87c]
add edx, eax
sar ecx, 1
mov dword [esp + 0x86c], edx
mov edx, dword [esp + 0x87c]
imul ecx, dword [esp + 0x8a4]
and edx, 1
add edx, ecx
mov ecx, dword [esp + 0xb8]
mov eax, dword [ecx + 0x58]
lea edx, [eax + edx*8]
mov eax, dword [esp + 0x89c]
test eax, eax
mov dword [esp + 0x868], edx
je 0x902d42
mov eax, dword [esp + 0x8a4]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x890]
mov dword [esp + 8], eax
sar dword [esp + 0x38], 2
sar esi, 2
mov ecx, dword [ecx]
imul esi, eax
mov eax, dword [esp + 0x868]
add dword [esp + 0x38], ecx
mov dword [esp], eax
sar ebx, 2
mov ecx, dword [esp + 0x38]
sar edi, 2
add ecx, esi
mov esi, dword [esp + 0x870]
mov dword [esp + 4], ecx
call dword [edx + esi*4 + 0x40]
mov esi, dword [esp + 0x8a4]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov eax, dword [esp + 0x890]
mov dword [esp + 8], esi
add ebx, dword [eax + 0x20]
imul edi, esi
mov esi, dword [esp + 0x86c]
lea ecx, [ebx + edi]
mov ebx, dword [esp + 0x868]
mov dword [esp + 4], ecx
mov dword [esp], ebx
call dword [edx + esi*4 + 0x40]
add dword [esp + 0x87c], 1
cmp dword [esp + 0x87c], 3
jle 0x902b81
jmp 0x8f9518
mov ebx, dword [esp + 0x87c]
mov eax, dword [esp + 0x878]
mov edi, dword [esp + 0xb8]
imul eax, dword [edi + ebx*8 + 8]
movzx ecx, byte [esp + 0x874]
cdq
idiv dword [esp + 0x884]
mov edx, ebx
and edx, 1
shl edx, cl
lea ebx, [eax + edx]
jmp 0x902bbe
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x890]
sar dword [esp + 0x38], 1
mov edx, dword [ecx + 0x13c]
mov ecx, dword [esp + 0x8a4]
mov dword [esp + 0xc], 8
mov dword [esp + 8], ecx
sar esi, 1
sar ebx, 1
mov eax, dword [eax]
imul esi, ecx
mov ecx, dword [esp + 0x868]
add dword [esp + 0x38], eax
mov dword [esp], ecx
sar edi, 1
mov eax, dword [esp + 0x38]
add eax, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x870]
call dword [edx + eax*4 + 0x10]
mov esi, dword [esp + 0xb8]
mov eax, dword [esp + 0x8a4]
mov edx, dword [esi + 0x140]
mov ecx, dword [esp + 0x890]
mov dword [esp + 0xc], 8
mov dword [esp + 8], eax
imul edi, eax
add ebx, dword [ecx + 0x20]
lea esi, [ebx + edi]
mov ebx, dword [esp + 0x868]
mov edi, dword [esp + 0x86c]
mov dword [esp + 4], esi
mov dword [esp], ebx
call dword [edx + edi*4 + 0x10]
jmp 0x902cee
mov ecx, dword [esp + 0x87c]
mov edi, dword [esp + 0xb8]
mov eax, dword [esp + 0x878]
imul eax, dword [edi + ecx*8 + 0xc]
cdq
idiv dword [esp + 0x884]
mov edx, ecx
movzx ecx, byte [esp + 0x874]
sar edx, 1
shl edx, cl
lea edi, [eax + edx]
jmp 0x902be1
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x984]
mov ebp, dword [esp + 0x970]
mov edx, dword [eax + 0x144]
mov dword [esp + 8], ecx
sar esi, 2
mov edi, dword [ebp]
sar ebx, 2
mov ebp, dword [esp + 0x984]
imul ebp, ebx
add edi, esi
mov ecx, dword [esp + 0x940]
add edi, ebp
add ebx, 8
mov dword [esp + 4], edi
mov edi, dword [esp + 0xb8]
mov eax, dword [edi + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0x984]
mov edx, dword [edi + 0x144]
mov dword [esp + 8], eax
mov edi, dword [esp + 0x970]
mov ecx, dword [edi]
add ecx, esi
lea eax, [ecx + ebp + 8]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x940]
mov edi, dword [ecx + 0x58]
add edi, 8
mov dword [esp], edi
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0x970]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x984]
mov dword [esp + 8], ecx
imul ebx, ecx
mov eax, dword [edi]
mov edi, ecx
mov ecx, dword [esp + 0x940]
add eax, esi
shl edi, 3
add ebx, eax
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov eax, dword [ebx + 0x58]
add eax, edi
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0xb8]
mov ebx, dword [esp + 0x984]
mov edx, dword [eax + 0x144]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x970]
add esi, dword [ebx]
add esi, ebp
mov ebp, dword [esp + 0x940]
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
mov esi, eax
mov ecx, dword [eax + 0x58]
add ecx, edi
add ecx, 8
mov dword [esp], ecx
call dword [edx + ebp*4 + 0x40]
mov edx, dword [esi + 0x148]
mov esi, dword [esp + 0x984]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x948]
mov ebp, dword [esp + 0x984]
mov eax, dword [ebx + 0x20]
mov ebx, dword [esp + 0x944]
sar esi, 2
sar ebx, 2
add eax, esi
mov ecx, dword [esp + 0xb8]
imul ebp, ebx
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
mov dword [esp], eax
mov eax, dword [esp + 0x93c]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x984]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x970]
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0xb8]
add eax, esi
lea eax, [eax + ebp + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
add eax, 8
mov dword [esp], eax
mov eax, dword [esp + 0x93c]
call dword [edx + eax*4 + 0x40]
mov eax, dword [esp + 0x984]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x970]
imul ebx, eax
mov eax, dword [ecx + 0x20]
add eax, esi
add ebx, eax
mov eax, dword [esp + 0x93c]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov ecx, dword [ebx + 0x58]
add ecx, edi
mov dword [esp], ecx
call dword [edx + eax*4 + 0x40]
mov edx, dword [esp + 0x984]
mov eax, dword [ebx + 0x148]
mov ecx, dword [esp + 0x970]
mov dword [esp + 8], edx
add esi, dword [ecx + 0x20]
add esi, ebp
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
add edi, dword [ebx + 0x58]
mov ebx, dword [esp + 0x93c]
add edi, 8
mov dword [esp], edi
call dword [eax + ebx*4 + 0x40]
jmp 0x8f6d86
mov ebp, dword [esp + 0xb14]
mov eax, dword [esp + 0x5c0]
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], eax
mov ebp, dword [esp + 0x5c0]
mov eax, dword [edx + 0xe8]
imul ebp, edi
add eax, esi
add eax, ebp
mov ebp, dword [esp + 0xaf0]
mov dword [esp + 8], eax
mov edx, dword [ecx + 0xa8]
mov dword [esp], ebp
mov dword [esp + 4], edx
call dword [esp + 0xa14]
test ebx, ebx
mov dword [esp + 0x5a4], eax
jne 0x904967
mov ecx, dword [esp + 0x5c4]
mov edx, dword [esp + 0x5c8]
mov eax, dword [esp + 0x9ec]
mov ebp, dword [esp + 0x5a4]
mov esi, dword [esp + 0xa0c]
mov dword [eax + ecx*4], edx
mov edi, dword [esp + 0xafc]
mov dword [esi + ecx*4], ebp
movzx ecx, byte [esp + 0x9e8]
mov esi, dword [edi + 0x10]
mov ebx, dword [esp + 0x9f8]
mov eax, dword [esp + 0xafc]
sar esi, cl
mov ebp, dword [esp + 0x9f8]
mov edx, esi
shl edx, cl
sub edx, dword [esp + 0x9f4]
movzx edi, byte [ebx + edx]
mov ebx, dword [eax + 0x14]
sar ebx, cl
mov edx, ebx
shl edx, cl
sub edx, dword [esp + 0x9f0]
movzx eax, byte [ebp + edx]
mov edx, dword [esp + 0xac8]
mov ebp, dword [esp + 0xacc]
lea ecx, [edi + eax]
mov eax, dword [esp + 0xa28]
mov edi, edx
imul ecx, dword [esp + 0xa20]
add ecx, dword [esp + 0x5a4]
mov dword [esp + 0x38], ecx
cmp ecx, eax
cmovl eax, ecx
cmovl edi, esi
cmovl ebp, ebx
mov dword [esp + 0xa28], eax
mov dword [esp + 0xac8], edi
mov dword [esp + 0xacc], ebp
mov esi, dword [esp + 0xafc]
movzx ecx, byte [esp + 0x9e8]
mov eax, dword [esp + 0xafc]
mov edi, dword [esi + 0x1c]
mov esi, dword [eax + 0x18]
sar edi, cl
sar esi, cl
mov ebp, edi
lea ebx, [esi + edi*8]
shl ebp, 0xb
and ebx, 0x3f
add ebp, esi
mov dword [esp + 0x564], ebx
add ebp, dword [esp + 0xa24]
cmp esi, dword [esp + 0xa08]
mov dword [esp + 0x568], ebp
jl 0x9051de
cmp esi, dword [esp + 0xa00]
jg 0x9051c2
cmp edi, dword [esp + 0xa04]
jl 0x9051a6
cmp edi, dword [esp + 0x9fc]
jg 0x90992b
mov edx, dword [esp + 0x568]
mov ebp, dword [esp + 0x564]
mov ebx, dword [esp + 0x9ec]
cmp dword [ebx + ebp*4], edx
je 0x8f796d
mov ebp, dword [esp + 0xc4]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0xb8]
and ebp, 1
mov ecx, dword [eax + 0x128]
mov ebx, dword [edx + 0x12c]
mov dword [esp + 0x558], ebp
add ebp, 1
mov dword [esp + 0x560], ecx
mov dword [esp + 0x7c], ebp
mov eax, esi
mov edx, edi
movzx ecx, byte [esp + 0x7c]
mov ebp, dword [esp + 0xb04]
mov dword [esp + 0x55c], ebx
shl eax, cl
shl edx, cl
shl ebp, 4
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x550], edx
mov ebx, dword [esp + 0xc4]
lea edx, [ebp + ecx]
mov ebp, dword [esp + 0xb00]
mov dword [esp + 0x554], eax
shl ebp, 4
lea eax, [edx + 0xe8]
and ebx, 2
lea ecx, [ebp + ecx]
mov dword [esp + 0x54c], eax
test byte [esp + 0xc4], 4
lea eax, [ecx + 0xa8]
mov dword [esp + 0x548], eax
je 0x90979c
mov edx, dword [esp + 0xb8]
cmp dword [edx + 0x90], esi
jg 0x9032ed
mov esi, dword [edx + 0x94]
movzx ecx, byte [esp + 0x7c]
shl esi, cl
cmp esi, dword [esp + 0x554]
jge 0x9051fa
mov dword [esp + 8], 0x7d
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd30f5c
call fcn.00a5b730
mov dword [esp + 8], 0x470
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31698
call fcn.00a5b730
mov dword [esp + 8], 0x470
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31671
call fcn.00a5b730
mov dword [esp + 8], 0x470
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd3167e
call fcn.00a5b730
mov dword [esp + 8], 0x470
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd3168b
call fcn.00a5b730
mov eax, dword [esp + 0xb8]
sub ecx, dword [esp + 0x8fc]
imul ecx, dword [eax + 0xc]
mov eax, ecx
cdq
idiv dword [esp + 0x8fc]
mov dword [esp + 0x8d4], eax
jmp 0x8f9ae6
mov eax, dword [esp + 0xb8]
mov edi, dword [esp + 0x91c]
mov ecx, dword [esp + 0x908]
mov edx, dword [eax + 0x144]
mov dword [esp + 8], edi
sar esi, 2
mov eax, dword [ecx]
sar ebx, 2
mov ecx, dword [esp + 0x8d0]
imul edi, ebx
add eax, esi
add ebx, 8
add eax, edi
mov dword [esp + 0x8c8], edi
mov edi, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [edi + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0x91c]
mov edx, dword [edi + 0x144]
mov dword [esp + 8], eax
mov edi, dword [esp + 0x908]
mov ecx, dword [esp + 0x8c8]
mov eax, dword [edi]
add eax, esi
lea edi, [eax + ecx + 8]
mov ecx, dword [esp + 0x8d0]
mov dword [esp + 4], edi
mov edi, dword [esp + 0xb8]
mov eax, dword [edi + 0x58]
add eax, 8
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov ecx, dword [esp + 0x91c]
mov edx, dword [edi + 0x144]
mov dword [esp + 8], ecx
mov edi, dword [esp + 0x908]
imul ebx, ecx
mov eax, dword [edi]
mov edi, ecx
mov ecx, dword [esp + 0x8d0]
add eax, esi
shl edi, 3
add ebx, eax
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov eax, dword [ebx + 0x58]
add eax, edi
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0xb8]
mov ebx, dword [esp + 0x91c]
mov edx, dword [eax + 0x144]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x908]
add esi, dword [ebx]
add esi, dword [esp + 0x8c8]
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
mov esi, eax
mov ecx, dword [eax + 0x58]
mov eax, dword [esp + 0x8d0]
add ecx, edi
add ecx, 8
mov dword [esp], ecx
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x91c]
mov edx, dword [esi + 0x148]
mov dword [esp + 8], ecx
mov esi, dword [esp + 0x8d8]
mov eax, dword [ebx + 0x20]
mov ebx, dword [esp + 0x8d4]
sar esi, 2
sar ebx, 2
add eax, esi
imul ecx, ebx
add ebx, 8
add eax, ecx
mov dword [esp + 0x8c4], ecx
mov ecx, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
mov dword [esp], eax
mov eax, dword [esp + 0x8cc]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x91c]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x908]
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x8c4]
add eax, esi
lea eax, [eax + ecx + 8]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
add eax, 8
mov dword [esp], eax
mov eax, dword [esp + 0x8cc]
call dword [edx + eax*4 + 0x40]
mov eax, dword [esp + 0x91c]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x908]
imul ebx, eax
mov eax, dword [ecx + 0x20]
add eax, esi
add ebx, eax
mov eax, dword [esp + 0x8cc]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov ecx, dword [ebx + 0x58]
add ecx, edi
mov dword [esp], ecx
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0x91c]
mov eax, dword [ebx + 0x148]
mov edx, dword [esp + 0x908]
mov dword [esp + 8], ecx
add esi, dword [edx + 0x20]
add esi, dword [esp + 0x8c4]
lea ecx, [esi + edi + 8]
mov esi, dword [esp + 0x8cc]
mov dword [esp + 4], ecx
add edi, dword [ebx + 0x58]
add edi, 8
mov dword [esp], edi
call dword [eax + esi*4 + 0x40]
jmp 0x8f9ca6
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x828]
sar ebx, 2
mov edx, dword [eax + 0x144]
mov dword [esp + 8], ebp
sar esi, 2
mov eax, dword [ecx]
mov edi, ebx
add ebx, 8
imul edi, ebp
add eax, esi
imul ebx, ebp
add eax, edi
mov dword [esp + 0x7e8], edi
mov edi, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x7f0]
mov ecx, dword [edi + 0x58]
mov dword [esp], ecx
call dword [edx + eax*4 + 0x40]
mov edx, dword [edi + 0x144]
mov ecx, dword [esp + 0x828]
mov dword [esp + 8], ebp
mov edi, dword [esp + 0x7e8]
mov eax, dword [ecx]
mov ecx, dword [esp + 0xb8]
add eax, esi
lea eax, [eax + edi + 8]
mov edi, dword [esp + 0x7f0]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
add eax, 8
mov dword [esp], eax
call dword [edx + edi*4 + 0x40]
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x828]
mov edx, dword [eax + 0x144]
mov dword [esp + 8], ebp
mov edi, dword [ecx]
mov ecx, dword [esp + 0x7f0]
add edi, esi
add ebx, edi
lea edi, [ebp*8]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov eax, dword [ebx + 0x58]
add eax, edi
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov edx, dword [ebx + 0x144]
mov eax, dword [esp + 0x828]
mov dword [esp + 8], ebp
add esi, dword [eax]
mov eax, dword [esp + 0x7f0]
add esi, dword [esp + 0x7e8]
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
mov ecx, dword [ebx + 0x58]
add ecx, edi
add ecx, 8
mov dword [esp], ecx
call dword [edx + eax*4 + 0x40]
mov esi, dword [esp + 0xb8]
mov ebx, dword [esp + 0x828]
mov edx, dword [esi + 0x148]
mov dword [esp + 8], ebp
mov esi, dword [esp + 0x7f8]
mov eax, dword [ebx + 0x20]
mov ebx, dword [esp + 0x7f4]
sar esi, 2
sar ebx, 2
add eax, esi
mov ecx, ebx
add ebx, 8
imul ecx, ebp
imul ebx, ebp
add eax, ecx
mov dword [esp + 0x7e4], ecx
mov ecx, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
mov ecx, dword [esp + 0x7ec]
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x828]
mov edx, dword [eax + 0x148]
mov dword [esp + 8], ebp
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x7e4]
add eax, esi
lea eax, [eax + ecx + 8]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
mov ecx, dword [esp + 0x7ec]
add eax, 8
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x828]
mov edx, dword [eax + 0x148]
mov dword [esp + 8], ebp
mov eax, dword [ecx + 0x20]
add eax, esi
add ebx, eax
mov eax, dword [esp + 0x7ec]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov ecx, dword [ebx + 0x58]
add ecx, edi
mov dword [esp], ecx
call dword [edx + eax*4 + 0x40]
mov eax, dword [ebx + 0x148]
mov edx, dword [esp + 0x828]
mov dword [esp + 8], ebp
add esi, dword [edx + 0x20]
add esi, dword [esp + 0x7e4]
lea ecx, [esi + edi + 8]
mov esi, dword [esp + 0x7ec]
mov dword [esp + 4], ecx
add edi, dword [ebx + 0x58]
add edi, 8
mov dword [esp], edi
call dword [eax + esi*4 + 0x40]
jmp 0x8fa6a4
mov eax, dword [esp + 0xb8]
sub ecx, dword [esp + 0x81c]
imul ecx, dword [eax + 0xc]
mov eax, ecx
cdq
idiv dword [esp + 0x81c]
mov dword [esp + 0x7f4], eax
jmp 0x8fa4f9
mov eax, ecx
mov edx, dword [esp + 0xb8]
sub eax, dword [esp + 0x81c]
imul eax, dword [edx + 8]
cdq
mov dword [esp + 0x34], eax
idiv dword [esp + 0x81c]
mov dword [esp + 0x7f8], eax
jmp 0x8fa4d7
sub ecx, esi
mov esi, dword [esp + 0x834]
mov dword [esp + 0x814], 0
add esi, 4
mov dword [esp + 0x80c], ecx
mov dword [esp + 0x808], esi
mov ebx, dword [esp + 0x814]
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0x830]
add eax, dword [edx + ebx*8 + 0x28]
mov esi, dword [esp + 0x82c]
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0x830]
add esi, dword [edx + ebx*8 + 0x2c]
mov dword [esp + 0x38], eax
test ecx, ecx
je 0x903dc8
sub eax, dword [edx + ebx*8 + 8]
mov dword [esp + 0x810], eax
mov eax, dword [esp + 0x82c]
test eax, eax
je 0x903eab
mov ebx, esi
mov edx, dword [esp + 0x814]
mov ecx, dword [esp + 0xb8]
sub ebx, dword [ecx + edx*8 + 0xc]
mov eax, dword [esp + 0x818]
mov ecx, edi
mov edx, dword [esp + 0x818]
and eax, esi
and edx, dword [esp + 0x38]
shl eax, cl
add edx, eax
mov eax, dword [esp + 0x818]
and eax, ebx
mov dword [esp + 0x804], edx
mov edx, dword [esp + 0x810]
shl eax, cl
and edx, dword [esp + 0x818]
mov ecx, dword [esp + 0x814]
add edx, eax
sar ecx, 1
mov dword [esp + 0x800], edx
mov edx, dword [esp + 0x814]
imul ecx, ebp
and edx, 1
add edx, ecx
mov ecx, dword [esp + 0xb8]
mov eax, dword [ecx + 0x58]
lea edx, [eax + edx*8]
mov eax, dword [esp + 0x834]
test eax, eax
mov dword [esp + 0x7fc], edx
je 0x903e00
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x828]
mov dword [esp + 8], ebp
mov eax, dword [ecx]
sar dword [esp + 0x38], 2
sar esi, 2
add dword [esp + 0x38], eax
imul esi, ebp
mov eax, dword [esp + 0x804]
mov ecx, dword [esp + 0x38]
sar ebx, 2
add ecx, esi
mov esi, dword [esp + 0x7fc]
imul ebx, ebp
mov dword [esp + 4], ecx
mov dword [esp], esi
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov esi, dword [esp + 0x828]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], ebp
sar dword [esp + 0x810], 2
mov eax, dword [esi + 0x20]
mov esi, dword [esp + 0x800]
add dword [esp + 0x810], eax
mov ecx, dword [esp + 0x810]
add ecx, ebx
mov ebx, dword [esp + 0x7fc]
mov dword [esp + 4], ecx
mov dword [esp], ebx
call dword [edx + esi*4 + 0x40]
add dword [esp + 0x814], 1
cmp dword [esp + 0x814], 3
jle 0x903c30
jmp 0x8fa6a4
mov ecx, dword [esp + 0x814]
mov ebx, dword [esp + 0xb8]
mov eax, dword [esp + 0x80c]
imul eax, dword [ebx + ecx*8 + 8]
mov ebx, ecx
movzx ecx, byte [esp + 0x808]
cdq
and ebx, 1
idiv dword [esp + 0x81c]
shl ebx, cl
add eax, ebx
jmp 0x903c72
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x828]
sar dword [esp + 0x38], 1
mov edx, dword [ecx + 0x13c]
mov dword [esp + 0xc], 8
mov dword [esp + 8], ebp
mov ecx, dword [eax]
sar esi, 1
sar ebx, 1
add dword [esp + 0x38], ecx
imul esi, ebp
mov ecx, dword [esp + 0x804]
mov eax, dword [esp + 0x38]
imul ebx, ebp
add eax, esi
mov esi, dword [esp + 0x7fc]
mov dword [esp + 4], eax
mov dword [esp], esi
call dword [edx + ecx*4 + 0x10]
mov eax, dword [esp + 0xb8]
mov esi, dword [esp + 0x828]
mov edx, dword [eax + 0x140]
mov dword [esp + 0xc], 8
mov dword [esp + 8], ebp
mov ecx, dword [esi + 0x20]
sar dword [esp + 0x810], 1
mov esi, dword [esp + 0x7fc]
add dword [esp + 0x810], ecx
mov dword [esp], esi
mov eax, dword [esp + 0x810]
add eax, ebx
mov ebx, dword [esp + 0x800]
mov dword [esp + 4], eax
call dword [edx + ebx*4 + 0x10]
jmp 0x903dad
mov ecx, dword [esp + 0x814]
mov ebx, dword [esp + 0xb8]
mov eax, dword [esp + 0x80c]
imul eax, dword [ebx + ecx*8 + 0xc]
cdq
idiv dword [esp + 0x81c]
mov edx, ecx
movzx ecx, byte [esp + 0x808]
sar edx, 1
shl edx, cl
lea ebx, [eax + edx]
jmp 0x903c9c
mov dword [esp + 8], 0xae
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31148
call fcn.00a5b730
sub ecx, dword [esp + 0x7a4]
mov edi, dword [esp + 0xb8]
imul ecx, dword [edi + 0xc]
mov eax, ecx
cdq
idiv dword [esp + 0x7a4]
mov dword [esp + 0x780], eax
jmp 0x8fbef0
mov dword [esp + 8], 0xa8
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3110d
call fcn.00a5b730
mov dword [esp + 8], 0xa7
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31129
call fcn.00a5b730
mov dword [esp + 8], 0xac
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3118d
call fcn.00a5b730
mov dword [esp + 8], 0xab
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd311a9
call fcn.00a5b730
mov dword [esp + 8], 0xaa
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310c8
call fcn.00a5b730
mov dword [esp + 8], 0xa9
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310ec
call fcn.00a5b730
mov dword [esp + 8], 0x456
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31452
call fcn.00a5b730
mov dword [esp + 8], 0x456
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31444
call fcn.00a5b730
mov dword [esp + 8], 0x456
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31436
call fcn.00a5b730
mov dword [esp + 8], 0x456
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31428
call fcn.00a5b730
cmp dword [edx + 0x98], edi
jg 0x8ff88f
mov edi, dword [edx + 0x9c]
shl edi, cl
cmp edi, dword [esp + 0x610]
jl 0x8ff88f
mov edx, dword [esp + 0x618]
mov ebp, dword [esp + 0xaf0]
add edx, edx
movzx ebx, word [ebp + 0x27b0]
movzx ecx, word [ebp + 0x27b2]
add edx, 1
cmp dword [ebp + 0x1d40], 1
mov dword [esp + 0x600], edx
je 0x90958d
mov eax, dword [esp + 0xb8]
mov esi, dword [esp + 0x614]
mov edi, dword [esp + 0x610]
mov ebp, dword [esp + 0x614]
add esi, dword [eax + 0x28]
add edi, dword [eax + 0x2c]
test ebp, ebp
je 0x90956b
mov edx, esi
sub edx, dword [eax + 8]
mov dword [esp + 0x5e4], edx
mov ebp, dword [esp + 0x610]
test ebp, ebp
je 0x90954d
mov ebx, edi
mov ecx, dword [esp + 0xb8]
sub ebx, dword [ecx + 0xc]
mov dword [esp + 0x5e0], ebx
mov ebx, dword [esp + 0x600]
mov ebp, dword [esp + 0x600]
movzx ecx, byte [esp + 0x9c]
and ebx, edi
mov eax, dword [esp + 0x5e4]
mov edx, dword [esp + 0x5e0]
and eax, dword [esp + 0x600]
shl ebx, cl
and dword [esp + 0x600], edx
and ebp, esi
shl dword [esp + 0x600], cl
add ebp, ebx
mov ebx, dword [esp + 0x618]
add eax, dword [esp + 0x600]
test ebx, ebx
mov dword [esp + 0x5dc], ebp
mov dword [esp + 0x5d8], eax
jne 0x909310
mov ebp, esi
mov esi, dword [esp + 0xaf0]
mov edx, dword [esi + 0x2018]
sar ebp, 1
shl edx, 4
lea esi, [ebp + edx]
cmp esi, 0xfffffff0
jl 0x9092f4
mov eax, edi
mov edi, dword [esp + 0xaf0]
mov ecx, dword [edi + 0x201c]
sar eax, 1
shl ecx, 4
lea ebx, [eax + ecx]
cmp ebx, 0xfffffff0
jl 0x9092d8
mov edi, dword [esp + 0xaf0]
mov edi, dword [edi + 4]
cmp esi, edi
mov dword [esp + 0x5d4], edi
jg 0x9092bc
mov edi, dword [esp + 0xaf0]
mov esi, dword [edi + 8]
cmp ebx, esi
mov dword [esp + 0x5d0], esi
jg 0x9092a0
mov esi, dword [esp + 0x5e4]
sar esi, 1
lea edi, [esi + edx]
cmp edi, 0xfffffff0
jl 0x904af2
mov ebx, dword [esp + 0x5e0]
sar ebx, 1
lea edx, [ebx + ecx]
cmp edx, 0xfffffff0
jl 0x904ad6
cmp edi, dword [esp + 0x5d4]
jg 0x904aba
cmp edx, dword [esp + 0x5d0]
jg 0x904a9e
mov ecx, dword [esp + 0x620]
mov edi, dword [esp + 0xb8]
mov edx, dword [edi + 0x13c]
mov edi, dword [esp + 0x60c]
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], ecx
imul eax, ecx
add ebp, dword [edi]
lea eax, [ebp + eax]
mov ebp, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x5dc]
mov ecx, dword [ebp + 0x58]
mov dword [esp], ecx
call dword [edx + eax*4]
mov ecx, dword [esp + 0x620]
mov edx, dword [ebp + 0x140]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0x10
imul ebx, ecx
add esi, dword [edi + 0x20]
mov ecx, dword [esp + 0x5d8]
lea edi, [esi + ebx]
mov dword [esp + 4], edi
mov eax, dword [ebp + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4]
mov ecx, dword [esp + 0x620]
mov dword [esp + 0x10], 0x10
mov eax, dword [esp + 0x608]
mov dword [esp + 0xc], ecx
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0xaf0]
mov edx, dword [eax]
mov dword [esp + 8], edx
mov esi, dword [ebp + 0x58]
mov dword [esp], ebx
mov dword [esp + 4], esi
call dword [esp + 0xa14]
mov dword [esp + 0x604], eax
jmp 0x900cee
mov dword [esp + 8], 0x448
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31436
call fcn.00a5b730
mov dword [esp + 8], 0x448
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31428
call fcn.00a5b730
cmp dword [edx + 0x98], edi
jg 0x900f27
mov edi, dword [edx + 0x9c]
shl edi, cl
cmp edi, dword [esp + 0x5b0]
jl 0x900f27
mov edx, dword [esp + 0x5b8]
mov ebp, dword [esp + 0xaf0]
add edx, edx
movzx ebx, word [ebp + 0x27b0]
movzx ecx, word [ebp + 0x27b2]
add edx, 1
cmp dword [ebp + 0x1d40], 1
mov dword [esp + 0x5a0], edx
je 0x9081a9
mov eax, dword [esp + 0xb8]
mov esi, dword [esp + 0x5b4]
mov edi, dword [esp + 0x5b0]
mov ebp, dword [esp + 0x5b4]
add esi, dword [eax + 0x28]
add edi, dword [eax + 0x2c]
test ebp, ebp
je 0x908187
mov edx, esi
sub edx, dword [eax + 8]
mov dword [esp + 0x584], edx
mov ebp, dword [esp + 0x5b0]
test ebp, ebp
je 0x908169
mov ebx, edi
mov ecx, dword [esp + 0xb8]
sub ebx, dword [ecx + 0xc]
mov dword [esp + 0x580], ebx
mov ebx, dword [esp + 0x5a0]
mov ebp, dword [esp + 0x5a0]
movzx ecx, byte [esp + 0x84]
and ebx, edi
mov eax, dword [esp + 0x584]
mov edx, dword [esp + 0x580]
and eax, dword [esp + 0x5a0]
shl ebx, cl
and dword [esp + 0x5a0], edx
and ebp, esi
shl dword [esp + 0x5a0], cl
add ebp, ebx
mov ebx, dword [esp + 0x5b8]
add eax, dword [esp + 0x5a0]
test ebx, ebx
mov dword [esp + 0x57c], ebp
mov dword [esp + 0x578], eax
jne 0x907f2c
mov ebp, esi
mov esi, dword [esp + 0xaf0]
mov edx, dword [esi + 0x2018]
sar ebp, 1
shl edx, 4
lea esi, [ebp + edx]
cmp esi, 0xfffffff0
jl 0x907f10
mov eax, edi
mov edi, dword [esp + 0xaf0]
mov ecx, dword [edi + 0x201c]
sar eax, 1
shl ecx, 4
lea ebx, [eax + ecx]
cmp ebx, 0xfffffff0
jl 0x907ef4
mov edi, dword [esp + 0xaf0]
mov edi, dword [edi + 4]
cmp esi, edi
mov dword [esp + 0x574], edi
jg 0x907ed8
mov edi, dword [esp + 0xaf0]
mov esi, dword [edi + 8]
cmp ebx, esi
mov dword [esp + 0x570], esi
jg 0x907ebc
mov esi, dword [esp + 0x584]
sar esi, 1
lea edi, [esi + edx]
cmp edi, 0xfffffff0
jl 0x907ea0
mov ebx, dword [esp + 0x580]
sar ebx, 1
lea edx, [ebx + ecx]
cmp edx, 0xfffffff0
jl 0x907e84
mov ecx, dword [esp + 0x5c0]
mov dword [esp + 0x10], 0x10
mov eax, dword [esp + 0x5a8]
mov dword [esp + 0xc], ecx
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0xaf0]
mov edx, dword [eax]
mov dword [esp + 8], edx
mov esi, dword [ebp + 0x58]
mov dword [esp], ebx
mov dword [esp + 4], esi
call dword [esp + 0xa14]
mov dword [esp + 0x5a4], eax
jmp 0x9030bc
mov dword [esp + 8], 0x447
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31452
call fcn.00a5b730
mov dword [esp + 8], 0x447
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31444
call fcn.00a5b730
mov dword [esp + 8], 0x447
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31436
call fcn.00a5b730
mov dword [esp + 8], 0x447
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31428
call fcn.00a5b730
mov dword [esp + 8], 0xad
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3116c
call fcn.00a5b730
mov dword [esp + 8], 0x448
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31452
call fcn.00a5b730
mov dword [esp + 8], 0x448
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31444
call fcn.00a5b730
mov edx, ecx
mov eax, dword [esp + 0xb8]
sub edx, dword [esp + 0x7a4]
mov edi, edx
imul edi, dword [eax + 8]
mov eax, edi
cdq
idiv dword [esp + 0x7a4]
mov dword [esp + 0x784], eax
jmp 0x8fbece
sub ecx, edi
mov dword [esp + 0x79c], 0
mov dword [esp + 0x798], ecx
mov ecx, dword [esp + 0x7b8]
add ecx, 4
mov dword [esp + 0x794], ecx
jmp 0x904811
mov ebx, edi
mov edi, dword [esp + 0x79c]
sub ebx, dword [eax + edi*8 + 8]
mov eax, dword [esp + 0x7b0]
test eax, eax
je 0x90492f
mov edi, esi
mov edx, dword [esp + 0x79c]
mov ecx, dword [esp + 0xb8]
sub edi, dword [ecx + edx*8 + 0xc]
mov eax, dword [esp + 0x7a0]
mov ecx, ebp
mov edx, dword [esp + 0x7a0]
and eax, esi
and edx, dword [esp + 0x38]
shl eax, cl
add edx, eax
mov eax, dword [esp + 0x7a0]
and eax, edi
mov dword [esp + 0x790], edx
mov edx, dword [esp + 0x7a0]
shl eax, cl
and edx, ebx
mov ecx, dword [esp + 0x79c]
add edx, eax
sar ecx, 1
mov dword [esp + 0x78c], edx
mov edx, dword [esp + 0x79c]
imul ecx, dword [esp + 0x7c0]
and edx, 1
add edx, ecx
mov ecx, dword [esp + 0xb8]
mov eax, dword [ecx + 0x58]
lea edx, [eax + edx*8]
mov eax, dword [esp + 0x7b8]
test eax, eax
mov dword [esp + 0x788], edx
je 0x904888
mov eax, dword [esp + 0x7c0]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x7ac]
mov dword [esp + 8], eax
sar dword [esp + 0x38], 2
sar esi, 2
mov ecx, dword [ecx]
imul esi, eax
mov eax, dword [esp + 0x788]
add dword [esp + 0x38], ecx
mov dword [esp], eax
sar ebx, 2
mov ecx, dword [esp + 0x38]
sar edi, 2
add ecx, esi
mov esi, dword [esp + 0x790]
mov dword [esp + 4], ecx
call dword [edx + esi*4 + 0x40]
mov esi, dword [esp + 0x7c0]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov eax, dword [esp + 0x7ac]
mov dword [esp + 8], esi
add ebx, dword [eax + 0x20]
imul edi, esi
mov esi, dword [esp + 0x78c]
lea ecx, [ebx + edi]
mov ebx, dword [esp + 0x788]
mov dword [esp + 4], ecx
mov dword [esp], ebx
call dword [edx + esi*4 + 0x40]
add dword [esp + 0x79c], 1
cmp dword [esp + 0x79c], 3
jg 0x8fc087
mov ebx, dword [esp + 0x79c]
mov eax, dword [esp + 0xb8]
mov edi, dword [esp + 0x7b4]
add edi, dword [eax + ebx*8 + 0x28]
mov esi, dword [esp + 0x7b0]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x7b4]
add esi, dword [eax + ebx*8 + 0x2c]
mov dword [esp + 0x38], edi
test edx, edx
jne 0x9046bd
mov edi, dword [esp + 0x79c]
mov ebx, dword [esp + 0xb8]
mov eax, dword [esp + 0x798]
imul eax, dword [ebx + edi*8 + 8]
movzx ecx, byte [esp + 0x794]
cdq
idiv dword [esp + 0x7a4]
mov edx, edi
and edx, 1
shl edx, cl
lea ebx, [eax + edx]
jmp 0x9046ca
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x7ac]
sar dword [esp + 0x38], 1
mov edx, dword [ecx + 0x13c]
mov ecx, dword [esp + 0x7c0]
mov dword [esp + 0xc], 8
mov dword [esp + 8], ecx
sar esi, 1
sar ebx, 1
mov eax, dword [eax]
imul esi, ecx
mov ecx, dword [esp + 0x788]
add dword [esp + 0x38], eax
mov dword [esp], ecx
sar edi, 1
mov eax, dword [esp + 0x38]
add eax, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x790]
call dword [edx + eax*4 + 0x10]
mov esi, dword [esp + 0xb8]
mov eax, dword [esp + 0x7c0]
mov edx, dword [esi + 0x140]
mov ecx, dword [esp + 0x7ac]
mov dword [esp + 0xc], 8
mov dword [esp + 8], eax
imul edi, eax
add ebx, dword [ecx + 0x20]
lea esi, [ebx + edi]
mov ebx, dword [esp + 0x788]
mov edi, dword [esp + 0x78c]
mov dword [esp + 4], esi
mov dword [esp], ebx
call dword [edx + edi*4 + 0x10]
jmp 0x9047fa
mov ecx, dword [esp + 0x79c]
mov edi, dword [esp + 0xb8]
mov eax, dword [esp + 0x798]
imul eax, dword [edi + ecx*8 + 0xc]
cdq
idiv dword [esp + 0x7a4]
mov edx, ecx
movzx ecx, byte [esp + 0x794]
sar edx, 1
shl edx, cl
lea edi, [eax + edx]
jmp 0x9046ed
mov eax, esi
mov ebp, edi
mov edx, dword [esp + 0xb10]
and eax, 1
and ebp, 1
shl edx, 4
lea ebx, [eax + ebp*2]
mov ebp, dword [esp + 0x5c0]
mov ecx, dword [esp + 0xb8]
lea ebx, [edx + ebx*4]
shl ebp, 4
mov eax, dword [esp + 0x5bc]
mov edx, ebx
add ebp, dword [ecx + 0x58]
sar esi, 1
add edx, dword [ecx + 0x13c]
mov ecx, dword [esp + 0xb14]
mov dword [esp + 8], eax
sar ecx, 1
sar edi, 1
mov dword [esp + 0xc], ecx
mov dword [esp + 0x56c], ecx
mov ecx, dword [esp + 0x5ac]
mov eax, dword [ecx + 4]
imul edi, dword [esp + 0x5bc]
mov dword [esp], ebp
add eax, esi
add eax, edi
mov dword [esp + 4], eax
call dword [edx + 0x10]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x56c]
mov ecx, dword [esp + 0x5bc]
add ebx, dword [eax + 0x13c]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov eax, dword [esp + 0x5ac]
add esi, dword [eax + 8]
add esi, edi
mov dword [esp + 4], esi
lea esi, [ebp + 8]
mov dword [esp], esi
call dword [ebx + 0x10]
mov edx, dword [esp + 0x56c]
mov ecx, dword [esp + 0x5bc]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ecx
mov ebx, dword [esp + 0x5a8]
mov edi, dword [ebx + 4]
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov edi, dword [esp + 0xaf0]
mov dword [esp], edi
call dword [esp + 0xa10]
mov ebx, dword [esp + 0x5a4]
mov ebp, dword [esp + 0x56c]
add ebx, eax
mov eax, dword [esp + 0x5bc]
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x5a8]
mov ecx, dword [edx + 8]
mov dword [esp + 4], esi
mov dword [esp], edi
mov dword [esp + 8], ecx
call dword [esp + 0xa10]
add ebx, eax
mov dword [esp + 0x5a4], ebx
jmp 0x9030bc
mov dword [esp + 8], 0xae
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31148
call fcn.00a5b730
mov dword [esp + 8], 0xad
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3116c
call fcn.00a5b730
mov dword [esp + 8], 0xac
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3118d
call fcn.00a5b730
mov dword [esp + 8], 0xab
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd311a9
call fcn.00a5b730
mov dword [esp + 8], 0xaa
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310c8
call fcn.00a5b730
mov dword [esp + 8], 0xa9
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310ec
call fcn.00a5b730
mov dword [esp + 8], 0xa8
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3110d
call fcn.00a5b730
mov dword [esp + 8], 0xa7
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31129
call fcn.00a5b730
mov dword [esp + 8], 0x45c
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31452
call fcn.00a5b730
mov dword [esp + 8], 0x45c
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31444
call fcn.00a5b730
mov dword [esp + 8], 0x45c
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31436
call fcn.00a5b730
mov dword [esp + 8], 0x45c
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31428
call fcn.00a5b730
mov dword [esp + 8], 0xaa
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310c8
call fcn.00a5b730
mov dword [esp + 8], 0xa9
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310ec
call fcn.00a5b730
mov dword [esp + 8], 0xa8
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3110d
call fcn.00a5b730
mov dword [esp + 8], 0xa7
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31129
call fcn.00a5b730
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0x6d4]
sar esi, 2
mov edx, dword [ebp + 0x144]
mov ebp, dword [esp + 0x6e8]
mov ecx, dword [esp + 0x6a4]
mov dword [esp + 8], ebp
mov eax, dword [ebx]
mov ebx, edi
mov edi, dword [esp + 0xb8]
sar ebx, 2
add eax, esi
imul ebp, ebx
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [edi + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0x6e8]
mov edx, dword [edi + 0x144]
mov dword [esp + 8], eax
mov edi, dword [esp + 0x6d4]
mov ecx, dword [edi]
add ecx, esi
lea eax, [ecx + ebp + 8]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6a4]
mov edi, dword [ecx + 0x58]
add edi, 8
mov dword [esp], edi
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0x6d4]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x6e8]
mov dword [esp + 8], ecx
imul ebx, ecx
mov eax, dword [edi]
mov edi, ecx
mov ecx, dword [esp + 0x6a4]
add eax, esi
shl edi, 3
add ebx, eax
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov eax, dword [ebx + 0x58]
add eax, edi
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0xb8]
mov ebx, dword [esp + 0x6e8]
mov edx, dword [eax + 0x144]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x6d4]
add esi, dword [ebx]
add esi, ebp
mov ebp, dword [esp + 0x6a4]
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
mov esi, eax
mov ecx, dword [eax + 0x58]
add ecx, edi
add ecx, 8
mov dword [esp], ecx
call dword [edx + ebp*4 + 0x40]
mov edx, dword [esi + 0x148]
mov esi, dword [esp + 0x6e8]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x6ac]
mov ebp, dword [esp + 0x6e8]
mov eax, dword [ebx + 0x20]
mov ebx, dword [esp + 0x6a8]
sar esi, 2
sar ebx, 2
add eax, esi
mov ecx, dword [esp + 0xb8]
imul ebp, ebx
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
mov dword [esp], eax
mov eax, dword [esp + 0x6a0]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x6e8]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x6d4]
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0xb8]
add eax, esi
lea eax, [eax + ebp + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
add eax, 8
mov dword [esp], eax
mov eax, dword [esp + 0x6a0]
call dword [edx + eax*4 + 0x40]
mov eax, dword [esp + 0x6e8]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x6d4]
imul ebx, eax
mov eax, dword [ecx + 0x20]
add eax, esi
add ebx, eax
mov eax, dword [esp + 0x6a0]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov ecx, dword [ebx + 0x58]
add ecx, edi
mov dword [esp], ecx
call dword [edx + eax*4 + 0x40]
mov edx, dword [esp + 0x6e8]
mov eax, dword [ebx + 0x148]
mov ecx, dword [esp + 0x6d4]
mov dword [esp + 8], edx
add esi, dword [ecx + 0x20]
add esi, ebp
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
add edi, dword [ebx + 0x58]
add edi, 8
mov dword [esp], edi
mov edi, dword [esp + 0x6a0]
call dword [eax + edi*4 + 0x40]
jmp 0x900bfd
sub ecx, ebx
mov ebp, dword [esp + 0xb8]
imul ecx, dword [ebp + 0xc]
mov eax, ecx
cdq
idiv ebx
mov dword [esp + 0x6a8], eax
jmp 0x900a60
mov edx, ecx
mov eax, dword [esp + 0xb8]
sub edx, ebx
mov ebp, edx
imul ebp, dword [eax + 8]
mov eax, ebp
cdq
idiv ebx
mov dword [esp + 0x6ac], eax
jmp 0x900a3e
mov eax, dword [esp + 0x6e0]
sub ecx, ebx
mov dword [esp + 0x6c4], 0
add eax, 4
mov dword [esp + 0x6c0], ecx
mov dword [esp + 0x6bc], eax
jmp 0x905060
mov ebp, edx
mov edx, dword [esp + 0x6c4]
sub ebp, dword [eax + edx*8 + 8]
mov eax, dword [esp + 0x6d8]
test eax, eax
je 0x905173
mov edi, esi
mov edx, dword [esp + 0x6c4]
mov ecx, dword [esp + 0xb8]
sub edi, dword [ecx + edx*8 + 0xc]
mov eax, dword [esp + 0x6c8]
movzx ecx, byte [esp + 0xb4]
mov edx, dword [esp + 0x6c8]
and eax, esi
and edx, dword [esp + 0x38]
shl eax, cl
add edx, eax
mov eax, dword [esp + 0x6c8]
and eax, edi
mov dword [esp + 0x6b8], edx
mov edx, dword [esp + 0x6c8]
shl eax, cl
and edx, ebp
mov ecx, dword [esp + 0x6c4]
add edx, eax
sar ecx, 1
mov dword [esp + 0x6b4], edx
mov edx, dword [esp + 0x6c4]
imul ecx, dword [esp + 0x6e8]
and edx, 1
add edx, ecx
mov ecx, dword [esp + 0xb8]
mov eax, dword [ecx + 0x58]
lea edx, [eax + edx*8]
mov eax, dword [esp + 0x6e0]
test eax, eax
mov dword [esp + 0x6b0], edx
je 0x9050cb
mov eax, dword [esp + 0x6e8]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x6d4]
mov dword [esp + 8], eax
sar dword [esp + 0x38], 2
sar esi, 2
mov ecx, dword [ecx]
imul esi, eax
mov eax, dword [esp + 0x6b0]
add dword [esp + 0x38], ecx
mov dword [esp], eax
sar ebp, 2
mov ecx, dword [esp + 0x38]
sar edi, 2
add ecx, esi
mov esi, dword [esp + 0x6b8]
mov dword [esp + 4], ecx
call dword [edx + esi*4 + 0x40]
mov esi, dword [esp + 0x6e8]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov eax, dword [esp + 0x6d4]
mov dword [esp + 8], esi
add ebp, dword [eax + 0x20]
imul edi, esi
mov esi, dword [esp + 0x6b4]
lea ecx, [ebp + edi]
mov ebp, dword [esp + 0x6b0]
mov dword [esp + 4], ecx
mov dword [esp], ebp
call dword [edx + esi*4 + 0x40]
add dword [esp + 0x6c4], 1
cmp dword [esp + 0x6c4], 3
jg 0x900bfd
mov ebp, dword [esp + 0x6c4]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x6dc]
mov esi, dword [esp + 0x6d8]
mov ecx, dword [esp + 0x6dc]
add edx, dword [eax + ebp*8 + 0x28]
add esi, dword [eax + ebp*8 + 0x2c]
test ecx, ecx
mov dword [esp + 0x38], edx
jne 0x904f05
mov edi, dword [esp + 0x6c4]
mov ebp, dword [esp + 0xb8]
mov eax, dword [esp + 0x6c0]
imul eax, dword [ebp + edi*8 + 8]
movzx ecx, byte [esp + 0x6bc]
cdq
idiv ebx
mov edx, edi
and edx, 1
shl edx, cl
lea ebp, [eax + edx]
jmp 0x904f12
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x6d4]
sar dword [esp + 0x38], 1
mov edx, dword [ecx + 0x13c]
mov ecx, dword [esp + 0x6e8]
mov dword [esp + 0xc], 8
mov dword [esp + 8], ecx
sar esi, 1
sar ebp, 1
mov eax, dword [eax]
imul esi, ecx
mov ecx, dword [esp + 0x6b0]
add dword [esp + 0x38], eax
mov dword [esp], ecx
sar edi, 1
mov eax, dword [esp + 0x38]
add eax, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6b8]
call dword [edx + eax*4 + 0x10]
mov esi, dword [esp + 0xb8]
mov eax, dword [esp + 0x6e8]
mov edx, dword [esi + 0x140]
mov ecx, dword [esp + 0x6d4]
mov dword [esp + 0xc], 8
mov dword [esp + 8], eax
imul edi, eax
add ebp, dword [ecx + 0x20]
lea esi, [ebp + edi]
mov ebp, dword [esp + 0x6b0]
mov edi, dword [esp + 0x6b4]
mov dword [esp + 4], esi
mov dword [esp], ebp
call dword [edx + edi*4 + 0x10]
jmp 0x905049
mov ecx, dword [esp + 0x6c4]
mov edi, dword [esp + 0xb8]
mov eax, dword [esp + 0x6c0]
imul eax, dword [edi + ecx*8 + 0xc]
cdq
idiv ebx
mov edx, ecx
movzx ecx, byte [esp + 0x6bc]
sar edx, 1
shl edx, cl
lea edi, [eax + edx]
jmp 0x904f35
mov dword [esp + 8], 0x44e
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd3185a
call fcn.00a5b730
mov dword [esp + 8], 0x44e
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31873
call fcn.00a5b730
mov dword [esp + 8], 0x44e
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd3188c
call fcn.00a5b730
cmp dword [edx + 0x98], edi
jg 0x9032ed
mov edi, dword [edx + 0x9c]
shl edi, cl
cmp edi, dword [esp + 0x550]
jl 0x9032ed
mov edx, dword [esp + 0x558]
mov ebp, dword [esp + 0xaf0]
add edx, edx
movzx ebx, word [ebp + 0x27b0]
movzx ecx, word [ebp + 0x27b2]
add edx, 1
cmp dword [ebp + 0x1d40], 1
mov dword [esp + 0x540], edx
je 0x905918
mov eax, dword [esp + 0xb8]
mov esi, dword [esp + 0x554]
mov edi, dword [esp + 0x550]
mov ebp, dword [esp + 0x554]
add esi, dword [eax + 0x28]
add edi, dword [eax + 0x2c]
test ebp, ebp
je 0x9058f6
mov edx, esi
sub edx, dword [eax + 8]
mov dword [esp + 0x524], edx
mov ebp, dword [esp + 0x550]
test ebp, ebp
je 0x9058d8
mov ebx, edi
mov ecx, dword [esp + 0xb8]
sub ebx, dword [ecx + 0xc]
mov dword [esp + 0x520], ebx
mov ebx, dword [esp + 0x540]
mov ebp, dword [esp + 0x540]
movzx ecx, byte [esp + 0x7c]
and ebx, edi
mov eax, dword [esp + 0x524]
mov edx, dword [esp + 0x520]
and eax, dword [esp + 0x540]
shl ebx, cl
and dword [esp + 0x540], edx
and ebp, esi
shl dword [esp + 0x540], cl
add ebp, ebx
mov ebx, dword [esp + 0x558]
add eax, dword [esp + 0x540]
test ebx, ebx
mov dword [esp + 0x51c], ebp
mov dword [esp + 0x518], eax
jne 0x90569b
mov ebp, esi
mov esi, dword [esp + 0xaf0]
mov edx, dword [esi + 0x2018]
sar ebp, 1
shl edx, 4
lea esi, [ebp + edx]
cmp esi, 0xfffffff0
jl 0x90567f
mov eax, edi
mov edi, dword [esp + 0xaf0]
mov ecx, dword [edi + 0x201c]
sar eax, 1
shl ecx, 4
lea ebx, [eax + ecx]
cmp ebx, 0xfffffff0
jl 0x905663
mov edi, dword [esp + 0xaf0]
mov edi, dword [edi + 4]
cmp esi, edi
mov dword [esp + 0x514], edi
jg 0x905647
mov edi, dword [esp + 0xaf0]
mov esi, dword [edi + 8]
cmp ebx, esi
mov dword [esp + 0x510], esi
jg 0x90562b
mov esi, dword [esp + 0x524]
sar esi, 1
lea edi, [esi + edx]
cmp edi, 0xfffffff0
jl 0x90560f
mov ebx, dword [esp + 0x520]
sar ebx, 1
lea edx, [ebx + ecx]
cmp edx, 0xfffffff0
jl 0x9055f3
cmp edi, dword [esp + 0x514]
jg 0x9055d7
cmp edx, dword [esp + 0x510]
jg 0x9055bb
mov ecx, dword [esp + 0x560]
mov edi, dword [esp + 0xb8]
mov edx, dword [edi + 0x13c]
mov edi, dword [esp + 0x54c]
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], ecx
imul eax, ecx
add ebp, dword [edi]
lea eax, [ebp + eax]
mov ebp, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x51c]
mov ecx, dword [ebp + 0x58]
mov dword [esp], ecx
call dword [edx + eax*4]
mov ecx, dword [esp + 0x560]
mov edx, dword [ebp + 0x140]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0x10
imul ebx, ecx
add esi, dword [edi + 0x20]
mov ecx, dword [esp + 0x518]
lea edi, [esi + ebx]
mov dword [esp + 4], edi
mov eax, dword [ebp + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4]
mov ecx, dword [esp + 0x560]
mov dword [esp + 0x10], 0x10
mov eax, dword [esp + 0x548]
mov dword [esp + 0xc], ecx
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0xaf0]
mov edx, dword [eax]
mov dword [esp + 8], edx
mov esi, dword [ebp + 0x58]
mov dword [esp], ebx
mov dword [esp + 4], esi
call dword [esp + 0xa14]
mov dword [esp + 0x544], eax
mov ecx, dword [esp + 0x564]
mov edx, dword [esp + 0x568]
mov eax, dword [esp + 0x9ec]
mov ebp, dword [esp + 0x544]
mov esi, dword [esp + 0xa0c]
mov dword [eax + ecx*4], edx
mov edi, dword [esp + 0xafc]
mov dword [esi + ecx*4], ebp
movzx ecx, byte [esp + 0x9e8]
mov esi, dword [edi + 0x18]
mov ebx, dword [esp + 0x9f8]
mov eax, dword [esp + 0xafc]
sar esi, cl
mov ebp, dword [esp + 0x9f8]
mov edx, esi
shl edx, cl
sub edx, dword [esp + 0x9f4]
movzx edi, byte [ebx + edx]
mov ebx, dword [eax + 0x1c]
sar ebx, cl
mov edx, ebx
shl edx, cl
sub edx, dword [esp + 0x9f0]
movzx eax, byte [ebp + edx]
mov edx, dword [esp + 0xac8]
mov ebp, dword [esp + 0xacc]
lea ecx, [edi + eax]
mov eax, dword [esp + 0xa28]
mov edi, edx
imul ecx, dword [esp + 0xa20]
add ecx, dword [esp + 0x544]
mov dword [esp + 0x38], ecx
cmp ecx, eax
cmovl eax, ecx
cmovl edi, esi
cmovl ebp, ebx
mov edx, ebp
mov dword [esp + 0xa28], eax
mov dword [esp + 0xac8], edi
jmp 0x8f7966
mov dword [esp + 8], 0xae
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31148
call fcn.00a5b730
mov dword [esp + 8], 0xad
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3116c
call fcn.00a5b730
mov dword [esp + 8], 0xac
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3118d
call fcn.00a5b730
mov dword [esp + 8], 0xab
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd311a9
call fcn.00a5b730
mov dword [esp + 8], 0xae
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31148
call fcn.00a5b730
mov dword [esp + 8], 0xad
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3116c
call fcn.00a5b730
mov dword [esp + 8], 0xac
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3118d
call fcn.00a5b730
mov dword [esp + 8], 0xab
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd311a9
call fcn.00a5b730
mov dword [esp + 8], 0xaa
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310c8
call fcn.00a5b730
mov dword [esp + 8], 0xa9
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310ec
call fcn.00a5b730
mov dword [esp + 8], 0xa8
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3110d
call fcn.00a5b730
mov dword [esp + 8], 0xa7
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31129
call fcn.00a5b730
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0x54c]
sar esi, 2
mov edx, dword [ebp + 0x144]
mov ebp, dword [esp + 0x560]
mov ecx, dword [esp + 0x51c]
mov dword [esp + 8], ebp
mov eax, dword [ebx]
mov ebx, edi
mov edi, dword [esp + 0xb8]
sar ebx, 2
add eax, esi
imul ebp, ebx
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [edi + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0x560]
mov edx, dword [edi + 0x144]
mov dword [esp + 8], eax
mov edi, dword [esp + 0x54c]
mov ecx, dword [edi]
add ecx, esi
lea eax, [ecx + ebp + 8]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x51c]
mov edi, dword [ecx + 0x58]
add edi, 8
mov dword [esp], edi
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0x54c]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x560]
mov dword [esp + 8], ecx
imul ebx, ecx
mov eax, dword [edi]
mov edi, ecx
mov ecx, dword [esp + 0x51c]
add eax, esi
shl edi, 3
add ebx, eax
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov eax, dword [ebx + 0x58]
add eax, edi
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0xb8]
mov ebx, dword [esp + 0x560]
mov edx, dword [eax + 0x144]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x54c]
add esi, dword [ebx]
add esi, ebp
mov ebp, dword [esp + 0x51c]
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
mov esi, eax
mov ecx, dword [eax + 0x58]
add ecx, edi
add ecx, 8
mov dword [esp], ecx
call dword [edx + ebp*4 + 0x40]
mov edx, dword [esi + 0x148]
mov esi, dword [esp + 0x560]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x524]
mov ebp, dword [esp + 0x560]
mov eax, dword [ebx + 0x20]
mov ebx, dword [esp + 0x520]
sar esi, 2
sar ebx, 2
add eax, esi
mov ecx, dword [esp + 0xb8]
imul ebp, ebx
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
mov dword [esp], eax
mov eax, dword [esp + 0x518]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x560]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x54c]
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0xb8]
add eax, esi
lea eax, [eax + ebp + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
add eax, 8
mov dword [esp], eax
mov eax, dword [esp + 0x518]
call dword [edx + eax*4 + 0x40]
mov eax, dword [esp + 0x560]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x54c]
imul ebx, eax
mov eax, dword [ecx + 0x20]
add eax, esi
add ebx, eax
mov eax, dword [esp + 0x518]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov ecx, dword [ebx + 0x58]
add ecx, edi
mov dword [esp], ecx
call dword [edx + eax*4 + 0x40]
mov edx, dword [esp + 0x560]
mov eax, dword [ebx + 0x148]
mov ecx, dword [esp + 0x54c]
mov dword [esp + 8], edx
add esi, dword [ecx + 0x20]
add esi, ebp
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
add edi, dword [ebx + 0x58]
add edi, 8
mov dword [esp], edi
mov edi, dword [esp + 0x518]
call dword [eax + edi*4 + 0x40]
jmp 0x905442
sub ecx, ebx
mov ebp, dword [esp + 0xb8]
imul ecx, dword [ebp + 0xc]
mov eax, ecx
cdq
idiv ebx
mov dword [esp + 0x520], eax
jmp 0x9052a8
mov edx, ecx
mov eax, dword [esp + 0xb8]
sub edx, ebx
mov ebp, edx
imul ebp, dword [eax + 8]
mov eax, ebp
cdq
idiv ebx
mov dword [esp + 0x524], eax
jmp 0x905286
sub ecx, ebx
mov dword [esp + 0x53c], 0
mov dword [esp + 0x538], ecx
mov ecx, dword [esp + 0x558]
add ecx, 4
mov dword [esp + 0x534], ecx
mov ebp, dword [esp + 0x53c]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x554]
mov esi, dword [esp + 0x550]
mov edi, dword [esp + 0x554]
add edx, dword [eax + ebp*8 + 0x28]
add esi, dword [eax + ebp*8 + 0x2c]
test edi, edi
mov dword [esp + 0x38], edx
je 0x905c8b
mov ebp, edx
mov edx, dword [esp + 0x53c]
sub ebp, dword [eax + edx*8 + 8]
mov eax, dword [esp + 0x550]
test eax, eax
je 0x905c58
mov edi, esi
mov edx, dword [esp + 0x53c]
mov ecx, dword [esp + 0xb8]
sub edi, dword [ecx + edx*8 + 0xc]
mov eax, dword [esp + 0x540]
movzx ecx, byte [esp + 0x7c]
mov edx, dword [esp + 0x540]
and eax, esi
and edx, dword [esp + 0x38]
shl eax, cl
add edx, eax
mov eax, dword [esp + 0x540]
and eax, edi
mov dword [esp + 0x530], edx
mov edx, dword [esp + 0x540]
shl eax, cl
and edx, ebp
mov ecx, dword [esp + 0x53c]
add edx, eax
sar ecx, 1
mov dword [esp + 0x52c], edx
mov edx, dword [esp + 0x53c]
imul ecx, dword [esp + 0x560]
and edx, 1
add edx, ecx
mov ecx, dword [esp + 0xb8]
mov eax, dword [ecx + 0x58]
lea edx, [eax + edx*8]
mov eax, dword [esp + 0x558]
test eax, eax
mov dword [esp + 0x528], edx
je 0x905bb0
mov eax, dword [esp + 0x560]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x54c]
mov dword [esp + 8], eax
sar dword [esp + 0x38], 2
sar esi, 2
mov ecx, dword [ecx]
imul esi, eax
mov eax, dword [esp + 0x528]
add dword [esp + 0x38], ecx
mov dword [esp], eax
sar ebp, 2
mov ecx, dword [esp + 0x38]
sar edi, 2
add ecx, esi
mov esi, dword [esp + 0x530]
mov dword [esp + 4], ecx
call dword [edx + esi*4 + 0x40]
mov esi, dword [esp + 0x560]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov eax, dword [esp + 0x54c]
mov dword [esp + 8], esi
add ebp, dword [eax + 0x20]
imul edi, esi
mov esi, dword [esp + 0x52c]
lea ecx, [ebp + edi]
mov ebp, dword [esp + 0x528]
mov dword [esp + 4], ecx
mov dword [esp], ebp
call dword [edx + esi*4 + 0x40]
add dword [esp + 0x53c], 1
cmp dword [esp + 0x53c], 3
jle 0x90593d
jmp 0x905442
mov dword [esp + 8], 0xaa
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310c8
call fcn.00a5b730
mov dword [esp + 8], 0xa8
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3110d
call fcn.00a5b730
mov dword [esp + 8], 0xa7
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31129
call fcn.00a5b730
mov dword [esp + 8], 0xae
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31148
call fcn.00a5b730
mov dword [esp + 8], 0xad
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3116c
call fcn.00a5b730
mov dword [esp + 8], 0xac
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3118d
call fcn.00a5b730
mov dword [esp + 8], 0xab
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd311a9
call fcn.00a5b730
mov dword [esp + 8], 0xa9
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310ec
call fcn.00a5b730
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x54c]
sar dword [esp + 0x38], 1
mov edx, dword [ecx + 0x13c]
mov ecx, dword [esp + 0x560]
mov dword [esp + 0xc], 8
mov dword [esp + 8], ecx
sar esi, 1
sar ebp, 1
mov eax, dword [eax]
imul esi, ecx
mov ecx, dword [esp + 0x528]
add dword [esp + 0x38], eax
mov dword [esp], ecx
sar edi, 1
mov eax, dword [esp + 0x38]
add eax, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x530]
call dword [edx + eax*4 + 0x10]
mov esi, dword [esp + 0xb8]
mov eax, dword [esp + 0x560]
mov edx, dword [esi + 0x140]
mov ecx, dword [esp + 0x54c]
mov dword [esp + 0xc], 8
mov dword [esp + 8], eax
imul edi, eax
add ebp, dword [ecx + 0x20]
lea esi, [ebp + edi]
mov ebp, dword [esp + 0x528]
mov edi, dword [esp + 0x52c]
mov dword [esp + 4], esi
mov dword [esp], ebp
call dword [edx + edi*4 + 0x10]
jmp 0x905ab5
mov ecx, dword [esp + 0x53c]
mov edi, dword [esp + 0xb8]
mov eax, dword [esp + 0x538]
imul eax, dword [edi + ecx*8 + 0xc]
cdq
idiv ebx
mov edx, ecx
movzx ecx, byte [esp + 0x534]
sar edx, 1
shl edx, cl
lea edi, [eax + edx]
jmp 0x9059a4
mov edi, dword [esp + 0x53c]
mov ebp, dword [esp + 0xb8]
mov eax, dword [esp + 0x538]
imul eax, dword [ebp + edi*8 + 8]
movzx ecx, byte [esp + 0x534]
cdq
idiv ebx
mov edx, edi
and edx, 1
shl edx, cl
lea ebp, [eax + edx]
jmp 0x905981
mov dword [esp + 8], 0xab
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd311a9
call fcn.00a5b730
mov dword [esp + 8], 0xaa
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310c8
call fcn.00a5b730
mov dword [esp + 8], 0xa9
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310ec
call fcn.00a5b730
mov dword [esp + 8], 0xa8
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3110d
call fcn.00a5b730
mov dword [esp + 8], 0xae
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31148
call fcn.00a5b730
mov dword [esp + 8], 0xad
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3116c
call fcn.00a5b730
mov dword [esp + 8], 0xac
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3118d
call fcn.00a5b730
mov dword [esp + 8], 0xab
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd311a9
call fcn.00a5b730
mov dword [esp + 8], 0xaa
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310c8
call fcn.00a5b730
mov dword [esp + 8], 0xa9
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310ec
call fcn.00a5b730
mov dword [esp + 8], 0xa8
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3110d
call fcn.00a5b730
mov dword [esp + 8], 0xa7
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31129
call fcn.00a5b730
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0x4e4]
sar esi, 2
mov edx, dword [ebp + 0x144]
mov ebp, dword [esp + 0x4f8]
mov ecx, dword [esp + 0x4b4]
mov dword [esp + 8], ebp
mov eax, dword [ebx]
mov ebx, edi
mov edi, dword [esp + 0xb8]
sar ebx, 2
add eax, esi
imul ebp, ebx
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [edi + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0x4f8]
mov edx, dword [edi + 0x144]
mov dword [esp + 8], eax
mov edi, dword [esp + 0x4e4]
mov ecx, dword [edi]
add ecx, esi
lea eax, [ecx + ebp + 8]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x4b4]
mov edi, dword [ecx + 0x58]
add edi, 8
mov dword [esp], edi
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0x4e4]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x4f8]
mov dword [esp + 8], ecx
imul ebx, ecx
mov eax, dword [edi]
mov edi, ecx
mov ecx, dword [esp + 0x4b4]
add eax, esi
shl edi, 3
add ebx, eax
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov eax, dword [ebx + 0x58]
add eax, edi
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0xb8]
mov ebx, dword [esp + 0x4f8]
mov edx, dword [eax + 0x144]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x4e4]
add esi, dword [ebx]
add esi, ebp
mov ebp, dword [esp + 0x4b4]
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
mov esi, eax
mov ecx, dword [eax + 0x58]
add ecx, edi
add ecx, 8
mov dword [esp], ecx
call dword [edx + ebp*4 + 0x40]
mov edx, dword [esi + 0x148]
mov esi, dword [esp + 0x4f8]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x4bc]
mov ebp, dword [esp + 0x4f8]
mov eax, dword [ebx + 0x20]
mov ebx, dword [esp + 0x4b8]
sar esi, 2
sar ebx, 2
add eax, esi
mov ecx, dword [esp + 0xb8]
imul ebp, ebx
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
mov dword [esp], eax
mov eax, dword [esp + 0x4b0]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x4f8]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x4e4]
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0xb8]
add eax, esi
lea eax, [eax + ebp + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
add eax, 8
mov dword [esp], eax
mov eax, dword [esp + 0x4b0]
call dword [edx + eax*4 + 0x40]
mov eax, dword [esp + 0x4f8]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x4e4]
imul ebx, eax
mov eax, dword [ecx + 0x20]
add eax, esi
add ebx, eax
mov eax, dword [esp + 0x4b0]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov ecx, dword [ebx + 0x58]
add ecx, edi
mov dword [esp], ecx
call dword [edx + eax*4 + 0x40]
mov edx, dword [esp + 0x4f8]
mov eax, dword [ebx + 0x148]
mov ecx, dword [esp + 0x4e4]
mov dword [esp + 8], edx
add esi, dword [ecx + 0x20]
add esi, ebp
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
add edi, dword [ebx + 0x58]
add edi, 8
mov dword [esp], edi
mov edi, dword [esp + 0x4b0]
call dword [eax + edi*4 + 0x40]
jmp 0x8ffe0f
sub ecx, ebx
mov ebp, dword [esp + 0xb8]
imul ecx, dword [ebp + 0xc]
mov eax, ecx
cdq
idiv ebx
mov dword [esp + 0x4b8], eax
jmp 0x8ffc75
mov edx, ecx
mov eax, dword [esp + 0xb8]
sub edx, ebx
mov ebp, edx
imul ebp, dword [eax + 8]
mov eax, ebp
cdq
idiv ebx
mov dword [esp + 0x4bc], eax
jmp 0x8ffc53
mov ebp, dword [esp + 0x4f0]
sub ecx, ebx
mov dword [esp + 0x4d4], 0
add ebp, 4
mov dword [esp + 0x4d0], ecx
mov dword [esp + 0x4cc], ebp
jmp 0x90620e
mov ebp, edx
mov edx, dword [esp + 0x4d4]
sub ebp, dword [eax + edx*8 + 8]
mov eax, dword [esp + 0x4e8]
test eax, eax
je 0x906321
mov edi, esi
mov edx, dword [esp + 0x4d4]
mov ecx, dword [esp + 0xb8]
sub edi, dword [ecx + edx*8 + 0xc]
mov eax, dword [esp + 0x4d8]
movzx ecx, byte [esp + 0x70]
mov edx, dword [esp + 0x4d8]
and eax, esi
and edx, dword [esp + 0x38]
shl eax, cl
add edx, eax
mov eax, dword [esp + 0x4d8]
and eax, edi
mov dword [esp + 0x4c8], edx
mov edx, dword [esp + 0x4d8]
shl eax, cl
and edx, ebp
mov ecx, dword [esp + 0x4d4]
add edx, eax
sar ecx, 1
mov dword [esp + 0x4c4], edx
mov edx, dword [esp + 0x4d4]
imul ecx, dword [esp + 0x4f8]
and edx, 1
add edx, ecx
mov ecx, dword [esp + 0xb8]
mov eax, dword [ecx + 0x58]
lea edx, [eax + edx*8]
mov eax, dword [esp + 0x4f0]
test eax, eax
mov dword [esp + 0x4c0], edx
je 0x906279
mov eax, dword [esp + 0x4f8]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x4e4]
mov dword [esp + 8], eax
sar dword [esp + 0x38], 2
sar esi, 2
mov ecx, dword [ecx]
imul esi, eax
mov eax, dword [esp + 0x4c0]
add dword [esp + 0x38], ecx
mov dword [esp], eax
sar ebp, 2
mov ecx, dword [esp + 0x38]
sar edi, 2
add ecx, esi
mov esi, dword [esp + 0x4c8]
mov dword [esp + 4], ecx
call dword [edx + esi*4 + 0x40]
mov esi, dword [esp + 0x4f8]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov eax, dword [esp + 0x4e4]
mov dword [esp + 8], esi
add ebp, dword [eax + 0x20]
imul edi, esi
mov esi, dword [esp + 0x4c4]
lea ecx, [ebp + edi]
mov ebp, dword [esp + 0x4c0]
mov dword [esp + 4], ecx
mov dword [esp], ebp
call dword [edx + esi*4 + 0x40]
add dword [esp + 0x4d4], 1
cmp dword [esp + 0x4d4], 3
jg 0x8ffe0f
mov edi, dword [esp + 0x4d4]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x4ec]
mov esi, dword [esp + 0x4e8]
mov ecx, dword [esp + 0x4ec]
add edx, dword [eax + edi*8 + 0x28]
add esi, dword [eax + edi*8 + 0x2c]
test ecx, ecx
mov dword [esp + 0x38], edx
jne 0x9060b6
mov edi, dword [esp + 0x4d4]
mov ebp, dword [esp + 0xb8]
mov eax, dword [esp + 0x4d0]
imul eax, dword [ebp + edi*8 + 8]
movzx ecx, byte [esp + 0x4cc]
cdq
idiv ebx
mov edx, edi
and edx, 1
shl edx, cl
lea ebp, [eax + edx]
jmp 0x9060c3
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x4e4]
sar dword [esp + 0x38], 1
mov edx, dword [ecx + 0x13c]
mov ecx, dword [esp + 0x4f8]
mov dword [esp + 0xc], 8
mov dword [esp + 8], ecx
sar esi, 1
sar ebp, 1
mov eax, dword [eax]
imul esi, ecx
mov ecx, dword [esp + 0x4c0]
add dword [esp + 0x38], eax
mov dword [esp], ecx
sar edi, 1
mov eax, dword [esp + 0x38]
add eax, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x4c8]
call dword [edx + eax*4 + 0x10]
mov esi, dword [esp + 0xb8]
mov eax, dword [esp + 0x4f8]
mov edx, dword [esi + 0x140]
mov ecx, dword [esp + 0x4e4]
mov dword [esp + 0xc], 8
mov dword [esp + 8], eax
imul edi, eax
add ebp, dword [ecx + 0x20]
lea esi, [ebp + edi]
mov ebp, dword [esp + 0x4c0]
mov edi, dword [esp + 0x4c4]
mov dword [esp + 4], esi
mov dword [esp], ebp
call dword [edx + edi*4 + 0x10]
jmp 0x9061f7
mov ecx, dword [esp + 0x4d4]
mov edi, dword [esp + 0xb8]
mov eax, dword [esp + 0x4d0]
imul eax, dword [edi + ecx*8 + 0xc]
cdq
idiv ebx
mov edx, ecx
movzx ecx, byte [esp + 0x4cc]
sar edx, 1
shl edx, cl
lea edi, [eax + edx]
jmp 0x9060e6
mov dword [esp + 8], 0x44b
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31452
call fcn.00a5b730
mov dword [esp + 8], 0x7d
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd30f5c
call fcn.00a5b730
mov dword [esp + 8], 0xa8
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3110d
call fcn.00a5b730
mov dword [esp + 8], 0xa7
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31129
call fcn.00a5b730
mov dword [esp + 8], 0x7d
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd30f5c
call fcn.00a5b730
mov dword [esp + 8], 0x7d
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd30f5c
call fcn.00a5b730
mov dword [esp + 8], 0xad
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3116c
call fcn.00a5b730
mov dword [esp + 8], 0xac
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3118d
call fcn.00a5b730
mov dword [esp + 8], 0xae
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31148
call fcn.00a5b730
mov dword [esp + 8], 0xad
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3116c
call fcn.00a5b730
mov dword [esp + 8], 0xae
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31148
call fcn.00a5b730
mov dword [esp + 8], 0xad
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3116c
call fcn.00a5b730
mov dword [esp + 8], 0xac
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3118d
call fcn.00a5b730
mov dword [esp + 8], 0xab
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd311a9
call fcn.00a5b730
mov dword [esp + 8], 0xaa
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310c8
call fcn.00a5b730
mov dword [esp + 8], 0xa9
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310ec
call fcn.00a5b730
mov dword [esp + 8], 0xac
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3118d
call fcn.00a5b730
mov dword [esp + 8], 0xab
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd311a9
call fcn.00a5b730
mov dword [esp + 8], 0xaa
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310c8
call fcn.00a5b730
mov dword [esp + 8], 0xa9
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310ec
call fcn.00a5b730
mov dword [esp + 8], 0xae
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31148
call fcn.00a5b730
mov dword [esp + 8], 0xad
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3116c
call fcn.00a5b730
mov dword [esp + 8], 0xac
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3118d
call fcn.00a5b730
mov dword [esp + 8], 0xab
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd311a9
call fcn.00a5b730
mov dword [esp + 8], 0xaa
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310c8
call fcn.00a5b730
mov dword [esp + 8], 0xa9
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310ec
call fcn.00a5b730
mov dword [esp + 8], 0xa8
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3110d
call fcn.00a5b730
mov dword [esp + 8], 0xa7
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31129
call fcn.00a5b730
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0x414]
sar esi, 2
mov edx, dword [ebp + 0x144]
mov ebp, dword [esp + 0x428]
mov ecx, dword [esp + 0x3e4]
mov dword [esp + 8], ebp
mov eax, dword [ebx]
mov ebx, edi
mov edi, dword [esp + 0xb8]
sar ebx, 2
add eax, esi
imul ebp, ebx
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [edi + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0x428]
mov edx, dword [edi + 0x144]
mov dword [esp + 8], eax
mov edi, dword [esp + 0x414]
mov ecx, dword [edi]
add ecx, esi
lea eax, [ecx + ebp + 8]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3e4]
mov edi, dword [ecx + 0x58]
add edi, 8
mov dword [esp], edi
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0x414]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x428]
mov dword [esp + 8], ecx
imul ebx, ecx
mov eax, dword [edi]
mov edi, ecx
mov ecx, dword [esp + 0x3e4]
add eax, esi
shl edi, 3
add ebx, eax
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov eax, dword [ebx + 0x58]
add eax, edi
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0xb8]
mov ebx, dword [esp + 0x428]
mov edx, dword [eax + 0x144]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x414]
add esi, dword [ebx]
add esi, ebp
mov ebp, dword [esp + 0x3e4]
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
mov esi, eax
mov ecx, dword [eax + 0x58]
add ecx, edi
add ecx, 8
mov dword [esp], ecx
call dword [edx + ebp*4 + 0x40]
mov edx, dword [esi + 0x148]
mov esi, dword [esp + 0x428]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x3ec]
mov ebp, dword [esp + 0x428]
mov eax, dword [ebx + 0x20]
mov ebx, dword [esp + 0x3e8]
sar esi, 2
sar ebx, 2
add eax, esi
mov ecx, dword [esp + 0xb8]
imul ebp, ebx
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
mov dword [esp], eax
mov eax, dword [esp + 0x3e0]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x428]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x414]
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0xb8]
add eax, esi
lea eax, [eax + ebp + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
add eax, 8
mov dword [esp], eax
mov eax, dword [esp + 0x3e0]
call dword [edx + eax*4 + 0x40]
mov eax, dword [esp + 0x428]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x414]
imul ebx, eax
mov eax, dword [ecx + 0x20]
add eax, esi
add ebx, eax
mov eax, dword [esp + 0x3e0]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov ecx, dword [ebx + 0x58]
add ecx, edi
mov dword [esp], ecx
call dword [edx + eax*4 + 0x40]
mov edx, dword [esp + 0x428]
mov eax, dword [ebx + 0x148]
mov ecx, dword [esp + 0x414]
mov dword [esp + 8], edx
add esi, dword [ecx + 0x20]
add esi, ebp
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
add edi, dword [ebx + 0x58]
add edi, 8
mov dword [esp], edi
mov edi, dword [esp + 0x3e0]
call dword [eax + edi*4 + 0x40]
jmp 0x900591
sub ecx, ebx
mov ebp, dword [esp + 0xb8]
imul ecx, dword [ebp + 0xc]
mov eax, ecx
cdq
idiv ebx
mov dword [esp + 0x3e8], eax
jmp 0x9003f4
mov edx, ecx
mov eax, dword [esp + 0xb8]
sub edx, ebx
mov ebp, edx
imul ebp, dword [eax + 8]
mov eax, ebp
cdq
idiv ebx
mov dword [esp + 0x3ec], eax
jmp 0x9003d2
mov ebp, dword [esp + 0x420]
sub ecx, ebx
mov dword [esp + 0x404], 0
add ebp, 4
mov dword [esp + 0x400], ecx
mov dword [esp + 0x3fc], ebp
jmp 0x906a66
mov ebp, edx
mov edx, dword [esp + 0x404]
sub ebp, dword [eax + edx*8 + 8]
mov eax, dword [esp + 0x418]
test eax, eax
je 0x906b79
mov edi, esi
mov edx, dword [esp + 0x404]
mov ecx, dword [esp + 0xb8]
sub edi, dword [ecx + edx*8 + 0xc]
mov eax, dword [esp + 0x408]
movzx ecx, byte [esp + 0xc0]
mov edx, dword [esp + 0x408]
and eax, esi
and edx, dword [esp + 0x38]
shl eax, cl
add edx, eax
mov eax, dword [esp + 0x408]
and eax, edi
mov dword [esp + 0x3f8], edx
mov edx, dword [esp + 0x408]
shl eax, cl
and edx, ebp
mov ecx, dword [esp + 0x404]
add edx, eax
sar ecx, 1
mov dword [esp + 0x3f4], edx
mov edx, dword [esp + 0x404]
imul ecx, dword [esp + 0x428]
and edx, 1
add edx, ecx
mov ecx, dword [esp + 0xb8]
mov eax, dword [ecx + 0x58]
lea edx, [eax + edx*8]
mov eax, dword [esp + 0x420]
test eax, eax
mov dword [esp + 0x3f0], edx
je 0x906ad1
mov eax, dword [esp + 0x428]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x414]
mov dword [esp + 8], eax
sar dword [esp + 0x38], 2
sar esi, 2
mov ecx, dword [ecx]
imul esi, eax
mov eax, dword [esp + 0x3f0]
add dword [esp + 0x38], ecx
mov dword [esp], eax
sar ebp, 2
mov ecx, dword [esp + 0x38]
sar edi, 2
add ecx, esi
mov esi, dword [esp + 0x3f8]
mov dword [esp + 4], ecx
call dword [edx + esi*4 + 0x40]
mov esi, dword [esp + 0x428]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov eax, dword [esp + 0x414]
mov dword [esp + 8], esi
add ebp, dword [eax + 0x20]
imul edi, esi
mov esi, dword [esp + 0x3f4]
lea ecx, [ebp + edi]
mov ebp, dword [esp + 0x3f0]
mov dword [esp + 4], ecx
mov dword [esp], ebp
call dword [edx + esi*4 + 0x40]
add dword [esp + 0x404], 1
cmp dword [esp + 0x404], 3
jg 0x900591
mov edi, dword [esp + 0x404]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x41c]
mov esi, dword [esp + 0x418]
mov ecx, dword [esp + 0x41c]
add edx, dword [eax + edi*8 + 0x28]
add esi, dword [eax + edi*8 + 0x2c]
test ecx, ecx
mov dword [esp + 0x38], edx
jne 0x90690b
mov edi, dword [esp + 0x404]
mov ebp, dword [esp + 0xb8]
mov eax, dword [esp + 0x400]
imul eax, dword [ebp + edi*8 + 8]
movzx ecx, byte [esp + 0x3fc]
cdq
idiv ebx
mov edx, edi
and edx, 1
shl edx, cl
lea ebp, [eax + edx]
jmp 0x906918
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x414]
sar dword [esp + 0x38], 1
mov edx, dword [ecx + 0x13c]
mov ecx, dword [esp + 0x428]
mov dword [esp + 0xc], 8
mov dword [esp + 8], ecx
sar esi, 1
sar ebp, 1
mov eax, dword [eax]
imul esi, ecx
mov ecx, dword [esp + 0x3f0]
add dword [esp + 0x38], eax
mov dword [esp], ecx
sar edi, 1
mov eax, dword [esp + 0x38]
add eax, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3f8]
call dword [edx + eax*4 + 0x10]
mov esi, dword [esp + 0xb8]
mov eax, dword [esp + 0x428]
mov edx, dword [esi + 0x140]
mov ecx, dword [esp + 0x414]
mov dword [esp + 0xc], 8
mov dword [esp + 8], eax
imul edi, eax
add ebp, dword [ecx + 0x20]
lea esi, [ebp + edi]
mov ebp, dword [esp + 0x3f0]
mov edi, dword [esp + 0x3f4]
mov dword [esp + 4], esi
mov dword [esp], ebp
call dword [edx + edi*4 + 0x10]
jmp 0x906a4f
mov ecx, dword [esp + 0x404]
mov edi, dword [esp + 0xb8]
mov eax, dword [esp + 0x400]
imul eax, dword [edi + ecx*8 + 0xc]
cdq
idiv ebx
mov edx, ecx
movzx ecx, byte [esp + 0x3fc]
sar edx, 1
shl edx, cl
lea edi, [eax + edx]
jmp 0x90693b
mov dword [esp + 8], 0x459
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31444
call fcn.00a5b730
mov dword [esp + 8], 0x459
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31436
call fcn.00a5b730
mov dword [esp + 8], 0xa8
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3110d
call fcn.00a5b730
mov dword [esp + 8], 0xa7
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31129
call fcn.00a5b730
mov dword [esp + 8], 0xac
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3118d
call fcn.00a5b730
mov dword [esp + 8], 0xab
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd311a9
call fcn.00a5b730
mov dword [esp + 8], 0xaa
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310c8
call fcn.00a5b730
mov dword [esp + 8], 0xa9
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310ec
call fcn.00a5b730
mov dword [esp + 8], 0xaa
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310c8
call fcn.00a5b730
mov dword [esp + 8], 0xa9
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310ec
call fcn.00a5b730
mov dword [esp + 8], 0xa8
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3110d
call fcn.00a5b730
mov dword [esp + 8], 0xa7
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31129
call fcn.00a5b730
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0x3ac]
sar esi, 2
mov edx, dword [ebp + 0x144]
mov ebp, dword [esp + 0x3c0]
mov ecx, dword [esp + 0x37c]
mov dword [esp + 8], ebp
mov eax, dword [ebx]
mov ebx, edi
mov edi, dword [esp + 0xb8]
sar ebx, 2
add eax, esi
imul ebp, ebx
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [edi + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0x3c0]
mov edx, dword [edi + 0x144]
mov dword [esp + 8], eax
mov edi, dword [esp + 0x3ac]
mov ecx, dword [edi]
add ecx, esi
lea eax, [ecx + ebp + 8]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x37c]
mov edi, dword [ecx + 0x58]
add edi, 8
mov dword [esp], edi
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0x3ac]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x3c0]
mov dword [esp + 8], ecx
imul ebx, ecx
mov eax, dword [edi]
mov edi, ecx
mov ecx, dword [esp + 0x37c]
add eax, esi
shl edi, 3
add ebx, eax
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov eax, dword [ebx + 0x58]
add eax, edi
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0xb8]
mov ebx, dword [esp + 0x3c0]
mov edx, dword [eax + 0x144]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x3ac]
add esi, dword [ebx]
add esi, ebp
mov ebp, dword [esp + 0x37c]
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
mov esi, eax
mov ecx, dword [eax + 0x58]
add ecx, edi
add ecx, 8
mov dword [esp], ecx
call dword [edx + ebp*4 + 0x40]
mov edx, dword [esi + 0x148]
mov esi, dword [esp + 0x3c0]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x384]
mov ebp, dword [esp + 0x3c0]
mov eax, dword [ebx + 0x20]
mov ebx, dword [esp + 0x380]
sar esi, 2
sar ebx, 2
add eax, esi
mov ecx, dword [esp + 0xb8]
imul ebp, ebx
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
mov dword [esp], eax
mov eax, dword [esp + 0x378]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x3c0]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x3ac]
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0xb8]
add eax, esi
lea eax, [eax + ebp + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
add eax, 8
mov dword [esp], eax
mov eax, dword [esp + 0x378]
call dword [edx + eax*4 + 0x40]
mov eax, dword [esp + 0x3c0]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x3ac]
imul ebx, eax
mov eax, dword [ecx + 0x20]
add eax, esi
add ebx, eax
mov eax, dword [esp + 0x378]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov ecx, dword [ebx + 0x58]
add ecx, edi
mov dword [esp], ecx
call dword [edx + eax*4 + 0x40]
mov edx, dword [esp + 0x3c0]
mov eax, dword [ebx + 0x148]
mov ecx, dword [esp + 0x3ac]
mov dword [esp + 8], edx
add esi, dword [ecx + 0x20]
add esi, ebp
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
add edi, dword [ebx + 0x58]
add edi, 8
mov dword [esp], edi
mov edi, dword [esp + 0x378]
call dword [eax + edi*4 + 0x40]
jmp 0x90193a
mov edi, dword [esp + 0x39c]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x3b4]
mov esi, dword [esp + 0x3b0]
mov ecx, dword [esp + 0x3b4]
add edx, dword [eax + edi*8 + 0x28]
add esi, dword [eax + edi*8 + 0x2c]
test ecx, ecx
mov dword [esp + 0x38], edx
je 0x90777b
mov ebp, edx
mov edx, dword [esp + 0x39c]
sub ebp, dword [eax + edx*8 + 8]
mov eax, dword [esp + 0x3b0]
test eax, eax
je 0x907748
mov edi, esi
mov edx, dword [esp + 0x39c]
mov ecx, dword [esp + 0xb8]
sub edi, dword [ecx + edx*8 + 0xc]
mov eax, dword [esp + 0x3a0]
movzx ecx, byte [esp + 0xbc]
mov edx, dword [esp + 0x3a0]
and eax, esi
and edx, dword [esp + 0x38]
shl eax, cl
add edx, eax
mov eax, dword [esp + 0x3a0]
and eax, edi
mov dword [esp + 0x390], edx
mov edx, dword [esp + 0x3a0]
shl eax, cl
and edx, ebp
mov ecx, dword [esp + 0x39c]
add edx, eax
sar ecx, 1
mov dword [esp + 0x38c], edx
mov edx, dword [esp + 0x39c]
imul ecx, dword [esp + 0x3c0]
and edx, 1
add edx, ecx
mov ecx, dword [esp + 0xb8]
mov eax, dword [ecx + 0x58]
lea edx, [eax + edx*8]
mov eax, dword [esp + 0x3b8]
test eax, eax
mov dword [esp + 0x388], edx
je 0x9076a0
mov eax, dword [esp + 0x3c0]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x3ac]
mov dword [esp + 8], eax
sar dword [esp + 0x38], 2
sar esi, 2
mov ecx, dword [ecx]
imul esi, eax
mov eax, dword [esp + 0x388]
add dword [esp + 0x38], ecx
mov dword [esp], eax
sar ebp, 2
mov ecx, dword [esp + 0x38]
sar edi, 2
add ecx, esi
mov esi, dword [esp + 0x390]
mov dword [esp + 4], ecx
call dword [edx + esi*4 + 0x40]
mov esi, dword [esp + 0x3c0]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov eax, dword [esp + 0x3ac]
mov dword [esp + 8], esi
add ebp, dword [eax + 0x20]
imul edi, esi
mov esi, dword [esp + 0x38c]
lea ecx, [ebp + edi]
mov ebp, dword [esp + 0x388]
mov dword [esp + 4], ecx
mov dword [esp], ebp
call dword [edx + esi*4 + 0x40]
add dword [esp + 0x39c], 1
cmp dword [esp + 0x39c], 3
jle 0x906f9e
jmp 0x90193a
mov dword [esp + 8], 0xae
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31148
call fcn.00a5b730
mov dword [esp + 8], 0xac
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3118d
call fcn.00a5b730
mov dword [esp + 8], 0xab
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd311a9
call fcn.00a5b730
mov dword [esp + 8], 0xaa
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310c8
call fcn.00a5b730
mov dword [esp + 8], 0xa9
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310ec
call fcn.00a5b730
mov dword [esp + 8], 0xa8
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3110d
call fcn.00a5b730
mov dword [esp + 8], 0xa7
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31129
call fcn.00a5b730
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0x298]
sar esi, 2
mov edx, dword [ebp + 0x144]
mov ebp, dword [esp + 0x2a8]
mov ecx, dword [esp + 0x268]
mov dword [esp + 8], ebp
mov eax, dword [ebx]
mov ebx, edi
mov edi, dword [esp + 0xb8]
sar ebx, 2
add eax, esi
imul ebp, ebx
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [edi + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0x2a8]
mov edx, dword [edi + 0x144]
mov dword [esp + 8], eax
mov edi, dword [esp + 0x298]
mov ecx, dword [edi]
add ecx, esi
lea eax, [ecx + ebp + 8]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x268]
mov edi, dword [ecx + 0x58]
add edi, 8
mov dword [esp], edi
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0x298]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x2a8]
mov dword [esp + 8], ecx
imul ebx, ecx
mov eax, dword [edi]
mov edi, ecx
mov ecx, dword [esp + 0x268]
add eax, esi
shl edi, 3
add ebx, eax
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov eax, dword [ebx + 0x58]
add eax, edi
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0xb8]
mov ebx, dword [esp + 0x2a8]
mov edx, dword [eax + 0x144]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x298]
add esi, dword [ebx]
add esi, ebp
mov ebp, dword [esp + 0x268]
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
mov esi, eax
mov ecx, dword [eax + 0x58]
add ecx, edi
add ecx, 8
mov dword [esp], ecx
call dword [edx + ebp*4 + 0x40]
mov edx, dword [esi + 0x148]
mov esi, dword [esp + 0x2a8]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x270]
mov ebp, dword [esp + 0x2a8]
mov eax, dword [ebx + 0x20]
mov ebx, dword [esp + 0x26c]
sar esi, 2
sar ebx, 2
add eax, esi
mov ecx, dword [esp + 0xb8]
imul ebp, ebx
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
mov dword [esp], eax
mov eax, dword [esp + 0x264]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x2a8]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x298]
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0xb8]
add eax, esi
lea eax, [eax + ebp + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
add eax, 8
mov dword [esp], eax
mov eax, dword [esp + 0x264]
call dword [edx + eax*4 + 0x40]
mov eax, dword [esp + 0x2a8]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x298]
imul ebx, eax
mov eax, dword [ecx + 0x20]
add eax, esi
add ebx, eax
mov eax, dword [esp + 0x264]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov ecx, dword [ebx + 0x58]
add ecx, edi
mov dword [esp], ecx
call dword [edx + eax*4 + 0x40]
mov edx, dword [esp + 0x2a8]
mov eax, dword [ebx + 0x148]
mov ecx, dword [esp + 0x298]
mov dword [esp + 8], edx
add esi, dword [ecx + 0x20]
add esi, ebp
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
add edi, dword [ebx + 0x58]
add edi, 8
mov dword [esp], edi
mov edi, dword [esp + 0x264]
call dword [eax + edi*4 + 0x40]
jmp 0x902639
sub ecx, ebx
mov ebp, dword [esp + 0xb8]
imul ecx, dword [ebp + 0xc]
mov eax, ecx
cdq
idiv ebx
mov dword [esp + 0x26c], eax
jmp 0x90249c
mov edx, ecx
mov eax, dword [esp + 0xb8]
sub edx, ebx
mov ebp, edx
imul ebp, dword [eax + 8]
mov eax, ebp
cdq
idiv ebx
mov dword [esp + 0x270], eax
jmp 0x90247a
sub ecx, ebx
mov dword [esp + 0x288], 0
mov dword [esp + 0x284], ecx
mov ecx, dword [esp + 0x2b8]
add ecx, 4
mov dword [esp + 0x280], ecx
mov ebp, dword [esp + 0x288]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x2a0]
mov esi, dword [esp + 0x29c]
mov edi, dword [esp + 0x2a0]
add edx, dword [eax + ebp*8 + 0x28]
add esi, dword [eax + ebp*8 + 0x2c]
test edi, edi
mov dword [esp + 0x38], edx
je 0x9078a6
mov ebp, edx
mov edx, dword [esp + 0x288]
sub ebp, dword [eax + edx*8 + 8]
mov eax, dword [esp + 0x29c]
test eax, eax
je 0x907873
mov edi, esi
mov edx, dword [esp + 0x288]
mov ecx, dword [esp + 0xb8]
sub edi, dword [ecx + edx*8 + 0xc]
mov eax, dword [esp + 0x28c]
movzx ecx, byte [esp + 0xa4]
mov edx, dword [esp + 0x28c]
and eax, esi
and edx, dword [esp + 0x38]
shl eax, cl
add edx, eax
mov eax, dword [esp + 0x28c]
and eax, edi
mov dword [esp + 0x27c], edx
mov edx, dword [esp + 0x28c]
shl eax, cl
and edx, ebp
mov ecx, dword [esp + 0x288]
add edx, eax
sar ecx, 1
mov dword [esp + 0x278], edx
mov edx, dword [esp + 0x288]
imul ecx, dword [esp + 0x2a8]
and edx, 1
add edx, ecx
mov ecx, dword [esp + 0xb8]
mov eax, dword [ecx + 0x58]
lea edx, [eax + edx*8]
mov eax, dword [esp + 0x2b8]
test eax, eax
mov dword [esp + 0x274], edx
je 0x9077cb
mov eax, dword [esp + 0x2a8]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x298]
mov dword [esp + 8], eax
sar dword [esp + 0x38], 2
sar esi, 2
mov ecx, dword [ecx]
imul esi, eax
mov eax, dword [esp + 0x274]
add dword [esp + 0x38], ecx
mov dword [esp], eax
sar ebp, 2
mov ecx, dword [esp + 0x38]
sar edi, 2
add ecx, esi
mov esi, dword [esp + 0x27c]
mov dword [esp + 4], ecx
call dword [edx + esi*4 + 0x40]
mov esi, dword [esp + 0x2a8]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov eax, dword [esp + 0x298]
mov dword [esp + 8], esi
add ebp, dword [eax + 0x20]
imul edi, esi
mov esi, dword [esp + 0x278]
lea ecx, [ebp + edi]
mov ebp, dword [esp + 0x274]
mov dword [esp + 4], ecx
mov dword [esp], ebp
call dword [edx + esi*4 + 0x40]
add dword [esp + 0x288], 1
cmp dword [esp + 0x288], 3
jle 0x90749a
jmp 0x902639
mov dword [esp + 8], 0xae
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31148
call fcn.00a5b730
mov dword [esp + 8], 0xac
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3118d
call fcn.00a5b730
mov dword [esp + 8], 0xab
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd311a9
call fcn.00a5b730
mov dword [esp + 8], 0xad
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3116c
call fcn.00a5b730
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x3ac]
sar dword [esp + 0x38], 1
mov edx, dword [ecx + 0x13c]
mov ecx, dword [esp + 0x3c0]
mov dword [esp + 0xc], 8
mov dword [esp + 8], ecx
sar esi, 1
sar ebp, 1
mov eax, dword [eax]
imul esi, ecx
mov ecx, dword [esp + 0x388]
add dword [esp + 0x38], eax
mov dword [esp], ecx
sar edi, 1
mov eax, dword [esp + 0x38]
add eax, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x390]
call dword [edx + eax*4 + 0x10]
mov esi, dword [esp + 0xb8]
mov eax, dword [esp + 0x3c0]
mov edx, dword [esi + 0x140]
mov ecx, dword [esp + 0x3ac]
mov dword [esp + 0xc], 8
mov dword [esp + 8], eax
imul edi, eax
add ebp, dword [ecx + 0x20]
lea esi, [ebp + edi]
mov ebp, dword [esp + 0x388]
mov edi, dword [esp + 0x38c]
mov dword [esp + 4], esi
mov dword [esp], ebp
call dword [edx + edi*4 + 0x10]
jmp 0x907119
mov ecx, dword [esp + 0x39c]
mov edi, dword [esp + 0xb8]
mov eax, dword [esp + 0x398]
imul eax, dword [edi + ecx*8 + 0xc]
cdq
idiv ebx
mov edx, ecx
movzx ecx, byte [esp + 0x394]
sar edx, 1
shl edx, cl
lea edi, [eax + edx]
jmp 0x907005
mov edi, dword [esp + 0x39c]
mov ebp, dword [esp + 0xb8]
mov eax, dword [esp + 0x398]
imul eax, dword [ebp + edi*8 + 8]
movzx ecx, byte [esp + 0x394]
cdq
idiv ebx
mov edx, edi
and edx, 1
shl edx, cl
lea ebp, [eax + edx]
jmp 0x906fe2
mov dword [esp + 8], 0xad
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3116c
call fcn.00a5b730
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x298]
sar dword [esp + 0x38], 1
mov edx, dword [ecx + 0x13c]
mov ecx, dword [esp + 0x2a8]
mov dword [esp + 0xc], 8
mov dword [esp + 8], ecx
sar esi, 1
sar ebp, 1
mov eax, dword [eax]
imul esi, ecx
mov ecx, dword [esp + 0x274]
add dword [esp + 0x38], eax
mov dword [esp], ecx
sar edi, 1
mov eax, dword [esp + 0x38]
add eax, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x27c]
call dword [edx + eax*4 + 0x10]
mov esi, dword [esp + 0xb8]
mov eax, dword [esp + 0x2a8]
mov edx, dword [esi + 0x140]
mov ecx, dword [esp + 0x298]
mov dword [esp + 0xc], 8
mov dword [esp + 8], eax
imul edi, eax
add ebp, dword [ecx + 0x20]
lea esi, [ebp + edi]
mov ebp, dword [esp + 0x274]
mov edi, dword [esp + 0x278]
mov dword [esp + 4], esi
mov dword [esp], ebp
call dword [edx + edi*4 + 0x10]
jmp 0x907615
mov ecx, dword [esp + 0x288]
mov edi, dword [esp + 0xb8]
mov eax, dword [esp + 0x284]
imul eax, dword [edi + ecx*8 + 0xc]
cdq
idiv ebx
mov edx, ecx
movzx ecx, byte [esp + 0x280]
sar edx, 1
shl edx, cl
lea edi, [eax + edx]
jmp 0x907501
mov edi, dword [esp + 0x288]
mov ebp, dword [esp + 0xb8]
mov eax, dword [esp + 0x284]
imul eax, dword [ebp + edi*8 + 8]
movzx ecx, byte [esp + 0x280]
cdq
idiv ebx
mov edx, edi
and edx, 1
shl edx, cl
lea ebp, [eax + edx]
jmp 0x9074de
mov dword [esp + 8], 0x7d
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd30f5c
call fcn.00a5b730
mov dword [esp + 8], 0x456
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31428
call fcn.00a5b730
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x7c0]
mov ebp, dword [esp + 0x7ac]
mov edx, dword [eax + 0x144]
mov dword [esp + 8], ecx
sar esi, 2
mov edi, dword [ebp]
sar ebx, 2
mov ebp, dword [esp + 0x7c0]
imul ebp, ebx
add edi, esi
mov ecx, dword [esp + 0x77c]
add edi, ebp
add ebx, 8
mov dword [esp + 4], edi
mov edi, dword [esp + 0xb8]
mov eax, dword [edi + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0x7c0]
mov edx, dword [edi + 0x144]
mov dword [esp + 8], eax
mov edi, dword [esp + 0x7ac]
mov ecx, dword [edi]
add ecx, esi
lea eax, [ecx + ebp + 8]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x77c]
mov edi, dword [ecx + 0x58]
add edi, 8
mov dword [esp], edi
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0x7ac]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x7c0]
mov dword [esp + 8], ecx
imul ebx, ecx
mov eax, dword [edi]
mov edi, ecx
mov ecx, dword [esp + 0x77c]
add eax, esi
shl edi, 3
add ebx, eax
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov eax, dword [ebx + 0x58]
add eax, edi
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0xb8]
mov ebx, dword [esp + 0x7c0]
mov edx, dword [eax + 0x144]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x7ac]
add esi, dword [ebx]
add esi, ebp
mov ebp, dword [esp + 0x77c]
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
mov esi, eax
mov ecx, dword [eax + 0x58]
add ecx, edi
add ecx, 8
mov dword [esp], ecx
call dword [edx + ebp*4 + 0x40]
mov edx, dword [esi + 0x148]
mov esi, dword [esp + 0x7c0]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x784]
mov ebp, dword [esp + 0x7c0]
mov eax, dword [ebx + 0x20]
mov ebx, dword [esp + 0x780]
sar esi, 2
sar ebx, 2
add eax, esi
mov ecx, dword [esp + 0xb8]
imul ebp, ebx
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
mov dword [esp], eax
mov eax, dword [esp + 0x778]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x7c0]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x7ac]
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0xb8]
add eax, esi
lea eax, [eax + ebp + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
add eax, 8
mov dword [esp], eax
mov eax, dword [esp + 0x778]
call dword [edx + eax*4 + 0x40]
mov eax, dword [esp + 0x7c0]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x7ac]
imul ebx, eax
mov eax, dword [ecx + 0x20]
add eax, esi
add ebx, eax
mov eax, dword [esp + 0x778]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov ecx, dword [ebx + 0x58]
add ecx, edi
mov dword [esp], ecx
call dword [edx + eax*4 + 0x40]
mov edx, dword [esp + 0x7c0]
mov eax, dword [ebx + 0x148]
mov ecx, dword [esp + 0x7ac]
mov dword [esp + 8], edx
add esi, dword [ecx + 0x20]
add esi, ebp
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
add edi, dword [ebx + 0x58]
mov ebx, dword [esp + 0x778]
add edi, 8
mov dword [esp], edi
call dword [eax + ebx*4 + 0x40]
jmp 0x8fc087
mov eax, esi
mov ebp, edi
mov edx, dword [esp + 0xb10]
and eax, 1
and ebp, 1
shl edx, 4
lea ebx, [eax + ebp*2]
mov ebp, dword [esp + 0x620]
mov ecx, dword [esp + 0xb8]
lea ebx, [edx + ebx*4]
shl ebp, 4
mov eax, dword [esp + 0x61c]
mov edx, ebx
add ebp, dword [ecx + 0x58]
sar esi, 1
add edx, dword [ecx + 0x13c]
mov ecx, dword [esp + 0xb14]
mov dword [esp + 8], eax
sar ecx, 1
sar edi, 1
mov dword [esp + 0xc], ecx
mov dword [esp + 0x5cc], ecx
mov ecx, dword [esp + 0x60c]
mov eax, dword [ecx + 4]
imul edi, dword [esp + 0x61c]
mov dword [esp], ebp
add eax, esi
add eax, edi
mov dword [esp + 4], eax
call dword [edx + 0x10]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x5cc]
mov ecx, dword [esp + 0x61c]
add ebx, dword [eax + 0x13c]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov eax, dword [esp + 0x60c]
add esi, dword [eax + 8]
add esi, edi
mov dword [esp + 4], esi
lea esi, [ebp + 8]
mov dword [esp], esi
call dword [ebx + 0x10]
mov edx, dword [esp + 0x5cc]
mov ecx, dword [esp + 0x61c]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ecx
mov ebx, dword [esp + 0x608]
mov edi, dword [ebx + 4]
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov edi, dword [esp + 0xaf0]
mov dword [esp], edi
call dword [esp + 0xa10]
mov ebx, dword [esp + 0x604]
mov ebp, dword [esp + 0x5cc]
add ebx, eax
mov eax, dword [esp + 0x61c]
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x608]
mov ecx, dword [edx + 8]
mov dword [esp + 4], esi
mov dword [esp], edi
mov dword [esp + 8], ecx
call dword [esp + 0xa10]
add ebx, eax
mov dword [esp + 0x604], ebx
jmp 0x900cee
mov dword [esp + 8], 0xaa
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310c8
call fcn.00a5b730
mov dword [esp + 8], 0xa9
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310ec
call fcn.00a5b730
mov dword [esp + 8], 0xa8
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3110d
call fcn.00a5b730
mov dword [esp + 8], 0xa7
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31129
call fcn.00a5b730
mov dword [esp + 8], 0xa7
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31129
call fcn.00a5b730
mov dword [esp + 8], 0x459
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31452
call fcn.00a5b730
mov dword [esp + 8], 0x449
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31452
call fcn.00a5b730
mov dword [esp + 8], 0x449
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31444
call fcn.00a5b730
mov dword [esp + 8], 0xae
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31148
call fcn.00a5b730
mov dword [esp + 8], 0xad
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3116c
call fcn.00a5b730
mov dword [esp + 8], 0x449
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31436
call fcn.00a5b730
mov dword [esp + 8], 0x449
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31428
call fcn.00a5b730
mov dword [esp + 8], 0xae
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31148
call fcn.00a5b730
mov dword [esp + 8], 0xad
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3116c
call fcn.00a5b730
mov dword [esp + 8], 0xac
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3118d
call fcn.00a5b730
mov dword [esp + 8], 0xab
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd311a9
call fcn.00a5b730
mov dword [esp + 8], 0xae
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31148
call fcn.00a5b730
mov dword [esp + 8], 0xad
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3116c
call fcn.00a5b730
mov dword [esp + 8], 0xac
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3118d
call fcn.00a5b730
mov dword [esp + 8], 0xab
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd311a9
call fcn.00a5b730
mov dword [esp + 8], 0xaa
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310c8
call fcn.00a5b730
mov dword [esp + 8], 0xa9
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310ec
call fcn.00a5b730
mov dword [esp + 8], 0xa8
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3110d
call fcn.00a5b730
mov dword [esp + 8], 0xa7
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31129
call fcn.00a5b730
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0x5ac]
sar esi, 2
mov edx, dword [ebp + 0x144]
mov ebp, dword [esp + 0x5c0]
mov ecx, dword [esp + 0x57c]
mov dword [esp + 8], ebp
mov eax, dword [ebx]
mov ebx, edi
mov edi, dword [esp + 0xb8]
sar ebx, 2
add eax, esi
imul ebp, ebx
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [edi + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0x5c0]
mov edx, dword [edi + 0x144]
mov dword [esp + 8], eax
mov edi, dword [esp + 0x5ac]
mov ecx, dword [edi]
add ecx, esi
lea eax, [ecx + ebp + 8]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x57c]
mov edi, dword [ecx + 0x58]
add edi, 8
mov dword [esp], edi
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0x5ac]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x5c0]
mov dword [esp + 8], ecx
imul ebx, ecx
mov eax, dword [edi]
mov edi, ecx
mov ecx, dword [esp + 0x57c]
add eax, esi
shl edi, 3
add ebx, eax
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov eax, dword [ebx + 0x58]
add eax, edi
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0xb8]
mov ebx, dword [esp + 0x5c0]
mov edx, dword [eax + 0x144]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x5ac]
add esi, dword [ebx]
add esi, ebp
mov ebp, dword [esp + 0x57c]
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
mov esi, eax
mov ecx, dword [eax + 0x58]
add ecx, edi
add ecx, 8
mov dword [esp], ecx
call dword [edx + ebp*4 + 0x40]
mov edx, dword [esi + 0x148]
mov esi, dword [esp + 0x5c0]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x584]
mov ebp, dword [esp + 0x5c0]
mov eax, dword [ebx + 0x20]
mov ebx, dword [esp + 0x580]
sar esi, 2
sar ebx, 2
add eax, esi
mov ecx, dword [esp + 0xb8]
imul ebp, ebx
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
mov dword [esp], eax
mov eax, dword [esp + 0x578]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x5c0]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x5ac]
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0xb8]
add eax, esi
lea eax, [eax + ebp + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
add eax, 8
mov dword [esp], eax
mov eax, dword [esp + 0x578]
call dword [edx + eax*4 + 0x40]
mov eax, dword [esp + 0x5c0]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x5ac]
imul ebx, eax
mov eax, dword [ecx + 0x20]
add eax, esi
add ebx, eax
mov eax, dword [esp + 0x578]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov ecx, dword [ebx + 0x58]
add ecx, edi
mov dword [esp], ecx
call dword [edx + eax*4 + 0x40]
mov edx, dword [esp + 0x5c0]
mov eax, dword [ebx + 0x148]
mov ecx, dword [esp + 0x5ac]
mov dword [esp + 8], edx
add esi, dword [ecx + 0x20]
add esi, ebp
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
add edi, dword [ebx + 0x58]
add edi, 8
mov dword [esp], edi
mov edi, dword [esp + 0x578]
call dword [eax + edi*4 + 0x40]
jmp 0x904558
sub ecx, ebx
mov ebp, dword [esp + 0xb8]
imul ecx, dword [ebp + 0xc]
mov eax, ecx
cdq
idiv ebx
mov dword [esp + 0x580], eax
jmp 0x9043bb
mov edx, ecx
mov eax, dword [esp + 0xb8]
sub edx, ebx
mov ebp, edx
imul ebp, dword [eax + 8]
mov eax, ebp
cdq
idiv ebx
mov dword [esp + 0x584], eax
jmp 0x904399
sub ecx, ebx
mov dword [esp + 0x59c], 0
mov dword [esp + 0x598], ecx
mov ecx, dword [esp + 0x5b8]
add ecx, 4
mov dword [esp + 0x594], ecx
mov ebp, dword [esp + 0x59c]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x5b4]
mov esi, dword [esp + 0x5b0]
mov edi, dword [esp + 0x5b4]
add edx, dword [eax + ebp*8 + 0x28]
add esi, dword [eax + ebp*8 + 0x2c]
test edi, edi
mov dword [esp + 0x38], edx
je 0x908afb
mov ebp, edx
mov edx, dword [esp + 0x59c]
sub ebp, dword [eax + edx*8 + 8]
mov eax, dword [esp + 0x5b0]
test eax, eax
je 0x908ac8
mov edi, esi
mov edx, dword [esp + 0x59c]
mov ecx, dword [esp + 0xb8]
sub edi, dword [ecx + edx*8 + 0xc]
mov eax, dword [esp + 0x5a0]
movzx ecx, byte [esp + 0x84]
mov edx, dword [esp + 0x5a0]
and eax, esi
and edx, dword [esp + 0x38]
shl eax, cl
add edx, eax
mov eax, dword [esp + 0x5a0]
and eax, edi
mov dword [esp + 0x590], edx
mov edx, dword [esp + 0x5a0]
shl eax, cl
and edx, ebp
mov ecx, dword [esp + 0x59c]
add edx, eax
sar ecx, 1
mov dword [esp + 0x58c], edx
mov edx, dword [esp + 0x59c]
imul ecx, dword [esp + 0x5c0]
and edx, 1
add edx, ecx
mov ecx, dword [esp + 0xb8]
mov eax, dword [ecx + 0x58]
lea edx, [eax + edx*8]
mov eax, dword [esp + 0x5b8]
test eax, eax
mov dword [esp + 0x588], edx
je 0x908a20
mov eax, dword [esp + 0x5c0]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x5ac]
mov dword [esp + 8], eax
sar dword [esp + 0x38], 2
sar esi, 2
mov ecx, dword [ecx]
imul esi, eax
mov eax, dword [esp + 0x588]
add dword [esp + 0x38], ecx
mov dword [esp], eax
sar ebp, 2
mov ecx, dword [esp + 0x38]
sar edi, 2
add ecx, esi
mov esi, dword [esp + 0x590]
mov dword [esp + 4], ecx
call dword [edx + esi*4 + 0x40]
mov esi, dword [esp + 0x5c0]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov eax, dword [esp + 0x5ac]
mov dword [esp + 8], esi
add ebp, dword [eax + 0x20]
imul edi, esi
mov esi, dword [esp + 0x58c]
lea ecx, [ebp + edi]
mov ebp, dword [esp + 0x588]
mov dword [esp + 4], ecx
mov dword [esp], ebp
call dword [edx + esi*4 + 0x40]
add dword [esp + 0x59c], 1
cmp dword [esp + 0x59c], 3
jle 0x9081ce
jmp 0x904558
mov dword [esp + 8], 0x44c
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd317d9
call fcn.00a5b730
mov dword [esp + 8], 0x44d
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd317f3
call fcn.00a5b730
mov dword [esp + 8], 0x44d
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31771
call fcn.00a5b730
mov dword [esp + 8], 0xae
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31148
call fcn.00a5b730
mov dword [esp + 8], 0xad
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3116c
call fcn.00a5b730
mov dword [esp + 8], 0xac
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3118d
call fcn.00a5b730
mov dword [esp + 8], 0xab
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd311a9
call fcn.00a5b730
mov dword [esp + 8], 0xae
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31148
call fcn.00a5b730
mov dword [esp + 8], 0xad
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3116c
call fcn.00a5b730
mov dword [esp + 8], 0xac
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3118d
call fcn.00a5b730
mov dword [esp + 8], 0xab
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd311a9
call fcn.00a5b730
mov dword [esp + 8], 0xaa
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310c8
call fcn.00a5b730
mov dword [esp + 8], 0xa9
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310ec
call fcn.00a5b730
mov dword [esp + 8], 0xa8
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3110d
call fcn.00a5b730
mov dword [esp + 8], 0xa7
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31129
call fcn.00a5b730
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0x66c]
sar esi, 2
mov edx, dword [ebp + 0x144]
mov ebp, dword [esp + 0x680]
mov ecx, dword [esp + 0x63c]
mov dword [esp + 8], ebp
mov eax, dword [ebx]
mov ebx, edi
mov edi, dword [esp + 0xb8]
sar ebx, 2
add eax, esi
imul ebp, ebx
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [edi + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0x680]
mov edx, dword [edi + 0x144]
mov dword [esp + 8], eax
mov edi, dword [esp + 0x66c]
mov ecx, dword [edi]
add ecx, esi
lea eax, [ecx + ebp + 8]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x63c]
mov edi, dword [ecx + 0x58]
add edi, 8
mov dword [esp], edi
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0x66c]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x680]
mov dword [esp + 8], ecx
imul ebx, ecx
mov eax, dword [edi]
mov edi, ecx
mov ecx, dword [esp + 0x63c]
add eax, esi
shl edi, 3
add ebx, eax
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov eax, dword [ebx + 0x58]
add eax, edi
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0xb8]
mov ebx, dword [esp + 0x680]
mov edx, dword [eax + 0x144]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x66c]
add esi, dword [ebx]
add esi, ebp
mov ebp, dword [esp + 0x63c]
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
mov esi, eax
mov ecx, dword [eax + 0x58]
add ecx, edi
add ecx, 8
mov dword [esp], ecx
call dword [edx + ebp*4 + 0x40]
mov edx, dword [esi + 0x148]
mov esi, dword [esp + 0x680]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x644]
mov ebp, dword [esp + 0x680]
mov eax, dword [ebx + 0x20]
mov ebx, dword [esp + 0x640]
sar esi, 2
sar ebx, 2
add eax, esi
mov ecx, dword [esp + 0xb8]
imul ebp, ebx
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
mov dword [esp], eax
mov eax, dword [esp + 0x638]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x680]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x66c]
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0xb8]
add eax, esi
lea eax, [eax + ebp + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
add eax, 8
mov dword [esp], eax
mov eax, dword [esp + 0x638]
call dword [edx + eax*4 + 0x40]
mov eax, dword [esp + 0x680]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x66c]
imul ebx, eax
mov eax, dword [ecx + 0x20]
add eax, esi
add ebx, eax
mov eax, dword [esp + 0x638]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov ecx, dword [ebx + 0x58]
add ecx, edi
mov dword [esp], ecx
call dword [edx + eax*4 + 0x40]
mov edx, dword [esp + 0x680]
mov eax, dword [ebx + 0x148]
mov ecx, dword [esp + 0x66c]
mov dword [esp + 8], edx
add esi, dword [ecx + 0x20]
add esi, ebp
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
add edi, dword [ebx + 0x58]
add edi, 8
mov dword [esp], edi
mov edi, dword [esp + 0x638]
call dword [eax + edi*4 + 0x40]
jmp 0x901ec3
sub ecx, ebx
mov ebp, dword [esp + 0xb8]
imul ecx, dword [ebp + 0xc]
mov eax, ecx
cdq
idiv ebx
mov dword [esp + 0x640], eax
jmp 0x901d26
mov edx, ecx
mov eax, dword [esp + 0xb8]
sub edx, ebx
mov ebp, edx
imul ebp, dword [eax + 8]
mov eax, ebp
cdq
idiv ebx
mov dword [esp + 0x644], eax
jmp 0x901d04
mov ebp, dword [esp + 0x678]
sub ecx, ebx
mov dword [esp + 0x65c], 0
add ebp, 4
mov dword [esp + 0x658], ecx
mov dword [esp + 0x654], ebp
mov edi, dword [esp + 0x65c]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x674]
mov esi, dword [esp + 0x670]
mov ecx, dword [esp + 0x674]
add edx, dword [eax + edi*8 + 0x28]
add esi, dword [eax + edi*8 + 0x2c]
test ecx, ecx
mov dword [esp + 0x38], edx
je 0x90918c
mov ebp, edx
mov edx, dword [esp + 0x65c]
sub ebp, dword [eax + edx*8 + 8]
mov eax, dword [esp + 0x670]
test eax, eax
je 0x909159
mov edi, esi
mov edx, dword [esp + 0x65c]
mov ecx, dword [esp + 0xb8]
sub edi, dword [ecx + edx*8 + 0xc]
mov eax, dword [esp + 0x660]
movzx ecx, byte [esp + 0xa8]
mov edx, dword [esp + 0x660]
and eax, esi
and edx, dword [esp + 0x38]
shl eax, cl
add edx, eax
mov eax, dword [esp + 0x660]
and eax, edi
mov dword [esp + 0x650], edx
mov edx, dword [esp + 0x660]
shl eax, cl
and edx, ebp
mov ecx, dword [esp + 0x65c]
add edx, eax
sar ecx, 1
mov dword [esp + 0x64c], edx
mov edx, dword [esp + 0x65c]
imul ecx, dword [esp + 0x680]
and edx, 1
add edx, ecx
mov ecx, dword [esp + 0xb8]
mov eax, dword [ecx + 0x58]
lea edx, [eax + edx*8]
mov eax, dword [esp + 0x678]
test eax, eax
mov dword [esp + 0x648], edx
je 0x9090b1
mov eax, dword [esp + 0x680]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x66c]
mov dword [esp + 8], eax
sar dword [esp + 0x38], 2
sar esi, 2
mov ecx, dword [ecx]
imul esi, eax
mov eax, dword [esp + 0x648]
add dword [esp + 0x38], ecx
mov dword [esp], eax
sar ebp, 2
mov ecx, dword [esp + 0x38]
sar edi, 2
add ecx, esi
mov esi, dword [esp + 0x650]
mov dword [esp + 4], ecx
call dword [edx + esi*4 + 0x40]
mov esi, dword [esp + 0x680]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov eax, dword [esp + 0x66c]
mov dword [esp + 8], esi
add ebp, dword [eax + 0x20]
imul edi, esi
mov esi, dword [esp + 0x64c]
lea ecx, [ebp + edi]
mov ebp, dword [esp + 0x648]
mov dword [esp + 4], ecx
mov dword [esp], ebp
call dword [edx + esi*4 + 0x40]
add dword [esp + 0x65c], 1
cmp dword [esp + 0x65c], 3
jle 0x9087aa
jmp 0x901ec3
mov dword [esp + 8], 0xa8
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3110d
call fcn.00a5b730
mov dword [esp + 8], 0xa7
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31129
call fcn.00a5b730
mov dword [esp + 8], 0xa8
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3110d
call fcn.00a5b730
mov dword [esp + 8], 0xa7
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31129
call fcn.00a5b730
mov dword [esp + 8], 0x44c
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd3178b
call fcn.00a5b730
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x5ac]
sar dword [esp + 0x38], 1
mov edx, dword [ecx + 0x13c]
mov ecx, dword [esp + 0x5c0]
mov dword [esp + 0xc], 8
mov dword [esp + 8], ecx
sar esi, 1
sar ebp, 1
mov eax, dword [eax]
imul esi, ecx
mov ecx, dword [esp + 0x588]
add dword [esp + 0x38], eax
mov dword [esp], ecx
sar edi, 1
mov eax, dword [esp + 0x38]
add eax, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x590]
call dword [edx + eax*4 + 0x10]
mov esi, dword [esp + 0xb8]
mov eax, dword [esp + 0x5c0]
mov edx, dword [esi + 0x140]
mov ecx, dword [esp + 0x5ac]
mov dword [esp + 0xc], 8
mov dword [esp + 8], eax
imul edi, eax
add ebp, dword [ecx + 0x20]
lea esi, [ebp + edi]
mov ebp, dword [esp + 0x588]
mov edi, dword [esp + 0x58c]
mov dword [esp + 4], esi
mov dword [esp], ebp
call dword [edx + edi*4 + 0x10]
jmp 0x908349
mov ecx, dword [esp + 0x59c]
mov edi, dword [esp + 0xb8]
mov eax, dword [esp + 0x598]
imul eax, dword [edi + ecx*8 + 0xc]
cdq
idiv ebx
mov edx, ecx
movzx ecx, byte [esp + 0x594]
sar edx, 1
shl edx, cl
lea edi, [eax + edx]
jmp 0x908235
mov edi, dword [esp + 0x59c]
mov ebp, dword [esp + 0xb8]
mov eax, dword [esp + 0x598]
imul eax, dword [ebp + edi*8 + 8]
movzx ecx, byte [esp + 0x594]
cdq
idiv ebx
mov edx, edi
and edx, 1
shl edx, cl
lea ebp, [eax + edx]
jmp 0x908212
sub ecx, dword [esp + 0x734]
mov ebp, dword [esp + 0xb8]
imul ecx, dword [ebp + 0xc]
mov eax, ecx
cdq
idiv dword [esp + 0x734]
mov dword [esp + 0x710], eax
jmp 0x8fe5c9
mov edx, ecx
mov eax, dword [esp + 0xb8]
sub edx, dword [esp + 0x734]
mov ebp, edx
imul ebp, dword [eax + 8]
mov eax, ebp
cdq
idiv dword [esp + 0x734]
mov dword [esp + 0x714], eax
jmp 0x8fe5a7
mov eax, dword [esp + 0x74c]
sub ecx, ebp
mov dword [esp + 0x72c], 0
add eax, 4
mov dword [esp + 0x728], ecx
mov dword [esp + 0x724], eax
jmp 0x908f39
sub ebp, dword [edi + eax*8 + 8]
mov eax, dword [esp + 0x744]
test eax, eax
je 0x90905d
mov edi, esi
mov edx, dword [esp + 0x72c]
mov ecx, dword [esp + 0xb8]
sub edi, dword [ecx + edx*8 + 0xc]
mov eax, dword [esp + 0x730]
mov ecx, ebx
mov edx, dword [esp + 0x730]
and eax, esi
and edx, dword [esp + 0x38]
shl eax, cl
add edx, eax
mov eax, dword [esp + 0x730]
and eax, edi
mov dword [esp + 0x720], edx
mov edx, dword [esp + 0x730]
shl eax, cl
and edx, ebp
mov ecx, dword [esp + 0x72c]
add edx, eax
sar ecx, 1
mov dword [esp + 0x71c], edx
mov edx, dword [esp + 0x72c]
imul ecx, dword [esp + 0x754]
and edx, 1
add edx, ecx
mov ecx, dword [esp + 0xb8]
mov eax, dword [ecx + 0x58]
lea edx, [eax + edx*8]
mov eax, dword [esp + 0x74c]
test eax, eax
mov dword [esp + 0x718], edx
je 0x908fb5
mov esi, dword [esp + 0x72c]
mov edi, dword [esp + 0xb8]
mov ebp, dword [esp + 0x748]
add ebp, dword [edi + esi*8 + 0x28]
mov eax, dword [esp + 0x72c]
mov esi, dword [esp + 0x744]
mov edx, dword [esp + 0x748]
add esi, dword [edi + eax*8 + 0x2c]
mov dword [esp + 0x38], ebp
test edx, edx
jne 0x908ded
mov edi, dword [esp + 0x72c]
mov ebp, dword [esp + 0xb8]
mov eax, dword [esp + 0x728]
imul eax, dword [ebp + edi*8 + 8]
mov edi, dword [esp + 0x72c]
movzx ecx, byte [esp + 0x724]
cdq
and edi, 1
idiv dword [esp + 0x734]
shl edi, cl
lea ebp, [eax + edi]
jmp 0x908df1
mov ecx, dword [esp + 0x72c]
mov edi, dword [esp + 0xb8]
mov eax, dword [esp + 0x728]
imul eax, dword [edi + ecx*8 + 0xc]
cdq
idiv dword [esp + 0x734]
mov edx, ecx
movzx ecx, byte [esp + 0x724]
sar edx, 1
shl edx, cl
lea edi, [eax + edx]
jmp 0x908e14
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x66c]
sar dword [esp + 0x38], 1
mov edx, dword [ecx + 0x13c]
mov ecx, dword [esp + 0x680]
mov dword [esp + 0xc], 8
mov dword [esp + 8], ecx
sar esi, 1
sar ebp, 1
mov eax, dword [eax]
imul esi, ecx
mov ecx, dword [esp + 0x648]
add dword [esp + 0x38], eax
mov dword [esp], ecx
sar edi, 1
mov eax, dword [esp + 0x38]
add eax, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x650]
call dword [edx + eax*4 + 0x10]
mov esi, dword [esp + 0xb8]
mov eax, dword [esp + 0x680]
mov edx, dword [esi + 0x140]
mov ecx, dword [esp + 0x66c]
mov dword [esp + 0xc], 8
mov dword [esp + 8], eax
imul edi, eax
add ebp, dword [ecx + 0x20]
lea esi, [ebp + edi]
mov ebp, dword [esp + 0x648]
mov edi, dword [esp + 0x64c]
mov dword [esp + 4], esi
mov dword [esp], ebp
call dword [edx + edi*4 + 0x10]
jmp 0x908925
mov ecx, dword [esp + 0x65c]
mov edi, dword [esp + 0xb8]
mov eax, dword [esp + 0x658]
imul eax, dword [edi + ecx*8 + 0xc]
cdq
idiv ebx
mov edx, ecx
movzx ecx, byte [esp + 0x654]
sar edx, 1
shl edx, cl
lea edi, [eax + edx]
jmp 0x908811
mov edi, dword [esp + 0x65c]
mov ebp, dword [esp + 0xb8]
mov eax, dword [esp + 0x658]
imul eax, dword [ebp + edi*8 + 8]
movzx ecx, byte [esp + 0x654]
cdq
idiv ebx
mov edx, edi
and edx, 1
shl edx, cl
lea ebp, [eax + edx]
jmp 0x9087ee
mov dword [esp + 8], 0x459
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31428
call fcn.00a5b730
mov dword [esp + 8], 0x44b
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31428
call fcn.00a5b730
mov dword [esp + 8], 0x44b
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31444
call fcn.00a5b730
mov dword [esp + 8], 0x44b
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31436
call fcn.00a5b730
mov dword [esp + 8], 0xae
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31148
call fcn.00a5b730
mov dword [esp + 8], 0xad
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3116c
call fcn.00a5b730
mov dword [esp + 8], 0xac
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3118d
call fcn.00a5b730
mov dword [esp + 8], 0xab
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd311a9
call fcn.00a5b730
mov dword [esp + 8], 0xaa
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310c8
call fcn.00a5b730
mov dword [esp + 8], 0xa9
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310ec
call fcn.00a5b730
mov dword [esp + 8], 0xa8
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3110d
call fcn.00a5b730
mov dword [esp + 8], 0xa7
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31129
call fcn.00a5b730
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0x60c]
sar esi, 2
mov edx, dword [ebp + 0x144]
mov ebp, dword [esp + 0x620]
mov ecx, dword [esp + 0x5dc]
mov dword [esp + 8], ebp
mov eax, dword [ebx]
mov ebx, edi
mov edi, dword [esp + 0xb8]
sar ebx, 2
add eax, esi
imul ebp, ebx
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [edi + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0x620]
mov edx, dword [edi + 0x144]
mov dword [esp + 8], eax
mov edi, dword [esp + 0x60c]
mov ecx, dword [edi]
add ecx, esi
lea eax, [ecx + ebp + 8]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x5dc]
mov edi, dword [ecx + 0x58]
add edi, 8
mov dword [esp], edi
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0x60c]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x620]
mov dword [esp + 8], ecx
imul ebx, ecx
mov eax, dword [edi]
mov edi, ecx
mov ecx, dword [esp + 0x5dc]
add eax, esi
shl edi, 3
add ebx, eax
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov eax, dword [ebx + 0x58]
add eax, edi
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0xb8]
mov ebx, dword [esp + 0x620]
mov edx, dword [eax + 0x144]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x60c]
add esi, dword [ebx]
add esi, ebp
mov ebp, dword [esp + 0x5dc]
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
mov esi, eax
mov ecx, dword [eax + 0x58]
add ecx, edi
add ecx, 8
mov dword [esp], ecx
call dword [edx + ebp*4 + 0x40]
mov edx, dword [esi + 0x148]
mov esi, dword [esp + 0x620]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x5e4]
mov ebp, dword [esp + 0x620]
mov eax, dword [ebx + 0x20]
mov ebx, dword [esp + 0x5e0]
sar esi, 2
sar ebx, 2
add eax, esi
mov ecx, dword [esp + 0xb8]
imul ebp, ebx
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
mov dword [esp], eax
mov eax, dword [esp + 0x5d8]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x620]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x60c]
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0xb8]
add eax, esi
lea eax, [eax + ebp + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
add eax, 8
mov dword [esp], eax
mov eax, dword [esp + 0x5d8]
call dword [edx + eax*4 + 0x40]
mov eax, dword [esp + 0x620]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x60c]
imul ebx, eax
mov eax, dword [ecx + 0x20]
add eax, esi
add ebx, eax
mov eax, dword [esp + 0x5d8]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov ecx, dword [ebx + 0x58]
add ecx, edi
mov dword [esp], ecx
call dword [edx + eax*4 + 0x40]
mov edx, dword [esp + 0x620]
mov eax, dword [ebx + 0x148]
mov ecx, dword [esp + 0x60c]
mov dword [esp + 8], edx
add esi, dword [ecx + 0x20]
add esi, ebp
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
add edi, dword [ebx + 0x58]
add edi, 8
mov dword [esp], edi
mov edi, dword [esp + 0x5d8]
call dword [eax + edi*4 + 0x40]
jmp 0x90428a
sub ecx, ebx
mov ebp, dword [esp + 0xb8]
imul ecx, dword [ebp + 0xc]
mov eax, ecx
cdq
idiv ebx
mov dword [esp + 0x5e0], eax
jmp 0x9040ed
mov edx, ecx
mov eax, dword [esp + 0xb8]
sub edx, ebx
mov ebp, edx
imul ebp, dword [eax + 8]
mov eax, ebp
cdq
idiv ebx
mov dword [esp + 0x5e4], eax
jmp 0x9040cb
sub ecx, ebx
mov dword [esp + 0x5fc], 0
mov dword [esp + 0x5f8], ecx
mov ecx, dword [esp + 0x618]
add ecx, 4
mov dword [esp + 0x5f4], ecx
mov ebp, dword [esp + 0x5fc]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x614]
mov esi, dword [esp + 0x610]
mov edi, dword [esp + 0x614]
add edx, dword [eax + ebp*8 + 0x28]
add esi, dword [eax + ebp*8 + 0x2c]
test edi, edi
mov dword [esp + 0x38], edx
je 0x909b56
mov ebp, edx
mov edx, dword [esp + 0x5fc]
sub ebp, dword [eax + edx*8 + 8]
mov eax, dword [esp + 0x610]
test eax, eax
je 0x909b23
mov edi, esi
mov edx, dword [esp + 0x5fc]
mov ecx, dword [esp + 0xb8]
sub edi, dword [ecx + edx*8 + 0xc]
mov eax, dword [esp + 0x600]
movzx ecx, byte [esp + 0x9c]
mov edx, dword [esp + 0x600]
and eax, esi
and edx, dword [esp + 0x38]
shl eax, cl
add edx, eax
mov eax, dword [esp + 0x600]
and eax, edi
mov dword [esp + 0x5f0], edx
mov edx, dword [esp + 0x600]
shl eax, cl
and edx, ebp
mov ecx, dword [esp + 0x5fc]
add edx, eax
sar ecx, 1
mov dword [esp + 0x5ec], edx
mov edx, dword [esp + 0x5fc]
imul ecx, dword [esp + 0x620]
and edx, 1
add edx, ecx
mov ecx, dword [esp + 0xb8]
mov eax, dword [ecx + 0x58]
lea edx, [eax + edx*8]
mov eax, dword [esp + 0x618]
test eax, eax
mov dword [esp + 0x5e8], edx
je 0x909a7b
mov eax, dword [esp + 0x620]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x60c]
mov dword [esp + 8], eax
sar dword [esp + 0x38], 2
sar esi, 2
mov ecx, dword [ecx]
imul esi, eax
mov eax, dword [esp + 0x5e8]
add dword [esp + 0x38], ecx
mov dword [esp], eax
sar ebp, 2
mov ecx, dword [esp + 0x38]
sar edi, 2
add ecx, esi
mov esi, dword [esp + 0x5f0]
mov dword [esp + 4], ecx
call dword [edx + esi*4 + 0x40]
mov esi, dword [esp + 0x620]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov eax, dword [esp + 0x60c]
mov dword [esp + 8], esi
add ebp, dword [eax + 0x20]
imul edi, esi
mov esi, dword [esp + 0x5ec]
lea ecx, [ebp + edi]
mov ebp, dword [esp + 0x5e8]
mov dword [esp + 4], ecx
mov dword [esp], ebp
call dword [edx + esi*4 + 0x40]
add dword [esp + 0x5fc], 1
cmp dword [esp + 0x5fc], 3
jle 0x9095b2
jmp 0x90428a
mov dword [esp + 8], 0xa8
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3110d
call fcn.00a5b730
mov dword [esp + 8], 0xae
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31148
call fcn.00a5b730
mov dword [esp + 8], 0xad
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3116c
call fcn.00a5b730
mov ebp, dword [esp + 0xb14]
mov eax, dword [esp + 0x560]
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], eax
mov ebp, dword [esp + 0x560]
mov eax, dword [edx + 0xe8]
imul ebp, edi
add eax, esi
add eax, ebp
mov ebp, dword [esp + 0xaf0]
mov dword [esp + 8], eax
mov edx, dword [ecx + 0xa8]
mov dword [esp], ebp
mov dword [esp + 4], edx
call dword [esp + 0xa14]
test ebx, ebx
mov dword [esp + 0x544], eax
je 0x905488
mov eax, esi
mov ebp, edi
mov edx, dword [esp + 0xb10]
and eax, 1
and ebp, 1
shl edx, 4
lea ebx, [eax + ebp*2]
mov ebp, dword [esp + 0x560]
mov ecx, dword [esp + 0xb8]
lea ebx, [edx + ebx*4]
shl ebp, 4
mov eax, dword [esp + 0x55c]
mov edx, ebx
add ebp, dword [ecx + 0x58]
sar esi, 1
add edx, dword [ecx + 0x13c]
mov ecx, dword [esp + 0xb14]
mov dword [esp + 8], eax
sar ecx, 1
sar edi, 1
mov dword [esp + 0xc], ecx
mov dword [esp + 0x50c], ecx
mov ecx, dword [esp + 0x54c]
mov eax, dword [ecx + 4]
imul edi, dword [esp + 0x55c]
mov dword [esp], ebp
add eax, esi
add eax, edi
mov dword [esp + 4], eax
call dword [edx + 0x10]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x50c]
mov ecx, dword [esp + 0x55c]
add ebx, dword [eax + 0x13c]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov eax, dword [esp + 0x54c]
add esi, dword [eax + 8]
add esi, edi
mov dword [esp + 4], esi
lea esi, [ebp + 8]
mov dword [esp], esi
call dword [ebx + 0x10]
mov edx, dword [esp + 0x50c]
mov ecx, dword [esp + 0x55c]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ecx
mov ebx, dword [esp + 0x548]
mov edi, dword [ebx + 4]
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov edi, dword [esp + 0xaf0]
mov dword [esp], edi
call dword [esp + 0xa10]
mov ebx, dword [esp + 0x544]
mov ebp, dword [esp + 0x50c]
add ebx, eax
mov eax, dword [esp + 0x55c]
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x548]
mov ecx, dword [edx + 8]
mov dword [esp + 4], esi
mov dword [esp], edi
mov dword [esp + 8], ecx
call dword [esp + 0xa10]
add ebx, eax
mov dword [esp + 0x544], ebx
jmp 0x905488
mov dword [esp + 8], 0x44e
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31841
call fcn.00a5b730
mov dword [esp + 8], 0x44d
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd3180d
call fcn.00a5b730
mov dword [esp + 8], 0x44d
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31827
call fcn.00a5b730
mov dword [esp + 8], 0xae
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31148
call fcn.00a5b730
mov dword [esp + 8], 0xad
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3116c
call fcn.00a5b730
mov dword [esp + 8], 0xac
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3118d
call fcn.00a5b730
mov dword [esp + 8], 0xab
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd311a9
call fcn.00a5b730
mov dword [esp + 8], 0xac
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3118d
call fcn.00a5b730
mov dword [esp + 8], 0xab
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd311a9
call fcn.00a5b730
mov dword [esp + 8], 0xaa
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310c8
call fcn.00a5b730
mov dword [esp + 8], 0xa9
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310ec
call fcn.00a5b730
mov dword [esp + 8], 0xa7
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31129
call fcn.00a5b730
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x60c]
sar dword [esp + 0x38], 1
mov edx, dword [ecx + 0x13c]
mov ecx, dword [esp + 0x620]
mov dword [esp + 0xc], 8
mov dword [esp + 8], ecx
sar esi, 1
sar ebp, 1
mov eax, dword [eax]
imul esi, ecx
mov ecx, dword [esp + 0x5e8]
add dword [esp + 0x38], eax
mov dword [esp], ecx
sar edi, 1
mov eax, dword [esp + 0x38]
add eax, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x5f0]
call dword [edx + eax*4 + 0x10]
mov esi, dword [esp + 0xb8]
mov eax, dword [esp + 0x620]
mov edx, dword [esi + 0x140]
mov ecx, dword [esp + 0x60c]
mov dword [esp + 0xc], 8
mov dword [esp + 8], eax
imul edi, eax
add ebp, dword [ecx + 0x20]
lea esi, [ebp + edi]
mov ebp, dword [esp + 0x5e8]
mov edi, dword [esp + 0x5ec]
mov dword [esp + 4], esi
mov dword [esp], ebp
call dword [edx + edi*4 + 0x10]
jmp 0x90972d
mov ecx, dword [esp + 0x5fc]
mov edi, dword [esp + 0xb8]
mov eax, dword [esp + 0x5f8]
imul eax, dword [edi + ecx*8 + 0xc]
cdq
idiv ebx
mov edx, ecx
movzx ecx, byte [esp + 0x5f4]
sar edx, 1
shl edx, cl
lea edi, [eax + edx]
jmp 0x909619
mov edi, dword [esp + 0x5fc]
mov ebp, dword [esp + 0xb8]
mov eax, dword [esp + 0x5f8]
imul eax, dword [ebp + edi*8 + 8]
movzx ecx, byte [esp + 0x5f4]
cdq
idiv ebx
mov edx, edi
and edx, 1
shl edx, cl
lea ebp, [eax + edx]
jmp 0x9095f6
mov dword [esp + 8], 0x44c
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd317a5
call fcn.00a5b730
mov dword [esp + 8], 0x44c
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd317bf
call fcn.00a5b730
mov dword [esp + 8], 0xac
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3118d
call fcn.00a5b730
mov dword [esp + 8], 0xab
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd311a9
call fcn.00a5b730
mov dword [esp + 8], 0xaa
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310c8
call fcn.00a5b730
mov dword [esp + 8], 0xa9
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310ec
call fcn.00a5b730
mov dword [esp + 8], 0xae
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31148
call fcn.00a5b730
mov dword [esp + 8], 0x456
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31452
call fcn.00a5b730
mov dword [esp + 8], 0x456
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31444
call fcn.00a5b730
mov dword [esp + 8], 0x456
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31436
call fcn.00a5b730
mov dword [esp + 8], 0x453
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31452
call fcn.00a5b730
mov dword [esp + 8], 0x453
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31444
call fcn.00a5b730
mov dword [esp + 8], 0x453
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31436
call fcn.00a5b730
mov dword [esp + 8], 0x453
mov dword [esp + 4], 0xd30faf
mov dword [esp], 0xd31428
call fcn.00a5b730
mov dword [esp + 8], 0xaa
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310c8
call fcn.00a5b730
mov dword [esp + 8], 0xa9
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310ec
call fcn.00a5b730
mov dword [esp + 8], 0xa8
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3110d
call fcn.00a5b730
mov dword [esp + 8], 0xa7
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31129
call fcn.00a5b730
mov dword [esp + 8], 0xae
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31148
call fcn.00a5b730
mov dword [esp + 8], 0xad
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3116c
call fcn.00a5b730
mov dword [esp + 8], 0xac
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3118d
call fcn.00a5b730
mov dword [esp + 8], 0xab
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd311a9
call fcn.00a5b730
mov dword [esp + 8], 0xaa
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310c8
call fcn.00a5b730
mov dword [esp + 8], 0xa9
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd310ec
call fcn.00a5b730
mov dword [esp + 8], 0xa8
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd3110d
call fcn.00a5b730
mov dword [esp + 8], 0xa7
mov dword [esp + 4], 0xd30f4c
mov dword [esp], 0xd31129
call fcn.00a5b730
mov ebp, dword [esp + 0xb8]
mov ebx, dword [esp + 0x47c]
sar esi, 2
mov edx, dword [ebp + 0x144]
mov ebp, dword [esp + 0x490]
mov ecx, dword [esp + 0x44c]
mov dword [esp + 8], ebp
mov eax, dword [ebx]
mov ebx, edi
mov edi, dword [esp + 0xb8]
sar ebx, 2
add eax, esi
imul ebp, ebx
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [edi + 0x58]
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0x490]
mov edx, dword [edi + 0x144]
mov dword [esp + 8], eax
mov edi, dword [esp + 0x47c]
mov ecx, dword [edi]
add ecx, esi
lea eax, [ecx + ebp + 8]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44c]
mov edi, dword [ecx + 0x58]
add edi, 8
mov dword [esp], edi
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0x47c]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x490]
mov dword [esp + 8], ecx
imul ebx, ecx
mov eax, dword [edi]
mov edi, ecx
mov ecx, dword [esp + 0x44c]
add eax, esi
shl edi, 3
add ebx, eax
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov eax, dword [ebx + 0x58]
add eax, edi
mov dword [esp], eax
call dword [edx + ecx*4 + 0x40]
mov eax, dword [esp + 0xb8]
mov ebx, dword [esp + 0x490]
mov edx, dword [eax + 0x144]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x47c]
add esi, dword [ebx]
add esi, ebp
mov ebp, dword [esp + 0x44c]
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
mov esi, eax
mov ecx, dword [eax + 0x58]
add ecx, edi
add ecx, 8
mov dword [esp], ecx
call dword [edx + ebp*4 + 0x40]
mov edx, dword [esi + 0x148]
mov esi, dword [esp + 0x490]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x454]
mov ebp, dword [esp + 0x490]
mov eax, dword [ebx + 0x20]
mov ebx, dword [esp + 0x450]
sar esi, 2
sar ebx, 2
add eax, esi
mov ecx, dword [esp + 0xb8]
imul ebp, ebx
add ebx, 8
add eax, ebp
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
mov dword [esp], eax
mov eax, dword [esp + 0x448]
call dword [edx + eax*4 + 0x40]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x490]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x47c]
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0xb8]
add eax, esi
lea eax, [eax + ebp + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x58]
add eax, 8
mov dword [esp], eax
mov eax, dword [esp + 0x448]
call dword [edx + eax*4 + 0x40]
mov eax, dword [esp + 0x490]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x47c]
imul ebx, eax
mov eax, dword [ecx + 0x20]
add eax, esi
add ebx, eax
mov eax, dword [esp + 0x448]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xb8]
mov ecx, dword [ebx + 0x58]
add ecx, edi
mov dword [esp], ecx
call dword [edx + eax*4 + 0x40]
mov edx, dword [esp + 0x490]
mov eax, dword [ebx + 0x148]
mov ecx, dword [esp + 0x47c]
mov dword [esp + 8], edx
add esi, dword [ecx + 0x20]
add esi, ebp
lea esi, [esi + edi + 8]
mov dword [esp + 4], esi
add edi, dword [ebx + 0x58]
add edi, 8
mov dword [esp], edi
mov edi, dword [esp + 0x448]
call dword [eax + edi*4 + 0x40]
jmp 0x9028ce
sub ecx, ebx
mov ebp, dword [esp + 0xb8]
imul ecx, dword [ebp + 0xc]
mov eax, ecx
cdq
idiv ebx
mov dword [esp + 0x450], eax
jmp 0x902734
mov edx, ecx
mov eax, dword [esp + 0xb8]
sub edx, ebx
mov ebp, edx
imul ebp, dword [eax + 8]
mov eax, ebp
cdq
idiv ebx
mov dword [esp + 0x454], eax
jmp 0x902712
mov eax, dword [esp + 0x488]
sub ecx, ebx
mov dword [esp + 0x46c], 0
add eax, 4
mov dword [esp + 0x468], ecx
mov dword [esp + 0x464], eax
mov ebp, dword [esp + 0x46c]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x484]
mov esi, dword [esp + 0x480]
mov ecx, dword [esp + 0x484]
add edx, dword [eax + ebp*8 + 0x28]
add esi, dword [eax + ebp*8 + 0x2c]
test ecx, ecx
mov dword [esp + 0x38], edx
je 0x90a2cf
mov ebp, edx
mov edx, dword [esp + 0x46c]
sub ebp, dword [eax + edx*8 + 8]
mov eax, dword [esp + 0x480]
test eax, eax
je 0x90a3ab
mov edi, esi
mov edx, dword [esp + 0x46c]
mov ecx, dword [esp + 0xb8]
sub edi, dword [ecx + edx*8 + 0xc]
mov eax, dword [esp + 0x470]
movzx ecx, byte [esp + 0x68]
mov edx, dword [esp + 0x470]
and eax, esi
and edx, dword [esp + 0x38]
shl eax, cl
add edx, eax
mov eax, dword [esp + 0x470]
and eax, edi
mov dword [esp + 0x460], edx
mov edx, dword [esp + 0x470]
shl eax, cl
and edx, ebp
mov ecx, dword [esp + 0x46c]
add edx, eax
sar ecx, 1
mov dword [esp + 0x45c], edx
mov edx, dword [esp + 0x46c]
imul ecx, dword [esp + 0x490]
and edx, 1
add edx, ecx
mov ecx, dword [esp + 0xb8]
mov eax, dword [ecx + 0x58]
lea edx, [eax + edx*8]
mov eax, dword [esp + 0x488]
test eax, eax
mov dword [esp + 0x458], edx
je 0x90a303
mov eax, dword [esp + 0x490]
mov edx, dword [ecx + 0x144]
mov ecx, dword [esp + 0x47c]
mov dword [esp + 8], eax
sar dword [esp + 0x38], 2
sar esi, 2
mov ecx, dword [ecx]
imul esi, eax
mov eax, dword [esp + 0x458]
add dword [esp + 0x38], ecx
mov dword [esp], eax
sar ebp, 2
mov ecx, dword [esp + 0x38]
sar edi, 2
add ecx, esi
mov esi, dword [esp + 0x460]
mov dword [esp + 4], ecx
call dword [edx + esi*4 + 0x40]
mov esi, dword [esp + 0x490]
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x148]
mov eax, dword [esp + 0x47c]
mov dword [esp + 8], esi
add ebp, dword [eax + 0x20]
imul edi, esi
mov esi, dword [esp + 0x45c]
lea ecx, [ebp + edi]
mov ebp, dword [esp + 0x458]
mov dword [esp + 4], ecx
mov dword [esp], ebp
call dword [edx + esi*4 + 0x40]
add dword [esp + 0x46c], 1
cmp dword [esp + 0x46c], 3
jle 0x90a13c
jmp 0x9028ce
mov edi, dword [esp + 0x46c]
mov ebp, dword [esp + 0xb8]
mov eax, dword [esp + 0x468]
imul eax, dword [ebp + edi*8 + 8]
movzx ecx, byte [esp + 0x464]
cdq
idiv ebx
mov edx, edi
and edx, 1
shl edx, cl
lea ebp, [eax + edx]
jmp 0x90a180
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0x47c]
sar dword [esp + 0x38], 1
mov edx, dword [ecx + 0x13c]
mov ecx, dword [esp + 0x490]
mov dword [esp + 0xc], 8
mov dword [esp + 8], ecx
sar esi, 1
sar ebp, 1
mov eax, dword [eax]
imul esi, ecx
mov ecx, dword [esp + 0x458]
add dword [esp + 0x38], eax
mov dword [esp], ecx
sar edi, 1
mov eax, dword [esp + 0x38]
add eax, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x460]
call dword [edx + eax*4 + 0x10]
mov esi, dword [esp + 0xb8]
mov eax, dword [esp + 0x490]
mov edx, dword [esi + 0x140]
mov ecx, dword [esp + 0x47c]
mov dword [esp + 0xc], 8
mov dword [esp + 8], eax
imul edi, eax
add ebp, dword [ecx + 0x20]
lea esi, [ebp + edi]
mov ebp, dword [esp + 0x458]
mov edi, dword [esp + 0x45c]
mov dword [esp + 4], esi
mov dword [esp], ebp
call dword [edx + edi*4 + 0x10]
jmp 0x90a2b4
mov ecx, dword [esp + 0x46c]
mov edi, dword [esp + 0xb8]
mov eax, dword [esp + 0x468]
imul eax, dword [edi + ecx*8 + 0xc]
cdq
idiv ebx
mov edx, ecx
movzx ecx, byte [esp + 0x464]
sar edx, 1
shl edx, cl
lea edi, [eax + edx]
jmp 0x90a1a3