Function at 0x180021a60
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r12
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov rax, qword [0x18014a1c0]
xor rax, rsp
mov qword [rbp - 8], rax
mov rsi, rcx
mov qword [rbp - 0x48], rcx
xor r12d, r12d
lea rcx, [rbp - 0x40]
call fcn.1800137c0
nop
lea rax, [rbp - 0x40]
mov rbx, qword [rbp - 0x40]
mov rdi, qword [rbp - 0x28]
cmp rdi, 0xf
cmova rax, rbx
mov eax, dword [rax]
mov dword [rbp - 0x48], eax
mov r8d, r12d
lea r9, [0x18012de80]
nop
movzx edx, byte [r8 + r9]
xor dl, byte [rbp + r8 - 0x48]
movsx eax, r8b
imul ecx, eax, 0x29
sub dl, cl
mov byte [rbp + r8 - 0x48], dl
inc r8
cmp r8, 4
jb 0x180021ac0
mov rdx, r12
mov r14, qword [rbp - 0x30]
test r14, r14
je 0x180021b26
mov r8, r12
mov rax, rdx
and eax, 3
movsx rcx, byte [rbp + rax - 0x48]
add rcx, r8
lea rax, [rbp - 0x40]
cmp rdi, 0xf
cmova rax, rbx
xor byte [rax + rdx], cl
inc rdx
add r8, 0x29
mov r14, qword [rbp - 0x30]
mov rdi, qword [rbp - 0x28]
mov rbx, qword [rbp - 0x40]
cmp rdx, r14
jb 0x180021af0
lea rcx, [rbp - 0x40]
cmp rdi, 0xf
cmova rcx, rbx
mov rdx, r14
call fcn.180049b70
xorps xmm0, xmm0
cmp eax, dword [rbp - 0x48]
je 0x180021bc7
movups xmmword [rsi], xmm0
mov qword [rsi + 0x10], r12
mov qword [rsi + 0x18], r12
xor r8d, r8d
lea rdx, [0x18012dac5]
mov rcx, rsi
call fcn.1800180c0
nop
mov rdx, qword [rbp - 0x28]
cmp rdx, 0xf
jbe 0x180021b9f
inc rdx
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180021b9a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180021d41
call fcn.1800ce3d0
mov rax, rsi
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.1800ce3b0
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
lea rax, [rbp - 0x40]
cmp rdi, 0xf
cmova rax, rbx
movsxd rax, dword [rax + 4]
mov r15, rax
movdqu xmmword [rbp - 0x20], xmm0
mov qword [rbp - 0x10], r12
test eax, eax
je 0x180021c60
movabs rax, 0x7fffffffffffffff
cmp r15, rax
ja 0x180021d47
cmp r15, 0x1000
jb 0x180021c2f
lea rcx, [r15 + 0x27]
cmp rcx, r15
jbe 0x180021d4d
call fcn.1800ce404
mov rcx, rax
test rax, rax
je 0x180021d3b
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x180021c37
mov rcx, r15
call fcn.1800ce404
mov qword [rbp - 0x20], rax
lea rbx, [rax + r15]
mov qword [rbp - 0x10], rbx
mov r8, r15
xor edx, edx
mov rcx, rax
call fcn.18010d6a0
mov qword [rbp - 0x18], rbx
mov rdi, qword [rbp - 0x28]
mov r14, qword [rbp - 0x30]
mov rbx, qword [rbp - 0x40]
lea r9, [r14 - 8]
lea r8, [rbp - 0x40]
cmp rdi, 0xf
cmova r8, rbx
add r8, 8
mov rdx, r15
mov rcx, qword [rbp - 0x20]
call sym.Solara.dll_ZSTD_decompress
xorps xmm0, xmm0
movups xmmword [rsi], xmm0
mov qword [rsi + 0x10], r12
mov qword [rsi + 0x18], r12
mov rcx, qword [rbp - 0x20]
mov r8, qword [rbp - 0x18]
cmp rcx, r8
jne 0x180021cac
mov qword [rsi + 0x10], r12
mov qword [rsi + 0x18], 0xf
mov byte [rsi], 0
jmp 0x180021cbe
sub r8, rcx
mov rdx, rcx
mov rcx, rsi
call fcn.1800180c0
mov rcx, qword [rbp - 0x20]
test rcx, rcx
je 0x180021cfc
mov rdx, qword [rbp - 0x10]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180021ceb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180021d3b
call fcn.1800ce3d0
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x20], xmm0
mov qword [rbp - 0x10], r12
mov rdx, qword [rbp - 0x28]
cmp rdx, 0xf
jbe 0x180021b9f
inc rdx
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180021b9a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180021d41
jmp 0x180021b9a
call fcn.1800d7b00
nop
call fcn.1800d7b00
nop
call fcn.18001eb70
int3
call fcn.180001c40
int3