Function at 0x180078850
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 - 0x110]
sub rsp, 0x210
mov rax, qword [0x180112b80]
xor rax, rsp
mov qword [rbp + 0x100], rax
mov qword [rbp + 0xc0], rdx
mov r8, rcx
mov qword [rbp - 0x60], rcx
xor eax, eax
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x54], eax
mov dword [rsp + 0x64], eax
cmp dword [rdx + 0x34], eax
jle 0x18007918b
movabs r10, 0xcbf29ce484222325
movabs r9, 0x100000001b3
movzx ebx, byte [rsp + 0x60]
nop
cdqe
imul rsi, rax, 0x88
add rsi, qword [rdx + 0x58]
mov qword [rbp + 0xb0], 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 0x180078991
mov rcx, qword [rcx]
cmp rsi, qword [rax + 0x10]
je 0x180078993
nop
cmp rax, rcx
je 0x180078991
mov rax, qword [rax + 8]
cmp rsi, qword [rax + 0x10]
jne 0x180078980
jmp 0x180078993
xor eax, eax
test rax, rax
cmove rax, rdx
cmp rax, rdx
je 0x180079171
lea rcx, [rax + 0x18]
mov qword [rbp + 0xb8], rcx
test rcx, rcx
je 0x180079171
mov dword [rsp + 0x54], 3
lea rax, [rsp + 0x54]
cmp dword [rcx], 3
cmovl rax, rcx
mov edi, dword [rax]
test edi, edi
jle 0x180079171
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x38], xmm0
xor r12d, r12d
mov qword [rsp + 0x48], r12
xor edx, edx
mov dword [rsp + 0x30], edx
mov r14, qword [rsp + 0x40]
mov r13, qword [rsp + 0x38]
cmp dword [rsi + 4], edx
jle 0x180078a80
xor r15d, r15d
mov rax, qword [rsi + 0x28]
mov ecx, dword [r15 + rax + 4]
lea eax, [rcx - 1]
cmp eax, 0x1ffffffe
ja 0x180078a71
cmp r13, r14
je 0x180078a29
cmp ecx, dword [r14 - 4]
jne 0x180078a29
lea eax, [rcx + 1]
mov dword [r14 - 4], eax
jmp 0x180078a71
mov dword [rsp + 0x70], ecx
lea eax, [rcx + 1]
mov dword [rsp + 0x74], eax
cmp r14, r12
je 0x180078a4c
mov rax, qword [rsp + 0x70]
mov qword [r14], rax
add r14, 8
mov qword [rsp + 0x40], r14
jmp 0x180078a71
lea r8, [rsp + 0x70]
mov rdx, r14
lea rcx, [rsp + 0x38]
call fcn.18004cc40
mov r12, qword [rsp + 0x48]
mov r14, qword [rsp + 0x40]
mov r13, qword [rsp + 0x38]
mov edx, dword [rsp + 0x30]
inc edx
mov dword [rsp + 0x30], edx
add r15, 0x48
cmp edx, dword [rsi + 4]
jl 0x180078a02
mov qword [rsp + 0x58], r13
xor edx, edx
mov dword [rsp + 0x30], edx
cmp dword [rsi + 0x7c], edx
jle 0x180078b23
xor r15d, r15d
nop word [rax + rax]
mov rax, qword [rsi + 0x50]
mov ecx, dword [r15 + rax + 4]
lea eax, [rcx - 1]
cmp eax, 0x1ffffffe
ja 0x180078b0f
cmp r13, r14
je 0x180078ac7
cmp ecx, dword [r14 - 4]
jne 0x180078ac7
lea eax, [rcx + 1]
mov dword [r14 - 4], eax
jmp 0x180078b0f
mov dword [rsp + 0x78], ecx
lea eax, [rcx + 1]
mov dword [rsp + 0x7c], eax
cmp r14, r12
je 0x180078aea
mov rax, qword [rsp + 0x78]
mov qword [r14], rax
add r14, 8
mov qword [rsp + 0x40], r14
jmp 0x180078b0f
lea r8, [rsp + 0x78]
mov rdx, r14
lea rcx, [rsp + 0x38]
call fcn.18004cc40
mov r12, qword [rsp + 0x48]
mov r14, qword [rsp + 0x40]
mov r13, qword [rsp + 0x38]
mov edx, dword [rsp + 0x30]
inc edx
mov dword [rsp + 0x30], edx
add r15, 0x48
cmp edx, dword [rsi + 0x7c]
jl 0x180078aa0
mov qword [rsp + 0x58], r13
xor r15d, r15d
cmp dword [rsi + 0x80], r15d
jle 0x180078bc5
xor r13d, r13d
nop word [rax + rax]
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 0x180078bab
mov dword [rbp - 0x80], ecx
mov dword [rbp - 0x7c], edx
cmp r14, r12
je 0x180078b90
mov rax, qword [rbp - 0x80]
mov qword [r14], rax
add r14, 8
mov qword [rsp + 0x40], r14
jmp 0x180078bab
lea r8, [rbp - 0x80]
mov rdx, r14
lea rcx, [rsp + 0x38]
call fcn.18004cc40
mov r12, qword [rsp + 0x48]
mov r14, qword [rsp + 0x40]
inc r15d
add r13, 8
cmp r15d, dword [rsi + 0x80]
jl 0x180078b40
mov r13, qword [rsp + 0x38]
mov qword [rsp + 0x58], r13
xor r15d, r15d
cmp dword [rsi + 0x78], r15d
jle 0x180078c62
xor r13d, r13d
nop word [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 0x180078c4b
mov dword [rbp - 0x78], ecx
mov dword [rbp - 0x74], edx
cmp r14, r12
je 0x180078c30
mov rax, qword [rbp - 0x78]
mov qword [r14], rax
add r14, 8
mov qword [rsp + 0x40], r14
jmp 0x180078c4b
lea r8, [rbp - 0x78]
mov rdx, r14
lea rcx, [rsp + 0x38]
call fcn.18004cc40
mov r12, qword [rsp + 0x48]
mov r14, qword [rsp + 0x40]
inc r15d
add r13, 0x10
cmp r15d, dword [rsi + 0x78]
jl 0x180078be0
mov r13, qword [rsp + 0x38]
mov qword [rsp + 0x58], r13
mov dword [rbp - 0x70], 0x1fffffff
mov dword [rbp - 0x6c], 0x20000000
cmp r14, r12
je 0x180078c87
mov rax, qword [rbp - 0x70]
mov qword [r14], rax
add r14, 8
mov qword [rsp + 0x40], r14
jmp 0x180078cac
lea r8, [rbp - 0x70]
mov rdx, r14
lea rcx, [rsp + 0x38]
call fcn.18004cc40
mov r12, qword [rsp + 0x48]
mov r14, qword [rsp + 0x40]
mov r13, qword [rsp + 0x38]
mov qword [rsp + 0x58], r13
mov dword [rbp - 0x68], 0x4a38
mov dword [rbp - 0x64], 0x4e1f
cmp r14, r12
je 0x180078cd1
mov rax, qword [rbp - 0x68]
mov qword [r14], rax
add r14, 8
mov qword [rsp + 0x40], r14
jmp 0x180078cf6
lea r8, [rbp - 0x68]
mov rdx, r14
lea rcx, [rsp + 0x38]
call fcn.18004cc40
mov r12, qword [rsp + 0x48]
mov r14, qword [rsp + 0x40]
mov r13, qword [rsp + 0x38]
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.18004ed10
mov r15d, 1
mov dword [rsp + 0x30], r15d
lea rcx, [0x180000000]
lea rax, [rcx + 0xf98d8]
mov qword [rbp - 0x50], rax
lea rax, [rcx + 0xf98e0]
mov qword [rbp - 0x40], rax
xor ecx, ecx
mov qword [rbp + 0x50], rcx
mov qword [rbp + 0x78], rcx
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x80], xmm0
mov eax, dword [rsp + 0x50]
or eax, 4
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x54], eax
lea rax, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rbp + 0x48], rax
mov dword [rbp + 0x44], 0x80
mov qword [rbp - 0x48], rcx
xor r8d, r8d
lea rdx, [rbp - 0x38]
lea rcx, [rbp + 0x48]
call fcn.18000f600
nop
mov rax, qword [rbp - 0x40]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x40], rax
mov rax, qword [rbp - 0x40]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x10]
mov dword [rbp + rcx - 0x44], edx
mov rax, qword [rbp - 0x50]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_iostream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x50], rax
mov rax, qword [rbp - 0x50]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x20]
mov dword [rbp + rcx - 0x54], edx
mov rax, qword [rbp - 0x50]
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 - 0x50], rax
mov rax, qword [rbp - 0x50]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x98]
mov dword [rbp + rcx - 0x54], edx
lea rax, vtable.std::basic_streambuf_char__struct_std::char_traits_char__.0
mov qword [rbp - 0x38], rax
lea ecx, [r15 + 0xf]
call fcn.1800b6470
mov qword [rsp + 0x68], rax
test rax, rax
je 0x180078e20
movzx ecx, r15b
call fcn.1800b5234
mov rcx, qword [rsp + 0x68]
mov qword [rcx + 8], rax
jmp 0x180078e22
xor ecx, ecx
mov qword [rbp + 0x28], rcx
lea rax, [rbp - 0x30]
mov qword [rbp - 0x20], rax
lea rax, [rbp - 0x28]
mov qword [rbp - 0x18], rax
lea rax, [rbp - 0x10]
mov qword [rbp], rax
lea rax, [rbp - 8]
mov qword [rbp + 8], rax
lea rax, [rbp + 0x10]
mov qword [rbp + 0x18], rax
lea rax, [rbp + 0x14]
mov qword [rbp + 0x20], rax
xor eax, eax
mov qword [rbp - 0x28], rax
mov qword [rbp - 8], rax
mov qword [rbp + 0x10], rax
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x10], rax
lea rcx, vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rbp - 0x38], rcx
mov qword [rbp + 0x30], rax
mov dword [rbp + 0x38], eax
mov rax, qword [rsi + 8]
add rax, 0x20
mov qword [rsp + 0x68], rax
lea rdx, str.Suggested_field_numbers_for
lea rcx, [rbp - 0x40]
call fcn.1800094d0
mov rcx, rax
mov rax, qword [rsp + 0x68]
mov rdx, rax
cmp qword [rax + 0x18], 0x10
jb 0x180078eb0
mov rdx, qword [rax]
mov r8, qword [rax + 0x10]
call fcn.18000ab30
mov rcx, rax
lea rdx, [0x1800f8dec]
call fcn.1800094d0
lea rdx, [0x1800f8ba8]
cmp r13, r14
je 0x180078f3d
cmp r15d, dword [r13]
jge 0x180078f15
nop word [rax + rax]
test edi, edi
jle 0x180078f0c
mov esi, r15d
inc r15d
lea rcx, [rbp - 0x40]
call fcn.1800094d0
mov rcx, rax
mov edx, esi
call fcn.1800534a0
lea rdx, [0x1800e5ac4]
dec edi
cmp r15d, dword [r13]
jl 0x180078ee0
mov dword [rsp + 0x30], r15d
test edi, edi
je 0x180078f36
lea rax, [r13 + 4]
lea rcx, [rsp + 0x30]
cmp r15d, dword [rax]
cmovl rcx, rax
mov r15d, dword [rcx]
mov dword [rsp + 0x30], r15d
add r13, 8
cmp r13, r14
jne 0x180078ed4
mov rsi, qword [rbp + 0xb0]
mov rdi, qword [rbp + 0xb8]
cmp qword [rdi + 8], 0
je 0x180079072
xorps xmm0, xmm0
movups xmmword [rbp + 0xe0], xmm0
mov qword [rbp + 0xf0], 0
mov qword [rbp + 0xf8], 0xf
mov byte [rbp + 0xe0], 0
mov r14d, dword [rsp + 0x50]
or r14d, 2
mov dword [rsp + 0x54], r14d
movups xmmword [rbp + 0xc8], xmm0
mov ecx, dword [rbp + 0x38]
mov eax, ecx
and al, 0x22
cmp al, 2
je 0x180078fb7
mov rax, qword [rbp + 8]
mov r8, qword [rax]
test r8, r8
je 0x180078fb7
mov rax, qword [rbp - 0x18]
mov rdx, qword [rax]
cmp r8, qword [rbp + 0x30]
cmovb r8, qword [rbp + 0x30]
sub r8, rdx
jmp 0x180078fec
test cl, 4
jne 0x180078fde
mov rax, qword [rbp]
mov rcx, qword [rax]
test rcx, rcx
je 0x180078fde
mov rax, qword [rbp - 0x20]
mov rdx, qword [rax]
mov rax, qword [rbp + 0x18]
movsxd r8, dword [rax]
sub r8, rdx
add r8, rcx
jmp 0x180078fec
mov r8, qword [rbp + 0xd0]
mov rdx, qword [rbp + 0xc8]
test rdx, rdx
je 0x180078ffd
lea rcx, [rbp + 0xe0]
call fcn.180004420
and r14d, 0xfffffffd
or r14d, 1
mov dword [rsp + 0x50], r14d
mov rdx, qword [rsi + 8]
add rdx, 0x20
lea rax, [rbp + 0xe0]
mov qword [rsp + 0x20], rax
mov r9d, dword [rdi + 0x10]
mov r8, qword [rdi + 8]
mov rcx, qword [rbp - 0x60]
call fcn.180053e60
nop
mov rdx, qword [rbp + 0xf8]
cmp rdx, 0x10
jb 0x180079072
inc rdx
mov rcx, qword [rbp + 0xe0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18007906c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800791b5
call fcn.1800b681c
nop
mov rax, qword [rbp - 0x50]
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 - 0x50], rax
mov rax, qword [rbp - 0x50]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x98]
mov dword [rbp + rcx - 0x54], edx
lea rcx, [rbp - 0x38]
call fcn.180006d30
mov rax, qword [rbp - 0x50]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_iostream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x50], rax
mov rax, qword [rbp - 0x50]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x20]
mov dword [rbp + rcx - 0x54], edx
mov rax, qword [rbp - 0x40]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x40], rax
mov rax, qword [rbp - 0x40]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x10]
mov dword [rbp + rcx - 0x44], edx
mov rax, qword [rbp - 0x50]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x50], rax
mov rax, qword [rbp - 0x50]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x18]
mov dword [rbp + rcx - 0x54], edx
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0x48], rax
lea rcx, [rbp + 0x48]
call fcn.1800b5580
nop
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x180079159
sub r12, rcx
and r12, 0xfffffffffffffff8
mov rax, rcx
cmp r12, 0x1000
jb 0x180079151
add r12, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800791bb
mov rdx, r12
call fcn.1800b681c
movabs r10, 0xcbf29ce484222325
movabs r9, 0x100000001b3
mov r8, qword [rbp - 0x60]
mov eax, dword [rsp + 0x64]
inc eax
mov dword [rsp + 0x64], eax
mov rdx, qword [rbp + 0xc0]
cmp eax, dword [rdx + 0x34]
jl 0x1800788c0
mov rcx, qword [rbp + 0x100]
xor rcx, rsp
call fcn.1800b6330
mov rbx, qword [rsp + 0x260]
add rsp, 0x210
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1800bd52c
nop
call fcn.1800bd52c
int3