Function at 0x4672a0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d51cb
mov eax, dword fs:[0]
push eax
sub esp, 0x150
mov eax, dword [0x5049c8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x68], ecx
mov edx, dword [ebp + 8]
xor eax, eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x60], edx
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x5c], eax
cmp dword [edx + 0x24], eax
jle 0x467bba
lea edi, [ecx + 0x44]
mov dword [ebp - 0x58], edi
lea esi, [edi + 4]
mov edx, dword [edx + 0x3c]
imul ecx, eax, 0x58
mov dword [ebp - 0x54], esi
add edx, ecx
mov eax, edx
mov dword [ebp - 0x4c], edx
shr eax, 8
movzx ecx, al
movzx eax, dl
xor eax, 0x811c9dc5
imul eax, eax, 0x1000193
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x10
movzx eax, al
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, edi
push eax
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x15c]
push eax
call fcn.00419dd0
mov eax, dword [eax + 4]
test eax, eax
je 0x467ba7
cmp eax, dword [esi]
je 0x467ba7
add eax, 0xc
mov dword [ebp - 0x64], eax
je 0x467ba7
cmp dword [eax], 3
lea esi, [ebp - 0x38]
mov dword [ebp - 0x38], 3
cmovl esi, eax
mov esi, dword [esi]
mov dword [ebp - 0x48], esi
test esi, esi
jle 0x467ba4
xor ecx, ecx
xor edi, edi
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 4], edi
mov dword [ebp - 0x2c], edi
cmp dword [eax + 4], edi
jle 0x46743b
xor edx, edx
mov dword [ebp - 0x30], edx
mov esi, edx
nop word [eax + eax]
mov eax, dword [eax + 0x18]
mov edx, dword [edx + eax + 4]
lea eax, [edx - 1]
cmp eax, 0x1ffffffe
ja 0x467418
cmp esi, edi
je 0x4673e2
cmp edx, dword [edi - 4]
jne 0x4673e2
lea eax, [edx + 1]
mov dword [edi - 4], eax
jmp 0x467418
mov dword [ebp - 0x120], edx
lea eax, [edx + 1]
mov dword [ebp - 0x11c], eax
cmp edi, ecx
je 0x467402
mov dword [edi], edx
mov dword [edi + 4], eax
add edi, 8
mov dword [ebp - 0x40], edi
jmp 0x467418
lea eax, [ebp - 0x120]
push eax
push edi
lea ecx, [ebp - 0x44]
call fcn.004436b0
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x4c]
inc dword [ebp - 0x2c]
mov edx, dword [ebp - 0x30]
mov edi, dword [ebp - 0x2c]
add edx, 0x30
cmp edi, dword [eax + 4]
mov edi, dword [ebp - 0x40]
mov dword [ebp - 0x30], edx
jl 0x4673c0
mov dword [ebp - 0x34], esi
mov esi, dword [ebp - 0x48]
mov dword [ebp - 0x30], ecx
cmp dword [eax + 0x4c], 0
mov dword [ebp - 0x2c], 0
jle 0x4674cf
mov esi, dword [ebp - 0x34]
xor edx, edx
mov dword [ebp - 0x30], edx
mov eax, dword [eax + 0x2c]
mov edx, dword [edx + eax + 4]
lea eax, [edx - 1]
cmp eax, 0x1ffffffe
ja 0x4674ac
cmp esi, edi
je 0x467476
cmp edx, dword [edi - 4]
jne 0x467476
lea eax, [edx + 1]
mov dword [edi - 4], eax
jmp 0x4674ac
mov dword [ebp - 0x128], edx
lea eax, [edx + 1]
mov dword [ebp - 0x124], eax
cmp edi, ecx
je 0x467496
mov dword [edi], edx
mov dword [edi + 4], eax
add edi, 8
mov dword [ebp - 0x40], edi
jmp 0x4674ac
lea eax, [ebp - 0x128]
push eax
push edi
lea ecx, [ebp - 0x44]
call fcn.004436b0
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x4c]
inc dword [ebp - 0x2c]
mov edx, dword [ebp - 0x30]
mov edi, dword [ebp - 0x2c]
add edx, 0x30
cmp edi, dword [eax + 0x4c]
mov edi, dword [ebp - 0x40]
mov dword [ebp - 0x30], edx
jl 0x467454
mov dword [ebp - 0x34], esi
mov esi, dword [ebp - 0x48]
mov dword [ebp - 0x30], ecx
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
cmp dword [eax + 0x50], ecx
jle 0x467566
mov esi, dword [ebp - 0x30]
mov eax, dword [eax + 0x30]
mov edx, dword [eax + ecx*8 + 4]
mov eax, dword [eax + ecx*8]
mov ecx, 0x20000000
cmp eax, ecx
cmovl ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
mov dword [ebp - 0x38], eax
mov eax, 0x20000000
cmp edx, eax
cmovl eax, edx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
mov eax, dword [ebp - 0x38]
cmp eax, ecx
jge 0x467549
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], ecx
cmp edi, esi
je 0x467533
mov dword [edi], eax
mov dword [edi + 4], ecx
add edi, 8
mov dword [ebp - 0x40], edi
jmp 0x467549
lea eax, [ebp - 0x130]
push eax
push edi
lea ecx, [ebp - 0x44]
call fcn.004436b0
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x4c]
inc ecx
mov dword [ebp - 0x2c], ecx
cmp ecx, dword [eax + 0x50]
jl 0x4674e0
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x30], esi
mov esi, dword [ebp - 0x48]
mov dword [ebp - 0x34], ecx
jmp 0x467569
mov ecx, dword [ebp - 0x34]
cmp dword [eax + 0x48], 0
mov dword [ebp - 0x2c], 0
jle 0x46760d
mov esi, dword [ebp - 0x30]
xor edx, edx
mov dword [ebp - 0x34], edx
mov eax, dword [eax + 0x28]
mov ecx, 0x20000000
add eax, edx
cmp dword [eax], ecx
mov edx, dword [eax + 4]
cmovl ecx, dword [eax]
xor eax, eax
test ecx, ecx
cmovg eax, ecx
mov dword [ebp - 0x38], eax
mov eax, 0x20000000
cmp edx, eax
cmovl eax, edx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
mov eax, dword [ebp - 0x38]
cmp eax, ecx
jge 0x4675e9
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x134], ecx
cmp edi, esi
je 0x4675d3
mov dword [edi], eax
mov dword [edi + 4], ecx
add edi, 8
mov dword [ebp - 0x40], edi
jmp 0x4675e9
lea eax, [ebp - 0x138]
push eax
push edi
lea ecx, [ebp - 0x44]
call fcn.004436b0
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x4c]
inc ecx
mov edx, dword [ebp - 0x34]
add edx, 0xc
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x34], edx
cmp ecx, dword [eax + 0x48]
jl 0x467582
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x30], esi
mov esi, dword [ebp - 0x48]
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x140], 0x1fffffff
mov dword [ebp - 0x13c], 0x20000000
cmp edi, eax
je 0x46763d
mov dword [edi], 0x1fffffff
mov dword [edi + 4], 0x20000000
add edi, 8
mov dword [ebp - 0x40], edi
jmp 0x46765c
lea eax, [ebp - 0x140]
push eax
push edi
lea ecx, [ebp - 0x44]
call fcn.004436b0
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x44]
mov edi, dword [ebp - 0x40]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x148], 0x4a38
mov dword [ebp - 0x144], 0x4e1f
cmp edi, eax
je 0x467689
mov dword [edi], 0x4a38
mov dword [edi + 4], 0x4e1f
add edi, 8
mov dword [ebp - 0x40], edi
jmp 0x4676a8
lea eax, [ebp - 0x148]
push eax
push edi
lea ecx, [ebp - 0x44]
call fcn.004436b0
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x44]
mov edi, dword [ebp - 0x40]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x34], ecx
push dword [ebp - 0x60]
mov eax, edi
sub eax, ecx
sar eax, 3
push eax
push edi
push ecx
call fcn.004451d0
mov edx, 1
mov dword [ebp - 0x118], 0x4e0334
add esp, 0x10
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x108], 0x4e033c
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0xb0]
or eax, 4
mov byte [ebp - 4], dl
mov dword [ebp - 0x50], eax
xorps xmm0, xmm0
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x100]
push 0
push eax
mov dword [ebp - 0xb0], vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov dword [ebp - 0xb4], 0x50
movlpd qword [ebp - 0x110], xmm0
call fcn.0040ea60
mov eax, dword [ebp - 0x108]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ostream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x108]
mov ecx, dword [eax + 4]
lea eax, [ecx - 8]
mov dword [ebp + ecx - 0x10c], eax
mov eax, dword [ebp - 0x118]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_iostream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_iostream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x118]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x20]
mov dword [ebp + ecx - 0x11c], eax
mov eax, dword [ebp - 0x118]
push 8
mov dword [ebp - 4], 6
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov eax, dword [ebp - 0x118]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0x11c], eax
mov dword [ebp - 0x100], vtable.std::basic_streambuf_char__struct_std::char_traits_char__.0
call fcn.004ab3b0
add esp, 4
mov dword [ebp - 0x2c], eax
test eax, eax
je 0x4677ed
push 1
mov byte [ebp - 4], 7
call fcn.004aa537
mov ecx, dword [ebp - 0x2c]
add esp, 4
mov dword [ecx + 4], eax
jmp 0x4677ef
xor ecx, ecx
lea eax, [ebp - 0xfc]
mov dword [ebp - 0xcc], ecx
mov dword [ebp - 0xf4], eax
lea eax, [ebp - 0xf8]
mov dword [ebp - 0xf0], eax
lea eax, [ebp - 0xec]
mov dword [ebp - 0xe4], eax
lea eax, [ebp - 0xe8]
mov dword [ebp - 0xe0], eax
lea eax, [ebp - 0xdc]
mov dword [ebp - 0xd4], eax
lea eax, [ebp - 0xd8]
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0xec], 0
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0x100], vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xc4], 0
mov eax, dword [ebp - 0x4c]
push str.Suggested_field_numbers_for
mov byte [ebp - 4], 8
mov eax, dword [eax + 8]
add eax, 0x18
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x108]
push eax
call fcn.004044e0
mov edx, eax
add esp, 8
mov eax, dword [ebp - 0x38]
mov ecx, eax
cmp dword [eax + 0x14], 0x10
jb 0x4678ca
mov ecx, dword [eax]
push 0x4d942c
push dword [eax + 0x10]
push ecx
push edx
call fcn.00404de0
add esp, 0xc
push eax
call fcn.004044e0
mov ecx, dword [ebp - 0x34]
add esp, 8
mov dword [ebp - 0x2c], ecx
mov edx, 0x4d943c
mov dword [ebp - 0x38], edx
cmp ecx, edi
je 0x467965
mov eax, dword [ebp - 0x48]
nop word [eax + eax]
cmp eax, dword [ecx]
jge 0x467942
mov edi, dword [ebp - 0x48]
test esi, esi
jle 0x467935
mov eax, edi
push eax
push edx
lea edi, [eax + 1]
lea eax, [ebp - 0x108]
push eax
call fcn.004044e0
add esp, 8
mov ecx, eax
call fcn.00408280
mov ecx, dword [ebp - 0x2c]
dec esi
mov edx, 0x4dc8ec
cmp edi, dword [ecx]
jl 0x467907
mov dword [ebp - 0x48], edi
mov edi, dword [ebp - 0x40]
mov dword [ebp - 0x38], edx
test esi, esi
je 0x467965
mov edx, dword [ebp - 0x48]
lea eax, [ecx + 4]
cmp edx, dword [eax]
lea ecx, [ebp - 0x48]
mov edx, dword [ebp - 0x38]
cmovl ecx, eax
mov eax, dword [ecx]
mov ecx, dword [ebp - 0x2c]
add ecx, 8
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x2c], ecx
cmp ecx, edi
jne 0x467900
mov edi, dword [ebp - 0x64]
cmp dword [edi + 4], 0
je 0x467a8e
mov eax, dword [ebp - 0x50]
xorps xmm0, xmm0
or eax, 2
mov byte [ebp - 4], 9
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0xc4]
and al, 0x22
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
movq qword [ebp - 0x154], xmm0
mov dword [ebp - 0x14c], 0
movups xmmword [ebp - 0x28], xmm0
mov byte [ebp - 0x28], 0
cmp al, 2
je 0x4679de
mov eax, dword [ebp - 0xe0]
mov ecx, dword [eax]
test ecx, ecx
je 0x4679de
mov eax, dword [ebp - 0xf0]
cmp ecx, dword [ebp - 0xc8]
cmovb ecx, dword [ebp - 0xc8]
mov edx, dword [eax]
sub ecx, edx
jmp 0x467a15
test byte [ebp - 0xc4], 4
jne 0x467a09
mov eax, dword [ebp - 0xe4]
mov esi, dword [eax]
test esi, esi
je 0x467a09
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax]
mov eax, dword [ebp - 0xd4]
mov ecx, dword [eax]
add ecx, esi
sub ecx, edx
jmp 0x467a15
mov ecx, dword [ebp - 0x150]
mov edx, dword [ebp - 0x154]
test edx, edx
je 0x467a23
push ecx
push edx
lea ecx, [ebp - 0x28]
call fcn.0040d000
mov esi, dword [ebp - 0x50]
and esi, 0xfffffffd
mov dword [ebp - 4], 8
or esi, 1
mov dword [ebp - 0x50], esi
mov ecx, dword [ebp - 0x68]
lea eax, [ebp - 0x28]
push eax
mov eax, dword [ebp - 0x4c]
push dword [edi + 8]
mov byte [ebp - 4], 0xa
push dword [edi + 4]
mov eax, dword [eax + 8]
add eax, 0x18
push eax
call fcn.004497b0
mov ecx, dword [ebp - 0x14]
mov byte [ebp - 4], 8
cmp ecx, 0x10
jb 0x467a8e
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x467a84
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x467bd7
push ecx
push edx
call fcn.004ab3e0
add esp, 8
mov eax, dword [ebp - 0x118]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov eax, dword [ebp - 0x118]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0x11c], eax
lea ecx, [ebp - 0x100]
call fcn.00407b40
mov eax, dword [ebp - 0x118]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_iostream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_iostream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x118]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x20]
mov dword [ebp + ecx - 0x11c], eax
mov eax, dword [ebp - 0x108]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ostream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x108]
mov ecx, dword [eax + 4]
lea eax, [ecx - 8]
mov dword [ebp + ecx - 0x10c], eax
mov eax, dword [ebp - 0x118]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_istream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x118]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x18]
mov dword [ebp + ecx - 0x11c], eax
lea eax, [ebp - 0xb0]
mov byte [ebp - 4], 0xb
push eax
mov dword [ebp - 0xb0], vtable.std::ios_base.0
call fcn.004aaac4
mov edx, dword [ebp - 0x34]
add esp, 4
mov dword [ebp - 4], 0xffffffff
test edx, edx
je 0x467ba1
mov ecx, dword [ebp - 0x30]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffff8
cmp ecx, 0x1000
jb 0x467b82
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x467bd7
push ecx
push edx
call fcn.004ab3e0
add esp, 8
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov edi, dword [ebp - 0x58]
mov esi, dword [ebp - 0x54]
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x60]
inc eax
mov dword [ebp - 0x5c], eax
cmp eax, dword [edx + 0x24]
jl 0x4672f3
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004ab3ee
mov esp, ebp
pop ebp
ret 8
call fcn.004b081f
int3