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

Disassembly:
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x18], r8d
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x58
mov ebx, r8d
mov rdi, rdx
mov rbp, rcx
lea rsi, [rcx + 0x88]
mov rcx, rsi
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_AcquireSRWLockExclusive]
nop dword [rax + rax]
mov qword [rsp + 0x20], rsi
mov r15, qword [rdi + 0x10]
mov r9, rdi
mov r12, qword [rdi + 0x18]
cmp r12, 8
jb 0x14009ae82
mov r9, qword [rdi]
movabs rdx, 0xcbf29ce484222325
lea r8, [r15 + r15]
xor eax, eax
movabs r11, 0x100000001b3
test r8, r8
je 0x14009aeb5
movzx ecx, byte [rax + r9]
xor rdx, rcx
imul rdx, r11
inc rax
cmp rax, r8
jb 0x14009aea1
mov rcx, qword [rbp + 0x38]
and rcx, rdx
shl rcx, 4
mov r9, qword [rbp + 0x20]
mov r8, qword [rcx + r9]
mov rax, r8
lea r10, [rcx + 8]
mov rdx, qword [rbp + 0x10]
cmp r8, rdx
jne 0x14009af48
mov rcx, rdx
cmp rax, rcx
je 0x14009af51
lea rcx, [rax + 0x10]
mov r11, rdi
cmp r12, 8
jb 0x14009aef0
mov r11, qword [rdi]
mov r14, qword [rcx + 0x10]
mov r13, qword [rcx + 0x18]
cmp r13, 8
jb 0x14009af01
mov rcx, qword [rcx]
cmp r14, r15
jne 0x14009b15a
test r14, r14
je 0x14009b078
sub rcx, r11
nop word [rax + rax]
movzx r15d, word [r11 + rcx]
cmp r15w, word [r11]
jb 0x14009b152
ja 0x14009b152
cmp r14, 1
je 0x14009b162
dec r14
add r11, 2
jmp 0x14009af20
mov rcx, qword [r10 + r9]
mov rcx, qword [rcx]
jmp 0x14009aedb
mov rax, rdx
cmp rax, rdx
je 0x14009b0c8
mov rbp, qword [rax + 0x30]
mov dword [rsp + 0xa0], ebx
movzx edx, bl
movabs rax, 0xcbf29ce484222325
xor rdx, rax
movabs rcx, 0x100000001b3
imul rdx, rcx
movzx eax, byte [rsp + 0xb1]
xor rdx, rax
imul rdx, rcx
movzx eax, byte [rsp + 0xb2]
xor rdx, rax
imul rdx, rcx
movzx eax, byte [rsp + 0xb3]
xor rdx, rax
imul rdx, rcx
mov rcx, qword [rbp + 0x50]
and rcx, rdx
shl rcx, 4
mov r9, qword [rbp + 0x38]
mov r8, qword [rcx + r9]
mov rax, r8
lea r10, [rcx + 8]
mov rdx, qword [rbp + 0x28]
cmp r8, rdx
je 0x14009b070
mov rcx, qword [r10 + r9]
mov rcx, qword [rcx]
cmp rax, rcx
je 0x14009b177
cmp dword [rax + 0x10], ebx
jne 0x14009b16f
mov rdx, rax
cmp rdx, qword [rbp + 0x28]
jne 0x14009b03b
lea rax, [rsp + 0xa0]
mov qword [rsp + 0xa8], rax
lea r8, [rsp + 0xa8]
lea rcx, [rbp + 0x28]
call fcn.14009b3b8
mov rax, qword [rbp + 0x28]
mov r9, qword [rax]
lea r8, [r9 + 0x10]
lea rdx, [rsp + 0x38]
lea rcx, [rbp + 0x20]
call fcn.14009b288
mov rax, qword [rsp + 0x38]
inc dword [rax + 0x18]
mov r8, qword [rsp + 0xb8]
add qword [rax + 0x20], r8
test rsi, rsi
je 0x14009b05e
mov rcx, rsi
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_ReleaseSRWLockExclusive]
nop dword [rax + rax]
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rcx, rdx
jmp 0x14009afe1
lea rcx, [rax + 0x10]
cmp r13, 8
jb 0x14009b085
mov rcx, qword [rcx]
mov r8, rdi
cmp r12, 8
jb 0x14009b091
mov r8, qword [rdi]
test r15, r15
je 0x14009af54
sub r8, rcx
nop dword [rax]
movzx r9d, word [rcx + r8]
cmp r9w, word [rcx]
jb 0x14009af51
ja 0x14009af51
cmp r15, 1
je 0x14009af54
dec r15
add rcx, 2
jmp 0x14009b0a0
cmp dword [rbp + 0x138], 0x7d0
jae 0x14009b04a
mov rdx, rdi
lea rcx, [rsp + 0x28]
call fcn.1400f6e34
nop
mov r8, qword [rsp + 0xb8]
mov edx, ebx
mov r14, qword [rsp + 0x28]
mov rcx, r14
call fcn.14009b190
lea rcx, [rbp + 8]
mov rdx, rdi
call fcn.1400bb6c0
mov rbx, qword [rsp + 0x30]
test rbx, rbx
je 0x14009b121
lock inc dword [rbx + 8]
mov rbx, qword [rsp + 0x30]
mov r14, qword [rsp + 0x28]
mov qword [rax], r14
mov rcx, qword [rax + 8]
mov qword [rax + 8], rbx
test rcx, rcx
je 0x14009b136
call fcn.14007e3e0
inc dword [rbp + 0x138]
test rbx, rbx
je 0x14009b04a
mov rcx, rbx
call fcn.14007e3e0
jmp 0x14009b04a
mov r12, qword [rdi + 0x18]
mov r15, qword [rdi + 0x10]
mov rax, qword [rax]
jmp 0x14009aed3
mov r15, qword [rdi + 0x10]
mov r12, qword [rdi + 0x18]
jmp 0x14009b078
mov rax, qword [rax]
jmp 0x14009afd1
mov rax, rdx
jmp 0x14009aff6