Function at 0x1400858a0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r15
mov eax, 0x54d0
call fcn.140156570
sub rsp, rax
movaps xmmword [rsp + 0x54c0], xmm6
movsxd rbp, r8d
mov qword [rsp + 0x5510], r14
mov esi, ebp
mov r14, rcx
mov rcx, qword [rcx]
cmp byte [r14 + 0x18], 0
mov rdx, qword [rcx + 8]
mov rax, qword [r14 + 8]
movsxd r15, dword [rcx]
movsd xmm0, qword [rdx]
mov r13, qword [rax + 8]
maxsd xmm0, xmm1
movsxd rax, dword [rcx + 4]
lea r8d, [r15 - 1]
mov dword [rsp + 0x5520], r8d
movsd xmm6, qword [rdx + rax*8 - 8]
minsd xmm6, xmm0
jne 0x140085916
cmp r8d, ebp
cmovl esi, r8d
movaps xmm1, xmm6
call fcn.14009a300
mov rcx, qword [r14]
mov r9d, esi
movsxd rbx, eax
movaps xmm1, xmm6
lea rax, [rsp + 0x670]
mov r8d, ebx
mov qword [rsp + 0x20], rax
call fcn.1400b8290
cmp byte [r14 + 0x18], 0
lea r9d, [r15 - 1]
mov r14, qword [rsp + 0x5510]
mov r12, rbx
movsxd r10, r9d
mov rdi, rbp
jne 0x140085b9d
mov r11, qword [rsp + 0x5528]
xor ecx, ecx
cmp r15, rbp
jg 0x1400859a5
lea rdx, [r15*2 + 1]
sub rdi, r15
add rdx, r15
inc rdi
lea rdx, [r11 + rdx*8]
nop dword [rax]
nop word [rax + rax]
mov qword [rdx + 8], rcx
mov qword [rdx], rcx
mov qword [rdx - 8], rcx
lea rdx, [rdx + 0x18]
sub rdi, 1
jne 0x140085990
movsxd rsi, esi
test rsi, rsi
js 0x140085ee9
mov rdi, rcx
lea rbx, [rsp + 0x678]
lea rdx, [r11 + 0x10]
inc rsi
mov qword [rdx], rcx
xorps xmm6, xmm6
mov qword [rdx - 8], rcx
mov r11, rcx
mov qword [rdx - 0x10], rcx
test r10, r10
js 0x140085b77
xorps xmm5, xmm5
xorps xmm4, xmm4
cmp r9d, 3
jl 0x140085b01
mov rax, r12
lea r8, [r13 + 0x10]
sub rax, r10
mov r9, rbx
shl rax, 5
add r8, rax
lea rax, [r10 + 1]
shr rax, 2
lea r11, [rax*4]
movsd xmm3, qword [r9 - 8]
movaps xmm0, xmm3
movaps xmm1, xmm3
mulsd xmm0, qword [r8 - 0x10]
addsd xmm0, xmm6
movsd qword [rdx - 0x10], xmm0
mulsd xmm1, qword [r8 - 8]
addsd xmm1, xmm5
movsd qword [rdx - 8], xmm1
mulsd xmm3, qword [r8]
addsd xmm3, xmm4
movsd xmm4, qword [r9]
movaps xmm2, xmm4
movsd qword [rdx], xmm3
mulsd xmm2, qword [r8 + 0x10]
addsd xmm2, xmm0
movaps xmm0, xmm4
movsd qword [rdx - 0x10], xmm2
mulsd xmm0, qword [r8 + 0x18]
addsd xmm0, xmm1
movsd qword [rdx - 8], xmm0
mulsd xmm4, qword [r8 + 0x20]
addsd xmm4, xmm3
movsd xmm3, qword [r9 + 8]
movaps xmm1, xmm3
movsd qword [rdx], xmm4
mulsd xmm1, qword [r8 + 0x30]
addsd xmm1, xmm2
movaps xmm2, xmm3
movsd qword [rdx - 0x10], xmm1
mulsd xmm2, qword [r8 + 0x38]
addsd xmm2, xmm0
movsd qword [rdx - 8], xmm2
mulsd xmm3, qword [r8 + 0x40]
addsd xmm3, xmm4
movsd xmm4, qword [r9 + 0x10]
movaps xmm6, xmm4
movaps xmm5, xmm4
add r9, 0x20
movsd qword [rdx], xmm3
mulsd xmm6, qword [r8 + 0x50]
addsd xmm6, xmm1
movsd qword [rdx - 0x10], xmm6
mulsd xmm5, qword [r8 + 0x58]
addsd xmm5, xmm2
movsd qword [rdx - 8], xmm5
mulsd xmm4, qword [r8 + 0x60]
sub r8, 0xffffffffffffff80
addsd xmm4, xmm3
movsd qword [rdx], xmm4
sub rax, 1
jne 0x140085a11
cmp r11, r10
jg 0x140085b77
lea rax, [rdi + r11]
lea r9, [rsp + 0x670]
lea r9, [r9 + rax*8]
mov rax, r11
sub rax, r10
lea r8, [r13 + 0x10]
add rax, r12
shl rax, 5
add r8, rax
mov rax, r10
sub rax, r11
inc rax
movsd xmm1, qword [r9]
add r9, 8
movaps xmm0, xmm1
mulsd xmm0, qword [r8 - 0x10]
addsd xmm6, xmm0
movaps xmm0, xmm1
movsd qword [rdx - 0x10], xmm6
mulsd xmm0, qword [r8 - 8]
addsd xmm5, xmm0
movsd qword [rdx - 8], xmm5
mulsd xmm1, qword [r8]
add r8, 0x20
addsd xmm4, xmm1
movsd qword [rdx], xmm4
sub rax, 1
jne 0x140085b33
mov r9d, dword [rsp + 0x5520]
add rbx, 0x190
add rdx, 0x18
add rdi, 0x32
sub rsi, 1
jne 0x1400859c3
jmp 0x140085ee9
xor ecx, ecx
movaps xmmword [rsp + 0x54b0], xmm7
movaps xmmword [rsp + 0x54a0], xmm8
test ebp, ebp
js 0x140085de3
movaps xmmword [rsp + 0x5490], xmm9
lea r8, [rsp + 0x38]
mov esi, ecx
lea rbx, [rsp + 0x678]
inc ebp
mov qword [r8 - 8], rcx
mov r11, rcx
mov qword [r8], rcx
mov qword [r8 + 8], rcx
mov qword [r8 + 0x10], rcx
test r10, r10
js 0x140085db9
xorps xmm6, xmm6
xorps xmm7, xmm7
xorps xmm8, xmm8
xorps xmm9, xmm9
cmp r9d, 3
jl 0x140085d2b
mov rax, r12
lea rdx, [r13 + 0x10]
sub rax, r10
mov r9, rbx
shl rax, 5
add rdx, rax
lea rax, [r10 + 1]
shr rax, 2
lea r11, [rax*4]
nop dword [rax]
movsd xmm3, qword [r9 - 8]
movsd xmm4, qword [r9]
movaps xmm1, xmm3
mulsd xmm1, qword [rdx - 0x10]
movaps xmm0, xmm4
mulsd xmm0, qword [rdx + 0x10]
movaps xmm2, xmm3
mulsd xmm2, qword [rdx - 8]
movsd xmm5, qword [r9 + 8]
addsd xmm6, xmm1
movaps xmm1, xmm5
mulsd xmm1, qword [rdx + 0x30]
addsd xmm7, xmm2
movaps xmm2, xmm3
mulsd xmm2, qword [rdx]
addsd xmm6, xmm0
mulsd xmm3, qword [rdx + 8]
movaps xmm0, xmm4
mulsd xmm0, qword [rdx + 0x18]
addsd xmm6, xmm1
movaps xmm1, xmm5
mulsd xmm1, qword [rdx + 0x38]
addsd xmm8, xmm2
movsd xmm2, qword [r9 + 0x10]
addsd xmm9, xmm3
addsd xmm7, xmm0
add r9, 0x20
movaps xmm0, xmm4
mulsd xmm4, qword [rdx + 0x28]
mulsd xmm0, qword [rdx + 0x20]
addsd xmm7, xmm1
movaps xmm1, xmm5
mulsd xmm1, qword [rdx + 0x40]
addsd xmm9, xmm4
mulsd xmm5, qword [rdx + 0x48]
addsd xmm8, xmm0
movaps xmm0, xmm2
mulsd xmm0, qword [rdx + 0x50]
addsd xmm8, xmm1
movaps xmm1, xmm2
mulsd xmm1, qword [rdx + 0x58]
addsd xmm9, xmm5
addsd xmm6, xmm0
movaps xmm0, xmm2
mulsd xmm0, qword [rdx + 0x60]
mulsd xmm2, qword [rdx + 0x68]
sub rdx, 0xffffffffffffff80
addsd xmm7, xmm1
addsd xmm8, xmm0
addsd xmm9, xmm2
sub rax, 1
jne 0x140085c30
movsd qword [r8 - 8], xmm6
movsd qword [r8], xmm7
movsd qword [r8 + 8], xmm8
movsd qword [r8 + 0x10], xmm9
cmp r11, r10
jg 0x140085db9
lea rax, [r11 + rsi]
lea r9, [rsp + 0x670]
lea r9, [r9 + rax*8]
mov rax, r11
sub rax, r10
lea rdx, [r13 + 0x10]
add rax, r12
shl rax, 5
add rdx, rax
mov rax, r10
sub rax, r11
inc rax
movsd xmm2, qword [r9]
add r9, 8
movaps xmm0, xmm2
movaps xmm1, xmm2
mulsd xmm0, qword [rdx - 0x10]
mulsd xmm1, qword [rdx - 8]
addsd xmm6, xmm0
movaps xmm0, xmm2
mulsd xmm0, qword [rdx]
mulsd xmm2, qword [rdx + 8]
addsd xmm7, xmm1
add rdx, 0x20
addsd xmm8, xmm0
addsd xmm9, xmm2
sub rax, 1
jne 0x140085d61
movsd qword [r8 - 8], xmm6
movsd qword [r8], xmm7
movsd qword [r8 + 8], xmm8
movsd qword [r8 + 0x10], xmm9
mov r9d, dword [rsp + 0x5520]
add rbx, 0x190
add r8, 0x20
add rsi, 0x32
sub rbp, 1
jne 0x140085bd2
movaps xmm9, xmmword [rsp + 0x5490]
test rdi, rdi
js 0x140085ed8
mov r11, qword [rsp + 0x5528]
lea rbx, [rsp + 0x38]
movsd xmm8, qword [rsp + 0x48]
lea rsi, [0x1401ab270]
movsd xmm7, qword [0x140158af0]
add r11, 0xffffffffffffffe8
nop dword [rax]
nop word [rax + rax]
movsd xmm3, qword [rbx - 8]
mov eax, 1
movsd xmm4, qword [rbx]
movsd xmm5, qword [rbx + 8]
movsd xmm6, qword [rsi + rcx*8]
cmp rcx, rax
jb 0x140085ea3
lea r9, [rsi - 8]
mov rdx, r11
lea r9, [r9 + rcx*8]
lea r8, [rsp + 0x68]
lea r10, [r11 + 0x10]
movsd xmm2, qword [r8]
add r8, 0x20
movsd xmm0, qword [rsi + rax*8]
xorps xmm2, xmm7
mulsd xmm0, qword [r9]
inc rax
sub r9, 8
mulsd xmm2, xmm6
divsd xmm2, xmm0
movaps xmm0, xmm2
movaps xmm1, xmm2
mulsd xmm0, qword [rdx]
mulsd xmm1, qword [rdx + 8]
sub rdx, 0x18
mulsd xmm2, qword [r10]
sub r10, 0x18
addsd xmm3, xmm0
addsd xmm4, xmm1
addsd xmm5, xmm2
cmp rax, rcx
jle 0x140085e51
divsd xmm3, xmm8
inc rcx
add rbx, 0x20
divsd xmm4, xmm8
divsd xmm5, xmm8
movsd qword [r11 + 0x18], xmm3
movsd qword [r11 + 0x20], xmm4
movsd qword [r11 + 0x28], xmm5
add r11, 0x18
cmp rcx, rdi
jle 0x140085e20
movaps xmm7, xmmword [rsp + 0x54b0]
movaps xmm8, xmmword [rsp + 0x54a0]
movaps xmm6, xmmword [rsp + 0x54c0]
add rsp, 0x54d0
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret