Function at 0x1403eff70
Capabilities:
Hash data using fnv

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
movabs rax, 0x800000000000001
cmp rdx, rax
jae 0x1403f0452
mov r15, rcx
lea rdi, [rcx + 0x18]
movabs rax, 0xc37f92e534ca1f1
add rax, qword [0x1405bc3c0]
dec rdx
or rax, rdx
bsr rcx, rax
xor rcx, 0x3f
mov dword [rsp + 0x20], 0x8bf2d6ef
lea rdx, [rsp + 0x58]
lea r8, [rsp + 0x50]
mov r9d, 0x226783b3
call fcn.1403f7910
movzx ebx, byte [rsp + 0x58]
mov r12, qword [rsp + 0x50]
lea rdx, [rsp + 0x50]
mov rcx, r15
mov r8d, 0x72a37dab
mov r9d, 0x9f26328b
call fcn.140147640
mov rsi, qword [rsp + 0x50]
mov r13, qword [rsi]
mov edx, 2
mov ecx, ebx
shl rdx, cl
mov qword [rsp + 0x70], rdi
mov rcx, rdi
mov r8, r13
call fcn.1403ef3f0
mov eax, dword [0x1405bc3b8]
mov ecx, eax
xor ecx, 0xc20caa3e
mov edx, eax
and edx, 0x420caa3e
lea ecx, [rcx + rdx*2]
add eax, 0x35dfd405
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
lea r8, [rsp + 0x58]
lea r9, [rsp + 0x50]
mov rcx, r12
mov rdx, r15
call fcn.1403f83e0
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x68], rcx
mov qword [rcx], rax
mov qword [r15 + 0x38], r12
mov rax, qword [rsi]
mov r15, qword [rax]
cmp r15, r13
je 0x1403f043e
mov r12, r13
movabs rdi, 0x100000001b3
jmp 0x1403f00b7
mov qword [rsi + rbx*8], r13
mov qword [rbp], r13
mov rcx, r15
mov rdx, r12
mov r8d, 0xa2641119
mov r9d, 0x58d2fd90
call fcn.140197180
test al, 1
jne 0x1403f043e
mov r13, r15
mov r15, qword [r15]
movzx eax, byte [r13 + 0x10]
movabs rcx, 0xcbf29ce484222325
xor rax, rcx
imul rax, rdi
movzx ecx, byte [r13 + 0x11]
mov rdx, rcx
not rdx
and rdx, rax
not eax
and eax, ecx
or rdx, rax
imul rdx, rdi
movzx eax, byte [r13 + 0x12]
mov rsi, rax
not rsi
and rsi, rdx
not edx
and edx, eax
or rsi, rdx
imul rsi, rdi
mov rcx, r13
lea rbx, [rsp + 0x50]
mov rdx, rbx
mov r8d, 0xdf7f5d51
mov r9d, 0x420bcb74
call fcn.1403f7e50
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax]
xor rax, rsi
imul rax, rdi
movzx ecx, byte [r13 + 0x14]
not rcx
mov rdx, rax
and rdx, rcx
or rcx, rax
not rcx
or rcx, rdx
imul rcx, rdi
mov r14, r12
movzx r12d, byte [r13 + 0x15]
xor r12, rcx
imul r12, rdi
mov rcx, r13
mov rdx, rbx
mov r8d, 0xf0da29df
mov r9d, 0xd933678c
call fcn.1403f8290
mov rdx, qword [rsp + 0x50]
mov qword [rsp + 0x20], rbx
mov dword [rsp + 0x30], 0xa06bfb29
mov dword [rsp + 0x28], 0x87868930
mov rcx, r12
mov r12, r14
mov r8, r13
lea r9, [rsp + 0x58]
call fcn.1403f78c0
mov rax, qword [rsp + 0x58]
xor rax, qword [rsp + 0x50]
imul rax, rdi
mov rcx, qword [rsp + 0x68]
mov rcx, qword [rcx]
xor rax, rcx
not rax
and rax, rcx
mov rcx, qword [rsp + 0x70]
mov rsi, qword [rcx]
lea rbx, [rax + rax]
shl rax, 4
lea rbp, [rsi + rax]
add rbp, 8
mov rax, qword [rsi + rax]
cmp rax, r14
je 0x1403f0090
mov rcx, qword [rbp]
mov rdx, qword [r13 + 0x10]
cmp rdx, qword [rcx + 0x10]
jne 0x1403f02d0
mov dword [rsp + 0x20], 0x70eb3969
mov rdx, r13
lea r8, [rsp + 0x50]
mov r9d, 0x35d96ce1
call fcn.1403f76a0
test al, 1
jne 0x1403f02ab
mov r12, qword [rsp + 0x50]
mov dword [rsp + 0x28], 0x66821a8e
mov dword [rsp + 0x20], 0x84426429
mov rcx, r13
mov rdx, r15
lea r8, [rsp + 0x58]
lea rbx, [rsp + 0x50]
mov r9, rbx
call fcn.1403f8230
mov rsi, qword [rsp + 0x58]
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x60], rax
mov rcx, r15
mov rdx, rbx
mov r8d, 0x309f24d1
mov r9d, 0x291baeb0
call fcn.140147640
mov r9, qword [rsp + 0x50]
mov rcx, qword [r9]
mov qword [rcx], r12
mov rax, qword [r12 + 8]
add r12, 8
mov qword [rax], r13
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x38], 0x63896674
mov dword [rsp + 0x30], 0x483296e6
mov rdx, r12
mov r12, r14
mov r8, qword [rsp + 0x60]
call fcn.1403f7810
mov rcx, r13
mov rdx, rbp
mov r8d, 0x96b58b4d
mov r9d, 0x9c6b34de
call fcn.140118840
jmp 0x1403f0098
cmp rax, rcx
je 0x1403f03f9
mov rcx, qword [rcx + 8]
cmp rdx, qword [rcx + 0x10]
jne 0x1403f02d0
mov dword [rsp + 0x28], 0x60be3fa2
mov dword [rsp + 0x20], 0x16982bfd
mov rdx, r13
lea rsi, [rsp + 0x58]
mov r8, rsi
lea rbx, [rsp + 0x50]
mov r9, rbx
call fcn.1403f8360
mov r8, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x50]
mov ecx, dword [0x1405bc3b8]
mov eax, ecx
not eax
mov edx, ecx
and edx, 0xfc7f9c2f
mov r9d, eax
and r9d, 0x38063d0
or r9d, edx
mov edx, ecx
and edx, 0x38063d0
lea edx, [r9 + rdx*2]
mov r9d, ecx
and r9d, 0x9610ab60
mov r10d, eax
and r10d, 0x69ef549f
or r10d, r9d
xor ecx, 0x69ef549f
and eax, 0x1610ab60
or eax, ecx
not eax
add eax, eax
mov ecx, r10d
xor ecx, eax
and eax, r10d
lea eax, [rcx + rax*2]
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x38], edx
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rsi
lea rax, [rsp + 0x80]
mov qword [rsp + 0x20], rax
mov rcx, rbp
mov rdx, r15
lea r9, [rsp + 0x78]
call fcn.1403f8250
mov rbx, qword [rsp + 0x78]
mov r12, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x50]
mov rsi, qword [rdx]
mov qword [rsi], r13
mov r8d, 0xe98a659c
mov r9d, 0x9c7bfdd2
call fcn.140118840
mov dword [rsp + 0x28], 0x4cab445d
mov dword [rsp + 0x20], 0x42decf08
mov rcx, rbx
mov rdx, r12
mov r12, r14
mov r8, rsi
mov r9, rbp
call fcn.1401d3800
jmp 0x1403f0098
mov r12, qword [r13 + 8]
mov qword [r12], r15
mov r8, qword [r15 + 8]
mov qword [r8], rcx
mov dword [rsp + 0x28], 0xc085de8b
mov dword [rsp + 0x20], 0x9c7bfdd2
mov rdx, r13
lea r9, [rsp + 0x50]
call fcn.1403f7790
mov rax, qword [rsp + 0x50]
mov qword [r15 + 8], r12
mov r12, r14
mov qword [r13 + 8], rax
mov qword [rsi + rbx*8], r13
jmp 0x1403f0098
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 1
xor edx, edx
mov r8d, 0x378c58f7
mov r9d, 0x11248ca5
call fcn.1403f5260
mov rcx, rax
call fcn.140446544
int3