Function at 0x14009fc20
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x30
movaps xmmword [rsp + 0x20], xmm6
mov rsi, rcx
lea rdi, [rcx + 0x58]
mov rcx, rdi
call fcn.1400cec6c
test eax, eax
jne 0x14009ff70
cmp dword [rsi + 0xa4], 0x7fffffff
je 0x14009ff7a
mov rax, qword [rsi + 0x20]
mov rbx, qword [rax]
cmp rbx, rax
je 0x14009fe32
movabs r14, 0xcbf29ce484222325
movabs r15, 0x100000001b3
jmp 0x14009fcad
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400cd44c
mov edx, 0x40
mov rcx, rbx
call fcn.1400cd44c
mov rax, qword [rsi + 0x20]
mov rbx, r13
cmp r13, rax
je 0x14009fe32
mov rcx, qword [rbx + 0x38]
test rcx, rcx
je 0x14009fcd0
cmp dword [rcx + 8], 0
je 0x14009fcd0
mov r13, qword [rbx]
jmp 0x14009fca1
lea r12, [rbx + 0x10]
cmp qword [rbx + 0x28], 0x10
mov rcx, r12
jb 0x14009fce2
mov rcx, qword [rbx + 0x10]
mov r8, qword [rbx + 0x20]
mov r11, r14
test r8, r8
je 0x14009fd77
mov edx, r8d
and edx, 3
cmp r8, 4
jae 0x14009fd06
xor r9d, r9d
mov r10, r14
jmp 0x14009fd4c
and r8, 0xfffffffffffffffc
xor r9d, r9d
mov r10, r14
movzx r11d, byte [rcx + r9]
xor r11, r10
imul r11, r15
movzx r10d, byte [rcx + r9 + 1]
xor r10, r11
imul r10, r15
movzx r11d, byte [rcx + r9 + 2]
xor r11, r10
imul r11, r15
movzx r10d, byte [rcx + r9 + 3]
xor r10, r11
imul r10, r15
add r9, 4
cmp r8, r9
jne 0x14009fd10
mov r11, r10
test rdx, rdx
je 0x14009fd77
add rcx, r9
xor r8d, r8d
nop word [rax + rax]
movzx r11d, byte [rcx + r8]
xor r11, r10
imul r11, r15
inc r8
mov r10, r11
cmp rdx, r8
jne 0x14009fd60
and r11, qword [rsi + 0x48]
mov rcx, qword [rsi + 0x30]
lea rdx, [r11 + r11]
mov r8, r11
shl r8, 4
mov r9, qword [rcx + r8]
cmp qword [rcx + rdx*8 + 8], rbx
je 0x14009fdb0
cmp r9, rbx
jne 0x14009fdca
mov rax, qword [rbx]
mov qword [rcx + rdx*8], rax
jmp 0x14009fdca
lea r8, [r11 + r11]
inc r8
cmp r9, rbx
je 0x14009fdc2
mov rax, qword [rbx + 8]
jmp 0x14009fdc6
mov qword [rcx + rdx*8], rax
mov qword [rcx + r8*8], rax
mov r13, qword [rbx]
dec qword [rsi + 0x28]
mov rax, qword [rbx + 8]
mov qword [rax], r13
mov rax, qword [rbx + 8]
mov qword [r13 + 8], rax
mov rcx, qword [rbx + 0x38]
test rcx, rcx
je 0x14009fdf5
lock dec dword [rcx + 0xc]
jne 0x14009fdf5
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rbx + 0x28]
cmp rax, 0x10
jb 0x14009fc90
mov rcx, qword [r12]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14009fc8b
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jb 0x14009fc81
call fcn.1400e193c
mov r15, qword [rsi]
mov rbx, qword [rsi + 8]
cmp r15, rbx
je 0x14009ff54
add r15, 0x10
nop word cs:[rax + rax]
mov rax, qword [r15 - 8]
test rax, rax
je 0x14009fe70
cmp dword [rax + 8], 0
je 0x14009fe70
lea rax, [r15 + 0x10]
cmp r15, rbx
mov r15, rax
jne 0x14009fe50
jmp 0x14009ff54
lea r14, [r15 - 0x10]
cmp r14, rbx
je 0x14009fed1
cmp r15, rbx
je 0x14009fed1
xorps xmm6, xmm6
jmp 0x14009fe9d
add r14, 0x10
add r15, 0x10
cmp r15, rbx
je 0x14009fed1
mov rax, qword [r15 + 8]
test rax, rax
je 0x14009fe94
cmp dword [rax + 8], 0
je 0x14009fe94
mov rcx, qword [r15]
movups xmmword [r15], xmm6
mov qword [r14], rcx
mov rcx, qword [r14 + 8]
mov qword [r14 + 8], rax
test rcx, rcx
je 0x14009fe90
lock dec dword [rcx + 0xc]
jne 0x14009fe90
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14009fe90
cmp r14, rbx
je 0x14009ff54
mov r15, qword [rsi + 8]
cmp r15, rbx
je 0x14009ff22
xorps xmm6, xmm6
jmp 0x14009fefd
add r14, 0x10
add rbx, 0x10
cmp rbx, r15
je 0x14009ff1e
movups xmm0, xmmword [rbx]
movups xmmword [rbx], xmm6
mov rcx, qword [r14 + 8]
movups xmmword [r14], xmm0
test rcx, rcx
je 0x14009fef0
lock dec dword [rcx + 0xc]
jne 0x14009fef0
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14009fef0
mov rbx, qword [rsi + 8]
cmp r14, rbx
je 0x14009ff50
mov r15, r14
jmp 0x14009ff39
add r15, 0x10
cmp r15, rbx
je 0x14009ff50
mov rcx, qword [r15 + 8]
test rcx, rcx
je 0x14009ff30
lock dec dword [rcx + 0xc]
jne 0x14009ff30
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14009ff30
mov qword [rsi + 8], r14
mov rcx, rdi
movaps xmm6, xmmword [rsp + 0x20]
add rsp, 0x30
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.1400cec74
mov ecx, 5
call fcn.1400ce164
mov dword [rsi + 0xa4], 0x7ffffffe
mov ecx, 6
call fcn.1400ce164
int3