Function at 0x14014daac
Capabilities:
Encode data using xor

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x68
movaps xmmword [rsp + 0x50], xmm8
movapd xmmword [rsp + 0x40], xmm7
movapd xmmword [rsp + 0x30], xmm6
mov rsi, rcx
mov byte [rcx + 0x61], 1
movsd xmm2, qword [rcx + 0x10]
movsd xmm4, qword [rcx]
movsd xmm8, qword [rcx + 8]
subsd xmm2, xmm4
movsd xmm1, qword [rcx + 0x18]
subsd xmm1, xmm8
lea rdi, [rcx + 0x40]
movsd qword [rcx + 0x40], xmm2
movsd qword [rcx + 0x48], xmm1
cmp edx, 1
jne 0x14014db10
movupd xmm0, xmmword [rdi]
movupd xmmword [rsi + 0x50], xmm0
mov byte [rsi + 0x60], 0
jmp 0x14014dd2d
movsd xmm0, qword [rsi + 0x20]
movsd xmm5, qword [rsi + 0x28]
subsd xmm0, xmm4
subsd xmm5, xmm8
movsd qword [rsi + 0x50], xmm0
movsd qword [rsi + 0x58], xmm5
lea ecx, [rdx + 1]
sar ecx, 2
mov eax, edx
sub eax, ecx
js 0x14014db8f
mov eax, eax
shl rax, 4
add rax, 0x10
xorpd xmm0, xmm0
xor ecx, ecx
movapd xmm5, xmmword [0x1401c9c70]
movsd xmm6, qword [rsi + rcx]
movsd xmm3, qword [rsi + rcx + 8]
movapd xmm7, xmm3
xorpd xmm7, xmm5
maxsd xmm7, xmm3
movapd xmm3, xmm6
xorpd xmm3, xmm5
maxsd xmm3, xmm6
maxsd xmm3, xmm7
maxsd xmm0, xmm3
add rcx, 0x10
cmp rax, rcx
jne 0x14014db51
mulsd xmm0, qword [0x140201a10]
jmp 0x14014db93
xorpd xmm0, xmm0
lea rbx, [rsi + 0x50]
cmp edx, 4
jne 0x14014dc64
movsd xmm3, qword [rsi + 0x30]
subsd xmm3, xmm4
movsd qword [rsp + 0x20], xmm3
movsd xmm3, qword [rsi + 0x38]
subsd xmm3, xmm8
movsd qword [rsp + 0x28], xmm3
xorpd xmm8, xmm8
ucomisd xmm2, xmm8
jne 0x14014dcb2
jp 0x14014dcb2
ucomisd xmm1, xmm8
jne 0x14014dcb2
jp 0x14014dcb2
movups xmm1, xmmword [rbx]
movups xmmword [rdi], xmm1
movupd xmm1, xmmword [rsp + 0x20]
movupd xmmword [rbx], xmm1
movsd xmm2, qword [rdi]
xorpd xmm1, xmm1
ucomisd xmm2, xmm1
jne 0x14014dc06
jnp 0x14014dc20
movapd xmm3, xmmword [0x1401d2070]
andpd xmm2, xmm3
andpd xmm3, xmm0
ucomisd xmm3, xmm2
jbe 0x14014dd0f
movsd xmm2, qword [rsi + 0x48]
ucomisd xmm2, xmm1
jne 0x14014dc2d
jnp 0x14014dc47
movapd xmm1, xmmword [0x1401d2070]
andpd xmm2, xmm1
andpd xmm0, xmm1
ucomisd xmm0, xmm2
jbe 0x14014dd0f
lea rax, [rsi + 0x10]
lea rcx, [rsi + 0x30]
movups xmm0, xmmword [rsp + 0x20]
movups xmmword [rdi], xmm0
movupd xmm0, xmmword [rcx]
movupd xmmword [rax], xmm0
jmp 0x14014dd0f
xorpd xmm3, xmm3
ucomisd xmm2, xmm3
jne 0x14014dc70
jnp 0x14014dc8a
movapd xmm4, xmmword [0x1401d2070]
andpd xmm2, xmm4
andpd xmm4, xmm0
ucomisd xmm4, xmm2
jbe 0x14014dd0f
ucomisd xmm1, xmm3
jne 0x14014dc92
jnp 0x14014dca8
movapd xmm2, xmmword [0x1401d2070]
andpd xmm1, xmm2
andpd xmm0, xmm2
ucomisd xmm0, xmm1
jbe 0x14014dd0f
movupd xmm0, xmmword [rbx]
movupd xmmword [rdi], xmm0
jmp 0x14014dd0f
lea r14, [rsp + 0x20]
mov rcx, rdi
mov rdx, r14
call fcn.1401409bc
movapd xmm7, xmm0
mov rcx, r14
mov rdx, rbx
call fcn.1401409bc
mulsd xmm7, xmm0
ucomisd xmm7, xmm8
jae 0x14014dd0f
movapd xmm6, xmm0
mov rcx, rbx
mov rdx, rdi
call fcn.1401409bc
mulsd xmm6, xmm0
xorpd xmm0, xmm0
ucomisd xmm0, xmm6
jbe 0x14014dd05
movupd xmm0, xmmword [rbx]
movupd xmmword [rdi], xmm0
mov byte [rsi + 0x61], 0
movupd xmm0, xmmword [rsp + 0x20]
movupd xmmword [rbx], xmm0
mov rcx, rdi
mov rdx, rbx
call fcn.1401409bc
xorpd xmm1, xmm1
ucomisd xmm0, xmm1
setp al
setne cl
or cl, al
mov byte [rsi + 0x60], cl
movaps xmm6, xmmword [rsp + 0x30]
movaps xmm7, xmmword [rsp + 0x40]
movaps xmm8, xmmword [rsp + 0x50]
add rsp, 0x68
pop rbx
pop rdi
pop rsi
pop r14
ret