Function at 0x14009f8e0
Capabilities:
Encode data using xor
Encrypt data using rc4 prga
Hash data using fnv

Disassembly:
mov qword [rsp + 0x20], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov rbx, rdx
mov r14, rcx
mov rax, qword [rdx + 0x10]
mov r8, qword [rax]
mov qword [rcx], r8
movzx eax, r8b
and al, 1
je 0x14009f920
and r8, 0xfffffffffffffffc
mov eax, 1
lock xadd qword [r8 + 8], rax
mov byte [rcx + 8], 7
mov rcx, qword [rdx + 8]
test rcx, rcx
jne 0x14009f93d
lea rax, [0x1400d94f0]
mov qword [r14 + 0x10], rax
jmp 0x14009fc70
mov r8, r14
xor edx, edx
call fcn.1400a1090
mov qword [r14 + 0x10], rax
lea rdi, [rax + 0x10]
mov rcx, qword [rbx]
xor edx, edx
mov qword [rbx], rdx
mov rax, qword [rbx + 8]
lea rbp, [rax + rax*2]
shl rbp, 4
add rbp, rcx
mov qword [rsp + 0xa0], rbp
mov rax, qword [r14 + 0x10]
cmp dword [rax + 4], 0x12
ja 0x14009faaf
mov dword [rax], edx
cmp rcx, rbp
je 0x14009fc70
lea rbx, [rcx + 0xc]
lea r15, [0x1400a8080]
lea r12, [0x1400ce040]
nop dword [rax]
movups xmm0, xmmword [rbx + 0xc]
movups xmmword [rdi], xmm0
movsd xmm1, qword [rbx + 0x1c]
movsd qword [rdi + 0x10], xmm1
mov qword [rbx + 0xc], rdx
mov byte [rbx + 0x14], 0
movzx eax, byte [rbx - 0xc]
and al, 1
je 0x14009f9eb
mov rcx, qword [rbx - 0xc]
and rcx, 0xfffffffffffffffc
mov rax, 0xffffffffffffffff
lock xadd qword [rcx + 8], rax
cmp rax, 1
jne 0x14009f9eb
test rcx, rcx
je 0x14009f9eb
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov eax, dword [rbx]
mov rcx, qword [rbx + 4]
mov byte [rbx - 4], 0x85
mov qword [rdi + 0x18], rcx
mov dword [rdi + 0x20], eax
add rbx, 0x30
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x28], rax
movaps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rsp + 0x30], xmm0
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x40]
mov rcx, r14
call fcn.1400a19d0
mov rsi, qword [rsp + 0x40]
test rsi, rsi
jne 0x14009fa3d
add rdi, 0x28
mov rax, qword [r14 + 0x10]
inc dword [rax]
jmp 0x14009fa98
mov r8, qword [rsi]
movzx eax, r8b
and al, 3
cmp al, 2
je 0x14009fa77
mov rdx, qword [rsi + 0x18]
cmp rdx, r15
je 0x14009fa77
mov rax, r8
and rax, 0xfffffffffffffffc
mov rcx, r12
test r8, r8
cmovne rcx, rax
mov r8d, dword [rsi + 0x20]
inc r8d
mov rax, qword [rcx]
mov r9d, 1
call qword [rax + 0x10]
mov rcx, rsi
call fcn.1400a0c30
nop
movups xmm0, xmmword [rdi]
movups xmmword [rsi], xmm0
movups xmm1, xmmword [rdi + 0x10]
movups xmmword [rsi + 0x10], xmm1
movsd xmm0, qword [rdi + 0x20]
movsd qword [rsi + 0x20], xmm0
lea rax, [rbx - 0xc]
cmp rax, rbp
mov edx, 0
jne 0x14009f9a0
jmp 0x14009fc70
movabs rbx, 0x6666666666666667
cmp rcx, rbp
je 0x14009fc4e
lea rsi, [rcx + 0xc]
movabs r13, 0x340d631b7bdddcdb
movabs r9, 0x100000001b3
nop word [rax + rax]
movups xmm0, xmmword [rsi + 0xc]
movups xmmword [rdi], xmm0
movsd xmm1, qword [rsi + 0x1c]
movsd qword [rdi + 0x10], xmm1
mov qword [rsi + 0xc], rdx
mov byte [rsi + 0x14], 0
movzx eax, byte [rsi - 0xc]
and al, 1
je 0x14009fb35
mov rcx, qword [rsi - 0xc]
and rcx, 0xfffffffffffffffc
mov rax, 0xffffffffffffffff
lock xadd qword [rcx + 8], rax
cmp rax, 1
jne 0x14009fb35
test rcx, rcx
je 0x14009fb35
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
movabs r9, 0x100000001b3
mov eax, dword [rsi]
mov r12, qword [rsi + 4]
mov byte [rsi - 4], 0x85
mov qword [rdi + 0x18], r12
mov dword [rdi + 0x20], eax
add rsi, 0x30
mov r15d, eax
mov rbp, qword [r14 + 0x10]
mov rcx, r12
mov r8, qword [rbp + 8]
sub r8, r13
mov edx, eax
test eax, eax
je 0x14009fb76
movsx rax, byte [rcx]
xor r8, rax
imul r8, r9
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x14009fb61
mov ecx, dword [rbp + 4]
xor edx, edx
mov rax, r8
div rcx
lea rax, [rcx + rcx*4]
lea rcx, [rdx + rax*2]
lea r13, [rcx*4]
mov eax, dword [r13 + rbp + 0x10]
mov dword [rsp + 0x98], eax
cmp eax, 0xffffffff
je 0x14009fbee
nop dword [rax]
nop word [rax + rax]
lea rcx, [rax + rax*4]
lea rbx, [rcx*8]
add rbx, rbp
mov r8d, dword [rbx + 0x30]
cmp r8, r15
jne 0x14009fbdc
mov rdx, r12
mov rcx, qword [rbx + 0x28]
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x14009fc8b
mov eax, dword [rbx + 0x34]
cmp eax, 0xffffffff
jne 0x14009fbb0
movabs rbx, 0x6666666666666667
mov eax, dword [rsp + 0x98]
mov dword [rdi + 0x24], eax
mov rax, qword [r14 + 0x10]
add rax, 0x10
mov rcx, rdi
sub rcx, rax
mov rax, rbx
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov dword [r13 + rbp + 0x10], edx
add rdi, 0x28
lea rcx, [rsi - 0xc]
cmp rcx, qword [rsp + 0xa0]
mov edx, 0
movabs r9, 0x100000001b3
movabs r13, 0x340d631b7bdddcdb
jne 0x14009fae0
mov r8, qword [r14 + 0x10]
lea rcx, [r8 + 0x10]
sub rdi, rcx
mov rax, rbx
imul rdi
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov dword [r8], edx
mov rax, r14
mov rbx, qword [rsp + 0xa8]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov eax, dword [rbx + 0x34]
mov dword [rdi + 0x24], eax
mov rcx, qword [rbx + 0x10]
movzx eax, cl
and al, 3
cmp al, 2
je 0x14009fcd3
mov rdx, qword [rbx + 0x28]
lea rax, [0x1400a8080]
cmp rdx, rax
je 0x14009fcd3
test rcx, rcx
je 0x14009fcb9
and rcx, 0xfffffffffffffffc
jmp 0x14009fcc0
lea rcx, [0x1400ce040]
mov r8d, dword [rbx + 0x30]
inc r8d
mov rax, qword [rcx]
mov r9d, 1
call qword [rax + 0x10]
lea rcx, [rbx + 0x10]
call fcn.1400a0c30
nop
movups xmm0, xmmword [rdi]
movups xmmword [rbx + 0x10], xmm0
movups xmm1, xmmword [rdi + 0x10]
movups xmmword [rbx + 0x20], xmm1
movsd xmm0, qword [rdi + 0x20]
movsd qword [rbx + 0x30], xmm0
movabs rbx, 0x6666666666666667
jmp 0x14009fc23