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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0x100
mov rax, qword [0x1404fa650]
xor rax, rsp
mov qword [rbp + 0x2f], rax
mov rsi, r8
mov rdi, rdx
mov r10, rcx
mov qword [rsp + 0x30], rdx
mov rdx, qword [r8 + 0x10]
mov r9, r8
cmp qword [r8 + 0x18], 8
jb 0x140089adb
mov r9, qword [r8]
movabs rbx, 0xcbf29ce484222325
mov r8, rbx
xor r12d, r12d
mov eax, r12d
movabs r11, 0x100000001b3
add rdx, rdx
je 0x140089b14
nop dword [rax]
movzx ecx, byte [rax + r9]
xor r8, rcx
imul r8, r11
inc rax
cmp rax, rdx
jb 0x140089b00
movzx edx, r8b
xor rdx, rbx
imul rdx, r11
mov rax, r8
shr rax, 8
movzx ecx, al
xor rdx, rcx
imul rdx, r11
mov rax, r8
shr rax, 0x10
movzx ecx, al
xor rdx, rcx
imul rdx, r11
mov rax, r8
shr rax, 0x18
movzx ecx, al
xor rdx, rcx
imul rdx, r11
mov rax, r8
shr rax, 0x20
movzx ecx, al
xor rdx, rcx
imul rdx, r11
mov rax, r8
shr rax, 0x28
movzx ecx, al
xor rdx, rcx
imul rdx, r11
mov rax, r8
shr rax, 0x30
movzx ecx, al
xor rdx, rcx
imul rdx, r11
mov rax, r8
shr rax, 0x38
xor rdx, rax
imul rdx, r11
and rdx, qword [r10 + 0x30]
shl rdx, 4
add rdx, qword [r10 + 0x18]
mov rbx, qword [rdx + 8]
mov rax, qword [r10 + 8]
cmp rbx, rax
je 0x140089bb7
cmp r8, qword [rbx + 0x10]
je 0x140089bf0
cmp rbx, qword [rdx]
jne 0x140089bea
mov qword [rdi], r12
mov qword [rdi + 8], r12
mov rax, rdi
mov rcx, qword [rbp + 0x2f]
xor rcx, rsp
call fcn.140157600
lea r11, [rsp + 0x100]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
mov rbx, qword [rbx + 8]
jmp 0x140089bac
test rbx, rbx
je 0x140089bb7
cmp rbx, rax
je 0x140089bb7
lea rdx, [rbp - 0x31]
mov rcx, qword [rbx + 0x18]
call fcn.140089ee0
mov r9, rax
mov rax, rsi
cmp qword [rsi + 0x18], 8
jb 0x140089c17
mov rax, qword [rsi]
mov rcx, qword [r9 + 0x10]
cmp qword [r9 + 0x18], 8
jb 0x140089c25
mov r9, qword [r9]
mov r14, rbx
cmp rcx, qword [rsi + 0x10]
jne 0x140089e7f
test rcx, rcx
je 0x140089c63
sub r9, rax
nop word [rax + rax]
movzx edx, word [rax + r9]
cmp dx, word [rax]
jb 0x140089e7f
ja 0x140089e7f
cmp rcx, 1
je 0x140089c63
dec rcx
add rax, 2
jmp 0x140089c40
mov r15b, 1
mov rax, qword [rbp - 0x19]
cmp rax, 8
jb 0x140089c8d
lea rdx, [rax*2 + 2]
mov rcx, qword [rbp - 0x31]
mov rax, rcx
cmp rdx, 0x1000
jae 0x140089cba
call fcn.140157b74
test r15b, r15b
je 0x140089cdc
mov qword [rdi], r12
mov qword [rdi + 8], r12
mov rax, qword [r14 + 0x20]
test rax, rax
je 0x140089ca6
lock inc dword [rax + 8]
mov rcx, qword [rbx + 0x18]
mov qword [rdi], rcx
mov rcx, qword [r14 + 0x20]
mov qword [rdi + 8], rcx
jmp 0x140089bbe
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140089c88
call qword [sym.imp.api_ms_win_crt_private_l1_1_0.dll__o__invalid_parameter_noinfo_noreturn]
nop dword [rax + rax]
int3
mov rdx, rsi
lea rcx, [rbp + 0xf]
call fcn.1400d6ce4
mov r14, rax
mov rdi, qword [rbx + 0x18]
cmp qword [rdi + 0x30], 0
je 0x140089e87
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x41], xmm0
add rdi, 0x20
mov rsi, qword [rdi + 0x10]
cmp qword [rdi + 0x18], 0x10
jb 0x140089d14
mov rdi, qword [rdi]
cmp rsi, 0x10
jb 0x140089e6b
mov rbx, rsi
or rbx, 0xf
movabs rax, 0x7fffffffffffffff
cmp rbx, rax
cmova rbx, rax
lea rcx, [rbx + 1]
call fcn.1400e0580
mov qword [rbp - 0x51], rax
lea r8, [rsi + 1]
mov rdx, rdi
mov rcx, rax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov qword [rbp - 0x39], rbx
mov qword [rbp - 0x41], rsi
mov r9d, 0x2f
lea r8, str.hash_collision_in_GenericEtwPropertyDictionary
lea rcx, [rbp - 0x51]
call fcn.1400efc6c
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x61], xmm0
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x71], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x61], xmm1
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], SafeArrayUnlock
mov byte [rax], 0
mov rcx, qword [rbp - 0x61]
mov rdx, qword [rbp - 0x59]
mov rax, rdx
sub rax, rcx
cmp rax, 5
jb 0x140089ead
lea rax, [rcx + 5]
mov qword [rbp - 0x61], rax
lea rbx, [rbp - 0x71]
cmp rdx, 0x10
cmovae rbx, qword [rbp - 0x71]
add rbx, rcx
mov r8d, 5
lea rdx, [0x1403bae88]
mov rcx, rbx
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
mov byte [rbx + 5], 0
lea rax, [rbp - 0x71]
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x11], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 1], xmm1
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], SafeArrayUnlock
mov byte [rax], 0
mov r9, r14
lea r8, [rbp - 0x11]
lea rcx, [rbp - 0x31]
call fcn.14014e32c
nop
lea rax, [rbp - 0x31]
cmp qword [rbp - 0x19], 0x10
cmovae rax, qword [rbp - 0x31]
lea rcx, vtable.std::exception.0
mov qword [rsp + 0x40], rcx
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x30], rax
mov byte [rsp + 0x38], 1
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x30]
call sub.api_ms_win_crt_private_l1_1_0.dll__o___std_exception_copy
lea rax, vtable.std::range_error.0
mov qword [rsp + 0x40], rax
lea rdx, [0x1404c5a68]
lea rcx, [rsp + 0x40]
call sub.api_ms_win_crt_private_l1_1_0.dll__CxxThrowException
nop
movups xmm0, xmmword [rdi]
movups xmmword [rbp - 0x51], xmm0
mov qword [rbp - 0x39], SafeArrayUnlock
jmp 0x140089d56
xor r15b, r15b
jmp 0x140089c66
mov rdx, rdi
lea rcx, [rbp - 0x11]
call fcn.1400d6ce4
lea rcx, [rdi + 0x20]
mov rdx, rax
call fcn.1400c42b4
lea rcx, [rbp - 0x11]
call fcn.1400d668c
jmp 0x140089cfa
mov qword [rsp + 0x20], 5
lea r9, [0x1403bae88]
mov edx, 5
lea rcx, [rbp - 0x71]
call fcn.14016d840
jmp 0x140089de3