Function at 0x180031980
Capabilities:
Hash data using fnv
Hash data with crc32

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
mov dword [rsp + 0x10], edx
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov r15, r8
mov r8d, 0xffffffff
mov ebx, r8d
movzx r9d, byte [rcx]
lea rdx, [rcx + 1]
test r9b, r9b
je 0x1800319f0
lea r10, [0x1800c5dd0]
cmp r9b, 0x23
jne 0x1800319d3
cmp byte [rdx], r9b
jne 0x1800319d3
cmp byte [rdx + 1], r9b
cmove ebx, r8d
movzx ecx, bl
movzx eax, r9b
xor rcx, rax
shr ebx, 8
xor ebx, dword [r10 + rcx*4]
movzx r9d, byte [rdx]
inc rdx
test r9b, r9b
jne 0x1800319c0
not ebx
mov dword [rsp + 0x88], ebx
mov esi, ebx
shr esi, 0x18
mov ebp, ebx
shr ebp, 0x10
mov r14d, ebx
shr r14d, 8
mov ecx, dword [0x180685e4c]
mov rax, qword gs:[0x58]
mov edx, 4
mov rax, qword [rax + rcx*8]
xor edi, edi
mov eax, dword [rdx + rax]
cmp dword [0x180686ec0], eax
jle 0x180031af7
lea rcx, [0x180686ec0]
call fcn.180043498
cmp dword [0x180686ec0], 0xffffffff
jne 0x180031af7
xorps xmm0, xmm0
movups xmmword [0x180686e40], xmm0
movups xmmword [0x180686e50], xmm0
movups xmmword [0x180686e60], xmm0
movups xmmword [0x180686e70], xmm0
mov dword [0x180686e40], edi
mov qword [0x180686e48], rdi
mov qword [0x180686e50], rdi
mov ecx, 0x30
call fcn.18004368c
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [0x180686e48], rax
mov qword [0x180686e58], rdi
xorps xmm0, xmm0
movdqa xmmword [0x180686e60], xmm0
mov qword [0x180686e70], 7
mov qword [0x180686e78], 8
mov dword [0x180686e40], 0x3f800000
mov r8, rax
mov edx, 0x10
lea rcx, [0x180686e58]
call fcn.180031ee0
nop
lea rcx, [0x1800a7d80]
call fcn.180043af0
nop
lea rcx, [0x180686ec0]
call fcn.18004342c
movzx edx, bl
movabs r13, 0xcbf29ce484222325
xor rdx, r13
movabs r12, 0x100000001b3
imul rdx, r12
movzx eax, r14b
xor rdx, rax
imul rdx, r12
movzx eax, bpl
xor rdx, rax
imul rdx, r12
mov eax, esi
xor rdx, rax
imul rdx, r12
and rdx, qword [0x180686e70]
add rdx, rdx
mov rax, qword [0x180686e58]
mov rcx, qword [rax + rdx*8 + 8]
mov r8, qword [0x180686e48]
cmp rcx, r8
je 0x180031b70
mov rax, qword [rax + rdx*8]
cmp ebx, dword [rcx + 0x10]
je 0x180031b73
nop
cmp rcx, rax
je 0x180031b70
mov rcx, qword [rcx + 8]
cmp ebx, dword [rcx + 0x10]
jne 0x180031b60
jmp 0x180031b73
mov rcx, rdi
mov rax, r8
test rcx, rcx
cmovne rax, rcx
cmp rax, r8
jne 0x180031c30
mov dword [rsp + 0x30], ebx
movups xmm0, xmmword [r15]
movups xmmword [rsp + 0x34], xmm0
movsd xmm1, qword [r15 + 0x10]
movsd qword [rsp + 0x44], xmm1
mov eax, dword [r15 + 0x18]
mov dword [rsp + 0x4c], eax
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x20]
call fcn.1800321b0
movzx edx, bl
xor rdx, r13
imul rdx, r12
movzx eax, byte [rsp + 0x89]
xor rdx, rax
imul rdx, r12
movzx eax, byte [rsp + 0x8a]
xor rdx, rax
imul rdx, r12
movzx eax, byte [rsp + 0x8b]
xor rdx, rax
imul rdx, r12
and rdx, qword [0x180686e70]
add rdx, rdx
mov r8, qword [0x180686e58]
mov rcx, qword [r8 + rdx*8 + 8]
mov rax, qword [0x180686e48]
cmp rcx, rax
je 0x180031c29
mov rdx, qword [r8 + rdx*8]
cmp ebx, dword [rcx + 0x10]
je 0x180031c26
cmp rcx, rdx
je 0x180031c29
mov rcx, qword [rcx + 8]
cmp ebx, dword [rcx + 0x10]
jne 0x180031c18
mov rdi, rcx
test rdi, rdi
cmovne rax, rdi
add rax, 0x14
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret