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

Disassembly:
push rsi
push rdi
push r14
sub rsp, 0x30
mov rsi, r8
mov r14, rdx
mov rdi, rcx
cmp rdx, r8
je 0x180009523
cmp qword [rdx + 0x30], 0xf
lea r8, [rdx + 0x18]
mov r11, qword [rcx + 0x10]
mov r10, qword [rdx + 8]
mov r9, qword [rdx + 0x28]
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x60], rbp
mov rbp, qword [rcx + 0x28]
mov qword [rsp + 0x68], r12
lea r12, [rcx + 8]
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r15
jbe 0x180009306
mov r8, qword [r8]
xor r13d, r13d
movabs rdx, 0xcbf29ce484222325
mov ecx, r13d
movabs r15, 0x100000001b3
test r9, r9
je 0x180009344
nop word [rax + rax]
movzx eax, byte [r8 + rcx]
inc rcx
xor rdx, rax
imul rdx, r15
cmp rcx, r9
jb 0x180009330
and rdx, qword [rdi + 0x40]
mov rbx, qword [r14]
shl rdx, 4
add rdx, rbp
mov rcx, qword [rdx + 8]
mov r8, qword [rdx]
cmp r14, rcx
je 0x180009374
nop
mov rax, rbx
cmp rbx, rsi
je 0x180009410
mov rbx, qword [rbx]
cmp rax, rcx
jne 0x180009360
cmp r8, r14
jne 0x18000937f
mov qword [rdx], r11
mov r10, r11
mov qword [rdx + 8], r10
cmp rbx, rsi
je 0x180009418
nop dword [rax]
cmp qword [rbx + 0x30], 0xf
lea r8, [rbx + 0x18]
mov r9, qword [rbx + 0x28]
mov r10, rbx
jbe 0x1800093a5
mov r8, qword [r8]
movabs rcx, 0xcbf29ce484222325
mov rdx, r13
test r9, r9
je 0x1800093d4
nop word [rax + rax]
movzx eax, byte [r8 + rdx]
inc rdx
xor rcx, rax
imul rcx, r15
cmp rdx, r9
jb 0x1800093c0
and rcx, qword [rdi + 0x40]
mov rbx, qword [rbx]
add rcx, rcx
lea rdx, [rcx*8]
add rdx, rbp
mov rcx, qword [rdx + 8]
cmp r10, rcx
je 0x180009402
mov rax, rbx
cmp rbx, rsi
je 0x180009415
mov rbx, qword [rbx]
cmp rax, rcx
jne 0x1800093f2
mov qword [rdx], r11
mov qword [rdx + 8], r11
cmp rbx, rsi
jne 0x180009390
jmp 0x180009418
cmp r8, r14
jne 0x180009418
mov qword [rdx], rbx
cmp r14, rbx
je 0x1800094fe
mov rax, qword [r12 + 8]
mov rdi, qword [r14 + 8]
cmp r14, qword [rax]
jne 0x18000943e
cmp rbx, rax
jne 0x18000943e
mov rcx, r12
call fcn.180008f20
jmp 0x18000949e
mov edx, 3
lea rcx, [rsp + 0x58]
call qword [sym.imp.MSVCP140D.dll_public:_void___cdecl_std::_Lockit::constructor_int____ptr64]
mov rax, r14
mov qword [rax + 8], r13
mov rax, qword [rax]
cmp rax, rbx
jne 0x180009451
mov r8, qword [r12]
add r8, 8
mov rcx, qword [r8]
test rcx, rcx
je 0x180009493
nop dword [rax]
mov rax, qword [rcx + 0x10]
cmp qword [rax + 8], r13
je 0x180009484
lea r8, [rcx + 8]
mov rcx, qword [rcx + 8]
jmp 0x18000948e
mov qword [rcx], r13
mov rcx, qword [rcx + 8]
mov qword [r8], rcx
test rcx, rcx
jne 0x180009470
lea rcx, [rsp + 0x58]
call qword [sym.imp.MSVCP140D.dll_public:_void___cdecl_std::_Lockit::destructor_void____ptr64]
mov qword [rdi], rbx
mov r15, r13
mov qword [rbx + 8], rdi
nop dword [rax + rax]
mov rcx, qword [r14 + 0x38]
mov rbp, qword [r14]
test rcx, rcx
je 0x1800094c6
mov edx, 0x28
call fcn.18000d370
lea rcx, [r14 + 0x10]
call fcn.1800091a0
mov rcx, qword [r14 + 0x10]
mov edx, 0x10
mov qword [r14 + 0x10], r13
call fcn.18000d370
mov edx, 0x40
mov rcx, r14
call fcn.18000d370
inc r15
mov r14, rbp
cmp rbp, rbx
jne 0x1800094b0
sub qword [r12 + 0x10], r15
mov r13, qword [rsp + 0x28]
mov rax, rsi
mov r12, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x50]
mov r15, qword [rsp + 0x20]
add rsp, 0x30
pop r14
pop rdi
pop rsi
ret
mov rax, rsi
add rsp, 0x30
pop r14
pop rdi
pop rsi
ret
push rdi
sub rsp, 0x20
mov rdi, rcx
mov rcx, qword [rcx + 0x18]
test rcx, rcx
je 0x180009be8
mov rax, qword [rdi + 0x48]
shr rax, 3
cmp rax, rcx
jbe 0x180009b96
mov rdx, qword [rdi + 0x10]
mov rcx, rdi
mov r8, rdx
mov rdx, qword [rdx]
add rsp, 0x20
pop rdi
jmp 0x1800092b0
lea rcx, [rdi + 8]
mov qword [rsp + 0x38], rbx
call fcn.180008f20
mov rdx, qword [rdi + 0x10]
lea rcx, [rdi + 8]
call fcn.180003aa0
mov rax, qword [rdi + 0x10]
lea r8, [rsp + 0x30]
mov qword [rax], rax
mov rax, qword [rdi + 0x10]
mov qword [rax + 8], rax
mov qword [rdi + 0x18], 0
mov rax, qword [rdi + 0x10]
mov rdx, qword [rdi + 0x30]
mov rcx, qword [rdi + 0x28]
mov qword [rsp + 0x30], rax
call fcn.180005120
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret