Function at 0x1400da6a0
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x140]
sub rsp, 0x240
mov rdi, rdx
mov r15, rcx
mov r8, qword [rdx + 0x20]
mov r9, qword [rdx + 0x18]
mov rdx, r8
sub rdx, r9
sar rdx, 4
test rdx, rdx
je 0x1400db29c
mov rcx, qword [rdi]
movzx eax, word [r9]
mov r13d, dword [rcx + rax*4]
mov dword [rbp + 0x190], r13d
mov r14d, 1
xor r12d, r12d
cmp rdx, r14
jbe 0x1400da867
lea r12d, [r14 + 0xf]
nop dword [rax + rax]
sub r8, r9
sar r8, 4
cmp r8, r14
jbe 0x1400db29c
movzx ecx, word [r12 + r9]
mov rax, qword [rdi]
mov ebx, dword [rax + rcx*4]
mov rcx, r15
cmp ebx, dword [rdi + 0x44]
je 0x1400dacae
mov edx, ebx
call fcn.1400e1ef0
mov rsi, rax
test rax, rax
je 0x1400dabef
movzx ecx, word [rax + 0x3a]
call fcn.14006da00
test eax, eax
je 0x1400dabef
movzx eax, word [rsi + 0x3a]
cmp ax, 0x13
je 0x1400dabbd
mov ecx, 0x1e
cmp cx, ax
jne 0x1400da812
movzx edx, bl
movabs rax, 0xcbf29ce484222325
xor rdx, rax
movabs r8, 0x100000001b3
imul rdx, r8
mov eax, ebx
shr eax, 8
movzx ecx, al
xor rdx, rcx
imul rdx, r8
mov eax, ebx
shr eax, 0x10
movzx ecx, al
xor rdx, rcx
imul rdx, r8
mov eax, ebx
shr rax, 0x18
xor rdx, rax
imul rdx, r8
mov rcx, qword [r15 + 0x330]
and rcx, rdx
add rcx, rcx
mov rdx, qword [r15 + 0x318]
mov rax, qword [rdx + rcx*8 + 8]
mov r8, qword [r15 + 0x308]
cmp rax, r8
je 0x1400da800
mov rcx, qword [rdx + rcx*8]
cmp ebx, dword [rax + 0x10]
je 0x1400da802
nop
cmp rax, rcx
je 0x1400da800
mov rax, qword [rax + 8]
cmp ebx, dword [rax + 0x10]
jne 0x1400da7f0
jmp 0x1400da802
xor eax, eax
test rax, rax
cmove rax, r8
cmp rax, r8
jne 0x1400da8e5
mov rax, qword [r15]
mov ecx, dword [rax]
call fcn.140070150
test al, al
je 0x1400da83f
cmp word [rsi + 0x3a], 0x1d
jne 0x1400da83f
mov rax, qword [rdi + 0x20]
sub rax, qword [rdi + 0x18]
sar rax, 4
dec rax
cmp r14, rax
jne 0x1400daaff
inc r14
add r12, 0x10
mov r8, qword [rdi + 0x20]
mov r9, qword [rdi + 0x18]
mov rax, r8
sub rax, r9
sar rax, 4
cmp r14, rax
jb 0x1400da710
mov rcx, qword [rdi]
xor r12d, r12d
xor sil, sil
mov ebx, 2
mov rax, qword [rdi + 8]
sub rax, rcx
sar rax, 2
cmp rax, rbx
jbe 0x1400dadc0
lea r13d, [rbx + 0x1c]
nop word [rax + rax]
mov edx, dword [rcx + rbx*4]
mov rcx, r15
call fcn.1400e1ef0
test rax, rax
je 0x1400dad9f
cmp r13w, word [rax + 0x3a]
jne 0x1400dad9f
mov r8d, dword [rax + 0x44]
mov r10, qword [r15 + 0x3c0]
mov rax, qword [r10 + 8]
mov rdx, r10
movzx r11d, byte [rax + 0x19]
test r11b, r11b
jne 0x1400daced
mov rcx, rax
cmp dword [rcx + 0x20], r8d
jae 0x1400dacdd
mov rcx, qword [rcx + 0x10]
jmp 0x1400dace3
mov r9, rdi
mov r8d, 0xfffffff6
lea rdx, [rbp - 0x30]
mov rcx, r15
call fcn.1400e7010
mov rdi, rax
lea rdx, [0x14017d100]
mov rcx, rax
call fcn.14002dd70
mov r8d, ebx
lea rdx, [rsp + 0x20]
mov rcx, r15
call fcn.1400e7380
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x1400da92b
mov rax, qword [rax]
mov rdx, rax
mov rcx, rdi
call fcn.14002e220
lea rdx, [0x14017d110]
mov rcx, rdi
call fcn.14002dd70
lea rdx, [0x14017d150]
mov rcx, rdi
call fcn.14002dd70
lea rdx, [0x14017d188]
mov rcx, rdi
call fcn.14002dd70
lea rdx, [0x14017d198]
mov rcx, rdi
call fcn.14002dd70
mov r8d, r13d
lea rdx, [rsp + 0x50]
mov rcx, r15
call fcn.1400e7380
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x1400da991
mov rax, qword [rax]
mov rdx, rax
mov rcx, rdi
call fcn.14002e220
lea rdx, [0x14017d1b0]
mov rcx, rdi
call fcn.14002dd70
mov r8d, ebx
lea rdx, [rsp + 0x70]
mov rcx, r15
call fcn.1400e7380
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x1400da9ca
mov rax, qword [rax]
mov rdx, rax
mov rcx, rdi
call fcn.14002e220
lea rdx, [0x140126570]
mov rcx, rdi
call fcn.14002dd70
mov ebx, dword [rdi + 0x160]
mov rdx, qword [rbp - 0x78]
cmp rdx, 0x10
jb 0x1400daa26
inc rdx
mov rcx, qword [rsp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400daa21
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400db2a2
call fcn.1400ec648
xor edi, edi
mov qword [rbp - 0x80], rdi
mov qword [rbp - 0x78], 0xf
mov byte [rsp + 0x70], dil
mov rdx, qword [rsp + 0x68]
cmp rdx, 0x10
jb 0x1400daa76
inc rdx
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400daa71
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400db2a8
call fcn.1400ec648
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x68], 0xf
mov byte [rsp + 0x50], 0
mov rdx, qword [rsp + 0x38]
cmp rdx, 0x10
jb 0x1400daac6
inc rdx
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400daac1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400db2ae
call fcn.1400ec648
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], 0xf
mov byte [rsp + 0x20], 0
lea rcx, [rbp - 0x30]
call fcn.1400604a0
mov eax, ebx
mov rbx, qword [rsp + 0x280]
add rsp, 0x240
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov r9, rdi
mov r8d, 0xfffffff6
lea rdx, [rbp - 0x30]
mov rcx, r15
call fcn.1400e7010
mov rbx, rax
lea rdx, [0x14017d1cc]
mov rcx, rax
call fcn.14002dd70
mov rcx, qword [r15]
mov edx, dword [rcx]
lea rcx, [rsp + 0x20]
call fcn.1400701a0
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x1400dab44
mov rax, qword [rax]
mov rdx, rax
mov rcx, rbx
call fcn.14002e220
lea rdx, [0x14017d1d0]
mov rcx, rbx
call fcn.14002dd70
mov ebx, dword [rbx + 0x160]
mov rdx, qword [rsp + 0x38]
cmp rdx, 0x10
jb 0x1400daba1
inc rdx
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400dab9c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400db2b4
call fcn.1400ec648
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x38], 0xf
mov byte [rsp + 0x20], 0
jmp 0x1400daad9
mov r9, rdi
mov r8d, 0xfffffff6
lea rdx, [rbp - 0x30]
mov rcx, r15
call fcn.1400e7010
mov rbx, rax
lea rdx, [0x14017d0d8]
mov rcx, rax
call fcn.14002dd70
mov ebx, dword [rbx + 0x160]
jmp 0x1400daad9
mov r9, rdi
mov r8d, 0xfffffff6
lea rdx, [rbp - 0x30]
mov rcx, r15
call fcn.1400e7010
mov rdi, rax
lea rdx, [0x14017d0b8]
mov rcx, rax
call fcn.14002dd70
mov r8d, ebx
lea rdx, [rsp + 0x20]
mov rcx, r15
call fcn.1400e7380
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x1400dac35
mov rax, qword [rax]
mov rdx, rax
mov rcx, rdi
call fcn.14002e220
lea rdx, [0x14017cf40]
mov rcx, rdi
call fcn.14002dd70
mov ebx, dword [rdi + 0x160]
mov rdx, qword [rsp + 0x38]
cmp rdx, 0x10
jb 0x1400dac92
inc rdx
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400dac8d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400db2ba
call fcn.1400ec648
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x38], 0xf
mov byte [rsp + 0x20], 0
jmp 0x1400daad9
mov r9, rdi
mov r8d, 0xfffffff6
lea rdx, [rbp - 0x30]
call fcn.1400e7010
mov rbx, rax
lea rdx, [0x14017d088]
mov rcx, rax
call fcn.14002dd70
mov ebx, dword [rbx + 0x160]
jmp 0x1400daad9
mov rdx, rcx
mov rcx, qword [rcx]
cmp byte [rcx + 0x19], 0
je 0x1400da8d2
cmp byte [rdx + 0x19], 0
jne 0x1400dad22
cmp r8d, dword [rdx + 0x20]
jb 0x1400dad22
cmp rdx, r10
je 0x1400dad22
mov r9, qword [rdx + 0x30]
mov rcx, qword [rdx + 0x28]
cmp rcx, r9
je 0x1400dad22
nop dword [rax + rax]
cmp dword [rcx], 2
je 0x1400dad9c
add rcx, 0x28
cmp rcx, r9
jne 0x1400dad10
mov rcx, r10
test r11b, r11b
jne 0x1400dad48
nop word [rax + rax]
cmp dword [rax + 0x20], r8d
jae 0x1400dad3c
mov rax, qword [rax + 0x10]
jmp 0x1400dad42
mov rcx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
je 0x1400dad30
cmp byte [rcx + 0x19], 0
jne 0x1400dad74
cmp r8d, dword [rcx + 0x20]
jb 0x1400dad74
cmp rcx, r10
je 0x1400dad74
mov rdx, qword [rcx + 0x30]
mov rax, qword [rcx + 0x28]
cmp rax, rdx
je 0x1400dad74
cmp dword [rax], 3
je 0x1400dad9c
add rax, 0x28
cmp rax, rdx
jne 0x1400dad66
mov dword [rbp + 0x188], r8d
lea rcx, [r15 + 0x380]
lea r8, [rbp + 0x188]
lea rdx, [rsp + 0x50]
call fcn.1400d8070
mov rcx, qword [rax]
cmp byte [rcx + 0x14], 0
je 0x1400dad9f
mov sil, 1
inc rbx
mov rcx, qword [rdi]
mov rax, qword [rdi + 8]
sub rax, rcx
sar rax, 2
cmp rbx, rax
jb 0x1400da890
mov r13d, dword [rbp + 0x190]
mov eax, dword [rdi + 0x44]
mov dword [rbp + 0x188], eax
lea r8, [rbp + 0x188]
lea rdx, [rsp + 0x50]
lea rcx, [r15 + 0x380]
call fcn.1400d8070
mov rdx, qword [rax]
mov byte [rdx + 0x14], sil
mov eax, dword [rdi + 0x44]
mov dword [rbp + 0x188], eax
lea r8, [rbp + 0x188]
lea rdx, [rsp + 0x50]
lea rcx, [r15 + 0x380]
call fcn.1400d8070
mov rcx, qword [rax]
cmp byte [rcx + 0x14], 0
je 0x1400daed8
mov r8d, dword [rdi + 0x44]
mov r10, qword [r15 + 0x3c0]
mov rax, qword [r10 + 8]
mov rdx, r10
movzx r11d, byte [rax + 0x19]
test r11b, r11b
jne 0x1400dae4d
mov rcx, rax
cmp dword [rcx + 0x20], r8d
jae 0x1400dae41
mov rcx, qword [rcx + 0x10]
jmp 0x1400dae47
mov rdx, rcx
mov rcx, qword [rcx]
cmp byte [rcx + 0x19], 0
je 0x1400dae35
cmp byte [rdx + 0x19], 0
jne 0x1400dae82
cmp r8d, dword [rdx + 0x20]
jb 0x1400dae82
cmp rdx, r10
je 0x1400dae82
mov r9, qword [rdx + 0x30]
mov rcx, qword [rdx + 0x28]
cmp rcx, r9
je 0x1400dae82
nop dword [rax + rax]
cmp dword [rcx], 3
je 0x1400daf76
add rcx, 0x28
cmp rcx, r9
jne 0x1400dae70
mov rcx, r10
test r11b, r11b
jne 0x1400daea8
nop word [rax + rax]
cmp dword [rax + 0x20], r8d
jae 0x1400dae9c
mov rax, qword [rax + 0x10]
jmp 0x1400daea2
mov rcx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
je 0x1400dae90
cmp byte [rcx + 0x19], 0
jne 0x1400daed8
cmp r8d, dword [rcx + 0x20]
jb 0x1400daed8
cmp rcx, r10
je 0x1400daed8
mov rdx, qword [rcx + 0x30]
mov rax, qword [rcx + 0x28]
cmp rax, rdx
je 0x1400daed8
cmp dword [rax], 2
je 0x1400daf76
add rax, 0x28
cmp rax, rdx
jne 0x1400daec6
xorps xmm0, xmm0
movss dword [rbp - 0x70], xmm0
mov qword [rbp - 0x68], r12
mov qword [rbp - 0x60], r12
mov ecx, 0x18
call fcn.1400ec60c
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rbp - 0x68], rax
mov qword [rbp - 0x58], r12
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x50], xmm0
mov qword [rbp - 0x40], 7
mov qword [rbp - 0x38], 8
movss xmm0, dword [0x14012b904]
movss dword [rbp - 0x70], xmm0
mov r8, rax
mov edx, 0x10
lea rcx, [rbp - 0x58]
call fcn.1400019e0
nop
lea rsi, [r15 + 0x3c0]
mov rbx, qword [rsi]
mov rax, qword [rbx + 8]
mov qword [rsp + 0x70], rax
mov dword [rsp + 0x78], r12d
mov rcx, rbx
cmp byte [rax + 0x19], 0
jne 0x1400dafbc
nop dword [rax]
mov qword [rsp + 0x70], rax
cmp dword [rax + 0x20], r13d
jae 0x1400dafa8
mov dword [rsp + 0x78], r12d
mov rax, qword [rax + 0x10]
jmp 0x1400dafb6
mov r9, rdi
mov r8d, 0xfffffff6
lea rdx, [rbp - 0x30]
mov rcx, r15
call fcn.1400e7010
mov rbx, rax
lea rdx, [0x14017d220]
mov rcx, rax
call fcn.14002dd70
mov ebx, dword [rbx + 0x160]
jmp 0x1400daad9
mov dword [rsp + 0x78], 1
mov rcx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
je 0x1400daf60
cmp byte [rcx + 0x19], 0
jne 0x1400dafc8
cmp r13d, dword [rcx + 0x20]
jae 0x1400db02f
movabs rax, 0x3ffffffffffffff
cmp qword [rsi + 8], rax
je 0x1400db2c0
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x58], r12
mov ecx, 0x40
call fcn.1400ec60c
nop
mov dword [rax + 0x20], r13d
mov qword [rax + 0x28], r12
mov qword [rax + 0x30], r12
mov qword [rax + 0x38], r12
mov qword [rax], rbx
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbx
mov word [rax + 0x18], 0
movups xmm0, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0x50], xmm0
mov r8, rax
lea rdx, [rsp + 0x50]
mov rcx, rsi
call fcn.140047370
mov rcx, rax
mov rbx, qword [rcx + 0x28]
mov rsi, qword [rcx + 0x30]
cmp rbx, rsi
je 0x1400db0d4
mov eax, dword [rbx]
mov dword [rsp + 0x20], eax
lea rdx, [rbx + 8]
lea rcx, [rsp + 0x28]
call fcn.140071a50
mov eax, dword [rbx + 0x20]
mov dword [rsp + 0x40], eax
cmp dword [rsp + 0x20], 0xb
jne 0x1400db083
cmp eax, 0xffffffff
je 0x1400db083
mov dword [rbp + 0x188], eax
lea r8, [rbp + 0x188]
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x70]
call fcn.140064d10
nop
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x1400db0cb
mov rax, qword [rsp + 0x38]
sub rax, rcx
sar rax, 2
lea rdx, [rax*4]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400db0c6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400db2c6
call fcn.1400ec648
add rbx, 0x28
jmp 0x1400db037
mov rcx, qword [rdi + 0x20]
sub rcx, qword [rdi + 0x18]
sar rcx, 4
dec ecx
mov eax, dword [rbp - 0x60]
test eax, eax
jle 0x1400db196
cmp eax, ecx
je 0x1400db177
mov r9, rdi
mov r8d, 0xfffffff6
lea rdx, [rbp - 0x30]
mov rcx, r15
call fcn.1400e7010
mov rbx, rax
lea rdx, [0x14017d280]
mov rcx, rax
call fcn.14002dd70
lea rdx, [0x14017d2c0]
mov rcx, rbx
call fcn.14002dd70
lea rdx, [0x14017d300]
mov rcx, rbx
call fcn.14002dd70
lea rdx, [0x14017d340]
mov rcx, rbx
call fcn.14002dd70
mov edx, r13d
mov rcx, rbx
call fcn.14005a650
lea rdx, str._does_not_meet_this_requirement.
mov rcx, rbx
call fcn.14002dd70
mov ebx, dword [rbx + 0x160]
lea rcx, [rbp - 0x30]
call fcn.1400604a0
jmp 0x1400db288
mov dword [rbp + 0x188], r13d
lea rcx, [r15 + 0x300]
lea r8, [rbp + 0x188]
lea rdx, [rsp + 0x50]
call fcn.140064d10
mov rax, qword [r15]
mov ecx, dword [rax]
call fcn.140070150
test al, al
je 0x1400db285
mov rax, qword [r15 + 8]
cmp byte [rax + 0x2b], 0
jne 0x1400db285
mov rdx, rdi
mov rcx, r15
call fcn.1400d8340
test al, al
je 0x1400db285
mov r9, rdi
mov r8d, 0xfffffff6
lea rdx, [rbp - 0x30]
mov rcx, r15
call fcn.1400e7010
mov rbx, rax
lea rdx, [0x14017d1cc]
mov rcx, rax
call fcn.14002dd70
mov rcx, qword [r15]
mov edx, dword [rcx]
lea rcx, [rsp + 0x20]
call fcn.1400701a0
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x1400db20e
mov rax, qword [rax]
mov rdx, rax
mov rcx, rbx
call fcn.14002e220
lea rdx, [0x14017d388]
mov rcx, rbx
call fcn.14002dd70
mov ebx, dword [rbx + 0x160]
mov rdx, qword [rsp + 0x38]
cmp rdx, 0x10
jb 0x1400db267
inc rdx
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400db262
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400db296
call fcn.1400ec648
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x38], 0xf
mov byte [rsp + 0x20], 0
lea rcx, [rbp - 0x30]
call fcn.1400604a0
jmp 0x1400db288
mov ebx, r12d
lea rcx, [rbp - 0x70]
call fcn.140023f80
jmp 0x1400daae2
call fcn.1400f2c0c
nop
call fcn.14005fd00
nop
call fcn.1400f2c0c
nop
call fcn.1400f2c0c
nop
call fcn.1400f2c0c
nop
call fcn.1400f2c0c
nop
call fcn.1400f2c0c
nop
call fcn.140047d30
int3
call fcn.1400f2c0c
int3