Function at 0x14004f040
Capabilities:
Hash data using fnv

Disassembly:
mov r11, rsp
mov qword [r11 + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x100
mov rax, qword [0x1401d6668]
xor rax, rsp
mov qword [rsp + 0xf8], rax
mov rbx, rdx
mov rax, rcx
mov qword [rsp + 0x30], rcx
mov rcx, rdx
shr rcx, 0x38
mov qword [rsp + 0xd8], rcx
mov r13, rdx
shr r13, 0x38
mov rcx, rdx
shr rcx, 0x38
mov qword [rsp + 0xa0], rcx
mov rcx, rdx
shr rcx, 0x38
mov qword [rsp + 0x68], rcx
mov rcx, rdx
shr rcx, 0x30
mov qword [rsp + 0xd0], rcx
mov r12, rdx
shr r12, 0x30
mov rcx, rdx
shr rcx, 0x30
mov qword [rsp + 0x98], rcx
mov rcx, rdx
shr rcx, 0x30
mov qword [rsp + 0x60], rcx
mov rcx, rdx
shr rcx, 0x28
mov qword [rsp + 0xc8], rcx
mov r15, rdx
shr r15, 0x28
mov rcx, rdx
shr rcx, 0x28
mov qword [rsp + 0x90], rcx
mov rcx, rdx
shr rcx, 0x28
mov qword [rsp + 0x58], rcx
mov rcx, rdx
shr rcx, 0x20
mov qword [rsp + 0xc0], rcx
mov r14, rdx
shr r14, 0x20
mov rcx, rdx
shr rcx, 0x20
mov qword [rsp + 0x88], rcx
mov rcx, rdx
shr rcx, 0x20
mov qword [rsp + 0x50], rcx
mov rcx, rdx
shr rcx, 0x18
mov qword [rsp + 0xb8], rcx
mov rbp, rdx
shr rbp, 0x18
mov rcx, rdx
shr rcx, 0x18
mov qword [rsp + 0x80], rcx
mov rcx, rdx
shr rcx, 0x18
mov qword [rsp + 0x48], rcx
mov rcx, rdx
shr rcx, 0x10
mov qword [rsp + 0xb0], rcx
mov rsi, rdx
shr rsi, 0x10
mov rcx, rdx
shr rcx, 0x10
mov qword [rsp + 0x78], rcx
mov rcx, rdx
shr rcx, 0x10
mov qword [rsp + 0x40], rcx
mov rcx, rdx
shr rcx, 8
mov qword [rsp + 0xa8], rcx
mov rdi, rdx
shr rdi, 8
mov rcx, rdx
shr rcx, 8
mov qword [rsp + 0x70], rcx
mov rcx, rdx
shr rcx, 8
mov qword [rsp + 0x38], rcx
xorps xmm0, xmm0
xor ecx, ecx
movups xmmword [r11 - 0x58], xmm0
mov qword [r11 - 0x48], rcx
lea rcx, [rax + 0x18]
lea rdx, [r11 - 0x58]
call fcn.14004d4d0
nop
movzx eax, bl
lea rdx, [0x1401d6a10]
mov rcx, qword [0x1401d6a10]
cmp rcx, rdx
je 0x14004f2cf
mov rdi, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov r14, qword [rsp + 0x50]
mov r15, qword [rsp + 0x58]
mov r12, qword [rsp + 0x60]
mov r13, qword [rsp + 0x68]
test byte [rcx + 0x1c], 4
je 0x14004f2cf
mov rdi, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x80]
mov r14, qword [rsp + 0x88]
mov r15, qword [rsp + 0x90]
mov r12, qword [rsp + 0x98]
mov r13, qword [rsp + 0xa0]
cmp byte [rcx + 0x19], 4
jb 0x14004f2cf
mov rcx, qword [rsp + 0x30]
mov rcx, qword [rcx + 0x68]
call fcn.14009e010
mov rcx, qword [0x1401d6a10]
mov edx, SafeArrayDestroy
mov qword [rsp + 0x20], rax
mov r9, rbx
lea r8, [0x14016e8a0]
mov rcx, qword [rcx + 0x10]
call fcn.14004fd50
movzx eax, bl
mov rdi, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0xb0]
mov rbp, qword [rsp + 0xb8]
mov r14, qword [rsp + 0xc0]
mov r15, qword [rsp + 0xc8]
mov r12, qword [rsp + 0xd0]
mov r13, qword [rsp + 0xd8]
movzx edx, al
movabs rax, 0xcbf29ce484222325
xor rdx, rax
movabs rcx, 0x100000001b3
imul rdx, rcx
movzx eax, dil
xor rdx, rax
imul rdx, rcx
movzx eax, sil
xor rdx, rax
imul rdx, rcx
movzx eax, bpl
xor rdx, rax
imul rdx, rcx
movzx eax, r14b
xor rdx, rax
imul rdx, rcx
movzx eax, r15b
xor rdx, rax
imul rdx, rcx
movzx eax, r12b
xor rdx, rax
imul rdx, rcx
xor rdx, r13
imul rdx, rcx
mov r9, qword [rsp + 0x30]
mov rcx, qword [r9 + 0x58]
and rcx, rdx
shl rcx, 4
mov r8, qword [r9 + 0x40]
add r8, rcx
mov rdx, qword [r8 + 8]
mov rcx, qword [r9 + 0x30]
cmp rdx, rcx
je 0x14004f374
mov rax, qword [r8]
cmp rbx, qword [rdx + 0x10]
je 0x14004f376
cmp rdx, rax
je 0x14004f374
mov rdx, qword [rdx + 8]
cmp rbx, qword [rdx + 0x10]
jne 0x14004f363
jmp 0x14004f376
xor edx, edx
test rdx, rdx
je 0x14004f3c7
mov rax, qword [r8]
cmp qword [r8 + 8], rdx
jne 0x14004f39c
cmp rax, rdx
jne 0x14004f392
mov qword [r8], rcx
mov qword [r8 + 8], rcx
jmp 0x14004f3a7
mov rcx, qword [rdx + 8]
mov qword [r8 + 8], rcx
jmp 0x14004f3a7
cmp rax, rdx
jne 0x14004f3a7
mov rax, qword [rdx]
mov qword [r8], rax
mov r8, qword [rdx]
dec qword [r9 + 0x38]
mov rax, qword [rdx + 8]
mov qword [rax], r8
mov rax, qword [rdx + 8]
mov qword [r8 + 8], rax
lea rcx, [r9 + 0x30]
call fcn.14004e2b0
nop
mov rdx, qword [rsp + 0xf0]
test rdx, rdx
je 0x14004f3e1
lea rcx, [rsp + 0xe0]
call fcn.14004d490
mov rbx, qword [rsp + 0xe8]
test rbx, rbx
je 0x14004f429
mov edi, 0xffffffff
mov eax, edi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14004f429
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax]
call qword [case.0x14005c876.0]
lock xadd dword [rbx + 0xc], edi
cmp edi, 1
jne 0x14004f429
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax + 8]
call qword [case.0x14005c876.0]
nop
mov rcx, qword [rsp + 0xf8]
xor rcx, rsp
call fcn.140146a70
mov rbx, qword [rsp + 0x150]
add rsp, 0x100
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret