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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r12
push r14
push r15
mov rbp, rsp
sub rsp, 0x50
mov r12, r8
mov r14, rdx
mov rdi, rcx
add rcx, 0x50
mov qword [rbp - 0x30], rcx
and dword [rbp - 0x28], 0
and dword [rbp - 0x24], 0
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
je 0x14001ccd5
mov ecx, eax
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_]
nop
mov eax, 1
lock xadd dword [rbp - 0x28], eax
inc eax
cmp eax, 1
jne 0x14001ccf9
cmp dword [rbp - 0x24], 0
jne 0x14001ced1
call qword [sym.imp.MSVCP140.dll__Thrd_id]
mov dword [rbp - 0x24], eax
movabs rcx, 0xcbf29ce484222325
xor edx, edx
movzx eax, byte [rdx + r14]
xor rcx, rax
movabs r8, 0x100000001b3
imul rcx, r8
inc rdx
cmp rdx, 8
jb 0x14001cd05
mov rdx, qword [rdi + 0x30]
and rdx, rcx
add rdx, rdx
mov rcx, qword [rdi + 0x18]
mov rax, qword [rcx + rdx*8 + 8]
cmp rax, qword [rdi + 8]
je 0x14001cd57
mov r8, qword [rcx + rdx*8]
mov rcx, qword [r14]
jmp 0x14001cd4f
cmp rax, r8
je 0x14001cd57
mov rax, qword [rax + 8]
cmp rcx, qword [rax + 0x10]
jne 0x14001cd46
jmp 0x14001cd59
xor eax, eax
test rax, rax
cmove rax, qword [rdi + 8]
cmp rax, qword [rdi + 8]
je 0x14001cd72
mov rdx, r14
mov rcx, rdi
call fcn.14001c7e4
lea rbx, [rdi + 0x40]
cmp qword [rdi + 0x10], 0x20
jb 0x14001cdd1
mov rax, qword [rbx]
mov rdx, qword [rax + 8]
add rdx, 0x10
mov rcx, rdi
call fcn.14001cbc0
mov rax, qword [rbx]
mov rsi, qword [rax + 8]
mov rcx, qword [rsi]
dec qword [rbx + 8]
mov rax, qword [rsi + 8]
mov qword [rax], rcx
mov rax, qword [rsi + 8]
mov qword [rcx + 8], rax
mov rcx, qword [rsi + 0x18]
test rcx, rcx
je 0x14001cdc8
and qword [rsi + 0x18], 0
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [0x1400325b8]
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rax, qword [rbx]
mov r15, qword [rax]
movabs rax, 0x7ffffffffffffff
cmp qword [rbx + 8], rax
jne 0x14001cdf5
lea rcx, str.list_too_long
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
int3
mov qword [rbp - 0x20], rbx
and qword [rbp - 0x18], 0
mov ecx, 0x20
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rsi, rax
test rax, rax
jne 0x14001ce18
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xbad_alloc_void_]
int3
mov rax, qword [r14]
mov qword [rsi + 0x10], rax
mov rcx, qword [r12]
mov qword [rsi + 0x18], rcx
test rcx, rcx
je 0x14001ce39
mov rax, qword [rcx]
mov rax, qword [rax]
call qword [0x1400325b8]
nop
inc qword [rbx + 8]
mov rax, qword [r15 + 8]
mov qword [rsi], r15
mov qword [rsi + 8], rax
mov qword [r15 + 8], rsi
mov qword [rax], rsi
mov rax, qword [rbx]
mov rbx, qword [rax]
mov r8, r14
lea rdx, [rbp - 0x10]
mov rcx, rdi
call fcn.14001ceec
mov rcx, qword [rax]
mov qword [rcx + 0x18], rbx
mov eax, dword [rbp - 0x28]
test eax, eax
je 0x14001ce9a
or eax, 0xffffffff
lock xadd dword [rbp - 0x28], eax
cmp eax, 1
jne 0x14001ce8e
call qword [sym.imp.MSVCP140.dll__Thrd_id]
cmp dword [rbp - 0x24], eax
jne 0x14001cede
and dword [rbp - 0x24], 0
mov rcx, qword [rbp - 0x30]
call qword [sym.imp.MSVCP140.dll__Mtx_unlock]
jmp 0x14001ce6b
cmp dword [rbp - 0x24], 0
je 0x14001ceab
call qword [sym.imp.MSVCP140.dll__Thrd_id]
cmp dword [rbp - 0x24], eax
jne 0x14001cec4
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
xor edx, edx
mov ecx, 0x131f4c3
call fcn.140006298
int3
xor edx, edx
mov ecx, 0x131f4c4
call fcn.140006298
int3
xor edx, edx
mov ecx, 0x131f4c5
call fcn.140006298
int3