Function at 0x14023db60
Capabilities:
Encode data using xor

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x78
movapd xmmword [rsp + 0x60], xmm9
movaps xmmword [rsp + 0x50], xmm8
movapd xmmword [rsp + 0x40], xmm7
movaps xmmword [rsp + 0x30], xmm6
movapd xmm6, xmm2
mov rsi, rcx
mov r14, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0xc0]
lea rax, [0x1403d0ba8]
mov qword [rcx], rax
mov qword [rcx + 0x10], rbx
lea rax, [0x1403d10a8]
mov qword [rcx + 0x18], rax
lea rax, str.Ps_
mov qword [rcx + 0x128], rax
lea rax, [0x1403d22f8]
mov qword [rcx + 0x170], rax
xorpd xmm0, xmm0
movupd xmmword [rcx + 0x178], xmm0
movupd xmmword [rcx + 0x188], xmm0
mov qword [rcx + 0x198], 0
mov al, byte [rbx + 0x48]
mov byte [rcx + 0x1b0], al
xor eax, eax
xorpd xmm0, xmm0
ucomisd xmm0, xmm2
jbe 0x14023dc11
cmp byte [rsp + 0xd0], 0
je 0x14023dc11
mov al, byte [r9 + 0x10]
xor al, 1
mov byte [rsi + 0x1b1], al
mov qword [rsi + 0x1a0], rdx
movsd xmm0, qword [r14]
movapd xmm1, xmmword [0x1403d01e0]
andpd xmm1, xmm0
movsd xmm8, qword [0x1403d01f0]
ucomisd xmm8, xmm1
jbe 0x14023dc4a
cmp byte [r9 + 0x10], 0
je 0x14023dccc
lea rdi, [rsi + 0x170]
mov byte [rsi + 0x1b2], 0
test al, al
je 0x14023dc93
movsd xmm1, qword [0x1403d0200]
movsd qword [rsi + 0x1a8], xmm1
ucomisd xmm6, qword [0x1403d0210]
jne 0x14023ddb6
jp 0x14023ddb6
mov qword [rsi + 0x1a0], rdi
mov byte [rsi + 0x1b1], 0
jmp 0x14023dfae
mov qword [rsi + 8], rdx
mov qword [rsi + 0x1a0], rsi
movsd xmm0, qword [rbx]
movsd xmm1, qword [rbx + 0x10]
mulsd xmm1, xmm1
mulsd xmm0, xmm0
addsd xmm0, xmm1
xorpd xmm9, xmm9
ucomisd xmm0, xmm9
jb 0x14023dd43
sqrtsd xmm7, xmm0
jmp 0x14023dd4c
xorpd xmm1, xmm1
movapd xmm2, xmm6
maxsd xmm2, xmm1
movsd xmm1, qword [rbx + 0x30]
addsd xmm1, qword [0x1403d01f8]
mulsd xmm1, xmm2
movsd xmm2, qword [r9 + 0x30]
addsd xmm2, xmm1
movsd xmm3, qword [r14 + 8]
ucomisd xmm3, xmm2
ja 0x14023dd37
movsd xmm2, qword [r9 + 0x20]
subsd xmm2, xmm1
ucomisd xmm2, qword [r14 + 0x18]
ja 0x14023dd37
movsd xmm2, qword [r9 + 0x28]
addsd xmm2, xmm1
ucomisd xmm0, xmm2
ja 0x14023dd37
movsd xmm0, qword [r9 + 0x18]
subsd xmm0, xmm1
ucomisd xmm0, qword [r14 + 0x10]
jbe 0x14023dc4a
mov byte [rsi + 0x1b2], 1
jmp 0x14023dfae
call fcn.140364c50
movapd xmm7, xmm0
movsd xmm0, qword [rbx + 8]
movsd xmm1, qword [rbx + 0x18]
mulsd xmm1, xmm1
mulsd xmm0, xmm0
addsd xmm0, xmm1
ucomisd xmm0, xmm9
jb 0x14023dd6f
sqrtsd xmm0, xmm0
jmp 0x14023dd74
call fcn.140364c50
movsd qword [rsp + 0x20], xmm7
movsd qword [rsp + 0x28], xmm0
lea rcx, [rsp + 0x20]
call fcn.1402a5e50
divsd xmm0, qword [0x1403d0208]
movsd xmm1, qword [0x1403d0200]
divsd xmm1, xmm0
movsd qword [rsi + 0x1a8], xmm1
ucomisd xmm6, qword [0x1403d0210]
jne 0x14023ddb6
jnp 0x14023dc80
xorpd xmm0, xmm0
ucomisd xmm6, xmm0
jbe 0x14023dfae
movzx eax, byte [rbx + 0x4a]
movzx ecx, byte [rbx + 0x49]
movsd xmm0, qword [0x1403d0218]
mulsd xmm0, xmm6
movsd xmm2, qword [rbx + 0x30]
mulsd xmm2, xmm0
mov dword [rsi + 0xf8], eax
mov dword [rsi + 0xfc], ecx
movups xmm3, xmmword [r14]
movups xmm4, xmmword [r14 + 0x10]
movups xmmword [rsi + 0x100], xmm3
movups xmmword [rsi + 0x110], xmm4
movsd qword [rsi + 0x28], xmm0
movsd xmm3, qword [rsi + 0x100]
andpd xmm3, xmmword [0x1403d01e0]
ucomisd xmm8, xmm3
jbe 0x14023de35
movapd xmm3, xmm2
maxsd xmm3, xmm6
mulsd xmm3, qword [0x1403d0220]
movsd qword [rsi + 0x40], xmm3
lea r14, [rsi + 0x18]
mulsd xmm2, xmm2
movsd qword [rsi + 0x30], xmm2
divsd xmm1, xmm0
movsd xmm0, qword [0x1403d01f8]
subsd xmm0, xmm1
call sub.msvcrt.dll_acos
movsd qword [rsi + 0x38], xmm0
movaps xmm0, xmmword [0x1403d0230]
movups xmmword [rsi + 0xe8], xmm0
movupd xmm0, xmmword [rsi + 0xe8]
movupd xmmword [rsi + 0x98], xmm0
movupd xmmword [rsi + 0x48], xmm0
mov dword [rsi + 0x120], 0
mov rax, qword [rsi + 0x1a0]
mov qword [rsi + 0x20], rax
mov rax, qword [rbx + 0x40]
test rax, rax
je 0x14023df89
lea r8, [rsi + 0x128]
movsd xmm0, qword [rax + 0x10]
mov qword [rsi + 0x138], rax
movsxd rbx, dword [rax + 8]
test rbx, rbx
je 0x14023df8e
mov rdi, qword [rax]
lea rax, [rbx*8]
xorpd xmm1, xmm1
xor ecx, ecx
nop word cs:[rax + rax]
nop dword [rax]
addsd xmm1, qword [rdi + rcx]
add rcx, 8
cmp rax, rcx
jne 0x14023dee0
movsd qword [rsi + 0x148], xmm1
xorpd xmm2, xmm2
ucomisd xmm1, xmm2
jne 0x14023df06
jnp 0x14023df99
movapd xmm2, xmm0
divsd xmm2, xmm1
cvttpd2dq xmm2, xmm2
cvtdq2pd xmm2, xmm2
mulsd xmm2, xmm1
subsd xmm0, xmm2
movsd xmm1, qword [rdi]
movsd qword [rsi + 0x150], xmm1
mov eax, 1
xor edx, edx
idiv ebx
mov cl, 1
ucomisd xmm1, xmm0
ja 0x14023df63
mov cl, 1
nop dword [rax]
subsd xmm0, xmm1
movsxd rax, edx
movsd xmm1, qword [rdi + rax*8]
movsd qword [rsi + 0x150], xmm1
add eax, 1
cdq
idiv ebx
xor cl, 1
ucomisd xmm1, xmm0
jbe 0x14023df40
subsd xmm1, xmm0
mov dword [rsi + 0x140], edx
mov byte [rsi + 0x158], cl
movsd qword [rsi + 0x150], xmm1
xorpd xmm0, xmm0
movupd xmmword [rsi + 0x160], xmm0
jmp 0x14023df99
mov r8, r14
jmp 0x14023dfa0
mov qword [rsi + 0x148], 0
mov qword [rsi + 0x130], r14
mov qword [rsi + 0x1a0], r8
mov byte [rsi + 0x1b0], 0
movaps xmm6, xmmword [rsp + 0x30]
movaps xmm7, xmmword [rsp + 0x40]
movaps xmm8, xmmword [rsp + 0x50]
movaps xmm9, xmmword [rsp + 0x60]
add rsp, 0x78
pop rbx
pop rdi
pop rsi
pop r14
ret