Function at 0x1800a9b60
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rbx
push r15
sub rsp, 0x408
mov r15d, edx
movaps xmmword [rax - 0x38], xmm6
movaps xmm6, xmm3
movaps xmmword [rax - 0x68], xmm9
movaps xmm9, xmm2
mov rbx, rcx
cmp dword [rcx + 0x2f38], edx
jne 0x1800a9ba3
ucomisd xmm2, qword [rcx + 0x2f40]
jne 0x1800a9ba3
ucomisd xmm3, qword [rcx + 0x2f48]
je 0x1800aa1c8
movsd xmm0, qword [0x18019f520]
movaps xmm1, xmm9
mov qword [rsp + 0x428], rsi
mov qword [rsp + 0x430], rdi
mov qword [rsp + 0x400], r12
mov qword [rsp + 0x3f8], r13
xor r13d, r13d
movaps xmmword [rsp + 0x3d0], xmm7
movaps xmmword [rsp + 0x3c0], xmm8
movaps xmmword [rsp + 0x3a0], xmm10
movaps xmmword [rsp + 0x390], xmm11
movaps xmmword [rsp + 0x380], xmm12
movaps xmmword [rsp + 0x370], xmm13
movsd xmm13, qword [0x18019f510]
mulsd xmm1, xmm13
mov dword [rcx + 0x2f38], r15d
movsd qword [rcx + 0x2f40], xmm9
movsd qword [rcx + 0x2f48], xmm6
mov dword [rcx], r13d
call fcn.18017d7f8
movsd xmm7, qword [0x18019f518]
movaps xmm11, xmm0
subsd xmm6, xmm7
subsd xmm11, xmm7
movaps xmm0, xmm6
call fcn.18017d828
movaps xmm6, xmm0
movaps xmm0, xmm7
mulsd xmm6, qword [0x1801b8b38]
addsd xmm6, xmm7
divsd xmm0, xmm6
call fcn.1800aa1f0
movsd qword [rbx + 0x30], xmm0
movaps xmm1, xmm7
mulsd xmm6, xmm6
movaps xmm0, xmm7
divsd xmm1, xmm6
subsd xmm0, xmm1
sqrtpd xmm0, xmm0
call fcn.1800aa1f0
movsd xmm10, qword [0x1801b8b40]
mov eax, r15d
cdq
movsd qword [rbx + 0x38], xmm0
sub eax, edx
mov ecx, r15d
sar eax, 1
not ecx
movsxd r12, eax
and ecx, 1
cmp r12d, 1
jl 0x1800a9d57
mov qword [rsp + 0x420], rbp
lea rax, [rsp + 0x48]
mov qword [rsp + 0x3f0], r14
lea rdi, [rsp + 0x48]
movd xmm0, r15d
mov esi, 2
cvtdq2pd xmm0, xmm0
mov ebp, r12d
sub esi, ecx
mov r14, rbx
sub r14, rax
movaps xmm8, xmm7
divsd xmm8, xmm0
nop dword [rax]
nop dword [rax + rax]
movd xmm1, esi
mov rcx, rbx
cvtdq2pd xmm1, xmm1
mulsd xmm1, qword [rbx + 0x30]
mulsd xmm1, xmm8
call fcn.1800a9a00
movaps xmm1, xmm0
lea rdi, [rdi + 8]
divsd xmm1, qword [rbx + 0x30]
add esi, 2
movaps xmm0, xmm7
mulsd xmm1, xmm10
divsd xmm0, xmm1
movsd qword [r14 + rdi + 0x50], xmm0
movsd qword [rdi - 8], xmm0
sub rbp, 1
jne 0x1800a9d00
mov r14, qword [rsp + 0x3f0]
mov rbp, qword [rsp + 0x420]
mov eax, r15d
movabs rcx, 0x7ff0000000000000
mov qword [rbx + r12*8 + 0x58], rcx
and eax, 0x80000001
jge 0x1800a9d77
dec eax
or eax, 0xfffffffe
inc eax
mov ecx, 1
mov dword [rbx + 0x50], r12d
cmp r12d, ecx
mov dword [rbx + 0x48], eax
mov r12, qword [rsp + 0x400]
jl 0x1800a9dd4
lea rdx, [rbx + 0x1320]
nop word [rax + rax]
mov eax, dword [rbx + 0x50]
movaps xmm1, xmm7
sub eax, ecx
inc ecx
inc eax
cdqe
movsd xmm0, qword [rsp + rax*8 + 0x40]
mulsd xmm0, xmm0
divsd xmm1, xmm0
movaps xmm0, xmm7
subsd xmm0, xmm1
sqrtsd xmm0, xmm0
movsd qword [rdx], xmm0
add rdx, 8
cmp ecx, dword [rbx + 0x50]
jle 0x1800a9da0
mov ecx, dword [rbx + 0x50]
xorps xmm0, xmm0
mov eax, dword [rbx + 0x48]
sqrtsd xmm0, xmm11
lea eax, [rax + rcx*2]
mov rcx, rbx
mov dword [rbx + 0x4c], eax
cdq
sub eax, edx
sar eax, 1
add eax, eax
mov dword [rbx + 0x54], eax
movsd qword [rbx + 0x40], xmm0
call fcn.1800a97b0
mov rcx, rbx
call fcn.1800a98c0
mov eax, dword [rbx + 0x4c]
cmp eax, dword [rbx + 0x54]
jle 0x1800a9e1c
add eax, eax
movsxd rcx, eax
mov qword [rbx + rcx*8 + 0x378], r13
mov eax, dword [rbx + 0x4c]
mov r9d, r13d
add eax, eax
js 0x1800a9e69
lea r8, [rbx + 0x378]
nop dword [rax]
movsd xmm0, qword [r8 + 0x960]
mov eax, r9d
mov ecx, dword [rbx + 0x4c]
cdq
addsd xmm0, qword [r8]
sub eax, edx
add r9d, 2
sar eax, 1
add r8, 0x10
sub ecx, eax
movsxd rax, ecx
movsd qword [rbx + rax*8 + 0x9b8], xmm0
mov eax, dword [rbx + 0x4c]
add eax, eax
cmp r9d, eax
jle 0x1800a9e30
mov edx, dword [rbx + 0x4c]
mov rcx, rbx
call fcn.1800aa260
mov eax, dword [rbx + 0x54]
movaps xmm8, xmm0
movsd xmm12, qword [0x1801b9e50]
cdq
sub eax, edx
mov esi, r13d
sar eax, 1
xorps xmm11, xmm11
test eax, eax
jle 0x1800aa0c3
movaps xmmword [rsp + 0x360], xmm15
lea rdi, [rbx + 0xff8]
movsd xmm15, qword [0x18019f550]
movsd qword [rsp + 0x20], xmm11
movsd qword [rsp + 0x30], xmm11
nop
movsd xmm6, qword [rdi + 0xc88]
add rdi, 8
movsd xmm1, qword [0x1801b9e08]
inc esi
mulsd xmm6, xmm13
movsd xmm0, qword [rdi]
mulsd xmm0, qword [0x1801b9e40]
movaps xmm2, xmm6
movsd qword [rdi + 0xc80], xmm6
mulsd xmm6, qword [0x1801b9e48]
addsd xmm2, xmm7
movsd qword [rdi], xmm0
addsd xmm2, xmm0
addsd xmm6, xmm12
movaps xmm0, xmm2
divsd xmm6, xmm2
movsd qword [rdi - 0x960], xmm6
call fcn.18017d7f8
movsd xmm3, qword [0x1801b8af8]
movaps xmm1, xmm7
movsd xmm4, qword [0x1801b8d00]
movaps xmm2, xmm7
divsd xmm3, xmm0
movaps xmm0, xmm3
movsd qword [rdi + 0x12c0], xmm3
mulsd xmm0, xmm3
mulsd xmm3, xmm10
divsd xmm6, xmm0
movsd qword [rdi + 0xfa0], xmm3
mulsd xmm3, qword [0x1801b8c08]
subsd xmm1, xmm6
addsd xmm1, xmm1
andps xmm1, xmm4
sqrtpd xmm0, xmm1
divsd xmm2, xmm0
divsd xmm3, xmm2
movsd qword [rdi + 0x15e0], xmm2
movsd qword [rdi + 0x1900], xmm3
mov eax, dword [rbx + 0x54]
cdq
sub eax, edx
sar eax, 1
add eax, esi
cdqe
movsd qword [rbx + rax*8 + 0x28f8], xmm3
movsd xmm1, qword [rdi + 0xfa0]
movsd xmm0, qword [rdi + 0x15e0]
movaps xmm2, xmm1
mulsd xmm0, xmm0
mulsd xmm2, xmm1
divsd xmm2, xmm0
movaps xmm0, xmm1
mulsd xmm0, qword [0x1801b8b28]
mulsd xmm0, xmm1
subsd xmm2, xmm0
andps xmm2, xmm4
sqrtpd xmm0, xmm2
mulsd xmm0, qword [0x1801a1288]
movsd qword [rdi + 0x1c20], xmm0
xorps xmm0, xmm15
mov eax, dword [rbx + 0x54]
cdq
sub eax, edx
sar eax, 1
add eax, esi
cdqe
movsd qword [rbx + rax*8 + 0x2c18], xmm0
movsd xmm2, qword [rdi + 0xfa0]
movsd xmm0, qword [rdi + 0x15e0]
movaps xmm3, xmm2
mulsd xmm3, qword [0x1801b8c08]
movaps xmm1, xmm2
mulsd xmm1, xmm2
divsd xmm3, xmm0
mulsd xmm0, xmm0
divsd xmm1, xmm0
movaps xmm0, xmm2
mulsd xmm0, qword [0x1801b8b28]
mulsd xmm0, xmm2
subsd xmm1, xmm0
andps xmm1, xmm4
movsd xmm0, qword [rdi - 0xfa8]
mov eax, dword [rbx]
movsd qword [rsp + 0x28], xmm0
cdq
xorps xmm0, xmm15
sqrtpd xmm2, xmm1
sub eax, edx
sar eax, 1
movsxd rcx, eax
shl rcx, 6
add rcx, qword [rbx + 8]
movsd qword [rsp + 0x38], xmm0
movaps xmm0, xmm3
mulsd xmm2, qword [0x1801a1288]
unpcklpd xmm0, xmm2
movaps xmm1, xmm2
movups xmmword [rcx], xmm0
movaps xmm0, xmm3
xorps xmm1, xmm15
unpcklpd xmm0, xmm1
movups xmmword [rcx + 0x10], xmm0
movups xmm0, xmmword [rsp + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [rcx + 0x30], xmm0
add dword [rbx], 2
mov eax, dword [rbx + 0x54]
cdq
sub eax, edx
sar eax, 1
cmp esi, eax
jl 0x1800a9ec0
movaps xmm15, xmmword [rsp + 0x360]
ucomisd xmm8, xmm11
mov rdi, qword [rsp + 0x430]
movaps xmm10, xmmword [rsp + 0x3a0]
je 0x1800aa160
mov eax, dword [rbx + 0x54]
xorps xmm0, xmm0
cdq
mulsd xmm8, xmm13
sub eax, edx
sar eax, 1
inc eax
add eax, esi
cdqe
subsd xmm8, xmm7
divsd xmm12, xmm8
sqrtsd xmm0, xmm12
mulsd xmm0, qword [0x1801b8c28]
movsd qword [rbx + rax*8 + 0x28f8], xmm0
mov eax, dword [rbx + 0x54]
cdq
unpcklpd xmm0, xmm11
sub eax, edx
sar eax, 1
inc eax
add eax, esi
cdqe
mov qword [rbx + rax*8 + 0x2c18], r13
mov eax, dword [rbx]
cdq
sub eax, edx
sar eax, 1
movsxd rcx, eax
shl rcx, 6
add rcx, qword [rbx + 8]
movups xmmword [rcx], xmm0
xorps xmm0, xmm0
movups xmmword [rcx + 0x10], xmm0
movups xmm0, xmmword [0x1801b9e70]
movups xmmword [rcx + 0x20], xmm0
xorps xmm0, xmm0
movups xmmword [rcx + 0x30], xmm0
inc dword [rbx]
movaps xmm13, xmmword [rsp + 0x370]
movaps xmm12, xmmword [rsp + 0x380]
movaps xmm11, xmmword [rsp + 0x390]
movaps xmm8, xmmword [rsp + 0x3c0]
mov rsi, qword [rsp + 0x428]
test r15b, 1
jne 0x1800aa1af
mulsd xmm9, qword [0x1801b9e58]
movsd xmm0, qword [0x18019f520]
movaps xmm1, xmm9
call fcn.18017d7f8
movaps xmm7, xmm0
movsd qword [rbx + 0x18], xmm7
movaps xmm7, xmmword [rsp + 0x3d0]
mov qword [rbx + 0x10], r13
mov r13, qword [rsp + 0x3f8]
movaps xmm6, xmmword [rsp + 0x3e0]
movaps xmm9, xmmword [rsp + 0x3b0]
add rsp, 0x408
pop r15
pop rbx
ret