Function at 0x14003c9d0
Capabilities:
Hash data using fnv

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x80]
sub rsp, 0x180
mov qword [rbp - 0x28], 0xfffffffffffffffe
mov qword [rsp + 0x1d0], rbx
mov rax, qword [0x14018a028]
xor rax, rsp
mov qword [rbp + 0x78], rax
mov esi, r8d
mov dword [rbp - 0x80], r8d
mov rbx, rdx
mov qword [rbp - 0x78], rdx
mov r13, rcx
mov qword [rbp - 0x70], rcx
xor r12d, r12d
mov dword [rsp + 0x3c], r12d
mov rdx, qword [rdx]
lea rcx, [rbp]
call fcn.1400181d0
nop
mov dword [rsp + 0x34], r12d
mov rax, qword [rbx + 8]
sub rax, qword [rbx]
sar rax, 5
mov qword [rbp - 0x48], rax
mov r14, qword [rbp + 0x10]
lea ebx, [r12 + 8]
lea rcx, [r13 + 0x108]
mov qword [rbp - 0x40], rcx
call fcn.14003ee60
cmp byte [r13 + 0xf0], r12b
je 0x14003ca81
lea rcx, [r13 + 0x360]
call fcn.14003f040
mov edx, ebx
lea rcx, [r13 + 0x358]
call fcn.140028f30
nop
mov dword [rsp + 0x6c], r12d
test esi, esi
jle 0x14003d282
mov rsi, r12
mov qword [rsp + 0x40], r12
nop word [rax + rax]
movsxd rdi, ebx
mov r9d, 2
mov r8, rdi
lea rdx, [rbp]
mov rcx, r13
call fcn.14001abc0
mov word [rsp + 0x38], ax
lea rcx, [rbp]
mov r15, qword [rbp]
mov r12, qword [rbp + 0x18]
cmp r12, 0x10
cmovae rcx, r15
movzx eax, byte [rcx + rdi + 2]
mov byte [rsp + 0x30], al
xor ecx, ecx
mov dword [rsp + 0x70], ecx
mov dword [rsp + 0x68], ecx
add ebx, 3
test al, 8
je 0x14003cb15
movsxd r8, ebx
lea r9d, [rcx + 2]
lea rdx, [rbp]
mov rcx, r13
call fcn.14001abc0
movzx ecx, ax
mov dword [rsp + 0x70], ecx
add ebx, 2
mov r12, qword [rbp + 0x18]
mov r15, qword [rbp]
movzx eax, byte [rsp + 0x30]
test al, 4
je 0x14003cb42
movsxd r8, ebx
mov r9d, 4
lea rdx, [rbp]
mov rcx, r13
call fcn.14001ad00
mov dword [rsp + 0x68], eax
add ebx, 4
mov r12, qword [rbp + 0x18]
mov r15, qword [rbp]
movzx eax, byte [rsp + 0x30]
xor r8d, r8d
mov qword [rbp + 0x68], r8
mov qword [rbp + 0x70], 0xf
mov byte [rbp + 0x58], r8b
mov r13d, r8d
movzx edx, word [rsp + 0x38]
mov dword [rsp + 0x38], edx
mov rcx, rsi
shl rcx, 5
mov qword [rsp + 0x78], rcx
mov rsi, qword [rbp + 0x10]
mov edi, edx
sub edi, r13d
mov qword [rbp + 0x30], r8
mov qword [rbp + 0x38], 0xf
mov byte [rbp + 0x20], 0
movsxd rcx, ebx
mov qword [rsp + 0x58], r8
mov qword [rsp + 0x60], 0xf
mov byte [rsp + 0x48], 0
test al, 1
mov eax, r14d
je 0x14003cce6
sub eax, ebx
sar eax, 1
cmp edi, eax
cmovge edi, eax
cmp rsi, rcx
jb 0x14003d2b8
lea eax, [rdi + rdi]
mov dword [rsp + 0x30], eax
movsxd r8, eax
sub rsi, rcx
cmp rsi, r8
cmovb r8, rsi
lea rdx, [rbp]
cmp r12, 0x10
cmovae rdx, r15
add rdx, rcx
lea rcx, [rsp + 0x48]
call fcn.140019b10
or dword [rsp + 0x3c], 1
lea rcx, [rbp + 0x20]
call fcn.140019a20
movups xmm0, xmmword [rsp + 0x48]
movups xmmword [rbp + 0x20], xmm0
movups xmm1, xmmword [rsp + 0x58]
movups xmmword [rbp + 0x30], xmm1
xor r12d, r12d
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], 0xf
mov byte [rsp + 0x48], r12b
lea rcx, [rsp + 0x48]
call fcn.140019a20
mov qword [rbp - 0x58], r12
mov qword [rbp - 0x50], 0xf
mov byte [rbp - 0x68], r12b
lea r8d, [r12 + 5]
lea rdx, str.UTF_8
lea rcx, [rbp - 0x68]
call fcn.140019b10
nop
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], 0xf
mov byte [rsp + 0x48], r12b
lea r8d, [r12 + 8]
lea rdx, str.UTF_16LE
lea rcx, [rsp + 0x48]
call fcn.140019b10
nop
lea r9, [rbp - 0x68]
lea r8, [rsp + 0x48]
lea rdx, [rbp + 0x20]
lea rcx, [rbp - 0x20]
call fcn.1400755a0
mov rsi, rax
lea rax, [rbp + 0x20]
cmp rax, rsi
je 0x14003ccbf
lea rcx, [rbp + 0x20]
call fcn.140019a20
movups xmm0, xmmword [rsi]
movups xmmword [rbp + 0x20], xmm0
movups xmm1, xmmword [rsi + 0x10]
movups xmmword [rbp + 0x30], xmm1
mov qword [rsi + 0x10], r12
mov qword [rsi + 0x18], 0xf
mov byte [rsi], r12b
lea rcx, [rbp - 0x20]
call fcn.140019a20
nop
lea rcx, [rsp + 0x48]
call fcn.140019a20
nop
lea rcx, [rbp - 0x68]
call fcn.140019a20
mov eax, dword [rsp + 0x30]
jmp 0x14003ce15
sub eax, ebx
cmp edi, eax
cmovge edi, eax
cmp rsi, rcx
jb 0x14003d2b2
movsxd r8, edi
sub rsi, rcx
cmp rsi, r8
cmovb r8, rsi
lea rdx, [rbp]
cmp r12, 0x10
cmovae rdx, r15
add rdx, rcx
lea rcx, [rsp + 0x48]
call fcn.140019b10
or dword [rsp + 0x3c], 2
lea rcx, [rbp + 0x20]
call fcn.140019a20
movups xmm0, xmmword [rsp + 0x48]
movups xmmword [rbp + 0x20], xmm0
movups xmm1, xmmword [rsp + 0x58]
movups xmmword [rbp + 0x30], xmm1
xor r12d, r12d
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], 0xf
mov byte [rsp + 0x48], r12b
lea rcx, [rsp + 0x48]
call fcn.140019a20
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], 0xf
mov byte [rsp + 0x48], r12b
lea r8d, [r12 + 5]
lea rdx, str.UTF_8
lea rcx, [rsp + 0x48]
call fcn.140019b10
nop
mov qword [rbp - 0x58], r12
mov qword [rbp - 0x50], 0xf
mov byte [rbp - 0x68], r12b
lea r8d, [r12 + 0xa]
lea rdx, str.ISO_8859_1
lea rcx, [rbp - 0x68]
call fcn.140019b10
nop
lea r9, [rsp + 0x48]
lea r8, [rbp - 0x68]
lea rdx, [rbp + 0x20]
lea rcx, [rbp - 0x20]
call fcn.1400755a0
mov rsi, rax
lea rax, [rbp + 0x20]
cmp rax, rsi
je 0x14003cdf5
lea rcx, [rbp + 0x20]
call fcn.140019a20
movups xmm0, xmmword [rsi]
movups xmmword [rbp + 0x20], xmm0
movups xmm1, xmmword [rsi + 0x10]
movups xmmword [rbp + 0x30], xmm1
mov qword [rsi + 0x10], r12
mov qword [rsi + 0x18], 0xf
mov byte [rsi], r12b
lea rcx, [rbp - 0x20]
call fcn.140019a20
nop
lea rcx, [rbp - 0x68]
call fcn.140019a20
nop
lea rcx, [rsp + 0x48]
call fcn.140019a20
mov eax, edi
add ebx, eax
mov esi, ebx
lea rdx, [rbp + 0x20]
cmp qword [rbp + 0x38], 0x10
cmovae rdx, qword [rbp + 0x20]
mov r8, qword [rbp + 0x30]
lea rcx, [rbp + 0x58]
call fcn.140019c70
add r13d, edi
cmp r13d, dword [rsp + 0x38]
je 0x14003cec7
inc dword [rsp + 0x34]
inc qword [rsp + 0x40]
mov rcx, qword [rsp + 0x78]
add rcx, 0x20
mov qword [rsp + 0x78], rcx
mov rax, qword [rbp - 0x78]
mov r8, qword [rax]
add r8, rcx
lea rax, [rbp]
cmp rax, r8
je 0x14003ce86
mov rdx, r8
cmp qword [r8 + 0x18], 0x10
jb 0x14003ce79
mov rdx, qword [r8]
mov r8, qword [r8 + 0x10]
lea rcx, [rbp]
call fcn.140019b10
mov rsi, qword [rbp + 0x10]
mov r14, rsi
lea rax, [rbp]
mov r15, qword [rbp]
mov r12, qword [rbp + 0x18]
cmp r12, 0x10
cmovae rax, r15
movzx ecx, byte [rax]
mov byte [rsp + 0x30], cl
mov ebx, 1
lea rcx, [rbp + 0x20]
call fcn.140019a20
movzx eax, byte [rsp + 0x30]
mov edx, dword [rsp + 0x38]
xor r8d, r8d
jmp 0x14003cb71
lea rcx, [rbp + 0x20]
call fcn.140019a20
mov ecx, dword [rsp + 0x70]
test ecx, ecx
je 0x14003d1ba
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x40], xmm0
mov qword [rbp + 0x50], r12
mov rax, qword [rsp + 0x40]
mov rdi, rax
shl rdi, 5
mov r12d, ecx
mov r15d, dword [rsp + 0x34]
mov r13, qword [rbp - 0x70]
cmp ebx, r14d
jne 0x14003cf47
xor ebx, ebx
inc r15d
inc rax
mov qword [rsp + 0x40], rax
add rdi, 0x20
mov rax, qword [rbp - 0x78]
mov r8, qword [rax]
add r8, rdi
lea rax, [rbp]
cmp rax, r8
je 0x14003cf43
mov rdx, r8
cmp qword [r8 + 0x18], 0x10
jb 0x14003cf36
mov rdx, qword [r8]
mov r8, qword [r8 + 0x10]
lea rcx, [rbp]
call fcn.140019b10
mov r14, qword [rbp + 0x10]
lea eax, [rbx + 2]
movsxd r8, eax
mov r9d, 2
lea rdx, [rbp]
mov rcx, r13
call fcn.14001abc0
movzx esi, ax
mov word [rsp + 0x38], ax
movsxd r8, ebx
mov r9d, 2
lea rdx, [rbp]
mov rcx, r13
call fcn.14001abc0
mov word [rsp + 0x30], ax
mov rdx, qword [rbp + 0x48]
cmp qword [rbp + 0x50], rdx
je 0x14003cf99
mov word [rdx], ax
mov word [rdx + 2], si
add qword [rbp + 0x48], 4
jmp 0x14003cfac
lea r9, [rsp + 0x38]
lea r8, [rsp + 0x30]
lea rcx, [rbp + 0x40]
call fcn.140041090
add ebx, 4
sub r12, 1
mov rax, qword [rsp + 0x40]
jne 0x14003cf00
mov dword [rsp + 0x34], r15d
xor r12d, r12d
cmp byte [r13 + 0xf0], r12b
je 0x14003d166
mov r8, qword [r13 + 0x110]
sub r8, qword [r13 + 0x108]
sar r8, 5
mov qword [rsp + 0x78], r8
add r13, 0x358
movzx edx, r8b
movabs rax, 0xcbf29ce484222325
xor rdx, rax
movabs r9, 0x100000001b3
imul rdx, r9
mov rax, r8
shr rax, 8
movzx ecx, al
xor rdx, rcx
imul rdx, r9
mov rax, r8
shr rax, 0x10
movzx ecx, al
xor rdx, rcx
imul rdx, r9
mov rax, r8
shr rax, 0x18
movzx ecx, al
xor rdx, rcx
imul rdx, r9
mov rax, r8
shr rax, 0x20
movzx ecx, al
xor rdx, rcx
imul rdx, r9
mov rax, r8
shr rax, 0x28
movzx ecx, al
xor rdx, rcx
imul rdx, r9
mov rax, r8
shr rax, 0x30
movzx ecx, al
xor rdx, rcx
imul rdx, r9
mov rax, r8
shr rax, 0x38
xor rdx, rax
imul rdx, r9
mov rcx, qword [r13 + 0x30]
and rcx, rdx
mov r9, qword [r13 + 0x18]
mov rax, rcx
add rax, rax
mov rax, qword [r9 + rax*8]
add rcx, rcx
lea r11, [rcx*8 + 8]
mov rdx, qword [r13 + 8]
mov r10, qword [r9 + rcx*8]
nop dword [rax]
cmp r10, rdx
jne 0x14003d0ba
mov rcx, rdx
jmp 0x14003d0c1
mov rcx, qword [r11 + r9]
mov rcx, qword [rcx]
cmp rax, rcx
je 0x14003d0e0
cmp qword [rax + 0x10], r8
je 0x14003d0d1
mov rax, qword [rax]
jmp 0x14003d0b0
cmp rax, rdx
je 0x14003d0e0
mov qword [rbp - 0x38], rax
mov byte [rbp - 0x30], 0
jmp 0x14003d14b
lea rax, [rsp + 0x78]
mov qword [rsp + 0x70], rax
mov rdi, qword [rdx]
mov rsi, qword [rdi + 8]
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
mov r8, rsi
mov rdx, rdi
call fcn.140047000
mov r8, qword [r13 + 0x10]
movabs rdx, 0x555555555555554
sub rdx, r8
cmp rdx, 1
jb 0x14003d26d
lea rdx, [r8 + 1]
mov qword [r13 + 0x10], rdx
mov qword [rdi + 8], rax
mov qword [rsi], rax
mov r9, qword [r13 + 8]
mov r9, qword [r9]
lea r8, [r9 + 0x10]
lea rdx, [rbp - 0x38]
mov rcx, r13
call fcn.140045df0
mov rax, qword [rbp - 0x38]
lea rcx, [rax + 0x18]
lea rax, [rbp + 0x40]
cmp rcx, rax
je 0x14003d166
mov r8, qword [rbp + 0x48]
mov rdx, qword [rbp + 0x40]
call fcn.140043810
nop
mov rcx, qword [rbp + 0x40]
test rcx, rcx
je 0x14003d1bf
mov rax, qword [rbp + 0x50]
sub rax, rcx
sar rax, 2
lea rdx, [rax*4]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003d1a7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003d27b
call fcn.14008f5b4
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x40], xmm0
mov qword [rbp + 0x50], r12
jmp 0x14003d1bf
mov r15d, dword [rsp + 0x34]
add ebx, dword [rsp + 0x68]
mov rsi, qword [rsp + 0x40]
cmp ebx, r14d
jl 0x14003d21b
sub ebx, r14d
inc r15d
mov dword [rsp + 0x34], r15d
inc rsi
mov qword [rsp + 0x40], rsi
cmp r15d, dword [rbp - 0x48]
jge 0x14003d21b
mov r8, rsi
shl r8, 5
mov rax, qword [rbp - 0x78]
add r8, qword [rax]
lea rax, [rbp]
cmp rax, r8
je 0x14003d217
mov rdx, r8
cmp qword [r8 + 0x18], 0x10
jb 0x14003d20a
mov rdx, qword [r8]
mov r8, qword [r8 + 0x10]
lea rcx, [rbp]
call fcn.140019b10
mov r14, qword [rbp + 0x10]
mov rdi, qword [rbp - 0x40]
mov rax, qword [rdi + 8]
cmp qword [rdi + 0x10], rax
je 0x14003d23c
lea rdx, [rbp + 0x58]
mov rcx, rax
call fcn.1400181d0
add qword [rdi + 8], 0x20
jmp 0x14003d24c
lea r8, [rbp + 0x58]
mov rdx, rax
mov rcx, rdi
call fcn.1400310e0
nop
lea rcx, [rbp + 0x58]
call fcn.140019a20
mov eax, dword [rsp + 0x6c]
inc eax
mov dword [rsp + 0x6c], eax
cmp eax, dword [rbp - 0x80]
jge 0x14003d282
mov r13, qword [rbp - 0x70]
jmp 0x14003caa0
lea rcx, str.list_T__too_long
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
lea rcx, [rbp]
call fcn.140019a20
mov rcx, qword [rbp + 0x78]
xor rcx, rsp
call fcn.14008f1d0
mov rbx, qword [rsp + 0x1d0]
add rsp, 0x180
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.14001a480
nop
call fcn.14001a480
int3