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

Disassembly:
push rbx
sub rsp, 0x60
movabs rax, 0xfffffffffffffff
mov ebx, 1
bsr rcx, rax
mov eax, ebx
shl rax, cl
cmp rdx, rax
jbe 0x18005d301
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]
mov qword [rsp + 0x70], rbp
mov rbp, qword [0x1801a8608]
or rax, rbx
bsr rcx, rax
mov qword [rsp + 0x80], rsi
mov r8, rbp
inc ecx
mov qword [rsp + 0x88], rdi
shl rbx, cl
lea rcx, [0x1801a8618]
lea rdx, [rbx + rbx]
call fcn.18005ce00
mov rdi, qword [0x1801a8608]
lea r10, [rbx - 1]
mov qword [0x1801a8630], r10
mov qword [0x1801a8638], rbx
mov rdi, qword [rdi]
mov rsi, rdi
cmp rdi, rbp
je 0x18005d50e
mov qword [rsp + 0x58], r12
movabs r11, 0x100000001b3
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x40], r15
movups xmm0, xmmword [rdi + 0x10]
mov r8, qword [rdi + 0x18]
xor edx, edx
mov rsi, qword [rsi]
movabs rax, 0xcbf29ce484222325
movaps xmmword [rsp + 0x20], xmm0
test r8, r8
je 0x18005d3c4
mov r9, qword [rsp + 0x20]
nop dword [rax]
movzx ecx, byte [rdx + r9]
inc rdx
xor rax, rcx
imul rax, r11
cmp rdx, r8
jb 0x18005d3b0
mov r13, qword [0x1801a8618]
and rax, r10
shl rax, 4
add r13, rax
mov r12, qword [r13]
cmp r12, rbp
jne 0x18005d3eb
mov qword [r13], rdi
mov qword [r13 + 8], rdi
jmp 0x18005d4c0
mov rbx, qword [r13 + 8]
movaps xmmword [rsp + 0x30], xmm0
movups xmm0, xmmword [rbx + 0x10]
movaps xmmword [rsp + 0x20], xmm0
cmp r8, qword [rbx + 0x18]
jne 0x18005d445
mov rdx, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x30]
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x18005d445
mov r8, qword [rbx]
cmp r8, rdi
je 0x18005d43f
mov rdx, qword [rdi + 8]
mov qword [rdx], rsi
mov rcx, qword [rsi + 8]
mov qword [rcx], r8
mov rax, qword [r8 + 8]
mov qword [rax], rdi
mov qword [r8 + 8], rcx
mov qword [rsi + 8], rdx
mov qword [rdi + 8], rax
mov qword [r13 + 8], rdi
jmp 0x18005d4b6
mov r14, rbx
cmp r12, rbx
je 0x18005d491
movups xmm0, xmmword [rdi + 0x10]
movaps xmmword [rsp + 0x20], xmm0
mov r15, qword [rsp + 0x28]
nop dword [rax + rax]
mov rbx, qword [rbx + 8]
mov r14, rbx
movups xmm0, xmmword [rbx + 0x10]
movaps xmmword [rsp + 0x30], xmm0
cmp r15, qword [rbx + 0x18]
jne 0x18005d48c
mov rdx, qword [rsp + 0x30]
mov r8, r15
mov rcx, qword [rsp + 0x20]
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x18005d4d4
cmp r12, rbx
jne 0x18005d460
mov rdx, qword [rdi + 8]
mov qword [rdx], rsi
mov rcx, qword [rsi + 8]
mov qword [rcx], r14
mov rax, qword [r14 + 8]
mov qword [rax], rdi
mov qword [r14 + 8], rcx
mov qword [rsi + 8], rdx
mov qword [rdi + 8], rax
mov qword [r13], rdi
movabs r11, 0x100000001b3
mov rdi, rsi
cmp rsi, rbp
je 0x18005d4fa
mov r10, qword [0x1801a8630]
jmp 0x18005d386
mov r8, qword [rbx]
mov rdx, qword [rdi + 8]
mov qword [rdx], rsi
mov rcx, qword [rsi + 8]
mov qword [rcx], r8
mov rax, qword [r8 + 8]
mov qword [rax], rdi
mov qword [r8 + 8], rcx
mov qword [rsi + 8], rdx
mov qword [rdi + 8], rax
jmp 0x18005d4b6
mov r14, qword [rsp + 0x48]
mov r13, qword [rsp + 0x50]
mov r12, qword [rsp + 0x58]
mov r15, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x80]
mov rbp, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x88]
add rsp, 0x60
pop rbx
ret