Function at 0x1800459b0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov rax, qword [rdx + 0x30]
mov r12d, r9d
mov r14, r8
movaps xmmword [rsp + 0x40], xmm6
mov rbp, rdx
mov rdi, rcx
cmp rax, qword [rdx + 0x38]
je 0x1800459eb
mov qword [rdx + 0x38], rax
movsd xmm6, qword [0x180170e68]
xor r13d, r13d
cmp r12d, 2
je 0x180045a29
xor r9d, r9d
cmp r12d, 4
je 0x180045a14
mov qword [rsp + 0x20], r13
call fcn.18003bf20
jmp 0x180045abc
movsd qword [rsp + 0x28], xmm6
mov qword [rsp + 0x20], r13
call fcn.18003b9a0
jmp 0x180045abc
mov rcx, qword [r8]
xorps xmm1, xmm1
mov rdx, qword [rdi + 0x20]
movsd xmm2, qword [rdi]
movaps xmm0, xmm2
cvtsi2sd xmm1, qword [rcx]
mulsd xmm0, qword [rdx]
mulsd xmm2, qword [rdx + 8]
lea rdx, [rsp + 0x30]
subsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rcx + 8]
lea rcx, [rbp + 0x30]
cvttsd2si rax, xmm1
subsd xmm0, xmm2
mov qword [rsp + 0x30], rax
cvttsd2si rax, xmm0
mov qword [rsp + 0x38], rax
call fcn.180016580
mov rax, qword [rdi + 0x20]
lea rdx, [rsp + 0x30]
mov rcx, qword [r14]
movsd xmm0, qword [rax]
movsd xmm1, qword [rax + 8]
mulsd xmm0, qword [rdi]
mulsd xmm1, qword [rdi]
cvttsd2si rax, xmm0
add rax, qword [rcx]
mov qword [rsp + 0x30], rax
cvttsd2si rax, xmm1
add rax, qword [rcx + 8]
lea rcx, [rbp + 0x30]
mov qword [rsp + 0x38], rax
call fcn.180016580
mov rbx, qword [r14 + 8]
mov esi, 1
sub rbx, qword [r14]
sar rbx, 4
dec rbx
mov qword [rsp + 0x80], r13
cmp rsi, rbx
jae 0x180045b06
nop dword [rax]
lea rax, [rsp + 0x80]
mov r9, rsi
mov r8, r14
mov qword [rsp + 0x20], rax
mov rdx, rbp
mov rcx, rdi
call fcn.180045d00
inc rsi
cmp rsi, rbx
jb 0x180045ae0
movaps xmm3, xmmword [0x180171720]
mov rdx, rbx
cmp rbx, 4
jb 0x180045b7d
lea r8, [rbx - 4]
mov rcx, rbx
shr r8, 2
inc r8
shl rcx, 4
imul rdx, r8, 0xfffffffffffffffc
add rdx, rbx
nop
mov rax, qword [rdi + 0x20]
lea rcx, [rcx - 0x40]
movups xmm0, xmmword [rax + rcx + 0x30]
xorps xmm0, xmm3
movups xmmword [rax + rcx + 0x40], xmm0
mov rax, qword [rdi + 0x20]
movups xmm0, xmmword [rax + rcx + 0x20]
xorps xmm0, xmm3
movups xmmword [rax + rcx + 0x30], xmm0
mov rax, qword [rdi + 0x20]
movups xmm0, xmmword [rax + rcx + 0x10]
xorps xmm0, xmm3
movups xmmword [rax + rcx + 0x20], xmm0
mov rax, qword [rdi + 0x20]
movups xmm0, xmmword [rax + rcx]
xorps xmm0, xmm3
movups xmmword [rax + rcx + 0x10], xmm0
sub r8, 1
jne 0x180045b30
test rdx, rdx
je 0x180045ba3
mov rcx, rdx
shl rcx, 4
mov rax, qword [rdi + 0x20]
lea rcx, [rcx - 0x10]
movups xmm0, xmmword [rcx + rax]
xorps xmm0, xmm3
movups xmmword [rcx + rax + 0x10], xmm0
sub rdx, 1
jne 0x180045b89
mov rax, qword [rdi + 0x20]
mov rsi, rbx
add rsi, rsi
movups xmm0, xmmword [rax + rsi*8]
movups xmmword [rax], xmm0
cmp r12d, 2
je 0x180045bf0
mov r9, rbx
mov r8, r14
mov rdx, rbp
mov rcx, rdi
cmp r12d, 4
je 0x180045bdb
mov qword [rsp + 0x20], rbx
call fcn.18003bf20
jmp 0x180045c8b
movsd qword [rsp + 0x28], xmm6
mov qword [rsp + 0x20], rbx
call fcn.18003b9a0
jmp 0x180045c8b
mov rcx, qword [r14]
xorps xmm1, xmm1
mov rdx, qword [rdi + 0x20]
movsd xmm2, qword [rdi]
movaps xmm0, xmm2
cvtsi2sd xmm1, qword [rcx + rsi*8]
mulsd xmm0, qword [rdx + rsi*8]
mulsd xmm2, qword [rdx + rsi*8 + 8]
lea rdx, [rsp + 0x30]
subsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rcx + rsi*8 + 8]
lea rcx, [rbp + 0x30]
cvttsd2si rax, xmm1
subsd xmm0, xmm2
mov qword [rsp + 0x30], rax
cvttsd2si rax, xmm0
mov qword [rsp + 0x38], rax
call fcn.180016580
mov rax, qword [rdi + 0x20]
lea rdx, [rsp + 0x30]
mov rcx, qword [r14]
movsd xmm0, qword [rax + rsi*8]
movsd xmm1, qword [rax + rsi*8 + 8]
mulsd xmm0, qword [rdi]
mulsd xmm1, qword [rdi]
cvttsd2si rax, xmm0
add rax, qword [rcx + rsi*8]
mov qword [rsp + 0x30], rax
cvttsd2si rax, xmm1
add rax, qword [rcx + rsi*8 + 8]
lea rcx, [rbp + 0x30]
mov qword [rsp + 0x38], rax
call fcn.180016580
mov qword [rsp + 0x80], r13
test rbx, rbx
je 0x180045cc4
nop dword [rax + rax]
lea rax, [rsp + 0x80]
mov r9, rbx
mov r8, r14
mov qword [rsp + 0x20], rax
mov rdx, rbp
mov rcx, rdi
call fcn.180045d00
sub rbx, 1
jne 0x180045ca0
lea rcx, [rbp + 0x18]
lea rdx, [rbp + 0x30]
movaps xmm6, xmmword [rsp + 0x40]
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
jmp fcn.180016160