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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov r15, rcx
movabs rax, 0xfffffffffffffff
bsr rcx, rax
mov edi, 1
mov eax, edi
shl rax, cl
cmp rdx, rax
jbe 0x14011c5aa
lea rcx, str.invalid_hash_bucket_count
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
int3
lea rax, [rdx - 1]
or rax, rdi
bsr rcx, rax
inc ecx
shl rdi, cl
mov rbx, qword [r15 + 8]
lea rdx, [rdi + rdi]
mov r8, rbx
lea rcx, [r15 + 0x18]
call fcn.1400e11c0
lea rax, [rdi - 1]
mov qword [r15 + 0x30], rax
mov qword [r15 + 0x38], rdi
mov qword [rsp + 0x68], r15
mov rcx, qword [r15 + 8]
mov rcx, qword [rcx]
mov r8, rcx
cmp rcx, rbx
je 0x14011c79a
movabs rax, 0xcbf29ce484222325
movabs r13, 0x100000001b3
nop word [rax + rax]
mov r8, qword [r8]
movups xmm0, xmmword [rcx + 0x10]
movaps xmmword [rsp + 0x20], xmm0
mov r9, rax
mov rax, qword [rcx + 0x18]
lea r10, [rax + rax]
xor edx, edx
test r10, r10
je 0x14011c654
mov r11, qword [rsp + 0x20]
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rdx + r11]
xor r9, rax
imul r9, r13
inc rdx
cmp rdx, r10
jb 0x14011c640
mov r14, qword [r15 + 0x30]
and r14, r9
shl r14, 4
add r14, qword [r15 + 0x18]
mov rsi, qword [r14]
cmp rsi, rbx
jne 0x14011c677
mov qword [r14], rcx
mov qword [r14 + 8], rcx
jmp 0x14011c784
mov rax, qword [r14 + 8]
movaps xmmword [rsp + 0x20], xmm0
mov r9, qword [rax + 0x10]
mov r10, qword [rcx + 0x18]
cmp r10, qword [rax + 0x18]
jne 0x14011c6e7
test r10, r10
je 0x14011c6b5
mov r11, qword [rsp + 0x20]
sub r11, r9
nop dword [rax + rax]
movzx edx, word [r9 + r11]
cmp dx, word [r9]
jne 0x14011c6e7
add r9, 2
sub r10, 1
jne 0x14011c6a0
mov rdx, qword [rax]
cmp rdx, rcx
je 0x14011c6de
mov r10, qword [rcx + 8]
mov qword [r10], r8
mov r9, qword [r8 + 8]
mov qword [r9], rdx
mov rax, qword [rdx + 8]
mov qword [rax], rcx
mov qword [rdx + 8], r9
mov qword [r8 + 8], r10
mov qword [rcx + 8], rax
mov qword [r14 + 8], rcx
jmp 0x14011c784
cmp rsi, rax
je 0x14011c760
movaps xmmword [rsp + 0x20], xmm0
mov rdi, qword [rsp + 0x28]
mov rbp, qword [rsp + 0x20]
nop dword [rax + rax]
mov rax, qword [rax + 8]
mov rdx, qword [rax + 0x10]
cmp rdi, qword [rax + 0x18]
jne 0x14011c75b
mov r10, rdi
test rdi, rdi
je 0x14011c735
mov r11, rbp
sub r11, rdx
nop dword [rax]
movzx r9d, word [r11 + rdx]
cmp r9w, word [rdx]
jne 0x14011c75b
add rdx, 2
sub r10, 1
jne 0x14011c720
mov rax, qword [rax]
mov r10, qword [rcx + 8]
mov qword [r10], r8
mov r9, qword [r8 + 8]
mov qword [r9], rax
mov rdx, qword [rax + 8]
mov qword [rdx], rcx
mov qword [rax + 8], r9
mov qword [r8 + 8], r10
mov qword [rcx + 8], rdx
jmp 0x14011c784
cmp rsi, rax
jne 0x14011c700
mov r10, qword [rcx + 8]
mov qword [r10], r8
mov r9, qword [r8 + 8]
mov qword [r9], rax
mov rdx, qword [rax + 8]
mov qword [rdx], rcx
mov qword [rax + 8], r9
mov qword [r8 + 8], r10
mov qword [rcx + 8], rdx
mov qword [r14], rcx
mov rcx, r8
cmp r8, rbx
movabs rax, 0xcbf29ce484222325
jne 0x14011c610
mov qword [rsp + 0x68], 0
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
ret