Function at 0x14002d600
Capabilities:
Hash data using fnv

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x70
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x58], r8
mov qword [rsp + 0x60], rdx
cmp dword [rcx + 0x10], 3
jne 0x14002d7be
call fcn.14000b930
mov rbp, rax
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x48], 0xf
mov byte [rsp + 0x30], 0
mov r8d, 0x16
lea rdx, str.RtlQueueApcWow64Thread
lea rcx, [rsp + 0x30]
call fcn.14000c110
nop
call fcn.1400287c0
lea r12, [rbp + 0x40]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea r9, [rsp + 0x30]
mov rdi, qword [rsp + 0x30]
mov r14, qword [rsp + 0x48]
cmp r14, 0x10
cmovae r9, rdi
movabs rdx, 0xcbf29ce484222325
xor ecx, ecx
mov rsi, qword [rsp + 0x40]
test rsi, rsi
je 0x14002d6c4
movabs r8, 0x100000001b3
nop dword [rax + rax]
movzx eax, byte [rcx + r9]
xor rdx, rax
imul rdx, r8
inc rcx
cmp rcx, rsi
jb 0x14002d6b0
mov rcx, qword [rbp + 0x30]
and rcx, rdx
add rcx, rcx
mov rax, qword [rbp + 0x18]
mov rbx, qword [rax + rcx*8 + 8]
mov r15, qword [rbp + 8]
cmp rbx, r15
je 0x14002d768
mov rbp, qword [rax + rcx*8]
nop dword [rax + rax]
lea rdx, [rbx + 0x10]
mov rax, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x14002d702
mov rdx, qword [rdx]
lea rcx, [rsp + 0x30]
cmp r14, 0x10
cmovae rcx, rdi
cmp rsi, rax
jne 0x14002d720
mov r8, rsi
call fcn.1400b75e0
test eax, eax
je 0x14002d72b
cmp rbx, rbp
je 0x14002d768
mov rbx, qword [rbx + 8]
jmp 0x14002d6f0
test rbx, rbx
je 0x14002d768
cmp rbx, r15
je 0x14002d768
mov rbx, qword [rbx + 0x30]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test rbx, rbx
je 0x14002d771
mov qword [rsp + 0x20], 0
xor r9d, r9d
mov r8, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x60]
call rbx
mov ebx, eax
jmp 0x14002d776
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ebx, 0xc0000138
cmp r14, 0x10
jb 0x14002d7ad
lea rdx, [r14 + 1]
mov rax, rdi
cmp rdx, 0x1000
jb 0x14002d7a5
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002d93d
mov rcx, rdi
call fcn.14009aa1c
mov eax, ebx
add rsp, 0x70
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
call fcn.14000b930
mov rbp, rax
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x48], 0xf
mov byte [rsp + 0x30], 0
mov r8d, 0x10
lea rdx, str.NtQueueApcThread
lea rcx, [rsp + 0x30]
call fcn.14000c110
nop
call fcn.1400287c0
lea r12, [rbp + 0x40]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea r9, [rsp + 0x30]
mov rdi, qword [rsp + 0x30]
mov r14, qword [rsp + 0x48]
cmp r14, 0x10
cmovae r9, rdi
movabs rdx, 0xcbf29ce484222325
xor ecx, ecx
mov rsi, qword [rsp + 0x40]
test rsi, rsi
je 0x14002d854
movabs r8, 0x100000001b3
nop
movzx eax, byte [rcx + r9]
xor rdx, rax
imul rdx, r8
inc rcx
cmp rcx, rsi
jb 0x14002d840
mov rcx, qword [rbp + 0x30]
and rcx, rdx
add rcx, rcx
mov rax, qword [rbp + 0x18]
mov rbx, qword [rax + rcx*8 + 8]
mov r15, qword [rbp + 8]
cmp rbx, r15
je 0x14002d8f8
mov rbp, qword [rax + rcx*8]
nop dword [rax + rax]
lea rdx, [rbx + 0x10]
mov rax, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x14002d892
mov rdx, qword [rdx]
lea rcx, [rsp + 0x30]
cmp r14, 0x10
cmovae rcx, rdi
cmp rsi, rax
jne 0x14002d8b0
mov r8, rsi
call fcn.1400b75e0
test eax, eax
je 0x14002d8bb
cmp rbx, rbp
je 0x14002d8f8
mov rbx, qword [rbx + 8]
jmp 0x14002d880
test rbx, rbx
je 0x14002d8f8
cmp rbx, r15
je 0x14002d8f8
mov rbx, qword [rbx + 0x30]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test rbx, rbx
je 0x14002d901
mov qword [rsp + 0x20], 0
xor r9d, r9d
mov r8, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x60]
call rbx
mov ebx, eax
jmp 0x14002d906
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ebx, 0xc0000138
cmp r14, 0x10
jb 0x14002d7ad
lea rdx, [r14 + 1]
mov rax, rdi
cmp rdx, 0x1000
jb 0x14002d7a5
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14002d7a5
call fcn.1400c88c8
int3