Function at 0x564abc
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
and esp, 0xffffffc0
push ebp
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push esi
push edi
sub esp, 0x130
mov dword [ebp - 0xec], eax
mov eax, dword [ebx + 0x1c]
mov dword [ebp - 0x7c], ecx
mov edi, dword [eax]
cmp edi, 2
jg 0x564af2
mov eax, dword [ebp - 0xec]
mov esi, dword [eax]
jmp 0x564b0c
cmp edi, 3
jl 0x564b0a
mov esi, dword [ebp - 0xec]
mov esi, dword [esi]
mov eax, esi
shr eax, 0x1f
add esi, eax
sar esi, 1
jmp 0x564b0c
xor esi, esi
pxor xmm0, xmm0
cvtsi2sd xmm0, esi
movsd xmm1, qword [0x68e6e0]
divsd xmm1, xmm0
mov eax, dword [ebx + 0x18]
movsd qword [ebp - 0x130], xmm1
mov eax, dword [eax]
cmp eax, 2
jne 0x564cb9
movsd xmm1, qword [0x68e7d8]
mulsd xmm1, qword [edx]
movsd xmm0, qword [0x68e7d0]
mov dword [ebp - 0x138], edx
call fcn.0061e9c0
mov eax, esi
subsd xmm0, qword [0x68e6e0]
sqrtsd xmm0, xmm0
movsd xmm2, qword [0x68e6e0]
mov edx, dword [ebp - 0x138]
divsd xmm2, xmm0
and eax, reloc.WS2_32.dll_accept
jge 0x564b83
sub eax, 1
or eax, 0xfffffffe
inc eax
test eax, eax
jne 0x564bbe
movsd xmm1, qword [0x68e7e0]
xorps xmm1, xmmword [0x68a650]
mulsd xmm1, qword [edx]
movsd xmm0, qword [0x68e7d0]
movsd qword [ebp - 0x138], xmm2
call fcn.0061e9c0
movsd xmm2, qword [ebp - 0x138]
movsd qword [ebp - 0x78], xmm0
jmp 0x564bcb
movsd xmm1, qword [0x68e6e0]
movsd qword [ebp - 0x78], xmm1
movaps xmm0, xmm2
mulsd xmm0, xmm2
movsd xmm1, qword [ebp - 0x130]
movsd qword [ebp - 0x138], xmm2
addsd xmm0, qword [0x68e6e0]
sqrtsd xmm0, xmm0
addsd xmm0, xmm2
call fcn.0061e9c0
movsd xmm5, qword [0x68e6e0]
movaps xmm1, xmm0
movsd xmm3, qword [0x68e6e0]
movaps xmm4, xmm1
divsd xmm5, xmm1
divsd xmm3, xmm1
movsd xmm2, qword [ebp - 0x138]
addsd xmm1, xmm5
subsd xmm4, xmm3
mulsd xmm1, qword [0x68e6b8]
mulsd xmm4, qword [0x68e6b8]
movaps xmm6, xmm2
mulsd xmm6, xmm2
movsd qword [ebp - 0xf8], xmm4
movsd qword [ebp - 0xd8], xmm1
subsd xmm6, qword [0x68e6e0]
sqrtsd xmm6, xmm6
addsd xmm2, xmm6
movaps xmm0, xmm2
call fcn.0061e790
mulsd xmm0, qword [ebp - 0x130]
add esp, 0xfffffff8
movsd xmm1, qword [ebp - 0xd8]
movsd qword [esp], xmm0
movsd qword [ebp - 0xd8], xmm1
call fcn.00620710
fstp qword [ebp - 0x138]
wait
add esp, 8
movsd xmm1, qword [ebp - 0xd8]
movsd xmm5, qword [ebp - 0x138]
cmp edi, 1
jne 0x564cef
movaps xmm0, xmm5
movsd xmm5, qword [0x68e6e0]
divsd xmm5, xmm0
jmp 0x564cef
movsd xmm0, qword [0x68e6e0]
movsd qword [ebp - 0x78], xmm0
cmp eax, 1
jne 0x564ce0
movsd xmm1, qword [0x68e6e0]
movsd qword [ebp - 0xf8], xmm1
movaps xmm5, xmm1
jmp 0x564cef
pxor xmm5, xmm5
movaps xmm1, xmm5
movsd qword [ebp - 0xf8], xmm1
test esi, esi
jle 0x564ef0
cmp esi, 2
jl 0x5669cd
movsd xmm0, qword [ebp - 0x130]
mov eax, esi
xor ecx, ecx
and eax, 0xfffffffe
movdqu xmm2, xmmword [0x68e670]
unpcklpd xmm0, xmm0
movsd qword [ebp - 0x70], xmm5
movups xmmword [ebp - 0x128], xmm0
movdqu xmmword [ebp - 0x108], xmm2
movsd qword [ebp - 0xd8], xmm1
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x18], esi
mov esi, ecx
mov dword [ebp - 0x138], edi
mov edi, ecx
cvtdq2pd xmm0, qword [ebp - 0x108]
subpd xmm0, xmmword [0x68e690]
mulpd xmm0, xmmword [ebp - 0x128]
addpd xmm0, xmmword [0x68e690]
mulpd xmm0, xmmword [0x68e680]
movups xmmword [ebp - 0x118], xmm0
movsd qword [ebp - 0xc8], xmm0
call fcn.0061deb0
movsd qword [ebp - 0xc0], xmm0
movups xmm0, xmmword [ebp - 0x118]
psrldq xmm0, 8
movsd qword [ebp - 0xd0], xmm0
call fcn.0061deb0
movsd xmm1, qword [ebp - 0xc0]
unpcklpd xmm1, xmm0
movsd xmm0, qword [ebp - 0xc8]
movups xmmword [ebp - 0xe8], xmm1
call fcn.0061e090
movsd qword [ebp - 0xb8], xmm0
movsd xmm0, qword [ebp - 0xd0]
call fcn.0061e090
movsd xmm4, qword [ebp - 0xb8]
add edi, 2
movsd xmm2, qword [ebp - 0xf8]
movsd xmm3, qword [ebp - 0xd8]
movups xmm1, xmmword [ebp - 0xe8]
unpcklpd xmm4, xmm0
unpcklpd xmm2, xmm2
unpcklpd xmm3, xmm3
mulpd xmm1, xmm2
mulpd xmm4, xmm3
movaps xmm5, xmm1
unpckhpd xmm1, xmm4
movups xmmword [esi + 0x6f7250], xmm1
movdqu xmm1, xmmword [ebp - 0x108]
paddd xmm1, xmmword [0x68e660]
unpcklpd xmm5, xmm4
movups xmmword [esi + 0x6f7240], xmm5
add esi, 0x20
movdqu xmmword [ebp - 0x108], xmm1
cmp edi, dword [ebp - 0x134]
jb 0x564d4a
movsd xmm5, qword [ebp - 0x70]
movsd xmm1, qword [ebp - 0xd8]
mov eax, dword [ebp - 0x134]
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x138]
mov edx, eax
shl edx, 4
cmp eax, esi
jae 0x564ef0
movsd qword [ebp - 0x70], xmm5
movsd qword [ebp - 0xd8], xmm1
mov dword [ebp - 0x18], esi
mov esi, edx
mov dword [ebp - 0x138], edi
mov edi, eax
inc edi
pxor xmm0, xmm0
cvtsi2sd xmm0, edi
subsd xmm0, qword [0x68e6b8]
mulsd xmm0, qword [ebp - 0x130]
addsd xmm0, qword [0x68e6b8]
mulsd xmm0, qword [0x68e748]
call fcn.0061fc30
mulsd xmm1, qword [ebp - 0xf8]
mulsd xmm0, qword [ebp - 0xd8]
unpcklpd xmm1, xmm0
movups xmmword [esi + 0x6f7240], xmm1
add esi, 0x10
cmp edi, dword [ebp - 0x18]
jb 0x564e91
movsd xmm5, qword [ebp - 0x70]
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x138]
mov eax, dword [ebx + 0x20]
mov edx, dword [ebx + 0x24]
pxor xmm0, xmm0
pxor xmm1, xmm1
pxor xmm2, xmm2
movups xmmword [eax], xmm0
movups xmmword [eax + 0x10], xmm0
movups xmmword [eax + 0x20], xmm0
movups xmmword [eax + 0x30], xmm0
movups xmmword [eax + 0x40], xmm0
movups xmmword [edx], xmm0
movups xmmword [edx + 0x10], xmm0
movups xmmword [edx + 0x20], xmm0
movups xmmword [edx + 0x30], xmm0
movups xmmword [edx + 0x40], xmm0
movsd qword [eax + 0x50], xmm1
movsd qword [edx + 0x50], xmm2
cmp edi, 2
jle 0x565f33
cmp edi, 3
jne 0x5654e0
mov eax, dword [ebp - 0xec]
mov eax, dword [eax]
and eax, reloc.WS2_32.dll_accept
jge 0x564f5a
sub eax, 1
or eax, 0xfffffffe
inc eax
test eax, eax
je 0x5650d8
push 0x26
push 0x68ec50
mov eax, 0x68a5d4
push eax
push eax
push 0x76e2e8
push 0x76e2e0
movsd qword [ebp - 0x70], xmm5
call fcn.0053e690
movsd xmm5, qword [ebp - 0x70]
add esp, 0x18
pxor xmm0, xmm0
mov dword [ebp - 0xf0], esp
lea eax, [ebp - 0x138]
push dword [ebp - 0xec]
push 0x48
movq xmm1, qword [0x68e7f8]
push eax
mov dword [ebp - 0xa0], 0x68ec78
movq qword [ebp - 0x98], xmm1
movsd qword [ebp - 0x70], xmm5
call fcn.004e4440
movsd xmm5, qword [ebp - 0x70]
add esp, 0xc
pxor xmm0, xmm0
mov edx, 0x48
lea eax, [ebp - 0x138]
push edx
push eax
push edx
movsd qword [ebp - 0x70], xmm5
lea ecx, [ebp - 0xe8]
push ecx
call fcn.005c0890
movsd xmm5, qword [ebp - 0x70]
mov edi, eax
pxor xmm0, xmm0
add esp, 0x10
mov eax, edi
movd xmm2, edi
cdq
add edi, 0x25
lea ecx, [ebp - 0xe8]
mov eax, edi
mov dword [ecx + 0x58], ecx
movd xmm1, edx
punpckldq xmm2, xmm1
movq qword [ecx + 0x60], xmm2
add eax, 0x3f
and eax, 0xffffffc0
call fcn.0063fc60
mov eax, esp
add esp, 0xffffffe8
lea ecx, [ebp - 0xa0]
movq xmm1, qword [0x68e7c8]
movd xmm3, edi
mov dword [ecx - 0x4c], eax
mov dword [esp], ecx
movq qword [esp + 4], xmm1
mov dword [esp + 0xc], eax
mov eax, edi
cdq
movd xmm2, edx
punpckldq xmm3, xmm2
movq qword [esp + 0x10], xmm3
movsd qword [ebp - 0x70], xmm5
call fcn.005b42d0
movsd xmm5, qword [ebp - 0x70]
add esp, 0x18
pxor xmm0, xmm0
push edi
push dword [ebp - 0xec]
push 0x68a5d8
push 0x68a5d4
push 0x76e2e8
push 0x76e2e0
movsd qword [ebp - 0x70], xmm5
call fcn.0053e690
movsd xmm5, qword [ebp - 0x70]
add esp, 0x18
pxor xmm0, xmm0
mov eax, dword [ebp - 0xf0]
mov esp, eax
push 0xc
push 0x68a5dc
push str.CHLPFN
movsd qword [ebp - 0x70], xmm5
call fcn.00471080
movsd xmm5, qword [ebp - 0x70]
add esp, 0xc
pxor xmm0, xmm0
mov eax, dword [ebx + 0x14]
mov edx, dword [ebp - 0x7c]
movsd xmm2, qword [eax]
movaps xmm1, xmm2
divsd xmm1, qword [edx]
test esi, esi
jle 0x56514b
mov eax, edx
xor edx, edx
movsd xmm3, qword [eax]
xor eax, eax
nop word [eax + eax]
movaps xmm4, xmm5
movaps xmm6, xmm0
mulsd xmm4, xmm1
inc edx
movsd xmm6, xmm4
movaps xmm4, xmm3
mulsd xmm4, xmm2
mulsd xmm4, xmm5
movups xmm7, xmmword [eax + 0x6f7240]
movups xmmword [eax + 0x6f72e0], xmm6
movaps xmm6, xmm0
xorps xmm7, xmmword [0x68a620]
movsd xmm6, xmm4
movups xmmword [eax + 0x6f7380], xmm7
movups xmmword [eax + 0x6f7420], xmm6
add eax, 0x10
cmp edx, esi
jb 0x565100
movups xmm1, xmmword [0x6f7420]
movups xmm2, xmmword [0x6f7380]
movups xmmword [0x708360], xmm1
movups xmmword [0x708370], xmm2
movups xmm3, xmmword [0x6f72e0]
movups xmmword [0x708390], xmm0
movups xmmword [0x7083a0], xmm0
movups xmmword [0x7083b0], xmm0
movups xmmword [0x7083c0], xmm0
movups xmmword [0x7083d0], xmm0
movups xmmword [0x7083e0], xmm0
movups xmmword [0x7083f0], xmm0
movups xmmword [0x708400], xmm0
movups xmmword [0x708380], xmm3
cmp esi, 2
jl 0x565373
mov dword [ebp - 0xf0], 0
lea eax, [esi - 1]
mov dword [ebp - 0xec], eax
mov eax, esi
shl eax, 5
lea ecx, [esi + esi + 1]
mov edi, ecx
lea edx, [esi + esi]
mov dword [ebp - 0x80], edx
lea edx, [esi + esi - 1]
add eax, 0x10
mov dword [ebp - 0x18], esi
shr edi, 1
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x6c], ecx
mov esi, dword [ebp - 0xf0]
cmp dword [ebp - 0x70], 0
pxor xmm0, xmm0
movups xmmword [0x708420], xmm0
movups xmmword [0x708430], xmm0
movups xmmword [0x708440], xmm0
movups xmmword [0x708450], xmm0
movups xmmword [0x708460], xmm0
movups xmmword [0x708470], xmm0
movups xmmword [0x708480], xmm0
movups xmmword [0x708490], xmm0
movups xmmword [0x7084a0], xmm0
movups xmmword [0x7084b0], xmm0
movups xmmword [0x7084c0], xmm0
jle 0x56533e
mov ecx, esi
xor edx, edx
shl ecx, 4
pxor xmm3, xmm3
movaps xmm4, xmm3
xor eax, eax
movups xmm1, xmmword [ecx + 0x6f72f0]
movups xmm7, xmmword [ecx + 0x6f7430]
movaps xmm0, xmm1
movups xmm6, xmmword [ecx + 0x6f7390]
movaps xmm5, xmm7
xorps xmm0, xmmword [0x68a660]
movaps xmm2, xmm6
xorps xmm5, xmmword [0x68a660]
xorps xmm2, xmmword [0x68a660]
shufpd xmm0, xmm0, 1
shufpd xmm5, xmm5, 1
shufpd xmm2, xmm2, 1
movups xmmword [ebp - 0x68], xmm0
movups xmmword [ebp - 0x58], xmm1
movups xmmword [ebp - 0x38], xmm6
movups xmmword [ebp - 0x48], xmm7
mov ecx, dword [ebp - 0x70]
nop dword [eax]
nop dword [eax]
movups xmm0, xmmword [eax + 0x708360]
movaps xmm7, xmm5
movsd xmm1, qword [eax + 0x708368]
inc edx
unpcklpd xmm0, xmm0
unpcklpd xmm1, xmm1
movups xmm6, xmmword [ebp - 0x48]
mulpd xmm6, xmm0
mulpd xmm7, xmm1
addpd xmm7, xmm6
addpd xmm4, xmm7
movups xmm6, xmmword [ebp - 0x38]
movups xmmword [eax + 0x708420], xmm4
movaps xmm4, xmm2
mulpd xmm6, xmm0
mulpd xmm4, xmm1
mulpd xmm0, xmmword [ebp - 0x58]
mulpd xmm1, xmmword [ebp - 0x68]
addpd xmm4, xmm6
addpd xmm1, xmm0
addpd xmm4, xmm3
movaps xmm3, xmm1
addpd xmm3, xmmword [eax + 0x708440]
add eax, 0x10
cmp edx, ecx
jb 0x5652c0
shl edx, 4
movups xmmword [edx + 0x708430], xmm3
movups xmmword [edx + 0x708420], xmm4
cmp dword [ebp - 0x80], 0
js 0x565363
cmp dword [ebp - 0x6c], 6
jle 0x566868
push dword [ebp - 0x7c]
push 0x708420
push 0x708360
call fcn.0062a530
add esp, 0xc
inc esi
cmp esi, dword [ebp - 0xec]
jb 0x5651f5
mov esi, dword [ebp - 0x18]
mov edx, dword [ebx + 0x20]
and edx, 0xf
je 0x565398
test dl, 7
jne 0x566857
mov eax, dword [ebx + 0x20]
mov edx, 1
movsd xmm0, qword [0x708360]
movsd qword [eax], xmm0
mov eax, edx
neg eax
inc eax
and eax, 1
neg eax
mov edi, dword [ebx + 0x20]
add eax, 0xb
mov ecx, edx
shl ecx, 4
movsd xmm0, qword [ecx + 0x708360]
movhpd xmm0, qword [ecx + 0x708370]
movups xmmword [edi + edx*8], xmm0
add edx, 2
cmp edx, eax
jb 0x5653a8
cmp eax, 0xb
jae 0x5653e8
mov ecx, dword [ebx + 0x20]
mov edx, eax
shl edx, 4
movsd xmm0, qword [edx + 0x708360]
movsd qword [ecx + eax*8], xmm0
inc eax
cmp eax, 0xb
jb 0x5653d0
test esi, esi
jle 0x5654c3
mov eax, esi
shr eax, 1
movups xmm0, xmmword [0x68e7e8]
test eax, eax
jbe 0x56685e
xor edx, edx
nop dword [eax]
nop dword [eax]
mov ecx, edx
movaps xmm1, xmm0
shl ecx, 5
inc edx
xorps xmm1, xmmword [0x68a660]
shufpd xmm1, xmm1, 1
movups xmm2, xmmword [ecx + 0x6f7240]
movsd xmm3, qword [ecx + 0x6f7248]
unpcklpd xmm2, xmm2
unpcklpd xmm3, xmm3
mulpd xmm2, xmm0
mulpd xmm3, xmm1
addpd xmm3, xmm2
movaps xmm4, xmm3
movups xmm5, xmmword [ecx + 0x6f7250]
movsd xmm0, qword [ecx + 0x6f7258]
xorps xmm4, xmmword [0x68a660]
shufpd xmm4, xmm4, 1
unpcklpd xmm5, xmm5
unpcklpd xmm0, xmm0
mulpd xmm5, xmm3
mulpd xmm0, xmm4
addpd xmm0, xmm5
cmp edx, eax
jb 0x565410
lea edx, [edx + edx + 1]
lea eax, [edx - 1]
cmp eax, esi
jae 0x5654ca
shl edx, 4
movaps xmm1, xmm0
xorps xmm1, xmmword [0x68a660]
shufpd xmm1, xmm1, 1
movsd xmm2, qword [edx + 0x6f7238]
movups xmm3, xmmword [edx + 0x6f7230]
unpcklpd xmm2, xmm2
unpcklpd xmm3, xmm3
mulpd xmm2, xmm1
mulpd xmm3, xmm0
movaps xmm0, xmm2
addpd xmm0, xmm3
jmp 0x5654ca
movups xmm0, xmmword [0x68e7e8]
movsd xmm1, qword [ebp - 0x78]
mulsd xmm1, xmm0
mov eax, dword [ebx + 0x24]
movsd qword [eax + esi*8], xmm1
jmp 0x56684d
cmp edi, 4
jne 0x56684d
mov eax, dword [ebp - 0xec]
mov edi, dword [eax]
mov eax, edi
and eax, reloc.WS2_32.dll_accept
jge 0x565501
sub eax, 1
or eax, 0xfffffffe
inc eax
test eax, eax
je 0x565666
push 0x26
push str.Bandpass_or_Bandstop_filer_order_must
mov eax, 0x68a5d4
push eax
push eax
push 0x76e2e8
push 0x76e2e0
movsd qword [ebp - 0x70], xmm5
call fcn.0053e690
movsd xmm5, qword [ebp - 0x70]
add esp, 0x18
pxor xmm0, xmm0
mov dword [ebp - 0xf0], esp
lea eax, [ebp - 0x138]
push dword [ebp - 0xec]
push 0x48
movq xmm1, qword [0x68e7f8]
push eax
mov dword [ebp - 0xa0], str.be_an_even_number__Change_order_from
movq qword [ebp - 0x98], xmm1
movsd qword [ebp - 0x70], xmm5
call fcn.004e4440
movsd xmm5, qword [ebp - 0x70]
add esp, 0xc
pxor xmm0, xmm0
mov edx, 0x48
lea eax, [ebp - 0x138]
push edx
push eax
push edx
movsd qword [ebp - 0x70], xmm5
lea ecx, [ebp - 0xe8]
push ecx
call fcn.005c0890
movsd xmm5, qword [ebp - 0x70]
mov ecx, eax
pxor xmm0, xmm0
add esp, 0x10
mov eax, ecx
lea edx, [ebp - 0xe8]
mov dword [edx + 0x58], edx
movd xmm2, ecx
cdq
add ecx, 0x25
mov eax, ecx
movd xmm1, edx
punpckldq xmm2, xmm1
movq qword [ebp - 0x88], xmm2
add eax, 0x3f
and eax, 0xffffffc0
call fcn.0063fc60
mov eax, esp
add esp, 0xffffffe8
lea edx, [ebp - 0xa0]
movq xmm1, qword [0x68e7c8]
movd xmm3, ecx
mov dword [edx - 0x4c], eax
mov dword [esp], edx
movq qword [esp + 4], xmm1
mov dword [esp + 0xc], eax
mov eax, ecx
cdq
movd xmm2, edx
punpckldq xmm3, xmm2
movq qword [esp + 0x10], xmm3
mov dword [ebp - 0x80], ecx
movsd qword [ebp - 0x70], xmm5
call fcn.005b42d0
movsd xmm5, qword [ebp - 0x70]
add esp, 0x18
mov ecx, dword [ebp - 0x80]
pxor xmm0, xmm0
push ecx
push dword [ebp - 0xec]
push 0x68a5d8
push 0x68a5d4
push 0x76e2e8
push 0x76e2e0
movsd qword [ebp - 0x70], xmm5
call fcn.0053e690
movsd xmm5, qword [ebp - 0x70]
add esp, 0x18
pxor xmm0, xmm0
mov eax, dword [ebp - 0xf0]
mov esp, eax
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebx + 0x14]
movsd xmm4, qword [eax]
movaps xmm3, xmm4
divsd xmm3, qword [edx]
test esi, esi
jle 0x56570f
xor edx, edx
movups xmm2, xmmword [0x68a620]
xor eax, eax
nop word [eax + eax]
movaps xmm6, xmm5
movaps xmm7, xmm2
mulsd xmm6, xmm3
inc edx
movups xmm0, xmmword [eax + 0x6f7240]
pxor xmm7, xmm0
movups xmmword [eax + 0x6f72e0], xmm7
pxor xmm7, xmm7
movsd xmm7, xmm6
movups xmmword [eax + 0x6f7380], xmm7
movaps xmm7, xmm4
mulsd xmm7, xmm4
pxor xmm6, xmm6
movsd xmm6, xmm7
xorps xmm6, xmmword [0x68a620]
movaps xmm7, xmm6
movsd xmm1, qword [eax + 0x6f7248]
xorps xmm7, xmmword [0x68a660]
shufpd xmm7, xmm7, 1
unpcklpd xmm0, xmm0
unpcklpd xmm1, xmm1
mulpd xmm0, xmm6
mulpd xmm1, xmm7
addpd xmm1, xmm0
movups xmmword [eax + 0x6f7420], xmm1
add eax, 0x10
cmp edx, esi
jb 0x565690
pxor xmm0, xmm0
movups xmm1, xmmword [0x6f7420]
movups xmm2, xmmword [0x6f7380]
movups xmmword [0x708360], xmm1
movups xmmword [0x708370], xmm2
movups xmm3, xmmword [0x6f72e0]
movups xmmword [0x708390], xmm0
movups xmmword [0x7083a0], xmm0
movups xmmword [0x7083b0], xmm0
movups xmmword [0x7083c0], xmm0
movups xmmword [0x7083d0], xmm0
movups xmmword [0x7083e0], xmm0
movups xmmword [0x7083f0], xmm0
movups xmmword [0x708400], xmm0
movups xmmword [0x708380], xmm3
cmp esi, 2
jl 0x56593a
mov dword [ebp - 0xec], 0
lea edx, [esi + esi]
mov dword [ebp - 0x70], edx
lea ecx, [esi + esi - 1]
mov dword [ebp - 0x68], ecx
lea edx, [esi + esi + 1]
mov ecx, esi
lea eax, [esi - 1]
mov dword [ebp - 0x80], eax
mov eax, edx
shl ecx, 5
shr eax, 1
add ecx, 0x10
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x18], esi
mov esi, eax
mov edi, dword [ebp - 0xec]
cmp dword [ebp - 0x68], 0
pxor xmm0, xmm0
movups xmmword [0x708420], xmm0
movups xmmword [0x708430], xmm0
movups xmmword [0x708440], xmm0
movups xmmword [0x708450], xmm0
movups xmmword [0x708460], xmm0
movups xmmword [0x708470], xmm0
movups xmmword [0x708480], xmm0
movups xmmword [0x708490], xmm0
movups xmmword [0x7084a0], xmm0
movups xmmword [0x7084b0], xmm0
movups xmmword [0x7084c0], xmm0
jle 0x5658fe
mov ecx, edi
xor edx, edx
shl ecx, 4
pxor xmm3, xmm3
movaps xmm4, xmm3
xor eax, eax
movups xmm1, xmmword [ecx + 0x6f72f0]
movups xmm7, xmmword [ecx + 0x6f7430]
movaps xmm0, xmm1
movups xmm6, xmmword [ecx + 0x6f7390]
movaps xmm5, xmm7
xorps xmm0, xmmword [0x68a660]
movaps xmm2, xmm6
xorps xmm5, xmmword [0x68a660]
xorps xmm2, xmmword [0x68a660]
shufpd xmm0, xmm0, 1
shufpd xmm5, xmm5, 1
shufpd xmm2, xmm2, 1
movups xmmword [ebp - 0x58], xmm0
movups xmmword [ebp - 0x48], xmm1
movups xmmword [ebp - 0x28], xmm6
movups xmmword [ebp - 0x38], xmm7
mov ecx, dword [ebp - 0x68]
nop
movups xmm0, xmmword [eax + 0x708360]
movaps xmm7, xmm5
movsd xmm1, qword [eax + 0x708368]
inc edx
unpcklpd xmm0, xmm0
unpcklpd xmm1, xmm1
movups xmm6, xmmword [ebp - 0x38]
mulpd xmm6, xmm0
mulpd xmm7, xmm1
addpd xmm7, xmm6
addpd xmm4, xmm7
movups xmm6, xmmword [ebp - 0x28]
movups xmmword [eax + 0x708420], xmm4
movaps xmm4, xmm2
mulpd xmm6, xmm0
mulpd xmm4, xmm1
mulpd xmm0, xmmword [ebp - 0x48]
mulpd xmm1, xmmword [ebp - 0x58]
addpd xmm4, xmm6
addpd xmm1, xmm0
addpd xmm4, xmm3
movaps xmm3, xmm1
addpd xmm3, xmmword [eax + 0x708440]
add eax, 0x10
cmp edx, ecx
jb 0x565880
shl edx, 4
movups xmmword [edx + 0x708430], xmm3
movups xmmword [edx + 0x708420], xmm4
cmp dword [ebp - 0x70], 0
js 0x565923
cmp dword [ebp - 0x64], 6
jle 0x566955
push dword [ebp - 0x6c]
push 0x708420
push 0x708360
call fcn.0062a530
add esp, 0xc
inc edi
cmp edi, dword [ebp - 0x80]
jb 0x5657be
mov edi, dword [ebp - 0xf0]
mov esi, dword [ebp - 0x18]
pxor xmm0, xmm0
mov eax, dword [ebx + 0x20]
and eax, 0xf
je 0x56595e
test al, 7
jne 0x5668c1
mov eax, dword [ebx + 0x20]
movsd xmm1, qword [0x708360]
movsd qword [eax], xmm1
mov eax, 1
mov edx, eax
neg edx
inc edx
and edx, 1
neg edx
mov dword [ebp - 0x18], esi
add edx, 0xb
mov esi, dword [ebx + 0x20]
mov ecx, eax
shl ecx, 4
movsd xmm1, qword [ecx + 0x708360]
movhpd xmm1, qword [ecx + 0x708370]
movups xmmword [esi + eax*8], xmm1
add eax, 2
cmp eax, edx
jb 0x565971
mov esi, dword [ebp - 0x18]
cmp edx, 0xb
jae 0x5659b4
mov ecx, dword [ebx + 0x20]
mov eax, edx
shl eax, 4
movsd xmm1, qword [eax + 0x708360]
movsd qword [ecx + edx*8], xmm1
inc edx
cmp edx, 0xb
jb 0x56599c
test esi, esi
jle 0x5669d4
mov eax, dword [ebp - 0x7c]
mov edx, esi
shr edx, 1
movsd xmm2, qword [eax]
test edx, edx
jbe 0x566944
xor ecx, ecx
movups xmm1, xmmword [0x68e7e8]
xor eax, eax
nop word [eax + eax]
movaps xmm3, xmm2
movaps xmm5, xmm2
mulsd xmm3, xmm2
movaps xmm4, xmm0
mulsd xmm5, xmm2
movaps xmm6, xmm0
inc ecx
movsd xmm4, xmm3
movsd xmm6, xmm5
movups xmmword [eax + 0x6f72e0], xmm1
movups xmmword [eax + 0x6f7380], xmm0
movups xmmword [eax + 0x6f7420], xmm4
movups xmmword [eax + 0x6f72f0], xmm1
movups xmmword [eax + 0x6f7390], xmm0
movups xmmword [eax + 0x6f7430], xmm6
add eax, 0x20
cmp ecx, edx
jb 0x5659e0
lea edx, [ecx + ecx + 1]
lea eax, [edx - 1]
cmp eax, esi
jae 0x565a5c
mulsd xmm2, xmm2
movaps xmm3, xmm0
shl edx, 4
movsd xmm3, xmm2
movups xmmword [edx + 0x6f72d0], xmm1
movups xmmword [edx + 0x6f7370], xmm0
movups xmmword [edx + 0x6f7410], xmm3
movups xmm2, xmmword [0x6f7420]
movups xmm3, xmmword [0x6f7380]
movups xmmword [0x708360], xmm2
movups xmmword [0x708370], xmm3
movups xmm4, xmmword [0x6f72e0]
movups xmmword [0x708390], xmm0
movups xmmword [0x7083a0], xmm0
movups xmmword [0x7083b0], xmm0
movups xmmword [0x7083c0], xmm0
movups xmmword [0x7083d0], xmm0
movups xmmword [0x7083e0], xmm0
movups xmmword [0x7083f0], xmm0
movups xmmword [0x708400], xmm0
movups xmmword [0x708380], xmm4
cmp esi, 2
jl 0x565c8d
mov dword [ebp - 0xec], 0
lea edx, [esi + esi]
mov dword [ebp - 0x7c], edx
lea ecx, [esi + esi - 1]
mov dword [ebp - 0x6c], ecx
lea edx, [esi + esi + 1]
mov ecx, esi
lea eax, [esi - 1]
mov dword [ebp - 0x80], eax
mov eax, edx
shl ecx, 5
shr eax, 1
add ecx, 0x10
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x18], esi
mov esi, eax
mov edi, dword [ebp - 0xec]
cmp dword [ebp - 0x6c], 0
pxor xmm0, xmm0
movups xmmword [0x708420], xmm0
movups xmmword [0x708430], xmm0
movups xmmword [0x708440], xmm0
movups xmmword [0x708450], xmm0
movups xmmword [0x708460], xmm0
movups xmmword [0x708470], xmm0
movups xmmword [0x708480], xmm0
movups xmmword [0x708490], xmm0
movups xmmword [0x7084a0], xmm0
movups xmmword [0x7084b0], xmm0
movups xmmword [0x7084c0], xmm0
jle 0x565c4e
mov ecx, edi
xor edx, edx
shl ecx, 4
pxor xmm3, xmm3
movaps xmm4, xmm3
xor eax, eax
movups xmm1, xmmword [ecx + 0x6f72f0]
movups xmm7, xmmword [ecx + 0x6f7430]
movaps xmm0, xmm1
movups xmm6, xmmword [ecx + 0x6f7390]
movaps xmm5, xmm7
xorps xmm0, xmmword [0x68a660]
movaps xmm2, xmm6
xorps xmm5, xmmword [0x68a660]
xorps xmm2, xmmword [0x68a660]
shufpd xmm0, xmm0, 1
shufpd xmm5, xmm5, 1
shufpd xmm2, xmm2, 1
movups xmmword [ebp - 0x58], xmm0
movups xmmword [ebp - 0x48], xmm1
movups xmmword [ebp - 0x28], xmm6
movups xmmword [ebp - 0x38], xmm7
mov ecx, dword [ebp - 0x6c]
nop dword [eax + eax]
movups xmm0, xmmword [eax + 0x708360]
movaps xmm7, xmm5
movsd xmm1, qword [eax + 0x708368]
inc edx
unpcklpd xmm0, xmm0
unpcklpd xmm1, xmm1
movups xmm6, xmmword [ebp - 0x38]
mulpd xmm6, xmm0
mulpd xmm7, xmm1
addpd xmm7, xmm6
addpd xmm4, xmm7
movups xmm6, xmmword [ebp - 0x28]
movups xmmword [eax + 0x708420], xmm4
movaps xmm4, xmm2
mulpd xmm6, xmm0
mulpd xmm4, xmm1
mulpd xmm0, xmmword [ebp - 0x48]
mulpd xmm1, xmmword [ebp - 0x58]
addpd xmm4, xmm6
addpd xmm1, xmm0
addpd xmm4, xmm3
movaps xmm3, xmm1
addpd xmm3, xmmword [eax + 0x708440]
add eax, 0x10
cmp edx, ecx
jb 0x565bd0
shl edx, 4
movups xmmword [edx + 0x708430], xmm3
movups xmmword [edx + 0x708420], xmm4
cmp dword [ebp - 0x7c], 0
js 0x565c73
cmp dword [ebp - 0x68], 6
jle 0x5668eb
push dword [ebp - 0x70]
push 0x708420
push 0x708360
call fcn.0062a530
add esp, 0xc
inc edi
cmp edi, dword [ebp - 0x80]
jb 0x565b0b
movups xmm1, xmmword [0x68e7e8]
mov edi, dword [ebp - 0xf0]
mov esi, dword [ebp - 0x18]
mov eax, dword [ebx + 0x24]
and eax, 0xf
mov edx, eax
je 0x565cb3
test al, 7
jne 0x5668c8
mov edx, dword [ebx + 0x24]
movsd xmm0, qword [0x708360]
movsd qword [edx], xmm0
mov edx, 1
mov ecx, edx
neg ecx
inc ecx
and ecx, 1
neg ecx
mov dword [ebp - 0x18], esi
add ecx, 0xb
mov dword [ebp - 0xf0], eax
mov esi, dword [ebx + 0x24]
mov eax, edx
shl eax, 4
movsd xmm0, qword [eax + 0x708360]
movhpd xmm0, qword [eax + 0x708370]
movups xmmword [esi + edx*8], xmm0
add edx, 2
cmp edx, ecx
jb 0x565ccc
mov eax, dword [ebp - 0xf0]
mov esi, dword [ebp - 0x18]
cmp ecx, 0xb
jae 0x565d1b
mov dword [ebp - 0x18], esi
mov esi, dword [ebx + 0x24]
mov edx, ecx
shl edx, 4
movsd xmm0, qword [edx + 0x708360]
movsd qword [esi + ecx*8], xmm0
inc ecx
cmp ecx, 0xb
jb 0x565d00
mov esi, dword [ebp - 0x18]
test esi, esi
jle 0x565df4
mov edx, esi
shr edx, 1
test edx, edx
jbe 0x5668cf
mov dword [ebp - 0x18], esi
xor ecx, ecx
nop dword [eax + eax]
nop dword [eax]
mov esi, ecx
movaps xmm0, xmm1
shl esi, 5
inc ecx
xorps xmm0, xmmword [0x68a660]
shufpd xmm0, xmm0, 1
movups xmm2, xmmword [esi + 0x6f7240]
movsd xmm3, qword [esi + 0x6f7248]
unpcklpd xmm2, xmm2
unpcklpd xmm3, xmm3
mulpd xmm2, xmm1
mulpd xmm3, xmm0
addpd xmm3, xmm2
movaps xmm4, xmm3
movups xmm5, xmmword [esi + 0x6f7250]
movsd xmm1, qword [esi + 0x6f7258]
xorps xmm4, xmmword [0x68a660]
shufpd xmm4, xmm4, 1
unpcklpd xmm5, xmm5
unpcklpd xmm1, xmm1
mulpd xmm5, xmm3
mulpd xmm1, xmm4
addpd xmm1, xmm5
cmp ecx, edx
jb 0x565d40
mov esi, dword [ebp - 0x18]
lea ecx, [ecx + ecx + 1]
lea edx, [ecx - 1]
cmp edx, esi
jae 0x565df4
shl ecx, 4
movaps xmm0, xmm1
xorps xmm0, xmmword [0x68a660]
shufpd xmm0, xmm0, 1
movsd xmm2, qword [ecx + 0x6f7238]
movups xmm3, xmmword [ecx + 0x6f7230]
unpcklpd xmm2, xmm2
unpcklpd xmm3, xmm3
mulpd xmm2, xmm0
mulpd xmm3, xmm1
movaps xmm1, xmm2
addpd xmm1, xmm3
inc edi
test edi, edi
jle 0x56684d
cmp edi, 8
jl 0x5668d9
test eax, eax
je 0x565e17
test al, 7
jne 0x5668d9
mov eax, 1
lea edx, [eax + 8]
cmp edi, edx
jl 0x5668d9
mov ecx, edi
sub ecx, eax
and ecx, 7
neg ecx
add ecx, edi
test eax, eax
jbe 0x565e51
movsd xmm2, qword [ebp - 0x78]
xor edx, edx
mov esi, dword [ebx + 0x24]
movaps xmm0, xmm1
mulsd xmm0, xmm2
mulsd xmm0, qword [esi + edx*8]
movsd qword [esi + edx*8], xmm0
inc edx
cmp edx, eax
jb 0x565e3b
movsd xmm2, qword [ebp - 0x78]
mov edx, dword [ebx + 0x24]
nop dword [eax]
movaps xmm0, xmm1
movaps xmm3, xmm2
movaps xmm4, xmm2
movaps xmm5, xmm2
mulsd xmm3, xmm0
mulsd xmm4, xmm0
mulsd xmm5, xmm0
mulsd xmm0, xmm2
unpcklpd xmm3, xmm3
unpcklpd xmm4, xmm4
unpcklpd xmm5, xmm5
unpcklpd xmm0, xmm0
mulpd xmm3, xmmword [edx + eax*8]
mulpd xmm4, xmmword [edx + eax*8 + 0x10]
mulpd xmm5, xmmword [edx + eax*8 + 0x20]
mulpd xmm0, xmmword [edx + eax*8 + 0x30]
movups xmmword [edx + eax*8], xmm3
movups xmmword [edx + eax*8 + 0x10], xmm4
movups xmmword [edx + eax*8 + 0x20], xmm5
movups xmmword [edx + eax*8 + 0x30], xmm0
add eax, 8
cmp eax, ecx
jb 0x565e60
lea eax, [ecx + 1]
cmp eax, edi
ja 0x56684d
sub edi, ecx
cmp edi, 2
jl 0x5668e4
mov esi, dword [ebx + 0x24]
mov edx, edi
movsd xmm2, qword [ebp - 0x78]
and edx, 0xfffffffe
xor eax, eax
lea esi, [esi + ecx*8]
movaps xmm0, xmm1
add eax, 2
mulsd xmm0, xmm2
unpcklpd xmm0, xmm0
mulpd xmm0, xmmword [esi]
movups xmmword [esi], xmm0
add esi, 0x10
cmp eax, edx
jb 0x565ee5
cmp edx, edi
jae 0x56684d
mov eax, dword [ebx + 0x24]
movsd xmm2, qword [ebp - 0x78]
lea ecx, [eax + ecx*8]
lea eax, [ecx + edx*8]
movaps xmm0, xmm1
inc edx
mulsd xmm0, xmm2
mulsd xmm0, qword [eax]
movsd qword [eax], xmm0
add eax, 8
cmp edx, edi
jb 0x565f17
jmp 0x56684d
mov eax, esi
movups xmm1, xmmword [0x6f7240]
shl eax, 4
movups xmmword [0x7084e0], xmm0
movups xmmword [0x7084f0], xmm0
movups xmmword [0x708500], xmm0
movups xmmword [0x708510], xmm0
movups xmmword [0x708520], xmm0
movups xmmword [0x708530], xmm0
movups xmmword [0x708540], xmm0
movups xmmword [0x708550], xmm0
movups xmmword [0x708560], xmm0
movups xmmword [0x708570], xmm0
movups xmmword [0x708580], xmm0
movups xmm0, xmmword [0x68e7e8]
xorps xmm1, xmmword [0x68a620]
movups xmmword [eax + 0x7084e0], xmm0
movups xmmword [eax + 0x7084d0], xmm1
cmp esi, 2
jl 0x5661c4
xor eax, eax
lea ecx, [esi - 1]
mov dword [ebp - 0x120], eax
xor edx, edx
mov dword [ebp - 0x128], ecx
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x138], edi
mov eax, dword [ebp - 0x18]
mov ecx, edx
add ecx, 0xfffffffe
lea eax, [edx + eax - 1]
jns 0x5661a1
mov esi, dword [ebp - 0x18]
sub esi, eax
inc esi
mov dword [ebp - 0x124], esi
shr esi, 2
test esi, esi
jbe 0x5669c3
mov edi, dword [ebp - 0x120]
xor ecx, ecx
shl edi, 4
mov dword [ebp - 0x12c], eax
shl eax, 4
mov dword [ebp - 0x130], eax
movups xmm3, xmmword [edi + 0x6f7250]
movaps xmm4, xmm3
xorps xmm4, xmmword [0x68a660]
mov dword [ebp - 0x134], edx
shufpd xmm4, xmm4, 1
mov eax, dword [ebp - 0x12c]
mov edx, ecx
mov edi, dword [ebp - 0x130]
movups xmm2, xmmword [edx + edi + 0x7084e0]
inc ecx
movsd xmm7, qword [edx + edi + 0x7084e8]
movaps xmm6, xmm2
unpcklpd xmm6, xmm2
unpcklpd xmm7, xmm7
mulpd xmm6, xmm3
mulpd xmm7, xmm4
addpd xmm7, xmm6
movups xmm0, xmmword [edx + edi + 0x7084d0]
subpd xmm0, xmm7
movups xmm1, xmmword [edx + edi + 0x7084f0]
movups xmmword [edx + edi + 0x7084d0], xmm0
movaps xmm6, xmm1
movsd xmm0, qword [edx + edi + 0x7084f8]
unpcklpd xmm6, xmm1
unpcklpd xmm0, xmm0
mulpd xmm6, xmm3
mulpd xmm0, xmm4
addpd xmm0, xmm6
subpd xmm2, xmm0
movups xmm0, xmmword [edx + edi + 0x708500]
movsd xmm6, qword [edx + edi + 0x708508]
movups xmmword [edx + edi + 0x7084e0], xmm2
movaps xmm2, xmm0
unpcklpd xmm2, xmm0
unpcklpd xmm6, xmm6
mulpd xmm2, xmm3
mulpd xmm6, xmm4
addpd xmm6, xmm2
subpd xmm1, xmm6
movups xmmword [edx + edi + 0x7084f0], xmm1
movups xmm1, xmmword [edx + edi + 0x708510]
movsd xmm2, qword [edx + edi + 0x708518]
unpcklpd xmm1, xmm1
unpcklpd xmm2, xmm2
mulpd xmm1, xmm3
mulpd xmm2, xmm4
addpd xmm2, xmm1
subpd xmm0, xmm2
movups xmmword [edx + edi + 0x708500], xmm0
add edx, 0x40
cmp ecx, esi
jb 0x56603a
mov edx, dword [ebp - 0x134]
lea esi, [ecx*4 + 1]
dec esi
mov ecx, esi
shl ecx, 4
cmp esi, dword [ebp - 0x124]
jae 0x5661a1
mov edi, dword [ebp - 0x120]
shl edi, 4
shl eax, 4
movups xmm1, xmmword [edi + 0x6f7250]
movaps xmm0, xmm1
xorps xmm0, xmmword [0x68a660]
shufpd xmm0, xmm0, 1
mov edi, dword [ebp - 0x124]
nop
movups xmm2, xmmword [ecx + eax + 0x7084e0]
inc esi
movsd xmm3, qword [ecx + eax + 0x7084e8]
unpcklpd xmm2, xmm2
unpcklpd xmm3, xmm3
mulpd xmm2, xmm1
mulpd xmm3, xmm0
addpd xmm3, xmm2
movups xmm4, xmmword [ecx + eax + 0x7084d0]
subpd xmm4, xmm3
movups xmmword [ecx + eax + 0x7084d0], xmm4
add ecx, 0x10
cmp esi, edi
jb 0x566160
mov eax, dword [ebp - 0x120]
dec edx
inc eax
mov dword [ebp - 0x120], eax
cmp eax, dword [ebp - 0x128]
jb 0x565fcd
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x138]
mov eax, dword [ebx + 0x20]
and eax, 0xf
je 0x5661e8
test al, 7
jne 0x5669ae
mov eax, dword [ebx + 0x20]
movsd xmm0, qword [0x7084e0]
movsd qword [eax], xmm0
mov eax, 1
mov edx, eax
neg edx
inc edx
and edx, 1
neg edx
mov dword [ebp - 0x138], edi
add edx, 0xb
mov edi, dword [ebx + 0x20]
mov ecx, eax
shl ecx, 4
movsd xmm0, qword [ecx + 0x7084e0]
movhpd xmm0, qword [ecx + 0x7084f0]
movups xmmword [edi + eax*8], xmm0
add eax, 2
cmp eax, edx
jb 0x5661fe
mov edi, dword [ebp - 0x138]
cmp edx, 0xb
jae 0x566244
mov ecx, dword [ebx + 0x20]
mov eax, edx
shl eax, 4
movsd xmm0, qword [eax + 0x7084e0]
movsd qword [ecx + edx*8], xmm0
inc edx
cmp edx, 0xb
jb 0x56622c
mov eax, dword [ebx + 0x20]
movsd xmm0, qword [ebp - 0x78]
mov ecx, dword [ebp - 0x7c]
mulsd xmm0, qword [eax]
mulsd xmm5, qword [ecx]
mov edx, dword [ebx + 0x24]
movsd qword [edx], xmm0
cmp edi, 1
jne 0x56652c
movsd xmm1, qword [0x68e6e0]
lea edx, [esi + 1]
divsd xmm1, xmm5
cmp edx, 2
jl 0x56684d
xor ecx, ecx
mov dword [ebp - 0x128], ecx
mov dword [ebp - 0x124], edx
mov dword [ebp - 0x18], esi
lea eax, [ecx + 2]
cmp eax, dword [ebp - 0x124]
jg 0x566517
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x128]
add eax, edx
cmp eax, 8
jl 0x5669b5
mov edx, dword [ebx + 0x20]
lea esi, [edx + ecx*8]
mov dword [ebp - 0x12c], esi
lea edi, [esi + 8]
and edi, 0xf
mov dword [ebp - 0x11c], edi
je 0x5662e4
test byte [ebp - 0x11c], 7
jne 0x5669b5
mov dword [ebp - 0x11c], 1
mov edx, dword [ebp - 0x11c]
lea esi, [edx + 8]
cmp eax, esi
jl 0x5669b5
mov edx, eax
mov esi, dword [ebp - 0x11c]
sub edx, esi
mov edi, dword [ebx + 0x24]
and edx, 7
neg edx
add edx, eax
lea edi, [edi + ecx*8]
mov dword [ebp - 0x120], edi
test esi, esi
jbe 0x566369
mov dword [ebp - 0x138], edx
xor esi, esi
mov dword [ebp - 0x134], ecx
mov edx, edi
mov ecx, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x12c]
movsd xmm0, qword [edx + esi*8 + 8]
movsd xmm2, qword [edi + esi*8 + 8]
mulsd xmm0, xmm1
mulsd xmm2, xmm1
movsd qword [edx + esi*8 + 8], xmm0
movsd qword [edi + esi*8 + 8], xmm2
inc esi
cmp esi, ecx
jb 0x566332
mov dword [ebp - 0x11c], ecx
mov edx, dword [ebp - 0x138]
mov ecx, dword [ebp - 0x134]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebx + 0x24]
add esi, ecx
lea edi, [edi + esi*8 + 8]
test edi, 0xf
je 0x56642c
movaps xmm0, xmm1
mov dword [ebp - 0x134], ecx
unpcklpd xmm0, xmm0
mov ecx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x12c]
nop dword [eax + eax]
nop dword [eax + eax]
movups xmm2, xmmword [ecx + esi*8 + 8]
movups xmm4, xmmword [ecx + esi*8 + 0x18]
mulpd xmm2, xmm0
movups xmm6, xmmword [ecx + esi*8 + 0x28]
movups xmmword [ecx + esi*8 + 8], xmm2
movups xmm2, xmmword [ecx + esi*8 + 0x38]
mulpd xmm4, xmm0
mulpd xmm6, xmm0
movups xmmword [ecx + esi*8 + 0x18], xmm4
movups xmmword [ecx + esi*8 + 0x28], xmm6
mulpd xmm2, xmm0
movaps xmm3, xmm0
movaps xmm5, xmm0
mulpd xmm3, xmmword [edi + esi*8 + 8]
movups xmmword [ecx + esi*8 + 0x38], xmm2
mulpd xmm5, xmmword [edi + esi*8 + 0x18]
movups xmmword [edi + esi*8 + 8], xmm3
movaps xmm7, xmm0
movaps xmm3, xmm0
mulpd xmm7, xmmword [edi + esi*8 + 0x28]
mulpd xmm3, xmmword [edi + esi*8 + 0x38]
movups xmmword [edi + esi*8 + 0x18], xmm5
movups xmmword [edi + esi*8 + 0x28], xmm7
movups xmmword [edi + esi*8 + 0x38], xmm3
add esi, 8
cmp esi, edx
jb 0x5663b0
jmp 0x5664c7
movaps xmm0, xmm1
mov dword [ebp - 0x134], ecx
unpcklpd xmm0, xmm0
mov ecx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x12c]
nop dword [eax + eax]
movaps xmm2, xmm0
movaps xmm3, xmm0
mulpd xmm2, xmmword [ecx + esi*8 + 8]
mulpd xmm3, xmmword [edi + esi*8 + 8]
movups xmmword [ecx + esi*8 + 8], xmm2
movaps xmm4, xmm0
movups xmmword [edi + esi*8 + 8], xmm3
movaps xmm5, xmm0
movaps xmm6, xmm0
movaps xmm7, xmm0
movaps xmm2, xmm0
movaps xmm3, xmm0
mulpd xmm4, xmmword [ecx + esi*8 + 0x18]
mulpd xmm6, xmmword [ecx + esi*8 + 0x28]
mulpd xmm2, xmmword [ecx + esi*8 + 0x38]
mulpd xmm5, xmmword [edi + esi*8 + 0x18]
mulpd xmm7, xmmword [edi + esi*8 + 0x28]
mulpd xmm3, xmmword [edi + esi*8 + 0x38]
movups xmmword [ecx + esi*8 + 0x18], xmm4
movups xmmword [edi + esi*8 + 0x18], xmm5
movups xmmword [ecx + esi*8 + 0x28], xmm6
movups xmmword [edi + esi*8 + 0x28], xmm7
movups xmmword [ecx + esi*8 + 0x38], xmm2
movups xmmword [edi + esi*8 + 0x38], xmm3
add esi, 8
cmp esi, edx
jb 0x566450
mov ecx, dword [ebp - 0x134]
lea esi, [edx + 1]
cmp esi, eax
ja 0x566517
sub eax, edx
add edx, ecx
mov edi, dword [ebx + 0x20]
xor esi, esi
lea edi, [edi + edx*8]
mov dword [ebp - 0x130], edi
mov edi, dword [ebx + 0x24]
lea edx, [edi + edx*8]
mov edi, dword [ebp - 0x130]
movsd xmm0, qword [edx + esi*8 + 8]
movsd xmm2, qword [edi + esi*8 + 8]
mulsd xmm0, xmm1
mulsd xmm2, xmm1
movsd qword [edx + esi*8 + 8], xmm0
movsd qword [edi + esi*8 + 8], xmm2
inc esi
cmp esi, eax
jb 0x5664f2
inc ecx
dec dword [ebp - 0x128]
cmp ecx, dword [ebp - 0x18]
jb 0x566290
jmp 0x56684d
cmp edi, 2
jne 0x56684d
lea edx, [esi + 1]
cmp edx, 2
jl 0x5667f0
xor ecx, ecx
mov dword [ebp - 0x128], ecx
mov dword [ebp - 0x124], edx
mov dword [ebp - 0x18], esi
lea eax, [ecx + 2]
cmp eax, dword [ebp - 0x124]
jg 0x5667d7
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x128]
add eax, edx
cmp eax, 8
jl 0x5669bc
mov edx, dword [ebx + 0x20]
lea esi, [edx + ecx*8]
mov dword [ebp - 0x130], esi
lea edi, [esi + 8]
and edi, 0xf
mov dword [ebp - 0x11c], edi
je 0x5665a6
test byte [ebp - 0x11c], 7
jne 0x5669bc
mov dword [ebp - 0x11c], 1
mov edx, dword [ebp - 0x11c]
lea esi, [edx + 8]
cmp eax, esi
jl 0x5669bc
mov edx, eax
mov esi, dword [ebp - 0x11c]
sub edx, esi
mov edi, dword [ebx + 0x24]
and edx, 7
neg edx
add edx, eax
lea edi, [edi + ecx*8]
mov dword [ebp - 0x120], edi
test esi, esi
jbe 0x56662b
mov dword [ebp - 0x138], edx
xor esi, esi
mov dword [ebp - 0x134], ecx
mov edx, edi
mov ecx, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x130]
movsd xmm0, qword [edx + esi*8 + 8]
movsd xmm1, qword [edi + esi*8 + 8]
mulsd xmm0, xmm5
mulsd xmm1, xmm5
movsd qword [edx + esi*8 + 8], xmm0
movsd qword [edi + esi*8 + 8], xmm1
inc esi
cmp esi, ecx
jb 0x5665f4
mov dword [ebp - 0x11c], ecx
mov edx, dword [ebp - 0x138]
mov ecx, dword [ebp - 0x134]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebx + 0x24]
add esi, ecx
lea edi, [edi + esi*8 + 8]
test edi, 0xf
je 0x5666ec
movaps xmm0, xmm5
mov dword [ebp - 0x134], ecx
unpcklpd xmm0, xmm0
mov ecx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x130]
nop dword [eax]
nop dword [eax]
movups xmm1, xmmword [ecx + esi*8 + 8]
movups xmm3, xmmword [ecx + esi*8 + 0x18]
mulpd xmm1, xmm0
movups xmm6, xmmword [ecx + esi*8 + 0x28]
movups xmmword [ecx + esi*8 + 8], xmm1
movups xmm1, xmmword [ecx + esi*8 + 0x38]
mulpd xmm3, xmm0
mulpd xmm6, xmm0
movups xmmword [ecx + esi*8 + 0x18], xmm3
movups xmmword [ecx + esi*8 + 0x28], xmm6
mulpd xmm1, xmm0
movaps xmm2, xmm0
movaps xmm4, xmm0
mulpd xmm2, xmmword [edi + esi*8 + 8]
movups xmmword [ecx + esi*8 + 0x38], xmm1
mulpd xmm4, xmmword [edi + esi*8 + 0x18]
movups xmmword [edi + esi*8 + 8], xmm2
movaps xmm7, xmm0
movaps xmm2, xmm0
mulpd xmm7, xmmword [edi + esi*8 + 0x28]
mulpd xmm2, xmmword [edi + esi*8 + 0x38]
movups xmmword [edi + esi*8 + 0x18], xmm4
movups xmmword [edi + esi*8 + 0x28], xmm7
movups xmmword [edi + esi*8 + 0x38], xmm2
add esi, 8
cmp esi, edx
jb 0x566670
jmp 0x566787
movaps xmm0, xmm5
mov dword [ebp - 0x134], ecx
unpcklpd xmm0, xmm0
mov ecx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x130]
nop dword [eax + eax]
movaps xmm1, xmm0
movaps xmm2, xmm0
mulpd xmm1, xmmword [ecx + esi*8 + 8]
mulpd xmm2, xmmword [edi + esi*8 + 8]
movups xmmword [ecx + esi*8 + 8], xmm1
movaps xmm3, xmm0
movups xmmword [edi + esi*8 + 8], xmm2
movaps xmm4, xmm0
movaps xmm6, xmm0
movaps xmm7, xmm0
movaps xmm1, xmm0
movaps xmm2, xmm0
mulpd xmm3, xmmword [ecx + esi*8 + 0x18]
mulpd xmm6, xmmword [ecx + esi*8 + 0x28]
mulpd xmm1, xmmword [ecx + esi*8 + 0x38]
mulpd xmm4, xmmword [edi + esi*8 + 0x18]
mulpd xmm7, xmmword [edi + esi*8 + 0x28]
mulpd xmm2, xmmword [edi + esi*8 + 0x38]
movups xmmword [ecx + esi*8 + 0x18], xmm3
movups xmmword [edi + esi*8 + 0x18], xmm4
movups xmmword [ecx + esi*8 + 0x28], xmm6
movups xmmword [edi + esi*8 + 0x28], xmm7
movups xmmword [ecx + esi*8 + 0x38], xmm1
movups xmmword [edi + esi*8 + 0x38], xmm2
add esi, 8
cmp esi, edx
jb 0x566710
mov ecx, dword [ebp - 0x134]
lea esi, [edx + 1]
cmp esi, eax
ja 0x5667d7
sub eax, edx
add edx, ecx
mov edi, dword [ebx + 0x20]
xor esi, esi
lea edi, [edi + edx*8]
mov dword [ebp - 0x12c], edi
mov edi, dword [ebx + 0x24]
lea edx, [edi + edx*8]
mov edi, dword [ebp - 0x12c]
movsd xmm0, qword [edx + esi*8 + 8]
movsd xmm1, qword [edi + esi*8 + 8]
mulsd xmm0, xmm5
mulsd xmm1, xmm5
movsd qword [edx + esi*8 + 8], xmm0
movsd qword [edi + esi*8 + 8], xmm1
inc esi
cmp esi, eax
jb 0x5667b2
inc ecx
dec dword [ebp - 0x128]
cmp ecx, dword [ebp - 0x18]
jb 0x566552
mov edx, dword [ebp - 0x124]
mov esi, dword [ebp - 0x18]
shr edx, 0x1f
lea edx, [esi + edx + 1]
sar edx, 1
test edx, edx
jle 0x56684d
mov ecx, dword [ebx + 0x20]
xor eax, eax
mov dword [ebp - 0x138], edx
lea edi, [ecx + esi*8]
mov ecx, dword [ebx + 0x24]
mov edx, edi
lea esi, [ecx + esi*8]
xor ecx, ecx
mov edi, dword [ebx + 0x20]
movsd xmm0, qword [edx + ecx*8]
movsd xmm2, qword [esi + ecx*8]
movsd xmm1, qword [edi + eax*8]
movsd qword [edi + eax*8], xmm0
mov edi, dword [ebx + 0x24]
movsd qword [edx + ecx*8], xmm1
movsd xmm3, qword [edi + eax*8]
movsd qword [edi + eax*8], xmm2
inc eax
movsd qword [esi + ecx*8], xmm3
dec ecx
cmp eax, dword [ebp - 0x138]
jb 0x566815
lea esp, [ebp - 8]
pop edi
pop esi
pop ebp
mov esp, ebx
pop ebx
ret
xor eax, eax
jmp 0x5653cd
mov edx, 1
jmp 0x565482
test edi, edi
jbe 0x5668ba
xor edx, edx
xor eax, eax
movups xmm0, xmmword [eax + 0x708420]
inc edx
movups xmm1, xmmword [eax + 0x708430]
movups xmmword [eax + 0x708360], xmm0
movups xmmword [eax + 0x708370], xmm1
add eax, 0x20
cmp edx, edi
jb 0x566870
lea edx, [edx + edx + 1]
lea eax, [edx - 1]
cmp eax, dword [ebp - 0x6c]
jae 0x565363
shl edx, 4
movups xmm0, xmmword [edx + 0x708410]
movups xmmword [edx + 0x708350], xmm0
jmp 0x565363
mov edx, 1
jmp 0x566898
xor edx, edx
jmp 0x565999
xor ecx, ecx
jmp 0x565cfa
mov ecx, 1
jmp 0x565db5
xor ecx, ecx
cmp edi, 1
jb 0x56684d
xor edx, edx
jmp 0x565f01
test esi, esi
jbe 0x56693d
xor ecx, ecx
xor edx, edx
movups xmm0, xmmword [edx + 0x708420]
inc ecx
movups xmm1, xmmword [edx + 0x708430]
movups xmmword [edx + 0x708360], xmm0
movups xmmword [edx + 0x708370], xmm1
add edx, 0x20
cmp ecx, esi
jb 0x5668f3
lea ecx, [ecx + ecx + 1]
lea edx, [ecx - 1]
cmp edx, dword [ebp - 0x68]
jae 0x565c73
shl ecx, 4
movups xmm0, xmmword [ecx + 0x708410]
movups xmmword [ecx + 0x708350], xmm0
jmp 0x565c73
mov ecx, 1
jmp 0x56691b
movups xmm1, xmmword [0x68e7e8]
mov edx, 1
jmp 0x565a32
test esi, esi
jbe 0x5669a7
xor ecx, ecx
xor edx, edx
movups xmm0, xmmword [edx + 0x708420]
inc ecx
movups xmm1, xmmword [edx + 0x708430]
movups xmmword [edx + 0x708360], xmm0
movups xmmword [edx + 0x708370], xmm1
add edx, 0x20
cmp ecx, esi
jb 0x56695d
lea ecx, [ecx + ecx + 1]
lea edx, [ecx - 1]
cmp edx, dword [ebp - 0x64]
jae 0x565923
shl ecx, 4
movups xmm0, xmmword [ecx + 0x708410]
movups xmmword [ecx + 0x708350], xmm0
jmp 0x565923
mov ecx, 1
jmp 0x566985
xor edx, edx
jmp 0x566229
xor edx, edx
jmp 0x5664cd
xor edx, edx
jmp 0x56678d
mov esi, 1
jmp 0x566128
xor eax, eax
jmp 0x564e6e
movups xmm1, xmmword [0x68e7e8]
jmp 0x565a5c