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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0x4b4
mov edi, dword [0x76e528]
test edi, edi
jle 0x58c7c5
xor esi, esi
mov ecx, 1
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], esi
mov dword [esp + 8], esi
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0x20]
mov ebx, dword [0x6c61b4]
mov edx, dword [0x6c61b0]
mov eax, dword [0x6c61a8]
imul ebx, edx
shl eax, 2
mov ecx, dword [0x6c6188]
mov dword [esp + 0x18], eax
cmp esi, dword [esp + 0x14]
jle 0x596707
mov eax, ecx
lea esi, [edx*4]
mov edi, dword [esp + 8]
sub eax, ebx
sub esi, dword [esp + 0x18]
inc edi
add eax, esi
mov dword [esp + 8], edi
shl edi, 2
cmp dword [eax + edi], 2
je 0x5966ef
mov esi, dword [esp + 8]
inc esi
mov dword [esp + 8], esi
lea edi, [esi*4]
cmp dword [eax + edi], 2
je 0x5966ef
mov dword [esp + 4], edx
mov dword [esp], ecx
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
inc esi
lea edi, [esi*4]
cmp dword [eax + edi], 2
jne 0x58c5a2
inc ecx
cmp ecx, edx
jl 0x58c593
mov dword [esp + 0x14], ecx
mov dword [esp + 8], esi
mov edx, dword [esp + 4]
mov ecx, dword [esp]
mov esi, dword [0x6c6a70]
lea edx, [edx + edx*4]
neg esi
neg edx
mov eax, dword [esp + 0x20]
add esi, eax
mov dword [esp + 0x1c], ebx
add ecx, edi
mov ebx, dword [0x6c6a50]
mov ebx, dword [ebx + esi*4]
mov dword [esp + 0x274], ebx
mov ebx, dword [0x6c6af0]
neg ebx
add ebx, eax
mov esi, dword [0x6c6ad0]
mov esi, dword [esi + ebx*4]
lea ebx, [esp + 0x278]
mov dword [ebx], esi
push ebx
lea esi, [esp + 0x278]
push esi
push 0x68fad0
push 0x68fad4
mov ebx, dword [esp + 0x2c]
add ebx, edx
sub ecx, ebx
sub ecx, dword [esp + 0x28]
mov edx, dword [0x6c6ac8]
neg edx
add edx, eax
mov ebx, dword [ecx]
mov ecx, dword [0x6c6aa8]
mov esi, dword [ecx + edx*4]
call fcn.00634b10
lea eax, [esp + 0x288]
push eax
lea edx, [esp + 0x288]
push edx
push 0x76e5a8
push 0x68fad4
call fcn.00634c60
add esp, 0x20
test ebx, ebx
jle 0x58c6d8
mov eax, 1
mov dword [esp + 0x24], esi
mov esi, eax
mov dword [esp + 0xc], edi
mov eax, dword [0x6c5c74]
lea ecx, [esp + 0x278]
push ecx
mov ecx, dword [0x6c6aa4]
lea edi, [esp + 0x278]
push edi
neg ecx
mov edi, esi
add ecx, dword [esp + 0x28]
neg eax
imul ecx, dword [0x6c6aa0]
sub edi, dword [0x6c6a98]
add ecx, dword [0x6c6a78]
add eax, dword [esp + 0x2c]
mov edx, dword [0x6c5c68]
neg edx
imul eax, dword [0x6c5c70]
add edx, dword [ecx + edi*4]
mov ecx, dword [0x6c5c48]
lea edx, [ecx + edx*8]
add eax, edx
push eax
push 0x68fad4
call fcn.00634c60
add esp, 0x10
inc esi
cmp esi, ebx
jle 0x58c668
mov edi, dword [esp + 0xc]
mov ecx, dword [0x6c61b0]
mov edx, dword [0x6c61b4]
imul edx, ecx
add edi, dword [0x6c6188]
lea ebx, [ecx + ecx*4]
add ebx, ecx
lea esi, [ecx*8]
neg ebx
sub ecx, esi
add ebx, edx
add edx, ecx
neg ebx
mov eax, dword [0x6c61a8]
add ebx, edi
shl eax, 2
sub edi, edx
sub edi, eax
sub ebx, eax
lea eax, [esp + 0x278]
mov edi, dword [edi]
mov dword [eax - 0x1c8], edi
push eax
mov ebx, dword [ebx]
lea edx, [esp + 0x278]
push edx
lea ecx, [esp + 0xb8]
push ecx
push 0x68fad4
call fcn.00634b10
add esp, 0x10
mov eax, dword [esp + 0xb0]
test eax, eax
jle 0x58c790
mov dword [esp + 0x28], eax
mov esi, 1
lea edi, [esp + 0x274]
mov edx, dword [0x6c5540]
lea eax, [esp + 0x278]
push eax
mov eax, esi
sub eax, dword [0x6c5560]
lea ecx, [edx + ebx*8 - 8]
push edi
lea edx, [ecx + eax*8]
push edx
push 0x68fad4
call fcn.00634c60
add esp, 0x10
inc esi
cmp esi, dword [esp + 0x28]
jle 0x58c75d
lea eax, [esp + 0x278]
push eax
lea edx, [esp + 0x278]
push edx
push 0x68fad4
call fcn.00634f40
add esp, 0xc
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
cmp eax, dword [esp + 0x10]
jle 0x58c514
call fcn.00635010
mov eax, dword [0x76e520]
mov dword [esp + 0x44], eax
test eax, eax
jle 0x58c86d
call fcn.00634f10
mov ebx, dword [0x6c6b40]
test ebx, ebx
jle 0x58c803
mov ecx, dword [0x6c6b28]
cmp ebx, 0x18
jle 0x5950d9
shl ebx, 2
push ebx
push 0
push ecx
call fcn.0062a5e0
add esp, 0xc
mov esi, dword [0x81ee44]
xor eax, eax
mov ecx, 1
test esi, esi
jle 0x5944f3
mov dword [esp + 0x28], eax
xor ebx, ebx
mov edi, ecx
mov ecx, dword [0x6c61b0]
mov edx, dword [0x6c61b4]
imul edx, ecx
lea eax, [edi + ecx]
mov ecx, dword [0x6c6188]
sub ecx, edx
sub eax, dword [0x6c61a8]
cmp dword [ecx + eax*4], 1
je 0x59427d
inc edi
cmp edi, esi
jle 0x58c820
mov eax, dword [esp + 0x28]
mov ecx, 1
mov edx, dword [0x76e520]
mov esi, dword [0x81ee44]
cmp eax, edx
jl 0x58c810
jmp 0x595135
mov esi, dword [0x81ee44]
test esi, esi
jle 0x58c9e2
mov ecx, dword [0x6c61b0]
mov dword [esp + 0x60], esi
mov esi, dword [0x6c61b4]
imul esi, ecx
lea edx, [ecx*4]
mov ebx, dword [0x6c61a8]
shl ebx, 2
mov edi, dword [0x6c6188]
sub edx, ebx
sub edi, esi
lea esi, [ecx*8]
add edx, edi
sub esi, ebx
mov dword [esp + 0x64], edx
lea edx, [ecx + ecx*2]
add esi, edi
lea eax, [edx + edx]
sub eax, ebx
add eax, edi
mov dword [esp + 0x40], eax
lea eax, [ecx + ecx*8]
mov dword [esp + 0x3c], esi
mov esi, eax
sub esi, ebx
add esi, edi
mov dword [esp + 0x38], esi
lea esi, [ecx + ecx*4]
shl edx, 2
add esi, esi
sub edx, ebx
lea ecx, [eax + ecx*4]
mov eax, dword [0x6c5560]
sub esi, ebx
sub ecx, ebx
add edx, edi
mov ebx, dword [0x6c5538]
add esi, edi
shl ebx, 3
add edi, ecx
shl eax, 3
mov dword [esp + 0x4c], edx
mov ecx, dword [0x6c5518]
mov edx, dword [0x6c5540]
sub ecx, ebx
mov dword [esp], 0
sub edx, eax
mov dword [esp + 0x48], esi
mov esi, dword [esp]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x50], edi
mov eax, dword [esp + 0x64]
cmp dword [eax + esi*4 + 4], 0
jne 0x58c9d7
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0x38]
mov ebx, dword [ecx + esi*4 + 4]
mov eax, dword [edx + esi*4 + 4]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x58], eax
mov edx, dword [edi + esi*4 + 4]
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x50]
mov dword [esp + 0x5c], ebx
mov ebx, dword [ecx + esi*4 + 4]
mov dword [esp + 0x54], ebx
mov eax, dword [eax + esi*4 + 4]
mov ebx, dword [edi + esi*4 + 4]
test edx, edx
jle 0x58c9a6
cmp edx, 0xc
jle 0x596223
shl edx, 3
push edx
mov edx, dword [esp + 0x30]
lea eax, [edx + eax*8]
push eax
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x64]
lea eax, [ecx + edi*8]
push eax
call fcn.0062a530
add esp, 0xc
test ebx, ebx
jle 0x58c9d7
cmp ebx, 0xc
jle 0x59615a
shl ebx, 3
push ebx
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x30]
lea ecx, [eax + edx*8]
push ecx
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x5c]
lea eax, [ebx + edi*8]
push eax
call fcn.0062a530
add esp, 0xc
inc esi
cmp esi, dword [esp + 0x60]
jb 0x58c92e
mov eax, dword [0x6c5be4]
mov edi, dword [0x6c5bdc]
mov dword [esp + 0x19c], eax
test edi, edi
jle 0x58cb0a
mov esi, dword [0x6c5bd0]
xor ebx, ebx
mov ecx, esi
and ecx, 0xfffffffc
mov dword [esp], eax
lea edx, [esi*8]
mov dword [esp + 0x14], edx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x18], ebx
mov ebx, eax
mov dword [esp + 0x1c], edi
test esi, esi
jle 0x58caf4
mov eax, dword [0x6c5bb8]
mov dword [esp + 0x10], eax
cmp esi, 0xc
jle 0x58ca8e
mov dword [esp + 4], esi
mov edx, eax
mov edi, dword [esp]
mov esi, dword [esp + 0x18]
mov eax, ebx
neg eax
add eax, edi
imul eax, dword [0x6c5be0]
push dword [esp + 0x14]
push 0
add eax, edx
push eax
call fcn.0062a5e0
add esp, 0xc
inc esi
inc edi
cmp esi, dword [esp + 0x1c]
jae 0x58cb0a
mov edx, dword [0x6c5bb8]
cmp dword [esp + 4], 0xc
jg 0x58ca48
mov dword [esp + 0x18], esi
mov dword [esp + 0x10], edx
mov dword [esp], edi
mov esi, dword [esp + 4]
cmp esi, 4
jl 0x596153
mov edi, dword [esp + 0x18]
mov eax, ebx
neg eax
xor edx, edx
mov ecx, dword [esp + 0x28]
pxor xmm0, xmm0
add edi, ebx
add eax, edi
mov edi, ecx
imul eax, dword [0x6c5be0]
add eax, dword [esp + 0x10]
movups xmmword [eax + edx*8], xmm0
movups xmmword [eax + edx*8 + 0x10], xmm0
add edx, 4
cmp edx, edi
jb 0x58caba
cmp ecx, esi
jae 0x58caf4
mov edx, dword [esp + 0x18]
mov eax, ebx
neg eax
pxor xmm0, xmm0
lea edi, [ebx + edx]
add eax, edi
imul eax, dword [0x6c5be0]
add eax, dword [esp + 0x10]
movsd qword [eax + ecx*8], xmm0
inc ecx
cmp ecx, esi
jb 0x58caea
mov eax, dword [esp + 0x18]
inc eax
inc dword [esp]
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x1c]
jb 0x58ca25
mov eax, dword [0x76e530]
mov dword [esp + 0x1b8], eax
test eax, eax
jle 0x58dbb3
xor edx, edx
mov dword [esp + 0x2d8], edx
mov dword [esp + 0x2d4], edx
mov dword [esp + 0x8c], edx
mov dword [esp + 0xc4], edx
mov dword [esp + 0x2b4], edx
mov dword [esp + 0x1b0], edx
mov dword [esp + 0x1d0], edx
mov edx, dword [0x6c61b0]
mov eax, dword [0x6c61b4]
imul eax, edx
mov ecx, dword [0x6c6720]
lea edi, [edx*4]
mov dword [esp + 0x2fc], ecx
mov ecx, dword [0x6c65d8]
mov dword [esp + 0x124], ecx
mov ecx, dword [0x6c6188]
sub ecx, eax
mov eax, dword [0x6c61a8]
shl eax, 2
sub edi, eax
sub edx, eax
add edi, ecx
add ecx, edx
mov edx, dword [0x6c62a0]
shl edx, 2
neg edx
add edx, dword [0x6c6280]
mov dword [esp + 0x1cc], edx
mov edx, dword [0x6c61d8]
shl edx, 2
mov dword [esp + 0x194], edi
neg edx
mov edi, dword [0x6c6278]
shl edi, 2
mov eax, dword [0x6c6250]
neg edi
shl eax, 2
add edx, dword [0x6c61b8]
neg eax
add edi, dword [0x6c6258]
mov dword [esp + 0x198], edx
mov edx, dword [0x6c5c48]
mov dword [esp + 0x1c8], edi
add eax, dword [0x6c6230]
mov dword [esp + 0x120], edx
mov edi, dword [0x6c5c74]
mov edx, dword [0x6c5c68]
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x11c], edi
mov eax, dword [0x6c5c70]
mov dword [esp + 0x114], edx
mov edi, dword [0x6c6980]
shl edi, 3
mov edx, dword [0x6c69a8]
shl edx, 3
mov dword [esp + 0x118], eax
mov eax, dword [0x6c6960]
sub eax, edi
mov edi, dword [0x6c6988]
sub edi, edx
mov edx, dword [0x6c6228]
shl edx, 2
mov dword [esp + 0x40], eax
mov eax, dword [0x6c6208]
sub eax, edx
mov edx, dword [0x6c6958]
shl edx, 3
mov dword [esp + 0x3c], edi
mov edi, dword [0x6c6938]
mov ebx, dword [0x6c6740]
sub edi, edx
mov edx, dword [0x6c6908]
shl edx, 3
mov dword [esp + 0x1ac], eax
mov eax, dword [0x6c68e8]
sub eax, edx
mov edx, dword [0x6c6930]
shl edx, 3
mov dword [esp + 0x1a8], edi
mov edi, dword [0x6c6910]
sub edi, edx
mov edx, dword [0x6c68e0]
mov dword [esp + 0x2f8], ebx
shl ebx, 3
shl edx, 3
neg ebx
mov dword [esp + 0x110], eax
mov eax, dword [0x6c68c0]
sub eax, edx
mov edx, dword [0x6c6200]
shl edx, 2
mov dword [esp + 0x1a4], edi
mov edi, dword [0x6c61e0]
add ebx, dword [0x6c6720]
sub edi, edx
mov esi, dword [0x6c6b20]
mov edx, dword [0x6c6b24]
imul edx, esi
mov dword [esp + 0x27c], ebx
mov ebx, dword [0x6c6840]
mov dword [esp + 0x10c], eax
mov eax, dword [0x6c6844]
imul eax, ebx
mov dword [esp + 0x9c], esi
mov dword [esp + 0x1a0], edi
mov edi, dword [0x6c6af8]
mov esi, dword [0x6c6b18]
sub edi, edx
shl esi, 3
mov edx, dword [0x6c62c8]
sub edi, esi
shl edx, 2
mov dword [esp + 0x108], edi
mov edi, dword [0x6c62a8]
sub edi, edx
mov edx, dword [0x6c6818]
sub edx, eax
mov esi, dword [0x6c6140]
shl esi, 2
neg esi
add esi, dword [0x6c6120]
mov dword [esp + 0x104], edi
mov edi, dword [0x6c6838]
mov dword [esp + 0x100], esi
lea esi, [edx + ebx]
shl edi, 3
lea edx, [edx + ebx*2]
mov eax, dword [0x6c67b8]
sub esi, edi
shl eax, 3
sub edx, edi
mov dword [esp + 0xfc], esi
neg eax
mov esi, dword [0x6c67e0]
shl esi, 3
mov edi, dword [0x6c6810]
neg esi
mov ebx, dword [0x6c6814]
add eax, dword [0x6c6798]
imul ebx, edi
mov dword [esp + 0x22c], eax
add esi, dword [0x6c67c0]
mov eax, dword [0x6c6890]
shl eax, 3
mov dword [esp + 0x228], esi
mov esi, dword [0x6c6870]
sub esi, eax
mov eax, dword [0x6c6868]
shl eax, 3
mov dword [esp + 0xf8], esi
mov esi, dword [0x6c6848]
sub esi, eax
mov dword [esp + 0xf4], esi
mov eax, dword [0x6c6600]
mov esi, dword [0x6c67e8]
shl eax, 3
sub esi, ebx
neg eax
add eax, dword [0x6c65e0]
mov dword [esp + 0x224], eax
mov eax, dword [0x6c6808]
lea ebx, [esi + edi]
shl eax, 3
lea edi, [esi + edi*2]
sub ebx, eax
sub edi, eax
mov eax, dword [0x6c65dc]
imul eax, dword [0x6c65d8]
mov esi, dword [0x6c65b0]
sub esi, eax
mov eax, dword [0x6c65d0]
shl eax, 3
neg eax
add esi, eax
mov dword [esp + 0x1d4], esi
mov esi, dword [0x6c62f0]
shl esi, 2
mov eax, dword [0x6c62d0]
sub eax, esi
mov esi, dword [0x6c6790]
shl esi, 3
mov dword [esp + 0xe4], eax
neg esi
mov eax, dword [0x6c6768]
shl eax, 3
add esi, dword [0x6c6770]
neg eax
mov dword [esp + 0x17c], esi
add eax, dword [0x6c6748]
mov esi, dword [0x6c6340]
shl esi, 2
mov dword [esp + 0x178], eax
mov eax, dword [0x6c6320]
sub eax, esi
mov esi, dword [0x6c63b8]
shl esi, 4
mov dword [esp + 0xe0], eax
mov eax, dword [0x6c6398]
sub eax, esi
mov esi, dword [0x6c6408]
shl esi, 4
mov dword [esp + 0xc0], eax
mov eax, dword [0x6c63e8]
sub eax, esi
mov esi, dword [0x6c6390]
shl esi, 4
mov dword [esp + 0xbc], eax
mov eax, dword [0x6c6370]
sub eax, esi
mov esi, dword [0x6c63e0]
shl esi, 4
mov dword [esp + 0xb8], eax
mov eax, dword [0x6c63c0]
sub eax, esi
mov esi, dword [0x6c68b8]
shl esi, 3
mov dword [esp + 0xb4], eax
mov eax, dword [0x6c6898]
sub eax, esi
mov esi, dword [0x6c6318]
shl esi, 2
mov dword [esp + 0xdc], eax
mov eax, dword [0x6c62f8]
sub eax, esi
mov esi, dword [0x6c6480]
shl esi, 4
mov dword [esp + 0xd8], eax
mov eax, dword [0x6c6460]
sub eax, esi
mov esi, dword [0x6c64d0]
shl esi, 4
mov dword [esp + 0x88], eax
mov eax, dword [0x6c64b0]
sub eax, esi
mov esi, dword [0x6c6458]
shl esi, 4
mov dword [esp + 0x84], eax
mov eax, dword [0x6c6438]
sub eax, esi
mov esi, dword [0x6c6430]
shl esi, 4
mov dword [esp + 0x80], eax
mov eax, dword [0x6c6410]
sub eax, esi
mov esi, dword [0x6c64a8]
shl esi, 4
mov dword [esp + 0x7c], eax
mov eax, dword [0x6c6488]
sub eax, esi
mov dword [esp + 0x78], eax
mov dword [esp + 0x220], 1
mov eax, dword [esp + 0x1d0]
mov dword [esp + 0xf0], edx
mov dword [esp + 0x18c], eax
mov dword [esp + 0xe8], edi
mov dword [esp + 0xec], ebx
mov dword [esp + 0x190], ecx
mov edx, dword [esp + 0x220]
cmp edx, dword [esp + 0x1d0]
jle 0x58d047
mov eax, dword [esp + 0x18c]
mov ecx, dword [esp + 0x190]
mov ebx, dword [esp + 0x194]
mov esi, dword [esp + 0x1d0]
mov edi, dword [esp + 0x1b0]
inc edi
test dword [ecx + edi*4], 0xfffffffe
jne 0x58d021
inc esi
cmp dword [ebx + edi*4], 1
jne 0x58d02e
add eax, dword [esp + 0x9c]
cmp esi, edx
jl 0x58d016
mov dword [esp + 0x18c], eax
mov dword [esp + 0x1d0], esi
mov dword [esp + 0x1b0], edi
mov esi, dword [esp + 0x1cc]
mov ecx, dword [esp + 0x1c8]
mov edi, dword [esp + 0x1c4]
mov eax, dword [esi + edx*4]
mov dword [esp + 0x1c0], eax
mov ebx, dword [ecx + edx*4]
mov esi, dword [edi + edx*4]
mov eax, dword [esp + 0x2b4]
mov dword [esp + 0x1bc], ebx
mov dword [esp + 0x2d0], esi
mov dword [esp + 0x2b0], eax
test esi, esi
jle 0x58dba5
mov ebx, dword [esp + 0x194]
mov eax, dword [esp + 0x1b0]
mov ecx, dword [esp + 0x118]
mov dword [esp + 0x2dc], 0
mov edi, dword [ebx + eax*4]
mov ebx, dword [esp + 0x114]
mov dword [esp + 0x2b8], edi
mov edi, ecx
imul edi, dword [esp + 0x11c]
mov dword [esp + 0x130], edi
lea eax, [ebx*8]
mov ebx, dword [esp + 0x1c0]
imul ebx, ecx
add ebx, dword [esp + 0x120]
sub ebx, edi
sub ebx, eax
mov dword [esp + 0x32c], ebx
mov edi, dword [esp + 0x108]
mov ebx, dword [esp + 0x18c]
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x1a0]
mov dword [esp + 0x220], edx
lea ecx, [edi + ebx]
mov dword [esp + 0x328], ecx
lea ebx, [edi + ebx + 8]
mov ecx, dword [esp + 0x2b4]
and ebx, 0xf
mov dword [esp + 0x2a0], ebx
and ebx, 7
mov dword [esp + 0x29c], ebx
lea edi, [eax + ecx*4]
mov eax, dword [esp + 0x1ac]
mov dword [esp + 0x324], edi
lea edi, [eax + ecx*4]
mov eax, dword [esp + 0x2d4]
mov dword [esp + 0x320], edi
lea edi, [eax + esi*2]
mov dword [esp + 0x288], edi
lea edi, [eax + esi*4]
mov dword [esp + 0x284], edi
lea edi, [esi + esi*2]
lea eax, [eax + edi*2]
mov dword [esp + 0x298], eax
mov eax, dword [esp + 0x104]
mov edi, dword [esp + 0x198]
lea ebx, [eax + ecx*4]
mov dword [esp + 0x2f0], ebx
mov ebx, dword [esp + 0x100]
mov eax, dword [edi + edx*4]
mov edi, dword [esp + 0x10c]
mov dword [esp + 0x2ec], eax
mov eax, dword [ebx + edx*4]
mov ebx, dword [esp + 0x110]
and eax, 1
mov dword [esp + 0x270], eax
lea eax, [edi + ecx*8]
mov dword [esp + 0x24c], eax
mov eax, dword [esp + 0x1a8]
lea edi, [ebx + ecx*8]
mov dword [esp + 0x248], edi
mov edi, dword [esp + 0x1a4]
lea ebx, [eax + ecx*8]
mov dword [esp + 0x244], ebx
mov ebx, dword [esp + 0xfc]
lea eax, [edi + ecx*8]
mov dword [esp + 0x240], eax
mov eax, dword [esp + 0xf8]
lea edi, [ebx + ecx*8]
mov dword [esp + 0x23c], edi
mov edi, dword [esp + 0xf4]
lea ebx, [eax + ecx*8]
mov dword [esp + 0x238], ebx
mov ebx, dword [esp + 0xf0]
lea eax, [edi + ecx*8]
mov dword [esp + 0x234], eax
mov eax, dword [esp + 0xec]
lea edi, [ebx + ecx*8]
mov dword [esp + 0x26c], edi
mov edi, dword [esp + 0xe8]
lea ebx, [eax + ecx*8]
mov dword [esp + 0x230], ebx
mov ebx, dword [esp + 0x124]
imul ebx, edx
lea eax, [edi + ecx*8]
mov edi, dword [esp + 0xe4]
mov dword [esp + 0x268], eax
mov dword [esp + 0x210], ebx
mov ebx, dword [esp + 0xe0]
lea eax, [edi + ecx*4]
mov dword [esp + 0x2e8], eax
mov eax, dword [esp + 0xdc]
lea edi, [ebx + ecx*4]
mov dword [esp + 0x184], edi
mov edi, dword [esp + 0xd8]
lea ebx, [eax + ecx*8]
mov eax, dword [esp + 0x1bc]
mov dword [esp + 0x12c], ebx
imul eax, dword [esp + 0x118]
lea ecx, [edi + ecx*4]
add eax, dword [esp + 0x120]
sub eax, dword [esp + 0x130]
sub eax, dword [esp + 0x134]
mov dword [esp + 0x128], ecx
mov dword [esp + 0x300], eax
mov ebx, dword [esp + 0x2dc]
mov ecx, dword [esp + 0x2d4]
cmp dword [esp + 0x2b8], 0
je 0x58d36c
cmp dword [esp + 0x2b8], 1
je 0x596343
mov eax, dword [esp + 0x27c]
xor edi, edi
mov dword [esp + 0x2dc], ebx
lea edx, [ecx + ebx]
mov dword [esp + 0x2d4], ecx
pxor xmm2, xmm2
lea edx, [eax + edx*8]
xor eax, eax
mov ecx, dword [esp + 0x324]
mov ebx, dword [esp + 0x32c]
movsd xmm0, qword [edx + eax*8 + 8]
add eax, esi
mov ecx, dword [ecx + edi*4 + 4]
inc edi
mulsd xmm0, qword [ebx + ecx*8]
addsd xmm2, xmm0
cmp edi, esi
jb 0x58d32d
mov ebx, dword [esp + 0x2dc]
mov ecx, dword [esp + 0x2d4]
pxor xmm3, xmm3
jmp 0x58d3fb
mov edx, dword [esp + 0x27c]
lea edi, [ecx + ebx]
xor eax, eax
pxor xmm2, xmm2
mov dword [esp + 0x2dc], ebx
lea edi, [edx + edi*8]
mov dword [esp + 0x304], edi
xor edx, edx
mov dword [esp + 0x2d4], ecx
movaps xmm3, xmm2
nop dword [eax]
mov edi, dword [esp + 0x324]
mov ecx, dword [esp + 0x320]
mov ebx, dword [edi + eax*4 + 4]
mov edi, dword [esp + 0x304]
mov ecx, dword [ecx + eax*4 + 4]
inc eax
movsd xmm1, qword [edi + edx*8 + 8]
add edx, esi
mov edi, dword [esp + 0x32c]
movaps xmm0, xmm1
mulsd xmm0, qword [edi + ebx*8]
mov ebx, dword [esp + 0x300]
addsd xmm2, xmm0
mulsd xmm1, qword [ebx + ecx*8]
addsd xmm3, xmm1
cmp eax, esi
jb 0x58d3a0
mov ebx, dword [esp + 0x2dc]
mov ecx, dword [esp + 0x2d4]
mov eax, dword [esp + 0x2f0]
mov edi, dword [esp + 0x2e8]
mov edx, dword [eax + ebx*4 + 4]
mov edi, dword [edi + ebx*4 + 4]
mov dword [esp + 0x2e4], edi
lea eax, [edx - 1]
test eax, eax
cmovle eax, edi
cmp dword [esp + 0x2ec], 1
je 0x595b4a
cmp dword [esp + 0x270], 0
jne 0x58d698
mov dword [esp + 0x2f4], esi
mov esi, dword [esp + 0x23c]
movsd xmm5, qword [0x68fac0]
mov dword [esp + 0x2d4], ecx
mulsd xmm5, qword [esi + ebx*8 + 8]
add eax, dword [esp + 0x2d8]
mov ecx, dword [esp + 0x228]
movsd xmm6, qword [0x68fac8]
movsd xmm0, qword [ecx + eax*8]
mov ecx, dword [esp + 0x238]
mov edi, dword [esp + 0x240]
mov esi, dword [esp + 0x22c]
mulsd xmm3, qword [ecx + ebx*8 + 8]
subsd xmm5, qword [0x68fac8]
mulsd xmm2, qword [ecx + ebx*8 + 8]
addsd xmm6, xmm5
movsd xmm7, qword [edi + ebx*8 + 8]
mulsd xmm3, xmm6
mulsd xmm7, xmm5
movsd xmm1, qword [esi + eax*8]
subsd xmm3, xmm7
movsd qword [esi + eax*8], xmm3
movsd xmm3, qword [0x68fac8]
mov edi, dword [esp + 0x244]
addsd xmm3, xmm5
movsd xmm4, qword [edi + ebx*8 + 8]
mulsd xmm2, xmm3
mulsd xmm4, xmm5
mov ecx, dword [esp + 0x228]
subsd xmm2, xmm4
movsd qword [ecx + eax*8], xmm2
mov eax, dword [esp + 0x2d8]
lea edi, [eax + edx]
mov eax, dword [esp + 0x234]
subsd xmm1, qword [esi + edi*8]
subsd xmm0, qword [ecx + edi*8]
mulsd xmm1, qword [eax + ebx*8 + 8]
mulsd xmm0, qword [eax + ebx*8 + 8]
addsd xmm1, qword [esi + edi*8]
addsd xmm0, qword [ecx + edi*8]
mov ecx, dword [esp + 0x24c]
movaps xmm3, xmm1
mov esi, dword [esp + 0x224]
movaps xmm6, xmm0
mov eax, dword [esp + 0x220]
mov edi, dword [esp + 0x26c]
subsd xmm3, qword [ecx + ebx*8 + 8]
mulsd xmm3, qword [esi + eax*8]
movsd xmm5, qword [edi + ebx*8 + 8]
movaps xmm7, xmm5
addsd xmm3, qword [ecx + ebx*8 + 8]
movsd qword [ecx + ebx*8 + 8], xmm3
subsd xmm1, xmm3
mulsd xmm5, xmm3
mov ecx, dword [esp + 0x248]
subsd xmm6, qword [ecx + ebx*8 + 8]
mulsd xmm6, qword [esi + eax*8]
mov esi, dword [esp + 0x23c]
mov eax, dword [esp + 0x230]
addsd xmm6, qword [ecx + ebx*8 + 8]
movsd xmm4, qword [esi + ebx*8 + 8]
subsd xmm0, xmm6
mulsd xmm7, xmm6
movaps xmm2, xmm4
mulsd xmm2, xmm3
movsd qword [esp + 0x1d8], xmm6
addsd xmm2, xmm7
mulsd xmm4, qword [esp + 0x1d8]
movsd qword [ecx + ebx*8 + 8], xmm6
addsd xmm5, xmm4
movsd xmm6, qword [eax + ebx*8 + 8]
movsd qword [esp + 0x208], xmm6
mulsd xmm6, xmm1
mov ecx, dword [esp + 0x268]
addsd xmm2, xmm6
movsd xmm6, qword [ecx + ebx*8 + 8]
movaps xmm7, xmm6
mulsd xmm6, xmm1
mulsd xmm7, xmm0
addsd xmm5, xmm6
addsd xmm2, xmm7
movsd qword [esp + 0x200], xmm0
movsd xmm0, qword [esp + 0x208]
mulsd xmm0, qword [esp + 0x200]
mov esi, dword [esp + 0x2f4]
addsd xmm5, xmm0
mov ecx, dword [esp + 0x2d4]
test ebx, ebx
je 0x58d648
mov edi, dword [esp + 0x1d4]
mov eax, dword [esp + 0x210]
movsd xmm0, qword [eax + edi + 0x10]
jmp 0x58d65c
mov edi, dword [esp + 0x1d4]
mov eax, dword [esp + 0x210]
movsd xmm0, qword [eax + edi + 8]
mov eax, dword [esp + 0x240]
mov edi, dword [esp + 0x244]
subsd xmm5, qword [eax + ebx*8 + 8]
subsd xmm2, qword [edi + ebx*8 + 8]
mulsd xmm5, xmm0
mulsd xmm2, xmm0
addsd xmm5, qword [eax + ebx*8 + 8]
addsd xmm2, qword [edi + ebx*8 + 8]
movsd qword [eax + ebx*8 + 8], xmm5
movsd qword [edi + ebx*8 + 8], xmm2
jmp 0x58d6ba
mov eax, dword [esp + 0x240]
mov edi, dword [esp + 0x244]
pxor xmm0, xmm0
pxor xmm1, xmm1
movsd qword [eax + ebx*8 + 8], xmm0
movsd qword [edi + ebx*8 + 8], xmm1
inc edx
cmp edx, dword [esp + 0x2e4]
jle 0x58d6d5
mov eax, dword [esp + 0x2f0]
mov dword [eax + ebx*4 + 4], 1
jmp 0x58d6e0
mov eax, dword [esp + 0x2f0]
mov dword [eax + ebx*4 + 4], edx
mov eax, dword [esp + 0x2e4]
inc ebx
add dword [esp + 0x2d8], eax
cmp ebx, esi
jb 0x58d2f2
mov dword [esp + 0x2f4], esi
mov edi, dword [esp + 0x1ac]
mov esi, dword [esp + 0x2b4]
mov dword [esp + 0x2d4], ecx
mov edx, dword [esp + 0x1a8]
lea ecx, [edi + esi*4]
mov dword [esp + 0x2bc], ecx
mov ecx, dword [esp + 0x1a4]
mov ebx, dword [0x6c5bd8]
lea edi, [edx + esi*8]
shl ebx, 3
mov eax, dword [0x6c5bb8]
lea edx, [ecx + esi*8]
mov dword [esp + 0x290], edx
sub eax, ebx
mov ecx, dword [0x6c5be0]
mov edx, dword [esp + 0x1c0]
imul edx, ecx
mov ebx, dword [esp + 0x19c]
add edx, eax
imul ebx, ecx
imul ecx, dword [esp + 0x1bc]
mov dword [esp + 0x294], edi
sub edx, ebx
mov edi, dword [esp + 0x1a0]
add eax, ecx
mov dword [esp + 0x1b4], ebx
mov dword [esp + 0x2c4], edx
mov ebx, dword [esp + 0x1b0]
lea esi, [edi + esi*4]
mov edx, dword [0x6c5a68]
mov edi, dword [0x6c5a6c]
sub ebx, dword [0x6c5a78]
imul edi, edx
imul ebx, dword [0x6c5a74]
mov dword [esp + 0x2c0], esi
mov esi, dword [0x6c5a40]
sub esi, edi
lea edi, [edx + edx]
add ebx, esi
mov esi, dword [0x6c5a60]
shl esi, 3
sub edi, esi
sub edx, esi
add edi, ebx
add ebx, edx
mov dword [esp + 0x28c], 0
sub eax, dword [esp + 0x1b4]
mov dword [esp + 0x2cc], ebx
mov dword [esp + 0x2c8], edi
mov esi, dword [esp + 0x2f4]
mov ecx, dword [esp + 0x28c]
mov ebx, dword [esp + 0x2d4]
mov dword [esp + 0x214], eax
mov eax, ebx
cmp esi, 8
jl 0x595b3c
mov edi, dword [esp + 0x27c]
lea edx, [edi + ebx*8]
mov dword [esp + 0x2a8], edx
lea edi, [edx + 8]
mov edx, 1
and edi, 0xf
cmovne edi, edx
lea edx, [edi + 8]
cmp esi, edx
jl 0x595b3c
mov edx, esi
sub edx, edi
pxor xmm0, xmm0
and edx, 7
movaps xmm3, xmm0
neg edx
add edx, esi
test edi, edi
jbe 0x58d8e8
mov dword [esp + 0x2ac], 0
mov dword [esp + 0x2a4], eax
mov dword [esp + 0x28c], ecx
mov dword [esp + 0x2f4], esi
mov dword [esp + 0x2d4], ebx
mov eax, dword [esp + 0x2ac]
mov ecx, dword [esp + 0x2a8]
mov ebx, dword [esp + 0x290]
mov esi, dword [esp + 0x294]
movsd xmm4, qword [ecx + eax*8 + 8]
movsd xmm1, qword [esi + eax*8 + 8]
movsd xmm2, qword [ebx + eax*8 + 8]
inc eax
mulsd xmm1, xmm4
mulsd xmm4, xmm2
addsd xmm0, xmm1
addsd xmm3, xmm4
cmp eax, edi
jb 0x58d8a5
mov eax, dword [esp + 0x2a4]
mov ecx, dword [esp + 0x28c]
mov esi, dword [esp + 0x2f4]
mov ebx, dword [esp + 0x2d4]
mov dword [esp], edx
mov edx, dword [esp + 0x290]
pxor xmm1, xmm1
movaps xmm2, xmm1
movsd xmm2, xmm0
movaps xmm0, xmm1
movsd xmm0, xmm3
lea edx, [edx + edi*8 + 8]
test dl, 0xf
mov edx, dword [esp]
je 0x58d9ca
mov dword [esp + 0x28c], ecx
mov dword [esp + 0x2f4], esi
mov dword [esp + 0x2d4], ebx
mov ecx, dword [esp + 0x2a8]
mov ebx, dword [esp + 0x290]
mov esi, dword [esp + 0x294]
movups xmm3, xmmword [esi + edi*8 + 8]
movups xmm5, xmmword [ebx + edi*8 + 8]
movups xmm6, xmmword [esi + edi*8 + 0x18]
movups xmm4, xmmword [ecx + edi*8 + 8]
mulpd xmm3, xmm4
mulpd xmm5, xmm4
addpd xmm2, xmm3
addpd xmm0, xmm5
movups xmm3, xmmword [ebx + edi*8 + 0x18]
movups xmm4, xmmword [esi + edi*8 + 0x38]
movups xmm7, xmmword [ecx + edi*8 + 0x18]
mulpd xmm3, xmm7
mulpd xmm6, xmm7
addpd xmm3, xmm0
addpd xmm1, xmm6
movups xmm0, xmmword [esi + edi*8 + 0x28]
movups xmm6, xmmword [ebx + edi*8 + 0x28]
movups xmm7, xmmword [ecx + edi*8 + 0x28]
mulpd xmm0, xmm7
mulpd xmm6, xmm7
addpd xmm2, xmm0
addpd xmm6, xmm3
movups xmm0, xmmword [ebx + edi*8 + 0x38]
movups xmm5, xmmword [ecx + edi*8 + 0x38]
add edi, 8
mulpd xmm4, xmm5
mulpd xmm0, xmm5
addpd xmm1, xmm4
addpd xmm0, xmm6
cmp edi, edx
jb 0x58d93e
jmp 0x58da7b
mov dword [esp + 0x28c], ecx
mov dword [esp + 0x2f4], esi
mov dword [esp + 0x2d4], ebx
mov ecx, dword [esp + 0x2a8]
mov ebx, dword [esp + 0x290]
mov esi, dword [esp + 0x294]
movups xmm3, xmmword [esi + edi*8 + 8]
movups xmm6, xmmword [esi + edi*8 + 0x18]
movups xmm4, xmmword [ecx + edi*8 + 8]
mulpd xmm3, xmm4
movups xmm5, xmmword [ebx + edi*8 + 8]
mulpd xmm5, xmm4
addpd xmm2, xmm3
addpd xmm0, xmm5
movups xmm4, xmmword [esi + edi*8 + 0x38]
movups xmm7, xmmword [ecx + edi*8 + 0x18]
movups xmm3, xmmword [ebx + edi*8 + 0x18]
mulpd xmm3, xmm7
mulpd xmm6, xmm7
addpd xmm3, xmm0
addpd xmm1, xmm6
movups xmm0, xmmword [esi + edi*8 + 0x28]
movups xmm7, xmmword [ecx + edi*8 + 0x28]
mulpd xmm0, xmm7
movups xmm6, xmmword [ebx + edi*8 + 0x28]
mulpd xmm6, xmm7
addpd xmm2, xmm0
addpd xmm6, xmm3
movups xmm0, xmmword [ebx + edi*8 + 0x38]
movups xmm5, xmmword [ecx + edi*8 + 0x38]
add edi, 8
mulpd xmm4, xmm5
mulpd xmm0, xmm5
addpd xmm1, xmm4
addpd xmm0, xmm6
cmp edi, edx
jb 0x58d9f4
mov ebx, dword [esp + 0x2d4]
mov ecx, dword [esp + 0x28c]
add ebx, edx
mov esi, dword [esp + 0x2f4]
addpd xmm2, xmm1
movaps xmm3, xmm0
movaps xmm1, xmm2
unpckhpd xmm3, xmm0
unpckhpd xmm1, xmm2
addsd xmm0, xmm3
addsd xmm2, xmm1
cmp edx, esi
jae 0x58dafb
mov ebx, dword [esp + 0x27c]
mov dword [esp + 0x28c], ecx
mov ecx, dword [esp + 0x290]
mov edi, dword [esp + 0x294]
lea ebx, [ebx + eax*8]
movsd xmm3, qword [ebx + edx*8 + 8]
movaps xmm1, xmm3
mulsd xmm1, qword [edi + edx*8 + 8]
mulsd xmm3, qword [ecx + edx*8 + 8]
addsd xmm2, xmm1
addsd xmm0, xmm3
inc edx
cmp edx, esi
jb 0x58dacf
mov ecx, dword [esp + 0x28c]
lea ebx, [eax + edx]
mov eax, dword [esp + 0x2b0]
movaps xmm1, xmm2
mov edx, dword [esp + 0x2c0]
cmp dword [esp + 0x2b8], 0
lea edi, [ecx + eax + 1]
mov dword [esp + 0x2b4], edi
mov edx, dword [edx + ecx*4 + 4]
mov edi, dword [esp + 0x2c4]
mov eax, dword [esp + 0x2bc]
addsd xmm1, qword [edi + edx*8]
mov eax, dword [eax + ecx*4 + 4]
movsd qword [edi + edx*8], xmm1
jne 0x58db55
mov edx, dword [esp + 0x214]
movaps xmm1, xmm0
addsd xmm1, qword [edx + eax*8]
movsd qword [edx + eax*8], xmm1
mov eax, dword [esp + 0x2cc]
mov edx, dword [esp + 0x2c8]
xorps xmm2, xmmword [0x68faa0]
xorps xmm0, xmmword [0x68faa0]
movsd qword [eax + ecx*8 + 8], xmm2
movsd qword [edx + ecx*8 + 8], xmm0
inc ecx
cmp ecx, esi
jb 0x58d813
mov eax, dword [esp + 0x198]
mov edx, dword [esp + 0x220]
mov dword [esp + 0x2d4], ebx
cmp dword [eax + edx*4], 1
je 0x5954b7
inc edx
cmp edx, dword [esp + 0x1b8]
jle 0x58cfea
mov eax, dword [0x76e4e8]
mov dword [esp + 0x108], eax
test eax, eax
jle 0x58f6a4
mov eax, dword [0x6c5a74]
mov esi, dword [0x6c7a18]
pxor xmm0, xmm0
mov dword [esp + 0x74], eax
mov dword [esp + 0x118], esi
mov eax, dword [0x6c7430]
mov esi, dword [0x6c74d0]
mov dword [esp + 0x2a8], eax
mov dword [esp + 0x168], esi
mov eax, dword [0x6c7ed8]
mov esi, dword [0x6c7530]
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1b8], esi
mov eax, dword [0x6c75ec]
mov esi, dword [0x6c75e0]
mov ecx, dword [0x6c5c70]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x1b0], esi
mov eax, dword [0x6c7068]
mov esi, dword [0x6c73fc]
mov dword [esp + 0x64], ecx
mov ecx, dword [0x6c7228]
mov edi, dword [0x6c7280]
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x84], esi
mov eax, dword [0x6c75ac]
mov esi, dword [0x6c75a0]
mov dword [esp + 0x244], ecx
mov ecx, dword [0x6c7470]
mov dword [esp + 0x7c], edi
mov edi, dword [0x6c74a0]
mov dword [esp + 0x54], eax
mov dword [esp + 0x1a4], esi
mov eax, dword [0x6c756c]
mov esi, dword [0x6c7560]
mov dword [esp + 0x114], ecx
mov ecx, dword [0x6c7e98]
mov dword [esp + 0x10c], edi
mov edi, dword [0x6c7ea4]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x1ac], esi
mov eax, dword [0x6c61b0]
mov esi, dword [0x6c61b4]
imul esi, eax
movdqu xmm1, xmmword [0x68fa80]
mov dword [esp + 0x1b4], ecx
mov ecx, dword [0x6c70a8]
mov dword [esp + 0x70], edi
mov edi, dword [0x6c70b4]
mov dword [esp + 0x1c0], ecx
mov ecx, dword [0x6c73bc]
mov dword [esp + 0x60], edi
mov edi, dword [0x6c73f0]
mov dword [esp + 0x4c], ecx
mov ecx, dword [0x6c7620]
mov dword [esp + 0x1c8], edi
mov edi, dword [0x6c762c]
mov dword [esp + 0x1a8], ecx
mov ecx, dword [0x6c6188]
mov dword [esp + 0x58], edi
xor edi, edi
sub ecx, esi
mov esi, dword [0x6c61a8]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x240], edi
mov dword [esp + 0x320], edi
mov dword [esp + 0x23c], edi
mov dword [esp + 0x31c], edi
mov dword [esp + 0x334], edi
mov dword [esp + 0x198], edi
mov dword [esp + 0x110], edi
mov edi, eax
shl esi, 2
shl eax, 2
sub edi, esi
sub eax, esi
add edi, ecx
add ecx, eax
mov dword [esp + 0x1cc], ecx
mov ecx, dword [0x6c71d0]
shl ecx, 2
neg ecx
add ecx, dword [0x6c71b0]
mov dword [esp + 0x140], ecx
mov ecx, dword [0x6c7180]
mov edx, dword [0x6c6b20]
shl ecx, 2
mov dword [esp + 4], edx
neg ecx
mov edx, dword [0x6c743c]
add ecx, dword [0x6c7160]
mov dword [esp + 0x1c], edx
mov esi, dword [0x6c7250]
mov edx, dword [0x6c7ee4]
shl esi, 2
mov dword [esp + 0x13c], ecx
neg esi
mov ecx, dword [0x6c72a8]
mov dword [esp + 0x80], edx
mov eax, dword [0x6c71a8]
shl ecx, 2
mov edx, dword [0x6c72d8]
neg ecx
shl eax, 2
add esi, dword [0x6c7230]
neg eax
mov dword [esp + 0x78], edx
mov edx, dword [0x6c7074]
mov dword [esp + 0x124], esi
add ecx, dword [0x6c7288]
add eax, dword [0x6c7188]
mov esi, dword [0x6c7130]
mov dword [esp + 0x48], edx
shl esi, 2
mov edx, dword [0x6c73b0]
mov dword [esp + 0x128], ecx
mov dword [esp + 0x12c], eax
mov ecx, dword [0x6c7110]
mov eax, dword [0x6c7108]
sub ecx, esi
mov dword [esp + 0x1a0], edx
shl eax, 2
mov dword [esp + 0x94], ecx
neg eax
mov edx, dword [0x6c7308]
mov ecx, dword [0x6c730c]
imul ecx, edx
mov dword [esp + 0x18], edi
mov edi, dword [0x6c71f8]
shl edi, 2
add eax, dword [0x6c70e8]
neg edi
add edi, dword [0x6c71d8]
mov dword [esp + 0x130], eax
mov eax, dword [0x6c7158]
shl eax, 2
mov dword [esp + 0x248], edi
mov edi, dword [0x6c7138]
sub edi, eax
mov eax, dword [0x6c72e0]
mov ebx, dword [0x6c7500]
sub eax, ecx
mov ecx, dword [0x6c7504]
imul ecx, ebx
mov dword [esp + 0x50], edx
mov edx, dword [0x6c7300]
shl edx, 2
sub eax, edx
mov edx, dword [0x6c75b0]
mov dword [esp + 0x164], ebx
mov dword [esp + 0xac], eax
mov eax, dword [0x6c74d8]
mov ebx, dword [0x6c74f8]
sub eax, ecx
shl ebx, 3
imul edx, dword [0x6c75ac]
sub eax, ebx
mov esi, dword [0x6c75a4]
mov ebx, dword [0x6c75a0]
imul esi, ebx
mov ecx, dword [0x6c76a8]
shl ecx, 4
mov dword [esp + 0x170], eax
neg ecx
mov eax, dword [0x6c7578]
sub eax, edx
add ecx, dword [0x6c7688]
sub eax, esi
mov dword [esp + 0x338], ecx
mov ecx, dword [0x6c7598]
mov dword [esp + 0x98], edi
mov edi, eax
shl ecx, 4
mov edx, dword [0x6c74d4]
sub edi, ecx
imul edx, dword [0x6c74d0]
neg ecx
add ecx, ebx
add eax, ecx
mov dword [esp + 0xd8], eax
mov eax, dword [0x6c7570]
imul eax, dword [0x6c756c]
mov dword [esp + 0x10], edi
mov ecx, dword [0x6c74a8]
mov edi, dword [0x6c7560]
sub ecx, edx
mov edx, dword [0x6c7564]
imul edx, edi
mov esi, dword [0x6c74c8]
shl esi, 3
sub ecx, esi
mov esi, dword [0x6c7538]
sub esi, eax
sub esi, edx
mov dword [esp + 0x16c], ecx
mov ebx, esi
mov ecx, dword [0x6c7558]
shl ecx, 4
sub ebx, ecx
neg ecx
mov eax, dword [0x6c74a4]
add ecx, edi
imul eax, dword [0x6c74a0]
add esi, ecx
mov ecx, dword [0x6c7474]
imul ecx, dword [0x6c7470]
mov dword [esp + 0x14], ebx
mov ebx, dword [0x6c7478]
mov edx, dword [0x6c7498]
sub ebx, eax
shl edx, 3
mov eax, dword [0x6c7468]
sub ebx, edx
mov edx, dword [0x6c7448]
shl eax, 3
sub edx, ecx
mov ecx, dword [0x6c5a68]
sub edx, eax
mov eax, dword [0x6c5a6c]
imul eax, ecx
mov dword [esp + 0xdc], esi
mov edi, eax
mov esi, dword [0x6c5a78]
sub edi, ecx
imul esi, dword [0x6c5a74]
add ecx, ecx
mov dword [esp + 0x134], ebx
neg edi
mov ebx, dword [0x6c5a40]
sub eax, ecx
sub ebx, esi
mov esi, dword [0x6c5c74]
add edi, ebx
mov dword [esp + 0x138], edx
sub ebx, eax
mov edx, dword [0x6c5a60]
shl edx, 3
imul esi, dword [0x6c5c70]
sub edi, edx
sub ebx, edx
mov edx, dword [0x6c7630]
imul edx, dword [0x6c762c]
mov dword [esp + 0x40], edi
mov dword [esp + 0xe0], ebx
mov ebx, dword [0x6c7624]
mov edi, dword [0x6c7620]
mov eax, dword [0x6c5c48]
mov ecx, dword [0x6c5c68]
sub eax, esi
imul ebx, edi
shl ecx, 3
sub eax, ecx
mov dword [esp + 0xa4], eax
mov eax, dword [0x6c75f8]
sub eax, edx
mov edx, dword [0x6c6b24]
sub eax, ebx
mov ecx, dword [0x6c7618]
shl ecx, 4
imul edx, dword [0x6c6b20]
neg ecx
add ecx, edi
add eax, ecx
mov ecx, dword [0x6c7a1c]
imul ecx, dword [0x6c7a18]
mov esi, dword [0x6c6af8]
mov ebx, dword [0x6c6b18]
sub esi, edx
shl ebx, 3
sub esi, ebx
mov ebx, dword [0x6c7284]
imul ebx, dword [0x6c7280]
mov dword [esp + 0xd0], eax
mov edx, dword [0x6c79f0]
mov eax, dword [0x6c7a10]
sub edx, ecx
shl eax, 2
sub edx, eax
mov eax, dword [0x6c7ee8]
imul eax, dword [0x6c7ee4]
mov dword [esp + 0x144], edx
mov ecx, dword [0x6c7258]
mov edx, dword [0x6c7edc]
sub ecx, ebx
mov ebx, dword [0x6c7ed8]
imul edx, ebx
mov edi, dword [0x6c7278]
shl edi, 2
sub ecx, edi
mov dword [esp + 0xa0], ecx
mov ecx, dword [0x6c7eb0]
sub ecx, eax
mov eax, dword [0x6c7358]
sub ecx, edx
shl eax, 3
mov edx, dword [0x6c7534]
neg eax
mov edi, dword [0x6c7530]
imul edx, edi
mov dword [esp + 0x9c], esi
mov esi, dword [0x6c7ed0]
shl esi, 3
add eax, dword [0x6c7338]
neg esi
mov dword [esp + 0x2f4], eax
add esi, ebx
mov eax, dword [0x6c7ea8]
add ecx, esi
imul eax, dword [0x6c7ea4]
mov dword [esp + 0xbc], ecx
mov ebx, dword [0x6c7528]
mov ecx, dword [0x6c7508]
shl ebx, 3
sub ecx, edx
mov edx, dword [0x6c7e9c]
neg ebx
mov esi, dword [0x6c7e98]
add ebx, edi
imul edx, esi
add ecx, ebx
mov edi, dword [0x6c7e90]
shl edi, 3
mov dword [esp + 0xb4], ecx
neg edi
mov ecx, dword [0x6c7e70]
add edi, esi
sub ecx, eax
sub ecx, edx
mov edx, dword [0x6c72dc]
add ecx, edi
mov eax, dword [0x6c7380]
shl eax, 3
mov dword [esp + 0xc4], ecx
neg eax
imul edx, dword [0x6c72d8]
mov ecx, dword [0x6c7400]
imul ecx, dword [0x6c73fc]
add eax, dword [0x6c7360]
mov dword [esp + 0x2f0], eax
mov eax, dword [0x6c73f4]
mov edi, dword [0x6c73f0]
imul eax, edi
mov esi, dword [0x6c72b0]
mov ebx, dword [0x6c72d0]
sub esi, edx
shl ebx, 2
sub esi, ebx
mov ebx, dword [0x6c73c8]
sub ebx, ecx
mov ecx, dword [0x6c73c0]
sub ebx, eax
mov edx, dword [0x6c73e8]
shl edx, 3
imul ecx, dword [0x6c73bc]
neg edx
mov dword [esp + 0xa8], esi
add edx, edi
mov eax, dword [0x6c73b4]
add ebx, edx
mov esi, dword [0x6c73b0]
imul eax, esi
mov edx, dword [0x6c73a8]
shl edx, 3
mov edi, dword [0x6c7388]
neg edx
sub edi, ecx
add edx, esi
sub edi, eax
add edi, edx
mov edx, dword [0x6c76d0]
shl edx, 4
mov dword [esp + 0xcc], ebx
mov ebx, dword [0x6c76b0]
sub ebx, edx
mov dword [esp + 0x328], ebx
mov ebx, dword [0x6c75f0]
mov ecx, dword [0x6c7330]
shl ecx, 3
mov esi, dword [0x6c7680]
imul ebx, dword [0x6c75ec]
shl esi, 4
mov eax, dword [0x6c7310]
sub eax, ecx
mov ecx, dword [0x6c7660]
sub ecx, esi
mov dword [esp + 0xd4], edi
mov dword [esp + 0x32c], ecx
mov edi, dword [0x6c75e4]
mov ecx, dword [0x6c75e0]
imul edi, ecx
mov dword [esp + 0x2e8], eax
mov eax, dword [0x6c7658]
shl eax, 4
mov edx, dword [0x6c7638]
sub edx, eax
mov dword [esp + 0x324], edx
mov edx, dword [0x6c75b8]
sub edx, ebx
mov ebx, dword [0x6c70b8]
sub edx, edi
mov eax, dword [0x6c75d8]
shl eax, 4
imul ebx, dword [0x6c70b4]
neg eax
mov esi, dword [0x6c70ac]
add eax, ecx
mov edi, dword [0x6c70a8]
add edx, eax
imul esi, edi
mov ecx, dword [0x6c70a0]
mov dword [esp + 0xb8], edx
shl ecx, 4
mov edx, dword [0x6c7078]
neg ecx
mov eax, dword [0x6c7080]
add ecx, edi
sub eax, ebx
imul edx, dword [0x6c7074]
sub eax, esi
mov ebx, dword [0x6c706c]
add eax, ecx
mov esi, dword [0x6c7068]
imul ebx, esi
mov ecx, dword [0x6c7060]
shl ecx, 4
neg ecx
mov dword [esp + 0xc0], eax
add ecx, esi
mov eax, dword [0x6c7040]
mov esi, dword [0x6c7e68]
sub eax, edx
mov edx, dword [0x6c7e40]
sub eax, ebx
shl edx, 3
add eax, ecx
shl esi, 3
neg edx
neg esi
mov ecx, dword [0x6c7e20]
mov ebx, dword [0x6c7e48]
mov dword [esp + 0xc8], eax
mov dword [esp + 0x194], 1
lea edi, [ecx + edx]
mov dword [esp + 0x2a0], edi
lea ecx, [ecx + edx + 8]
mov edi, dword [0x6c7434]
lea eax, [ebx + esi]
mov dword [esp + 0x2a4], eax
lea edx, [ebx + esi + 8]
mov ebx, dword [0x6c7440]
imul ebx, dword [0x6c743c]
mov esi, dword [0x6c7430]
imul edi, esi
mov eax, dword [0x6c7408]
sub eax, ebx
mov ebx, dword [0x6c7428]
sub eax, edi
shl ebx, 3
mov edi, ebx
neg edi
add edi, eax
mov dword [esp + 0x28], edi
mov edi, esi
sub edi, ebx
add esi, esi
sub esi, ebx
mov ebx, ecx
add edi, eax
and ebx, 0xf
mov dword [esp + 0x2c], edi
mov edi, 1
cmovne ebx, edi
add eax, esi
mov dword [esp + 0x11c], ebx
mov dword [esp + 0x30], eax
mov dword [esp + 0x150], edx
mov dword [esp + 0x14c], ecx
lea esi, [ebx + 8]
mov ebx, edx
and ebx, 0xf
mov dword [esp + 0x88], esi
cmovne ebx, edi
mov dword [esp + 0x120], ebx
mov esi, dword [0x6c7200]
lea edi, [ebx + 8]
mov dword [esp + 0x8c], edi
mov edi, dword [0x6c722c]
mov ebx, dword [0x6c7228]
imul edi, ebx
sub esi, edi
mov edi, dword [0x6c7220]
shl edi, 2
neg edi
add edi, ebx
mov ebx, dword [esp + 0x110]
add esi, edi
mov dword [esp + 0x148], esi
mov dword [esp + 0x90], ebx
mov esi, dword [esp + 0x194]
cmp esi, dword [esp + 0x110]
jle 0x58e50d
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x1cc]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x110]
mov edi, dword [esp + 0x198]
inc edi
cmp dword [ecx + edi*4], 2
jne 0x58e4ea
inc ebx
cmp dword [edx + edi*4], 1
jne 0x58e4f4
add eax, dword [esp + 4]
cmp ebx, esi
jl 0x58e4e2
mov dword [esp + 0x90], eax
mov dword [esp + 0x110], ebx
mov dword [esp + 0x198], edi
mov ebx, dword [esp + 0x140]
mov edx, dword [esp + 0x12c]
mov edi, dword [esp + 0x13c]
mov eax, dword [ebx + esi*4]
mov dword [esp + 0x158], eax
mov ecx, dword [edx + esi*4]
mov eax, dword [esp + 0x124]
mov edx, dword [esp + 0x248]
mov dword [esp + 0x15c], ecx
mov eax, dword [eax + esi*4]
mov ecx, dword [edx + esi*4]
inc eax
inc ecx
mov ebx, dword [edi + esi*4]
mov dword [esp + 0x2d0], ebx
mov dword [esp + 0x154], ecx
cmp eax, ecx
jle 0x58e576
mov edx, dword [esp + 0x124]
mov eax, 1
mov dword [edx + esi*4], 1
jmp 0x58e580
mov edx, dword [esp + 0x124]
mov dword [edx + esi*4], eax
mov edx, dword [esp + 0x128]
mov edx, dword [edx + esi*4]
test edx, edx
jle 0x58e9ba
cmp edx, 4
jl 0x59455c
mov edi, dword [esp + 0x7c]
imul edi, esi
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x24c], edx
lea edx, [ecx + edi]
mov dword [esp + 0xe4], edx
mov edx, dword [esp + 0x24c]
lea edi, [ecx + edi + 4]
and edi, 0xf
je 0x58e5de
test edi, 3
jne 0x59455c
neg edi
add edi, 0x10
shr edi, 2
lea ecx, [edi + 4]
cmp edx, ecx
jl 0x59455c
mov ecx, edx
sub ecx, edi
and ecx, 3
neg ecx
add ecx, edx
mov dword [esp + 0x250], ecx
mov ecx, dword [esp + 0x118]
imul ecx, esi
add ecx, dword [esp + 0x144]
mov dword [esp + 0x258], ecx
mov ecx, dword [esp + 0x148]
lea ecx, [ecx + esi*4]
mov dword [esp + 0x254], ecx
test edi, edi
jbe 0x58e6bd
xor ecx, ecx
mov dword [esp + 0x24c], edx
mov dword [esp + 0x330], ebx
mov dword [esp + 0x260], edi
mov dword [esp + 0x25c], eax
mov dword [esp + 0x194], esi
mov edx, ecx
mov ebx, dword [esp + 0xe4]
mov esi, dword [esp + 0x258]
mov edi, dword [esp + 0x254]
mov eax, dword [ebx + ecx*4 + 4]
mov dword [esi + ecx*4 + 4], eax
mov eax, dword [esp + 0x25c]
sub eax, dword [edx + edi]
lea esi, [eax + 1]
test esi, esi
jle 0x59453e
mov dword [ebx + ecx*4 + 4], esi
inc ecx
add edx, dword [esp + 0x244]
cmp ecx, dword [esp + 0x260]
jb 0x58e65a
mov edx, dword [esp + 0x24c]
mov edi, dword [esp + 0x260]
mov eax, dword [esp + 0x25c]
mov ebx, dword [esp + 0x330]
mov esi, dword [esp + 0x194]
mov ecx, dword [esp + 0x258]
lea ecx, [ecx + edi*4 + 4]
test cl, 0xf
je 0x58e7cc
mov ecx, dword [esp + 0x244]
movd xmm0, eax
mov dword [esp + 0x24c], edx
mov dword [esp + 0x25c], eax
pcmpeqd xmm2, xmm2
pshufd xmm3, xmm0, 0
lea ecx, [ecx + ecx*2]
mov dword [esp + 0x264], ecx
pxor xmm4, xmm4
mov dword [esp + 0x330], ebx
movdqu xmm5, xmmword [0x68fa80]
mov eax, dword [esp + 0xe4]
mov edx, dword [esp + 0x244]
mov ecx, dword [esp + 0x258]
movdqu xmm1, xmmword [eax + edi*4 + 4]
mov ebx, dword [esp + 0x254]
movdqu xmmword [ecx + edi*4 + 4], xmm1
mov ecx, edi
movdqa xmm1, xmm3
imul ecx, edx
add ecx, ebx
mov ebx, dword [esp + 0x264]
movd xmm7, dword [edx + ecx]
movd xmm6, dword [ecx + edx*2]
movd xmm0, dword [ebx + ecx]
punpckldq xmm7, xmm0
movd xmm0, dword [ecx]
punpckldq xmm0, xmm6
punpckldq xmm0, xmm7
psubd xmm1, xmm0
paddd xmm1, xmm5
movdqa xmm0, xmm1
pcmpgtd xmm0, xmm4
pxor xmm0, xmm2
movmskps ebx, xmm0
test ebx, ebx
je 0x59450a
mov ecx, dword [esp + 0x248]
movdqa xmm7, xmm0
pandn xmm7, xmm1
movd xmm6, dword [ecx + esi*4]
pshufd xmm6, xmm6, 0
paddd xmm6, xmm1
paddd xmm6, xmm5
pand xmm6, xmm0
por xmm6, xmm7
movdqu xmmword [eax + edi*4 + 4], xmm6
add edi, 4
cmp edi, dword [esp + 0x250]
jb 0x58e71e
jmp 0x58e8c2
mov ecx, dword [esp + 0x244]
movd xmm0, eax
mov dword [esp + 0x24c], edx
mov dword [esp + 0x25c], eax
pcmpeqd xmm2, xmm2
pshufd xmm3, xmm0, 0
lea ecx, [ecx + ecx*2]
mov dword [esp + 0x268], ecx
pxor xmm4, xmm4
mov dword [esp + 0x330], ebx
movdqu xmm5, xmmword [0x68fa80]
mov eax, dword [esp + 0xe4]
mov edx, dword [esp + 0x244]
mov ecx, dword [esp + 0x258]
movdqu xmm1, xmmword [eax + edi*4 + 4]
mov ebx, dword [esp + 0x254]
movdqu xmmword [ecx + edi*4 + 4], xmm1
mov ecx, edi
imul ecx, edx
movdqa xmm1, xmm3
add ecx, ebx
mov ebx, dword [esp + 0x268]
movd xmm7, dword [edx + ecx]
movd xmm6, dword [ecx + edx*2]
movd xmm0, dword [ebx + ecx]
punpckldq xmm7, xmm0
movd xmm0, dword [ecx]
punpckldq xmm0, xmm6
punpckldq xmm0, xmm7
psubd xmm1, xmm0
paddd xmm1, xmm5
movdqa xmm0, xmm1
pcmpgtd xmm0, xmm4
pxor xmm0, xmm2
movmskps ebx, xmm0
test ebx, ebx
je 0x594533
mov ecx, dword [esp + 0x248]
movdqa xmm7, xmm0
pandn xmm7, xmm1
movd xmm6, dword [ecx + esi*4]
pshufd xmm6, xmm6, 0
paddd xmm6, xmm1
paddd xmm6, xmm5
pand xmm6, xmm0
por xmm6, xmm7
movdqu xmmword [eax + edi*4 + 4], xmm6
add edi, 4
cmp edi, dword [esp + 0x250]
jb 0x58e819
mov edx, dword [esp + 0x24c]
mov eax, dword [esp + 0x25c]
mov ebx, dword [esp + 0x330]
mov ecx, dword [esp + 0x244]
mov edi, dword [esp + 0x250]
imul ecx, edi
cmp edi, edx
jae 0x58e9ad
mov edi, dword [esp + 0x118]
imul edi, esi
add edi, dword [esp + 0x144]
mov dword [esp + 0x29c], edi
mov edi, dword [esp + 0x7c]
imul edi, esi
add edi, dword [esp + 0xa0]
mov dword [esp + 0xf0], edi
mov edi, dword [esp + 0x148]
mov dword [esp + 0x24c], edx
mov dword [esp + 0x330], ebx
mov dword [esp + 0x25c], eax
lea edi, [edi + esi*4]
mov dword [esp + 0x28c], edi
mov dword [esp + 0x194], esi
mov edx, dword [esp + 0xf0]
mov ebx, dword [esp + 0x250]
mov esi, dword [esp + 0x29c]
mov edi, dword [esp + 0x28c]
mov eax, dword [edx + ebx*4 + 4]
mov dword [esi + ebx*4 + 4], eax
mov eax, dword [esp + 0x25c]
sub eax, dword [ecx + edi]
lea esi, [eax + 1]
test esi, esi
jle 0x594515
mov dword [edx + ebx*4 + 4], esi
inc ebx
add ecx, dword [esp + 0x244]
cmp ebx, dword [esp + 0x24c]
jb 0x58e958
mov edx, dword [esp + 0x24c]
mov ebx, dword [esp + 0x330]
mov esi, dword [esp + 0x194]
test ebx, ebx
jg 0x5931ba
jmp 0x593bf3
test ebx, ebx
jg 0x5931ba
mov eax, dword [esp + 0x130]
test byte [eax + esi*4], 1
je 0x58eb21
test ebx, ebx
jle 0x58eb18
cmp ebx, 8
jl 0x59456c
mov ecx, dword [esp + 0x114]
imul ecx, esi
mov edx, dword [esp + 0x138]
lea eax, [edx + ecx]
mov dword [esp], eax
lea ecx, [edx + ecx + 8]
and ecx, 0xf
je 0x58ea12
test cl, 7
jne 0x59456c
mov ecx, 1
lea eax, [ecx + 8]
cmp ebx, eax
jl 0x59456c
mov edx, dword [esp + 0x10c]
mov edi, ebx
imul edx, esi
sub edi, ecx
and edi, 7
neg edi
add edx, dword [esp + 0x134]
add edi, ebx
test ecx, ecx
jbe 0x58ea65
mov dword [esp + 0x194], esi
xor eax, eax
mov esi, dword [esp]
pxor xmm0, xmm0
movsd qword [edx + eax*8 + 8], xmm0
movsd qword [esi + eax*8 + 8], xmm0
inc eax
cmp eax, ecx
jb 0x58ea4d
mov esi, dword [esp + 0x194]
lea eax, [edx + ecx*8 + 8]
test al, 0xf
je 0x58eaa5
mov eax, dword [esp]
pxor xmm0, xmm0
movups xmmword [edx + ecx*8 + 8], xmm0
movups xmmword [edx + ecx*8 + 0x18], xmm0
movups xmmword [edx + ecx*8 + 0x28], xmm0
movups xmmword [edx + ecx*8 + 0x38], xmm0
movups xmmword [eax + ecx*8 + 8], xmm0
movups xmmword [eax + ecx*8 + 0x18], xmm0
movups xmmword [eax + ecx*8 + 0x28], xmm0
movups xmmword [eax + ecx*8 + 0x38], xmm0
add ecx, 8
cmp ecx, edi
jb 0x58ea74
jmp 0x58eadb
mov eax, dword [esp]
pxor xmm0, xmm0
movups xmmword [edx + ecx*8 + 8], xmm0
movups xmmword [eax + ecx*8 + 8], xmm0
movups xmmword [edx + ecx*8 + 0x18], xmm0
movups xmmword [eax + ecx*8 + 0x18], xmm0
movups xmmword [edx + ecx*8 + 0x28], xmm0
movups xmmword [eax + ecx*8 + 0x28], xmm0
movups xmmword [edx + ecx*8 + 0x38], xmm0
movups xmmword [eax + ecx*8 + 0x38], xmm0
add ecx, 8
cmp ecx, edi
jb 0x58eaac
cmp edi, ebx
jae 0x58eb25
mov edx, dword [esp + 0x10c]
mov eax, dword [esp + 0x114]
pxor xmm0, xmm0
imul edx, esi
imul eax, esi
add edx, dword [esp + 0x134]
add eax, dword [esp + 0x138]
movsd qword [edx + edi*8 + 8], xmm0
movsd qword [eax + edi*8 + 8], xmm0
inc edi
cmp edi, ebx
jb 0x58eb05
jmp 0x58eb25
add dword [esp + 0x38], ebx
jmp 0x58f687
test ebx, ebx
jle 0x58eb18
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x98]
mov dword [esp + 0x1d8], 0
mov dword [esp + 0x330], ebx
lea edi, [ecx + edx*4]
mov dword [esp + 0x280], edi
lea ecx, [eax + edx*4]
mov eax, dword [esp + 0x50]
imul eax, esi
mov edx, dword [esp + 0x54]
imul edx, esi
mov edi, dword [esp + 0xd8]
add eax, dword [esp + 0xac]
mov dword [esp + 0x26c], eax
mov dword [esp + 0x27c], ecx
lea eax, [edi + edx]
mov edi, dword [esp + 0x5c]
imul edi, esi
mov ecx, dword [esp + 0xdc]
mov dword [esp + 0x1d0], edi
mov dword [esp + 0x21c], eax
mov dword [esp + 0x1d4], edx
lea eax, [ecx + edi]
mov edi, dword [esp + 0x58]
imul edi, esi
mov ecx, dword [esp + 0x158]
mov edx, dword [esp + 0x64]
imul ecx, edx
add edi, dword [esp + 0xd0]
mov dword [esp + 0x214], eax
mov eax, dword [esp + 0xa4]
add ecx, eax
mov dword [esp + 0x234], ecx
mov dword [esp + 0x230], edi
mov edi, dword [esp + 0x90]
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x194], esi
add ecx, edi
mov edi, dword [esp + 0x15c]
imul edi, edx
mov dword [esp + 0x318], ecx
add edi, eax
mov ecx, dword [esp + 0x1d8]
mov dword [esp + 0x228], edi
mov eax, dword [esp + 0x26c]
mov ebx, dword [esp + 0x280]
mov edx, dword [esp + 0x27c]
mov esi, dword [eax + ecx*4 + 4]
mov ebx, dword [ebx + ecx*4 + 4]
mov edx, dword [edx + ecx*4 + 4]
mov dword [esp + 0x2fc], esi
test esi, esi
jle 0x58ef6b
mov edi, dword [esp + 0x198]
xor eax, eax
mov esi, dword [esp + 0x1cc]
mov dword [esp + 0x1e4], eax
mov dword [esp + 0x1dc], eax
mov esi, dword [esi + edi*4]
test esi, esi
je 0x58ee75
cmp esi, 1
je 0x59457d
mov edx, dword [esp + 0x2fc]
shr edx, 2
test edx, edx
jbe 0x594573
mov edi, dword [esp + 0x1a8]
xor esi, esi
imul edi, ecx
mov eax, dword [esp + 0x1a4]
imul eax, ecx
add edi, dword [esp + 0x230]
mov dword [esp + 0x1e8], edi
mov edi, dword [esp + 0x234]
mov dword [esp + 0x1d8], ecx
movsd xmm0, qword [edi + ebx*8]
add eax, dword [esp + 0x21c]
mov ecx, esi
mov edi, dword [esp + 0x1e8]
movups xmm4, xmmword [ecx + eax + 0x10]
movups xmm1, xmmword [ecx + edi + 0x10]
movups xmm5, xmmword [ecx + edi + 0x20]
movaps xmm2, xmm1
movaps xmm3, xmm4
xorps xmm2, xmmword [0x68fab0]
movaps xmm6, xmm5
unpcklpd xmm3, xmm4
inc esi
shufpd xmm2, xmm2, 1
unpckhpd xmm4, xmm4
mulpd xmm3, xmm1
movups xmm1, xmmword [ecx + eax + 0x20]
mulpd xmm4, xmm2
movups xmm2, xmmword [ecx + edi + 0x30]
addpd xmm4, xmm3
xorps xmm6, xmmword [0x68fab0]
movaps xmm7, xmm1
shufpd xmm6, xmm6, 1
movaps xmm3, xmm2
unpcklpd xmm7, xmm1
unpckhpd xmm1, xmm1
mulpd xmm7, xmm5
mulpd xmm1, xmm6
addpd xmm4, xmm0
addpd xmm1, xmm7
movups xmm5, xmmword [ecx + eax + 0x30]
movups xmmword [ecx + eax + 0x10], xmm4
addpd xmm1, xmm0
movups xmm6, xmmword [ecx + edi + 0x40]
movups xmmword [ecx + eax + 0x20], xmm1
movaps xmm4, xmm5
movaps xmm1, xmm6
xorps xmm3, xmmword [0x68fab0]
shufpd xmm3, xmm3, 1
unpcklpd xmm4, xmm5
unpckhpd xmm5, xmm5
mulpd xmm5, xmm3
movups xmm3, xmmword [ecx + eax + 0x40]
mulpd xmm4, xmm2
xorps xmm1, xmmword [0x68fab0]
movaps xmm2, xmm3
shufpd xmm1, xmm1, 1
unpcklpd xmm2, xmm3
unpckhpd xmm3, xmm3
mulpd xmm2, xmm6
mulpd xmm3, xmm1
addpd xmm5, xmm4
addpd xmm3, xmm2
addpd xmm5, xmm0
addpd xmm3, xmm0
movups xmmword [ecx + eax + 0x30], xmm5
movups xmmword [ecx + eax + 0x40], xmm3
add ecx, 0x40
cmp esi, edx
jb 0x58ecd6
mov ecx, dword [esp + 0x1d8]
lea esi, [esi*4 + 1]
dec esi
mov edx, esi
shl edx, 4
cmp esi, dword [esp + 0x2fc]
jae 0x58ef6b
mov eax, dword [esp + 0x1a4]
imul eax, ecx
add eax, dword [esp + 0x21c]
lea edi, [edx + eax + 0x10]
mov eax, dword [esp + 0x1a8]
imul eax, ecx
mov dword [esp + 0x190], edi
mov edi, dword [esp + 0x234]
add eax, dword [esp + 0x230]
movsd xmm0, qword [edi + ebx*8]
mov ebx, dword [esp + 0x190]
mov edi, dword [esp + 0x2fc]
nop
movups xmm1, xmmword [edx + eax + 0x10]
movups xmm4, xmmword [ebx]
movaps xmm2, xmm1
movaps xmm3, xmm4
xorps xmm2, xmmword [0x68fab0]
inc esi
shufpd xmm2, xmm2, 1
add edx, 0x10
unpcklpd xmm3, xmm4
unpckhpd xmm4, xmm4
mulpd xmm3, xmm1
mulpd xmm4, xmm2
addpd xmm4, xmm3
addpd xmm4, xmm0
movups xmmword [ebx], xmm4
add ebx, 0x10
cmp esi, edi
jb 0x58ee30
jmp 0x58ef6b
mov eax, dword [esp + 0x1a4]
imul eax, ecx
mov esi, dword [esp + 0x21c]
mov dword [esp + 0x1d8], ecx
lea edi, [esi + eax + 0x10]
mov dword [esp + 0x1e0], edi
mov edi, dword [esp + 0x1ac]
imul edi, ecx
mov eax, dword [esp + 0x214]
mov esi, dword [esp + 0x1a8]
imul esi, ecx
add esi, dword [esp + 0x230]
lea eax, [eax + edi + 0x10]
mov edi, dword [esp + 0x234]
mov ecx, dword [esp + 0x1dc]
movsd xmm1, qword [edi + ebx*8]
mov ebx, dword [esp + 0x228]
mov edi, dword [esp + 0x2fc]
movsd xmm0, qword [ebx + edx*8]
mov edx, dword [esp + 0x1e0]
mov ebx, dword [esp + 0x1e4]
nop dword [eax]
nop dword [eax]
movups xmm4, xmmword [ecx + esi + 0x10]
movups xmm3, xmmword [edx]
movups xmm7, xmmword [eax]
movaps xmm5, xmm4
movaps xmm2, xmm3
xorps xmm5, xmmword [0x68fab0]
movaps xmm6, xmm7
shufpd xmm5, xmm5, 1
inc ebx
unpcklpd xmm2, xmm3
add ecx, 0x10
unpckhpd xmm3, xmm3
unpcklpd xmm6, xmm7
unpckhpd xmm7, xmm7
mulpd xmm2, xmm4
mulpd xmm3, xmm5
mulpd xmm6, xmm4
mulpd xmm7, xmm5
addpd xmm3, xmm2
addpd xmm7, xmm6
addpd xmm3, xmm1
addpd xmm7, xmm0
movups xmmword [edx], xmm3
movups xmmword [eax], xmm7
add eax, 0x10
add edx, 0x10
cmp ebx, edi
jb 0x58ef00
mov ecx, dword [esp + 0x1d8]
inc ecx
cmp ecx, dword [esp + 0x330]
jb 0x58ec1b
mov ebx, dword [esp + 0x330]
add dword [esp + 0x38], ebx
mov ecx, dword [esp + 0x1d0]
mov edx, dword [esp + 0x1d4]
mov esi, dword [esp + 0x194]
test ebx, ebx
jle 0x58f687
mov eax, dword [esp + 0x164]
imul eax, esi
add eax, dword [esp + 0x170]
mov dword [esp + 0x348], eax
mov eax, dword [esp + 0x168]
imul eax, esi
mov edi, dword [esp + 0x16c]
add edx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
mov dword [esp + 0x270], 1
add edi, eax
mov dword [esp + 0x1d4], edx
mov dword [esp + 0x34c], edi
mov dword [esp + 0x1d0], ecx
mov dword [esp + 0x100], eax
mov dword [esp + 0x194], esi
mov edx, dword [esp + 0x270]
mov esi, dword [esp + 0x1ac]
mov eax, 1
mov edi, dword [esp + 0x1a4]
imul esi, edx
imul edi, edx
mov ecx, dword [esp + 0x26c]
add esi, dword [esp + 0x1d0]
add edi, dword [esp + 0x1d4]
mov dword [esp + 0x340], esi
mov ecx, dword [ecx + edx*4]
mov dword [esp + 0x344], edi
mov dword [esp + 0x270], edx
mov edx, eax
mov esi, dword [esp + 0x23c]
test ecx, ecx
jle 0x58f124
mov dword [esp + 0x33c], ecx
mov edi, edx
mov dword [esp + 0x330], ebx
inc esi
mov edx, edi
mov ecx, esi
inc edi
shl ecx, 4
mov ebx, dword [esp + 0x338]
shl edx, 4
movups xmm3, xmmword [ecx + ebx]
mov ecx, dword [esp + 0x344]
movaps xmm4, xmm3
xorps xmm4, xmmword [0x68fab0]
shufpd xmm4, xmm4, 1
movups xmm1, xmmword [ecx + edx]
mov ecx, dword [esp + 0x340]
movaps xmm0, xmm1
unpcklpd xmm0, xmm1
unpckhpd xmm1, xmm1
movups xmm6, xmmword [ecx + edx]
mulpd xmm0, xmm3
mulpd xmm1, xmm4
movaps xmm5, xmm6
unpcklpd xmm5, xmm6
unpckhpd xmm6, xmm6
mulpd xmm5, xmm3
mulpd xmm6, xmm4
addpd xmm1, xmm0
addpd xmm6, xmm5
mov ebx, dword [esp + 0x348]
mov edx, dword [esp + 0x34c]
movsd xmm2, qword [ebx + eax*8]
movsd xmm7, qword [edx + eax*8]
subsd xmm2, xmm1
subsd xmm7, xmm6
movsd qword [ebx + eax*8], xmm2
movsd qword [edx + eax*8], xmm7
cmp edi, dword [esp + 0x33c]
jle 0x58f070
mov ecx, dword [esp + 0x33c]
mov edx, 1
mov ebx, dword [esp + 0x330]
inc eax
cmp eax, ebx
jle 0x58f058
mov edx, dword [esp + 0x270]
inc edx
mov dword [esp + 0x23c], esi
cmp edx, ebx
jle 0x58f009
mov eax, dword [esp + 0x100]
mov esi, dword [esp + 0x194]
cmp ebx, 8
jl 0x5950bf
mov edx, dword [esp + 0x16c]
lea ecx, [edx + eax + 8]
and ecx, 0xf
je 0x58f179
test cl, 7
jne 0x5950b8
mov ecx, 1
lea eax, [ecx + 8]
cmp ebx, eax
jl 0x5950b8
mov edx, dword [esp + 0x10c]
mov eax, ebx
imul edx, esi
sub eax, ecx
mov edi, dword [esp + 0x114]
and eax, 7
imul edi, esi
neg eax
add edx, dword [esp + 0x134]
add eax, ebx
add edi, dword [esp + 0x138]
mov dword [esp + 0x160], edx
test ecx, ecx
jbe 0x58f236
mov dword [esp + 0x104], eax
xor edx, edx
mov dword [esp + 0x330], ebx
mov dword [esp + 0x194], esi
mov eax, dword [esp + 0x160]
mov ebx, dword [esp + 0x34c]
mov esi, dword [esp + 0x348]
movsd xmm0, qword [0x68fac0]
movsd xmm1, qword [0x68fac0]
mulsd xmm0, qword [eax + edx*8 + 8]
mulsd xmm1, qword [edi + edx*8 + 8]
addsd xmm0, qword [esi + edx*8 + 8]
addsd xmm1, qword [ebx + edx*8 + 8]
movsd qword [esi + edx*8 + 8], xmm0
movsd qword [ebx + edx*8 + 8], xmm1
inc edx
cmp edx, ecx
jb 0x58f1e8
mov eax, dword [esp + 0x104]
mov ebx, dword [esp + 0x330]
mov esi, dword [esp + 0x194]
mov edx, dword [esp + 0x348]
lea edx, [edx + ecx*8 + 8]
test dl, 0xf
je 0x58f349
mov dword [esp + 0x330], ebx
mov dword [esp + 0x194], esi
mov edx, dword [esp + 0x160]
mov ebx, dword [esp + 0x34c]
mov esi, dword [esp + 0x348]
movups xmm0, xmmword [edx + ecx*8 + 8]
movups xmm3, xmmword [edx + ecx*8 + 0x18]
mulpd xmm0, xmmword [0x68fa90]
movups xmm1, xmmword [esi + ecx*8 + 8]
movups xmm2, xmmword [edi + ecx*8 + 8]
mulpd xmm3, xmmword [0x68fa90]
addpd xmm1, xmm0
mulpd xmm2, xmmword [0x68fa90]
movups xmmword [esi + ecx*8 + 8], xmm1
movups xmm4, xmmword [esi + ecx*8 + 0x18]
movups xmm6, xmmword [edx + ecx*8 + 0x28]
movups xmm1, xmmword [edx + ecx*8 + 0x38]
addpd xmm4, xmm3
addpd xmm2, xmmword [ebx + ecx*8 + 8]
mulpd xmm6, xmmword [0x68fa90]
movups xmmword [esi + ecx*8 + 0x18], xmm4
movups xmm5, xmmword [edi + ecx*8 + 0x18]
movups xmm0, xmmword [edi + ecx*8 + 0x28]
movups xmm3, xmmword [edi + ecx*8 + 0x38]
mulpd xmm1, xmmword [0x68fa90]
mulpd xmm5, xmmword [0x68fa90]
mulpd xmm0, xmmword [0x68fa90]
mulpd xmm3, xmmword [0x68fa90]
movups xmm7, xmmword [esi + ecx*8 + 0x28]
addpd xmm5, xmmword [ebx + ecx*8 + 0x18]
addpd xmm7, xmm6
addpd xmm0, xmmword [ebx + ecx*8 + 0x28]
addpd xmm3, xmmword [ebx + ecx*8 + 0x38]
movups xmmword [esi + ecx*8 + 0x28], xmm7
movups xmmword [ebx + ecx*8 + 8], xmm2
movups xmm2, xmmword [esi + ecx*8 + 0x38]
addpd xmm2, xmm1
movups xmmword [ebx + ecx*8 + 0x18], xmm5
movups xmmword [ebx + ecx*8 + 0x28], xmm0
movups xmmword [esi + ecx*8 + 0x38], xmm2
movups xmmword [ebx + ecx*8 + 0x38], xmm3
add ecx, 8
cmp ecx, eax
jb 0x58f26d
jmp 0x58f437
mov dword [esp + 0x330], ebx
mov dword [esp + 0x194], esi
mov edx, dword [esp + 0x160]
mov ebx, dword [esp + 0x34c]
mov esi, dword [esp + 0x348]
movups xmm0, xmmword [edx + ecx*8 + 8]
movups xmm2, xmmword [edx + ecx*8 + 0x18]
movups xmm4, xmmword [edx + ecx*8 + 0x28]
movups xmm6, xmmword [edx + ecx*8 + 0x38]
movups xmm1, xmmword [edi + ecx*8 + 8]
movups xmm3, xmmword [edi + ecx*8 + 0x18]
movups xmm5, xmmword [edi + ecx*8 + 0x28]
movups xmm7, xmmword [edi + ecx*8 + 0x38]
mulpd xmm0, xmmword [0x68fa90]
mulpd xmm1, xmmword [0x68fa90]
mulpd xmm2, xmmword [0x68fa90]
mulpd xmm3, xmmword [0x68fa90]
mulpd xmm4, xmmword [0x68fa90]
mulpd xmm5, xmmword [0x68fa90]
mulpd xmm6, xmmword [0x68fa90]
mulpd xmm7, xmmword [0x68fa90]
addpd xmm0, xmmword [esi + ecx*8 + 8]
addpd xmm2, xmmword [esi + ecx*8 + 0x18]
addpd xmm4, xmmword [esi + ecx*8 + 0x28]
addpd xmm6, xmmword [esi + ecx*8 + 0x38]
addpd xmm1, xmmword [ebx + ecx*8 + 8]
addpd xmm3, xmmword [ebx + ecx*8 + 0x18]
addpd xmm5, xmmword [ebx + ecx*8 + 0x28]
addpd xmm7, xmmword [ebx + ecx*8 + 0x38]
movups xmmword [esi + ecx*8 + 8], xmm0
movups xmmword [ebx + ecx*8 + 8], xmm1
movups xmmword [esi + ecx*8 + 0x18], xmm2
movups xmmword [ebx + ecx*8 + 0x18], xmm3
movups xmmword [esi + ecx*8 + 0x28], xmm4
movups xmmword [ebx + ecx*8 + 0x28], xmm5
movups xmmword [esi + ecx*8 + 0x38], xmm6
movups xmmword [ebx + ecx*8 + 0x38], xmm7
add ecx, 8
cmp ecx, eax
jb 0x58f36c
mov ebx, dword [esp + 0x330]
mov esi, dword [esp + 0x194]
lea edx, [eax + 1]
cmp edx, ebx
ja 0x58f513
mov ecx, dword [esp + 0x348]
mov edx, ebx
mov dword [esp + 0xec], 0
sub edx, eax
mov dword [esp + 0x330], ebx
mov dword [esp + 0x194], esi
lea edi, [ecx + eax*8]
mov ecx, dword [esp + 0x10c]
imul ecx, esi
add ecx, dword [esp + 0x134]
mov dword [esp + 0xe8], edi
lea edi, [ecx + eax*8]
mov dword [esp + 0xf4], edi
mov edi, dword [esp + 0x114]
imul edi, esi
mov ecx, dword [esp + 0x34c]
add edi, dword [esp + 0x138]
mov ebx, dword [esp + 0xf4]
mov esi, dword [esp + 0xe8]
lea ecx, [ecx + eax*8]
lea eax, [edi + eax*8]
mov edi, dword [esp + 0xec]
movsd xmm0, qword [0x68fac0]
movsd xmm1, qword [0x68fac0]
mulsd xmm0, qword [ebx + edi*8 + 8]
mulsd xmm1, qword [eax + edi*8 + 8]
addsd xmm0, qword [esi + edi*8 + 8]
addsd xmm1, qword [ecx + edi*8 + 8]
movsd qword [esi + edi*8 + 8], xmm0
movsd qword [ecx + edi*8 + 8], xmm1
inc edi
cmp edi, edx
jb 0x58f4cc
mov ebx, dword [esp + 0x330]
mov esi, dword [esp + 0x194]
mov edi, dword [0x6c5bd8]
shl edi, 3
mov ecx, dword [0x6c5bb8]
mov dword [esp + 0x330], ebx
sub ecx, edi
mov edi, dword [esp + 0x1cc]
mov ebx, dword [esp + 0x198]
mov edx, dword [0x6c5be0]
mov eax, dword [esp + 0x19c]
mov edi, dword [edi + ebx*4]
mov dword [esp + 0x288], edi
mov edi, dword [esp + 0x74]
imul edi, ebx
imul eax, edx
mov ebx, dword [esp + 0x40]
mov dword [esp + 0xfc], 0
mov dword [esp + 0x194], esi
add ebx, edi
add edi, dword [esp + 0xe0]
mov dword [esp + 0x284], ebx
mov dword [esp + 0x298], edi
mov edi, dword [esp + 0x94]
mov ebx, dword [esp + 0x3c]
lea edi, [edi + ebx*4]
mov dword [esp + 0x290], edi
mov edi, dword [esp + 0x98]
lea ebx, [edi + ebx*4]
mov edi, dword [esp + 0x158]
imul edi, edx
imul edx, dword [esp + 0x15c]
add edi, ecx
add ecx, edx
sub edi, eax
sub ecx, eax
mov dword [esp + 0x158], edi
mov dword [esp + 0x294], ebx
mov eax, dword [esp + 0xfc]
mov esi, edi
mov edi, dword [esp + 0x34c]
mov ebx, dword [esp + 0x348]
mov dword [esp + 0x17c], ecx
mov edx, dword [esp + 0x284]
movsd xmm0, qword [ebx + eax*8 + 8]
xorps xmm0, xmmword [0x68faa0]
movsd qword [edx + eax*8 + 8], xmm0
mov ecx, dword [esp + 0x298]
mov edx, dword [esp + 0x290]
movsd xmm1, qword [edi + eax*8 + 8]
xorps xmm1, xmmword [0x68faa0]
movsd qword [ecx + eax*8 + 8], xmm1
mov ecx, dword [edx + eax*4 + 4]
mov edx, dword [esp + 0x294]
cmp dword [esp + 0x288], 0
movsd xmm2, qword [esi + ecx*8]
mov edx, dword [edx + eax*4 + 4]
addsd xmm2, qword [ebx + eax*8 + 8]
movsd qword [esi + ecx*8], xmm2
jne 0x58f667
mov ecx, dword [esp + 0x17c]
movsd xmm0, qword [ecx + edx*8]
addsd xmm0, qword [edi + eax*8 + 8]
movsd qword [ecx + edx*8], xmm0
inc eax
cmp eax, dword [esp + 0x330]
jb 0x58f5ec
mov ebx, dword [esp + 0x330]
mov esi, dword [esp + 0x194]
add dword [esp + 0x3c], eax
imul ebx, dword [esp + 0x154]
inc esi
add dword [esp + 0x240], ebx
cmp esi, dword [esp + 0x108]
jle 0x58e4b9
mov ebx, 1
mov esi, dword [0x76e510]
mov ecx, ebx
test esi, esi
jle 0x5950a8
xor edx, edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x78], edx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x74], edx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x1fc], ebx
mov dword [esp + 0x80], esi
mov eax, dword [esp + 0x88]
cmp eax, dword [esp + 0x78]
jle 0x58f762
mov edx, dword [0x6c61b4]
mov ebx, dword [0x6c61b0]
imul edx, ebx
mov ecx, dword [0x6c61a8]
shl ecx, 2
mov eax, dword [0x6c6188]
sub ebx, ecx
sub eax, edx
mov esi, dword [esp + 0x30]
add eax, ebx
inc esi
mov dword [esp + 0x30], esi
cmp dword [eax + esi*4], 3
je 0x595094
mov edx, esi
inc edx
mov dword [esp + 0x30], edx
cmp dword [eax + edx*4], 3
je 0x595094
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x78]
mov ebx, dword [esp + 0x30]
inc ebx
cmp dword [eax + ebx*4], 3
jne 0x58f756
inc ecx
cmp ecx, edx
jl 0x58f74e
mov dword [esp + 0x78], ecx
mov dword [esp + 0x30], ebx
mov eax, dword [0x6c7038]
shl eax, 2
neg eax
add eax, dword [0x6c7018]
mov ecx, dword [esp + 0x88]
mov ebx, dword [0x6c7010]
shl ebx, 2
mov edx, dword [eax + ecx*4]
neg ebx
mov dword [esp + 0x7c], edx
mov edx, dword [0x6c6fe8]
shl edx, 2
mov edi, dword [0x6c6fc8]
neg edx
add ebx, dword [0x6c6ff0]
lea eax, [edi + ecx*4]
mov esi, dword [ebx + ecx*4]
mov ebx, dword [edx + eax]
mov dword [esp + 0x198], esi
mov dword [esp + 0x430], ebx
mov dword [esp + 0x2d0], ebx
mov esi, dword [0x6c6f70]
shl esi, 2
mov ebx, dword [0x6c6f48]
neg esi
shl ebx, 2
neg ebx
add esi, dword [0x6c6f50]
add ebx, dword [0x6c6f28]
mov edi, dword [esi + ecx*4]
mov esi, dword [ebx + ecx*4]
mov dword [esp + 0xd4], edi
mov dword [esp + 0x388], esi
mov dword [esp + 0xd0], esi
cmp ecx, 1
jle 0x58f80e
mov ecx, dword [esp + 0x3c]
add ecx, dword [edx + eax - 4]
mov dword [esp + 0x3c], ecx
cmp dword [esp + 0x430], 0
jle 0x595053
mov ecx, dword [0x6c6f78]
mov esi, dword [0x6c5c74]
mov dword [esp + 0x1a0], ecx
mov ecx, dword [0x6c6cd8]
imul esi, dword [0x6c5c70]
mov dword [esp + 0x3b8], ecx
mov ecx, dword [0x6c5c68]
mov ebx, dword [0x6c6fa0]
mov eax, dword [0x6c7e18]
mov edx, dword [0x6c7e14]
shl ecx, 3
mov dword [esp + 0x6c], ecx
mov ecx, edx
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x9c], eax
imul ecx, eax
mov eax, dword [0x6c7e0c]
mov ebx, dword [0x6c7e08]
imul eax, ebx
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x88]
imul esi, edx
mov edi, dword [0x6c7e00]
mov dword [esp + 0x98], edx
lea edx, [ecx + eax]
mov dword [esp + 0x8c], edi
neg edx
add esi, dword [0x6c7de0]
shl edi, 3
neg edi
add edx, esi
add edi, ebx
add edx, edi
mov edi, dword [0x6c7d88]
mov dword [esp + 0x1dc], edx
mov edx, dword [esp + 0x88]
imul edx, edi
imul edi, dword [0x6c7d8c]
mov dword [esp + 0x1b8], esi
mov esi, dword [0x6c7d80]
mov dword [esp + 0x70], eax
add edx, dword [0x6c7d60]
mov dword [esp + 0x40], edx
lea eax, [esi*8]
mov dword [esp + 0x58], eax
lea eax, [edi + esi*8]
neg eax
add eax, edx
mov edx, dword [esp + 0xd4]
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x5c], edi
mov edi, dword [0x6c7dd8]
lea eax, [edx + 1]
imul eax, ebx
shl edi, 3
sub ecx, eax
neg edi
add edi, dword [0x6c7db8]
mov dword [esp + 0x1b0], edi
mov edi, dword [esp + 0x1b8]
mov ebx, dword [0x6c7e00]
sub edi, ecx
mov ecx, dword [esp + 0x70]
mov esi, dword [esp + 0x88]
mov edx, dword [0x6c7d58]
mov dword [esp + 0x110], 0
lea eax, [ecx + ebx*8]
sub edi, eax
mov eax, esi
imul eax, edx
imul edx, dword [0x6c7d5c]
mov ebx, dword [0x6c7d50]
mov dword [esp + 0x1b8], edi
add eax, dword [0x6c7d30]
mov dword [esp + 0x54], edx
lea edi, [edx + ebx*8]
neg edi
lea ecx, [ebx*8]
mov dword [esp + 0x50], ecx
add edi, eax
mov ecx, dword [0x6c7db0]
shl ecx, 3
mov dword [esp + 0x1ac], edi
neg ecx
mov edi, dword [esp + 0x38]
mov ebx, dword [0x6c6f78]
add ecx, dword [0x6c7d90]
mov dword [esp + 0x1a8], ecx
mov edx, dword [0x6c6f98]
lea ecx, [ebx + edi*4]
mov ebx, dword [0x6c6fa0]
shl edx, 2
mov dword [esp + 0x1a4], eax
sub ecx, edx
mov eax, dword [0x6c6fc0]
lea edi, [ebx + edi*4]
shl eax, 2
mov dword [esp + 0x1e4], ecx
sub edi, eax
mov ecx, dword [0x6c5c70]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x198]
imul eax, ecx
imul ecx, dword [esp + 0x7c]
mov dword [esp + 0x1e0], edi
mov edi, dword [0x6c5c48]
add eax, edi
add edi, ecx
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x64]
sub eax, edx
sub edi, edx
mov ebx, dword [esp + 0x6c]
sub eax, ebx
mov dword [esp + 0x398], eax
sub edi, ebx
mov ebx, dword [0x6c6cd8]
mov eax, dword [esp + 0x430]
and eax, 0xfffffff8
mov dword [esp + 0x3b4], eax
mov eax, dword [0x6c6ce8]
mov ecx, dword [0x6c6cdc]
neg eax
imul ecx, ebx
add eax, esi
imul eax, dword [0x6c6ce4]
mov esi, ecx
sub esi, ebx
add eax, dword [0x6c6cb0]
neg esi
mov dword [esp + 0x394], edi
add esi, eax
mov edi, dword [0x6c6cd0]
shl edi, 3
sub esi, edi
mov dword [esp + 0x14c], esi
mov esi, dword [esp + 0x3c]
mov edx, dword [0x6c6fa0]
lea edx, [edx + esi*4]
sub edx, dword [esp + 0x48]
mov dword [esp + 0x3b0], edx
mov edx, dword [0x6c6f78]
lea esi, [edx + esi*4]
sub esi, dword [esp + 0x4c]
lea edx, [ebx + ebx*2]
neg edx
add edx, ecx
neg edx
add edx, eax
sub edx, edi
mov dword [esp + 0x144], esi
lea esi, [ebx + ebx*4]
mov dword [esp + 0x15c], edx
lea edx, [ebx*8]
neg esi
neg edx
add esi, ecx
add edx, ebx
neg esi
add ecx, edx
add esi, eax
sub eax, ecx
mov edx, dword [0x6c7e0c]
sub eax, edi
mov ebx, dword [0x6c7de0]
sub esi, edi
mov ecx, dword [0x6c7e08]
mov dword [esp + 0x154], esi
mov dword [esp + 0x384], ebx
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0x394]
mov ecx, dword [esp + 0x398]
mov ebx, dword [esp + 0x110]
mov dword [esp + 0x114], eax
mov esi, dword [esp + 0x1e4]
mov edi, dword [esp + 0x1e0]
cmp dword [esp + 0x430], 8
mov eax, dword [esi + ebx*4 + 4]
mov esi, dword [edi + ebx*4 + 4]
mov edi, dword [esp + 0x1dc]
movsd xmm1, qword [edx + eax*8]
mov eax, dword [esp + 0x1b8]
movsd xmm0, qword [ecx + esi*8]
movsd qword [edi + ebx*8 + 8], xmm0
movsd qword [eax + ebx*8 + 8], xmm1
jl 0x595045
mov esi, dword [esp + 0x14c]
pxor xmm2, xmm2
mov eax, dword [esp + 0x3b4]
movaps xmm0, xmm2
mov dword [esp + 0x118], 0
lea edi, [esi + ebx*8]
mov esi, dword [esp + 0x15c]
movaps xmm1, xmm0
mov dword [esp + 0x39c], edi
mov dword [esp + 0x110], ebx
mov dword [esp + 0x10c], eax
lea edi, [esi + ebx*8]
mov dword [esp + 0x3a0], edi
mov esi, dword [esp + 0x154]
mov edi, dword [esp + 0x114]
mov ecx, dword [esp + 0x144]
mov edx, dword [esp + 0x3b0]
lea esi, [esi + ebx*8]
mov dword [esp + 0x390], esi
lea edi, [edi + ebx*8]
mov dword [esp + 0x38c], edi
mov ebx, dword [esp + 0x118]
mov edi, dword [esp + 0x3b8]
mov eax, edi
imul eax, ebx
mov esi, dword [esp + 0x39c]
mov dword [esp + 0x3d4], eax
add esi, eax
movsd xmm4, qword [esi + 8]
movhpd xmm4, qword [esi + edi + 8]
mov esi, dword [edx + ebx*4]
mov edi, dword [esp + 0x398]
movsd xmm3, qword [edi + esi*8]
mov esi, dword [edx + ebx*4 + 4]
movhpd xmm3, qword [edi + esi*8]
mov edi, dword [ecx + ebx*4]
mov esi, dword [esp + 0x394]
mulpd xmm3, xmm4
movsd xmm5, qword [esi + edi*8]
mov edi, dword [ecx + ebx*4 + 4]
addpd xmm2, xmm3
movhpd xmm5, qword [esi + edi*8]
mov edi, dword [esp + 0x3a0]
mulpd xmm5, xmm4
addpd xmm0, xmm5
add eax, edi
mov edi, dword [esp + 0x3b8]
movsd xmm7, qword [eax + 8]
movhpd xmm7, qword [eax + edi + 8]
mov eax, dword [edx + ebx*4 + 8]
mov edi, dword [esp + 0x398]
movsd xmm6, qword [edi + eax*8]
mov eax, dword [edx + ebx*4 + 0xc]
movhpd xmm6, qword [edi + eax*8]
mov eax, dword [ecx + ebx*4 + 8]
mulpd xmm6, xmm7
movsd xmm3, qword [esi + eax*8]
mov eax, dword [ecx + ebx*4 + 0xc]
addpd xmm1, xmm6
movhpd xmm3, qword [esi + eax*8]
mov eax, dword [esp + 0x3d4]
mov esi, dword [esp + 0x390]
mulpd xmm3, xmm7
addpd xmm3, xmm0
add eax, esi
mov esi, dword [esp + 0x3b8]
movsd xmm7, qword [eax + 8]
movhpd xmm7, qword [eax + esi + 8]
mov eax, dword [edx + ebx*4 + 0x10]
movsd xmm0, qword [edi + eax*8]
mov eax, dword [edx + ebx*4 + 0x14]
movhpd xmm0, qword [edi + eax*8]
mov eax, dword [ecx + ebx*4 + 0x10]
mov edi, dword [esp + 0x394]
mulpd xmm0, xmm7
nop dword [eax]
movsd xmm6, qword [edi + eax*8]
mov eax, dword [ecx + ebx*4 + 0x14]
addpd xmm2, xmm0
movhpd xmm6, qword [edi + eax*8]
mov eax, dword [esp + 0x3d4]
add eax, dword [esp + 0x38c]
mulpd xmm6, xmm7
movsd xmm5, qword [eax + 8]
movhpd xmm5, qword [eax + esi + 8]
mov eax, dword [edx + ebx*4 + 0x18]
mov esi, dword [esp + 0x398]
addpd xmm6, xmm3
nop
movsd xmm4, qword [esi + eax*8]
mov eax, dword [edx + ebx*4 + 0x1c]
movhpd xmm4, qword [esi + eax*8]
mov esi, dword [ecx + ebx*4 + 0x18]
mov eax, dword [ecx + ebx*4 + 0x1c]
add ebx, 8
mulpd xmm4, xmm5
movsd xmm0, qword [edi + esi*8]
movhpd xmm0, qword [edi + eax*8]
mulpd xmm0, xmm5
addpd xmm1, xmm4
addpd xmm0, xmm6
cmp ebx, dword [esp + 0x3b4]
jb 0x58fc03
addpd xmm2, xmm1
movaps xmm3, xmm0
movaps xmm1, xmm2
unpckhpd xmm3, xmm0
unpckhpd xmm1, xmm2
addsd xmm0, xmm3
addsd xmm2, xmm1
mov eax, dword [esp + 0x10c]
mov edx, edi
mov ecx, dword [esp + 0x398]
mov ebx, dword [esp + 0x110]
mov esi, dword [esp + 0x3b8]
imul esi, eax
cmp eax, dword [esp + 0x430]
jae 0x58fe24
mov edi, dword [esp + 0x14c]
mov dword [esp + 0x110], ebx
lea edi, [edi + ebx*8]
mov ebx, dword [esp + 0x144]
lea esi, [esi + edi + 8]
mov edi, dword [esp + 0x3b0]
movsd xmm3, qword [esi]
movaps xmm1, xmm3
mov edi, dword [edi + eax*4]
add esi, dword [esp + 0x3b8]
mulsd xmm1, qword [ecx + edi*8]
mov edi, dword [ebx + eax*4]
inc eax
addsd xmm2, xmm1
mulsd xmm3, qword [edx + edi*8]
addsd xmm0, xmm3
cmp eax, dword [esp + 0x430]
jb 0x58fde6
mov ebx, dword [esp + 0x110]
mov eax, dword [esp + 0x1b4]
mov edi, dword [esp + 0x1ac]
mov esi, dword [esp + 0x1b0]
addsd xmm2, qword [eax + ebx*8 + 8]
addsd xmm0, qword [edi + ebx*8 + 8]
mov eax, dword [esp + 0x1a8]
movsd qword [esi + ebx*8 + 8], xmm2
movsd qword [eax + ebx*8 + 8], xmm0
inc ebx
cmp ebx, dword [esp + 0x430]
jb 0x58fb38
mov dword [esp + 0x110], ebx
mov eax, ebx
add dword [esp + 0x38], eax
mov ebx, dword [esp + 0x384]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
cmp dword [esp + 0xd4], 0
jle 0x594ff2
mov edi, dword [0x6c7ca0]
xor esi, esi
inc esi
mov dword [esp + 0x224], edi
mov edi, dword [0x6c7c64]
mov dword [esp + 0x218], edi
lea eax, [0x6c7a94]
mov edi, dword [eax]
mov dword [esp + 0x164], edi
mov edi, dword [eax - 0xc]
mov dword [esp + 0x138], edi
lea edx, [0x6c7a20]
mov edi, dword [edx]
mov dword [esp + 0x344], edi
mov edi, dword [edx + 0x44]
mov dword [esp + 0x134], edi
mov edi, dword [edx + 0x40]
mov dword [esp + 0x130], edi
mov edi, dword [edx + 0x38]
mov dword [esp + 0x12c], edi
lea edi, [0x6c7cac]
mov ebx, dword [edi]
mov ecx, dword [edi - 8]
mov edi, dword [edx + 0x34]
mov dword [esp + 0x228], ebx
mov dword [esp + 0x20c], ecx
mov dword [esp + 0x3f4], edi
mov eax, dword [0x6c7cb0]
lea edi, [0x6c7c38]
mov ebx, dword [edi]
mov ecx, dword [edi + 0x34]
mov edi, dword [edx + 0x2c]
mov dword [esp + 0x34c], eax
mov dword [esp + 0x220], ebx
mov dword [esp + 0x21c], ecx
mov dword [esp + 0x128], edi
mov edx, dword [esp + 0x84]
mov eax, dword [0x6c7c98]
lea edi, [0x6c7c60]
mov ebx, dword [edi]
mov ecx, dword [edi - 8]
mov edi, dword [0x6c7a48]
mov dword [esp + 0xcc], edx
mov dword [esp + 0x208], eax
mov dword [esp + 0x214], ebx
mov dword [esp + 0x210], ecx
mov dword [esp + 0x124], edi
mov edx, dword [0x6c7c78]
mov eax, dword [0x6c7c70]
lea edi, [0x6c7a68]
mov ebx, dword [edi]
mov ecx, dword [edi + 0x28]
mov edi, dword [0x6c7a40]
mov dword [esp + 0x120], edi
mov dword [esp + 0x200], eax
mov dword [esp + 0x204], edx
mov dword [esp + 0x3d8], ecx
mov dword [esp + 0x104], ebx
mov dword [esp + 0x22c], esi
mov ebx, dword [0x6c7d08]
mov eax, dword [0x6c7d28]
mov edx, dword [0x6c7ce0]
mov ecx, dword [0x6c7d00]
mov esi, dword [0x6c7cb8]
mov dword [esp + 0x100], ebx
mov dword [esp + 0xe0], eax
mov dword [esp + 0xfc], edx
mov dword [esp + 0xdc], ecx
mov dword [esp + 0xf8], esi
mov ebx, dword [0x6c7bf8]
mov eax, dword [0x6c7c2c]
mov edx, dword [0x6c7c24]
mov ecx, dword [0x6c7c20]
mov esi, dword [0x6c7c18]
mov edi, dword [0x6c7cd8]
mov dword [esp + 0xf4], ebx
mov dword [esp + 0x348], edi
mov ebx, dword [0x6c7c30]
mov dword [esp + 0xf0], eax
mov dword [esp + 0xec], edx
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xe4], esi
cmp dword [esp + 0x430], 2
jl 0x594fe2
mov eax, edi
mov ecx, 1
lea edx, [eax*8]
neg edx
add edx, dword [esp + 0xf8]
mov dword [esp + 0x35c], edx
lea esi, [edx + 8]
and esi, 0xf
cmovne esi, ecx
mov dword [esp + 0x354], esi
lea edi, [esi + 2]
cmp edi, dword [esp + 0x430]
jg 0x594fe2
mov eax, dword [esp + 0x430]
mov edx, eax
sub edx, dword [esp + 0x354]
and edx, 1
neg edx
mov ecx, dword [esp + 0x22c]
mov edi, ecx
add edx, eax
mov esi, dword [esp + 0x210]
mov dword [esp + 0x350], edx
mov edx, dword [esp + 0x1fc]
mov eax, edx
sub edi, dword [esp + 0x218]
shl esi, 3
sub eax, dword [esp + 0x200]
neg esi
imul edi, dword [esp + 0x214]
imul eax, dword [esp + 0x21c]
add esi, dword [esp + 0x220]
add edi, esi
mov esi, ecx
add eax, edi
mov edi, dword [esp + 0x208]
sub esi, dword [esp + 0x20c]
mov dword [esp + 0x360], eax
mov eax, edx
sub eax, dword [esp + 0x34c]
shl edi, 3
imul esi, dword [esp + 0x224]
neg edi
imul eax, dword [esp + 0x228]
add edi, dword [esp + 0x204]
sub edx, ebx
add esi, edi
add eax, esi
mov esi, dword [esp + 0xe0]
sub ecx, dword [esp + 0xec]
imul ecx, dword [esp + 0xe8]
imul edx, dword [esp + 0xf0]
lea edi, [esi*8]
mov esi, dword [esp + 0xdc]
neg edi
add edi, dword [esp + 0x100]
mov dword [esp + 0x358], edi
lea edi, [esi*8]
mov esi, dword [esp + 0xe4]
neg edi
add edi, dword [esp + 0xfc]
mov dword [esp + 0x108], edi
mov edi, dword [esp + 0x360]
shl esi, 3
neg esi
add esi, dword [esp + 0xf4]
add ecx, esi
add edx, ecx
cmp dword [esp + 0x354], 0
jbe 0x590225
mov dword [esp + 0xd8], ebx
xor esi, esi
mov ecx, dword [esp + 0x108]
mov ebx, dword [esp + 0x358]
movsd xmm0, qword [eax + esi*8 + 8]
movsd xmm1, qword [edi + esi*8 + 8]
movsd qword [ebx + esi*8 + 8], xmm0
mov ebx, dword [esp + 0x35c]
movsd xmm2, qword [edx + esi*8 + 8]
movsd qword [ecx + esi*8 + 8], xmm1
movsd qword [ebx + esi*8 + 8], xmm2
inc esi
cmp esi, dword [esp + 0x354]
jb 0x5901e2
mov ebx, dword [esp + 0xd8]
mov dword [esp + 0xd8], ebx
mov dword [esp + 0x364], eax
mov dword [esp + 0x360], edi
mov esi, dword [esp + 0x108]
mov eax, dword [esp + 0x358]
mov ebx, dword [esp + 0x354]
mov ecx, dword [esp + 0x35c]
mov edi, dword [esp + 0x364]
movups xmm2, xmmword [edx + ebx*8 + 8]
movups xmm0, xmmword [edi + ebx*8 + 8]
mov edi, dword [esp + 0x360]
movups xmmword [eax + ebx*8 + 8], xmm0
movups xmmword [ecx + ebx*8 + 8], xmm2
movups xmm1, xmmword [edi + ebx*8 + 8]
movups xmmword [esi + ebx*8 + 8], xmm1
add ebx, 2
cmp ebx, dword [esp + 0x350]
jb 0x590256
mov ebx, dword [esp + 0xd8]
mov eax, dword [esp + 0x350]
cmp eax, dword [esp + 0x430]
jae 0x590429
mov esi, dword [esp + 0x218]
neg esi
mov edi, dword [esp + 0x200]
mov eax, dword [esp + 0x22c]
neg edi
add esi, eax
mov edx, dword [esp + 0x1fc]
add edi, edx
imul esi, dword [esp + 0x214]
imul edi, dword [esp + 0x21c]
mov dword [esp + 0xd8], ebx
mov ebx, dword [esp + 0x210]
shl ebx, 3
mov ecx, dword [esp + 0x220]
sub ecx, ebx
add esi, ecx
add edi, esi
mov esi, dword [esp + 0x20c]
neg esi
add esi, eax
imul esi, dword [esp + 0x224]
mov ebx, dword [esp + 0x208]
shl ebx, 3
mov ecx, dword [esp + 0x204]
sub ecx, ebx
mov ebx, dword [esp + 0x348]
add esi, ecx
shl ebx, 3
neg ebx
add ebx, dword [esp + 0xf8]
mov ecx, dword [esp + 0xe0]
shl ecx, 3
mov dword [esp + 0x348], ebx
neg ecx
mov ebx, dword [esp + 0xdc]
shl ebx, 3
add ecx, dword [esp + 0x100]
neg ebx
add ebx, dword [esp + 0xfc]
mov dword [esp + 0xe0], ecx
mov ecx, dword [esp + 0xec]
neg ecx
mov dword [esp + 0x200], edi
add ecx, eax
mov edi, dword [esp + 0x34c]
mov dword [esp + 0xdc], ebx
neg edi
mov ebx, dword [esp + 0xd8]
add edi, edx
neg ebx
imul ecx, dword [esp + 0xe8]
add ebx, edx
imul edi, dword [esp + 0x228]
imul ebx, dword [esp + 0xf0]
mov eax, dword [esp + 0xe4]
add edi, esi
shl eax, 3
mov edx, dword [esp + 0xf4]
sub edx, eax
add ecx, edx
mov eax, dword [esp + 0xdc]
add ebx, ecx
mov ecx, dword [esp + 0x200]
mov edx, dword [esp + 0xe0]
mov esi, dword [esp + 0x350]
mov dword [esp + 0x34c], edi
mov edi, dword [esp + 0x34c]
movsd xmm1, qword [ecx + esi*8 + 8]
movsd xmm2, qword [ebx + esi*8 + 8]
movsd xmm0, qword [edi + esi*8 + 8]
mov edi, dword [esp + 0x348]
movsd qword [edx + esi*8 + 8], xmm0
movsd qword [eax + esi*8 + 8], xmm1
movsd qword [edi + esi*8 + 8], xmm2
inc esi
cmp esi, dword [esp + 0x430]
jb 0x5903ed
mov ebx, dword [esp + 0x3d8]
mov edi, dword [esp + 0x164]
imul edi, ebx
mov edx, dword [esp + 0x124]
mov eax, dword [esp + 0x388]
shr eax, 1
mov dword [esp + 0x3f0], eax
mov eax, dword [esp + 0x22c]
imul eax, edx
imul edx, dword [esp + 0x128]
mov esi, dword [esp + 0x104]
sub esi, edi
mov ecx, dword [esp + 0x120]
shl ecx, 4
mov edi, dword [esp + 0x138]
add edx, ecx
shl edi, 4
mov ecx, esi
sub ecx, edi
mov dword [esp + 0x328], ecx
lea ecx, [ebx + esi]
sub ecx, edi
lea ebx, [esi + ebx*2]
sub ebx, edi
mov dword [esp + 0x320], ebx
mov edi, dword [esp + 0x134]
mov ebx, dword [esp + 0x130]
imul edi, ebx
imul ebx, dword [esp + 0x1fc]
mov dword [esp + 0x324], ecx
mov ecx, dword [esp + 0x3f4]
mov esi, dword [esp + 0x344]
sub esi, edi
mov edi, dword [esp + 0x12c]
imul edi, ecx
sub esi, edi
mov edi, eax
sub edi, edx
add edi, esi
add edi, ebx
mov dword [esp + 0x330], edi
lea edi, [eax + ecx*2]
add eax, ecx
sub edi, edx
sub eax, edx
add edi, esi
add esi, eax
add edi, ebx
mov dword [esp + 0x2d8], 0
add esi, ebx
mov dword [esp + 0x32c], edi
mov dword [esp + 0x344], esi
mov edi, dword [esp + 0x2d8]
cmp dword [esp + 0x388], 0
jle 0x590606
cmp dword [esp + 0x3f0], 0
jbe 0x594fd8
mov ecx, edi
xor edx, edx
shl ecx, 4
mov eax, dword [esp + 0x32c]
mov esi, dword [esp + 0x324]
mov ebx, dword [esp + 0x320]
mov dword [esp + 0x2d8], edi
add eax, ecx
mov dword [esp + 0x2dc], eax
add esi, ecx
xor eax, eax
add ebx, ecx
mov dword [esp + 0x3e0], ebx
mov dword [esp + 0x3dc], esi
add ecx, dword [esp + 0x344]
mov ebx, eax
mov esi, dword [esp + 0x2dc]
movups xmm0, xmmword [ecx + eax*2 + 0x10]
movups xmm1, xmmword [esi + eax*2 + 0x10]
mov edi, dword [esp + 0x3dc]
inc edx
add eax, dword [esp + 0x3f4]
movups xmmword [edi + ebx*2 + 0x10], xmm0
mov edi, dword [esp + 0x3e0]
movups xmmword [edi + ebx*2 + 0x10], xmm1
add ebx, dword [esp + 0x3d8]
cmp edx, dword [esp + 0x3f0]
jb 0x590586
mov edi, dword [esp + 0x2d8]
lea eax, [edx + edx + 1]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x388]
jae 0x590606
mov edx, eax
mov ecx, edi
imul edx, dword [esp + 0x3f4]
imul eax, dword [esp + 0x3d8]
shl ecx, 4
add edx, dword [esp + 0x330]
add eax, dword [esp + 0x328]
movups xmm0, xmmword [edx + ecx + 0x10]
movups xmmword [eax + ecx + 0x10], xmm0
inc edi
cmp edi, dword [esp + 0x430]
jb 0x59051a
mov eax, dword [esp + 0xf8]
lea edi, [esp + 0xd0]
mov edx, dword [edi + 0x2c]
lea esi, [esp + 0x2d0]
mov ecx, dword [esi - 0x1d0]
lea ebx, [esp + 0xcc]
push ebx
push 0x76e5b0
push eax
push edx
push ecx
push esi
push edi
call fcn.0056f2e0
add esp, 0x1c
mov edx, dword [esp + 0x2d0]
test edx, edx
jle 0x594ebe
mov ebx, dword [0x6c7a90]
mov dword [esp + 0x430], edx
mov edx, dword [esp + 0xcc]
mov dword [esp + 0x3d8], ebx
mov esi, dword [0x6c7a88]
mov ebx, dword [0x6c7a64]
mov dword [esp + 0x1fc], edx
sub edx, ebx
mov dword [esp + 0x138], esi
mov esi, dword [0x6c7a60]
imul edx, esi
mov ecx, dword [0x6c7a68]
mov edi, dword [esp + 0xd0]
mov dword [esp + 0x104], ecx
mov dword [esp + 0x388], edi
mov ecx, dword [0x6c7a20]
add edx, ecx
shr edi, 1
mov dword [esp + 0x130], esi
mov dword [esp + 0x3ec], edi
mov edi, dword [0x6c7a54]
mov esi, dword [esp + 0x22c]
mov dword [esp + 0x344], ecx
mov ecx, dword [0x6c7a58]
sub esi, dword [0x6c7a4c]
imul ecx, edi
imul esi, dword [0x6c7a48]
mov eax, dword [0x6c7a94]
mov dword [esp + 0x164], eax
mov eax, dword [0x6c7a58]
mov dword [esp + 0x12c], eax
mov eax, dword [0x6c7a54]
mov dword [esp + 0x3f4], eax
mov eax, dword [0x6c7a4c]
mov dword [esp + 0x134], ebx
mov ebx, ecx
mov dword [esp + 0x128], eax
sub ebx, esi
mov eax, dword [0x6c7a48]
neg ebx
mov dword [esp + 0x124], eax
add ebx, edx
mov eax, dword [0x6c7a40]
mov dword [esp + 0x120], eax
shl eax, 4
sub ebx, eax
mov dword [esp + 0x310], ebx
mov ebx, ecx
sub ebx, edi
add edi, edi
sub ebx, esi
sub ecx, edi
neg ebx
add ebx, edx
sub ebx, eax
mov dword [esp + 0x318], ebx
mov ebx, dword [0x6c7a90]
mov dword [esp + 0x2e4], edx
mov edx, dword [0x6c7a94]
imul edx, ebx
neg edx
add edx, dword [0x6c7a68]
mov dword [esp + 0x178], eax
mov eax, dword [0x6c7a88]
mov dword [esp + 0x174], esi
mov esi, edx
shl eax, 4
sub esi, eax
mov dword [esp + 0x30c], esi
lea esi, [edx + ebx]
sub ecx, dword [esp + 0x174]
sub esi, eax
mov dword [esp + 0x308], esi
lea edx, [edx + ebx*2]
mov esi, dword [esp + 0x2e4]
sub edx, eax
sub esi, ecx
sub esi, dword [esp + 0x178]
mov dword [esp + 0x2e0], 0
mov dword [esp + 0x2e8], edx
mov dword [esp + 0x2e4], esi
mov edi, dword [esp + 0x2e0]
cmp dword [esp + 0x388], 0
jle 0x5908e5
cmp dword [esp + 0x3ec], 0
jbe 0x594eb4
mov ecx, edi
xor edx, edx
shl ecx, 4
mov eax, dword [esp + 0x2e4]
mov esi, dword [esp + 0x318]
mov ebx, dword [esp + 0x308]
mov dword [esp + 0x2e0], edi
add eax, ecx
mov dword [esp + 0x2ec], eax
add esi, ecx
xor eax, eax
add ebx, ecx
mov dword [esp + 0x3e8], ebx
mov dword [esp + 0x3e4], esi
add ecx, dword [esp + 0x2e8]
mov ebx, eax
mov esi, dword [esp + 0x2ec]
mov edi, dword [esp + 0x3e8]
inc edx
movups xmm1, xmmword [ecx + ebx*2 + 0x10]
movups xmm0, xmmword [edi + ebx*2 + 0x10]
movups xmmword [esi + eax*2 + 0x10], xmm1
mov edi, dword [esp + 0x3e4]
add ebx, dword [esp + 0x3d8]
movups xmmword [edi + eax*2 + 0x10], xmm0
add eax, dword [esp + 0x3f4]
cmp edx, dword [esp + 0x3ec]
jb 0x590865
mov edi, dword [esp + 0x2e0]
lea eax, [edx + edx + 1]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x388]
jae 0x5908e5
mov edx, eax
mov ecx, edi
imul edx, dword [esp + 0x3d8]
imul eax, dword [esp + 0x3f4]
shl ecx, 4
add edx, dword [esp + 0x30c]
add eax, dword [esp + 0x310]
movups xmm0, xmmword [edx + ecx + 0x10]
movups xmmword [eax + ecx + 0x10], xmm0
inc edi
cmp edi, dword [esp + 0x430]
jb 0x5907f9
mov edx, dword [0x6c7c98]
mov dword [esp + 0x208], edx
pxor xmm1, xmm1
mov edx, dword [0x6c7c6c]
pxor xmm0, xmm0
mov ebx, dword [0x6c7ca0]
mov dword [esp + 0x21c], edx
mov edx, dword [0x6c7c58]
mov dword [esp + 0x224], ebx
mov ebx, dword [0x6c7c70]
mov eax, dword [0x6c7ca4]
mov dword [esp + 0x210], edx
mov edx, dword [0x6c6d18]
mov dword [esp + 0x200], ebx
mov dword [esp + 0x20c], eax
mov ebx, dword [0x6c7c60]
mov eax, dword [0x6c7c38]
mov dword [esp + 0x448], edx
mov edx, dword [0x6c7b88]
shl edx, 3
mov dword [esp + 0x214], ebx
neg edx
mov dword [esp + 0x220], eax
mov ebx, dword [0x6c6d98]
mov eax, dword [0x6c7c64]
mov dword [esp + 0x450], ebx
mov dword [esp + 0x218], eax
mov ebx, dword [0x6c7b68]
mov eax, dword [0x6c6dd8]
mov dword [esp + 0x44c], eax
mov eax, dword [0x6c6bc8]
mov dword [esp + 0x2f8], eax
mov dword [esp + 0x248], ebx
add ebx, edx
mov dword [esp + 0x244], edx
mov eax, dword [esp + 0x1fc]
mov dword [esp + 0x434], ebx
mov ebx, eax
mov edx, dword [0x6c7e14]
imul ebx, edx
imul edx, dword [0x6c7e18]
mov dword [esp + 0x250], edx
mov edx, eax
mov ecx, dword [0x6c7cb0]
mov edi, dword [0x6c7cac]
imul edx, edi
mov dword [esp + 0x34c], ecx
mov dword [esp + 0x228], edi
imul edi, ecx
mov ecx, dword [0x6c7c6c]
imul eax, ecx
imul ecx, dword [0x6c7c70]
mov esi, dword [0x6c7c78]
add edx, esi
mov dword [esp + 0x204], esi
mov dword [esp + 0x474], edx
mov esi, dword [0x6c7c98]
mov edx, dword [0x6c7c58]
add eax, dword [0x6c7c38]
mov dword [esp + 0x478], eax
mov eax, dword [0x6c7b10]
shl eax, 3
mov dword [esp + 0x254], edi
lea edi, [esi*8]
neg eax
lea esi, [edx*8]
mov dword [esp + 0x258], edi
mov dword [esp + 0x260], esi
mov esi, dword [esp + 0x22c]
mov edx, dword [0x6c7e08]
mov edi, dword [0x6c7e0c]
imul esi, edx
imul edi, edx
add eax, dword [0x6c7af0]
add edx, esi
mov dword [esp + 0x37c], eax
mov eax, dword [0x6c7e00]
add ebx, dword [0x6c7de0]
mov dword [esp + 0x25c], ecx
mov ecx, ebx
mov dword [esp + 0x2f4], 0
lea edi, [edi + eax*8]
mov eax, dword [esp + 0x250]
sub ecx, eax
sub eax, esi
sub edx, edi
sub ebx, eax
add ecx, edx
mov dword [esp + 0x36c], ecx
sub ebx, edi
mov ecx, dword [esp + 0x22c]
mov edi, dword [0x6c7c60]
imul ecx, edi
imul edi, dword [0x6c7c64]
mov dword [esp + 0x380], ebx
mov esi, ecx
mov ebx, dword [0x6c7b38]
sub esi, edi
shl ebx, 3
neg ebx
add ebx, dword [0x6c7b18]
mov eax, dword [esp + 0x478]
mov edx, eax
mov dword [esp + 0x460], ebx
mov ebx, dword [esp + 0x25c]
sub edx, ebx
sub ebx, ecx
add edx, esi
mov ecx, dword [0x6c7c58]
sub eax, ebx
mov ebx, dword [0x6c6de4]
sub edx, dword [esp + 0x260]
add edx, 8
lea esi, [edi + ecx*8]
sub eax, esi
and edx, 0xf
mov dword [esp + 0x478], eax
mov eax, dword [0x6c6de8]
imul eax, ebx
mov edi, dword [0x6c6ddc]
mov ecx, dword [0x6c6dd8]
imul edi, ecx
mov esi, dword [0x6c6db0]
sub esi, eax
mov eax, dword [esp + 0x1fc]
sub esi, edi
imul ebx, eax
mov dword [esp + 0x2fc], edx
mov edx, dword [0x6c6dd0]
shl edx, 3
sub ecx, edx
add ecx, esi
add ecx, ebx
mov dword [esp + 0x2cc], ebx
mov dword [esp + 0x370], ecx
mov ebx, dword [0x6c6da8]
mov ecx, dword [0x6c6da4]
imul ebx, ecx
imul ecx, eax
mov dword [esp + 0x264], esi
mov esi, dword [0x6c6d70]
sub esi, ebx
mov ebx, dword [0x6c6d98]
mov edi, dword [0x6c6d9c]
mov eax, ebx
imul edi, ebx
sub esi, edi
mov edi, dword [0x6c6d90]
shl edi, 3
sub eax, edi
add eax, esi
add eax, ecx
mov dword [esp + 0x374], eax
mov eax, dword [0x6c6dd8]
mov dword [esp + 0x268], edx
mov dword [esp + 0x2c8], ecx
mov dword [esp + 0x26c], esi
lea eax, [eax + eax*2]
sub eax, edx
add eax, dword [esp + 0x264]
mov edx, dword [esp + 0x2cc]
add eax, edx
mov dword [esp + 0x2c4], eax
lea eax, [ebx + ebx*2]
sub eax, edi
add eax, esi
add eax, ecx
mov ecx, dword [0x6c6dd8]
mov dword [esp + 0x2c0], eax
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x264]
sub eax, dword [esp + 0x268]
add eax, ecx
add eax, edx
mov dword [esp + 0x2bc], eax
lea eax, [ebx + ebx*4]
sub eax, edi
add eax, esi
mov esi, dword [0x6c6dd8]
add eax, dword [esp + 0x2c8]
mov dword [esp + 0x2b8], eax
lea eax, [esi*8]
sub eax, esi
sub eax, dword [esp + 0x268]
add ecx, eax
add edx, ecx
mov dword [esp + 0x2cc], edx
lea edx, [ebx*8]
sub edx, ebx
sub edx, edi
mov eax, dword [esp + 0x26c]
mov ebx, dword [esp + 0x22c]
add eax, edx
mov edx, dword [0x6c7ca0]
imul ebx, edx
imul edx, dword [0x6c7ca4]
add dword [esp + 0x2c8], eax
mov edi, ebx
mov esi, dword [esp + 0x2fc]
sub edi, edx
mov eax, dword [esp + 0x474]
and esi, 7
mov dword [esp + 0x300], esi
mov esi, eax
mov ecx, dword [esp + 0x254]
sub esi, ecx
sub ecx, ebx
add esi, edi
mov ebx, dword [0x6c7c98]
sub eax, ecx
mov edi, dword [0x6c6d28]
mov ecx, dword [0x6c6d10]
shl ecx, 3
lea ebx, [edx + ebx*8]
sub eax, ebx
mov dword [esp + 0x474], eax
mov eax, dword [0x6c6d24]
imul edi, eax
imul eax, dword [esp + 0x1fc]
mov ebx, dword [0x6c6cf0]
sub ebx, edi
mov edi, dword [0x6c6d18]
mov edx, dword [0x6c6d1c]
imul edx, edi
sub ebx, edx
mov edx, edi
sub edx, ecx
add edx, ebx
add edx, eax
mov dword [esp + 0x378], edx
lea edx, [edi + edi*2]
sub edx, ecx
add edx, ebx
add edx, eax
mov dword [esp + 0x45c], edx
lea edx, [edi + edi*4]
sub edx, ecx
add edx, ebx
add edx, eax
mov dword [esp + 0x458], edx
lea edx, [edi*8]
sub edx, edi
sub esi, dword [esp + 0x258]
sub edx, ecx
mov ecx, dword [0x6c7bb0]
add esi, 8
shl ecx, 3
add ebx, edx
mov edx, dword [0x6c6be8]
neg ecx
neg edx
and esi, 0xf
add ecx, dword [0x6c7b90]
add eax, ebx
add edx, dword [esp + 0x1fc]
mov dword [esp + 0x304], esi
and esi, 7
mov dword [esp + 0x31c], ecx
mov dword [esp + 0x314], edx
mov ebx, dword [esp + 0x2f4]
mov dword [esp + 0x340], esi
mov dword [esp + 0x470], eax
mov eax, dword [esp + 0x36c]
mov edx, dword [esp + 0x380]
mov ecx, dword [esp + 0x37c]
movsd xmm2, qword [eax + ebx*8 + 8]
mov esi, dword [esp + 0x460]
cmp dword [esp + 0x430], 8
subsd xmm2, qword [edx + ebx*8 + 8]
movsd qword [ecx + ebx*8 + 8], xmm2
movsd qword [esi + ebx*8 + 8], xmm0
jl 0x594eaa
mov esi, dword [esp + 0x2fc]
test esi, esi
je 0x590e28
cmp dword [esp + 0x300], 0
jne 0x594eaa
mov esi, 1
lea eax, [esi + 8]
cmp eax, dword [esp + 0x430]
jg 0x594eaa
mov eax, dword [esp + 0x370]
mov ecx, dword [esp + 0x430]
mov edi, ecx
sub edi, esi
and edi, 7
lea edx, [eax + ebx*8]
mov eax, dword [esp + 0x374]
neg edi
add edi, ecx
lea ecx, [ebx*8]
mov dword [esp + 0x480], edx
lea edx, [eax + ebx*8]
mov dword [esp + 0x47c], edx
test esi, esi
jbe 0x590eeb
xor edx, edx
xor eax, eax
mov dword [esp + 0x2f4], ebx
mov dword [esp + 0x46c], edi
mov ebx, eax
nop dword [eax + eax]
mov edi, dword [esp + 0x480]
movsd xmm2, qword [eax + edi + 8]
mov edi, dword [esp + 0x47c]
add eax, dword [esp + 0x44c]
addsd xmm2, qword [ebx + edi + 8]
mov edi, dword [esp + 0x478]
add ebx, dword [esp + 0x450]
mulsd xmm2, qword [edi + edx*8 + 8]
inc edx
mov edi, dword [esp + 0x460]
addsd xmm2, qword [edi + ecx + 8]
movsd qword [edi + ecx + 8], xmm2
cmp edx, esi
jb 0x590e90
mov edi, dword [esp + 0x46c]
mov ebx, dword [esp + 0x2f4]
mov eax, dword [esp + 0x2c0]
movaps xmm5, xmm1
mov edx, dword [esp + 0x2c4]
movaps xmm4, xmm5
movaps xmm3, xmm4
mov dword [esp + 0x46c], edi
lea ecx, [eax + ebx*8]
mov eax, dword [esp + 0x2bc]
lea edx, [edx + ebx*8]
mov dword [esp + 0x4a0], ecx
movaps xmm2, xmm3
mov dword [esp + 0x484], edx
mov dword [esp + 0x2f4], ebx
lea ecx, [eax + ebx*8]
mov dword [esp + 0x4a4], ecx
mov ecx, dword [esp + 0x2cc]
mov eax, dword [esp + 0x2b8]
lea ecx, [ecx + ebx*8]
mov dword [esp + 0x49c], ecx
mov ecx, dword [esp + 0x2c8]
lea eax, [eax + ebx*8]
mov dword [esp + 0x488], eax
lea ecx, [ecx + ebx*8]
mov dword [esp + 0x498], ecx
mov ecx, dword [esp + 0x44c]
mov ebx, ecx
imul ebx, esi
mov edi, dword [esp + 0x480]
mov edx, dword [esp + 0x450]
lea eax, [edi + ebx]
mov edi, dword [esp + 0x47c]
movsd xmm7, qword [eax + 8]
movhpd xmm7, qword [eax + ecx + 8]
mov eax, edx
imul eax, esi
add edi, eax
movsd xmm6, qword [edi + 8]
movhpd xmm6, qword [edi + edx + 8]
addpd xmm7, xmm6
mov edi, dword [esp + 0x478]
mulpd xmm7, xmmword [edi + esi*8 + 8]
mov edi, dword [esp + 0x484]
addpd xmm5, xmm7
add edi, ebx
movsd xmm7, qword [edi + 8]
movhpd xmm7, qword [edi + ecx + 8]
mov edi, dword [esp + 0x4a0]
add edi, eax
movsd xmm6, qword [edi + 8]
movhpd xmm6, qword [edi + edx + 8]
addpd xmm7, xmm6
mov edi, dword [esp + 0x478]
mulpd xmm7, xmmword [edi + esi*8 + 0x18]
mov edi, dword [esp + 0x4a4]
addpd xmm4, xmm7
add edi, ebx
add ebx, dword [esp + 0x49c]
movsd xmm7, qword [edi + 8]
movhpd xmm7, qword [edi + ecx + 8]
mov edi, dword [esp + 0x488]
add edi, eax
add eax, dword [esp + 0x498]
movsd xmm6, qword [edi + 8]
movhpd xmm6, qword [edi + edx + 8]
addpd xmm7, xmm6
mov edi, dword [esp + 0x478]
movsd xmm6, qword [eax + 8]
movhpd xmm6, qword [eax + edx + 8]
mulpd xmm7, xmmword [edi + esi*8 + 0x28]
addpd xmm3, xmm7
movsd xmm7, qword [ebx + 8]
movhpd xmm7, qword [ebx + ecx + 8]
addpd xmm7, xmm6
mulpd xmm7, xmmword [edi + esi*8 + 0x38]
add esi, 8
addpd xmm2, xmm7
cmp esi, dword [esp + 0x46c]
jb 0x590f6b
addpd xmm5, xmm4
addpd xmm3, xmm2
mov edi, dword [esp + 0x46c]
mov ebx, dword [esp + 0x2f4]
addpd xmm5, xmm3
mov ecx, dword [esp + 0x450]
mov edx, dword [esp + 0x44c]
imul ecx, edi
imul edx, edi
cmp edi, dword [esp + 0x430]
jae 0x59111b
mov esi, dword [esp + 0x374]
mov eax, dword [esp + 0x370]
lea esi, [esi + ebx*8]
mov dword [esp + 0x48c], esi
lea eax, [eax + ebx*8]
nop
mov esi, dword [esp + 0x48c]
movsd xmm2, qword [edx + eax + 8]
add edx, dword [esp + 0x44c]
addsd xmm2, qword [ecx + esi + 8]
mov esi, dword [esp + 0x478]
add ecx, dword [esp + 0x450]
mulsd xmm2, qword [esi + edi*8 + 8]
inc edi
mov esi, dword [esp + 0x460]
addsd xmm2, qword [esi + ebx*8 + 8]
movsd qword [esi + ebx*8 + 8], xmm2
cmp edi, dword [esp + 0x430]
jb 0x5910d0
movaps xmm2, xmm5
unpckhpd xmm2, xmm5
mov eax, dword [esp + 0x460]
addsd xmm5, xmm2
mov edx, dword [esp + 0x434]
cmp dword [esp + 0x430], 8
addsd xmm5, qword [eax + ebx*8 + 8]
movsd qword [eax + ebx*8 + 8], xmm5
movsd qword [edx + ebx*8 + 8], xmm0
jl 0x594ea0
mov edx, dword [esp + 0x304]
test edx, edx
je 0x591172
cmp dword [esp + 0x340], 0
jne 0x594ea0
mov edx, 1
lea eax, [edx + 8]
cmp eax, dword [esp + 0x430]
jg 0x594ea0
mov edi, dword [esp + 0x430]
mov eax, edi
sub eax, edx
mov ecx, dword [esp + 0x378]
and eax, 7
neg eax
add eax, edi
lea edi, [ebx*8]
lea ecx, [ecx + ebx*8]
test edx, edx
jbe 0x5911fb
xor esi, esi
mov dword [esp + 0x490], eax
mov dword [esp + 0x2f4], ebx
mov eax, esi
mov ebx, dword [esp + 0x474]
movsd xmm2, qword [eax + ecx + 8]
add eax, dword [esp + 0x448]
mulsd xmm2, qword [ebx + esi*8 + 8]
inc esi
mov ebx, dword [esp + 0x434]
addsd xmm2, qword [ebx + edi + 8]
movsd qword [ebx + edi + 8], xmm2
cmp esi, edx
jb 0x5911bb
mov eax, dword [esp + 0x490]
mov ebx, dword [esp + 0x2f4]
movaps xmm5, xmm1
movaps xmm2, xmm5
movaps xmm4, xmm2
mov esi, dword [esp + 0x448]
movaps xmm3, xmm4
mov dword [esp + 0x494], ecx
imul esi, edx
mov dword [esp + 0x490], eax
mov ecx, dword [esp + 0x474]
mov edi, dword [esp + 0x494]
mov eax, dword [esp + 0x448]
lea edi, [esi + edi + 8]
movsd xmm6, qword [edi]
movhpd xmm6, qword [edi + eax]
mov edi, dword [esp + 0x45c]
mulpd xmm6, xmmword [ecx + edx*8 + 8]
addpd xmm5, xmm6
lea edi, [edi + ebx*8 + 8]
add edi, esi
movsd xmm7, qword [edi]
movhpd xmm7, qword [edi + eax]
mov edi, dword [esp + 0x458]
mulpd xmm7, xmmword [ecx + edx*8 + 0x18]
addpd xmm2, xmm7
lea edi, [edi + ebx*8 + 8]
add edi, esi
movsd xmm6, qword [edi]
movhpd xmm6, qword [edi + eax]
mov edi, dword [esp + 0x470]
mulpd xmm6, xmmword [ecx + edx*8 + 0x28]
addpd xmm4, xmm6
lea edi, [edi + ebx*8 + 8]
add edi, esi
lea esi, [esi + eax*8]
movsd xmm7, qword [edi]
movhpd xmm7, qword [edi + eax]
mulpd xmm7, xmmword [ecx + edx*8 + 0x38]
add edx, 8
addpd xmm3, xmm7
cmp edx, dword [esp + 0x490]
jb 0x591226
addpd xmm5, xmm2
addpd xmm4, xmm3
mov eax, dword [esp + 0x490]
addpd xmm5, xmm4
mov edx, dword [esp + 0x448]
imul edx, eax
cmp eax, dword [esp + 0x430]
jae 0x591325
mov ecx, dword [esp + 0x378]
mov esi, dword [esp + 0x474]
mov edi, dword [esp + 0x434]
lea ecx, [ecx + ebx*8]
movsd xmm2, qword [edx + ecx + 8]
mulsd xmm2, qword [esi + eax*8 + 8]
inc eax
add edx, dword [esp + 0x448]
addsd xmm2, qword [edi + ebx*8 + 8]
movsd qword [edi + ebx*8 + 8], xmm2
cmp eax, dword [esp + 0x430]
jb 0x5912fc
movaps xmm2, xmm5
unpckhpd xmm2, xmm5
mov edx, dword [esp + 0x460]
addsd xmm5, xmm2
mov eax, dword [esp + 0x434]
mov ecx, dword [esp + 0x31c]
movsd xmm3, qword [edx + ebx*8 + 8]
mov edi, dword [esp + 0x314]
mov esi, dword [esp + 0x2f8]
mov edx, dword [esp + 0x37c]
addsd xmm5, qword [eax + ebx*8 + 8]
subsd xmm3, qword [ecx + ebx*8 + 8]
subsd xmm5, qword [edx + ebx*8 + 8]
mulsd xmm3, qword [esi + edi*8]
addsd xmm3, xmm5
movsd qword [eax + ebx*8 + 8], xmm3
inc ebx
cmp ebx, dword [esp + 0x430]
jb 0x590dc8
mov esi, dword [0x6c7bb8]
mov dword [esp + 0x230], esi
mov edi, dword [0x6c7bf0]
mov esi, dword [0x6c7bec]
mov dword [esp + 0x238], edi
mov dword [esp + 0x240], esi
mov esi, dword [esp + 0x244]
mov edi, dword [esp + 0x248]
mov eax, dword [0x6c7be0]
mov edx, dword [0x6c7bd8]
mov dword [esp + 0x23c], eax
lea edi, [edi + esi + 8]
mov eax, 1
and edi, 0xf
mov dword [esp + 0x24c], edx
mov edx, dword [esp + 0x430]
cmovne edi, eax
mov esi, edx
sub esi, edi
and esi, 7
neg esi
add esi, edx
mov ecx, dword [0x6c7be4]
mov dword [esp + 0x440], esi
lea esi, [edi + 8]
mov dword [esp + 0x2f0], esi
mov esi, dword [0x6c6d64]
mov eax, dword [0x6c6d68]
imul eax, esi
mov ebx, dword [0x6c6d58]
mov dword [esp + 0x234], ecx
mov ecx, dword [0x6c7b60]
shl ecx, 3
mov edx, dword [0x6c6d5c]
neg ecx
imul edx, ebx
add ecx, dword [0x6c7b40]
mov dword [esp + 0x33c], ecx
mov ecx, dword [0x6c6d30]
sub ecx, eax
mov eax, dword [esp + 0x1fc]
sub ecx, edx
imul esi, eax
mov edx, dword [0x6c6d50]
mov dword [esp + 0x444], edi
mov edi, ebx
shl edx, 3
sub edi, edx
add edi, ecx
add edi, esi
mov dword [esp + 0x368], edi
lea edi, [ebx + ebx*2]
sub edi, edx
add edi, ecx
add edi, esi
mov dword [esp + 0x43c], edi
lea edi, [ebx + ebx*4]
sub edi, edx
add edi, ecx
add edi, esi
mov dword [esp + 0x438], edi
lea edi, [ebx*8]
sub edi, ebx
sub edi, edx
add ecx, edi
add esi, ecx
mov ecx, dword [esp + 0x22c]
mov dword [esp + 0x454], ebx
mov ebx, dword [0x6c7bd8]
sub ecx, dword [0x6c7be4]
sub eax, dword [0x6c7bf0]
imul ecx, dword [0x6c7be0]
lea edx, [ebx*8]
imul eax, dword [0x6c7bec]
neg edx
add edx, dword [0x6c7bb8]
add ecx, edx
mov dword [esp + 0x2d4], 0
add eax, ecx
mov ebx, dword [esp + 0x33c]
mov edi, dword [esp + 0x2d4]
mov dword [esp + 0x338], eax
mov dword [esp + 0x464], esi
movsd qword [ebx + edi*8 + 8], xmm0
cmp dword [esp + 0x430], 8
jl 0x594e96
mov eax, dword [esp + 0x430]
cmp eax, dword [esp + 0x2f0]
jl 0x594e96
mov eax, dword [esp + 0x368]
lea ecx, [edi*8]
mov esi, dword [esp + 0x440]
cmp dword [esp + 0x444], 0
lea eax, [eax + edi*8]
jbe 0x5915b5
xor edx, edx
mov dword [esp + 0x334], esi
mov dword [esp + 0x2d4], edi
mov esi, edx
mov edi, dword [esp + 0x434]
movsd xmm2, qword [esi + eax + 8]
mulsd xmm2, qword [edi + edx*8 + 8]
inc edx
add esi, dword [esp + 0x454]
addsd xmm2, qword [ebx + ecx + 8]
movsd qword [ebx + ecx + 8], xmm2
cmp edx, dword [esp + 0x444]
jb 0x59157e
mov esi, dword [esp + 0x334]
mov edi, dword [esp + 0x2d4]
movaps xmm5, xmm1
movaps xmm2, xmm5
movaps xmm4, xmm2
mov ecx, dword [esp + 0x444]
movaps xmm3, xmm4
mov edx, dword [esp + 0x454]
mov dword [esp + 0x33c], ebx
imul edx, ecx
mov dword [esp + 0x334], esi
mov dword [esp + 0x468], eax
mov ebx, dword [esp + 0x434]
mov esi, dword [esp + 0x468]
mov eax, dword [esp + 0x454]
lea esi, [edx + esi + 8]
movsd xmm6, qword [esi]
movhpd xmm6, qword [esi + eax]
mov esi, dword [esp + 0x43c]
mulpd xmm6, xmmword [ebx + ecx*8 + 8]
addpd xmm5, xmm6
lea esi, [esi + edi*8 + 8]
add esi, edx
movsd xmm7, qword [esi]
movhpd xmm7, qword [esi + eax]
mov esi, dword [esp + 0x438]
mulpd xmm7, xmmword [ebx + ecx*8 + 0x18]
addpd xmm2, xmm7
lea esi, [esi + edi*8 + 8]
add esi, edx
movsd xmm6, qword [esi]
movhpd xmm6, qword [esi + eax]
mov esi, dword [esp + 0x464]
mulpd xmm6, xmmword [ebx + ecx*8 + 0x28]
addpd xmm4, xmm6
lea esi, [esi + edi*8 + 8]
add esi, edx
lea edx, [edx + eax*8]
movsd xmm7, qword [esi]
movhpd xmm7, qword [esi + eax]
mulpd xmm7, xmmword [ebx + ecx*8 + 0x38]
add ecx, 8
addpd xmm3, xmm7
cmp ecx, dword [esp + 0x440]
jb 0x5915ee
addpd xmm5, xmm2
addpd xmm4, xmm3
mov esi, dword [esp + 0x334]
mov ebx, dword [esp + 0x33c]
addpd xmm5, xmm4
mov eax, dword [esp + 0x454]
imul eax, esi
cmp esi, dword [esp + 0x430]
jae 0x5916ed
mov edx, dword [esp + 0x368]
mov ecx, dword [esp + 0x434]
lea edx, [edx + edi*8]
movsd xmm2, qword [eax + edx + 8]
mulsd xmm2, qword [ecx + esi*8 + 8]
inc esi
add eax, dword [esp + 0x454]
addsd xmm2, qword [ebx + edi*8 + 8]
movsd qword [ebx + edi*8 + 8], xmm2
cmp esi, dword [esp + 0x430]
jb 0x5916c4
movaps xmm2, xmm5
unpckhpd xmm2, xmm5
mov eax, dword [esp + 0x338]
addsd xmm5, xmm2
addsd xmm5, qword [ebx + edi*8 + 8]
movsd qword [ebx + edi*8 + 8], xmm5
movsd qword [eax + edi*8 + 8], xmm5
inc edi
cmp edi, dword [esp + 0x430]
jb 0x59151b
mov eax, dword [esp + 0x22c]
inc eax
mov dword [esp + 0x22c], eax
cmp eax, dword [esp + 0xd4]
jle 0x58ffd1
mov edi, dword [esp + 0x230]
mov eax, dword [esp + 0x200]
mov edx, dword [esp + 0x204]
mov ebx, dword [esp + 0x1fc]
mov ecx, dword [esp + 0x228]
mov dword [esp + 0x88], ebx
imul ebx, ecx
imul ecx, dword [esp + 0x34c]
mov esi, dword [0x6c7c20]
add edx, ebx
mov dword [esp + 0x200], eax
mov dword [esp + 0x1f0], esi
mov esi, dword [esp + 0x224]
mov eax, dword [esp + 0x20c]
imul eax, esi
mov dword [esp + 0x230], edi
mov edi, edx
sub edi, ecx
add ecx, eax
mov dword [esp + 0x20c], eax
sub eax, esi
mov ebx, dword [esp + 0x208]
sub edx, ecx
shl ebx, 3
mov ecx, esi
neg eax
sub ecx, ebx
add eax, edi
add edx, ecx
mov dword [esp + 0x208], ebx
sub eax, ebx
mov dword [esp + 0x204], edx
mov edx, dword [esp + 0x214]
mov ebx, dword [esp + 0x218]
imul ebx, edx
mov ecx, dword [esp + 0x200]
sub ebx, edx
neg ecx
mov esi, dword [esp + 0x1fc]
add ecx, esi
imul ecx, dword [esp + 0x21c]
mov dword [esp + 0x180], edi
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0x220]
mov edi, dword [esp + 0x210]
sub eax, ebx
shl edi, 3
sub eax, edi
mov ebx, dword [0x6c7c24]
add ecx, eax
mov edx, dword [0x6c7c20]
imul ebx, edx
mov dword [esp + 0x200], ecx
sub ebx, edx
mov ecx, dword [0x6c7c30]
neg ecx
add ecx, esi
imul ecx, dword [0x6c7c2c]
mov eax, dword [0x6c7bf8]
mov edi, dword [0x6c7c18]
sub eax, ebx
shl edi, 3
sub eax, edi
mov edi, dword [esp + 0x240]
add ecx, eax
imul esi, edi
mov dword [esp + 0x1d0], ecx
mov eax, dword [esp + 0x238]
mov edx, dword [esp + 0x23c]
mov ecx, dword [esp + 0x234]
imul eax, edi
imul ecx, edx
mov edi, dword [esp + 0x230]
add esi, edi
mov dword [esp + 0x234], ecx
sub esi, eax
sub ecx, edx
mov ebx, dword [esp + 0x24c]
sub esi, ecx
shl ebx, 3
sub esi, ebx
mov dword [esp + 0x238], eax
mov ecx, dword [esp + 0x1d0]
mov edx, dword [esp + 0x204]
mov eax, dword [esp + 0x430]
mov dword [esp + 0x1ec], 0
mov dword [esp + 0x24c], ebx
mov dword [esp + 0x1cc], esi
test eax, eax
jle 0x591ae1
cmp eax, 2
jl 0x594788
mov edi, dword [esp + 0x224]
imul edi, dword [esp + 0x1ec]
mov edx, dword [esp + 0x204]
lea ebx, [edi + edx + 8]
and ebx, 0xf
je 0x591923
test bl, 7
jne 0x594788
mov ebx, 1
lea edx, [ebx + 2]
cmp eax, edx
jl 0x594788
mov edx, dword [esp + 0x1ec]
mov esi, eax
mov ecx, dword [esp + 0x1f0]
sub esi, ebx
imul ecx, edx
and esi, 1
neg esi
add ecx, dword [esp + 0x1d0]
add esi, eax
mov dword [esp + 0x1c8], esi
mov dword [esp + 0x1d8], ecx
mov esi, dword [esp + 0x214]
mov ecx, dword [esp + 0x23c]
imul esi, edx
imul ecx, edx
add edi, dword [esp + 0x1d4]
add esi, dword [esp + 0x200]
add ecx, dword [esp + 0x1cc]
test ebx, ebx
jbe 0x5919dc
mov dword [esp + 0x11c], 0
mov dword [esp + 0x430], eax
mov eax, dword [esp + 0x11c]
mov edx, dword [esp + 0x1d8]
movsd xmm0, qword [esi + eax*8 + 8]
movsd xmm1, qword [edi + eax*8 + 8]
movsd xmm2, qword [ecx + eax*8 + 8]
movsd qword [edx + eax*8 + 8], xmm0
movsd qword [esi + eax*8 + 8], xmm1
movsd qword [edi + eax*8 + 8], xmm2
inc eax
cmp eax, ebx
jb 0x5919ac
mov eax, dword [esp + 0x430]
mov dword [esp + 0x430], eax
mov eax, dword [esp + 0x1c8]
mov edx, dword [esp + 0x1d8]
movups xmm0, xmmword [esi + ebx*8 + 8]
movups xmm2, xmmword [ecx + ebx*8 + 8]
movups xmmword [edx + ebx*8 + 8], xmm0
movups xmm1, xmmword [edi + ebx*8 + 8]
movups xmmword [esi + ebx*8 + 8], xmm1
movups xmmword [edi + ebx*8 + 8], xmm2
add ebx, 2
cmp ebx, eax
jb 0x5919f1
mov dword [esp + 0x1c8], eax
mov eax, dword [esp + 0x430]
cmp eax, dword [esp + 0x1c8]
jbe 0x591aa8
mov ecx, dword [esp + 0x224]
mov edi, dword [esp + 0x1ec]
mov ebx, dword [esp + 0x214]
mov esi, dword [esp + 0x1f0]
mov edx, dword [esp + 0x23c]
imul ecx, edi
imul ebx, edi
imul esi, edi
imul edx, edi
add ecx, dword [esp + 0x1d4]
add ebx, dword [esp + 0x200]
add esi, dword [esp + 0x1d0]
add edx, dword [esp + 0x1cc]
mov edi, dword [esp + 0x1c8]
movsd xmm0, qword [ebx + edi*8 + 8]
movsd xmm1, qword [ecx + edi*8 + 8]
movsd xmm2, qword [edx + edi*8 + 8]
movsd qword [esi + edi*8 + 8], xmm0
movsd qword [ebx + edi*8 + 8], xmm1
movsd qword [ecx + edi*8 + 8], xmm2
inc edi
cmp edi, eax
jb 0x591a7f
mov edx, dword [esp + 0x1ec]
inc edx
mov dword [esp + 0x1ec], edx
cmp edx, dword [esp + 0xd4]
jb 0x5918e5
mov dword [esp + 0x430], eax
mov edi, dword [esp + 0x230]
cmp dword [esp + 0xd4], 2
jge 0x591af6
jmp 0x594662
mov dword [esp + 0x430], eax
cmp dword [esp + 0xd4], 2
jl 0x592f48
mov edx, dword [esp + 0xd4]
mov ecx, dword [0x6c7e18]
mov dword [esp + 0x14], ecx
mov eax, dword [0x6c7e08]
lea esi, [edx - 1]
mov dword [esp + 0xb8], esi
mov esi, dword [0x6c7e00]
mov dword [esp + 0x1c], esi
mov esi, dword [0x6c7ae8]
shl esi, 3
neg esi
add esi, dword [0x6c7ac8]
mov dword [esp + 0x2a0], esi
mov esi, dword [0x6c7b88]
shl esi, 3
mov ecx, dword [0x6c6c98]
neg esi
mov dword [esp + 0x194], eax
mov dword [esp + 0x40c], ecx
mov eax, dword [0x6c7ac4]
mov ecx, dword [0x6c7b68]
mov ebx, dword [0x6c7de0]
mov edi, dword [0x6c7e14]
mov edx, dword [0x6c7e0c]
mov dword [esp + 4], eax
neg eax
mov dword [esp + 0xc8], ebx
add eax, 2
mov dword [esp + 0x28], edi
mov dword [esp + 0x10], edx
mov ebx, dword [0x6c6c58]
mov edi, dword [0x6c7a98]
mov edx, dword [0x6c7ab8]
mov dword [esp + 0x408], ebx
lea ebx, [ecx + esi]
mov dword [esp], edi
mov edi, dword [0x6c7ac0]
mov dword [esp + 0x270], ebx
lea ebx, [ecx + esi + 8]
mov esi, dword [0x6c7b60]
shl esi, 3
imul eax, edi
neg esi
mov dword [esp + 0x18], edx
shl edx, 3
add esi, dword [0x6c7b40]
neg edx
mov ecx, dword [0x6c6c98]
mov dword [esp + 0x41c], ebx
mov dword [esp + 0x27c], esi
add edx, dword [0x6c7a98]
mov esi, dword [0x6c6ca8]
add eax, edx
mov ebx, dword [0x6c6c9c]
neg esi
imul ebx, ecx
mov edx, dword [esp + 0x1fc]
add esi, edx
imul esi, dword [0x6c6ca4]
mov dword [esp + 0x190], edi
mov edi, ebx
sub edi, ecx
add esi, dword [0x6c6c70]
neg edi
mov dword [esp + 0x188], eax
add edi, esi
mov eax, dword [0x6c6c90]
shl eax, 3
sub edi, eax
mov dword [esp + 0x2a4], edi
lea edi, [ecx + ecx*2]
neg edi
add edi, ebx
neg edi
add edi, esi
sub edi, eax
mov dword [esp + 0x400], edi
lea edi, [ecx + ecx*4]
neg edi
add edi, ebx
neg edi
add edi, esi
sub edi, eax
mov dword [esp + 0x404], edi
lea edi, [ecx*8]
neg edi
add edi, ecx
add ebx, edi
sub esi, ebx
mov edi, dword [0x6c7e14]
sub esi, eax
mov eax, dword [0x6c7e08]
imul edx, edi
imul edi, dword [0x6c7e18]
mov dword [esp + 0x3fc], esi
lea ebx, [eax + eax]
mov esi, dword [0x6c7e0c]
imul esi, eax
mov ecx, dword [0x6c7e00]
add edx, dword [0x6c7de0]
mov dword [esp + 0x2c], ebx
mov ebx, esi
sub ebx, dword [esp + 0x2c]
lea eax, [ecx*8]
mov ecx, edx
sub ecx, edi
add edi, esi
sub ecx, ebx
sub edx, edi
sub ecx, eax
mov dword [esp + 0x18c], ecx
mov ecx, dword [0x6c6c58]
mov esi, dword [esp + 0x2c]
mov ebx, dword [0x6c6c5c]
sub esi, eax
mov eax, dword [0x6c6c68]
add edx, esi
imul ebx, ecx
neg eax
add eax, dword [esp + 0x1fc]
mov edi, ebx
imul eax, dword [0x6c6c64]
sub edi, ecx
add eax, dword [0x6c6c30]
neg edi
mov esi, dword [0x6c6c50]
add edi, eax
shl esi, 3
sub edi, esi
mov dword [esp + 0x2a8], edi
lea edi, [ecx + ecx*2]
neg edi
add edi, ebx
neg edi
add edi, eax
sub edi, esi
mov dword [esp + 0x414], edi
lea edi, [ecx + ecx*4]
neg edi
add edi, ebx
neg edi
add edi, eax
sub edi, esi
mov dword [esp + 0x410], edi
lea edi, [ecx*8]
neg edi
add edi, ecx
add ebx, edi
sub eax, ebx
sub eax, esi
mov esi, dword [esp + 0x224]
mov ecx, dword [esp + 0x20c]
mov dword [esp + 0x184], 0
lea ebx, [esi + esi]
sub ecx, ebx
mov ebx, 1
mov esi, dword [esp + 0x180]
sub esi, ecx
sub esi, dword [esp + 0x208]
mov dword [esp + 0x180], esi
mov esi, dword [esp + 0x41c]
and esi, 0xf
mov ecx, dword [esp + 0x430]
cmovne esi, ebx
mov ebx, ecx
sub ebx, esi
and ebx, 7
neg ebx
mov dword [esp + 0x3f8], eax
add ebx, ecx
mov dword [esp + 0x17c], edx
lea ecx, [esi + 8]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x184]
mov edi, dword [esp + 0x430]
test edi, edi
jle 0x594e81
mov dword [esp + 0x184], edx
mov dword [esp + 0x430], edi
pxor xmm1, xmm1
pxor xmm0, xmm0
mov dword [esp + 0x280], ecx
mov dword [esp + 0x418], ebx
mov dword [esp + 0x41c], esi
mov edx, dword [esp + 0x194]
xor ecx, ecx
mov edi, dword [esp + 0x184]
imul edx, edi
mov esi, dword [esp + 0x18c]
mov eax, dword [esp + 0x17c]
add esi, edx
mov dword [esp + 0x428], esi
lea ebx, [eax + edx + 8]
mov edx, dword [esp + 0x224]
and ebx, 0xf
imul edx, edi
mov eax, ebx
mov edi, dword [esp + 0x1d4]
and eax, 7
mov dword [esp + 0x28c], ebx
mov dword [esp + 0x288], eax
mov ebx, dword [esp + 0x270]
add edi, edx
add edx, dword [esp + 0x180]
mov esi, dword [esp + 0x430]
mov dword [esp + 0x2ac], edx
mov dword [esp + 0x2b0], edi
mov eax, dword [esp + 0x2ac]
mov edx, dword [esp + 0x2b0]
mov edi, dword [esp + 0x2a0]
movsd xmm2, qword [eax + ecx*8 + 8]
movsd qword [ebx + ecx*8 + 8], xmm0
subsd xmm2, qword [edx + ecx*8 + 8]
movsd qword [edi + ecx*8 + 8], xmm2
cmp esi, 8
jl 0x594e77
mov eax, dword [esp + 0x28c]
test eax, eax
je 0x591ed9
cmp dword [esp + 0x288], 0
jne 0x594e77
mov eax, 1
lea edx, [eax + 8]
cmp esi, edx
jl 0x594e77
mov edi, esi
lea edx, [ecx*8]
sub edi, eax
mov dword [esp + 0x2b4], edx
and edi, 7
mov edx, dword [esp + 0x2a8]
neg edi
add edi, esi
lea edx, [edx + ecx*8]
mov dword [esp + 0x42c], edx
test eax, eax
jbe 0x591f80
xor edx, edx
mov dword [esp + 0x290], edx
mov dword [esp + 0x29c], ecx
mov dword [esp + 0x424], edi
mov ecx, edx
mov edx, dword [esp + 0x290]
mov esi, dword [esp + 0x2b4]
mov edi, dword [esp + 0x42c]
movsd xmm2, qword [ecx + edi + 8]
mov edi, dword [esp + 0x428]
add ecx, dword [esp + 0x408]
mulsd xmm2, qword [edi + edx*8 + 8]
inc edx
addsd xmm2, qword [ebx + esi + 8]
movsd qword [ebx + esi + 8], xmm2
cmp edx, eax
jb 0x591f39
mov edi, dword [esp + 0x424]
mov ecx, dword [esp + 0x29c]
mov esi, dword [esp + 0x430]
movaps xmm5, xmm1
movaps xmm2, xmm5
movaps xmm4, xmm2
mov edx, dword [esp + 0x408]
movaps xmm3, xmm4
mov esi, dword [esp + 0x428]
imul edx, eax
mov dword [esp + 0x424], edi
mov edi, dword [esp + 0x42c]
mov ebx, dword [esp + 0x408]
lea edi, [edx + edi + 8]
movsd xmm6, qword [edi]
movhpd xmm6, qword [edi + ebx]
mov edi, dword [esp + 0x414]
mulpd xmm6, xmmword [esi + eax*8 + 8]
addpd xmm5, xmm6
lea edi, [edi + ecx*8 + 8]
add edi, edx
movsd xmm7, qword [edi]
movhpd xmm7, qword [edi + ebx]
mov edi, dword [esp + 0x410]
mulpd xmm7, xmmword [esi + eax*8 + 0x18]
addpd xmm2, xmm7
lea edi, [edi + ecx*8 + 8]
add edi, edx
movsd xmm6, qword [edi]
movhpd xmm6, qword [edi + ebx]
mov edi, dword [esp + 0x3f8]
mulpd xmm6, xmmword [esi + eax*8 + 0x28]
addpd xmm4, xmm6
lea edi, [edi + ecx*8 + 8]
add edi, edx
lea edx, [edx + ebx*8]
movsd xmm7, qword [edi]
movhpd xmm7, qword [edi + ebx]
mulpd xmm7, xmmword [esi + eax*8 + 0x38]
add eax, 8
addpd xmm3, xmm7
cmp eax, dword [esp + 0x424]
jb 0x591fa4
addpd xmm5, xmm2
addpd xmm4, xmm3
mov edi, dword [esp + 0x424]
mov ebx, dword [esp + 0x270]
mov esi, dword [esp + 0x430]
addpd xmm5, xmm4
mov edx, dword [esp + 0x408]
imul edx, edi
cmp edi, esi
jae 0x5920ac
mov eax, dword [esp + 0x2a8]
mov esi, dword [esp + 0x428]
lea eax, [eax + ecx*8]
movsd xmm2, qword [edx + eax + 8]
mulsd xmm2, qword [esi + edi*8 + 8]
inc edi
add edx, dword [esp + 0x408]
addsd xmm2, qword [ebx + ecx*8 + 8]
movsd qword [ebx + ecx*8 + 8], xmm2
cmp edi, dword [esp + 0x430]
jb 0x59207c
mov esi, dword [esp + 0x430]
movaps xmm2, xmm5
unpckhpd xmm2, xmm5
mov eax, dword [esp + 0x2a0]
addsd xmm5, xmm2
addsd xmm5, qword [ebx + ecx*8 + 8]
subsd xmm5, qword [eax + ecx*8 + 8]
movsd qword [ebx + ecx*8 + 8], xmm5
inc ecx
cmp ecx, esi
jb 0x591e85
mov eax, dword [esp + 0x190]
xor ebx, ebx
imul eax, dword [esp + 0x184]
add eax, dword [esp + 0x188]
mov esi, dword [esp + 0x27c]
mov dword [esp + 0x284], eax
movsd qword [esi + ebx*8 + 8], xmm0
cmp dword [esp + 0x430], 8
jl 0x594e6d
mov eax, dword [esp + 0x430]
cmp eax, dword [esp + 0x280]
jl 0x594e6d
mov eax, dword [esp + 0x2a4]
lea ecx, [ebx*8]
mov edi, dword [esp + 0x418]
cmp dword [esp + 0x41c], 0
lea eax, [eax + ebx*8]
jbe 0x592199
xor edx, edx
mov dword [esp + 0x294], edi
mov dword [esp + 0x298], ebx
mov ebx, edx
mov edi, dword [esp + 0x270]
movsd xmm2, qword [ebx + eax + 8]
mulsd xmm2, qword [edi + edx*8 + 8]
inc edx
add ebx, dword [esp + 0x40c]
addsd xmm2, qword [esi + ecx + 8]
movsd qword [esi + ecx + 8], xmm2
cmp edx, dword [esp + 0x41c]
jb 0x592162
mov edi, dword [esp + 0x294]
mov ebx, dword [esp + 0x298]
movaps xmm5, xmm1
movaps xmm2, xmm5
movaps xmm4, xmm2
mov edx, dword [esp + 0x41c]
movaps xmm3, xmm4
mov ecx, dword [esp + 0x40c]
mov esi, dword [esp + 0x270]
imul ecx, edx
mov dword [esp + 0x294], edi
mov dword [esp + 0x420], eax
mov edi, dword [esp + 0x420]
mov eax, dword [esp + 0x40c]
lea edi, [ecx + edi + 8]
movsd xmm6, qword [edi]
movhpd xmm6, qword [edi + eax]
mov edi, dword [esp + 0x400]
mulpd xmm6, xmmword [esi + edx*8 + 8]
addpd xmm5, xmm6
lea edi, [edi + ebx*8 + 8]
add edi, ecx
movsd xmm7, qword [edi]
movhpd xmm7, qword [edi + eax]
mov edi, dword [esp + 0x404]
mulpd xmm7, xmmword [esi + edx*8 + 0x18]
addpd xmm2, xmm7
lea edi, [edi + ebx*8 + 8]
add edi, ecx
movsd xmm6, qword [edi]
movhpd xmm6, qword [edi + eax]
mov edi, dword [esp + 0x3fc]
mulpd xmm6, xmmword [esi + edx*8 + 0x28]
addpd xmm4, xmm6
lea edi, [edi + ebx*8 + 8]
add edi, ecx
lea ecx, [ecx + eax*8]
movsd xmm7, qword [edi]
movhpd xmm7, qword [edi + eax]
mulpd xmm7, xmmword [esi + edx*8 + 0x38]
add edx, 8
addpd xmm3, xmm7
cmp edx, dword [esp + 0x418]
jb 0x5921cb
addpd xmm5, xmm2
addpd xmm4, xmm3
mov edi, dword [esp + 0x294]
mov esi, dword [esp + 0x27c]
addpd xmm5, xmm4
mov eax, dword [esp + 0x40c]
imul eax, edi
cmp edi, dword [esp + 0x430]
jae 0x5922ca
mov edx, dword [esp + 0x2a4]
mov ecx, dword [esp + 0x270]
lea edx, [edx + ebx*8]
movsd xmm2, qword [eax + edx + 8]
mulsd xmm2, qword [ecx + edi*8 + 8]
inc edi
add eax, dword [esp + 0x40c]
addsd xmm2, qword [esi + ebx*8 + 8]
movsd qword [esi + ebx*8 + 8], xmm2
cmp edi, dword [esp + 0x430]
jb 0x5922a1
movaps xmm2, xmm5
unpckhpd xmm2, xmm5
mov eax, dword [esp + 0x284]
addsd xmm5, xmm2
addsd xmm5, qword [esi + ebx*8 + 8]
movsd qword [esi + ebx*8 + 8], xmm5
movsd qword [eax + ebx*8 + 8], xmm5
inc ebx
cmp ebx, dword [esp + 0x430]
jb 0x5920ff
mov eax, dword [esp + 0x184]
inc eax
mov dword [esp + 0x184], eax
cmp eax, dword [esp + 0xb8]
jb 0x591e0b
lea ecx, [esp + 0x28]
mov edi, dword [ecx]
mov eax, dword [esp + 0x1fc]
imul edi, dword [esp + 0x14]
imul eax, dword [ecx]
mov ebx, dword [esp + 0x194]
mov edx, dword [esp + 0x10]
imul edx, ebx
mov dword [ecx], edi
add ebx, ebx
mov esi, dword [esp + 0xc8]
mov edi, ebx
add esi, eax
mov eax, dword [ecx]
mov ecx, dword [esp + 0x1c]
shl ecx, 3
mov dword [esp + 0x1c], ecx
add eax, edx
neg eax
sub edx, ebx
add eax, esi
sub edi, ecx
sub esi, dword [esp + 0x28]
add eax, edi
sub esi, edx
mov edx, dword [esp + 4]
sub esi, dword [esp + 0x1c]
neg edx
add edx, 2
mov ecx, dword [esp + 0x18]
shl ecx, 3
lea ebx, [esi + 8]
imul edx, dword [esp + 0x190]
mov dword [esp + 0xc8], esi
mov esi, dword [esp]
sub esi, ecx
lea ecx, [esp + 0xbc]
mov dword [ecx], 0
mov edi, dword [ecx]
mov dword [esp + 0xc4], edi
mov dword [esp + 0xa8], ebx
lea ecx, [esi + edx]
mov dword [esp + 0xc0], ecx
lea edx, [edx + esi + 8]
lea ecx, [esp + 0x430]
mov esi, dword [ecx]
mov dword [esp + 0xa4], edx
mov dword [esp + 0xb4], eax
shl esi, 3
mov dword [esp + 0xac], esi
mov esi, dword [ecx]
test esi, esi
jle 0x592f48
cmp esi, 0xc
jle 0x592467
mov dword [esp + 0x430], esi
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xa8]
mov ebx, dword [esp + 0xbc]
push dword [esp + 0xac]
push edi
push esi
call fcn.0062a530
add esp, 0xc
mov eax, dword [esp + 0x190]
inc ebx
add dword [esp + 0xc4], eax
add edi, eax
add esi, dword [esp + 0x194]
cmp ebx, dword [esp + 0xb8]
jae 0x5947b3
cmp dword [esp + 0x430], 0xc
jg 0x59240b
mov dword [esp + 0xa8], esi
mov dword [esp + 0xa4], edi
mov dword [esp + 0xbc], ebx
mov esi, dword [esp + 0x430]
cmp esi, 2
jl 0x5947ac
mov ecx, dword [esp + 0x194]
imul ecx, dword [esp + 0xbc]
mov eax, dword [esp + 0xb4]
lea edx, [ecx + eax + 8]
and edx, 0xf
je 0x59249d
test dl, 7
jne 0x5947ac
mov edx, 1
lea eax, [edx + 2]
cmp esi, eax
jl 0x5947ac
mov ebx, esi
sub ebx, edx
mov eax, dword [esp + 0xc0]
and ebx, 1
mov edi, dword [esp + 0xc4]
neg ebx
add ecx, dword [esp + 0xc8]
add ebx, esi
add eax, edi
test edx, edx
jbe 0x5924e1
xor edi, edi
movsd xmm0, qword [eax + edi*8 + 8]
movsd qword [ecx + edi*8 + 8], xmm0
inc edi
cmp edi, edx
jb 0x5924d0
lea edi, [eax + edx*8 + 8]
test edi, 0xf
je 0x592500
movups xmm0, xmmword [eax + edx*8 + 8]
movups xmmword [ecx + edx*8 + 8], xmm0
add edx, 2
cmp edx, ebx
jb 0x5924ed
jmp 0x592511
movups xmm0, xmmword [eax + edx*8 + 8]
movups xmmword [ecx + edx*8 + 8], xmm0
add edx, 2
cmp edx, ebx
jb 0x592500
cmp ebx, esi
jae 0x59254c
mov edx, dword [esp + 0x194]
imul edx, dword [esp + 0xbc]
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
add edx, dword [esp + 0xc8]
add eax, ecx
movsd xmm0, qword [eax + ebx*8 + 8]
movsd qword [edx + ebx*8 + 8], xmm0
inc ebx
cmp ebx, esi
jb 0x59253b
mov eax, dword [esp + 0x190]
mov edx, dword [esp + 0x194]
lea ebx, [esp + 0xbc]
mov ecx, dword [ebx]
inc ecx
add dword [esp + 0xa4], eax
add dword [esp + 0xc4], eax
add dword [esp + 0xa8], edx
mov dword [ebx], ecx
cmp ecx, dword [esp + 0xb8]
jb 0x5923e2
lea eax, [0x6c7e18]
mov ecx, dword [eax]
mov dword [esp + 0x9c], ecx
mov ecx, dword [eax - 4]
mov dword [esp + 0x430], esi
lea esi, [0x6c7bec]
mov eax, dword [esi]
mov edi, dword [esi - 8]
mov esi, dword [esi - 0xc]
mov dword [esp + 0x98], ecx
imul edi, esi
mov ecx, dword [0x6c7e00]
lea ebx, [0x6c7bf0]
mov edx, dword [ebx]
mov dword [esp + 0x240], eax
mov dword [esp + 0x23c], esi
imul edx, eax
mov eax, dword [esp + 0x1fc]
mov dword [esp + 0x8c], ecx
mov ecx, eax
mov esi, dword [0x6c7d88]
imul ecx, esi
imul esi, dword [0x6c7d8c]
mov dword [esp + 0x234], edi
mov edi, dword [0x6c7d80]
mov ebx, dword [ebx - 0x18]
shl ebx, 3
mov dword [esp + 0x24c], ebx
lea ebx, [edi*8]
mov dword [esp + 0x58], ebx
lea ebx, [esi + edi*8]
mov dword [esp + 0x238], edx
neg ebx
add ecx, dword [0x6c7d60]
lea edi, [0x6c7dd8]
mov edx, dword [edi]
add ebx, ecx
shl edx, 3
mov dword [esp + 0x40], ecx
mov ecx, dword [edi - 0x20]
sub ecx, edx
mov dword [esp + 0x1b0], ecx
lea edx, [0x6c7d58]
mov ecx, dword [edx]
imul eax, ecx
imul ecx, dword [edx + 4]
mov dword [esp + 0x5c], esi
mov esi, dword [edx - 8]
add eax, dword [edx - 0x28]
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x54], ecx
lea edx, [esi*8]
mov dword [esp + 0x50], edx
lea edx, [ecx + esi*8]
neg edx
lea esi, [0x6c7db0]
mov ecx, dword [esi]
add edx, eax
mov eax, dword [0x6c6fa0]
shl ecx, 3
mov edi, dword [0x6c6f78]
mov dword [esp + 0x1b4], ebx
mov ebx, dword [esi - 0x20]
mov dword [esp + 0x19c], eax
sub ebx, ecx
mov esi, dword [0x6c6f98]
mov eax, dword [0x6c6fc0]
mov dword [esp + 0x1ac], edx
mov dword [esp + 0x1a8], ebx
mov dword [esp + 0x1a0], edi
shl esi, 2
shl eax, 2
mov dword [esp + 0x4c], esi
mov dword [esp + 0x48], eax
mov edi, dword [0x6c7bb8]
lea eax, [0x6c7de0]
mov ebx, dword [eax]
mov edx, dword [eax + 0x2c]
mov ecx, dword [eax + 0x28]
mov eax, dword [0x6c7b88]
shl eax, 3
pxor xmm1, xmm1
mov dword [esp + 0x230], edi
neg eax
mov edi, dword [0x6c6c18]
pxor xmm2, xmm2
mov dword [esp + 0x3bc], edi
mov esi, dword [esp + 0x98]
mov edi, dword [esp + 0x9c]
imul edi, esi
imul edx, ecx
imul esi, dword [esp + 0x88]
movsd xmm0, qword [0x68fac0]
xorps xmm0, xmmword [0x68faa0]
add eax, dword [0x6c7b68]
add ebx, esi
mov dword [esp + 0x140], eax
mov esi, ecx
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x9c], edi
mov dword [esp + 0x384], ebx
mov dword [esp + 0x90], ecx
shl eax, 3
mov dword [esp + 0xa0], eax
lea eax, [edi + edx]
neg eax
sub esi, dword [esp + 0xa0]
add eax, ebx
add eax, esi
sub ebx, edi
mov dword [esp + 0x3a4], eax
mov eax, dword [0x6c6c18]
mov esi, dword [0x6c6c28]
mov edi, dword [0x6c6c1c]
neg esi
imul edi, eax
add esi, dword [esp + 0x88]
imul esi, dword [0x6c6c24]
mov dword [esp + 0x94], edx
sub edx, ecx
mov ecx, edi
neg edx
sub ecx, eax
add edx, ebx
add esi, dword [0x6c6bf0]
neg ecx
mov dword [esp + 0x160], ebx
add ecx, esi
mov ebx, dword [0x6c6c10]
shl ebx, 3
sub ecx, ebx
mov dword [esp + 0x1e8], ecx
lea ecx, [eax + eax*2]
neg ecx
add ecx, edi
neg ecx
add ecx, esi
sub ecx, ebx
mov dword [esp + 0x3ac], ecx
lea ecx, [eax + eax*4]
neg ecx
add ecx, edi
neg ecx
add ecx, esi
sub ecx, ebx
mov dword [esp + 0x3a8], ecx
lea ecx, [eax*8]
neg ecx
add ecx, eax
add edi, ecx
sub esi, edi
mov edi, dword [esp + 0x240]
sub esi, ebx
imul edi, dword [esp + 0x88]
sub edx, dword [esp + 0xa0]
mov eax, dword [esp + 0x234]
add edx, 8
mov ebx, dword [esp + 0x238]
and edx, 0xf
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x158], edx
and edx, 7
mov dword [esp + 0x3c4], esi
add ebx, eax
mov dword [esp + 0x148], edx
neg ebx
mov esi, dword [esp + 0x230]
lea eax, [ecx + 1]
mov edx, dword [esp + 0x23c]
add esi, edi
mov edi, edx
add ebx, esi
sub edi, dword [esp + 0x24c]
add ebx, edi
mov edi, dword [esp + 0x90]
imul edi, eax
imul ecx, edx
mov dword [esp + 0x230], esi
mov esi, dword [esp + 0x9c]
sub esi, edi
mov dword [esp + 0x150], ebx
mov ebx, dword [esp + 0x384]
mov eax, dword [esp + 0x94]
sub ebx, esi
mov esi, dword [esp + 0x8c]
sub edi, eax
mov edx, dword [esp + 0x238]
sub edx, ecx
mov ecx, dword [esp + 0x234]
lea esi, [eax + esi*8]
mov eax, dword [esp + 0x160]
sub ebx, esi
add eax, edi
sub eax, dword [esp + 0xa0]
add eax, 8
mov edi, dword [esp + 0x230]
and eax, 0xf
add ecx, dword [esp + 0x24c]
sub edi, edx
mov dword [esp + 0x160], eax
and eax, 7
mov dword [esp + 0x13c], 0
sub edi, ecx
mov dword [esp + 0x168], eax
mov dword [esp + 0x230], edi
mov dword [esp + 0x384], ebx
mov eax, dword [esp + 0x140]
mov ecx, dword [esp + 0x13c]
mov edx, dword [esp + 0x430]
movsd qword [eax + ecx*8 + 8], xmm2
cmp edx, 8
jl 0x5947a2
mov ebx, dword [esp + 0x158]
test ebx, ebx
je 0x592972
cmp dword [esp + 0x148], 0
jne 0x5947a2
mov ebx, 1
lea esi, [ebx + 8]
cmp edx, esi
jl 0x5947a2
mov edi, edx
lea esi, [ecx*8]
sub edi, ebx
mov dword [esp + 0x1f8], esi
and edi, 7
mov esi, dword [esp + 0x1e8]
neg edi
add edi, edx
lea esi, [esi + ecx*8]
mov dword [esp + 0x3c8], esi
test ebx, ebx
jbe 0x592a19
xor esi, esi
mov dword [esp + 0x170], esi
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x3c0], edi
mov ecx, esi
mov edx, dword [esp + 0x170]
mov esi, dword [esp + 0x1f8]
mov edi, dword [esp + 0x3c8]
movsd xmm3, qword [ecx + edi + 8]
mov edi, dword [esp + 0x3a4]
add ecx, dword [esp + 0x3bc]
mulsd xmm3, qword [edi + edx*8 + 8]
inc edx
addsd xmm3, qword [eax + esi + 8]
movsd qword [eax + esi + 8], xmm3
cmp edx, ebx
jb 0x5929d2
mov edi, dword [esp + 0x3c0]
mov ecx, dword [esp + 0x13c]
mov edx, dword [esp + 0x430]
movaps xmm6, xmm1
movaps xmm5, xmm6
movaps xmm4, xmm5
mov esi, dword [esp + 0x3bc]
movaps xmm3, xmm4
mov edx, dword [esp + 0x3a4]
imul esi, ebx
mov dword [esp + 0x3c0], edi
mov edi, dword [esp + 0x3c8]
mov eax, dword [esp + 0x3bc]
lea edi, [esi + edi + 8]
movsd xmm7, qword [edi]
movhpd xmm7, qword [edi + eax]
mulpd xmm7, xmmword [edx + ebx*8 + 8]
mov edi, dword [esp + 0x3ac]
addpd xmm6, xmm7
lea edi, [edi + ecx*8 + 8]
add edi, esi
movsd xmm7, qword [edi]
movhpd xmm7, qword [edi + eax]
mulpd xmm7, xmmword [edx + ebx*8 + 0x18]
mov edi, dword [esp + 0x3a8]
addpd xmm5, xmm7
lea edi, [edi + ecx*8 + 8]
add edi, esi
movsd xmm7, qword [edi]
movhpd xmm7, qword [edi + eax]
mulpd xmm7, xmmword [edx + ebx*8 + 0x28]
mov edi, dword [esp + 0x3c4]
addpd xmm4, xmm7
lea edi, [edi + ecx*8 + 8]
add edi, esi
lea esi, [esi + eax*8]
movsd xmm7, qword [edi]
movhpd xmm7, qword [edi + eax]
mulpd xmm7, xmmword [edx + ebx*8 + 0x38]
add ebx, 8
addpd xmm3, xmm7
cmp ebx, dword [esp + 0x3c0]
jb 0x592a3d
addpd xmm6, xmm5
addpd xmm4, xmm3
mov edi, dword [esp + 0x3c0]
mov eax, dword [esp + 0x140]
mov edx, dword [esp + 0x430]
addpd xmm6, xmm4
mov esi, dword [esp + 0x3bc]
imul esi, edi
cmp edi, edx
jae 0x592b45
mov ebx, dword [esp + 0x1e8]
lea ebx, [ebx + ecx*8]
mov edx, dword [esp + 0x3a4]
movsd xmm3, qword [esi + ebx + 8]
add esi, dword [esp + 0x3bc]
mulsd xmm3, qword [edx + edi*8 + 8]
inc edi
addsd xmm3, qword [eax + ecx*8 + 8]
movsd qword [eax + ecx*8 + 8], xmm3
cmp edi, dword [esp + 0x430]
jb 0x592b0e
mov edx, dword [esp + 0x430]
mov ebx, dword [esp + 0x150]
movaps xmm3, xmm6
unpckhpd xmm3, xmm6
movsd xmm4, qword [0x68fac0]
addsd xmm6, xmm3
mulsd xmm4, qword [ebx + ecx*8 + 8]
mov esi, dword [esp + 0x1b0]
mov edi, dword [esp + 0x1b4]
addsd xmm6, qword [eax + ecx*8 + 8]
subsd xmm4, qword [esi + ecx*8 + 8]
movsd qword [eax + ecx*8 + 8], xmm2
addsd xmm4, xmm6
movsd qword [edi + ecx*8 + 8], xmm4
cmp edx, 8
jl 0x594798
mov esi, dword [esp + 0x160]
test esi, esi
je 0x592bb6
cmp dword [esp + 0x168], 0
jne 0x594798
mov esi, 1
lea ebx, [esi + 8]
cmp edx, ebx
jl 0x594798
mov edi, edx
lea ebx, [ecx*8]
sub edi, esi
mov dword [esp + 0x1f4], ebx
and edi, 7
mov ebx, dword [esp + 0x1e8]
neg edi
add edi, edx
lea ebx, [ebx + ecx*8]
mov dword [esp + 0x3d0], ebx
test esi, esi
jbe 0x592c5d
xor ebx, ebx
mov dword [esp + 0x16c], ebx
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x3cc], edi
mov ecx, ebx
mov edx, dword [esp + 0x16c]
mov ebx, dword [esp + 0x1f4]
mov edi, dword [esp + 0x3d0]
movsd xmm3, qword [ecx + edi + 8]
mov edi, dword [esp + 0x384]
add ecx, dword [esp + 0x3bc]
mulsd xmm3, qword [edi + edx*8 + 8]
inc edx
addsd xmm3, qword [eax + ebx + 8]
movsd qword [eax + ebx + 8], xmm3
cmp edx, esi
jb 0x592c16
mov edi, dword [esp + 0x3cc]
mov ecx, dword [esp + 0x13c]
mov edx, dword [esp + 0x430]
movaps xmm6, xmm1
movaps xmm5, xmm6
movaps xmm4, xmm5
mov ebx, dword [esp + 0x3bc]
movaps xmm3, xmm4
mov edx, dword [esp + 0x384]
imul ebx, esi
mov dword [esp + 0x3cc], edi
mov edi, dword [esp + 0x3d0]
mov eax, dword [esp + 0x3bc]
lea edi, [ebx + edi + 8]
movsd xmm7, qword [edi]
movhpd xmm7, qword [edi + eax]
mulpd xmm7, xmmword [edx + esi*8 + 8]
mov edi, dword [esp + 0x3ac]
addpd xmm6, xmm7
lea edi, [edi + ecx*8 + 8]
add edi, ebx
movsd xmm7, qword [edi]
movhpd xmm7, qword [edi + eax]
mulpd xmm7, xmmword [edx + esi*8 + 0x18]
mov edi, dword [esp + 0x3a8]
addpd xmm5, xmm7
lea edi, [edi + ecx*8 + 8]
add edi, ebx
movsd xmm7, qword [edi]
movhpd xmm7, qword [edi + eax]
mulpd xmm7, xmmword [edx + esi*8 + 0x28]
mov edi, dword [esp + 0x3c4]
addpd xmm4, xmm7
lea edi, [edi + ecx*8 + 8]
add edi, ebx
lea ebx, [ebx + eax*8]
movsd xmm7, qword [edi]
movhpd xmm7, qword [edi + eax]
mulpd xmm7, xmmword [edx + esi*8 + 0x38]
add esi, 8
addpd xmm3, xmm7
cmp esi, dword [esp + 0x3cc]
jb 0x592c81
addpd xmm6, xmm5
addpd xmm4, xmm3
mov edi, dword [esp + 0x3cc]
mov eax, dword [esp + 0x140]
mov edx, dword [esp + 0x430]
addpd xmm6, xmm4
mov esi, dword [esp + 0x3bc]
imul esi, edi
cmp edi, edx
jae 0x592d89
mov ebx, dword [esp + 0x1e8]
mov edx, dword [esp + 0x384]
lea ebx, [ebx + ecx*8]
movsd xmm3, qword [esi + ebx + 8]
mulsd xmm3, qword [edx + edi*8 + 8]
inc edi
add esi, dword [esp + 0x3bc]
addsd xmm3, qword [eax + ecx*8 + 8]
movsd qword [eax + ecx*8 + 8], xmm3
cmp edi, dword [esp + 0x430]
jb 0x592d59
mov edx, dword [esp + 0x430]
mov ebx, dword [esp + 0x230]
movaps xmm3, xmm6
unpckhpd xmm3, xmm6
movaps xmm4, xmm0
mov esi, dword [esp + 0x1a8]
addsd xmm6, xmm3
mulsd xmm4, qword [ebx + ecx*8 + 8]
mov edi, dword [esp + 0x1ac]
addsd xmm6, qword [eax + ecx*8 + 8]
subsd xmm4, qword [esi + ecx*8 + 8]
movsd qword [eax + ecx*8 + 8], xmm6
addsd xmm4, xmm6
movsd qword [edi + ecx*8 + 8], xmm4
inc ecx
cmp ecx, edx
jb 0x592945
mov ebx, dword [0x6c5bd8]
shl ebx, 3
mov ecx, dword [0x6c5bb8]
sub ecx, ebx
mov ebx, dword [esp + 0x40]
sub ebx, dword [esp + 0x5c]
sub ebx, dword [esp + 0x58]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x1a4]
sub ebx, dword [esp + 0x54]
sub ebx, dword [esp + 0x50]
mov dword [esp + 0x1a4], ebx
mov ebx, dword [esp + 0x1a0]
sub ebx, dword [esp + 0x4c]
mov dword [esp + 0x1a0], ebx
mov ebx, dword [esp + 0x19c]
sub ebx, dword [esp + 0x48]
mov dword [esp + 0x19c], ebx
mov esi, dword [0x6c5be0]
mov ebx, dword [esp + 0x198]
imul ebx, esi
mov edi, dword [0x6c5be4]
add ebx, ecx
imul edi, esi
imul esi, dword [esp + 0x7c]
sub ebx, edi
add ecx, esi
mov dword [esp + 0x198], ebx
sub ecx, edi
mov ebx, dword [esp + 0x30]
mov esi, dword [0x6c5a68]
mov eax, dword [0x6c5a6c]
sub ebx, dword [0x6c5a78]
imul eax, esi
imul ebx, dword [0x6c5a74]
mov edx, dword [0x6c5a60]
mov edi, dword [0x6c5a40]
shl edx, 3
sub edi, eax
add ebx, edi
lea eax, [esi + esi]
sub esi, edx
sub eax, edx
add esi, ebx
add eax, ebx
mov dword [esp + 0x60], 1
mov dword [esp + 0x1bc], esi
mov dword [esp + 0x1c4], ecx
mov dword [esp + 0x1c0], eax
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x60]
mov ecx, dword [esp + 0x74]
nop dword [eax]
nop dword [eax]
inc ecx
mov edi, dword [esp + 0x1a0]
mov eax, dword [esp + 0x19c]
movsd xmm2, qword [ebx + esi*8]
mov edx, dword [edi + ecx*4]
mov eax, dword [eax + ecx*4]
mov edi, dword [esp + 0x198]
movsd xmm0, qword [edi + eax*8]
subsd xmm0, qword [ebx + esi*8]
movsd qword [edi + eax*8], xmm0
mov edi, dword [esp + 0x1c4]
mov eax, dword [esp + 0x1a4]
movsd xmm1, qword [edi + edx*8]
movsd xmm3, qword [eax + esi*8]
subsd xmm1, qword [eax + esi*8]
movsd qword [edi + edx*8], xmm1
mov edx, dword [esp + 0x1bc]
mov eax, dword [esp + 0x1c0]
movsd qword [edx + esi*8], xmm2
movsd qword [eax + esi*8], xmm3
inc esi
cmp esi, dword [esp + 0x430]
jle 0x592ed0
mov dword [esp + 0x74], ecx
mov eax, dword [esp + 0x88]
inc eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x1fc], eax
mov dword [esp + 0x84], eax
cmp eax, dword [esp + 0x80]
jle 0x58f6eb
mov edi, dword [esp + 0x88]
mov eax, dword [0x76e520]
mov dword [esp + 0xcc], edi
mov dword [esp + 0x44], eax
cmp dword [esp + 0x44], 0
jle 0x592fef
mov edx, dword [0x81ee44]
test edx, edx
jle 0x592fea
xor eax, eax
mov edi, 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov ecx, dword [0x6c61b0]
mov edx, dword [0x6c61b4]
imul edx, ecx
mov eax, dword [0x6c6188]
lea esi, [ecx*4]
neg esi
add esi, edx
neg esi
lea eax, [eax + edi*4]
mov ebx, dword [0x6c61a8]
add esi, eax
shl ebx, 2
sub esi, ebx
cmp dword [esi], 1
je 0x594cc2
inc edi
cmp edi, dword [esp + 0x14]
jle 0x592fa9
call fcn.00635020
cmp dword [0x76e528], 0
jle 0x5930a0
call fcn.00634f00
mov ebx, dword [0x6c6a18]
test ebx, ebx
jle 0x593029
mov ecx, dword [0x6c6a00]
cmp ebx, 0x18
jle 0x594928
shl ebx, 2
push ebx
push 0
push ecx
call fcn.0062a5e0
add esp, 0xc
xor eax, eax
mov ebx, 1
mov ecx, dword [0x81ee44]
test ecx, ecx
jle 0x593098
xor edx, edx
mov esi, ebx
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x40], eax
mov edx, dword [0x6c61b0]
mov eax, dword [0x6c6188]
mov ecx, dword [0x6c61b4]
imul ecx, edx
mov ebx, dword [0x6c61a8]
lea edi, [eax + esi*4]
shl ebx, 2
lea eax, [edx*4]
neg eax
add eax, ecx
neg eax
add eax, edi
sub eax, ebx
mov dword [esp + 0x4c], edi
cmp dword [eax], 2
je 0x594a79
inc esi
cmp esi, dword [esp + 0x48]
jle 0x59304a
mov eax, dword [esp + 0x40]
mov ebx, 1
cmp eax, dword [0x76e528]
jl 0x593030
test byte [0x76e5c0], 1
je 0x5931ad
mov eax, dword [0x81e668]
mov dword [esp + 0x48], eax
test eax, eax
jle 0x5931ad
mov edx, dword [0x6c5348]
xor eax, eax
mov esi, dword [0x6c534c]
imul esi, edx
mov edi, dword [0x6c5320]
sub edi, esi
mov ebx, dword [0x6c5340]
mov dword [esp + 0x44], edi
shl ebx, 3
mov ecx, dword [0x6c5af8]
add edi, edx
shl ecx, 2
sub edi, ebx
neg ecx
add ecx, dword [0x6c5ad8]
mov dword [esp + 0x40], ecx
mov ecx, edx
sub ecx, ebx
lea ebx, [edi + 8]
mov dword [esp + 0x5c], ebx
mov ebx, dword [0x6c5be0]
mov esi, dword [0x6c5be4]
imul esi, ebx
mov dword [esp + 0x4c], ecx
mov ecx, dword [0x6c5bd8]
shl ecx, 3
mov dword [esp + 0x74], edi
mov edi, dword [0x6c5bb8]
sub edi, ecx
sub edi, esi
xor esi, esi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x50], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x10], edi
lea ecx, [ebx + edi]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x50]
mov edx, dword [eax + edx*4 + 4]
test edx, edx
jle 0x59318a
cmp edx, 0xc
jle 0x594961
shl edx, 3
push edx
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
lea ecx, [eax + edx + 8]
add ecx, dword [esp + 0x30]
push ecx
push ebx
call fcn.0062a530
add esp, 0xc
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x50]
inc ecx
mov edx, dword [esp + 0x14]
add ebx, edx
add dword [esp + 0x64], eax
add esi, edx
add dword [esp + 0x2c], eax
mov dword [esp + 0x50], ecx
cmp ecx, dword [esp + 0x48]
jb 0x593153
add esp, 0x4b4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp ebx, 0xc
jle 0x595416
lea edi, [ebx*8]
push edi
push 0
push dword [esp + 0x154]
call fcn.0062a5e0
push edi
push 0
push dword [esp + 0x164]
call fcn.0062a5e0
add esp, 0x18
mov edx, dword [esp + 0x1cc]
mov edi, dword [esp + 0x198]
mov eax, dword [esp + 0x94]
mov dword [esp + 0x2bc], 0
mov edx, dword [edx + edi*4]
mov dword [esp + 0x224], edx
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x98]
mov dword [esp + 0x330], ebx
mov dword [esp + 0x194], esi
lea ecx, [eax + edx*4]
mov dword [esp + 0x2b8], ecx
lea eax, [edi + edx*4]
mov edi, dword [esp + 0x158]
mov ecx, dword [esp + 0x64]
imul edi, ecx
mov dword [esp + 0x2b4], eax
mov eax, dword [esp + 0xa4]
add edi, eax
mov dword [esp + 0x2c0], edi
mov edi, dword [esp + 0x90]
mov edx, dword [esp + 0x9c]
add edx, edi
mov dword [esp + 0x2b0], edx
mov edx, dword [esp + 0x15c]
imul edx, ecx
mov ecx, ebx
add edx, eax
mov eax, dword [esp + 0x1c]
imul eax, esi
shr ecx, 1
mov dword [esp + 0x2ac], ecx
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x2a4]
mov dword [esp + 0x2c4], edx
lea edi, [ecx + eax]
mov dword [esp + 0x20c], edi
mov ecx, dword [esp + 0x2c]
lea edi, [ecx + eax]
add eax, dword [esp + 0x30]
mov dword [esp + 0x238], eax
mov dword [esp + 0x204], edi
mov eax, dword [esp + 0x2bc]
cmp dword [esp + 0x224], 0
jne 0x593473
cmp dword [esp + 0x2ac], 0
jbe 0x5950cf
mov ecx, dword [esp + 0x204]
xor edx, edx
mov esi, dword [esp + 0x238]
lea edi, [ecx + eax*8]
mov dword [esp + 0x2d8], edi
lea ecx, [esi + eax*8]
mov dword [esp + 0x2d4], ecx
mov ecx, dword [esp + 0x2b8]
mov ebx, dword [esp + 0x2b4]
mov dword [esp + 0x2e4], edx
mov esi, dword [ecx + edx*8 + 4]
mov ecx, dword [esp + 0x2a8]
imul ecx, edx
mov edi, dword [ebx + edx*8 + 4]
mov ebx, dword [esp + 0x2d8]
movsd xmm0, qword [ebx + ecx*2 + 8]
mov ebx, dword [esp + 0x2c0]
movsd xmm2, qword [ebx + esi*8]
mulsd xmm2, xmm0
mov esi, dword [esp + 0x2a4]
addsd xmm2, qword [esi + eax*8 + 8]
mov esi, dword [esp + 0x2c4]
movsd xmm5, qword [esi + edi*8]
mulsd xmm5, xmm0
mov edi, dword [esp + 0x2a0]
mov esi, dword [esp + 0x2b8]
addsd xmm5, qword [edi + eax*8 + 8]
mov esi, dword [esi + edx*8 + 8]
mov edi, dword [esp + 0x2b4]
movsd xmm1, qword [ebx + esi*8]
mov edx, dword [edi + edx*8 + 8]
mov edi, dword [esp + 0x2d4]
mov ebx, dword [esp + 0x2c4]
movsd xmm3, qword [edi + ecx*2 + 8]
movsd xmm4, qword [ebx + edx*8]
mulsd xmm4, xmm3
mulsd xmm1, xmm3
addsd xmm5, xmm4
addsd xmm2, xmm1
mov edx, dword [esp + 0x2a0]
mov ecx, dword [esp + 0x2a4]
movsd qword [edx + eax*8 + 8], xmm5
mov edx, dword [esp + 0x2e4]
inc edx
movsd qword [ecx + eax*8 + 8], xmm2
cmp edx, dword [esp + 0x2ac]
jb 0x593311
mov ebx, ecx
lea esi, [edx + edx + 1]
lea edx, [esi - 1]
cmp edx, dword [esp + 0x330]
jae 0x593579
mov edi, dword [esp + 0x2b8]
mov edx, dword [esp + 0x2b4]
mov ecx, dword [edi + esi*4]
mov edx, dword [edx + esi*4]
imul esi, dword [esp + 0x2a8]
mov edi, dword [esp + 0x2c0]
add esi, dword [esp + 0x20c]
movsd xmm0, qword [edi + ecx*8]
mov ecx, dword [esp + 0x2c4]
mulsd xmm0, qword [esi + eax*8 + 8]
movsd xmm1, qword [ecx + edx*8]
mulsd xmm1, qword [esi + eax*8 + 8]
addsd xmm0, qword [ebx + eax*8 + 8]
mov esi, dword [esp + 0x2a0]
movsd qword [ebx + eax*8 + 8], xmm0
addsd xmm1, qword [esi + eax*8 + 8]
movsd qword [esi + eax*8 + 8], xmm1
jmp 0x593579
mov ebx, dword [esp + 0x2ac]
cmp dword [esp + 0x224], 1
je 0x595280
mov ebx, dword [esp + 0x2a4]
cmp dword [esp + 0x2ac], 0
jbe 0x595276
mov esi, dword [esp + 0x204]
xor ecx, ecx
mov edx, dword [esp + 0x238]
mov dword [esp + 0x2bc], eax
lea esi, [esi + eax*8]
mov dword [esp + 0x2e0], esi
lea edi, [edx + eax*8]
mov dword [esp + 0x2dc], edi
xor edx, edx
nop word [eax + eax]
mov esi, dword [esp + 0x2b8]
mov edi, dword [esp + 0x2c0]
mov eax, dword [esi + ecx*8 + 4]
mov esi, dword [esi + ecx*8 + 8]
inc ecx
movsd xmm1, qword [edi + eax*8]
mov eax, dword [esp + 0x2e0]
movsd xmm0, qword [edi + esi*8]
mov edi, dword [esp + 0x2dc]
mulsd xmm1, qword [eax + edx*2 + 8]
mulsd xmm0, qword [edi + edx*2 + 8]
mov eax, dword [esp + 0x2bc]
add edx, dword [esp + 0x2a8]
addsd xmm1, qword [ebx + eax*8 + 8]
addsd xmm1, xmm0
movsd qword [ebx + eax*8 + 8], xmm1
cmp ecx, dword [esp + 0x2ac]
jb 0x5934d0
lea edx, [ecx + ecx + 1]
lea ecx, [edx - 1]
cmp ecx, dword [esp + 0x330]
jae 0x593579
mov ecx, dword [esp + 0x2b8]
mov esi, dword [esp + 0x2c0]
mov edi, dword [ecx + edx*4]
imul edx, dword [esp + 0x2a8]
movsd xmm0, qword [esi + edi*8]
add edx, dword [esp + 0x20c]
mulsd xmm0, qword [edx + eax*8 + 8]
addsd xmm0, qword [ebx + eax*8 + 8]
movsd qword [ebx + eax*8 + 8], xmm0
inc eax
cmp eax, dword [esp + 0x330]
jb 0x5932d1
mov ebx, dword [esp + 0x330]
mov esi, dword [esp + 0x194]
cmp ebx, 8
jl 0x595256
cmp ebx, dword [esp + 0x88]
jl 0x59523e
mov ecx, dword [esp + 0x168]
mov edx, ebx
imul ecx, esi
mov eax, dword [esp + 0x11c]
sub edx, eax
and edx, 7
neg edx
add ecx, dword [esp + 0x16c]
add edx, ebx
test eax, eax
jbe 0x593607
mov dword [esp + 0x194], esi
xor eax, eax
mov esi, dword [esp + 0x11c]
mov edi, dword [esp + 0x2a0]
movsd xmm0, qword [edi + eax*8 + 8]
subsd xmm0, qword [ecx + eax*8 + 8]
movsd qword [edi + eax*8 + 8], xmm0
inc eax
cmp eax, esi
jb 0x5935e9
mov esi, dword [esp + 0x194]
mov eax, dword [esp + 0x11c]
lea edi, [ecx + eax*8 + 8]
test edi, 0xf
je 0x593685
mov edi, dword [esp + 0x2a0]
nop dword [eax + eax]
nop dword [eax]
movups xmm0, xmmword [ecx + eax*8 + 8]
movups xmm2, xmmword [ecx + eax*8 + 0x18]
movups xmm4, xmmword [ecx + eax*8 + 0x28]
movups xmm6, xmmword [ecx + eax*8 + 0x38]
movups xmm1, xmmword [edi + eax*8 + 8]
movups xmm3, xmmword [edi + eax*8 + 0x18]
movups xmm5, xmmword [edi + eax*8 + 0x28]
movups xmm7, xmmword [edi + eax*8 + 0x38]
subpd xmm1, xmm0
subpd xmm3, xmm2
subpd xmm5, xmm4
subpd xmm7, xmm6
movups xmmword [edi + eax*8 + 8], xmm1
movups xmmword [edi + eax*8 + 0x18], xmm3
movups xmmword [edi + eax*8 + 0x28], xmm5
movups xmmword [edi + eax*8 + 0x38], xmm7
add eax, 8
cmp eax, edx
jb 0x593630
jmp 0x5936d7
mov edi, dword [esp + 0x2a0]
nop dword [eax]
movups xmm0, xmmword [edi + eax*8 + 8]
movups xmm1, xmmword [edi + eax*8 + 0x18]
movups xmm2, xmmword [edi + eax*8 + 0x28]
movups xmm3, xmmword [edi + eax*8 + 0x38]
subpd xmm0, xmmword [ecx + eax*8 + 8]
subpd xmm1, xmmword [ecx + eax*8 + 0x18]
subpd xmm2, xmmword [ecx + eax*8 + 0x28]
subpd xmm3, xmmword [ecx + eax*8 + 0x38]
movups xmmword [edi + eax*8 + 8], xmm0
movups xmmword [edi + eax*8 + 0x18], xmm1
movups xmmword [edi + eax*8 + 0x28], xmm2
movups xmmword [edi + eax*8 + 0x38], xmm3
add eax, 8
cmp eax, edx
jb 0x593690
cmp edx, ebx
jae 0x595233
mov eax, dword [esp + 0x2a0]
movsd xmm0, qword [eax + edx*8 + 8]
subsd xmm0, qword [ecx + edx*8 + 8]
movsd qword [eax + edx*8 + 8], xmm0
inc edx
cmp edx, ebx
jb 0x5936e6
cmp ebx, 0xc
jle 0x5951b9
add ecx, 8
lea eax, [ebx*8]
push eax
push 0
push ecx
call fcn.0062a5e0
add esp, 0xc
cmp ebx, dword [esp + 0x8c]
jl 0x5951b2
mov edx, dword [esp + 0x164]
mov ecx, ebx
imul edx, esi
mov eax, dword [esp + 0x120]
sub ecx, eax
and ecx, 7
neg ecx
add edx, dword [esp + 0x170]
add ecx, ebx
test eax, eax
jbe 0x593785
mov dword [esp + 0x194], esi
xor eax, eax
mov esi, dword [esp + 0x120]
mov edi, dword [esp + 0x2a4]
movsd xmm0, qword [edi + eax*8 + 8]
subsd xmm0, qword [edx + eax*8 + 8]
movsd qword [edi + eax*8 + 8], xmm0
inc eax
cmp eax, esi
jb 0x593767
mov esi, dword [esp + 0x194]
mov eax, dword [esp + 0x120]
lea edi, [edx + eax*8 + 8]
test edi, 0xf
je 0x5937f5
mov edi, dword [esp + 0x2a4]
nop
movups xmm0, xmmword [edx + eax*8 + 8]
movups xmm2, xmmword [edx + eax*8 + 0x18]
movups xmm4, xmmword [edx + eax*8 + 0x28]
movups xmm6, xmmword [edx + eax*8 + 0x38]
movups xmm1, xmmword [edi + eax*8 + 8]
movups xmm3, xmmword [edi + eax*8 + 0x18]
movups xmm5, xmmword [edi + eax*8 + 0x28]
movups xmm7, xmmword [edi + eax*8 + 0x38]
subpd xmm1, xmm0
subpd xmm3, xmm2
subpd xmm5, xmm4
subpd xmm7, xmm6
movups xmmword [edi + eax*8 + 8], xmm1
movups xmmword [edi + eax*8 + 0x18], xmm3
movups xmmword [edi + eax*8 + 0x28], xmm5
movups xmmword [edi + eax*8 + 0x38], xmm7
add eax, 8
cmp eax, ecx
jb 0x5937a0
jmp 0x593847
mov edi, dword [esp + 0x2a4]
nop dword [eax]
movups xmm0, xmmword [edi + eax*8 + 8]
movups xmm1, xmmword [edi + eax*8 + 0x18]
movups xmm2, xmmword [edi + eax*8 + 0x28]
movups xmm3, xmmword [edi + eax*8 + 0x38]
subpd xmm0, xmmword [edx + eax*8 + 8]
subpd xmm1, xmmword [edx + eax*8 + 0x18]
subpd xmm2, xmmword [edx + eax*8 + 0x28]
subpd xmm3, xmmword [edx + eax*8 + 0x38]
movups xmmword [edi + eax*8 + 8], xmm0
movups xmmword [edi + eax*8 + 0x18], xmm1
movups xmmword [edi + eax*8 + 0x28], xmm2
movups xmmword [edi + eax*8 + 0x38], xmm3
add eax, 8
cmp eax, ecx
jb 0x593800
cmp ecx, ebx
jae 0x59387a
mov eax, dword [esp + 0x164]
imul eax, esi
add eax, dword [esp + 0x170]
mov edx, dword [esp + 0x2a4]
movsd xmm0, qword [edx + ecx*8 + 8]
subsd xmm0, qword [eax + ecx*8 + 8]
movsd qword [edx + ecx*8 + 8], xmm0
inc ecx
cmp ecx, ebx
jb 0x593863
cmp ebx, 0xc
jle 0x59514f
mov eax, dword [esp + 0x164]
lea ecx, [ebx*8]
imul eax, esi
mov edx, dword [esp + 0x170]
push ecx
push 0
lea edi, [eax + edx + 8]
push edi
call fcn.0062a5e0
add esp, 0xc
mov edi, dword [esp + 0x248]
mov eax, dword [esp + 0x240]
cmp dword [esp + 0x2ac], 0
mov edi, dword [edi + esi*4]
lea edx, [edi + 1]
mov dword [esp + 0x154], edx
jbe 0x595145
mov ecx, dword [esp + 0x10c]
imul ecx, esi
mov edx, dword [esp + 0x114]
imul edx, esi
add ecx, dword [esp + 0x134]
mov dword [esp + 0x174], ecx
mov ecx, dword [esp + 0x124]
add edx, dword [esp + 0x138]
mov dword [esp + 0x188], edx
mov edx, dword [ecx + esi*4]
mov ecx, dword [esp + 0x2f4]
mov dword [esp + 0x18c], 0
mov dword [esp + 0x178], edi
mov dword [esp + 0x330], ebx
lea ecx, [ecx + edx*8]
mov dword [esp + 0x180], ecx
mov ecx, dword [esp + 0x2f0]
mov dword [esp + 0x194], esi
lea edx, [ecx + edx*8]
mov dword [esp + 0x184], edx
mov ecx, dword [esp + 0x18c]
mov dword [esp + 0x18c], ecx
shl ecx, 4
mov edx, dword [esp + 0x2a0]
mov esi, dword [esp + 0x2a4]
mov ebx, dword [esp + 0x174]
movsd xmm1, qword [edx + ecx + 8]
mov edx, dword [esp + 0x188]
movsd xmm0, qword [esi + ecx + 8]
movsd xmm2, qword [esi + ecx + 0x10]
mov esi, edx
mov edi, dword [esp + 0x184]
addsd xmm0, qword [ebx + ecx + 8]
addsd xmm2, qword [ebx + ecx + 0x10]
addsd xmm1, qword [edx + ecx + 8]
mov ebx, dword [esp + 0x2a0]
mov edx, dword [esp + 0x180]
movsd qword [edi + eax*8], xmm0
movsd xmm3, qword [ebx + ecx + 0x10]
movsd qword [edx + eax*8], xmm1
mov edx, dword [esp + 0x178]
addsd xmm3, qword [esi + ecx + 0x10]
mov ecx, dword [esp + 0x180]
lea eax, [eax + edx + 1]
movsd qword [edi + eax*8], xmm2
movsd qword [ecx + eax*8], xmm3
lea eax, [eax + edx + 1]
mov ecx, dword [esp + 0x18c]
inc ecx
cmp ecx, dword [esp + 0x2ac]
jb 0x593957
mov ebx, dword [esp + 0x330]
lea edi, [ecx + ecx + 1]
mov esi, dword [esp + 0x194]
lea edx, [edi - 1]
cmp edx, ebx
jae 0x593a96
mov dword [esp + 0x330], ebx
mov ebx, dword [esp + 0x124]
mov ecx, dword [esp + 0x10c]
imul ecx, esi
add eax, dword [ebx + esi*4]
mov edx, dword [esp + 0x134]
mov ebx, dword [esp + 0x2a4]
lea edx, [edx + edi*8]
movsd xmm0, qword [ebx + edi*8]
mov ebx, dword [esp + 0x2a0]
addsd xmm0, qword [edx + ecx]
mov ecx, dword [esp + 0x2f0]
mov edx, dword [esp + 0x114]
imul edx, esi
movsd qword [ecx + eax*8], xmm0
movsd xmm1, qword [ebx + edi*8]
mov ecx, dword [esp + 0x138]
mov ebx, dword [esp + 0x330]
lea ecx, [ecx + edi*8]
mov edi, dword [esp + 0x2f4]
addsd xmm1, qword [ecx + edx]
movsd qword [edi + eax*8], xmm1
cmp ebx, 8
jl 0x59513e
mov ecx, dword [esp + 0x10c]
imul ecx, esi
mov edx, dword [esp + 0x134]
lea eax, [edx + ecx]
mov dword [esp + 0xf8], eax
lea edx, [edx + ecx + 8]
and edx, 0xf
je 0x593ad1
test dl, 7
jne 0x59513e
mov edx, 1
lea eax, [edx + 8]
cmp ebx, eax
jl 0x59513e
mov ecx, dword [esp + 0x114]
mov edi, ebx
imul ecx, esi
sub edi, edx
and edi, 7
neg edi
add ecx, dword [esp + 0x138]
add edi, ebx
test edx, edx
jbe 0x593b28
mov dword [esp + 0x194], esi
xor eax, eax
mov esi, dword [esp + 0xf8]
pxor xmm0, xmm0
movsd qword [ecx + eax*8 + 8], xmm0
movsd qword [esi + eax*8 + 8], xmm0
inc eax
cmp eax, edx
jb 0x593b10
mov esi, dword [esp + 0x194]
lea eax, [ecx + edx*8 + 8]
test al, 0xf
je 0x593b6c
mov eax, dword [esp + 0xf8]
pxor xmm0, xmm0
movups xmmword [ecx + edx*8 + 8], xmm0
movups xmmword [ecx + edx*8 + 0x18], xmm0
movups xmmword [ecx + edx*8 + 0x28], xmm0
movups xmmword [ecx + edx*8 + 0x38], xmm0
movups xmmword [eax + edx*8 + 8], xmm0
movups xmmword [eax + edx*8 + 0x18], xmm0
movups xmmword [eax + edx*8 + 0x28], xmm0
movups xmmword [eax + edx*8 + 0x38], xmm0
add edx, 8
cmp edx, edi
jb 0x593b3b
jmp 0x593ba6
mov eax, dword [esp + 0xf8]
pxor xmm0, xmm0
movups xmmword [ecx + edx*8 + 8], xmm0
movups xmmword [eax + edx*8 + 8], xmm0
movups xmmword [ecx + edx*8 + 0x18], xmm0
movups xmmword [eax + edx*8 + 0x18], xmm0
movups xmmword [ecx + edx*8 + 0x28], xmm0
movups xmmword [eax + edx*8 + 0x28], xmm0
movups xmmword [ecx + edx*8 + 0x38], xmm0
movups xmmword [eax + edx*8 + 0x38], xmm0
add edx, 8
cmp edx, edi
jb 0x593b77
cmp edi, ebx
jae 0x593be1
mov edx, dword [esp + 0x10c]
mov eax, dword [esp + 0x114]
pxor xmm0, xmm0
imul edx, esi
imul eax, esi
add edx, dword [esp + 0x134]
add eax, dword [esp + 0x138]
movsd qword [eax + edi*8 + 8], xmm0
movsd qword [edx + edi*8 + 8], xmm0
inc edi
cmp edi, ebx
jb 0x593bd0
mov eax, dword [esp + 0x128]
mov edx, dword [eax + esi*4]
test edx, edx
jle 0x58e9c2
mov ecx, dword [esp + 0x10c]
imul ecx, esi
mov edi, dword [esp + 0x118]
imul edi, esi
add ecx, dword [esp + 0x134]
mov dword [esp + 0x384], ecx
mov ecx, dword [esp + 0x7c]
imul ecx, esi
add edi, dword [esp + 0x144]
mov dword [esp + 0x22c], edi
mov edi, dword [esp + 0xb4]
add ecx, dword [esp + 0xa0]
mov eax, dword [esp + 0x114]
mov dword [esp + 0x200], ecx
lea ecx, [edi + esi*8]
mov edi, dword [esp + 0x4c]
imul eax, esi
imul edi, esi
add eax, dword [esp + 0x138]
add edi, dword [esp + 0xd4]
mov dword [esp + 0x380], eax
mov dword [esp + 0x218], edi
mov eax, dword [esp + 0x80]
mov edi, dword [esp + 0x6c]
imul eax, esi
imul edi, esi
add eax, dword [esp + 0xbc]
add edi, dword [esp + 0xb8]
mov dword [esp + 0x208], eax
mov dword [esp + 0x220], edi
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x60]
imul eax, esi
imul edi, esi
add eax, dword [esp + 0xa8]
add edi, dword [esp + 0xc0]
mov dword [esp + 0x314], ecx
mov dword [esp + 0x210], eax
mov dword [esp + 0x1fc], edi
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x84]
mov edi, dword [esp + 0x48]
imul ecx, esi
imul eax, esi
imul edi, esi
add ecx, dword [esp + 0xc4]
add eax, dword [esp + 0xcc]
add edi, dword [esp + 0xc8]
mov dword [esp + 0x1ec], 0
mov dword [esp + 0x194], esi
mov dword [esp + 0x1f8], edi
mov dword [esp + 0x1f4], eax
mov dword [esp + 0x1f0], ecx
mov dword [esp + 0x24c], edx
mov dword [esp + 0x330], ebx
mov esi, dword [esp + 0x1ec]
mov ebx, dword [esp + 0x240]
cmp dword [esp + 0x330], 0
jle 0x59425c
mov edx, dword [esp + 0x22c]
mov eax, dword [esp + 0x200]
mov dword [esp + 0x360], 0
mov ecx, dword [edx + esi*4 + 4]
mov edi, dword [eax + esi*4 + 4]
mov edx, dword [esp + 0x1bc]
mov eax, dword [esp + 0x1b4]
imul edx, esi
imul eax, esi
mov dword [esp + 0x30c], edi
mov edi, dword [esp + 0x210]
add edx, dword [esp + 0x208]
add eax, dword [esp + 0x1f0]
mov dword [esp + 0x370], edx
mov dword [esp + 0x36c], eax
mov edx, dword [edi + esi*4 + 4]
mov edi, dword [esp + 0x194]
mov eax, dword [esp + 0x248]
mov dword [esp + 0x308], ecx
mov ecx, dword [esp + 0x1b8]
mov eax, dword [eax + edi*4]
mov edi, dword [esp + 0x1c0]
imul edi, esi
imul ecx, esi
add edi, dword [esp + 0x1fc]
mov dword [esp + 0x304], eax
mov dword [esp + 0x310], ecx
mov dword [esp + 0x37c], edx
mov eax, dword [esp + 0x1b0]
mov dword [esp + 0x374], edi
mov edx, dword [esp + 0x1c8]
mov ecx, dword [esp + 0x1a0]
mov edi, dword [esp + 0x1c4]
imul eax, esi
imul edx, esi
imul ecx, esi
imul edi, esi
add eax, dword [esp + 0x220]
add edx, dword [esp + 0x1f4]
add ecx, dword [esp + 0x218]
add edi, dword [esp + 0x1f8]
mov dword [esp + 0x354], eax
mov dword [esp + 0x1ec], esi
mov dword [esp + 0x368], edi
mov dword [esp + 0x358], ecx
mov dword [esp + 0x35c], edx
mov dword [esp + 0x300], ebx
mov eax, dword [esp + 0x31c]
mov esi, dword [esp + 0x360]
mov edi, dword [esp + 0x308]
mov edx, dword [esp + 0x300]
mov ebx, dword [esp + 0x334]
mov dword [esp + 0x31c], eax
mov dword [esp + 0x350], ebx
lea ebx, [edi + edx]
mov eax, dword [esp + 0x30c]
mov edi, dword [esp + 0x2f4]
mov ecx, dword [esp + 0x314]
cmp dword [esp + 0x37c], 0
lea eax, [eax + edx]
movsd xmm0, qword [edi + ebx*8]
mov edx, dword [esp + 0x310]
subsd xmm0, qword [edi + eax*8]
mulsd xmm0, qword [edx + ecx]
addsd xmm0, qword [edi + eax*8]
mov edi, dword [esp + 0x370]
movsd qword [edi + esi*8 + 8], xmm0
mov edi, dword [esp + 0x2f0]
movsd xmm1, qword [edi + ebx*8]
subsd xmm1, qword [edi + eax*8]
mulsd xmm1, qword [edx + ecx]
mov ecx, dword [esp + 0x36c]
addsd xmm1, qword [edi + eax*8]
movsd qword [ecx + esi*8 + 8], xmm1
mov eax, dword [esp + 0x31c]
jle 0x594042
mov edx, eax
xor ecx, ecx
shl edx, 4
mov edi, dword [esp + 0x32c]
mov dword [esp + 0x31c], eax
add edi, edx
mov dword [esp + 0x2ec], edi
mov edi, dword [esp + 0x2f4]
add edx, dword [esp + 0x324]
mov eax, dword [esp + 0x2ec]
movsd xmm4, qword [edi + ebx*8]
mov edi, dword [esp + 0x2f0]
unpcklpd xmm4, xmm4
movsd xmm0, qword [edi + ebx*8]
unpcklpd xmm0, xmm0
mov ebx, ecx
inc ecx
shl ebx, 4
mov edi, dword [esp + 0x354]
movups xmm1, xmmword [edi + ebx + 0x10]
movups xmm7, xmmword [eax + ebx + 0x10]
movaps xmm5, xmm1
movaps xmm6, xmm7
xorps xmm6, xmmword [0x68fab0]
shufpd xmm6, xmm6, 1
unpcklpd xmm5, xmm1
unpckhpd xmm1, xmm1
mulpd xmm7, xmm5
mulpd xmm6, xmm1
mov edi, dword [esp + 0x374]
addpd xmm6, xmm7
movups xmm2, xmmword [edi + ebx + 0x10]
movaps xmm7, xmm4
mulpd xmm7, xmm2
mulpd xmm2, xmm0
addpd xmm6, xmm7
mov edi, dword [esp + 0x368]
movups xmm3, xmmword [edi + ebx + 0x10]
mov edi, dword [esp + 0x35c]
movsd xmm7, qword [edi + esi*8 + 8]
unpcklpd xmm7, xmm7
mulpd xmm7, xmm3
addpd xmm6, xmm7
movups xmmword [eax + ebx + 0x10], xmm6
movups xmm6, xmmword [edx + ebx + 0x10]
movaps xmm7, xmm6
xorps xmm7, xmmword [0x68fab0]
shufpd xmm7, xmm7, 1
mulpd xmm5, xmm6
mulpd xmm1, xmm7
addpd xmm1, xmm5
mov edi, dword [esp + 0x358]
addpd xmm1, xmm2
movsd xmm2, qword [edi + esi*8 + 8]
unpcklpd xmm2, xmm2
mulpd xmm2, xmm3
addpd xmm1, xmm2
movups xmmword [edx + ebx + 0x10], xmm1
cmp ecx, dword [esp + 0x37c]
jb 0x593f68
mov eax, dword [esp + 0x31c]
add eax, ecx
mov edi, dword [esp + 0x370]
mov edx, dword [esp + 0x35c]
mov ecx, dword [esp + 0x36c]
movsd xmm0, qword [edi + esi*8 + 8]
xor edi, edi
movsd qword [edx + esi*8 + 8], xmm0
movsd xmm1, qword [ecx + esi*8 + 8]
mov edx, dword [esp + 0x2e8]
mov ecx, dword [esp + 0x334]
mov ebx, dword [esp + 0x358]
sub eax, dword [esp + 0x37c]
mov dword [esp + 0x360], esi
lea edx, [edx + ecx*8]
movsd qword [ebx + esi*8 + 8], xmm1
mov dword [esp + 0x364], edx
mov ebx, dword [esp + 0x320]
mov esi, dword [esp + 0x350]
mov edx, dword [esp + 0x370]
cmp dword [esp + 0x37c], 0
lea ecx, [edi + esi + 1]
mov dword [esp + 0x334], ecx
mov ecx, dword [esp + 0x360]
mov esi, dword [esp + 0x384]
movsd xmm0, qword [edx + ecx*8 + 8]
mov edx, dword [esp + 0x364]
mulsd xmm0, qword [edx + edi*8 + 8]
addsd xmm0, qword [esi + edi*8 + 8]
movsd qword [esi + edi*8 + 8], xmm0
mov esi, dword [esp + 0x36c]
movsd xmm1, qword [esi + ecx*8 + 8]
mulsd xmm1, qword [edx + edi*8 + 8]
mov edx, dword [esp + 0x380]
addsd xmm1, qword [edx + edi*8 + 8]
movsd qword [edx + edi*8 + 8], xmm1
jle 0x595112
mov ecx, ebx
xor edx, edx
shl ecx, 4
add ecx, dword [esp + 0x328]
mov dword [esp + 0x378], ecx
mov ecx, eax
shl ecx, 4
mov esi, dword [esp + 0x32c]
mov dword [esp + 0x31c], eax
mov dword [esp + 0x320], ebx
add esi, ecx
add ecx, dword [esp + 0x324]
mov eax, esi
mov ebx, edx
inc edx
shl ebx, 4
mov esi, dword [esp + 0x378]
movups xmm2, xmmword [esi + ebx + 0x10]
movaps xmm3, xmm2
movups xmm0, xmmword [eax + ebx + 0x10]
movsd xmm1, qword [eax + ebx + 0x18]
xorps xmm3, xmmword [0x68fab0]
movups xmm4, xmmword [ecx + ebx + 0x10]
movsd xmm5, qword [ecx + ebx + 0x18]
shufpd xmm3, xmm3, 1
unpcklpd xmm0, xmm0
unpcklpd xmm1, xmm1
unpcklpd xmm4, xmm4
unpcklpd xmm5, xmm5
mulpd xmm0, xmm2
mulpd xmm1, xmm3
mulpd xmm4, xmm2
mulpd xmm5, xmm3
addpd xmm1, xmm0
addpd xmm5, xmm4
mov esi, dword [esp + 0x384]
mov ebx, dword [esp + 0x380]
addsd xmm1, qword [esi + edi*8 + 8]
addsd xmm5, qword [ebx + edi*8 + 8]
movsd qword [esi + edi*8 + 8], xmm1
movsd qword [ebx + edi*8 + 8], xmm5
cmp edx, dword [esp + 0x37c]
jb 0x594159
mov eax, dword [esp + 0x31c]
inc edi
add eax, edx
mov ebx, dword [esp + 0x320]
sub eax, dword [esp + 0x37c]
add ebx, edx
cmp edi, dword [esp + 0x330]
jb 0x5940a5
mov dword [esp + 0x320], ebx
mov esi, dword [esp + 0x360]
mov ecx, dword [esp + 0x304]
inc esi
mov edx, dword [esp + 0x300]
add eax, dword [esp + 0x37c]
lea ebx, [edx + ecx + 1]
mov dword [esp + 0x300], ebx
cmp esi, dword [esp + 0x330]
jb 0x593e79
mov dword [esp + 0x31c], eax
mov esi, dword [esp + 0x1ec]
inc esi
cmp esi, dword [esp + 0x24c]
jb 0x593d36
mov ebx, dword [esp + 0x330]
mov esi, dword [esp + 0x194]
jmp 0x58e9c2
mov eax, dword [0x6c6b48]
inc ebx
shl eax, 2
neg eax
add eax, dword [0x6c6b28]
test byte [eax + ebx*4], 1
jne 0x58c84a
mov ecx, dword [0x6c6b98]
lea edx, [esp + 0x68]
shl ecx, 2
lea eax, [esp + 0x274]
neg ecx
add ecx, dword [0x6c6b78]
mov ecx, dword [ecx + ebx*4]
mov dword [eax], ecx
mov ecx, dword [0x6c6bc0]
shl ecx, 2
neg ecx
add ecx, dword [0x6c6ba0]
mov ecx, dword [ecx + ebx*4]
mov dword [edx], ecx
push edx
push eax
mov eax, 0x68fad4
push eax
push eax
call fcn.00634e80
add esp, 0x10
test al, 1
je 0x58c84a
lea eax, [esp + 0x68]
lea ecx, [esp + 0x34]
push eax
lea edx, [esp + 0x278]
push edx
push ecx
push 0x68fad4
call fcn.00634780
add esp, 0x10
cmp dword [esp + 0x34], 0x48
jne 0x58c84a
lea eax, [esp + 0x68]
lea ecx, [esp + 8]
push eax
lea edx, [esp + 0x278]
push edx
push ecx
push 0x68fad4
call fcn.00634910
add esp, 0x10
mov dword [esp + 0x60], esi
mov esi, dword [0x6c6188]
mov eax, dword [0x6c61a8]
mov edx, dword [0x6c61b4]
neg edx
mov ecx, dword [0x6c61b0]
add edx, 5
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
shl eax, 2
imul edx, ecx
lea ecx, [esi + edi*4]
sub ecx, eax
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x60]
mov eax, dword [0x6c61b4]
mov edx, dword [ecx + edx]
test edx, edx
jle 0x594406
mov eax, 1
mov dword [esp + 0x60], esi
mov esi, eax
mov dword [esp + 0x1c], edi
mov edi, edx
lea ecx, [esp + 0x68]
push ecx
lea ecx, [esp + 0x278]
push ecx
lea ecx, [esp + 0x28]
push ecx
push 0x68fad4
call fcn.00634910
add esp, 0x10
mov ecx, dword [0x6c6b24]
neg ecx
add ecx, ebx
imul ecx, dword [0x6c6b20]
movsd xmm0, qword [esp + 0x20]
mov eax, dword [0x6c6b18]
neg eax
add eax, esi
inc esi
add ecx, dword [0x6c6af8]
movsd qword [ecx + eax*8], xmm0
cmp esi, edi
jle 0x59438d
mov eax, dword [0x6c6188]
mov edx, dword [0x6c61b0]
mov ecx, dword [0x6c61a8]
mov dword [esp + 0x10], eax
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x1c]
mov eax, dword [0x6c61b4]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x10]
imul eax, ecx
mov dword [esp + 0x1c], edi
lea edx, [esi + edi*4]
mov edi, dword [esp + 0x18]
lea esi, [ecx*8]
neg esi
lea ecx, [ecx + ecx*8]
add esi, eax
neg ecx
neg esi
add eax, ecx
shl edi, 2
add esi, edx
sub edx, eax
sub esi, edi
sub edx, edi
lea ecx, [esp + 0xb0]
mov esi, dword [esi]
mov eax, dword [edx]
mov dword [ecx], eax
lea eax, [esp + 0x68]
mov dword [eax - 0x64], esi
push eax
lea edx, [esp + 0x278]
push edx
push ecx
push 0x68fad4
mov esi, dword [eax - 8]
mov edi, dword [eax - 0x4c]
call fcn.00634780
add esp, 0x10
mov edx, dword [esp + 0xb0]
test edx, edx
jle 0x5944d3
mov eax, 1
mov dword [esp + 0x1c], edi
mov dword [esp + 0x60], esi
mov esi, edx
mov dword [esp], ebx
mov ebx, eax
mov edi, dword [esp + 4]
mov eax, ebx
lea ecx, [esp + 0x68]
push ecx
sub eax, dword [0x6c5538]
lea ecx, [esp + 0x278]
push ecx
mov ecx, dword [0x6c5518]
lea ecx, [ecx + edi*8 - 8]
lea ecx, [ecx + eax*8]
push ecx
push 0x68fad4
call fcn.00634910
add esp, 0x10
inc ebx
cmp ebx, esi
jle 0x594493
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp]
mov eax, dword [0x6c6b48]
shl eax, 2
neg eax
add eax, dword [0x6c6b28]
inc dword [esp + 0x28]
mov dword [eax + ebx*4], 0xffffffff
jmp 0x58c84a
mov edx, dword [0x76e520]
cmp eax, edx
jl 0x58c810
mov dword [esp + 0x44], edx
jmp 0x58c9e2
movdqu xmmword [eax + edi*4 + 4], xmm1
jmp 0x58e7b7
mov esi, dword [esp + 0x248]
mov edi, dword [esp + 0x194]
mov esi, dword [esi + edi*4]
lea eax, [esi + eax + 2]
mov dword [edx + ebx*4 + 4], eax
jmp 0x58e987
movdqu xmmword [eax + edi*4 + 4], xmm1
jmp 0x58e8b2
mov esi, dword [esp + 0x248]
mov edi, dword [esp + 0x194]
mov esi, dword [esi + edi*4]
lea eax, [esi + eax + 2]
mov dword [ebx + ecx*4 + 4], eax
jmp 0x58e689
mov dword [esp + 0x250], 0
jmp 0x58e8d7
xor edi, edi
jmp 0x58eadb
mov esi, 1
jmp 0x58edd4
mov esi, dword [esp + 0x1a4]
imul esi, ecx
mov eax, dword [esp + 0x21c]
mov edi, dword [esp + 0x1ac]
imul edi, ecx
mov edx, dword [esp + 0x214]
lea eax, [eax + esi + 0x10]
mov esi, dword [esp + 0x1a8]
imul esi, ecx
add esi, dword [esp + 0x230]
lea edx, [edx + edi + 0x10]
mov edi, dword [esp + 0x234]
mov dword [esp + 0x2f8], esi
mov esi, dword [esp + 0x1e4]
movsd xmm0, qword [edi + ebx*8]
mov ebx, dword [esp + 0x1dc]
nop dword [eax]
mov edi, dword [esp + 0x2f8]
inc esi
movups xmm2, xmmword [eax]
movups xmm3, xmmword [ebx + edi + 0x10]
movups xmm6, xmmword [edx]
movaps xmm4, xmm3
movaps xmm1, xmm2
xorps xmm4, xmmword [0x68fab0]
movaps xmm5, xmm6
shufpd xmm4, xmm4, 1
add ebx, 0x10
unpcklpd xmm1, xmm2
unpckhpd xmm2, xmm2
unpcklpd xmm5, xmm6
unpckhpd xmm6, xmm6
mulpd xmm1, xmm3
mulpd xmm2, xmm4
mulpd xmm5, xmm3
mulpd xmm6, xmm4
addpd xmm2, xmm1
addpd xmm6, xmm5
addpd xmm2, xmm0
mov edi, dword [esp + 0x318]
movups xmmword [eax], xmm2
add eax, 0x10
movsd xmm7, qword [edi + ecx*8 + 8]
addpd xmm7, xmm6
movups xmmword [edx], xmm7
add edx, 0x10
cmp esi, dword [esp + 0x2fc]
jb 0x5945e0
jmp 0x58ef6b
mov ebx, dword [0x6c7e14]
mov dword [esp + 0x98], ebx
mov eax, dword [esp + 0x1fc]
mov edx, eax
mov ebx, dword [0x6c7d88]
imul edx, ebx
imul ebx, dword [0x6c7d8c]
mov esi, dword [0x6c7e00]
mov dword [esp + 0x8c], esi
mov esi, dword [0x6c7d80]
mov ecx, dword [0x6c7e18]
mov dword [esp + 0x9c], ecx
add edx, dword [0x6c7d60]
lea ecx, [esi*8]
mov dword [esp + 0x58], ecx
lea ecx, [ebx + esi*8]
mov dword [esp + 0x5c], ebx
neg ecx
mov ebx, dword [0x6c7d58]
add ecx, edx
mov dword [esp + 0x40], edx
mov edx, dword [0x6c7dd8]
shl edx, 3
imul eax, ebx
imul ebx, dword [0x6c7d5c]
mov dword [esp + 0x1b4], ecx
mov ecx, dword [0x6c7db8]
sub ecx, edx
mov dword [esp + 0x1b0], ecx
mov ecx, dword [0x6c7d50]
add eax, dword [0x6c7d30]
mov dword [esp + 0x1a4], eax
mov esi, dword [0x6c6fa0]
lea edx, [ecx*8]
mov dword [esp + 0x50], edx
lea edx, [ebx + ecx*8]
neg edx
mov ecx, dword [0x6c7db0]
add edx, eax
mov eax, dword [0x6c6f78]
shl ecx, 3
mov dword [esp + 0x54], ebx
mov dword [esp + 0x1ac], edx
mov ebx, dword [0x6c7d90]
mov dword [esp + 0x1a0], eax
sub ebx, ecx
mov edx, dword [0x6c6fc0]
mov eax, dword [0x6c6f98]
shl edx, 2
mov dword [esp + 0x1a8], ebx
shl eax, 2
mov dword [esp + 0x48], edx
mov dword [esp + 0x19c], esi
mov dword [esp + 0x4c], eax
mov ecx, dword [0x6c7e08]
mov edx, dword [0x6c7e0c]
mov ebx, dword [0x6c7de0]
jmp 0x5926ed
mov dword [esp + 0x1c8], 0
jmp 0x591a24
movaps xmm6, xmm1
xor edi, edi
jmp 0x592d3a
movaps xmm6, xmm1
xor edi, edi
jmp 0x592af6
xor ebx, ebx
jmp 0x592511
mov ecx, dword [0x6c7e18]
mov dword [esp + 0x9c], ecx
mov ecx, dword [0x6c7e14]
mov eax, dword [0x6c7bec]
mov edi, dword [0x6c7be4]
mov esi, dword [0x6c7be0]
mov dword [esp + 0x98], ecx
imul edi, esi
mov ecx, dword [0x6c7e00]
mov edx, dword [0x6c7bf0]
mov dword [esp + 0x240], eax
mov dword [esp + 0x23c], esi
imul edx, eax
mov eax, dword [esp + 0x1fc]
mov dword [esp + 0x8c], ecx
mov ecx, eax
mov esi, dword [0x6c7d88]
imul ecx, esi
imul esi, dword [0x6c7d8c]
mov dword [esp + 0x234], edi
mov edi, dword [0x6c7d80]
mov ebx, dword [0x6c7bd8]
shl ebx, 3
mov dword [esp + 0x24c], ebx
lea ebx, [edi*8]
mov dword [esp + 0x58], ebx
lea ebx, [esi + edi*8]
mov dword [esp + 0x238], edx
neg ebx
add ecx, dword [0x6c7d60]
mov edx, dword [0x6c7dd8]
add ebx, ecx
shl edx, 3
mov dword [esp + 0x40], ecx
mov ecx, dword [0x6c7db8]
sub ecx, edx
mov dword [esp + 0x1b0], ecx
mov ecx, dword [0x6c7d58]
imul eax, ecx
imul ecx, dword [0x6c7d5c]
mov dword [esp + 0x5c], esi
mov esi, dword [0x6c7d50]
add eax, dword [0x6c7d30]
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x54], ecx
lea edx, [esi*8]
mov dword [esp + 0x50], edx
lea edx, [ecx + esi*8]
neg edx
mov ecx, dword [0x6c7db0]
add edx, eax
mov eax, dword [0x6c6fa0]
shl ecx, 3
mov edi, dword [0x6c6f78]
mov dword [esp + 0x1b4], ebx
mov ebx, dword [0x6c7d90]
mov dword [esp + 0x19c], eax
sub ebx, ecx
mov esi, dword [0x6c6f98]
mov eax, dword [0x6c6fc0]
mov dword [esp + 0x1ac], edx
mov dword [esp + 0x1a8], ebx
mov dword [esp + 0x1a0], edi
shl esi, 2
shl eax, 2
mov dword [esp + 0x4c], esi
mov dword [esp + 0x48], eax
mov edi, dword [0x6c7bb8]
mov ebx, dword [0x6c7de0]
mov edx, dword [0x6c7e0c]
mov ecx, dword [0x6c7e08]
jmp 0x5926ed
cmp ebx, 4
jl 0x59495d
mov eax, ebx
xor edx, edx
and eax, 0xfffffffc
pxor xmm0, xmm0
movdqu xmmword [ecx + edx*4], xmm0
add edx, 4
cmp edx, eax
jb 0x594938
cmp eax, ebx
jae 0x593029
mov dword [ecx + eax*4], 0
inc eax
cmp eax, ebx
jb 0x59494c
jmp 0x593029
xor eax, eax
jmp 0x594944
cmp edx, 2
jl 0x594a75
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x44]
lea eax, [eax + ecx + 8]
add eax, esi
and eax, 0xf
je 0x59498a
test al, 7
jne 0x594a75
mov eax, 1
lea ecx, [eax + 2]
cmp edx, ecx
jl 0x594a75
mov ecx, edx
sub ecx, eax
mov edi, dword [esp + 0x74]
and ecx, 1
neg ecx
add ecx, edx
add edi, esi
mov dword [esp + 0x70], edi
test eax, eax
jbe 0x5949f8
xor edi, edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0x64]
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], ebx
mov edx, edi
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x70]
movsd xmm0, qword [edx + 8]
inc esi
movsd qword [ebx + edi + 8], xmm0
add edx, 8
add ebx, 8
cmp esi, eax
jb 0x5949d6
mov edx, dword [esp + 0x54]
mov esi, dword [esp + 0x58]
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x64]
lea edi, [edi + eax*8 + 8]
test edi, 0xf
je 0x594a27
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x64]
movups xmm0, xmmword [edi + eax*8 + 8]
movups xmmword [ebx + eax*8 + 8], xmm0
add eax, 2
cmp eax, ecx
jb 0x594a14
jmp 0x594a44
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x64]
movups xmm0, xmmword [edi + eax*8 + 8]
movups xmmword [ebx + eax*8 + 8], xmm0
add eax, 2
cmp eax, ecx
jb 0x594a33
mov ebx, dword [esp + 0x5c]
cmp ecx, edx
jae 0x59318a
mov edi, dword [esp + 0x64]
lea eax, [ebx + ecx*8 - 8]
lea edi, [edi + ecx*8]
movsd xmm0, qword [edi + 8]
inc ecx
movsd qword [eax + 8], xmm0
add edi, 8
add eax, 8
cmp ecx, edx
jb 0x594a5b
jmp 0x59318a
xor ecx, ecx
jmp 0x594a48
mov eax, dword [0x6c6a20]
shl eax, 2
mov edi, dword [esp + 0x44]
neg eax
inc edi
add eax, dword [0x6c6a00]
mov dword [esp + 0x44], edi
test byte [eax + edi*4], 1
jne 0x593088
mov edi, dword [0x6c6a70]
lea edx, [edx + edx*4]
shl edi, 2
neg edx
neg edi
add ecx, edx
add edi, dword [0x6c6a50]
mov eax, dword [esp + 0x44]
mov edi, dword [edi + eax*4]
mov dword [esp + 0x78], edi
mov edi, dword [0x6c6af0]
shl edi, 2
neg edi
add edi, dword [0x6c6ad0]
mov eax, dword [edi + eax*4]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x3c]
push eax
mov eax, 0x68fad8
lea edi, [esp + 0x7c]
push edi
push eax
push eax
mov eax, dword [edi - 0x2c]
sub eax, ecx
sub eax, ebx
mov edi, dword [eax]
call fcn.00634e10
add esp, 0x10
test al, 1
je 0x593088
lea eax, [esp + 0x3c]
lea ecx, [esp + 0x30]
push eax
lea edx, [esp + 0x7c]
push edx
push ecx
push 0x68fad8
call fcn.006346e0
add esp, 0x10
cmp dword [esp + 0x30], 0x49
jne 0x593088
lea eax, [esp + 0x3c]
lea ecx, [esp]
push eax
lea edx, [esp + 0x7c]
push edx
push ecx
push 0x68fad8
call fcn.00634860
add esp, 0x10
mov eax, dword [0x6c6ac8]
shl eax, 2
neg eax
add eax, dword [0x6c6aa8]
mov edx, dword [esp + 0x44]
mov edx, dword [eax + edx*4]
test edi, edi
jle 0x594beb
mov eax, 1
lea ebx, [esp + 0x18]
mov dword [ebx + 0x10], edx
mov dword [ebx - 8], esi
mov esi, edi
mov edi, eax
lea edx, [esp + 0x3c]
push edx
lea ecx, [esp + 0x7c]
push ecx
push ebx
push 0x68fad8
call fcn.00634860
add esp, 0x10
mov edx, dword [0x6c6aa4]
neg edx
add edx, dword [esp + 0x44]
imul edx, dword [0x6c6aa0]
mov ecx, dword [0x6c6a98]
neg ecx
add ecx, edi
inc edi
add edx, dword [0x6c6a78]
mov ecx, dword [edx + ecx*4]
mov edx, dword [0x6c5be4]
neg edx
add edx, dword [esp + 0x28]
imul edx, dword [0x6c5be0]
sub ecx, dword [0x6c5bd8]
add edx, dword [0x6c5bb8]
movsd xmm0, qword [edx + ecx*8]
subsd xmm0, qword [esp + 0x18]
movsd qword [edx + ecx*8], xmm0
cmp edi, esi
jle 0x594b75
mov esi, dword [esp + 0x10]
mov ebx, dword [0x6c61b0]
mov edi, dword [0x6c6188]
mov ecx, dword [0x6c61b4]
imul ecx, ebx
mov edx, dword [0x6c61a8]
lea eax, [edi + esi*4]
shl edx, 2
lea edi, [ebx*8]
neg edi
lea ebx, [ebx + ebx*8]
add edi, ecx
neg ebx
neg edi
add ecx, ebx
add edi, eax
sub eax, ecx
sub edi, edx
sub eax, edx
lea edx, [esp + 0x3c]
mov edi, dword [edi]
mov eax, dword [eax]
mov dword [edx - 0x28], edi
mov dword [edx - 4], eax
lea eax, [esp + 0x38]
push edx
lea ecx, [esp + 0x7c]
push ecx
push eax
push 0x68fad8
call fcn.006346e0
add esp, 0x10
mov eax, dword [esp + 0x38]
test eax, eax
jle 0x594c9e
mov dword [esp + 0x10], esi
mov ebx, 1
mov dword [esp + 0x2c], eax
lea edi, [esp + 0x3c]
mov esi, dword [edi - 0x28]
push edi
mov edx, dword [0x6c5518]
lea eax, [esp + 0x7c]
push eax
mov eax, ebx
sub eax, dword [0x6c5538]
lea ecx, [edx + esi*8 - 8]
lea edx, [ecx + eax*8]
push edx
push 0x68fad8
call fcn.00634860
add esp, 0x10
inc ebx
cmp ebx, dword [esp + 0x2c]
jle 0x594c6a
mov esi, dword [esp + 0x10]
mov eax, dword [0x6c6a20]
shl eax, 2
neg eax
add eax, dword [0x6c6a00]
mov edx, dword [esp + 0x44]
inc dword [esp + 0x40]
mov dword [eax + edx*4], 0xffffffff
jmp 0x593088
mov dword [esp + 4], edi
lea ecx, [ecx + ecx*4]
mov edi, dword [0x6c6b98]
neg ecx
shl edi, 2
add edx, ecx
mov esi, dword [esp + 0x10]
neg edi
inc esi
sub eax, edx
add edi, dword [0x6c6b78]
sub eax, ebx
mov dword [esp + 0x10], esi
lea edx, [esp + 0x78]
mov edi, dword [edi + esi*4]
mov dword [edx], edi
mov edi, dword [0x6c6bc0]
shl edi, 2
neg edi
add edi, dword [0x6c6ba0]
mov esi, dword [edi + esi*4]
mov dword [edx + 4], esi
mov esi, dword [eax]
lea eax, [esp + 0x7c]
push eax
push edx
push 0x68fadc
push 0x68fad8
mov edi, dword [eax - 0x78]
call fcn.00634ba0
lea eax, [esp + 0x8c]
push eax
lea edx, [esp + 0x8c]
push edx
push 0x76e5a8
push 0x68fad8
call fcn.00634cf0
add esp, 0x20
test esi, esi
jle 0x594da2
mov ebx, 1
mov ecx, dword [0x6c5a6c]
lea eax, [esp + 0x7c]
neg ecx
push eax
mov eax, dword [0x6c5a78]
add ecx, 2
neg eax
lea edx, [esp + 0x7c]
imul ecx, dword [0x6c5a68]
add eax, edi
imul eax, dword [0x6c5a74]
add ecx, dword [0x6c5a40]
push edx
mov edx, ebx
add eax, ecx
sub edx, dword [0x6c5a60]
lea ecx, [eax + edx*8]
push ecx
push 0x68fad8
call fcn.00634cf0
add esp, 0x10
inc ebx
cmp ebx, esi
jle 0x594d50
mov esi, dword [0x6c6188]
mov ebx, dword [0x6c61b0]
mov ecx, dword [0x6c61b4]
imul ecx, ebx
lea eax, [esi + edi*4]
mov edx, dword [0x6c61a8]
lea esi, [ebx + ebx*4]
add esi, ebx
neg esi
add esi, ecx
neg esi
shl edx, 2
add esi, eax
sub esi, edx
mov esi, dword [esi]
mov dword [esp], esi
lea esi, [ebx*8]
sub ebx, esi
add ecx, ebx
lea ebx, [esp + 0x38]
sub eax, ecx
sub eax, edx
lea edx, [esp + 0x7c]
mov eax, dword [eax]
mov dword [edx - 0x44], eax
push edx
lea ecx, [esp + 0x7c]
push ecx
push ebx
push 0x68fad8
call fcn.00634ba0
add esp, 0x10
mov esi, dword [esp + 0x38]
test esi, esi
jle 0x594e51
mov dword [esp + 4], edi
mov ebx, 1
mov edi, dword [esp]
mov ecx, dword [0x6c5540]
lea eax, [esp + 0x7c]
push eax
mov eax, ebx
lea edx, [esp + 0x7c]
sub eax, dword [0x6c5560]
lea ecx, [ecx + edi*8 - 8]
push edx
lea edx, [ecx + eax*8]
push edx
push 0x68fad8
call fcn.00634cf0
add esp, 0x10
inc ebx
cmp ebx, esi
jle 0x594e1b
mov edi, dword [esp + 4]
lea eax, [esp + 0x7c]
push eax
lea edx, [esp + 0x7c]
push edx
push 0x68fad8
call fcn.00634fa0
add esp, 0xc
jmp 0x592fe3
movaps xmm5, xmm1
xor edi, edi
jmp 0x59227d
movaps xmm5, xmm1
xor edi, edi
jmp 0x59205d
inc edx
cmp edx, eax
jb 0x591dd8
mov dword [esp + 0x430], edi
jmp 0x592318
movaps xmm5, xmm1
xor esi, esi
jmp 0x5916a0
movaps xmm5, xmm1
xor eax, eax
jmp 0x5912d1
movaps xmm5, xmm1
xor edi, edi
jmp 0x591097
mov eax, 1
jmp 0x5908aa
mov eax, dword [esp + 0x22c]
inc eax
mov dword [esp + 0x22c], eax
cmp eax, dword [esp + 0xd4]
jg 0x594eec
mov ecx, dword [0x6c7d08]
mov edx, dword [0x6c7ce0]
mov eax, dword [0x6c7cb8]
jmp 0x590639
mov ecx, dword [0x6c7ca4]
mov ebx, dword [0x6c7ca0]
mov dword [esp + 0x20c], ecx
mov dword [esp + 0x224], ebx
mov esi, dword [0x6c7c98]
mov ecx, dword [0x6c7c64]
mov ebx, dword [0x6c7c60]
mov eax, dword [0x6c7cb0]
mov edi, dword [0x6c7cac]
mov dword [esp + 0x208], esi
mov dword [esp + 0x218], ecx
mov dword [esp + 0x214], ebx
mov esi, dword [0x6c7c58]
mov ecx, dword [0x6c7bf0]
mov ebx, dword [0x6c7bec]
mov dword [esp + 0x430], edx
mov dword [esp + 0x34c], eax
mov dword [esp + 0x228], edi
mov edx, dword [esp + 0xcc]
mov eax, dword [0x6c7c38]
mov edi, dword [0x6c7c6c]
mov dword [esp + 0x210], esi
mov dword [esp + 0x238], ecx
mov dword [esp + 0x240], ebx
mov esi, dword [0x6c7be4]
mov ecx, dword [0x6c7be0]
mov ebx, dword [0x6c7bd8]
mov dword [esp + 0x1fc], edx
mov dword [esp + 0x220], eax
mov dword [esp + 0x21c], edi
mov edx, dword [0x6c7c78]
mov eax, dword [0x6c7c70]
mov edi, dword [0x6c7bb8]
mov dword [esp + 0x234], esi
mov dword [esp + 0x23c], ecx
mov dword [esp + 0x24c], ebx
jmp 0x591750
mov eax, 1
jmp 0x5905cb
mov dword [esp + 0x350], 0
jmp 0x590295
mov esi, dword [0x6c7bec]
mov edi, dword [0x6c7bf0]
mov dword [esp + 0x240], esi
mov eax, dword [0x6c7be0]
imul edi, esi
mov esi, dword [0x6c7be4]
imul esi, eax
mov dword [esp + 0x23c], eax
mov eax, dword [0x6c7bd8]
mov dword [esp + 0x238], edi
shl eax, 3
mov dword [esp + 0x234], esi
mov dword [esp + 0x24c], eax
mov edi, dword [0x6c7bb8]
jmp 0x5926ed
xor eax, eax
pxor xmm2, xmm2
movaps xmm0, xmm2
jmp 0x58fdb7
cmp dword [esp + 0xd4], 0
jle 0x592f48
mov eax, dword [esp + 0x84]
mov esi, 1
mov dword [esp + 0xcc], eax
lea edi, [esp + 0xd0]
mov dword [edi + 0x15c], esi
lea esi, [esp + 0x2d0]
lea ebx, [esp + 0xcc]
jmp 0x594ed6
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x78]
mov ebx, dword [esp + 0x30]
jmp 0x58f755
mov dword [esp + 0xcc], 1
jmp 0x592f89
xor eax, eax
jmp 0x58f445
cmp ebx, 1
jb 0x58f513
xor eax, eax
jmp 0x58f450
mov esi, 1
jmp 0x5933f8
cmp ebx, 4
jl 0x59510e
mov eax, ebx
xor edx, edx
and eax, 0xfffffffc
pxor xmm0, xmm0
movdqu xmmword [ecx + edx*4], xmm0
add edx, 4
cmp edx, eax
jb 0x5950e9
cmp eax, ebx
jae 0x58c803
mov dword [ecx + eax*4], 0
inc eax
cmp eax, ebx
jb 0x5950fd
jmp 0x58c803
xor eax, eax
jmp 0x5950f5
inc edi
sub eax, dword [esp + 0x37c]
cmp edi, dword [esp + 0x330]
jb 0x5940a5
mov dword [esp + 0x320], ebx
mov esi, ecx
jmp 0x594220
mov dword [esp + 0x44], edx
jmp 0x58c873
xor edi, edi
jmp 0x593ba6
mov edi, 1
jmp 0x593a15
cmp ebx, 4
jl 0x5951ae
mov edx, dword [esp + 0x164]
mov eax, ebx
imul edx, esi
and eax, 0xfffffffc
pxor xmm0, xmm0
add edx, dword [esp + 0x170]
xor ecx, ecx
movups xmmword [edx + ecx*8 + 8], xmm0
movups xmmword [edx + ecx*8 + 0x18], xmm0
add ecx, 4
cmp ecx, eax
jb 0x595170
cmp eax, ebx
jae 0x5938ab
mov edx, dword [esp + 0x164]
imul edx, esi
pxor xmm0, xmm0
add edx, dword [esp + 0x170]
movsd qword [edx + eax*8 + 8], xmm0
inc eax
cmp eax, ebx
jb 0x59519e
jmp 0x5938ab
xor eax, eax
jmp 0x595181
xor ecx, ecx
jmp 0x593847
cmp ebx, 4
jl 0x595216
mov ecx, dword [esp + 0x168]
imul ecx, esi
add ecx, dword [esp + 0x16c]
mov eax, ebx
xor edx, edx
and eax, 0xfffffffc
pxor xmm0, xmm0
movups xmmword [ecx + edx*8 + 8], xmm0
movups xmmword [ecx + edx*8 + 0x18], xmm0
add edx, 4
cmp edx, eax
jb 0x5951da
cmp eax, ebx
jae 0x5951fe
pxor xmm0, xmm0
movsd qword [ecx + eax*8 + 8], xmm0
inc eax
cmp eax, ebx
jb 0x5951f3
cmp ebx, 8
jge 0x59371c
test ebx, ebx
jbe 0x59514f
xor ecx, ecx
jmp 0x59384b
test ebx, ebx
jbe 0x5951ae
mov ecx, dword [esp + 0x168]
xor eax, eax
imul ecx, esi
pxor xmm0, xmm0
add ecx, dword [esp + 0x16c]
jmp 0x5951f3
cmp ebx, 0xc
jg 0x593706
jmp 0x5951cf
mov ecx, dword [esp + 0x168]
xor edx, edx
imul ecx, esi
add ecx, dword [esp + 0x16c]
jmp 0x5936d7
test ebx, ebx
jbe 0x5951b9
mov ecx, dword [esp + 0x168]
xor edx, edx
imul ecx, esi
add ecx, dword [esp + 0x16c]
jmp 0x5936df
mov edx, 1
jmp 0x593536
test ebx, ebx
jbe 0x59540c
mov ecx, dword [esp + 0x204]
xor edx, edx
mov esi, dword [esp + 0x238]
mov dword [esp + 0x2bc], eax
lea edi, [ecx + eax*8]
mov dword [esp + 0x2cc], edi
lea ecx, [esi + eax*8]
mov dword [esp + 0x2c8], ecx
mov esi, dword [esp + 0x2b8]
mov edi, dword [esp + 0x2a8]
imul edi, edx
mov ebx, dword [esp + 0x2cc]
mov ecx, dword [esp + 0x2c0]
mov eax, dword [esi + edx*8 + 4]
movsd xmm3, qword [ebx + edi*2 + 8]
mov ebx, dword [esp + 0x2bc]
movsd xmm1, qword [ecx + eax*8]
mulsd xmm1, xmm3
mov ecx, dword [esp + 0x2a4]
mov eax, dword [esp + 0x2b0]
addsd xmm1, qword [ecx + ebx*8 + 8]
mov ecx, edx
shl ecx, 4
mulsd xmm3, qword [eax + ecx + 8]
mov eax, dword [esp + 0x2a0]
addsd xmm3, qword [eax + ebx*8 + 8]
mov eax, dword [esi + edx*8 + 8]
inc edx
mov esi, dword [esp + 0x2c8]
movsd xmm2, qword [esi + edi*2 + 8]
mov edi, dword [esp + 0x2c0]
mov esi, dword [esp + 0x2b0]
movsd xmm0, qword [edi + eax*8]
mulsd xmm0, xmm2
mulsd xmm2, qword [esi + ecx + 0x10]
addsd xmm1, xmm0
addsd xmm3, xmm2
mov eax, dword [esp + 0x2a4]
mov ecx, dword [esp + 0x2a0]
movsd qword [eax + ebx*8 + 8], xmm1
movsd qword [ecx + ebx*8 + 8], xmm3
cmp edx, dword [esp + 0x2ac]
jb 0x5952b3
mov ebx, dword [esp + 0x2ac]
lea ecx, [edx + edx + 1]
mov eax, dword [esp + 0x2bc]
lea edx, [ecx - 1]
cmp edx, dword [esp + 0x330]
jae 0x5953f9
mov edx, dword [esp + 0x2a8]
imul edx, ecx
mov esi, dword [esp + 0x2b8]
mov edi, dword [esp + 0x2c0]
add edx, dword [esp + 0x20c]
mov esi, dword [esi + ecx*4]
movsd xmm1, qword [edx + eax*8 + 8]
movsd xmm0, qword [edi + esi*8]
mulsd xmm0, qword [edx + eax*8 + 8]
mov edx, dword [esp + 0x2b0]
mov edi, dword [esp + 0x2a4]
mulsd xmm1, qword [edx + ecx*8]
addsd xmm0, qword [edi + eax*8 + 8]
mov ecx, dword [esp + 0x2a0]
movsd qword [edi + eax*8 + 8], xmm0
addsd xmm1, qword [ecx + eax*8 + 8]
movsd qword [ecx + eax*8 + 8], xmm1
inc eax
cmp eax, dword [esp + 0x330]
jb 0x59347a
jmp 0x593587
mov ecx, 1
jmp 0x595388
xor edx, edx
cmp ebx, 4
jl 0x5954ab
mov eax, ebx
mov ecx, dword [esp + 0x2a0]
and eax, 0xfffffffc
pxor xmm0, xmm0
movups xmmword [ecx + edx*8 + 8], xmm0
movups xmmword [ecx + edx*8 + 0x18], xmm0
add edx, 4
cmp edx, eax
jb 0x595431
cmp eax, ebx
jae 0x59546a
pxor xmm0, xmm0
mov edx, dword [esp + 0x2a0]
movsd qword [edx + eax*8 + 8], xmm0
inc eax
cmp eax, ebx
jb 0x595451
cmp ebx, 4
jl 0x5954a7
mov eax, ebx
and eax, 0xfffffffc
pxor xmm0, xmm0
mov ecx, dword [esp + 0x2a4]
xor edx, edx
movups xmmword [ecx + edx*8 + 8], xmm0
movups xmmword [ecx + edx*8 + 0x18], xmm0
add edx, 4
cmp edx, eax
jb 0x595473
cmp eax, ebx
jae 0x5931eb
mov edx, dword [esp + 0x2a4]
pxor xmm0, xmm0
movsd qword [edx + eax*8 + 8], xmm0
inc eax
cmp eax, ebx
jb 0x595497
jmp 0x5931eb
xor eax, eax
jmp 0x595484
test ebx, ebx
jbe 0x5954a7
xor eax, eax
pxor xmm0, xmm0
jmp 0x59544a
mov eax, dword [esp + 0x2b0]
mov dword [esp + 0x2b4], eax
cmp esi, 2
jl 0x595b35
mov ecx, dword [esp + 0x40]
mov edi, 1
mov eax, dword [esp + 0x2b0]
lea ebx, [ecx + eax*8]
mov dword [esp + 0x6c], ebx
lea ecx, [ebx + 8]
and ecx, 0xf
cmovne ecx, edi
lea eax, [ecx + 2]
cmp esi, eax
jl 0x595b35
mov ebx, esi
mov dword [esp + 0x220], edx
sub ebx, ecx
mov edi, dword [esp + 0x194]
and ebx, 1
mov edx, dword [esp + 0x1b0]
neg ebx
mov dword [esp + 0x2f4], esi
add ebx, esi
mov esi, dword [esp + 0x3c]
mov eax, dword [edi + edx*4]
mov edx, dword [esp + 0x2b0]
mov edi, dword [esp + 0x1ac]
mov dword [esp + 0x138], ebx
mov dword [esp + 0x38], eax
lea ebx, [esi + edx*8]
mov esi, dword [esp + 0x1a8]
lea eax, [edi + edx*4]
mov edi, dword [esp + 0x110]
mov dword [esp + 0x158], ebx
mov dword [esp + 0x154], eax
lea ebx, [esi + edx*8]
mov esi, dword [esp + 0x1a4]
lea eax, [edi + edx*8]
mov edi, dword [esp + 0x10c]
mov dword [esp + 0x13c], ebx
mov dword [esp + 0x150], eax
lea ebx, [esi + edx*8]
mov dword [esp + 0x148], ebx
lea eax, [edi + edx*8]
mov ebx, dword [esp + 0x114]
mov dword [esp + 0x144], eax
mov eax, dword [esp + 0x118]
mov esi, eax
imul esi, dword [esp + 0x11c]
lea edi, [ebx*8]
mov ebx, dword [esp + 0x1c0]
imul ebx, eax
add ebx, dword [esp + 0x120]
mov dword [esp + 0x30], esi
sub ebx, esi
mov esi, dword [esp + 0x1a0]
sub ebx, edi
mov eax, dword [esp + 0x138]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x14c], ebx
lea edx, [esi + edx*4]
mov dword [esp + 0x140], edx
mov esi, dword [esp + 0x2f4]
mov edx, dword [esp + 0x220]
test ecx, ecx
jbe 0x595717
mov ebx, dword [esp + 0x108]
mov edi, dword [esp + 0x18c]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x2f4], esi
mov dword [esp + 0x138], eax
add ebx, edi
mov edi, dword [esp + 0x118]
imul edi, dword [esp + 0x1bc]
add edi, dword [esp + 0x120]
sub edi, dword [esp + 0x30]
sub edi, dword [esp + 0x2c]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x70], edi
mov dword [esp + 0x220], edx
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x140]
mov edi, dword [esp + 0x154]
mov edx, dword [eax + esi*4 + 4]
mov eax, dword [edi + esi*4 + 4]
mov edi, dword [esp + 0x13c]
movsd xmm0, qword [edi + esi*8 + 8]
mov edi, dword [esp + 0x150]
movsd qword [edi + esi*8 + 8], xmm0
mov edi, dword [esp + 0x148]
movsd xmm1, qword [edi + esi*8 + 8]
mov edi, dword [esp + 0x144]
movsd qword [edi + esi*8 + 8], xmm1
mov edi, dword [esp + 0x14c]
movsd xmm2, qword [edi + edx*8]
mov edx, dword [esp + 0x158]
movsd qword [edx + esi*8 + 8], xmm2
test ebx, ebx
jne 0x5956e0
mov edx, dword [esp + 0x70]
movsd xmm0, qword [edx + eax*8]
mov eax, dword [esp + 0x6c]
movsd qword [eax + esi*8 + 8], xmm0
jmp 0x5956f9
cmp ebx, 1
jne 0x5956f9
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x6c]
movsd xmm0, qword [eax + esi*8 + 8]
movsd qword [edx + esi*8 + 8], xmm0
inc esi
cmp esi, ecx
jb 0x595664
mov eax, dword [esp + 0x138]
mov esi, dword [esp + 0x2f4]
mov edx, dword [esp + 0x220]
mov ebx, dword [esp + 0x108]
mov edi, dword [esp + 0x18c]
add ebx, edi
mov edi, dword [esp + 0x118]
imul edi, dword [esp + 0x1bc]
add edi, dword [esp + 0x120]
sub edi, dword [esp + 0x30]
sub edi, dword [esp + 0x2c]
mov dword [esp + 0x15c], ebx
mov ebx, dword [esp + 0x2b0]
mov dword [esp + 4], edi
mov edi, dword [esp + 0x3c]
add ebx, ecx
lea edi, [edi + ebx*8 + 8]
test edi, 0xf
je 0x59584f
mov dword [esp + 0x138], eax
mov dword [esp + 0x2f4], esi
mov dword [esp + 0x220], edx
mov edx, dword [esp + 4]
mov esi, dword [esp + 0x14c]
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x6c]
mov edi, dword [esp + 0x154]
movq xmm5, qword [edi + ecx*4 + 4]
mov edi, dword [esp + 0x13c]
movups xmm0, xmmword [edi + ecx*8 + 8]
mov edi, dword [esp + 0x150]
movups xmmword [edi + ecx*8 + 8], xmm0
mov edi, dword [esp + 0x148]
movups xmm1, xmmword [edi + ecx*8 + 8]
mov edi, dword [esp + 0x144]
movups xmmword [edi + ecx*8 + 8], xmm1
mov edi, dword [esp + 0x140]
movq xmm2, qword [edi + ecx*4 + 4]
movd edi, xmm2
pshuflw xmm3, xmm2, 0xee
movq xmm4, qword [esi + edi*8]
movd edi, xmm3
movhpd xmm4, qword [esi + edi*8]
mov edi, dword [esp + 0x158]
movups xmmword [edi + ecx*8 + 8], xmm4
test eax, eax
jne 0x595824
movd edi, xmm5
pshuflw xmm5, xmm5, 0xee
movq xmm0, qword [edx + edi*8]
movd edi, xmm5
movhpd xmm0, qword [edx + edi*8]
movups xmmword [ebx + ecx*8 + 8], xmm0
jmp 0x59583a
cmp eax, 1
jne 0x59583a
mov edi, dword [esp + 0x15c]
movups xmm0, xmmword [edi + ecx*8 + 8]
movups xmmword [ebx + ecx*8 + 8], xmm0
add ecx, 2
cmp ecx, dword [esp + 0x138]
jb 0x595795
jmp 0x59592c
mov dword [esp + 0x138], eax
mov dword [esp + 0x2f4], esi
mov dword [esp + 0x220], edx
mov edx, dword [esp + 4]
mov esi, dword [esp + 0x14c]
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x6c]
mov edi, dword [esp + 0x154]
movq xmm5, qword [edi + ecx*4 + 4]
mov edi, dword [esp + 0x13c]
movups xmm0, xmmword [edi + ecx*8 + 8]
mov edi, dword [esp + 0x150]
movups xmmword [edi + ecx*8 + 8], xmm0
mov edi, dword [esp + 0x148]
movups xmm1, xmmword [edi + ecx*8 + 8]
mov edi, dword [esp + 0x144]
movups xmmword [edi + ecx*8 + 8], xmm1
mov edi, dword [esp + 0x140]
movq xmm2, qword [edi + ecx*4 + 4]
movd edi, xmm2
pshuflw xmm3, xmm2, 0xee
movq xmm4, qword [esi + edi*8]
movd edi, xmm3
movhpd xmm4, qword [esi + edi*8]
mov edi, dword [esp + 0x158]
movups xmmword [edi + ecx*8 + 8], xmm4
test eax, eax
jne 0x595906
movd edi, xmm5
pshuflw xmm5, xmm5, 0xee
movq xmm0, qword [edx + edi*8]
movd edi, xmm5
movhpd xmm0, qword [edx + edi*8]
movups xmmword [ebx + ecx*8 + 8], xmm0
jmp 0x59591c
cmp eax, 1
jne 0x59591c
mov edi, dword [esp + 0x15c]
movups xmm0, xmmword [edi + ecx*8 + 8]
movups xmmword [ebx + ecx*8 + 8], xmm0
add ecx, 2
cmp ecx, dword [esp + 0x138]
jb 0x595877
mov ecx, dword [esp + 0x2b0]
mov eax, dword [esp + 0x138]
mov esi, dword [esp + 0x2f4]
mov edx, dword [esp + 0x220]
lea ebx, [ecx + eax]
mov dword [esp + 0x2b4], ebx
cmp eax, esi
jae 0x58dba5
mov dword [esp + 0x2f4], esi
mov dword [esp + 0x138], eax
mov edi, dword [esp + 0x194]
mov ecx, dword [esp + 0x1b0]
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x2b0]
mov ebx, dword [edi + ecx*4]
mov dword [esp + 0x220], edx
mov edi, dword [esp + 0x3c]
lea edx, [eax + esi*8]
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x1a8]
mov dword [esp + 0x28], ebx
lea ecx, [edi + esi*8]
mov dword [esp + 0x174], ecx
mov ebx, dword [esp + 0x1ac]
lea edi, [edx + esi*8]
mov ecx, dword [esp + 0x110]
mov dword [esp + 0x170], edi
mov edi, dword [esp + 0x10c]
lea eax, [ebx + esi*4]
mov dword [esp + 0x18], eax
lea ebx, [ecx + esi*8]
mov dword [esp + 0x16c], ebx
mov ebx, dword [esp + 0x118]
lea ecx, [edi + esi*8]
mov edi, dword [esp + 0x1c0]
mov eax, dword [esp + 0x1a4]
mov dword [esp + 0x164], ecx
mov ecx, ebx
imul edi, ebx
imul ecx, dword [esp + 0x11c]
lea edx, [eax + esi*8]
mov eax, dword [esp + 0x114]
mov dword [esp + 0x168], edx
mov edx, dword [esp + 0x120]
add edi, edx
sub edi, ecx
shl eax, 3
sub edi, eax
mov dword [esp + 0x1c0], edi
mov edi, dword [esp + 0x1a0]
lea esi, [edi + esi*4]
mov dword [esp + 0x160], esi
mov esi, dword [esp + 0x108]
mov edi, dword [esp + 0x18c]
add esi, edi
mov edi, dword [esp + 0x1bc]
imul edi, ebx
add edi, edx
sub edi, ecx
mov dword [esp + 0x10], esi
sub edi, eax
mov eax, dword [esp + 0x138]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x1bc], edi
mov edi, dword [esp + 0x170]
mov edx, dword [esp + 0x160]
movsd xmm0, qword [edi + eax*8 + 8]
mov edi, dword [esp + 0x16c]
mov ecx, dword [edx + eax*4 + 4]
mov edx, dword [esi + eax*4 + 4]
movsd qword [edi + eax*8 + 8], xmm0
mov edi, dword [esp + 0x168]
movsd xmm1, qword [edi + eax*8 + 8]
mov edi, dword [esp + 0x164]
movsd qword [edi + eax*8 + 8], xmm1
mov edi, dword [esp + 0x1c0]
movsd xmm2, qword [edi + ecx*8]
mov ecx, dword [esp + 0x174]
movsd qword [ecx + eax*8 + 8], xmm2
test ebx, ebx
jne 0x595af2
mov ecx, dword [esp + 0x1bc]
movsd xmm0, qword [ecx + edx*8]
mov edx, dword [esp + 0x74]
movsd qword [edx + eax*8 + 8], xmm0
jmp 0x595b0b
cmp ebx, 1
jne 0x595b0b
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x74]
movsd xmm0, qword [edx + eax*8 + 8]
movsd qword [ecx + eax*8 + 8], xmm0
inc eax
cmp eax, dword [esp + 0x2f4]
jb 0x595a7a
mov ecx, dword [esp + 0x2b0]
mov edx, dword [esp + 0x220]
add eax, ecx
mov dword [esp + 0x2b4], eax
jmp 0x58dba5
xor eax, eax
jmp 0x595952
xor edx, edx
pxor xmm2, xmm2
movaps xmm0, xmm2
jmp 0x58daac
mov dword [esp + 0x188], edx
add eax, dword [esp + 0x2d8]
mov edx, dword [esp + 0x17c]
mov edi, dword [esp + 0x178]
cmp dword [esp + 0x270], 0
movsd xmm5, qword [edx + eax*8]
movsd xmm6, qword [edi + eax*8]
movsd qword [edx + eax*8], xmm2
movsd qword [edi + eax*8], xmm3
mov edx, dword [esp + 0x188]
jne 0x595ee8
mov eax, dword [esp + 0x2d8]
mov dword [esp + 0x2f4], esi
mov esi, dword [esp + 0x17c]
mov dword [esp + 0x188], edx
add eax, edx
mov edx, dword [esp + 0x234]
mov edi, dword [esp + 0x23c]
subsd xmm5, qword [esi + eax*8]
mulsd xmm5, qword [edx + ebx*8 + 8]
movsd xmm0, qword [edi + ebx*8 + 8]
mov edi, dword [esp + 0x178]
addsd xmm5, qword [esi + eax*8]
subsd xmm6, qword [edi + eax*8]
mulsd xmm5, qword [0x68fac0]
mulsd xmm6, qword [edx + ebx*8 + 8]
mov esi, dword [esp + 0x228]
addsd xmm6, qword [edi + eax*8]
subsd xmm5, qword [esi + eax*8]
subsd xmm0, qword [esi + eax*8]
mulsd xmm6, qword [0x68fac0]
mulsd xmm0, qword [edx + ebx*8 + 8]
mov esi, dword [esp + 0x230]
subsd xmm5, xmm0
mov edi, dword [esp + 0x22c]
movsd xmm1, qword [esi + ebx*8 + 8]
subsd xmm1, qword [edi + eax*8]
subsd xmm6, qword [edi + eax*8]
mulsd xmm1, qword [edx + ebx*8 + 8]
mov edx, dword [esp + 0x12c]
subsd xmm6, xmm1
movsd xmm4, qword [edx + ebx*8 + 8]
mov edx, dword [esp + 0x128]
movaps xmm1, xmm4
mulsd xmm1, xmm6
mulsd xmm4, xmm5
mov esi, dword [edx + ebx*4 + 4]
mov dword [esp + 0x264], esi
mov edx, dword [esp + 0x188]
test esi, esi
mov esi, dword [esp + 0x2f4]
jle 0x595e74
mov dword [esp + 0x188], edx
movaps xmm7, xmm5
mov edx, dword [esp + 0x8c]
movaps xmm0, xmm6
shl edx, 4
mov edi, dword [esp + 0x88]
mov dword [esp + 0x98], eax
xor eax, eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x90], eax
add edi, edx
mov dword [esp + 0x254], edi
mov edi, dword [esp + 0x84]
unpcklpd xmm7, xmm7
mov eax, dword [esp + 0x94]
add edi, edx
mov dword [esp + 0x258], edi
mov edi, dword [esp + 0x80]
unpcklpd xmm0, xmm0
movups xmmword [esp + 0xa0], xmm7
movsd qword [esp + 0x48], xmm6
add edi, edx
mov dword [esp + 0x25c], edi
mov edi, dword [esp + 0x7c]
movsd qword [esp + 0x50], xmm5
movsd qword [esp + 0x58], xmm3
movsd qword [esp + 0x60], xmm2
add edi, edx
add edx, dword [esp + 0x78]
mov dword [esp + 0x260], edx
mov edx, dword [esp + 0x90]
mov dword [esp + 0x250], edi
mov dword [esp + 0x2dc], ebx
mov dword [esp + 0x2f4], esi
mov dword [esp + 0x2d4], ecx
mov ebx, dword [esp + 0x254]
movaps xmm2, xmm0
mov edi, dword [esp + 0x258]
inc eax
mov ecx, dword [esp + 0x25c]
movups xmm3, xmmword [edx + ebx + 0x10]
movaps xmm5, xmm3
movups xmm7, xmmword [edx + edi + 0x10]
movsd xmm6, qword [edx + edi + 0x18]
xorps xmm5, xmmword [0x68fab0]
shufpd xmm5, xmm5, 1
unpcklpd xmm7, xmm7
unpcklpd xmm6, xmm6
mulpd xmm7, xmm3
mulpd xmm6, xmm5
mulpd xmm2, xmmword [edx + ecx + 0x10]
addpd xmm6, xmm7
mov esi, dword [esp + 0x268]
mov ebx, dword [esp + 0x2dc]
addpd xmm6, xmm2
movsd xmm7, qword [esi + ebx*8 + 8]
mov esi, dword [esp + 0x250]
unpcklpd xmm7, xmm7
mulpd xmm7, xmmword [edx + esi + 0x10]
addpd xmm6, xmm7
movups xmmword [edx + edi + 0x10], xmm6
addsd xmm1, xmm6
mov edi, dword [esp + 0x260]
movups xmm7, xmmword [edx + edi + 0x10]
movsd xmm2, qword [edx + edi + 0x18]
unpcklpd xmm7, xmm7
unpcklpd xmm2, xmm2
mulpd xmm7, xmm3
mulpd xmm2, xmm5
movups xmm3, xmmword [esp + 0xa0]
mulpd xmm3, xmmword [edx + ecx + 0x10]
addpd xmm2, xmm7
mov ecx, dword [esp + 0x26c]
addpd xmm2, xmm3
movsd xmm5, qword [ecx + ebx*8 + 8]
unpcklpd xmm5, xmm5
mulpd xmm5, xmmword [edx + esi + 0x10]
addpd xmm2, xmm5
movups xmmword [edx + edi + 0x10], xmm2
add edx, 0x10
addsd xmm4, xmm2
cmp eax, dword [esp + 0x264]
jb 0x595d3c
mov dword [esp + 0x94], eax
mov edi, eax
movsd xmm6, qword [esp + 0x48]
movsd xmm5, qword [esp + 0x50]
movsd xmm3, qword [esp + 0x58]
movsd xmm2, qword [esp + 0x60]
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x188]
mov esi, dword [esp + 0x2f4]
mov ecx, dword [esp + 0x2d4]
add dword [esp + 0x8c], edi
mov dword [esp + 0x188], edx
mov edx, dword [esp + 0x228]
mov dword [esp + 0x2f4], esi
mov esi, dword [esp + 0x23c]
movsd xmm0, qword [edx + eax*8]
movsd qword [edx + eax*8], xmm1
movsd qword [esi + ebx*8 + 8], xmm0
mov esi, dword [esp + 0x22c]
mov edi, dword [esp + 0x230]
mov edx, dword [esp + 0x188]
movsd xmm7, qword [esi + eax*8]
movsd qword [esi + eax*8], xmm4
mov eax, dword [esp + 0x26c]
movsd qword [edi + ebx*8 + 8], xmm7
mov esi, dword [esp + 0x2f4]
movsd qword [eax + ebx*8 + 8], xmm5
mov eax, dword [esp + 0x268]
movsd qword [eax + ebx*8 + 8], xmm6
jmp 0x595eef
pxor xmm1, xmm1
movaps xmm4, xmm1
mov edi, dword [esp + 0x238]
mov eax, dword [esp + 0x244]
mulsd xmm2, qword [edi + ebx*8 + 8]
mulsd xmm3, qword [edi + ebx*8 + 8]
movsd xmm0, qword [eax + ebx*8 + 8]
mov eax, dword [esp + 0x240]
subsd xmm0, xmm2
mov edi, dword [esp + 0x184]
movsd xmm2, qword [eax + ebx*8 + 8]
subsd xmm2, xmm3
mov eax, dword [edi + ebx*4 + 4]
mov dword [esp + 0x180], eax
test eax, eax
jle 0x596121
mov eax, dword [esp + 0xc4]
shl eax, 4
pxor xmm3, xmm3
mov dword [esp + 0x188], edx
movsd xmm3, xmm0
mov edx, dword [esp + 0xc0]
pxor xmm0, xmm0
mov dword [esp + 0xd4], 0
movsd xmm0, xmm2
mov dword [esp + 0x2dc], ebx
lea edi, [edx + eax + 0x10]
mov edx, dword [esp + 0xbc]
mov dword [esp + 0xcc], edi
mov dword [esp + 0x2f4], esi
mov dword [esp + 0x2d4], ecx
lea edi, [eax + edx + 0x10]
mov edx, dword [esp + 0xb8]
mov dword [esp + 0xc8], edi
movups xmmword [esp + 0x1e0], xmm0
movups xmmword [esp + 0x1f0], xmm3
lea edi, [eax + edx + 0x10]
mov edx, dword [esp + 0xb4]
mov ecx, edi
mov ebx, dword [esp + 0xc8]
lea eax, [eax + edx + 0x10]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xd4]
mov edx, dword [esp + 0xd0]
mov esi, dword [esp + 0xcc]
mov edi, dword [esp + 0x180]
movups xmm7, xmmword [esi]
inc eax
subpd xmm7, xmmword [esp + 0x1f0]
movsd qword [esp + 0x218], xmm4
movaps xmm6, xmm7
movups xmm4, xmmword [ecx]
subpd xmm4, xmmword [esp + 0x1e0]
movups xmm3, xmmword [ebx]
movaps xmm2, xmm4
movsd xmm5, qword [ebx + 8]
add ebx, 0x10
xorps xmm6, xmmword [0x68fab0]
shufpd xmm6, xmm6, 1
unpcklpd xmm3, xmm3
unpcklpd xmm5, xmm5
mulpd xmm7, xmm3
mulpd xmm6, xmm5
mulpd xmm4, xmm3
addpd xmm6, xmm7
xorps xmm2, xmmword [0x68fab0]
movaps xmm7, xmm6
shufpd xmm2, xmm2, 1
mulpd xmm2, xmm5
movups xmm0, xmmword [edx]
add edx, 0x10
addpd xmm2, xmm4
movaps xmm4, xmm0
xorps xmm4, xmmword [0x68fab0]
shufpd xmm4, xmm4, 1
unpcklpd xmm7, xmm6
unpckhpd xmm6, xmm6
mulpd xmm7, xmm0
mulpd xmm6, xmm4
addpd xmm6, xmm7
movaps xmm7, xmm2
unpcklpd xmm7, xmm2
unpckhpd xmm2, xmm2
mulpd xmm7, xmm0
mulpd xmm2, xmm4
movaps xmm0, xmm6
xorps xmm0, xmmword [0x68fab0]
shufpd xmm0, xmm0, 1
movups xmmword [esi], xmm6
add esi, 0x10
mulpd xmm6, xmm3
mulpd xmm0, xmm5
addpd xmm2, xmm7
addpd xmm0, xmm6
mulpd xmm3, xmm2
addsd xmm1, xmm0
movaps xmm6, xmm2
xorps xmm6, xmmword [0x68fab0]
shufpd xmm6, xmm6, 1
mulpd xmm5, xmm6
addpd xmm5, xmm3
movsd xmm4, qword [esp + 0x218]
movups xmmword [ecx], xmm2
add ecx, 0x10
addsd xmm4, xmm5
cmp eax, edi
jb 0x595ff5
mov edx, dword [esp + 0x188]
mov ebx, dword [esp + 0x2dc]
mov esi, dword [esp + 0x2f4]
mov ecx, dword [esp + 0x2d4]
add dword [esp + 0xc4], eax
mov edi, dword [esp + 0x238]
mov eax, dword [esp + 0x244]
mulsd xmm1, qword [edi + ebx*8 + 8]
mulsd xmm4, qword [edi + ebx*8 + 8]
movsd qword [eax + ebx*8 + 8], xmm1
mov eax, dword [esp + 0x240]
movsd qword [eax + ebx*8 + 8], xmm4
jmp 0x58d6ba
xor ecx, ecx
jmp 0x58caca
cmp ebx, 2
jl 0x59621f
mov edi, dword [esp + 0x18]
mov edx, 1
mov eax, dword [esp + 0x54]
lea edi, [edi + eax*8]
mov dword [esp + 0x14], edi
and edi, 0xf
cmovne edi, edx
lea ecx, [edi + 2]
cmp ebx, ecx
jl 0x59621f
mov eax, ebx
sub eax, edi
mov ecx, dword [esp + 0x58]
and eax, 1
mov edx, dword [esp + 0x2c]
neg eax
add eax, ebx
lea ecx, [edx + ecx*8]
test edi, edi
jbe 0x5961bd
mov dword [esp], esi
xor edx, edx
mov esi, dword [esp + 0x14]
movsd xmm0, qword [ecx + edx*8]
movsd qword [esi + edx*8], xmm0
inc edx
cmp edx, edi
jb 0x5961ab
mov esi, dword [esp]
lea edx, [ecx + edi*8]
test dl, 0xf
je 0x5961da
mov edx, dword [esp + 0x14]
movups xmm0, xmmword [ecx + edi*8]
movups xmmword [edx + edi*8], xmm0
add edi, 2
cmp edi, eax
jb 0x5961c9
jmp 0x5961ed
mov edx, dword [esp + 0x14]
movups xmm0, xmmword [ecx + edi*8]
movups xmmword [edx + edi*8], xmm0
add edi, 2
cmp edi, eax
jb 0x5961de
cmp eax, ebx
jae 0x58c9d7
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x2c]
lea edx, [edx + ecx*8]
mov ecx, dword [esp + 0x58]
lea ecx, [edi + ecx*8]
movsd xmm0, qword [ecx + eax*8]
movsd qword [edx + eax*8], xmm0
inc eax
cmp eax, ebx
jb 0x59620b
jmp 0x58c9d7
xor eax, eax
jmp 0x5961ed
cmp edx, 2
jl 0x596339
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x5c]
lea ecx, [ecx + edi*8]
mov dword [esp + 0x10], ecx
mov edi, 1
and ecx, 0xf
cmovne ecx, edi
mov dword [esp + 0x1c], ecx
lea edi, [ecx + 2]
cmp edx, edi
jl 0x596339
mov edi, edx
sub edi, ecx
and edi, 1
neg edi
add edi, edx
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x2c]
lea edi, [edi + eax*8]
mov dword [esp + 0x28], edi
test ecx, ecx
jbe 0x5962a0
mov dword [esp + 4], edx
xor ecx, ecx
mov dword [esp], esi
mov edx, edi
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
movsd xmm0, qword [edx + ecx*8]
movsd qword [edi + ecx*8], xmm0
inc ecx
cmp ecx, esi
jb 0x596286
mov dword [esp + 0x1c], esi
mov edx, dword [esp + 4]
mov esi, dword [esp]
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
lea ecx, [ecx + edi*8]
test cl, 0xf
je 0x5962d6
mov dword [esp + 4], edx
mov dword [esp], esi
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
mov esi, edi
mov edi, dword [esp + 0x10]
movups xmm0, xmmword [ecx + esi*8]
movups xmmword [edi + esi*8], xmm0
add esi, 2
cmp esi, edx
jb 0x5962c5
jmp 0x5962fa
mov dword [esp + 4], edx
mov dword [esp], esi
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
mov esi, edi
mov edi, dword [esp + 0x10]
movups xmm0, xmmword [ecx + esi*8]
movups xmmword [edi + esi*8], xmm0
add esi, 2
cmp esi, edx
jb 0x5962eb
mov dword [esp + 0x30], edx
mov edx, dword [esp + 4]
mov esi, dword [esp]
cmp edx, dword [esp + 0x30]
jbe 0x58c9a6
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x5c]
lea ecx, [ecx + edi*8]
mov edi, dword [esp + 0x2c]
lea eax, [edi + eax*8]
mov edi, dword [esp + 0x30]
movsd xmm0, qword [eax + edi*8]
movsd qword [ecx + edi*8], xmm0
inc edi
cmp edi, edx
jb 0x596325
jmp 0x58c9a6
mov dword [esp + 0x30], 0
jmp 0x596305
cmp esi, 8
jl 0x5966e1
mov edx, dword [esp + 0x2a0]
test edx, edx
je 0x59636a
cmp dword [esp + 0x29c], 0
jne 0x5966e1
mov edx, 1
lea eax, [edx + 8]
cmp esi, eax
jl 0x5966e1
mov eax, esi
sub eax, edx
pxor xmm1, xmm1
and eax, 7
movaps xmm0, xmm1
neg eax
add eax, esi
test edx, edx
jbe 0x59642d
mov dword [esp + 0x308], eax
xor edi, edi
mov eax, dword [esp + 0x27c]
mov dword [esp + 0x30c], edx
lea edx, [ecx + ebx]
mov dword [esp + 0x2dc], ebx
lea eax, [eax + edx*8]
mov dword [esp + 0x280], eax
mov eax, edi
mov edx, dword [esp + 0x280]
mov dword [esp + 0x2d4], ecx
nop word [eax + eax]
mov ecx, dword [esp + 0x324]
mov ebx, dword [esp + 0x32c]
movsd xmm3, qword [edx + eax*8 + 8]
add eax, esi
mov ecx, dword [ecx + edi*4 + 4]
movaps xmm2, xmm3
mulsd xmm2, qword [ebx + ecx*8]
mov ebx, dword [esp + 0x328]
addsd xmm1, xmm2
mulsd xmm3, qword [ebx + edi*8 + 8]
inc edi
addsd xmm0, xmm3
cmp edi, dword [esp + 0x30c]
jb 0x5963d0
mov eax, dword [esp + 0x308]
mov edx, dword [esp + 0x30c]
mov ebx, dword [esp + 0x2dc]
mov ecx, dword [esp + 0x2d4]
mov dword [esp + 0x308], eax
lea edi, [ecx + ebx]
mov dword [esp + 0x314], edi
pxor xmm2, xmm2
mov edi, dword [esp + 0x288]
pxor xmm3, xmm3
mov dword [esp + 0x2dc], ebx
movsd xmm2, xmm1
mov dword [esp + 0x2f4], esi
movsd xmm3, xmm0
mov dword [esp + 0x2d4], ecx
add edi, ebx
mov dword [esp + 0x318], edi
pxor xmm4, xmm4
mov edi, dword [esp + 0x284]
add edi, ebx
mov dword [esp + 0x31c], edi
mov edi, dword [esp + 0x298]
add edi, ebx
mov dword [esp + 0x310], edi
mov ecx, dword [esp + 0x2f4]
mov ebx, ecx
imul ebx, edx
mov esi, dword [esp + 0x314]
mov eax, dword [esp + 0x2f8]
mov edi, dword [esp + 0x2fc]
lea esi, [esi + ebx + 1]
sub esi, eax
lea esi, [edi + esi*8]
movsd xmm0, qword [esi]
movhpd xmm0, qword [esi + ecx*8]
mov ecx, dword [esp + 0x324]
movq xmm5, qword [ecx + edx*4 + 4]
movd esi, xmm5
pshuflw xmm6, xmm5, 0xee
mov ecx, dword [esp + 0x32c]
movq xmm7, qword [ecx + esi*8]
movd esi, xmm6
movhpd xmm7, qword [ecx + esi*8]
mov esi, dword [esp + 0x328]
mulpd xmm7, xmm0
mulpd xmm0, xmmword [esi + edx*8 + 8]
addpd xmm2, xmm7
addpd xmm3, xmm0
mov esi, dword [esp + 0x318]
lea esi, [ebx + esi + 1]
sub esi, eax
lea esi, [edi + esi*8]
mov edi, dword [esp + 0x2f4]
movsd xmm1, qword [esi]
movhpd xmm1, qword [esi + edi*8]
mov esi, dword [esp + 0x324]
movq xmm5, qword [esi + edx*4 + 0xc]
movd esi, xmm5
pshuflw xmm6, xmm5, 0xee
movq xmm0, qword [ecx + esi*8]
movd esi, xmm6
movhpd xmm0, qword [ecx + esi*8]
mov esi, dword [esp + 0x328]
mulpd xmm0, xmm1
mulpd xmm1, xmmword [esi + edx*8 + 0x18]
addpd xmm4, xmm0
addpd xmm1, xmm3
mov esi, dword [esp + 0x31c]
lea esi, [ebx + esi + 1]
sub esi, eax
mov eax, dword [esp + 0x2fc]
lea esi, [eax + esi*8]
movsd xmm0, qword [esi]
movhpd xmm0, qword [esi + edi*8]
mov esi, dword [esp + 0x324]
movq xmm3, qword [esi + edx*4 + 0x14]
movd esi, xmm3
pshuflw xmm3, xmm3, 0xee
movq xmm5, qword [ecx + esi*8]
movd esi, xmm3
nop
movhpd xmm5, qword [ecx + esi*8]
mov esi, dword [esp + 0x328]
mulpd xmm5, xmm0
mulpd xmm0, xmmword [esi + edx*8 + 0x28]
addpd xmm2, xmm5
addpd xmm0, xmm1
mov esi, dword [esp + 0x310]
lea ebx, [ebx + esi + 1]
sub ebx, dword [esp + 0x2f8]
lea eax, [eax + ebx*8]
mov ebx, dword [esp + 0x324]
movsd xmm3, qword [eax]
movhpd xmm3, qword [eax + edi*8]
movq xmm1, qword [ebx + edx*4 + 0x1c]
movd esi, xmm1
pshuflw xmm7, xmm1, 0xee
movd edi, xmm7
movq xmm5, qword [ecx + esi*8]
movhpd xmm5, qword [ecx + edi*8]
mov ecx, dword [esp + 0x328]
mulpd xmm5, xmm3
mulpd xmm3, xmmword [ecx + edx*8 + 0x38]
addpd xmm4, xmm5
addpd xmm3, xmm0
add edx, 8
cmp edx, dword [esp + 0x308]
jb 0x596497
addpd xmm2, xmm4
movaps xmm0, xmm3
movaps xmm1, xmm2
unpckhpd xmm0, xmm3
unpckhpd xmm1, xmm2
addsd xmm3, xmm0
addsd xmm2, xmm1
mov eax, dword [esp + 0x308]
mov ebx, dword [esp + 0x2dc]
mov esi, dword [esp + 0x2f4]
mov ecx, dword [esp + 0x2d4]
mov edx, esi
imul edx, eax
mov dword [esp + 0x2e0], edx
cmp eax, esi
jae 0x58d3fb
mov edx, dword [esp + 0x27c]
lea edi, [ecx + ebx]
mov dword [esp + 0x2dc], ebx
mov dword [esp + 0x2d4], ecx
mov ebx, dword [esp + 0x2e0]
lea edx, [edx + edi*8]
mov ecx, dword [esp + 0x32c]
mov edi, dword [esp + 0x324]
movsd xmm1, qword [edx + ebx*8 + 8]
add ebx, esi
movaps xmm0, xmm1
mov edi, dword [edi + eax*4 + 4]
mulsd xmm0, qword [ecx + edi*8]
mov edi, dword [esp + 0x328]
addsd xmm2, xmm0
mulsd xmm1, qword [edi + eax*8 + 8]
inc eax
addsd xmm3, xmm1
cmp eax, esi
jb 0x5966a7
jmp 0x58d3ed
xor eax, eax
pxor xmm2, xmm2
movaps xmm3, xmm2
jmp 0x59666a
mov dword [esp + 4], edx
mov dword [esp], ecx
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 8]
jmp 0x58c5a1
mov eax, dword [esp + 8]
lea edi, [eax*4]
jmp 0x58c5b5