Function at 0x140023c40
Capabilities:
Hash data using fnv

Disassembly:
push rbx
mov rax, qword [r8 + 0x10]
mov r11, rcx
mov r10, r8
xor r9d, r9d
mov rbx, rdx
mov rcx, qword [rax + 8]
mov r8, qword [rcx + 0x10]
test r8, r8
jg 0x140022694
mov edx, r9d
jmp 0x1400226ba
mov rax, qword [rcx + 0x20]
sub rax, qword [rcx + 0x18]
cqo
idiv r8
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv r8
imul rdx, rcx, 0x3b9aca00
add rdx, rax
movabs rax, 0x431bde82d7b634db
imul rdx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, qword [r11 + 0x70]
jge 0x1400226f4
mov r8, qword [rbx + 8]
mov rcx, r11
mov rdx, qword [r10 + 8]
mov r8, qword [r8 + 8]
mov rdx, qword [rdx + 8]
pop rbx
jmp 0x140023b00
mov r8, qword [r10 + 8]
movabs rcx, 0x100000001b3
movabs rax, 0xcbf29ce484222325
movzx edx, byte [r8 + 8]
xor rdx, rax
movzx eax, byte [r8 + 9]
imul rdx, rcx
xor rdx, rax
movzx eax, byte [r8 + 0xa]
imul rdx, rcx
xor rdx, rax
movzx eax, byte [r8 + 0xb]
imul rdx, rcx
xor rdx, rax
movzx eax, byte [r8 + 0xc]
imul rdx, rcx
xor rdx, rax
movzx eax, byte [r8 + 0xd]
imul rdx, rcx
xor rdx, rax
movzx eax, byte [r8 + 0xe]
imul rdx, rcx
xor rdx, rax
movzx eax, byte [r8 + 0xf]
imul rdx, rcx
xor rdx, rax
imul rdx, rcx
mov rcx, qword [r11 + 0x38]
and rcx, rdx
mov rdx, qword [r11 + 0x20]
mov r11, qword [r11 + 0x10]
add rcx, rcx
mov rax, qword [rdx + rcx*8 + 8]
cmp rax, r11
je 0x1400227a8
mov rdx, qword [rdx + rcx*8]
mov rcx, qword [r8 + 8]
cmp rcx, qword [rax + 0x10]
je 0x1400227a5
cmp rax, rdx
je 0x1400227a8
mov rax, qword [rax + 8]
cmp rcx, qword [rax + 0x10]
jne 0x140022796
mov r9, rax
mov rax, qword [r10 + 0x18]
mov r8, 0xffffffffffffffff
mov rdx, qword [rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x1400227b6
test r9, r9
cmove r9, r11
lea rcx, [r9 + 0x38]
pop rbx
jmp fcn.140003f90
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x20
mov rdi, rdx
mov rsi, rcx
movabs r9, 0x100000001b3
movzx edx, r8b
movabs rax, 0xcbf29ce484222325
xor rdx, rax
mov rax, r8
imul rdx, r9
shr rax, 8
movzx ecx, al
mov rax, r8
xor rdx, rcx
shr rax, 0x10
imul rdx, r9
movzx ecx, al
mov rax, r8
xor rdx, rcx
shr rax, 0x18
imul rdx, r9
movzx ecx, al
mov rax, r8
xor rdx, rcx
shr rax, 0x20
imul rdx, r9
movzx ecx, al
mov rax, r8
xor rdx, rcx
shr rax, 0x28
imul rdx, r9
movzx ecx, al
mov rax, r8
xor rdx, rcx
shr rax, 0x30
imul rdx, r9
movzx ecx, al
mov rax, r8
xor rdx, rcx
shr rax, 0x38
mov rcx, qword [rsi + 0x38]
imul rdx, r9
xor rdx, rax
mov rax, qword [rsi + 0x20]
imul rdx, r9
and rcx, rdx
mov rdx, qword [rsi + 0x10]
add rcx, rcx
mov rbx, qword [rax + rcx*8 + 8]
cmp rbx, rdx
je 0x140023be1
mov rax, qword [rax + rcx*8]
cmp r8, qword [rbx + 0x10]
je 0x140023be3
nop
cmp rbx, rax
je 0x140023be1
mov rbx, qword [rbx + 8]
cmp r8, qword [rbx + 0x10]
jne 0x140023bd0
jmp 0x140023be3
xor ebx, ebx
test rbx, rbx
cmove rbx, rdx
mov r8, qword [rbx + 0x60]
mov rcx, qword [rbx + 0x58]
cmp rcx, r8
je 0x140023c08
mov rax, qword [rcx]
cmp qword [rax], rdi
je 0x140023c08
add rcx, 8
cmp rcx, r8
jne 0x140023bf7
lea rdx, [rcx + 8]
sub r8, rdx
call sub.VCRUNTIME140.dll_memmove
add qword [rbx + 0x60], 0xfffffffffffffff8
mov rdx, rdi
mov rcx, rsi
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
jmp 0x140023c40
mov qword [rsp + 0x20], rbx
push rsi
push r14
push r15
sub rsp, 0x20
mov rsi, rcx
movzx r8d, dl
movabs r14, 0x100000001b3
movabs r15, 0xcbf29ce484222325
xor r8, r15
mov rax, rdx
imul r8, r14
shr rax, 8
movzx ecx, al
mov rax, rdx
xor r8, rcx
shr rax, 0x10
imul r8, r14
movzx ecx, al
mov rax, rdx
xor r8, rcx
shr rax, 0x18
imul r8, r14
movzx ecx, al
mov rax, rdx
xor r8, rcx
shr rax, 0x20
imul r8, r14
movzx ecx, al
mov rax, rdx
xor r8, rcx
shr rax, 0x28
imul r8, r14
movzx ecx, al
mov rax, rdx
xor r8, rcx
shr rax, 0x30
imul r8, r14
movzx ecx, al
mov rax, rdx
xor r8, rcx
shr rax, 0x38
mov rcx, qword [rsi + 0x10]
imul r8, r14
xor r8, rax
mov rax, qword [rsi + 0x20]
imul r8, r14
and r8, qword [rsi + 0x38]
add r8, r8
mov rbx, qword [rax + r8*8 + 8]
cmp rbx, rcx
je 0x140023e31
mov rax, qword [rax + r8*8]
cmp rdx, qword [rbx + 0x10]
je 0x140023d23
nop dword [rax + rax]
cmp rbx, rax
je 0x140023e31
mov rbx, qword [rbx + 8]
cmp rdx, qword [rbx + 0x10]
jne 0x140023d10
test rbx, rbx
cmove rbx, rcx
cmp rbx, rcx
je 0x140023e31
mov qword [rsp + 0x48], rbp
mov rbp, qword [rbx + 0x60]
mov qword [rsp + 0x50], rdi
mov rdi, qword [rbx + 0x58]
cmp rdi, rbp
je 0x140023d67
nop word [rax + rax]
mov rdx, qword [rdi]
mov rcx, rsi
mov rdx, qword [rdx]
call 0x140023c40
add rdi, 8
cmp rdi, rbp
jne 0x140023d50
movzx eax, byte [rbx + 0x11]
movzx edx, byte [rbx + 0x10]
mov rdi, qword [rsp + 0x50]
xor rdx, r15
mov rbp, qword [rsp + 0x48]
imul rdx, r14
xor rdx, rax
movzx eax, byte [rbx + 0x12]
imul rdx, r14
xor rdx, rax
movzx eax, byte [rbx + 0x13]
imul rdx, r14
xor rdx, rax
movzx eax, byte [rbx + 0x14]
imul rdx, r14
xor rdx, rax
movzx eax, byte [rbx + 0x15]
imul rdx, r14
xor rdx, rax
movzx eax, byte [rbx + 0x16]
imul rdx, r14
xor rdx, rax
movzx eax, byte [rbx + 0x17]
imul rdx, r14
xor rdx, rax
imul rdx, r14
and rdx, qword [rsi + 0x38]
shl rdx, 4
add rdx, qword [rsi + 0x20]
mov rax, qword [rdx]
cmp qword [rdx + 8], rbx
jne 0x140023dfa
cmp rax, rbx
jne 0x140023df0
mov rax, qword [rsi + 0x10]
mov qword [rdx], rax
mov qword [rdx + 8], rax
jmp 0x140023e05
mov rax, qword [rbx + 8]
mov qword [rdx + 8], rax
jmp 0x140023e05
cmp rax, rbx
jne 0x140023e05
mov rax, qword [rbx]
mov qword [rdx], rax
mov rcx, qword [rbx]
dec qword [rsi + 0x18]
mov rax, qword [rbx + 8]
mov qword [rax], rcx
mov rax, qword [rbx + 8]
mov qword [rcx + 8], rax
lea rcx, [rbx + 0x18]
call fcn.140013070
mov edx, 0xb0
mov rcx, rbx
call fcn.140026ad0
mov rbx, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r14
pop rsi
ret