Function at 0x140031b90
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xf]
sub rsp, 0xa0
mov r14, r8
mov rdi, rdx
mov qword [rbp - 0x51], rcx
mov rsi, qword [rbp + 0x77]
mov r15, qword [rbp + 0x7f]
mov ecx, 0xa64e
mov r12d, 2
movzx edx, byte [rbp + 0x6f]
mov rax, qword [0x1401facf8]
cmp word [rax + 0x48], cx
je 0x140092bee
movzx ecx, r9b
cmp cl, dl
jne 0x140092f4f
cmp dl, r12b
je 0x140031e80
cmp dl, 0x69
je 0x140031e80
xor al, al
cmp cl, r12b
je 0x140031c32
cmp cl, 0x69
je 0x140031c32
test al, al
jne 0x140092c0e
mov ebx, 3
mov eax, ebx
mov rbx, qword [rsp + 0xf8]
add rsp, 0xa0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
test al, al
je 0x140092f47
xor ebx, ebx
mov qword [rbp - 0x69], rbx
mov qword [rbp - 0x39], rbx
mov rcx, qword [rdi]
mov rax, qword [rcx]
lea rdx, [rbp - 0x69]
call qword [rax + 0x40]
test eax, eax
js 0x140092f28
mov rcx, qword [rbp - 0x69]
mov rax, qword [rcx]
lea r8, [rbp - 0x31]
lea rdx, [rbp - 0x39]
call qword [rax + 0x18]
test eax, eax
js 0x140092f28
mov qword [rbp - 0x71], rbx
mov qword [rbp - 0x59], rbx
mov rcx, qword [r14]
mov rax, qword [rcx]
lea rdx, [rbp - 0x71]
call qword [rax + 0x40]
test eax, eax
js 0x140092f09
mov rcx, qword [rbp - 0x71]
mov rax, qword [rcx]
lea r8, [rbp - 0x2d]
lea rdx, [rbp - 0x59]
call qword [rax + 0x18]
test eax, eax
js 0x140092f09
cmp qword [rbp - 0x59], rbx
je 0x140092c15
mov al, 1
mov r14, qword [rbp - 0x39]
test r14, r14
je 0x140092ed3
test al, al
je 0x140092ee1
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strlen]
mov r13d, eax
mov edx, eax
mov rcx, r14
call fcn.14003c2f0
mov r12, rax
movzx r8d, al
movabs rax, 0xcbf29ce484222325
xor r8, rax
movabs r9, 0x100000001b3
imul r8, r9
mov rcx, r12
shr rcx, 8
movzx edx, cl
xor r8, rdx
imul r8, r9
mov rax, r12
shr rax, 0x10
movzx ecx, al
xor r8, rcx
imul r8, r9
mov rax, r12
shr rax, 0x18
movzx ecx, al
xor r8, rcx
imul r8, r9
mov rax, r12
shr rax, 0x20
movzx ecx, al
xor r8, rcx
imul r8, r9
mov rax, r12
shr rax, 0x28
movzx ecx, al
xor r8, rcx
imul r8, r9
mov rax, r12
shr rax, 0x30
movzx ecx, al
xor r8, rcx
imul r8, r9
mov rax, r12
shr rax, 0x38
xor r8, rax
imul r8, r9
mov rdx, qword [rsi + 0x30]
mov r10, qword [rsi + 0x18]
mov r9, r10
shr r9, 5
xor r9, r8
shr r9, 7
mov rdi, rbx
and r9, rdx
and r8b, 0x7f
movsx eax, r8b
movd xmm2, eax
punpcklbw xmm2, xmm2
punpcklwd xmm2, xmm2
pshufd xmm2, xmm2, 0
movdqu xmm1, xmmword [r10 + r9]
movdqa xmm0, xmm1
pcmpeqb xmm0, xmm2
pmovmskb eax, xmm0
test eax, eax
je 0x140032304
mov dword [rbp - 0x61], ebx
bsf ecx, eax
movsxd r8, ecx
mov r11, qword [rsi + 0x20]
lea rcx, [r8 + r9]
and rcx, rdx
add rcx, rcx
cmp qword [r11 + rcx*8], r12
jne 0x140032331
lea rax, [r8 + r9]
and rax, rdx
mov rcx, rax
shl rcx, 4
add rcx, r11
lea r8, [r10 + rax]
lea rax, [r10 + rdx]
cmp r8, rax
je 0x140092c29
mov rdi, qword [rcx + 8]
mov r9d, dword [rdi + 0x14]
add r9, qword [rsi]
mov eax, dword [r9 - 4]
cmp eax, r13d
jne 0x140092c60
mov edx, eax
mov r8, r14
movabs r10, 0xfefefefefefefeff
cmp dword [0x1401f7008], 3
jl 0x140092c2e
cmp rax, 0x10
jb 0x140031e79
nop dword [rax]
nop word [rax + rax]
movdqu xmm0, xmmword [r9]
pcmpistri xmm0, xmmword [r8], 0x18
pushfq
pop rax
test al, 0x41
jne 0x140092c41
add r9, 0x10
add r8, 0x10
sub rdx, 0x10
cmp rdx, 0x10
jae 0x140031e50
test rdx, rdx
je 0x140031ecc
jmp 0x140031e9a
mov al, 1
jmp 0x140031bfe
movabs r10, 0xfefefefefefefeff
cmp rdx, 8
jae 0x140032212
cmp rdx, 4
jae 0x1400321be
movsx eax, byte [r8]
movsx ecx, byte [r9]
cmp cl, al
jne 0x140092c56
inc r9
inc r8
dec rdx
test rdx, rdx
jne 0x140031e90
test rdi, rdi
je 0x140092cdd
lea rsi, [rdi + 0x10]
mov rax, qword [0x1401facf8]
mov ecx, 0xa64e
cmp word [rax + 0x48], cx
je 0x140092ce5
mov r13, qword [rbp - 0x59]
mov rcx, r13
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strlen]
mov r12d, eax
mov qword [rbp - 0x49], r12
mov edx, eax
mov rcx, r13
call fcn.14003c2f0
mov r14, rax
mov rcx, rax
shr rcx, 8
movzx edx, cl
movzx ecx, al
movabs rax, 0xcbf29ce484222325
xor rcx, rax
movabs r8, 0x100000001b3
imul rcx, r8
xor rdx, rcx
imul rdx, r8
mov rax, r14
shr rax, 0x10
movzx ecx, al
xor rdx, rcx
imul rdx, r8
mov rax, r14
shr rax, 0x18
movzx ecx, al
xor rdx, rcx
imul rdx, r8
mov rax, r14
shr rax, 0x20
movzx ecx, al
xor rdx, rcx
imul rdx, r8
mov rax, r14
shr rax, 0x28
movzx ecx, al
xor rdx, rcx
imul rdx, r8
mov rax, r14
shr rax, 0x30
movzx ecx, al
xor rdx, rcx
imul rdx, r8
mov rax, r14
shr rax, 0x38
xor rdx, rax
imul rdx, r8
mov r8, qword [r15 + 0x30]
mov r9, qword [r15 + 0x18]
mov rax, r9
shr rax, 5
xor rax, rdx
shr rax, 7
mov rdi, rbx
mov r10, r8
and r10, rax
and dl, 0x7f
movsx eax, dl
movd xmm2, eax
punpcklbw xmm2, xmm2
punpcklwd xmm2, xmm2
pshufd xmm2, xmm2, 0
movdqu xmm1, xmmword [r10 + r9]
movdqa xmm0, xmm1
pcmpeqb xmm0, xmm2
pmovmskb eax, xmm0
test eax, eax
je 0x1400322e1
bsf ecx, eax
movsxd rdx, ecx
mov r11, qword [r15 + 0x20]
lea rcx, [rdx + r10]
and rcx, r8
add rcx, rcx
cmp qword [r11 + rcx*8], r14
jne 0x140032327
lea rax, [rdx + r10]
and rax, r8
mov rcx, rax
shl rcx, 4
add rcx, r11
lea rdx, [rax + r9]
lea rax, [r8 + r9]
cmp rdx, rax
je 0x140092d32
mov rdi, qword [rcx + 8]
mov r9d, dword [rdi + 0x14]
add r9, qword [r15]
mov eax, dword [r9 - 4]
cmp eax, r12d
jne 0x140092d6e
mov r8, r13
cmp dword [0x1401f7008], 3
jl 0x140092d37
cmp rax, 0x10
jb 0x14003208a
movdqu xmm0, xmmword [r9]
pcmpistri xmm0, xmmword [r8], 0x18
pushfq
pop rdx
test dl, 0x41
jne 0x140092d4a
add r9, 0x10
add r8, 0x10
sub rax, 0x10
cmp rax, 0x10
jae 0x140032060
test rax, rax
je 0x1400320c1
cmp rax, 8
jae 0x140032277
cmp rax, 4
jae 0x14003216a
movsx ecx, byte [r9]
movsx edx, byte [r8]
cmp cl, dl
jne 0x140092d64
inc r9
inc r8
dec rax
test rax, rax
jne 0x14003208f
test rdi, rdi
je 0x140092dee
add rdi, 0x10
mov rax, qword [0x1401facf8]
mov ecx, 0xa64e
cmp word [rax + 0x48], cx
je 0x140092df6
mov eax, dword [rdi + 8]
cmp dword [rsi + 8], eax
jne 0x140092ea6
mov r8, qword [rdi + 0x10]
mov r9, qword [rsi + 0x10]
mov rdi, r9
test r9, r9
je 0x140032381
test rdi, rdi
je 0x140032112
test dword [rdi + 4], 0x4000
jne 0x140032164
mov rax, r8
test r8, r8
je 0x14003212b
test rax, rax
je 0x140032128
test dword [rax + 4], 0x4000
jne 0x14003215e
mov rbx, rax
cmp rdi, rbx
jne 0x14003233b
mov rcx, qword [rbp - 0x71]
test rcx, rcx
je 0x140032144
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rcx, qword [rbp - 0x69]
test rcx, rcx
je 0x140032154
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov eax, 1
jmp 0x140031c17
mov rax, qword [rax + 0x58]
jmp 0x14003211a
mov rdi, qword [rdi + 0x58]
jmp 0x140032104
mov r11d, dword [r9]
lea edx, [r11 - 0x1010101]
mov ecx, r11d
not ecx
and edx, ecx
test edx, 0x80808080
jne 0x1400320a3
mov r10d, dword [r8]
lea edx, [r10 - 0x1010101]
mov ecx, r10d
not ecx
and edx, ecx
test edx, 0x80808080
jne 0x1400320a3
cmp r11d, r10d
jne 0x1400320a3
add r9, 4
add r8, 4
sub rax, 4
jmp 0x1400320bc
mov r11d, dword [r9]
lea ecx, [r11 - 0x1010101]
mov eax, r11d
not eax
and ecx, eax
test ecx, 0x80808080
jne 0x140031eae
mov r10d, dword [r8]
lea ecx, [r10 - 0x1010101]
mov eax, r10d
not eax
and ecx, eax
test ecx, 0x80808080
jne 0x140031eae
cmp r11d, r10d
jne 0x140031eae
add r9, 4
add r8, 4
sub rdx, 4
jmp 0x140031ec7
mov r11, qword [r9]
lea rcx, [r11 + r10]
mov rax, r11
not rax
and rcx, rax
movabs rax, 0x8080808080808080
test rax, rcx
jne 0x1400321be
mov r10, qword [r8]
movabs rcx, 0xfefefefefefefeff
add rcx, r10
mov rax, r10
not rax
and rcx, rax
movabs rax, 0x8080808080808080
test rax, rcx
jne 0x1400321be
cmp r11, r10
jne 0x1400321be
add r9, 8
add r8, 8
sub rdx, 8
jmp 0x140031ec7
mov r11, qword [r9]
movabs r12, 0xfefefefefefefeff
lea rdx, [r11 + r12]
mov rcx, r11
not rcx
and rdx, rcx
movabs rcx, 0x8080808080808080
test rcx, rdx
jne 0x14003216a
mov r10, qword [r8]
lea rdx, [r10 + r12]
mov rcx, r10
not rcx
and rdx, rcx
movabs rcx, 0x8080808080808080
test rcx, rdx
jne 0x14003216a
cmp r11, r10
jne 0x14003216a
add r9, 8
add r8, 8
sub rax, 8
jmp 0x1400320bc
pcmpeqb xmm1, xmmword [0x1401b02a0]
pmovmskb eax, xmm1
test eax, eax
jne 0x140092d25
add rdi, 0x10
add r10, rdi
and r10, r8
jmp 0x140031fd8
pcmpeqb xmm1, xmmword [0x1401b02a0]
pmovmskb eax, xmm1
test eax, eax
jne 0x140092c1c
add rdi, 0x10
add r9, rdi
and r9, rdx
jmp 0x140031dac
lea ecx, [rax - 1]
and eax, ecx
jmp 0x140031fea
lea ecx, [rax - 1]
and eax, ecx
jmp 0x140031dbe
test rdi, rdi
je 0x140032389
mov dl, 1
movzx ecx, dl
call fcn.140058304
mov esi, eax
cmp eax, 1
jne 0x140092e36
mov rdx, r9
mov rsi, qword [rbp - 0x51]
mov rcx, rsi
call fcn.140050d44
test al, al
je 0x140092e5d
mov rcx, qword [rbp - 0x71]
test rcx, rcx
je 0x14003237c
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
jmp 0x140032144
mov rdi, rbx
jmp 0x140032112
xor edx, edx
jmp 0x140032342
mov ecx, r12d
movzx eax, r9b
cmp r9b, 0x69
cmovne ecx, eax
cmp dl, 0x69
jne 0x140031be2
movzx edx, r12b
jmp 0x140031be2
xor ebx, ebx
jmp 0x140031c15
xor al, al
jmp 0x140031cb6
lea r8, [r10 + rdx]
mov rcx, qword [rbp - 0x51]
jmp 0x140031dfc
xor r11b, r11b
jmp 0x140092c63
mov r8, rax
mov rdx, r14
mov rcx, r9
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
mov ecx, eax
jmp 0x140092c58
test al, 1
je 0x140031ecc
movsxd rax, ecx
movsx ecx, byte [rax + r9]
movsx eax, byte [rax + r8]
sub ecx, eax
test ecx, ecx
je 0x140031ecc
mov r11b, 1
mov eax, dword [rsi + 0x4c]
mov edx, eax
and edx, r12d
cmp edx, dword [rsi + 0x48]
jae 0x140092c7a
lea edx, [rax*2 + 1]
and edx, r12d
mov eax, edx
mov ecx, dword [rsi + 0x64]
shr eax, cl
mov ecx, dword [rsi + 0x60]
and ecx, edx
mov edx, eax
mov rax, qword [rsi + 0x78]
mov rax, qword [rax + rdx*8]
mov rdi, qword [rax + rcx*8]
mov rax, rdi
mov qword [rbp - 0x61], rax
test r11b, r11b
je 0x140092cdd
test rdi, rdi
je 0x140092cdd
cmp qword [rax + 8], r12
jne 0x140092cce
mov edx, dword [rax + 0x14]
add rdx, qword [rsi]
cmp dword [rdx - 4], r13d
jne 0x140092cce
mov r8, r13
mov rcx, r14
call fcn.14004e884
test eax, eax
je 0x140031ecc
mov rax, qword [rbp - 0x61]
mov rdi, qword [rax]
mov rax, rdi
mov qword [rbp - 0x61], rax
test rdi, rdi
jne 0x140092ca5
mov rsi, rbx
jmp 0x140031ed9
mov rcx, qword [rax + 0x10d0]
test rcx, rcx
je 0x140031eef
lea r8, [rbp - 0x49]
mov rdx, rsi
call fcn.1400f5d30
test eax, eax
je 0x140031eef
test dword [rsi], 0x100
je 0x140031eef
mov rax, qword [rbp - 0x49]
test byte [rax], 1
cmovne rsi, rax
jmp 0x140031eef
lea rdx, [r9 + r8]
mov rcx, qword [rbp - 0x51]
jmp 0x140032025
xor r11b, r11b
jmp 0x140092d71
mov r8, rax
mov rdx, r13
mov rcx, r9
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
mov ecx, eax
jmp 0x140092d66
test dl, 1
je 0x1400320c1
movsxd rax, ecx
movsx ecx, byte [rax + r9]
movsx eax, byte [rax + r8]
sub ecx, eax
jmp 0x140092d66
sub ecx, edx
test ecx, ecx
je 0x1400320c1
mov r11b, 1
mov eax, dword [r15 + 0x4c]
mov edx, r14d
and edx, eax
cmp edx, dword [r15 + 0x48]
jae 0x140092d8a
lea edx, [rax*2 + 1]
and edx, r14d
mov eax, edx
mov ecx, dword [r15 + 0x64]
shr eax, cl
mov ecx, dword [r15 + 0x60]
and ecx, edx
mov edx, eax
mov rax, qword [r15 + 0x78]
mov rax, qword [rax + rdx*8]
mov rdi, qword [rax + rcx*8]
mov r12, rdi
test r11b, r11b
je 0x140092dee
test rdi, rdi
je 0x140092dee
mov rax, qword [rbp - 0x49]
cmp qword [r12 + 8], r14
jne 0x140092de2
mov edx, dword [r12 + 0x14]
add rdx, qword [r15]
cmp dword [rdx - 4], eax
jne 0x140092de2
mov r8, rax
mov rcx, r13
call fcn.14004e884
test eax, eax
je 0x1400320c1
mov rax, qword [rbp - 0x49]
mov rdi, qword [r12]
mov r12, rdi
test rdi, rdi
jne 0x140092db7
mov rdi, rbx
jmp 0x1400320ce
mov rcx, qword [rax + 0x10d0]
test rcx, rcx
je 0x1400320e4
lea r8, [rbp - 0x49]
mov rdx, rdi
call fcn.1400f5d30
test eax, eax
je 0x1400320e4
test dword [rdi], 0x100
je 0x1400320e4
mov rax, qword [rbp - 0x49]
test byte [rax], 1
cmovne rdi, rax
jmp 0x1400320e4
mov rcx, qword [rbp - 0x71]
test rcx, rcx
je 0x140092e46
mov rdx, qword [rcx]
call qword [rdx + 0x10]
nop
mov rcx, qword [rbp - 0x69]
test rcx, rcx
je 0x140092e56
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov eax, esi
jmp 0x140031c17
mov r9d, dword [rsi]
inc r9d
mov r8, rbx
mov rdx, rdi
lea rcx, [rbp - 0x29]
call fcn.1400f4b08
lea rdx, [rsi + 0x28]
lea rcx, [rbp - 0x29]
call fcn.140034b80
mov ebx, eax
mov rcx, qword [rbp - 0x71]
test rcx, rcx
je 0x140092e91
mov rdx, qword [rcx]
call qword [rdx + 0x10]
nop
mov rcx, qword [rbp - 0x69]
test rcx, rcx
je 0x140092ea1
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
jmp 0x140031c15
mov eax, 2
cmovae ebx, eax
mov rcx, qword [rbp - 0x71]
test rcx, rcx
je 0x140092ebe
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rcx, qword [rbp - 0x69]
test rcx, rcx
je 0x140092ece
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
jmp 0x140031c15
mov r12d, ebx
mov ebx, 3
test al, al
cmove r12d, ebx
mov rcx, qword [rbp - 0x71]
test rcx, rcx
je 0x140092ef1
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rcx, qword [rbp - 0x69]
test rcx, rcx
je 0x140092f01
mov rdx, qword [rcx]
call qword [rdx + 0x10]
nop
mov eax, r12d
jmp 0x140031c17
mov ecx, eax
call fcn.1400eb398
xor edx, edx
mov rcx, qword [r14]
call fcn.140125f68
mov edx, 0x4d3
mov rcx, rax
call fcn.140124a00
nop
mov ecx, eax
call fcn.1400eb398
xor edx, edx
mov rcx, qword [rdi]
call fcn.140125f68
mov edx, 0x4d3
mov rcx, rax
call fcn.140124a00
nop
mov ebx, r12d
jmp 0x140031c15
xor ebx, ebx
cmp cl, dl
cmovae ebx, r12d
jmp 0x140031c15