Function at 0x18016f180
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 [0x180225b80]
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 0x18016f978
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 0x18016f2c1
mov rcx, qword [rcx]
cmp rsi, qword [rax + 0x10]
je 0x18016f2c3
nop dword [rax + rax]
cmp rax, rcx
je 0x18016f2c1
mov rax, qword [rax + 8]
cmp rsi, qword [rax + 0x10]
jne 0x18016f2b0
jmp 0x18016f2c3
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 0x18016f94e
mov r15d, 3
cmp dword [r8], r15d
cmovl r15d, dword [r8]
test r15d, r15d
jle 0x18016f94e
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 0x18016f3ad
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 0x18016f39e
cmp r13, r14
je 0x18016f356
cmp ecx, dword [r14 - 4]
jne 0x18016f356
lea eax, [rcx + 1]
mov dword [r14 - 4], eax
jmp 0x18016f39e
mov dword [rsp + 0x68], ecx
lea eax, [rcx + 1]
mov dword [rsp + 0x6c], eax
cmp r14, r12
je 0x18016f379
mov rax, qword [rsp + 0x68]
mov qword [r14], rax
add r14, 8
mov qword [rsp + 0x38], r14
jmp 0x18016f39e
lea r8, [rsp + 0x68]
mov rdx, r14
lea rcx, [rsp + 0x30]
call fcn.180145260
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 0x18016f330
mov qword [rsp + 0x58], r13
xor edx, edx
mov dword [rsp + 0x48], edx
cmp dword [rsi + 0x7c], edx
jle 0x18016f452
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 0x18016f43e
cmp r13, r14
je 0x18016f3f6
cmp ecx, dword [r14 - 4]
jne 0x18016f3f6
lea eax, [rcx + 1]
mov dword [r14 - 4], eax
jmp 0x18016f43e
mov dword [rsp + 0x70], ecx
lea eax, [rcx + 1]
mov dword [rsp + 0x74], eax
cmp r14, r12
je 0x18016f419
mov rax, qword [rsp + 0x70]
mov qword [r14], rax
add r14, 8
mov qword [rsp + 0x38], r14
jmp 0x18016f43e
lea r8, [rsp + 0x70]
mov rdx, r14
lea rcx, [rsp + 0x30]
call fcn.180145260
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 0x18016f3d0
mov qword [rsp + 0x58], r13
xor edi, edi
cmp dword [rsi + 0x80], edi
jle 0x18016f4ea
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 0x18016f4d2
mov dword [rsp + 0x78], ecx
mov dword [rsp + 0x7c], edx
cmp r14, r12
je 0x18016f4b6
mov rax, qword [rsp + 0x78]
mov qword [r14], rax
add r14, 8
mov qword [rsp + 0x38], r14
jmp 0x18016f4d2
lea r8, [rsp + 0x78]
mov rdx, r14
lea rcx, [rsp + 0x30]
call fcn.180145260
mov r12, qword [rsp + 0x40]
mov r14, qword [rsp + 0x38]
inc edi
add r13, 8
cmp edi, dword [rsi + 0x80]
jl 0x18016f463
mov r13, qword [rsp + 0x30]
mov qword [rsp + 0x58], r13
xor edi, edi
cmp dword [rsi + 0x78], edi
jle 0x18016f580
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 0x18016f56b
mov dword [rbp - 0x80], ecx
mov dword [rbp - 0x7c], edx
cmp r14, r12
je 0x18016f550
mov rax, qword [rbp - 0x80]
mov qword [r14], rax
add r14, 8
mov qword [rsp + 0x38], r14
jmp 0x18016f56b
lea r8, [rbp - 0x80]
mov rdx, r14
lea rcx, [rsp + 0x30]
call fcn.180145260
mov r12, qword [rsp + 0x40]
mov r14, qword [rsp + 0x38]
inc edi
add r13, 0x10
cmp edi, dword [rsi + 0x78]
jl 0x18016f500
mov r13, qword [rsp + 0x30]
mov qword [rsp + 0x58], r13
mov dword [rbp - 0x78], 0x1fffffff
mov dword [rbp - 0x74], 0x20000000
cmp r14, r12
je 0x18016f5a5
mov rax, qword [rbp - 0x78]
mov qword [r14], rax
add r14, 8
mov qword [rsp + 0x38], r14
jmp 0x18016f5ca
lea r8, [rbp - 0x78]
mov rdx, r14
lea rcx, [rsp + 0x30]
call fcn.180145260
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 0x18016f5ef
mov rax, qword [rbp - 0x70]
mov qword [r14], rax
add r14, 8
mov qword [rsp + 0x38], r14
jmp 0x18016f614
lea r8, [rbp - 0x70]
mov rdx, r14
lea rcx, [rsp + 0x30]
call fcn.180145260
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.1801476f0
mov edi, 1
lea rax, [0x1801c7378]
mov qword [rbp - 0x30], rax
lea rax, [0x1801c7380]
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.18013f860
mov rcx, rax
mov rax, qword [rsp + 0x48]
mov rdx, rax
cmp qword [rax + 0x18], 0xf
jbe 0x18016f6ea
mov rdx, qword [rax]
mov r8, qword [rax + 0x10]
call fcn.18013ce20
lea rdx, [0x1801e85b8]
mov rcx, rax
call fcn.18013f860
lea rdx, [0x1801e8fc2]
cmp r13, r14
je 0x18016f75e
nop
cmp edi, dword [r13]
jge 0x18016f748
test r15d, r15d
jle 0x18016f746
mov esi, edi
inc edi
lea rcx, [rbp - 0x20]
call fcn.18013f860
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, [0x1801ed440]
dec r15d
cmp edi, dword [r13]
jl 0x18016f716
test r15d, r15d
je 0x18016f75a
cmp edi, dword [r13 + 4]
cmovl edi, dword [r13 + 4]
add r13, 8
cmp r13, r14
jne 0x18016f710
mov rsi, qword [rbp - 0x60]
mov r15, qword [rbp - 0x58]
cmp qword [r15 + 8], 0
je 0x18016f8bc
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 0x18016f7f5
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 0x18016f7f2
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 0x18016f830
mov ecx, dword [rbp + 0x58]
test cl, 4
jne 0x18016f828
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 0x18016f828
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 0x18016f830
mov rdi, qword [rbp - 0x40]
mov r14, qword [rbp - 0x48]
test r14, r14
je 0x18016f847
mov r8, rdi
mov rdx, r14
lea rcx, [rbp + 0xd8]
call fcn.180016970
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.18014c410
nop
mov rdx, qword [rbp + 0xf0]
cmp rdx, 0xf
jbe 0x18016f8bc
inc rdx
mov rcx, qword [rbp + 0xd8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18016f8b6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18016f96a
call fcn.180199f84
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.1801003c0
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 0x18016f93a
sub r12, rcx
and r12, 0xfffffffffffffff8
mov rax, rcx
cmp r12, 0x1000
jb 0x18016f932
add r12, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18016f971
mov rdx, r12
call fcn.180199f84
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 0x18016f978
mov r8, qword [rbp - 0x68]
jmp 0x18016f1f0
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.180199a90
mov rbx, qword [rsp + 0x250]
add rsp, 0x200
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret