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

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r14
mov rbp, rsp
sub rsp, 0x50
mov rdi, rdx
mov r14, rcx
lea rbx, [rcx + 0x10]
mov qword [rbp + 0x48], rbx
mov rcx, rbx
call fcn.18009487c
test eax, eax
jne 0x180058c77
mov eax, dword [rbx + 0x4c]
cmp eax, 0x7fffffff
je 0x180058c67
cmp byte [r14 + 9], 0
je 0x180058c55
call fcn.18005c0cc
test al, al
je 0x180058c55
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov r9d, eax
mov dword [rbp + 0x30], eax
movabs rdx, 0xcbf29ce484222325
xor r8d, r8d
movzx ecx, byte [rbp + r8 + 0x30]
xor rdx, rcx
movabs rax, 0x100000001b3
imul rdx, rax
inc r8
cmp r8, 4
jb 0x180058a4f
mov rcx, qword [r14 + 0x200]
and rcx, rdx
add rcx, rcx
mov r8, qword [r14 + 0x1e8]
mov rax, qword [r8 + rcx*8 + 8]
mov rdx, qword [r14 + 0x1d8]
cmp rax, rdx
je 0x180058aab
mov r10, qword [r8 + rcx*8]
jmp 0x180058aa3
cmp rax, r10
je 0x180058aab
mov rax, qword [rax + 8]
cmp r9d, dword [rax + 0x10]
jne 0x180058a9a
jmp 0x180058aad
xor eax, eax
test rax, rax
cmove rax, rdx
cmp rax, rdx
je 0x180058abf
mov rcx, qword [rax + 0x18]
jmp 0x180058ac1
xor ecx, ecx
mov qword [r14 + 0x210], rcx
test rcx, rcx
je 0x180058c55
and qword [rbp + 0x40], 0
mov rax, qword [rdi]
lea r8, [rbp + 0x40]
lea rdx, [0x1800da3a0]
mov rcx, rdi
call qword [rax]
test eax, eax
jne 0x180058c55
mov rax, qword [0x1801b8db0]
test rax, rax
je 0x180058b06
mov rcx, qword [rax + 0xa0]
jmp 0x180058b08
xor ecx, ecx
cmp qword [rcx + 0x10], 0
jne 0x180058b14
call fcn.18001ae3c
call fcn.18001f560
mov rcx, r14
call fcn.18005e1f4
mov rcx, qword [rbp + 0x40]
mov rax, qword [rcx]
call qword [rax + 0x120]
mov edi, eax
call fcn.1800258c4
and dword [rbp - 4], 0
and dword [rbp - 0x20], 0
and dword [rbp - 0x1c], 0
lea rdi, [rdi + rdi*2]
mov rcx, qword [r14 + 0x220]
mov rax, qword [rcx + rdi*8 + 0x10]
mov qword [rbp - 0x18], rax
or dword [rbp - 0x10], 0xffffffff
and dword [rbp - 0xc], 0
mov dword [rbp - 8], 4
mov rcx, qword [rcx + rdi*8 + 8]
mov rax, qword [rcx]
call qword [rax + 0x40]
lea rsi, [r14 + 0x1c0]
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov rdx, qword [r14 + 0x220]
xor r8d, r8d
mov rdx, qword [rdx + rdi*8 + 8]
call qword [rax + 0x50]
mov rcx, qword [rsi]
mov rax, qword [rcx]
lea r8, [rbp - 0x20]
mov edx, 1
call qword [rax + 0xd0]
mov rcx, qword [rsi]
mov r10, qword [rcx]
mov rax, qword [r14 + 0x220]
lea r8, [rax + rdi*8]
and qword [rsp + 0x20], 0
xor r9d, r9d
lea edx, [r9 + 1]
call qword [r10 + 0x170]
mov rcx, qword [rsi]
mov rax, qword [rcx]
lea r8, [r14 + 0x1b0]
mov edx, 1
call qword [rax + 0xe0]
mov rax, qword [0x1801b8db0]
mov rcx, qword [rax + 0x48a8]
mov rdx, qword [rcx]
add rdx, 0x48
mov al, byte [rdx]
neg al
sbb rcx, rcx
and rcx, rdx
mov rdx, qword [rsi]
call fcn.18001a574
mov dword [rbp - 0xc], 4
and dword [rbp - 8], 0
mov rcx, qword [rsi]
mov rax, qword [rcx]
lea r8, [rbp - 0x20]
mov edx, 1
call qword [rax + 0xd0]
mov rcx, qword [rsi]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rcx, qword [r14 + 0x210]
mov rax, qword [rcx]
mov r8, rsi
mov edx, 1
call qword [rax + 0x50]
mov rcx, qword [rbp + 0x40]
test rcx, rcx
je 0x180058c55
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rcx, rbx
add rsp, 0x50
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
jmp fcn.1800948a4
dec eax
mov dword [rbx + 0x4c], eax
mov ecx, 6
call fcn.18009465c
int3
mov ecx, 5
call fcn.18009465c
int3