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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0x94
mov eax, dword [ebp + 0xc]
mov edx, dword [0x6c5e68]
shl edx, 2
mov esi, dword [eax]
neg edx
add edx, dword [0x6c5e48]
lea ecx, [esi*4]
mov dword [esp + 0x7c], ecx
cmp dword [edx + ecx], 1
je 0x573c13
add esp, 0x94
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, dword [0x6c5eb8]
shl edx, 2
pxor xmm0, xmm0
neg edx
add edx, dword [0x6c5e98]
mov ebx, dword [edx + ecx]
mov edx, 0xa0
mov dword [esp + 0x84], ebx
movups xmmword [0x711ca0], xmm0
movq qword [0x711cb0], xmm0
movups xmmword [edx + 0x711bf0], xmm0
movups xmmword [edx + 0x711be0], xmm0
movups xmmword [edx + 0x711bd0], xmm0
movups xmmword [edx + 0x711bc0], xmm0
movups xmmword [edx + 0x711bb0], xmm0
sub edx, 0x50
jne 0x573c46
movups xmmword [0x711d60], xmm0
mov edx, 0xa0
movq qword [0x711d70], xmm0
movups xmmword [edx + 0x711cb0], xmm0
movups xmmword [edx + 0x711ca0], xmm0
movups xmmword [edx + 0x711c90], xmm0
movups xmmword [edx + 0x711c80], xmm0
movups xmmword [edx + 0x711c70], xmm0
sub edx, 0x50
jne 0x573c82
movups xmmword [0x711e20], xmm0
mov edx, 0xa0
movq qword [0x711e30], xmm0
movups xmmword [edx + 0x711d70], xmm0
movups xmmword [edx + 0x711d60], xmm0
movups xmmword [edx + 0x711d50], xmm0
movups xmmword [edx + 0x711d40], xmm0
movups xmmword [edx + 0x711d30], xmm0
sub edx, 0x50
jne 0x573cbe
movups xmmword [0x711ee0], xmm0
mov edx, 0xa0
movq qword [0x711ef0], xmm0
movups xmmword [edx + 0x711e30], xmm0
movups xmmword [edx + 0x711e20], xmm0
movups xmmword [edx + 0x711e10], xmm0
movups xmmword [edx + 0x711e00], xmm0
movups xmmword [edx + 0x711df0], xmm0
sub edx, 0x50
jne 0x573cfa
movups xmmword [0x711fa0], xmm0
mov edx, 0xa0
movq qword [0x711fb0], xmm0
movups xmmword [edx + 0x711ef0], xmm0
movups xmmword [edx + 0x711ee0], xmm0
movups xmmword [edx + 0x711ed0], xmm0
movups xmmword [edx + 0x711ec0], xmm0
movups xmmword [edx + 0x711eb0], xmm0
sub edx, 0x50
jne 0x573d36
movups xmmword [0x712060], xmm0
mov edx, 0xa0
movq qword [0x712070], xmm0
movups xmmword [edx + 0x711fb0], xmm0
movups xmmword [edx + 0x711fa0], xmm0
movups xmmword [edx + 0x711f90], xmm0
movups xmmword [edx + 0x711f80], xmm0
movups xmmword [edx + 0x711f70], xmm0
sub edx, 0x50
jne 0x573d72
movups xmmword [0x712120], xmm0
mov edx, 0xa0
movq qword [0x712130], xmm0
movups xmmword [edx + 0x712070], xmm0
movups xmmword [edx + 0x712060], xmm0
movups xmmword [edx + 0x712050], xmm0
movups xmmword [edx + 0x712040], xmm0
movups xmmword [edx + 0x712030], xmm0
sub edx, 0x50
jne 0x573dae
movups xmmword [0x7121e0], xmm0
mov edx, 0xa0
movq qword [0x7121f0], xmm0
movups xmmword [edx + 0x712130], xmm0
movups xmmword [edx + 0x712120], xmm0
movups xmmword [edx + 0x712110], xmm0
movups xmmword [edx + 0x712100], xmm0
movups xmmword [edx + 0x7120f0], xmm0
sub edx, 0x50
jne 0x573dea
movups xmmword [0x7122a0], xmm0
mov edx, 0xa0
movq qword [0x7122b0], xmm0
movups xmmword [edx + 0x7121f0], xmm0
movups xmmword [edx + 0x7121e0], xmm0
movups xmmword [edx + 0x7121d0], xmm0
movups xmmword [edx + 0x7121c0], xmm0
movups xmmword [edx + 0x7121b0], xmm0
sub edx, 0x50
jne 0x573e26
movups xmmword [0x712360], xmm0
mov edx, 0xa0
movq qword [0x712370], xmm0
movups xmmword [edx + 0x7122b0], xmm0
movups xmmword [edx + 0x7122a0], xmm0
movups xmmword [edx + 0x712290], xmm0
movups xmmword [edx + 0x712280], xmm0
movups xmmword [edx + 0x712270], xmm0
sub edx, 0x50
jne 0x573e62
movups xmmword [0x712420], xmm0
mov edx, 0xa0
movq qword [0x712430], xmm0
movups xmmword [edx + 0x712370], xmm0
movups xmmword [edx + 0x712360], xmm0
movups xmmword [edx + 0x712350], xmm0
movups xmmword [edx + 0x712340], xmm0
movups xmmword [edx + 0x712330], xmm0
sub edx, 0x50
jne 0x573e9e
movups xmmword [0x7124e0], xmm0
mov edx, 0xa0
movq qword [0x7124f0], xmm0
movups xmmword [edx + 0x712430], xmm0
movups xmmword [edx + 0x712420], xmm0
movups xmmword [edx + 0x712410], xmm0
movups xmmword [edx + 0x712400], xmm0
movups xmmword [edx + 0x7123f0], xmm0
sub edx, 0x50
jne 0x573eda
push 0x1088
xor edx, edx
push edx
push 0x712500
movdqu xmmword [0x713700], xmm0
movdqu xmmword [0x713710], xmm0
movdqu xmmword [0x713720], xmm0
movdqu xmmword [0x713730], xmm0
movdqu xmmword [0x713740], xmm0
mov dword [0x713750], edx
mov dword [0x713754], edx
mov dword [0x713758], edx
call fcn.0062a5e0
push 0x1088
push 0
pxor xmm0, xmm0
push 0x713760
call fcn.0062a5e0
add esp, 0x18
pxor xmm0, xmm0
mov edx, dword [0x6c8560]
mov ecx, dword [0x6c8530]
mov edi, dword [0x6c8528]
mov dword [esp + 0x50], edx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x48], edi
test edi, edi
jle 0x574002
mov edx, dword [0x6c8510]
mov ecx, dword [0x6c8538]
mov dword [esp + 0x44], edx
mov dword [esp + 0x30], ecx
mov edi, dword [0x6c8540]
mov edx, dword [0x6c856c]
mov ecx, dword [0x6c8568]
mov eax, dword [0x6c853c]
mov dword [esp + 0x40], edi
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], ecx
cmp dword [esp + 0x48], 0xc
jle 0x57672a
mov edx, dword [esp + 0x48]
neg eax
shl edx, 3
add eax, esi
push edx
mov ecx, dword [esp + 0x3c]
neg ecx
add ecx, esi
imul ecx, dword [esp + 0x40]
imul eax, dword [esp + 0x34]
add ecx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
push ecx
push eax
call fcn.0062a530
add esp, 0xc
pxor xmm0, xmm0
test ebx, ebx
jle 0x5745b8
mov edx, dword [0x6c8678]
mov edi, dword [0x6c8670]
mov dword [esp + 0x38], edx
mov dword [esp + 0x44], edi
mov edx, dword [0x6c8478]
mov edi, dword [0x6c8470]
mov ecx, dword [0x6c8650]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], edi
mov edx, dword [0x6c8480]
mov edi, dword [0x6c84ac]
mov dword [esp + 0x48], ecx
mov ecx, dword [0x6c8450]
mov dword [esp + 0x80], edx
mov dword [esp + 0x68], edi
mov edx, dword [0x6c84a8]
mov edi, dword [0x6c84a0]
mov dword [esp + 0x4c], ecx
mov eax, dword [0x6c867c]
mov ecx, dword [0x6c847c]
mov dword [esp + 0x74], edx
mov dword [esp + 0x6c], edi
cmp ebx, 2
jl 0x5766f5
mov edi, esi
mov dword [esp + 0x8c], ebx
and ebx, 0xfffffffe
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0x3c]
imul edi, ebx
imul ebx, ecx
mov dword [esp + 0x50], eax
mov eax, edx
mov dword [esp + 0x88], esi
imul esi, eax
imul eax, dword [esp + 0x68]
mov edx, dword [esp + 0x4c]
add edi, edx
mov dword [esp + 0x30], edi
lea edx, [esp + 0x80]
mov edi, dword [edx]
add edi, esi
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x74], eax
lea eax, [eax + esi*8]
neg eax
mov dword [edx], edi
add eax, edi
mov dword [esp + 0x60], eax
lea edi, [ebx + ecx*8]
neg edi
lea edx, [ecx*8]
mov dword [esp + 0x34], edx
lea edx, [esi*8]
mov esi, dword [esp + 0x88]
mov ecx, dword [esp + 0x30]
add edi, ecx
mov dword [esp + 0x70], edx
mov edx, esi
mov dword [esp + 0x5c], edi
sub ecx, ebx
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x50]
sub edx, eax
imul edx, dword [esp + 0x38]
sub ecx, dword [esp + 0x34]
shl edi, 3
neg edi
add ecx, 8
add edi, dword [esp + 0x48]
add edx, edi
mov ebx, dword [esp + 0x8c]
mov dword [esp + 0x58], 0
mov dword [esp + 0x64], edx
test cl, 0xf
mov ecx, dword [esp + 0x54]
je 0x574196
mov dword [esp + 0x88], esi
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x60]
movups xmm2, xmmword [edi + edx*8 + 8]
movups xmm1, xmmword [ecx + edx*8 + 8]
movups xmmword [esi + edx*8 + 8], xmm2
movups xmmword [edx*8 + 0x712140], xmm1
add edx, 2
cmp edx, eax
jb 0x574176
jmp 0x5741d7
mov dword [esp + 0x88], esi
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x60]
movups xmm1, xmmword [ecx + edx*8 + 8]
movups xmm2, xmmword [edi + edx*8 + 8]
movups xmmword [edx*8 + 0x712140], xmm1
movups xmmword [esi + edx*8 + 8], xmm2
add edx, 2
cmp edx, eax
jb 0x5741b9
mov dword [esp + 0x78], eax
mov esi, dword [esp + 0x88]
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
cmp ebx, dword [esp + 0x78]
jbe 0x57425f
mov edi, dword [esp + 0x70]
neg ecx
mov edx, dword [esp + 0x74]
add ecx, esi
neg eax
imul ecx, dword [esp + 0x3c]
add eax, esi
imul eax, dword [esp + 0x38]
add edx, edi
mov edi, dword [esp + 0x40]
neg edx
add edx, dword [esp + 0x80]
shl edi, 3
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x4c]
sub edx, edi
mov edi, dword [esp + 0x44]
add ecx, edx
shl edi, 3
mov edx, dword [esp + 0x48]
sub edx, edi
mov edi, dword [esp + 0x78]
add eax, edx
mov edx, dword [esp + 0x30]
movsd xmm1, qword [eax + edi*8 + 8]
movsd xmm2, qword [edx + edi*8 + 8]
movsd qword [edi*8 + 0x712140], xmm1
movsd qword [ecx + edi*8 + 8], xmm2
inc edi
cmp edi, ebx
jb 0x57423f
mov eax, dword [esp + 0x80]
mov edx, dword [0x6c5f1c]
sub eax, dword [esp + 0x74]
neg edx
sub eax, dword [esp + 0x70]
add edx, esi
mov ecx, dword [0x6c5f10]
mov edi, dword [ebp + 8]
shl ecx, 2
mov dword [esp + 0x80], eax
imul edx, dword [0x6c5f18]
mov eax, dword [0x6c5ef0]
sub eax, ecx
mov ecx, dword [0x6c5eec]
add edx, eax
neg ecx
add ecx, esi
mov edi, dword [edi]
imul ecx, dword [0x6c5ee8]
sub edi, dword [0x6c5c74]
imul edi, dword [0x6c5c70]
mov dword [esp + 0x34], edx
mov edx, dword [0x6c5ee0]
shl edx, 2
mov eax, dword [0x6c5ec0]
sub eax, edx
mov edx, dword [0x6c5c68]
add ecx, eax
shl edx, 3
mov eax, dword [0x6c5c48]
sub eax, edx
add edi, eax
mov dword [esp + 0x38], edi
mov edi, dword [0x6c5b5c]
neg edi
add edi, esi
imul edi, dword [0x6c5b58]
mov edx, dword [0x6c5b50]
shl edx, 3
mov eax, dword [0x6c5b30]
sub eax, edx
mov dword [esp + 0x30], 1
add edi, eax
mov dword [esp + 0x8c], ebx
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x88], esi
mov dword [esp + 0x3c], edi
mov esi, dword [edx + ebx*4]
mov edi, dword [ecx + ebx*4]
test esi, esi
jne 0x57436f
mov esi, dword [esp + 0x3c]
movsd xmm1, qword [eax + edi*8]
xorps xmm1, xmmword [0x68f070]
mov edi, dword [esp + 0x80]
movsd xmm2, qword [esi + ebx*8]
movsd qword [ebx*8 + 0x711d78], xmm1
addsd xmm2, qword [edi + ebx*8]
movsd qword [ebx*8 + 0x711cb8], xmm2
jmp 0x5743d2
test edi, edi
jne 0x5743a1
movsd xmm1, qword [eax + esi*8]
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x80]
movsd qword [ebx*8 + 0x711d78], xmm1
movsd xmm2, qword [esi + ebx*8]
addsd xmm2, qword [edi + ebx*8]
movsd qword [ebx*8 + 0x711cb8], xmm2
jmp 0x5743d2
movsd xmm1, qword [eax + esi*8]
mov esi, dword [esp + 0x3c]
subsd xmm1, qword [eax + edi*8]
mov edi, dword [esp + 0x80]
movsd xmm2, qword [esi + ebx*8]
movsd qword [ebx*8 + 0x711d78], xmm1
addsd xmm2, qword [edi + ebx*8]
movsd qword [ebx*8 + 0x711cb8], xmm2
inc ebx
cmp ebx, dword [esp + 0x8c]
jle 0x574330
mov edx, dword [0x6c85f8]
mov ecx, dword [0x6c8620]
mov edi, dword [0x6c8618]
mov ebx, dword [esp + 0x8c]
mov dword [esp + 0x38], edx
mov esi, dword [esp + 0x88]
mov edx, dword [0x6c8624]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x3c], edi
cmp ebx, 0xc
jle 0x5765af
neg edx
lea edi, [ebx*8]
push edi
add edx, esi
lea ecx, [ebx*8 + 0x712080]
mov edi, dword [esp + 0x40]
shl edi, 3
imul edx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
sub eax, edi
lea edx, [edx + eax + 8]
push edx
push ecx
call fcn.0062a530
add esp, 0xc
pxor xmm0, xmm0
mov edx, dword [ebp + 0xc]
mov edi, 1
mov dword [esp + 0x88], esi
mov dword [esp + 0x30], ebx
mov edx, dword [edx]
mov dword [esp + 0x34], edx
movsd xmm0, qword [0x68f0b0]
mulsd xmm0, qword [edi*8 + 0x712138]
movsd xmm2, qword [0x76e5b0]
divsd xmm2, xmm0
mov edx, dword [0x6c85cc]
neg edx
mov esi, dword [esp + 0x88]
add edx, esi
imul edx, dword [0x6c85c8]
movsd xmm1, qword [edi*8 + 0x711d78]
mulsd xmm2, qword [0x68f0e8]
mov ecx, dword [0x6c85c0]
neg ecx
add ecx, edi
add edx, dword [0x6c85a0]
mov ebx, dword [0x6c856c]
neg ebx
add ebx, esi
lea esi, [edi*4 + 0x7136fc]
imul ebx, dword [0x6c8568]
addsd xmm1, qword [edx + ecx*8]
mov eax, dword [0x6c8560]
lea edx, [edi*8 + 0x711bf8]
neg eax
lea ecx, [edi*8 + 0x711fb8]
mulsd xmm2, xmm1
add eax, edi
add ebx, dword [0x6c8540]
mov dword [esp + 0xc], esi
addsd xmm2, qword [ebx + eax*8]
mov ebx, dword [0x6c8768]
shl ebx, 3
mov eax, dword [0x6c8748]
sub eax, ebx
mov ebx, dword [esp + 0x34]
movsd qword [edx], xmm2
lea esi, [eax + ebx*8]
mov eax, dword [0x6c8740]
shl eax, 3
mov dword [esp + 0x10], esi
mov esi, dword [0x6c8720]
sub esi, eax
lea eax, [edi*8 + 0x712078]
lea ebx, [esi + ebx*8]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0xc]
call fcn.0057690c
movsd xmm0, qword [0x68f0e8]
mulsd xmm0, qword [edi*8 + 0x712138]
mulsd xmm0, qword [edi*8 + 0x711cb8]
mov ebx, dword [esp + 0x84]
subsd xmm0, qword [edi*8 + 0x711fb8]
lea eax, [ebx*8]
mulsd xmm0, qword [eax + edi*8 + 0x712078]
lea edx, [edi + ebx]
movsd qword [eax + edi*8 + 0x711bf8], xmm0
inc edi
mov dword [edx*4 + 0x7136fc], 0
cmp edi, dword [esp + 0x30]
jle 0x57446b
mov esi, dword [esp + 0x88]
pxor xmm0, xmm0
mov edx, dword [0x6c8388]
mov ecx, dword [0x6c83a8]
mov dword [esp + 0x70], ecx
lea edi, [edx + esi*4]
mov dword [esp + 0x74], edi
lea edx, [ecx*4]
neg edx
add edx, edi
mov edx, dword [edx]
test edx, edx
jne 0x575eb1
mov edx, dword [ebp + 0xc]
mov edi, 1
mov dword [esp + 0x88], esi
mov ebx, dword [edx]
mov esi, edi
lea eax, [edi*4 + 0x71372c]
shl esi, 4
lea edx, [edi*8 + 0x711c58]
mov dword [esp + 0xc], eax
lea ecx, [edi*8 + 0x712018]
mov eax, dword [0x6c86f8]
movsd xmm0, qword [esi + 0x711bf0]
subsd xmm0, qword [esi + 0x711c20]
mov esi, dword [0x6c8718]
shl esi, 3
sub eax, esi
movsd qword [edx], xmm0
lea esi, [eax + ebx*8]
mov eax, dword [0x6c86f0]
shl eax, 3
mov dword [esp + 0x10], esi
mov esi, dword [0x6c86d0]
sub esi, eax
lea eax, [esi + ebx*8]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0xc]
lea esi, [edi*8 + 0x7120d8]
mov dword [esp + 0x18], esi
call fcn.0057690c
inc edi
cmp edi, 3
jle 0x5745f5
mov ecx, dword [0x6c8388]
mov edx, dword [0x6c83a8]
pxor xmm0, xmm0
mov esi, dword [esp + 0x88]
mov ebx, dword [esp + 0x84]
lea edi, [ecx + esi*4]
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], edi
test ebx, ebx
jle 0x575e91
mov edx, dword [0x6c5fdc]
mov edi, dword [0x6c5fa8]
mov dword [esp + 0x38], edx
mov edx, dword [0x6c5fd0]
mov dword [esp + 0x34], edi
mov eax, dword [0x6c5fe0]
mov edi, dword [0x6c5fd4]
mov ecx, dword [0x6c5fc8]
mov dword [esp + 0x4c], edx
jle 0x5747da
neg eax
add eax, esi
imul eax, dword [esp + 0x38]
mov edx, dword [esp + 0x4c]
imul edi, edx
add eax, dword [esp + 0x34]
mov dword [esp + 0x8c], ebx
shr ebx, 1
mov dword [esp + 0x48], ebx
mov ebx, eax
shl ecx, 3
sub ebx, edi
sub ebx, ecx
mov dword [esp + 0x40], ebx
mov ebx, edi
sub ebx, edx
add edx, edx
neg ebx
sub edi, edx
add ebx, eax
sub eax, edi
mov dword [esp + 0x30], 0
sub eax, ecx
sub ebx, ecx
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x88], esi
mov dword [esp + 0x3c], eax
cmp dword [esp + 0x8c], 0
jle 0x5747be
cmp dword [esp + 0x48], 0
jbe 0x575e87
mov eax, dword [esp + 0x44]
xor edx, edx
mov ebx, dword [esp + 0x3c]
xor esi, esi
lea eax, [eax + ecx*8]
lea edi, [ebx + ecx*8]
xor ebx, ebx
movsd xmm1, qword [eax + ebx*2 + 8]
inc edx
movsd xmm2, qword [edi + ebx*2 + 8]
movsd qword [esi + ecx*8 + 0x713760], xmm1
movsd qword [esi + ecx*8 + 0x713818], xmm2
add esi, 0x170
add ebx, dword [esp + 0x4c]
cmp edx, dword [esp + 0x48]
jb 0x57475f
lea edx, [edx + edx + 1]
lea eax, [edx - 1]
cmp eax, dword [esp + 0x8c]
jae 0x5747be
mov eax, edx
imul eax, dword [esp + 0x4c]
imul edx, edx, 0xb8
add eax, dword [esp + 0x40]
movsd xmm1, qword [eax + ecx*8 + 8]
movsd qword [edx + ecx*8 + 0x7136a8], xmm1
inc ecx
cmp ecx, dword [esp + 0x8c]
jb 0x574736
mov ebx, dword [esp + 0x8c]
mov esi, dword [esp + 0x88]
test ebx, ebx
jle 0x5749d5
cmp ebx, 8
jl 0x575e80
mov eax, ebx
xor edx, edx
and eax, 0xfffffff8
movsd xmm1, qword [0x68f0e8]
movsd xmm3, qword [0x68f0e8]
movsd xmm5, qword [0x68f0e8]
movsd xmm7, qword [0x68f0e8]
mulsd xmm1, qword [0x76e5b0]
mulsd xmm3, qword [0x76e5b0]
mulsd xmm5, qword [0x76e5b0]
mulsd xmm7, qword [0x76e5b0]
movsd xmm2, qword [0x68f0b0]
movsd xmm4, qword [0x68f0b0]
movsd xmm6, qword [0x68f0b0]
divsd xmm2, xmm1
movsd xmm1, qword [0x68f0b0]
divsd xmm4, xmm3
divsd xmm6, xmm5
divsd xmm1, xmm7
unpcklpd xmm2, xmm2
unpcklpd xmm4, xmm4
unpcklpd xmm6, xmm6
unpcklpd xmm1, xmm1
mulpd xmm2, xmmword [edx*8 + 0x712140]
mulpd xmm4, xmmword [edx*8 + 0x712150]
mulpd xmm6, xmmword [edx*8 + 0x712160]
mulpd xmm1, xmmword [edx*8 + 0x712170]
mulpd xmm2, xmmword [edx*8 + 0x711c00]
mulpd xmm4, xmmword [edx*8 + 0x711c10]
mulpd xmm6, xmmword [edx*8 + 0x711c20]
mulpd xmm1, xmmword [edx*8 + 0x711c30]
addpd xmm2, xmmword [edx*8 + 0x711d80]
addpd xmm4, xmmword [edx*8 + 0x711d90]
addpd xmm6, xmmword [edx*8 + 0x711da0]
addpd xmm1, xmmword [edx*8 + 0x711db0]
movups xmmword [edx*8 + 0x712440], xmm2
movups xmmword [edx*8 + 0x712450], xmm4
movups xmmword [edx*8 + 0x712460], xmm6
movups xmmword [edx*8 + 0x712470], xmm1
add edx, 8
cmp edx, eax
jb 0x5747f2
lea edx, [eax + 1]
cmp edx, ebx
ja 0x5749d5
mov edx, ebx
sub edx, eax
cmp edx, 2
jl 0x575e79
mov ecx, edx
mov dword [esp + 0x30], edx
and ecx, 0xfffffffe
mov edx, eax
xor edi, edi
nop
movsd xmm1, qword [0x68f0e8]
add edi, 2
mulsd xmm1, qword [0x76e5b0]
movsd xmm2, qword [0x68f0b0]
divsd xmm2, xmm1
unpcklpd xmm2, xmm2
mulpd xmm2, xmmword [edx*8 + 0x712140]
mulpd xmm2, xmmword [edx*8 + 0x711c00]
addpd xmm2, xmmword [edx*8 + 0x711d80]
movups xmmword [edx*8 + 0x712440], xmm2
add edx, 2
cmp edi, ecx
jb 0x574930
mov edx, dword [esp + 0x30]
cmp ecx, edx
jae 0x5749d5
shl eax, 3
nop dword [eax + eax]
movsd xmm1, qword [0x68f0e8]
mulsd xmm1, qword [0x76e5b0]
movsd xmm2, qword [0x68f0b0]
divsd xmm2, xmm1
mulsd xmm2, qword [eax + ecx*8 + 0x712140]
mulsd xmm2, qword [eax + ecx*8 + 0x711c00]
addsd xmm2, qword [eax + ecx*8 + 0x711d80]
movsd qword [eax + ecx*8 + 0x712440], xmm2
inc ecx
cmp ecx, edx
jb 0x574990
test ebx, ebx
jle 0x5749fd
cmp ebx, 0xc
jle 0x575e2f
lea edx, [ebx*8]
push edx
push 0
push 0x711e40
call fcn.0062a5e0
add esp, 0xc
pxor xmm0, xmm0
test ebx, ebx
jle 0x574b6e
mov edx, ebx
xor edi, edi
and edx, 0xfffffff8
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x88], esi
mov dword [esp + 0x30], edx
cmp dword [esp + 0x8c], 0
jle 0x574b52
cmp dword [esp + 0x8c], 8
jl 0x575e28
xor edx, edx
pxor xmm1, xmm1
xor eax, eax
movaps xmm2, xmm1
mov ecx, dword [esp + 0x30]
mov esi, ecx
movsd xmm4, qword [edi*8 + 0x711e40]
movaps xmm3, xmm2
lea ebx, [eax + edi*8 + 0x713760]
add eax, 0x5c0
movsd xmm5, qword [ebx]
movhpd xmm5, qword [ebx + 0xb8]
mulpd xmm5, xmmword [edx*8 + 0x712440]
addpd xmm4, xmm5
movsd xmm6, qword [ebx + 0x170]
movsd xmm7, qword [ebx + 0x2e0]
movsd xmm5, qword [ebx + 0x450]
movhpd xmm6, qword [ebx + 0x228]
movhpd xmm7, qword [ebx + 0x398]
movhpd xmm5, qword [ebx + 0x508]
mulpd xmm6, xmmword [edx*8 + 0x712450]
mulpd xmm7, xmmword [edx*8 + 0x712460]
mulpd xmm5, xmmword [edx*8 + 0x712470]
addpd xmm1, xmm6
addpd xmm2, xmm7
addpd xmm3, xmm5
add edx, 8
cmp edx, esi
jb 0x574a57
addpd xmm4, xmm1
addpd xmm2, xmm3
addpd xmm4, xmm2
movaps xmm1, xmm4
unpckhpd xmm1, xmm4
addsd xmm4, xmm1
movsd qword [edi*8 + 0x711e40], xmm4
lea eax, [ecx + 1]
cmp eax, dword [esp + 0x8c]
ja 0x574b52
imul ebx, ecx, 0xb8
xor eax, eax
mov edx, dword [esp + 0x8c]
lea esi, [ebx + edi*8]
sub edx, ecx
xor ebx, ebx
shl ecx, 3
movsd xmm1, qword [ebx + esi + 0x713760]
add ebx, 0xb8
mulsd xmm1, qword [ecx + eax*8 + 0x712440]
inc eax
addsd xmm1, qword [edi*8 + 0x711e40]
movsd qword [edi*8 + 0x711e40], xmm1
cmp eax, edx
jb 0x574b23
inc edi
cmp edi, dword [esp + 0x8c]
jb 0x574a1e
mov ebx, dword [esp + 0x8c]
mov esi, dword [esp + 0x88]
test ebx, ebx
jle 0x574b96
cmp ebx, 0xc
jle 0x575dde
lea edx, [ebx*8]
push edx
push 0
push 0x711f00
call fcn.0062a5e0
add esp, 0xc
pxor xmm0, xmm0
test ebx, ebx
jle 0x574d07
mov edx, ebx
xor edi, edi
and edx, 0xfffffff8
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x88], esi
mov dword [esp + 0x30], edx
cmp dword [esp + 0x8c], 0
jle 0x574ceb
cmp dword [esp + 0x8c], 8
jl 0x575dd7
xor edx, edx
pxor xmm1, xmm1
xor eax, eax
movaps xmm2, xmm1
mov ecx, dword [esp + 0x30]
mov esi, ecx
movsd xmm4, qword [edi*8 + 0x711f00]
movaps xmm3, xmm2
lea ebx, [eax + edi*8 + 0x713760]
add eax, 0x5c0
movsd xmm5, qword [ebx]
movhpd xmm5, qword [ebx + 0xb8]
mulpd xmm5, xmmword [edx*8 + 0x711d80]
addpd xmm4, xmm5
movsd xmm6, qword [ebx + 0x170]
movsd xmm7, qword [ebx + 0x2e0]
movsd xmm5, qword [ebx + 0x450]
movhpd xmm6, qword [ebx + 0x228]
movhpd xmm7, qword [ebx + 0x398]
movhpd xmm5, qword [ebx + 0x508]
mulpd xmm6, xmmword [edx*8 + 0x711d90]
mulpd xmm7, xmmword [edx*8 + 0x711da0]
mulpd xmm5, xmmword [edx*8 + 0x711db0]
addpd xmm1, xmm6
addpd xmm2, xmm7
addpd xmm3, xmm5
add edx, 8
cmp edx, esi
jb 0x574bf0
addpd xmm4, xmm1
addpd xmm2, xmm3
addpd xmm4, xmm2
movaps xmm1, xmm4
unpckhpd xmm1, xmm4
addsd xmm4, xmm1
movsd qword [edi*8 + 0x711f00], xmm4
lea eax, [ecx + 1]
cmp eax, dword [esp + 0x8c]
ja 0x574ceb
imul ebx, ecx, 0xb8
xor eax, eax
mov edx, dword [esp + 0x8c]
lea esi, [ebx + edi*8]
sub edx, ecx
xor ebx, ebx
shl ecx, 3
movsd xmm1, qword [ebx + esi + 0x713760]
add ebx, 0xb8
mulsd xmm1, qword [ecx + eax*8 + 0x711d80]
inc eax
addsd xmm1, qword [edi*8 + 0x711f00]
movsd qword [edi*8 + 0x711f00], xmm1
cmp eax, edx
jb 0x574cbc
inc edi
cmp edi, dword [esp + 0x8c]
jb 0x574bb7
mov ebx, dword [esp + 0x8c]
mov esi, dword [esp + 0x88]
mov edx, dword [0x6c83b0]
mov ecx, dword [0x6c83d0]
mov dword [esp + 0x68], ecx
lea edi, [edx + esi*4]
mov dword [esp + 0x64], edi
lea edx, [ecx*4]
neg edx
add edx, edi
mov edx, dword [edx]
mov dword [esp + 0x5c], edx
test edx, edx
jle 0x574e35
mov ecx, dword [ebp + 8]
mov edi, dword [0x6c8358]
mov dword [esp + 0x40], edi
mov edx, dword [ecx]
mov dword [esp + 0x44], edx
mov edx, dword [0x6c8380]
mov dword [esp + 0x3c], edx
mov edx, dword [0x6c8378]
mov dword [esp + 0x38], edx
mov edx, dword [0x6c80b0]
mov edi, dword [0x6c80d0]
mov ecx, dword [0x6c8384]
mov dword [esp + 0x58], edx
cmp dword [esp + 0x5c], 4
jl 0x57544c
mov edx, dword [esp + 0x5c]
and edx, 0xfffffffc
mov dword [esp + 0x50], edx
xor edx, edx
mov dword [esp + 0x48], edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], edx
mov edx, esi
mov eax, dword [esp + 0x38]
sub edx, ecx
imul edx, dword [esp + 0x3c]
movdqu xmm1, xmmword [0x68f0a0]
mov dword [esp + 0x8c], ebx
shl eax, 2
neg eax
add eax, dword [esp + 0x40]
add edx, eax
mov dword [esp + 0x88], esi
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x54], edi
mov ebx, dword [esp + 0x50]
mov ecx, edx
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x48]
movdqu xmm5, xmmword [ecx + esi*4 + 4]
movdqu xmm3, xmmword [esi*4 + 0x713700]
movdqa xmm4, xmm0
psubd xmm5, xmm3
movdqa xmm2, xmm1
pcmpgtd xmm4, xmm5
pcmpeqd xmm2, xmm3
pxor xmm5, xmm4
add esi, 4
movmskps edi, xmm2
psubd xmm5, xmm4
pcmpeqd xmm5, xmmword [0x68f0a0]
or eax, edi
movmskps edi, xmm5
test edi, edi
je 0x575412
cmp esi, ebx
jae 0x57533c
mov edx, 0xffffffff
jmp 0x574de0
mov dword [esp + 0x30], 0
test byte [esp + 0x30], 1
je 0x574e63
mov edx, dword [0x6c8350]
shl edx, 2
neg edx
add edx, dword [0x6c8330]
mov ecx, dword [esp + 0x7c]
cmp dword [edx + ecx], 1
je 0x57545b
test ebx, ebx
jle 0x575dbd
mov edi, dword [0x6c8480]
mov edx, dword [0x6c84a8]
mov dword [esp + 0x3c], edi
mov edi, dword [0x6c84ac]
mov ecx, dword [0x6c84a0]
mov dword [esp + 0x40], edx
jle 0x574f19
cmp ebx, 8
jl 0x575db6
mov dword [esp + 0x30], 0
mov edx, ebx
mov eax, dword [esp + 0x30]
and edx, 0xfffffff8
pxor xmm0, xmm0
movups xmmword [eax*8 + 0x7122c0], xmm0
movups xmmword [eax*8 + 0x7122d0], xmm0
movups xmmword [eax*8 + 0x7122e0], xmm0
movups xmmword [eax*8 + 0x7122f0], xmm0
add eax, 8
cmp eax, edx
jb 0x574eaf
mov dword [esp + 0x88], esi
lea eax, [edx + 1]
cmp eax, ebx
ja 0x574f19
mov eax, ebx
sub eax, edx
pxor xmm0, xmm0
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], ecx
shl edx, 3
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
movsd qword [edx + eax*8 + 0x7122c0], xmm0
inc eax
cmp eax, ecx
jb 0x574f07
mov ecx, dword [esp + 0x30]
test ebx, ebx
jle 0x5751f4
cmp ebx, 8
jl 0x575da9
mov edx, dword [esp + 0x40]
mov dword [esp + 0x88], esi
imul esi, edx
imul edx, edi
add esi, dword [esp + 0x3c]
mov eax, esi
mov dword [esp + 0x8c], ebx
lea ebx, [ecx*8]
sub eax, edx
sub eax, ebx
add eax, 8
mov dword [esp + 0x44], esi
mov dword [esp + 0x34], edx
mov ebx, dword [esp + 0x8c]
mov esi, dword [esp + 0x88]
and eax, 0xf
je 0x574f7e
test al, 7
jne 0x575da9
mov eax, 1
mov dword [esp + 0x88], esi
lea edx, [eax + 8]
cmp ebx, edx
jl 0x575da9
mov edx, ebx
sub edx, eax
and edx, 7
neg edx
add edx, ebx
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x88], esi
lea edx, [edx + ecx*8]
sub dword [esp + 0x44], edx
test eax, eax
jbe 0x574fdc
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], ecx
pxor xmm0, xmm0
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x44]
movsd qword [ecx + edx*8 + 8], xmm0
inc edx
cmp edx, eax
jb 0x574fcd
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0x38]
pxor xmm0, xmm0
mov ecx, dword [esp + 0x44]
movups xmmword [ecx + eax*8 + 8], xmm0
movups xmmword [ecx + eax*8 + 0x18], xmm0
movups xmmword [ecx + eax*8 + 0x28], xmm0
movups xmmword [ecx + eax*8 + 0x38], xmm0
add eax, 8
cmp eax, edx
jb 0x574fec
mov dword [esp + 0x38], edx
mov ecx, dword [esp + 0x30]
cmp ebx, dword [esp + 0x38]
jbe 0x57503c
neg edi
add edi, esi
pxor xmm0, xmm0
imul edi, dword [esp + 0x40]
shl ecx, 3
mov edx, dword [esp + 0x3c]
sub edx, ecx
add edi, edx
mov edx, dword [esp + 0x38]
movsd qword [edi + edx*8 + 8], xmm0
inc edx
cmp edx, ebx
jb 0x575031
mov edi, dword [0x6c8568]
mov ecx, dword [0x6c8540]
mov dword [esp + 0x3c], edi
mov edi, dword [0x6c85c8]
mov dword [esp + 0x40], ecx
mov edx, dword [0x6c8560]
mov ecx, dword [0x6c85a0]
mov dword [esp + 0x34], edi
mov edi, dword [0x6c85c0]
mov dword [esp + 0x44], edx
mov dword [esp + 0x38], ecx
mov edx, dword [0x6c856c]
mov ecx, dword [0x6c85cc]
mov dword [esp + 0x30], edi
cmp ebx, 2
jl 0x575d9c
mov dword [esp + 0x60], ecx
mov dword [esp + 0x8c], ebx
and ebx, 0xfffffffe
mov eax, dword [esp + 0x44]
mov dword [esp + 0x88], esi
mov dword [esp + 0x6c], ebx
mov ebx, esi
sub esi, ecx
mov ecx, edi
mov edi, dword [esp + 0x3c]
imul esi, dword [esp + 0x34]
imul ebx, edi
imul edi, edx
mov dword [esp + 0x5c], edx
lea edx, [eax*8]
neg edx
lea eax, [ecx*8]
neg eax
add eax, dword [esp + 0x38]
add edx, dword [esp + 0x40]
add esi, eax
mov dword [esp + 0x50], esi
mov esi, ebx
add ebx, edx
sub esi, edi
sub ebx, edi
add esi, edx
add ebx, 8
mov dword [esp + 0x4c], esi
mov dword [esp + 0x48], 0
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0x88]
mov ecx, dword [esp + 0x60]
test bl, 0xf
mov ebx, dword [esp + 0x8c]
je 0x575152
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], ecx
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
movups xmm0, xmmword [ecx*8 + 0x711d80]
movups xmm1, xmmword [ecx*8 + 0x711c00]
movups xmmword [eax + ecx*8 + 8], xmm0
movups xmmword [edi + ecx*8 + 8], xmm1
add ecx, 2
cmp ecx, edx
jb 0x57512f
jmp 0x57518b
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], ecx
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
movups xmm0, xmmword [ecx*8 + 0x711d80]
movups xmm1, xmmword [ecx*8 + 0x711c00]
movups xmmword [eax + ecx*8 + 8], xmm0
movups xmmword [edi + ecx*8 + 8], xmm1
add ecx, 2
cmp ecx, edx
jb 0x57516a
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
cmp ebx, dword [esp + 0x6c]
jbe 0x5751f4
neg ecx
neg edx
add ecx, esi
add edx, esi
imul ecx, dword [esp + 0x34]
imul edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x30]
shl edi, 3
mov eax, dword [esp + 0x38]
sub eax, edi
mov edi, dword [esp + 0x44]
add ecx, eax
shl edi, 3
mov eax, dword [esp + 0x40]
sub eax, edi
mov edi, dword [esp + 0x6c]
add edx, eax
movsd xmm0, qword [edi*8 + 0x711d80]
movsd xmm1, qword [edi*8 + 0x711c00]
movsd qword [ecx + edi*8 + 8], xmm0
movsd qword [edx + edi*8 + 8], xmm1
inc edi
cmp edi, ebx
jb 0x5751d1
lea edx, [ebx + ebx]
mov dword [esp + 0x4c], edx
cmp edx, ebx
jle 0x57526a
mov edx, dword [0x6c8540]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x4c]
mov edi, dword [0x6c8560]
sub edx, ebx
mov ecx, dword [0x6c8568]
mov dword [esp + 0x3c], edi
mov edi, dword [0x6c856c]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x4c], edx
cmp edx, 0xc
jle 0x575c0d
lea ecx, [ebx*8 + 0x711c00]
shl edx, 3
neg edi
push edx
push ecx
mov edx, dword [esp + 0x44]
add edi, esi
shl ebx, 3
shl edx, 3
sub ebx, edx
imul edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x4c]
lea ebx, [ebx + edx + 8]
add edi, ebx
push edi
call fcn.0062a530
add esp, 0xc
mov edx, dword [esp + 0x70]
shl edx, 2
neg edx
mov ecx, dword [esp + 0x74]
mov edx, dword [edx + ecx]
test edx, edx
jne 0x575a90
mov ecx, dword [0x6c856c]
neg ecx
add ecx, esi
mov edx, dword [0x6c8560]
shl edx, 3
imul ecx, dword [0x6c8568]
neg edx
movsd xmm0, qword [0x711c60]
movsd xmm1, qword [0x711c68]
movsd xmm2, qword [0x711c70]
add edx, dword [0x6c8540]
movsd qword [edx + ecx + 0x68], xmm0
movsd qword [edx + ecx + 0x70], xmm1
movsd qword [edx + ecx + 0x78], xmm2
mov edx, dword [esp + 0x68]
shl edx, 2
neg edx
mov ecx, dword [esp + 0x64]
mov ecx, dword [edx + ecx]
test ecx, ecx
jle 0x573c06
mov ebx, dword [0x6c8384]
mov edi, dword [0x6c8380]
mov edx, dword [0x6c8358]
mov eax, dword [0x6c8378]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], edi
cmp ecx, 0x18
jle 0x57599e
sub esi, dword [esp + 0x3c]
shl eax, 2
imul esi, dword [esp + 0x40]
sub edx, eax
shl ecx, 2
lea eax, [esi + edx + 4]
push ecx
push 0x713700
push eax
call fcn.0062a530
add esp, 0xa0
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x50], ebx
mov dword [esp + 0x48], eax
mov ebx, dword [esp + 0x8c]
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 0x54]
mov ecx, dword [esp + 0x4c]
mov eax, edi
neg eax
add eax, dword [esp + 0x44]
mov edx, dword [esp + 0x58]
mov dword [edx + eax*4], 0xffffffff
xor edx, edx
cmp edx, dword [esp + 0x48]
sbb edx, 0
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x5c]
cmp edx, dword [esp + 0x50]
jbe 0x574e3d
neg ecx
neg edi
add ecx, esi
imul ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
shl edx, 2
mov eax, dword [esp + 0x40]
add edi, dword [esp + 0x44]
sub eax, edx
mov dword [esp + 0x8c], ebx
add ecx, eax
mov dword [esp + 0x88], esi
mov dword [esp + 0x54], edi
mov edi, 0xffffffff
mov esi, dword [esp + 0x50]
mov ebx, dword [esp + 0x30]
mov eax, dword [ecx + esi*4 + 4]
sub eax, dword [esi*4 + 0x713700]
cdq
xor eax, edx
cmp dword [esi*4 + 0x713700], 1
cmove ebx, edi
sub eax, edx
cmp eax, 1
jne 0x5753f4
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
mov dword [eax + edx*4], 0xffffffff
inc esi
cmp esi, dword [esp + 0x5c]
jb 0x5753c5
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x8c]
mov esi, dword [esp + 0x88]
jmp 0x574e3d
cmp esi, ebx
jb 0x574de0
mov dword [esp + 0x34], edx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x48], eax
mov ebx, dword [esp + 0x8c]
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 0x54]
mov ecx, dword [esp + 0x4c]
cmp dword [esp + 0x34], 0
jne 0x57535a
jmp 0x57536d
xor edx, edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x50], edx
jmp 0x57537a
mov edi, dword [esp + 0x70]
mov eax, 0x712080
shl edi, 2
neg edi
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x54], ebx
lea ebx, [esp + 0x84]
mov ecx, dword [edi + edx]
lea edi, [esp + 0x54]
mov dword [esp + 0xc], 0x711c00
lea edx, [esp + 0x58]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], 0x712500
mov dword [esp + 0x1c], 0x712200
mov dword [edx], ecx
mov ecx, 0x711d80
mov dword [esp + 0x20], edx
mov edx, 0x712140
call fcn.00570ebc
mov ebx, dword [esp + 0x84]
test ebx, ebx
jle 0x575901
cmp ebx, 0xc
jle 0x575948
lea edx, [ebx*8]
push edx
push 0
push 0x712380
call fcn.0062a5e0
add esp, 0xc
xor edx, edx
mov dword [esp + 0x88], esi
xor edi, edi
mov eax, ebx
mov ecx, edi
pxor xmm3, xmm3
and eax, 0xfffffff8
movaps xmm2, xmm3
mov esi, ecx
movsd xmm0, qword [edx*8 + 0x712380]
movaps xmm1, xmm2
lea edi, [esi + edx*8 + 0x712500]
add esi, 0x5c0
movsd xmm4, qword [edi]
movsd xmm5, qword [edi + 0x170]
movsd xmm6, qword [edi + 0x2e0]
movsd xmm7, qword [edi + 0x450]
movhpd xmm4, qword [edi + 0xb8]
movhpd xmm5, qword [edi + 0x228]
movhpd xmm6, qword [edi + 0x398]
movhpd xmm7, qword [edi + 0x508]
mulpd xmm4, xmmword [ecx*8 + 0x711d80]
mulpd xmm5, xmmword [ecx*8 + 0x711d90]
mulpd xmm6, xmmword [ecx*8 + 0x711da0]
mulpd xmm7, xmmword [ecx*8 + 0x711db0]
addpd xmm0, xmm4
addpd xmm3, xmm5
addpd xmm2, xmm6
addpd xmm1, xmm7
add ecx, 8
cmp ecx, eax
jb 0x575512
addpd xmm0, xmm3
addpd xmm2, xmm1
addpd xmm0, xmm2
movaps xmm1, xmm0
xor edi, edi
unpckhpd xmm1, xmm0
mov dword [esp + 0x8c], ebx
addsd xmm0, xmm1
movsd qword [edx*8 + 0x712380], xmm0
lea ecx, [eax + 1]
cmp ecx, dword [esp + 0x8c]
ja 0x575617
imul esi, eax, 0xb8
xor ecx, ecx
mov ebx, dword [esp + 0x8c]
lea edi, [esi + edx*8]
sub ebx, eax
xor esi, esi
shl eax, 3
movsd xmm0, qword [esi + edi + 0x712500]
add esi, 0xb8
mulsd xmm0, qword [eax + ecx*8 + 0x711d80]
inc ecx
addsd xmm0, qword [edx*8 + 0x712380]
movsd qword [edx*8 + 0x712380], xmm0
cmp ecx, ebx
jb 0x5755e8
inc edx
cmp edx, dword [esp + 0x8c]
jae 0x57563d
cmp dword [esp + 0x8c], 8
jl 0x575d95
mov ebx, dword [esp + 0x8c]
xor edi, edi
jmp 0x5754f6
mov edx, dword [0x6c8480]
mov edi, dword [0x6c84a0]
mov dword [esp + 0x48], edx
mov ecx, dword [0x6c84a8]
mov edx, dword [0x6c8428]
mov ebx, dword [esp + 0x8c]
mov dword [esp + 0x4c], edi
mov esi, dword [esp + 0x88]
mov eax, dword [0x6c84ac]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x50], edx
mov edi, dword [0x6c8448]
cmp ebx, 8
jl 0x575941
mov ecx, ebx
xor edx, edx
and ecx, 0xfffffff8
movups xmm0, xmmword [edx*8 + 0x712380]
movups xmm1, xmmword [edx*8 + 0x712390]
movups xmm2, xmmword [edx*8 + 0x7123a0]
movups xmm3, xmmword [edx*8 + 0x7123b0]
addpd xmm0, xmmword [edx*8 + 0x712200]
addpd xmm1, xmmword [edx*8 + 0x712210]
addpd xmm2, xmmword [edx*8 + 0x712220]
addpd xmm3, xmmword [edx*8 + 0x712230]
subpd xmm0, xmmword [edx*8 + 0x711f00]
subpd xmm1, xmmword [edx*8 + 0x711f10]
subpd xmm2, xmmword [edx*8 + 0x711f20]
subpd xmm3, xmmword [edx*8 + 0x711f30]
subpd xmm0, xmmword [edx*8 + 0x711e40]
subpd xmm1, xmmword [edx*8 + 0x711e50]
subpd xmm2, xmmword [edx*8 + 0x711e60]
subpd xmm3, xmmword [edx*8 + 0x711e70]
movups xmmword [edx*8 + 0x7122c0], xmm0
movups xmmword [edx*8 + 0x7122d0], xmm1
movups xmmword [edx*8 + 0x7122e0], xmm2
movups xmmword [edx*8 + 0x7122f0], xmm3
add edx, 8
cmp edx, ecx
jb 0x57568e
lea edx, [ecx + 1]
cmp edx, ebx
ja 0x575804
mov edx, ebx
sub edx, ecx
mov dword [esp + 0x40], edx
cmp edx, 2
jl 0x57593a
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], ecx
mov dword [esp + 0x30], ecx
and edx, 0xfffffffe
mov dword [esp + 0x34], edi
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
movups xmm0, xmmword [ecx*8 + 0x712380]
add edi, 2
addpd xmm0, xmmword [ecx*8 + 0x712200]
subpd xmm0, xmmword [ecx*8 + 0x711f00]
subpd xmm0, xmmword [ecx*8 + 0x711e40]
movups xmmword [ecx*8 + 0x7122c0], xmm0
add ecx, 2
cmp edi, edx
jb 0x575780
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x34]
cmp edx, dword [esp + 0x40]
jae 0x575804
mov dword [esp + 0x34], edi
shl ecx, 3
mov edi, dword [esp + 0x40]
movsd xmm0, qword [ecx + edx*8 + 0x712380]
addsd xmm0, qword [ecx + edx*8 + 0x712200]
subsd xmm0, qword [ecx + edx*8 + 0x711f00]
subsd xmm0, qword [ecx + edx*8 + 0x711e40]
movsd qword [ecx + edx*8 + 0x7122c0], xmm0
inc edx
cmp edx, edi
jb 0x5757ce
mov edi, dword [esp + 0x34]
neg edi
add edi, esi
mov edx, dword [esp + 0x50]
movsd xmm1, qword [edx + edi*8]
cmp ebx, 8
jl 0x575933
mov edx, esi
mov ecx, ebx
mov edi, dword [esp + 0x4c]
sub edx, eax
imul edx, dword [esp + 0x44]
movaps xmm0, xmm1
unpcklpd xmm0, xmm0
mov dword [esp + 0x30], 0
shl edi, 3
neg edi
and ecx, 0xfffffff8
add edi, dword [esp + 0x48]
add edx, edi
mov edi, dword [esp + 0x30]
nop word [eax + eax]
movaps xmm2, xmm0
movaps xmm3, xmm0
movaps xmm4, xmm0
movaps xmm5, xmm0
mulpd xmm2, xmmword [edi*8 + 0x7122c0]
mulpd xmm3, xmmword [edi*8 + 0x7122d0]
movups xmmword [edx + edi*8 + 8], xmm2
movups xmmword [edx + edi*8 + 0x18], xmm3
mulpd xmm4, xmmword [edi*8 + 0x7122e0]
mulpd xmm5, xmmword [edi*8 + 0x7122f0]
movups xmmword [edx + edi*8 + 0x28], xmm4
movups xmmword [edx + edi*8 + 0x38], xmm5
add edi, 8
cmp edi, ecx
jb 0x575850
cmp ecx, ebx
jae 0x5758cf
neg eax
add eax, esi
imul eax, dword [esp + 0x44]
mov edx, dword [esp + 0x4c]
shl edx, 3
mov edi, dword [esp + 0x48]
sub edi, edx
add eax, edi
movsd xmm0, qword [ecx*8 + 0x7122c0]
mulsd xmm0, xmm1
movsd qword [eax + ecx*8 + 8], xmm0
inc ecx
cmp ecx, ebx
jb 0x5758b7
mov eax, dword [0x6c8388]
mov edi, dword [0x6c83b0]
mov ecx, dword [0x6c83d0]
mov edx, dword [0x6c83a8]
mov dword [esp + 0x70], edx
lea edx, [edi + esi*4]
mov dword [esp + 0x68], ecx
lea ecx, [eax + esi*4]
mov dword [esp + 0x64], edx
mov dword [esp + 0x74], ecx
jmp 0x57503c
mov eax, dword [0x6c8388]
mov edi, dword [0x6c83b0]
mov ecx, dword [0x6c83d0]
mov edx, dword [0x6c83a8]
mov dword [esp + 0x70], edx
lea edx, [edi + esi*4]
mov dword [esp + 0x68], ecx
lea ecx, [eax + esi*4]
mov dword [esp + 0x64], edx
mov dword [esp + 0x74], ecx
jmp 0x5751f4
xor ecx, ecx
jmp 0x57589b
xor edx, edx
jmp 0x5757bd
xor ecx, ecx
jmp 0x575745
cmp ebx, 4
jl 0x57599a
mov ecx, ebx
xor edx, edx
and ecx, 0xfffffffc
pxor xmm0, xmm0
movups xmmword [edx*8 + 0x712380], xmm0
movups xmmword [edx*8 + 0x712390], xmm0
add edx, 4
cmp edx, ecx
jb 0x575958
cmp ecx, ebx
jae 0x575985
pxor xmm0, xmm0
movsd qword [ecx*8 + 0x712380], xmm0
inc ecx
cmp ecx, ebx
jb 0x575977
mov dword [esp + 0x8c], ebx
xor edx, edx
mov dword [esp + 0x88], esi
jmp 0x575621
xor ecx, ecx
jmp 0x57596f
cmp ecx, 4
jl 0x575a86
mov ebx, ecx
lea edi, [eax*4]
and ebx, 0xfffffffc
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x88], esi
imul esi, ebx
imul ebx, dword [esp + 0x3c]
mov dword [esp + 0x30], eax
lea eax, [ebx + eax*4]
add esi, edx
neg eax
add eax, esi
sub esi, ebx
sub esi, edi
add esi, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], 0
mov eax, dword [esp + 0x30]
test esi, 0xf
mov esi, dword [esp + 0x88]
je 0x575a25
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
movdqu xmm0, xmmword [ebx*4 + 0x713700]
movdqu xmmword [edi + ebx*4 + 4], xmm0
add ebx, 4
cmp ebx, ecx
jb 0x575a0d
jmp 0x575a4b
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
movdqu xmm0, xmmword [ebx*4 + 0x713700]
movdqu xmmword [edi + ebx*4 + 4], xmm0
add ebx, 4
cmp ebx, ecx
jb 0x575a35
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x30]
cmp ecx, dword [esp + 0x44]
jbe 0x573c06
sub esi, dword [esp + 0x3c]
imul esi, dword [esp + 0x40]
shl eax, 2
sub edx, eax
mov ebx, dword [esp + 0x44]
add esi, edx
mov edx, dword [ebx*4 + 0x713700]
mov dword [esi + ebx*4 + 4], edx
inc ebx
cmp ebx, ecx
jb 0x575a71
jmp 0x573c06
mov dword [esp + 0x44], 0
jmp 0x575a53
cmp edx, 1
jne 0x575aee
mov ebx, esi
mov edi, dword [0x6c8568]
imul ebx, edi
movups xmm0, xmmword [0x711c60]
movups xmm1, xmmword [0x711c70]
movsd xmm2, qword [0x711c80]
mov edx, dword [0x6c856c]
mov ecx, ebx
imul edi, edx
mov eax, dword [0x6c8560]
sub ecx, edi
shl eax, 3
neg eax
add eax, dword [0x6c8540]
movups xmmword [ecx + eax + 0x68], xmm0
movups xmmword [ecx + eax + 0x78], xmm1
add eax, ebx
sub eax, edi
movsd qword [eax + 0x88], xmm2
jmp 0x5752ce
cmp edx, 2
jne 0x575b5b
mov ebx, esi
mov edi, dword [0x6c8568]
imul ebx, edi
movups xmm0, xmmword [0x711c60]
movups xmm1, xmmword [0x711c70]
movups xmm2, xmmword [0x711c80]
movsd xmm3, qword [0x711c90]
mov edx, dword [0x6c856c]
mov ecx, ebx
imul edi, edx
mov eax, dword [0x6c8560]
sub ecx, edi
shl eax, 3
neg eax
add eax, dword [0x6c8540]
movups xmmword [ecx + eax + 0x68], xmm0
movups xmmword [ecx + eax + 0x78], xmm1
movups xmmword [ecx + eax + 0x88], xmm2
add eax, ebx
sub eax, edi
movsd qword [eax + 0x98], xmm3
jmp 0x5752ce
cmp edx, 3
je 0x575bd8
cmp edx, 4
je 0x575ba3
cmp edx, 5
jne 0x5752ce
mov ecx, dword [0x6c856c]
neg ecx
add ecx, esi
mov edx, dword [0x6c8560]
shl edx, 3
imul ecx, dword [0x6c8568]
neg edx
movsd xmm0, qword [0x711c40]
add edx, dword [0x6c8540]
movsd qword [edx + ecx + 0x48], xmm0
jmp 0x5752ce
mov ecx, dword [0x6c856c]
neg ecx
add ecx, esi
mov edx, dword [0x6c8560]
shl edx, 3
imul ecx, dword [0x6c8568]
neg edx
movsd xmm0, qword [0x711c30]
add edx, dword [0x6c8540]
movsd qword [edx + ecx + 0x38], xmm0
jmp 0x5752ce
mov ecx, dword [0x6c856c]
neg ecx
add ecx, esi
mov edx, dword [0x6c8560]
shl edx, 3
imul ecx, dword [0x6c8568]
neg edx
movsd xmm0, qword [0x711c20]
add edx, dword [0x6c8540]
movsd qword [edx + ecx + 0x28], xmm0
jmp 0x5752ce
cmp dword [esp + 0x4c], 2
jl 0x575d8b
mov eax, esi
lea ecx, [ebx*8]
mov dword [esp + 0x30], edi
mov edx, dword [esp + 0x34]
imul eax, edx
imul edx, edi
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x40], edx
shl edi, 3
neg edi
add edi, ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x50], edi
add eax, ecx
add eax, edi
sub eax, edx
add eax, 8
mov edi, dword [esp + 0x30]
and eax, 0xf
je 0x575c6d
test al, 7
jne 0x575d8b
mov eax, 1
lea edx, [eax + 2]
cmp edx, dword [esp + 0x4c]
jg 0x575d8b
mov edx, dword [esp + 0x4c]
mov ecx, edx
sub ecx, eax
and ecx, 1
neg ecx
add ecx, edx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x48]
add ecx, dword [esp + 0x44]
sub edx, dword [esp + 0x40]
add ecx, edx
mov dword [esp + 0x50], ecx
test eax, eax
jbe 0x575ccf
mov dword [esp + 0x88], esi
xor edx, edx
mov esi, dword [esp + 0x38]
movsd xmm0, qword [esi + edx*8 + 0x711c00]
movsd qword [ecx + edx*8 + 8], xmm0
inc edx
cmp edx, eax
jb 0x575cb4
mov esi, dword [esp + 0x88]
lea edx, [eax*8]
lea ecx, [edx + ebx*8 + 0x711c00]
test cl, 0xf
je 0x575d0b
mov dword [esp + 0x88], esi
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x38]
movups xmm0, xmmword [esi + eax*8 + 0x711c00]
movups xmmword [ecx + eax*8 + 8], xmm0
add eax, 2
cmp eax, edx
jb 0x575cf5
jmp 0x575d32
mov dword [esp + 0x88], esi
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x38]
movups xmm0, xmmword [esi + eax*8 + 0x711c00]
movups xmmword [ecx + eax*8 + 8], xmm0
add eax, 2
cmp eax, edx
jb 0x575d1e
mov dword [esp + 0x30], edx
mov esi, dword [esp + 0x88]
mov edx, dword [esp + 0x4c]
cmp edx, dword [esp + 0x30]
jbe 0x57526a
neg edi
add edi, esi
imul edi, dword [esp + 0x34]
mov edx, dword [esp + 0x3c]
shl edx, 3
shl ebx, 3
neg edx
add edx, ebx
mov ecx, dword [esp + 0x44]
add ecx, edx
mov edx, dword [esp + 0x30]
add edi, ecx
mov ecx, dword [esp + 0x4c]
movsd xmm0, qword [ebx + edx*8 + 0x711c00]
movsd qword [edi + edx*8 + 8], xmm0
inc edx
cmp edx, ecx
jb 0x575d72
jmp 0x57526a
mov dword [esp + 0x30], 0
jmp 0x575d3d
xor eax, eax
jmp 0x5755c3
mov dword [esp + 0x6c], 0
jmp 0x575197
mov dword [esp + 0x38], 0
jmp 0x57500f
xor edx, edx
jmp 0x574ed6
mov ecx, 0
mov edi, ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], edi
jg 0x574e91
jmp 0x574f19
xor ecx, ecx
jmp 0x574c97
cmp ebx, 4
jl 0x575e24
mov ecx, ebx
xor edx, edx
and ecx, 0xfffffffc
pxor xmm1, xmm1
movups xmmword [edx*8 + 0x711f00], xmm1
movups xmmword [edx*8 + 0x711f10], xmm1
add edx, 4
cmp edx, ecx
jb 0x575dee
cmp ecx, ebx
jae 0x574b96
pxor xmm1, xmm1
movsd qword [ecx*8 + 0x711f00], xmm1
inc ecx
cmp ecx, ebx
jb 0x575e11
jmp 0x574b96
xor ecx, ecx
jmp 0x575e05
xor ecx, ecx
jmp 0x574afe
cmp ebx, 4
jl 0x575e75
mov ecx, ebx
xor edx, edx
and ecx, 0xfffffffc
pxor xmm1, xmm1
movups xmmword [edx*8 + 0x711e40], xmm1
movups xmmword [edx*8 + 0x711e50], xmm1
add edx, 4
cmp edx, ecx
jb 0x575e3f
cmp ecx, ebx
jae 0x5749fd
pxor xmm1, xmm1
movsd qword [ecx*8 + 0x711e40], xmm1
inc ecx
cmp ecx, ebx
jb 0x575e62
jmp 0x5749fd
xor ecx, ecx
jmp 0x575e56
xor ecx, ecx
jmp 0x574981
xor eax, eax
jmp 0x574909
mov edx, 1
jmp 0x574792
mov ecx, 0
mov edi, ecx
mov eax, edi
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x38], edi
mov dword [esp + 0x34], eax
jg 0x5746d4
jmp 0x5747da
cmp edx, 1
je 0x575edf
cmp edx, 2
je 0x576252
cmp edx, 3
je 0x5761bf
cmp edx, 4
je 0x57612c
cmp edx, 5
je 0x576099
jmp 0x574697
movups xmm1, xmmword [0x712140]
xor ecx, ecx
movups xmm5, xmmword [0x712150]
movaps xmm2, xmm1
unpcklpd xmm2, xmm5
unpckhpd xmm1, xmm5
mulpd xmm2, xmmword [0x68f090]
mulpd xmm1, xmmword [0x68f090]
movups xmm5, xmmword [0x711cc0]
movups xmm6, xmmword [0x711cd0]
movaps xmm7, xmm5
unpcklpd xmm7, xmm6
unpckhpd xmm5, xmm6
mulpd xmm2, xmm7
mulpd xmm5, xmm1
addpd xmm2, xmm5
movups xmm5, xmmword [0x711fc0]
movups xmm1, xmmword [0x711fd0]
movaps xmm6, xmm5
unpcklpd xmm6, xmm1
subpd xmm2, xmm6
mov edx, dword [0x6c85f0]
neg edx
add edx, esi
unpckhpd xmm5, xmm1
mov edi, dword [0x6c85d0]
movsd xmm1, qword [0x712160]
subpd xmm2, xmm5
mulsd xmm1, qword [0x711ce0]
movsd xmm4, qword [edi + edx*8]
mov edi, 0xd
movaps xmm3, xmm4
unpcklpd xmm3, xmm3
movups xmmword [0x7120f0], xmm3
mulpd xmm2, xmm3
movsd xmm3, qword [0x712168]
mulsd xmm3, qword [0x711ce8]
movsd qword [0x712100], xmm4
addsd xmm1, xmm3
movsd xmm3, qword [0x711fe0]
xorps xmm3, xmmword [0x68f070]
mulsd xmm1, qword [0x68f0e8]
subsd xmm3, qword [0x711fe8]
movups xmmword [0x711c70], xmm2
addsd xmm1, xmm3
mulsd xmm1, xmm4
movsd xmm4, qword [0x711c00]
mov ebx, dword [ebp + 0xc]
movsd qword [0x711c80], xmm1
mov dword [0x713738], ecx
mov dword [0x71373c], ecx
mov dword [0x713740], ecx
mov ebx, dword [ebx]
mov dword [esp + 0x88], esi
subsd xmm4, qword [0x711c30]
subsd xmm4, xmm2
movsd xmm2, qword [0x711c20]
subsd xmm2, qword [0x711c50]
movsd qword [0x711c60], xmm4
subsd xmm2, xmm1
movsd qword [0x711c68], xmm2
mov eax, dword [0x6c8718]
lea esi, [edi*4 + 0x7136fc]
shl eax, 3
lea edx, [edi*8 + 0x711bf8]
mov dword [esp + 0xc], esi
lea ecx, [edi*8 + 0x711fb8]
mov esi, dword [0x6c86f8]
sub esi, eax
lea eax, [esi + ebx*8]
mov esi, dword [0x6c86f0]
shl esi, 3
mov dword [esp + 0x10], eax
mov eax, dword [0x6c86d0]
sub eax, esi
lea esi, [eax + ebx*8]
mov dword [esp + 0x14], esi
lea eax, [edi*8 + 0x712078]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0xc]
call fcn.0057690c
inc edi
cmp edi, 0xe
jle 0x576034
jmp 0x57466e
mov eax, dword [ebp + 0xc]
mov edi, dword [0x6c8718]
shl edi, 3
mov edx, dword [0x6c86f8]
sub edx, edi
mov ebx, dword [eax]
movsd xmm1, qword [0x711c00]
mov edi, dword [0x6c86d0]
mov dword [esp + 0xc], 0x713720
lea ecx, [edx + ebx*8]
mov edx, dword [0x6c86f0]
shl edx, 3
subsd xmm1, qword [0x711c20]
sub edi, edx
mov edx, 0x711c40
mov dword [esp + 0x10], ecx
mov ecx, 0x712000
movsd qword [0x711c40], xmm1
lea ebx, [edi + ebx*8]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], 0x7120c0
call fcn.0057690c
mov ecx, dword [0x6c8388]
mov edx, dword [0x6c83a8]
pxor xmm0, xmm0
mov ebx, dword [esp + 0x84]
mov dword [esp + 0x70], edx
lea edi, [ecx + esi*4]
mov dword [esp + 0x74], edi
jmp 0x574697
mov eax, dword [ebp + 0xc]
mov edi, dword [0x6c8718]
shl edi, 3
mov edx, dword [0x6c86f8]
sub edx, edi
mov ebx, dword [eax]
movsd xmm1, qword [0x711c00]
mov edi, dword [0x6c86d0]
mov dword [esp + 0xc], 0x713718
lea ecx, [edx + ebx*8]
mov edx, dword [0x6c86f0]
shl edx, 3
subsd xmm1, qword [0x711c18]
sub edi, edx
mov edx, 0x711c30
mov dword [esp + 0x10], ecx
mov ecx, 0x711ff0
movsd qword [0x711c30], xmm1
lea ebx, [edi + ebx*8]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], 0x7120b0
call fcn.0057690c
mov ecx, dword [0x6c8388]
mov edx, dword [0x6c83a8]
pxor xmm0, xmm0
mov ebx, dword [esp + 0x84]
mov dword [esp + 0x70], edx
lea edi, [ecx + esi*4]
mov dword [esp + 0x74], edi
jmp 0x574697
mov eax, dword [ebp + 0xc]
mov edi, dword [0x6c8718]
shl edi, 3
mov edx, dword [0x6c86f8]
sub edx, edi
mov ebx, dword [eax]
movsd xmm1, qword [0x711c00]
mov edi, dword [0x6c86d0]
mov dword [esp + 0xc], 0x713710
lea ecx, [edx + ebx*8]
mov edx, dword [0x6c86f0]
shl edx, 3
subsd xmm1, qword [0x711c10]
sub edi, edx
mov edx, 0x711c20
mov dword [esp + 0x10], ecx
mov ecx, 0x711fe0
movsd qword [0x711c20], xmm1
lea ebx, [edi + ebx*8]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], 0x7120a0
call fcn.0057690c
mov ecx, dword [0x6c8388]
mov edx, dword [0x6c83a8]
pxor xmm0, xmm0
mov ebx, dword [esp + 0x84]
mov dword [esp + 0x70], edx
lea edi, [ecx + esi*4]
mov dword [esp + 0x74], edi
jmp 0x574697
movsd xmm3, qword [0x712140]
movsd xmm1, qword [0x712148]
movsd xmm6, qword [0x712160]
movsd xmm4, qword [0x712168]
mulsd xmm3, qword [0x711cc0]
mulsd xmm1, qword [0x711cc8]
mulsd xmm6, qword [0x711ce0]
mulsd xmm4, qword [0x711ce8]
addsd xmm3, xmm1
addsd xmm6, xmm4
mulsd xmm3, qword [0x68f0e8]
mulsd xmm6, qword [0x68f0e8]
movsd xmm2, qword [0x711fc0]
movsd xmm5, qword [0x711fe0]
xorps xmm2, xmmword [0x68f070]
xorps xmm5, xmmword [0x68f070]
mov ebx, dword [0x6c8740]
shl ebx, 3
subsd xmm2, qword [0x711fc8]
subsd xmm5, qword [0x711fe8]
mov edi, dword [0x6c8720]
neg ebx
mov eax, dword [ebp + 0xc]
mov ecx, dword [0x6c86c8]
shl ecx, 3
lea edx, [edi + esi*8]
mulsd xmm2, qword [ebx + edx]
mulsd xmm5, qword [ebx + edx]
addsd xmm3, xmm2
addsd xmm6, xmm5
mov edx, dword [0x6c86a8]
sub edx, ecx
mov ebx, dword [eax]
mov ecx, dword [0x6c8680]
mov dword [esp + 0x30], ebx
mov dword [esp + 0xc], 0x713738
lea edi, [edx + ebx*8]
mov edx, dword [0x6c86a0]
shl edx, 3
sub ecx, edx
mov edx, 0x712030
mov dword [esp + 0x10], edi
movsd qword [0x712030], xmm3
movsd qword [0x712040], xmm6
lea ebx, [ecx + ebx*8]
mov ecx, 0x711c70
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], 0x7120f0
call fcn.00576bfc
mov ebx, dword [0x6c86c8]
shl ebx, 3
pxor xmm0, xmm0
mov edx, dword [0x6c86a0]
shl edx, 3
mov dword [esp + 0xc], 0x713740
mov edi, dword [0x6c86a8]
mov ecx, dword [0x6c8680]
sub edi, ebx
sub ecx, edx
mov ebx, dword [esp + 0x30]
mov eax, dword [ebp + 0xc]
lea edi, [edi + ebx*8]
mov dword [esp + 0x10], edi
lea edx, [ecx + ebx*8]
mov dword [esp + 0x14], edx
mov edx, 0x712040
mov ecx, 0x711c80
mov dword [esp + 0x18], 0x712100
call fcn.00576bfc
movsd xmm4, qword [0x712150]
mov edi, 0xd
movsd xmm1, qword [0x712158]
pxor xmm0, xmm0
mulsd xmm4, qword [0x711cd0]
mulsd xmm1, qword [0x711cd8]
movsd xmm2, qword [0x711fd0]
addsd xmm4, xmm1
xorps xmm2, xmmword [0x68f070]
mov ecx, dword [0x6c8740]
shl ecx, 3
subsd xmm2, qword [0x711fd8]
mulsd xmm4, qword [0x68f0e8]
mov edx, dword [0x6c8720]
neg ecx
movsd xmm3, qword [0x712030]
movsd xmm5, qword [0x712040]
mov dword [esp + 0x88], esi
lea ebx, [edx + esi*8]
mulsd xmm2, qword [ecx + ebx]
mov ebx, dword [esp + 0x30]
addsd xmm4, xmm2
movsd qword [0x712038], xmm4
subsd xmm3, xmm4
subsd xmm5, xmm4
movsd qword [0x712020], xmm3
movsd qword [0x712028], xmm5
mov eax, dword [0x6c8718]
lea esi, [edi*4 + 0x7136fc]
shl eax, 3
lea edx, [edi*8 + 0x711fb8]
mov dword [esp + 0xc], esi
lea ecx, [edi*8 + 0x711bf8]
mov esi, dword [0x6c86f8]
sub esi, eax
lea eax, [esi + ebx*8]
mov esi, dword [0x6c86f0]
shl esi, 3
mov dword [esp + 0x10], eax
mov eax, dword [0x6c86d0]
sub eax, esi
lea esi, [eax + ebx*8]
mov dword [esp + 0x14], esi
lea eax, [edi*8 + 0x712078]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0xc]
call fcn.00576bfc
inc edi
cmp edi, 0xe
jle 0x576464
movsd xmm2, qword [0x711c10]
xor edi, edi
movsd xmm3, qword [0x711c00]
pxor xmm0, xmm0
movsd xmm4, qword [0x711c20]
mov edx, dword [0x6c85f0]
shl edx, 3
subsd xmm2, qword [0x711c40]
subsd xmm3, qword [0x711c30]
subsd xmm4, qword [0x711c50]
addsd xmm2, qword [0x711c60]
subsd xmm3, qword [0x711c60]
subsd xmm4, qword [0x711c68]
addsd xmm2, qword [0x711c68]
subsd xmm3, qword [0x711c70]
subsd xmm4, qword [0x711c80]
mov ebx, dword [0x6c85d0]
neg edx
mov esi, dword [esp + 0x88]
mov dword [0x71373c], edi
mov dword [0x713744], edi
lea ecx, [ebx + esi*8]
movsd xmm1, qword [edx + ecx]
mov ecx, dword [0x6c8388]
mov edx, dword [0x6c83a8]
mov dword [esp + 0x70], edx
movsd qword [0x7120f8], xmm1
lea edx, [ecx + esi*4]
movsd qword [0x712108], xmm1
movsd qword [0x712110], xmm1
mov dword [0x713748], edi
movsd qword [0x711c78], xmm2
movsd qword [0x711c88], xmm3
movsd qword [0x711c90], xmm4
mov ebx, dword [esp + 0x84]
mov dword [esp + 0x74], edx
jmp 0x574697
cmp ebx, 2
jl 0x5766f1
mov edi, 1
lea eax, [ebx*8 + 0x712080]
and eax, 0xf
lea ecx, [ebx*8]
mov dword [esp + 0x30], ecx
cmovne eax, edi
lea ecx, [eax + 2]
cmp ebx, ecx
jl 0x5766f1
mov edi, ebx
mov ecx, esi
sub edi, eax
sub ecx, edx
and edi, 1
neg edi
add edi, ebx
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x3c]
imul ecx, dword [esp + 0x34]
shl edi, 3
neg edi
add edi, dword [esp + 0x38]
add ecx, edi
mov edi, dword [esp + 0x44]
mov dword [esp + 0x40], ecx
test eax, eax
jbe 0x57664d
mov dword [esp + 0x8c], ebx
xor ecx, ecx
mov dword [esp + 0x88], esi
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x30]
movsd xmm1, qword [ebx + ecx*8 + 8]
movsd qword [esi + ecx*8 + 0x712080], xmm1
inc ecx
cmp ecx, eax
jb 0x57662b
mov ebx, dword [esp + 0x8c]
mov esi, dword [esp + 0x88]
mov ecx, dword [esp + 0x40]
lea ecx, [ecx + eax*8 + 8]
test cl, 0xf
je 0x57667f
mov dword [esp + 0x88], esi
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x30]
movups xmm1, xmmword [ecx + eax*8 + 8]
movups xmmword [esi + eax*8 + 0x712080], xmm1
add eax, 2
cmp eax, edi
jb 0x576669
jmp 0x5766a2
mov dword [esp + 0x88], esi
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x30]
movups xmm1, xmmword [ecx + eax*8 + 8]
movups xmmword [esi + eax*8 + 0x712080], xmm1
add eax, 2
cmp eax, edi
jb 0x57668e
mov esi, dword [esp + 0x88]
cmp edi, ebx
jae 0x574452
neg edx
lea ecx, [ebx*8]
add edx, esi
imul edx, dword [esp + 0x34]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x3c]
shl ecx, 3
mov eax, dword [esp + 0x38]
sub eax, ecx
mov ecx, dword [esp + 0x30]
add edx, eax
movsd xmm1, qword [edx + edi*8 + 8]
movsd qword [ecx + edi*8 + 0x712080], xmm1
inc edi
cmp edi, ebx
jb 0x5766d8
jmp 0x574452
xor edi, edi
jmp 0x5766a9
mov edx, esi
mov edi, dword [esp + 0x74]
imul edx, edi
imul edi, dword [esp + 0x68]
add dword [esp + 0x80], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], 0
lea edi, [edx*8]
mov dword [esp + 0x70], edi
jmp 0x5741ea
cmp dword [esp + 0x48], 2
jl 0x5768ef
mov edi, dword [esp + 0x58]
mov ecx, esi
lea edx, [edi*8]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x30]
imul ecx, edx
imul edx, eax
mov edi, dword [esp + 0x44]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x4c], edx
add ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x34]
and ecx, 0xf
mov dword [esp + 0x5c], ecx
je 0x576780
test byte [esp + 0x5c], 7
jne 0x5768ef
mov dword [esp + 0x5c], 1
mov ecx, dword [esp + 0x5c]
lea edi, [ecx + 2]
cmp edi, dword [esp + 0x48]
jg 0x5768ef
mov edi, dword [esp + 0x48]
mov ecx, edi
mov dword [esp + 0x8c], ebx
neg edx
mov ebx, dword [esp + 0x5c]
sub ecx, ebx
and ecx, 1
neg ecx
mov dword [esp + 0x6c], eax
add ecx, edi
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x58]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x88], esi
lea eax, [eax + edi*8]
mov edi, dword [esp + 0x50]
imul esi, ecx
imul ecx, dword [esp + 0x38]
add edx, dword [esp + 0x44]
add edx, eax
lea eax, [edi*8]
neg eax
add eax, dword [esp + 0x40]
mov dword [esp + 0x64], esi
lea esi, [esi + edi*8]
add eax, esi
sub edx, dword [esp + 0x4c]
sub eax, ecx
mov dword [esp + 0x68], eax
mov dword [esp + 0x60], ecx
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x88]
test ebx, ebx
mov ebx, dword [esp + 0x8c]
jbe 0x576842
mov dword [esp + 0x88], esi
xor ecx, ecx
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x5c]
movsd xmm1, qword [esi + ecx*8]
movsd qword [edx + ecx*8], xmm1
inc ecx
cmp ecx, edi
jb 0x576828
mov dword [esp + 0x5c], edi
mov esi, dword [esp + 0x88]
mov ecx, dword [esp + 0x64]
sub ecx, dword [esp + 0x60]
add ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x5c]
lea ecx, [ecx + edi*8]
test cl, 0xf
je 0x57687a
mov dword [esp + 0x88], esi
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x68]
movups xmm1, xmmword [esi + edi*8]
movups xmmword [edx + edi*8], xmm1
add edi, 2
cmp edi, ecx
jb 0x576869
jmp 0x576898
mov dword [esp + 0x88], esi
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x68]
movups xmm1, xmmword [esi + edi*8]
movups xmmword [edx + edi*8], xmm1
add edi, 2
cmp edi, ecx
jb 0x576889
mov dword [esp + 0x34], ecx
mov esi, dword [esp + 0x88]
mov edx, dword [esp + 0x48]
cmp edx, dword [esp + 0x34]
jbe 0x574002
mov edx, dword [esp + 0x38]
neg eax
neg edx
add eax, esi
add edx, esi
imul edx, dword [esp + 0x3c]
imul eax, dword [esp + 0x30]
add edx, dword [esp + 0x40]
mov dword [esp + 0x38], edx
add eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x48]
movsd xmm1, qword [edx + ecx*8]
movsd qword [eax + ecx*8], xmm1
inc ecx
cmp ecx, edi
jb 0x5768db
jmp 0x574002
mov dword [esp + 0x34], 0
jmp 0x5768a3