Function at 0x180044660
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 0x18004469b
mov qword [rdx + 0x38], rax
movsd xmm6, qword [0x18016be88]
xor r13d, r13d
cmp r12d, 2
je 0x1800446d9
xor r9d, r9d
cmp r12d, 4
je 0x1800446c4
mov qword [rsp + 0x20], r13
call fcn.18003b3b0
jmp 0x18004476c
movsd qword [rsp + 0x28], xmm6
mov qword [rsp + 0x20], r13
call fcn.18003ae30
jmp 0x18004476c
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.180015a20
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.180015a20
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 0x1800447b6
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.1800449b0
inc rsi
cmp rsi, rbx
jb 0x180044790
movaps xmm3, xmmword [0x18016c740]
mov rsi, rbx
shl rsi, 4
mov rdx, rbx
cmp rbx, 4
jb 0x18004483d
lea r8, [rbx - 4]
mov rcx, rsi
shr r8, 2
inc r8
imul rdx, r8, 0xfffffffffffffffc
add rdx, rbx
nop dword [rax]
nop word [rax + rax]
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 0x1800447f0
test rdx, rdx
je 0x180044863
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 0x180044849
mov rax, qword [rdi + 0x20]
movups xmm0, xmmword [rax + rsi]
movups xmmword [rax], xmm0
cmp r12d, 2
je 0x1800448aa
mov r9, rbx
mov r8, r14
mov rdx, rbp
mov rcx, rdi
cmp r12d, 4
je 0x180044895
mov qword [rsp + 0x20], rbx
call fcn.18003b3b0
jmp 0x180044945
movsd qword [rsp + 0x28], xmm6
mov qword [rsp + 0x20], rbx
call fcn.18003ae30
jmp 0x180044945
mov rcx, qword [r14]
xorps xmm1, xmm1
mov rdx, qword [rdi + 0x20]
movsd xmm2, qword [rdi]
movaps xmm0, xmm2
cvtsi2sd xmm1, qword [rcx + rsi]
mulsd xmm0, qword [rsi + rdx]
mulsd xmm2, qword [rsi + rdx + 8]
lea rdx, [rsp + 0x30]
subsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rcx + rsi + 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.180015a20
mov rax, qword [rdi + 0x20]
lea rdx, [rsp + 0x30]
mov rcx, qword [r14]
movsd xmm0, qword [rsi + rax]
movsd xmm1, qword [rsi + rax + 8]
mulsd xmm0, qword [rdi]
mulsd xmm1, qword [rdi]
cvttsd2si rax, xmm0
add rax, qword [rsi + rcx]
mov qword [rsp + 0x30], rax
cvttsd2si rax, xmm1
add rax, qword [rsi + rcx + 8]
lea rcx, [rbp + 0x30]
mov qword [rsp + 0x38], rax
call fcn.180015a20
mov qword [rsp + 0x80], r13
test rbx, rbx
je 0x180044976
lea rax, [rsp + 0x80]
mov r9, rbx
mov r8, r14
mov qword [rsp + 0x20], rax
mov rdx, rbp
mov rcx, rdi
call fcn.1800449b0
sub rbx, 1
jne 0x180044952
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.180015600