Function at 0x1801e29a0
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x100]
sub rsp, 0x200
mov rax, qword [0x1802f1dc0]
xor rax, rsp
mov qword [rbp + 0xf8], rax
mov qword [rbp - 0x50], rdx
mov r8, rcx
mov qword [rbp - 0x68], rcx
xor eax, eax
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x64], eax
cmp dword [rdx + 0x34], eax
jle 0x1801e3198
movabs r10, 0xcbf29ce484222325
movabs r9, 0x100000001b3
movzx ebx, byte [rsp + 0x60]
nop dword [rax + rax]
cdqe
imul rsi, rax, 0x88
add rsi, qword [rdx + 0x58]
mov qword [rbp - 0x60], rsi
mov rax, rsi
shr rax, 8
movzx edx, al
movzx eax, sil
xor rax, r10
imul rax, r9
xor rdx, rax
imul rdx, r9
mov rax, rsi
shr rax, 0x10
movzx ecx, al
xor rdx, rcx
imul rdx, r9
mov rax, rsi
shr rax, 0x18
movzx ecx, al
xor rdx, rcx
imul rdx, r9
mov rax, rsi
shr rax, 0x20
movzx ecx, al
xor rdx, rcx
imul rdx, r9
mov rax, rsi
shr rax, 0x28
movzx ecx, al
xor rdx, rcx
imul rdx, r9
mov rax, rsi
shr rax, 0x30
movzx ecx, al
xor rcx, rdx
imul rcx, r9
mov rax, rsi
shr rax, 0x38
xor rcx, rax
imul rcx, r9
and rcx, qword [r8 + 0xa8]
shl rcx, 4
add rcx, qword [r8 + 0x90]
mov rax, qword [rcx + 8]
mov rdx, qword [r8 + 0x80]
cmp rax, rdx
je 0x1801e2ae1
mov rcx, qword [rcx]
cmp rsi, qword [rax + 0x10]
je 0x1801e2ae3
nop dword [rax + rax]
cmp rax, rcx
je 0x1801e2ae1
mov rax, qword [rax + 8]
cmp rsi, qword [rax + 0x10]
jne 0x1801e2ad0
jmp 0x1801e2ae3
xor eax, eax
mov rcx, rdx
test rax, rax
cmovne rcx, rax
lea rax, [rcx + 0x18]
xor r8d, r8d
cmp rcx, rdx
cmovne r8, rax
mov qword [rbp - 0x58], r8
test r8, r8
je 0x1801e316e
mov r15d, 3
cmp dword [r8], r15d
cmovl r15d, dword [r8]
test r15d, r15d
jle 0x1801e316e
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x30], xmm0
xor r12d, r12d
mov qword [rsp + 0x40], r12
xor edx, edx
mov dword [rsp + 0x48], edx
mov r14, qword [rsp + 0x38]
mov r13, qword [rsp + 0x30]
cmp dword [rsi + 4], edx
jle 0x1801e2bcd
xor edi, edi
nop word [rax + rax]
mov rax, qword [rsi + 0x28]
mov ecx, dword [rax + rdi + 4]
lea eax, [rcx - 1]
cmp eax, 0x1ffffffe
ja 0x1801e2bbe
cmp r13, r14
je 0x1801e2b76
cmp ecx, dword [r14 - 4]
jne 0x1801e2b76
lea eax, [rcx + 1]
mov dword [r14 - 4], eax
jmp 0x1801e2bbe
mov dword [rsp + 0x68], ecx
lea eax, [rcx + 1]
mov dword [rsp + 0x6c], eax
cmp r14, r12
je 0x1801e2b99
mov rax, qword [rsp + 0x68]
mov qword [r14], rax
add r14, 8
mov qword [rsp + 0x38], r14
jmp 0x1801e2bbe
lea r8, [rsp + 0x68]
mov rdx, r14
lea rcx, [rsp + 0x30]
call fcn.1801b8a80
mov r12, qword [rsp + 0x40]
mov r14, qword [rsp + 0x38]
mov r13, qword [rsp + 0x30]
mov edx, dword [rsp + 0x48]
inc edx
mov dword [rsp + 0x48], edx
add rdi, 0x48
cmp edx, dword [rsi + 4]
jl 0x1801e2b50
mov qword [rsp + 0x58], r13
xor edx, edx
mov dword [rsp + 0x48], edx
cmp dword [rsi + 0x7c], edx
jle 0x1801e2c72
xor edi, edi
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rsi + 0x50]
mov ecx, dword [rax + rdi + 4]
lea eax, [rcx - 1]
cmp eax, 0x1ffffffe
ja 0x1801e2c5e
cmp r13, r14
je 0x1801e2c16
cmp ecx, dword [r14 - 4]
jne 0x1801e2c16
lea eax, [rcx + 1]
mov dword [r14 - 4], eax
jmp 0x1801e2c5e
mov dword [rsp + 0x70], ecx
lea eax, [rcx + 1]
mov dword [rsp + 0x74], eax
cmp r14, r12
je 0x1801e2c39
mov rax, qword [rsp + 0x70]
mov qword [r14], rax
add r14, 8
mov qword [rsp + 0x38], r14
jmp 0x1801e2c5e
lea r8, [rsp + 0x70]
mov rdx, r14
lea rcx, [rsp + 0x30]
call fcn.1801b8a80
mov r12, qword [rsp + 0x40]
mov r14, qword [rsp + 0x38]
mov r13, qword [rsp + 0x30]
mov edx, dword [rsp + 0x48]
inc edx
mov dword [rsp + 0x48], edx
add rdi, 0x48
cmp edx, dword [rsi + 0x7c]
jl 0x1801e2bf0
mov qword [rsp + 0x58], r13
xor edi, edi
cmp dword [rsi + 0x80], edi
jle 0x1801e2d0a
xor r13d, r13d
mov rax, qword [rsi + 0x58]
mov edx, dword [rax + r13 + 4]
mov ecx, dword [rax + r13]
mov eax, 0x20000000
cmp ecx, eax
cmovl eax, ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
mov eax, 0x20000000
cmp edx, eax
cmovl eax, edx
xor edx, edx
test eax, eax
cmovg edx, eax
cmp ecx, edx
jge 0x1801e2cf2
mov dword [rsp + 0x78], ecx
mov dword [rsp + 0x7c], edx
cmp r14, r12
je 0x1801e2cd6
mov rax, qword [rsp + 0x78]
mov qword [r14], rax
add r14, 8
mov qword [rsp + 0x38], r14
jmp 0x1801e2cf2
lea r8, [rsp + 0x78]
mov rdx, r14
lea rcx, [rsp + 0x30]
call fcn.1801b8a80
mov r12, qword [rsp + 0x40]
mov r14, qword [rsp + 0x38]
inc edi
add r13, 8
cmp edi, dword [rsi + 0x80]
jl 0x1801e2c83
mov r13, qword [rsp + 0x30]
mov qword [rsp + 0x58], r13
xor edi, edi
cmp dword [rsi + 0x78], edi
jle 0x1801e2da0
xor r13d, r13d
nop dword [rax + rax]
mov rax, qword [rsi + 0x48]
mov edx, dword [rax + r13 + 4]
mov ecx, dword [rax + r13]
mov eax, 0x20000000
cmp ecx, eax
cmovl eax, ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
mov eax, 0x20000000
cmp edx, eax
cmovl eax, edx
xor edx, edx
test eax, eax
cmovg edx, eax
cmp ecx, edx
jge 0x1801e2d8b
mov dword [rbp - 0x80], ecx
mov dword [rbp - 0x7c], edx
cmp r14, r12
je 0x1801e2d70
mov rax, qword [rbp - 0x80]
mov qword [r14], rax
add r14, 8
mov qword [rsp + 0x38], r14
jmp 0x1801e2d8b
lea r8, [rbp - 0x80]
mov rdx, r14
lea rcx, [rsp + 0x30]
call fcn.1801b8a80
mov r12, qword [rsp + 0x40]
mov r14, qword [rsp + 0x38]
inc edi
add r13, 0x10
cmp edi, dword [rsi + 0x78]
jl 0x1801e2d20
mov r13, qword [rsp + 0x30]
mov qword [rsp + 0x58], r13
mov dword [rbp - 0x78], 0x1fffffff
mov dword [rbp - 0x74], 0x20000000
cmp r14, r12
je 0x1801e2dc5
mov rax, qword [rbp - 0x78]
mov qword [r14], rax
add r14, 8
mov qword [rsp + 0x38], r14
jmp 0x1801e2dea
lea r8, [rbp - 0x78]
mov rdx, r14
lea rcx, [rsp + 0x30]
call fcn.1801b8a80
mov r12, qword [rsp + 0x40]
mov r14, qword [rsp + 0x38]
mov r13, qword [rsp + 0x30]
mov qword [rsp + 0x58], r13
mov dword [rbp - 0x70], 0x4a38
mov dword [rbp - 0x6c], 0x4e1f
cmp r14, r12
je 0x1801e2e0f
mov rax, qword [rbp - 0x70]
mov qword [r14], rax
add r14, 8
mov qword [rsp + 0x38], r14
jmp 0x1801e2e34
lea r8, [rbp - 0x70]
mov rdx, r14
lea rcx, [rsp + 0x30]
call fcn.1801b8a80
mov r12, qword [rsp + 0x40]
mov r14, qword [rsp + 0x38]
mov r13, qword [rsp + 0x30]
mov qword [rsp + 0x58], r13
mov r8, r14
sub r8, r13
sar r8, 3
movzx r9d, bl
mov rdx, r14
mov rcx, r13
call fcn.1801baf10
mov edi, 1
lea rax, [0x1802729f8]
mov qword [rbp - 0x30], rax
lea rax, [0x180272a00]
mov qword [rbp - 0x20], rax
lea rcx, [rbp + 0x68]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::constructor_void____ptr64]
nop
mov eax, dword [rsp + 0x50]
or eax, 4
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x48], eax
xor r8d, r8d
lea rdx, [rbp - 0x18]
lea rcx, [rbp - 0x30]
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_iostream_char__struct_std::char_traits_char__::constructor_class_std::basic_streambuf_char__struct_std::char_traits_char______ptr64____ptr64]
nop
mov rax, qword [rbp - 0x30]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rbp + rcx - 0x30], rax
mov rax, qword [rbp - 0x30]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x98]
mov dword [rbp + rcx - 0x34], edx
lea rcx, [rbp - 0x18]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::constructor_void____ptr64]
lea rax, vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rbp - 0x18], rax
xor eax, eax
mov qword [rbp + 0x50], rax
mov dword [rbp + 0x58], eax
mov rax, qword [rsi + 8]
add rax, 0x20
mov qword [rsp + 0x48], rax
lea rdx, str.Suggested_field_numbers_for
lea rcx, [rbp - 0x20]
call fcn.1801b3080
mov rcx, rax
mov rax, qword [rsp + 0x48]
mov rdx, rax
cmp qword [rax + 0x18], 0xf
jbe 0x1801e2f0a
mov rdx, qword [rax]
mov r8, qword [rax + 0x10]
call fcn.1801b0640
lea rdx, [0x18021a1a0]
mov rcx, rax
call fcn.1801b3080
lea rdx, [0x18021d511]
cmp r13, r14
je 0x1801e2f7e
nop
cmp edi, dword [r13]
jge 0x1801e2f68
test r15d, r15d
jle 0x1801e2f66
mov esi, edi
inc edi
lea rcx, [rbp - 0x20]
call fcn.1801b3080
mov rcx, rax
mov edx, esi
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___int____ptr64]
lea rdx, [0x180223f60]
dec r15d
cmp edi, dword [r13]
jl 0x1801e2f36
test r15d, r15d
je 0x1801e2f7a
cmp edi, dword [r13 + 4]
cmovl edi, dword [r13 + 4]
add r13, 8
cmp r13, r14
jne 0x1801e2f30
mov rsi, qword [rbp - 0x60]
mov r15, qword [rbp - 0x58]
cmp qword [r15 + 8], 0
je 0x1801e30dc
xorps xmm0, xmm0
movups xmmword [rbp + 0xd8], xmm0
mov qword [rbp + 0xe8], 0
mov qword [rbp + 0xf0], 0xf
mov byte [rbp + 0xd8], 0
mov r13d, dword [rsp + 0x50]
or r13d, 2
mov dword [rsp + 0x48], r13d
movups xmmword [rbp - 0x48], xmm0
mov ecx, dword [rbp + 0x58]
mov eax, ecx
and al, 0x22
cmp al, 2
je 0x1801e3015
lea rcx, [rbp - 0x18]
call qword [sym.imp.MSVCP140.dll_protected:_char____ptr64___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::pptr_void_const___ptr64]
test rax, rax
je 0x1801e3012
lea rcx, [rbp - 0x18]
call qword [sym.imp.MSVCP140.dll_protected:_char____ptr64___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::pbase_void_const___ptr64]
mov r14, rax
lea rcx, [rbp - 0x18]
call qword [sym.imp.MSVCP140.dll_protected:_char____ptr64___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::pptr_void_const___ptr64]
mov rdi, rax
cmp rax, qword [rbp + 0x50]
cmovb rdi, qword [rbp + 0x50]
sub rdi, r14
lea rcx, [rbp - 0x18]
call qword [sym.imp.MSVCP140.dll_protected:_char____ptr64___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::epptr_void_const___ptr64]
jmp 0x1801e3050
mov ecx, dword [rbp + 0x58]
test cl, 4
jne 0x1801e3048
lea rcx, [rbp - 0x18]
call qword [sym.imp.MSVCP140.dll_protected:_char____ptr64___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::gptr_void_const___ptr64]
test rax, rax
je 0x1801e3048
lea rcx, [rbp - 0x18]
call qword [sym.imp.MSVCP140.dll_protected:_char____ptr64___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::eback_void_const___ptr64]
mov r14, rax
lea rcx, [rbp - 0x18]
call qword [sym.imp.MSVCP140.dll_protected:_char____ptr64___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::egptr_void_const___ptr64]
mov rdi, rax
sub rdi, r14
jmp 0x1801e3050
mov rdi, qword [rbp - 0x40]
mov r14, qword [rbp - 0x48]
test r14, r14
je 0x1801e3067
mov r8, rdi
mov rdx, r14
lea rcx, [rbp + 0xd8]
call fcn.18001e200
and r13d, 0xfffffffd
or r13d, 1
mov dword [rsp + 0x50], r13d
mov rdx, qword [rsi + 8]
add rdx, 0x20
lea rax, [rbp + 0xd8]
mov qword [rsp + 0x20], rax
mov r9d, dword [r15 + 0x10]
mov r8, qword [r15 + 8]
mov rcx, qword [rbp - 0x68]
call fcn.1801bfc30
nop
mov rdx, qword [rbp + 0xf0]
cmp rdx, 0xf
jbe 0x1801e30dc
inc rdx
mov rcx, qword [rbp + 0xd8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1801e30d6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801e318a
call fcn.18020cd88
nop
mov rax, qword [rbp - 0x30]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rbp + rcx - 0x30], rax
mov rax, qword [rbp - 0x30]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x98]
mov dword [rbp + rcx - 0x34], edx
lea rcx, [rbp - 0x18]
call fcn.180173b20
lea rcx, [rbp - 0x10]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_iostream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 0x68]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
nop
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x1801e315a
sub r12, rcx
and r12, 0xfffffffffffffff8
mov rax, rcx
cmp r12, 0x1000
jb 0x1801e3152
add r12, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801e3191
mov rdx, r12
call fcn.18020cd88
movabs r10, 0xcbf29ce484222325
movabs r9, 0x100000001b3
mov eax, dword [rsp + 0x64]
inc eax
mov dword [rsp + 0x64], eax
mov rdx, qword [rbp - 0x50]
cmp eax, dword [rdx + 0x34]
jge 0x1801e3198
mov r8, qword [rbp - 0x68]
jmp 0x1801e2a10
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, qword [rbp + 0xf8]
xor rcx, rsp
call fcn.18020d270
mov rbx, qword [rsp + 0x250]
add rsp, 0x200
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret