Function at 0x140406a00
Capabilities:
Hash data using fnv

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xe8
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x50], xmm6
mov qword [rbp + 0x48], 0xfffffffffffffffe
mov rsi, r9
mov r14, r8
mov qword [rbp - 0x40], rdx
mov qword [rbp + 0x10], rcx
call fcn.1403e4810
mov qword [rbp + 0x38], 0xf
mov qword [rbp + 0x30], 0xc
xor ecx, ecx
xor edx, edx
mov r8d, 0xfdadd802
call fcn.140407b60
mov rcx, qword [rax]
mov qword [rbp + 0x20], rcx
mov eax, dword [rax + 8]
mov dword [rbp + 0x28], eax
mov byte [rbp + 0x2c], 0
lea rdx, [rbp + 0x20]
mov qword [rbp - 0x18], rsi
mov rcx, rsi
call fcn.1403e5fa0
mov rax, qword [rbp + 0x38]
mov rcx, qword [0x1405beff0]
movabs rdx, 0xf3c29a63432e90c1
xor rdx, rcx
movabs r8, 0x73c29a63432e90c1
and r8, rcx
lea rcx, [rdx + r8*2]
movabs rdx, 0xa27f3592bb3f8e49
xor rdx, rcx
movabs r8, 0x227f3592bb3f8e49
and r8, rcx
lea rcx, [rdx + r8*2]
cmp rax, rcx
jbe 0x140406b32
mov rcx, qword [rbp + 0x20]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140406b2d
mov r8, qword [rcx - 8]
mov rdx, qword [0x1405beff0]
movabs r9, 0x9641cff5fe6e1ef3
add r9, rdx
movabs r10, 0x69be300a0191e10c
sub r10, rdx
xor r10, r9
and r10, rcx
xor r10, r9
movabs rdx, 0x7ffffffffffffff8
and rdx, rcx
lea rcx, [r10 + rdx*2]
sub rcx, r8
cmp rcx, 0x20
jae 0x1404072da
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.140407b20
mov rax, qword [r14 + 8]
lea rcx, [0x1404b1f14]
not rcx
mov qword [rbp - 0x20], rcx
lea rcx, [fcn.140406a00]
lea ecx, [rcx + rcx + 0x21e0]
mov dword [rbp + 4], ecx
xorps xmm6, xmm6
mov qword [rbp - 0x28], rax
mov rsi, rax
nop
movsxd rax, dword [0x1404b1f14]
add rax, qword [0x1405d0d68]
mov rdx, rax
mov rcx, qword [rbp - 0x20]
and rdx, rcx
or rcx, rax
not rcx
or rcx, rdx
mov edx, dword [0x1405d40f4]
nop word [rax + rax]
mov edx, dword [0x1405d40f4]
cmp edx, 0x29
jg 0x140406b90
lea rdx, [0x1404b1f14]
xor rax, rdx
not rax
and rax, rdx
lea rax, [rcx + rax*2]
mov qword [rbp - 0x48], rax
mov eax, dword [0x1405beff8]
mov ecx, 0x3fa6f792
add eax, ecx
mov ecx, dword [rbp + 4]
xor eax, ecx
not eax
test eax, ecx
jne 0x140407260
nop
mov edx, dword [0x1404b1f00]
mov eax, dword [0x1405d40f4]
cmp eax, 0x44
jg 0x140407260
mov rax, rsi
mov rax, qword [rsi]
cmp rax, qword [rbp - 0x28]
je 0x1404072b9
mov rdi, qword [rax + 0x18]
mov r15, qword [rax + 0x20]
xor ecx, ecx
cmp rdi, r15
je 0x14040727b
mov dword [rbp + 0x1c], edx
mov qword [rbp - 8], rax
lea r11, [fcn.140406a00]
mov r14d, 0x3fa6f791
mov r12b, 1
jmp 0x140406c3d
add rdi, 0x28
cmp rdi, r15
je 0x1404072b1
mov eax, dword [rdi]
mov ecx, eax
shr ecx, 0x10
movzx r8d, cl
movzx r9d, al
mov rcx, qword [0x1405beff0]
movabs rdx, 0x62346cda82904220
add rdx, rcx
mov r10, r9
not r10
and r10, rdx
not edx
and r9d, edx
mov rdx, rax
shr rdx, 0x18
or r9, r10
movabs r10, 0x100000001b3
imul r9, r10
movzx esi, ah
xor rsi, r9
imul rsi, r10
mov r9d, esi
not r9d
xor rsi, r8
and r9d, r8d
not rsi
or rsi, r9
not rsi
or rsi, r9
imul rsi, r10
mov r8, rsi
not r8
movabs r9, 0x9641cff5fe6e1efa
add r9, rcx
xor r9, rdx
xor rdx, r8
not rdx
and rdx, r8
xor rsi, r9
not r9
and r9, r8
or r9, rsi
not r9
or r9, rdx
movabs rdx, 0x9641d0f5fe6e20ae
add rcx, rdx
imul rcx, r9
mov r9, qword [rbp - 0x40]
mov rdx, qword [r9 + 0x110]
mov r8, rcx
xor r8, rdx
or rcx, rdx
not rcx
or rcx, r8
not rcx
mov rdx, qword [r9 + 0xe8]
mov r8, qword [r9 + 0xf8]
mov r9, rcx
shl r9, 4
mov rbx, qword [r8 + r9 + 8]
cmp rbx, rdx
je 0x140406c30
cmp eax, dword [rbx + 0x10]
je 0x140406d52
add rcx, rcx
mov rcx, qword [r8 + rcx*8]
nop word [rax + rax]
cmp rbx, rcx
je 0x140406c30
mov rbx, qword [rbx + 8]
cmp eax, dword [rbx + 0x10]
jne 0x140406d40
cmp rbx, rdx
je 0x140406c30
mov rax, qword [rdi + 8]
mov rcx, qword [rdi + 0x10]
mov qword [rbp + 8], rax
mov qword [rbp - 0x38], rcx
cmp rax, rcx
je 0x140406c30
mov qword [rbp - 0x10], rdi
mov qword [rbp - 0x30], r15
mov rdi, qword [rbx + 0x18]
mov eax, dword [0x1405d40f0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x140406d96
test r12b, r12b
je 0x140406d80
mov eax, dword [0x1405beee0]
lea ecx, [rax + 1]
mov dword [0x1405beee0], ecx
mov edx, dword [0x1405d40f0]
mov r8d, dword [0x1405beff8]
add r8d, edx
add r8d, 0x3fa6f792
imul r8d, edx
test r8b, 1
jne 0x140407130
nop word [rax + rax]
mov edx, dword [0x1405d40f0]
lea r8d, [rdx + 1]
imul r8d, edx
and r8d, 1
mov edx, dword [0x1405beff8]
add edx, r14d
cmp r8d, edx
jne 0x140407130
mov edx, ecx
and edx, eax
not eax
mov r8d, ecx
not r8d
and eax, r8d
or eax, edx
mov r15d, eax
not r15d
xor eax, ecx
and r15d, r8d
or r15d, eax
xor r15d, 0xffffffff
jne 0x140406e23
cmp dword [rbp + 0x1c], 0
jg 0x140407176
xor r14d, r14d
mov eax, dword [0x1405d40f4]
mov r8d, 0x3fa6f792
nop word cs:[rax + rax]
mov eax, dword [0x1405beff8]
add eax, r8d
lea ecx, [r11 + r11]
add ecx, 0x3980
mov edx, ecx
xor edx, eax
not eax
not ecx
and ecx, eax
or ecx, edx
cmp ecx, 0xffffffff
jne 0x140406e40
mov rax, qword [rbx + 0x20]
mov qword [rbp - 0x50], rax
cmp rdi, rax
je 0x140407140
nop word cs:[rax + rax]
lea rax, [rbp + 0x30]
movups xmmword [rax], xmm6
test r12b, r12b
jne 0x140406ec1
nop dword [rax]
mov rax, qword [0x1404b1ef8]
mov ecx, dword [0x1405d40f0]
mov r8d, dword [0x1405beff8]
mov eax, ecx
sub eax, r8d
add eax, 0xc059086e
imul eax, ecx
add r8d, 0x3fa6f793
xor edx, edx
div r8d
test edx, edx
jne 0x140406e90
xor ecx, ecx
test r15d, r15d
sete cl
mov rax, qword [0x1404b1ef8]
mov edx, dword [0x1405d40f4]
cmp edx, 0x3c
jg 0x140406ed0
mov rdx, rcx
neg rdx
sub rax, r14
mov r8, rax
not r8
dec rcx
xor rcx, r8
mov r8, rdx
xor r8, rdx
not r8
and r8, rax
xor r8, rdx
and rax, rdx
or rax, rcx
not rax
or rax, r8
not rax
mov rcx, qword [0x1405beff0]
movabs rdx, 0x9641cff5fe6e1efb
add rdx, rcx
cmp rax, rdx
setne al
or al, byte [0x1405d0870]
and al, 1
mov byte [0x1405d0870], al
mov r12, qword [rdi + 0x10]
cmp qword [rdi + 0x18], 0x10
mov r13, rdi
jb 0x140406f47
mov r13, qword [rdi]
movabs rax, 0x9641cff5fe6e1f0b
add rcx, rax
cmp r12, rcx
jae 0x140407030
movups xmm0, xmmword [r13]
movaps xmmword [rbp + 0x20], xmm0
mov qword [rbp + 0x30], r12
mov rax, qword [0x1405beff0]
movabs rcx, 0x9641cff5fe6e1f0a
add rcx, rax
mov qword [rbp + 0x38], rcx
movabs rcx, 0x9641cff5fe6e1efb
add rax, rcx
lea rsi, [rbp + 0x20]
cmp r12, rax
jne 0x1404070eb
lea rcx, [rbp + 0x20]
mov rdx, qword [rbp + 8]
xor r8d, r8d
call fcn.140282c50
mov r13, rax
mov rax, qword [rbp + 0x38]
cmp rax, 0x10
jb 0x140406ffe
mov rcx, qword [rbp + 0x20]
lea rdx, [rax + 1]
mov r8, qword [0x1405beff0]
movabs r9, 0x9641cff5fe6e2efa
add r8, r9
cmp rdx, r8
jbe 0x140406ff9
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x1404072d5
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.140407b20
cmp r13, 0xffffffffffffffff
jne 0x140407270
add rdi, 0x20
cmp rdi, qword [rbp - 0x50]
lea r11, [fcn.140406a00]
mov r12b, 1
jne 0x140406e80
jmp 0x140407140
mov rax, qword [0x1405beff0]
movabs rcx, 0x9641cff5fe6e1f0a
add rax, rcx
mov rcx, r12
not rcx
mov rdx, rax
xor rdx, rcx
and rdx, rax
and ecx, 0xf
mov rsi, r12
and rsi, 0xfffffffffffffff0
or rsi, rcx
or rsi, rdx
movabs rax, 0x7fffffffffffffff
cmp rsi, rax
cmovae rsi, rax
cmp rsi, 0xfff
jb 0x1404070b0
lea rcx, [rsi + 0x28]
call fcn.14044489c
mov rcx, rax
mov rdx, rax
add rdx, 0x27
mov eax, edx
not eax
xor rdx, 0xffffffffffffffe0
and eax, 0x1f
or rax, rdx
not rax
mov qword [rax - 8], rcx
jmp 0x1404070b9
lea rcx, [rsi + 1]
call fcn.14044489c
mov qword [rbp + 0x20], rax
mov r8, r12
sub r8, qword [0x1405beff0]
movabs rcx, 0x69be300a0191e106
add r8, rcx
mov rcx, rax
mov rdx, r13
call fcn.14046c800
mov qword [rbp + 0x30], r12
mov qword [rbp + 0x38], rsi
mov rsi, qword [rbp + 0x20]
dec r12
xor r13d, r13d
nop word cs:[rax + rax]
movsx ecx, byte [rsi + r13]
mov edx, 0x70b95e02
mov r8d, 0xe8bb76ac
mov r9d, 0x15be9305
call fcn.1402af260
mov byte [rsi + r13], al
cmp r12, r13
je 0x140406f9c
inc r13
jmp 0x140407100
mov edx, dword [0x1405d40f4]
cmp edx, 0x15
jge 0x140407130
jmp 0x140406dd0
cmp byte [0x1405d0870], 0
mov r14d, 0x3fa6f791
mov rdi, qword [rbp - 0x10]
mov r15, qword [rbp - 0x30]
jne 0x140406c30
mov rax, qword [rbp + 8]
add rax, 0x20
mov qword [rbp + 8], rax
cmp rax, qword [rbp - 0x38]
jne 0x140406d7c
jmp 0x140406c30
xor eax, eax
xor r14d, r14d
nop dword [rax + rax]
movsxd rdx, eax
add rdx, qword [rbp - 0x48]
mov ecx, dword [0x1405d40f0]
lea r8d, [rcx + 1]
imul r8d, ecx
test r8b, 1
jne 0x1404071b8
nop dword [rax + rax]
mov rcx, qword [rdx]
mov r8d, dword [0x1405d40f0]
lea r9d, [r8 - 1]
imul r9d, r8d
test r9b, 1
je 0x1404071cb
mov rcx, qword [rdx]
jmp 0x1404071a0
mov edx, dword [0x1405d40f4]
cmp edx, 0x1d
jl 0x1404071d6
mov edx, dword [0x1405d40f4]
cmp edx, 0x45
jg 0x1404071c0
mov edx, dword [0x1405d40f0]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x1404071c0
mov rdx, r14
not rdx
mov r9, rcx
not r9
mov r10, r14
and r10, r9
mov r8, rdx
and r8, rcx
or r8, r10
xor r8, rdx
not r8
and r8, rdx
and r9, rdx
and r14, rcx
or r14, r9
xor rdx, rcx
or rdx, r10
not rdx
or rdx, r14
not rdx
mov rcx, r8
and rcx, rdx
xor rdx, r8
mov r14, rdx
xor r14, rcx
nop word cs:[rax + rax]
mov ecx, dword [0x1405d40f4]
cmp ecx, 0x3f
jg 0x140407240
add eax, 8
cmp eax, dword [rbp + 0x1c]
jl 0x140407180
jmp 0x140406e26
mov eax, dword [0x1404b1f00]
jmp 0x140406bd0
mov rax, qword [rbp - 0x10]
mov ecx, dword [rax + 0x20]
mov rax, qword [rbp - 8]
mov rsi, rax
mov rax, qword [rax + 0x10]
mov qword [rbp + 0x20], rax
mov edi, ecx
mov dword [rbp + 0x28], ecx
mov rcx, qword [rbp + 0x10]
lea rdx, [rbp - 0x60]
lea r8, [rbp + 0x20]
call fcn.1403efb10
mov rdx, qword [rsi + 0x10]
mov rcx, qword [rbp - 0x18]
mov r8d, edi
call fcn.1403e6010
jmp 0x140406b60
mov rax, qword [rbp - 8]
xor ecx, ecx
jmp 0x14040727b
mov rax, qword [rbp + 0x10]
movaps xmm6, xmmword [rbp + 0x50]
add rsp, 0xe8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.140424a4c
call fcn.140424a4c
int3