Function at 0x46d910
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x521073
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x194
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov ebx, ecx
push 1
lea ecx, [ebp - 0x1a0]
mov dword [ebp - 0x30], ebx
movzx eax, word [edi + 6]
mov dword [ebp - 0x2c], eax
call fcn.0046c6d0
cmp byte [ebx + 0x10], 0
lea esi, [ebx + 0x10]
mov dword [ebp - 4], 0
je 0x46d971
cmp dword [ebp - 0x2c], 0xf8
jne 0x46d971
push dword [ebx + 4]
call fcn.0046b670
add esp, 4
cmp dword [edi + 0x10], 0
je 0x46da98
cmp byte [ebx + 9], 0
mov esi, dword [ebx + 4]
je 0x46d99c
mov al, byte [ebx + 8]
lea ecx, [ebp - 0xd]
mov byte [ebp - 0xd], al
call fcn.0047cb10
push eax
push esi
call fcn.00438a80
add esp, 8
mov ecx, dword [ebx + 0x44]
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x34], eax
test ecx, ecx
je 0x46e1ab
mov eax, dword [ecx]
lea edx, [ebp - 0x34]
push edx
lea edx, [ebp - 0x28]
push edx
call dword [eax + 8]
mov ecx, dword [ebx + 0xc]
mov byte [ebp - 4], 1
test ecx, ecx
je 0x46d9fd
sub ecx, dword [ebp - 0x18]
xor eax, eax
add ecx, 0xfffffffd
test ecx, ecx
cmovg eax, ecx
cdq
push edx
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.004f9e42
lea edx, [ebp - 0x1a0]
push dword [eax + 0xc]
mov ecx, dword [eax]
push dword [eax + 8]
mov eax, dword [ebp - 0x1a0]
mov eax, dword [eax + 4]
add eax, edx
push eax
call ecx
add esp, 0x18
lea eax, [ebp - 0x1a0]
push 0x538e2c
push eax
call fcn.00438a80
cmp dword [ebp - 0x14], 0xf
lea ecx, [ebp - 0x28]
push dword [ebp - 0x18]
cmova ecx, dword [ebp - 0x28]
push ecx
push eax
call fcn.00438fa0
mov esi, dword [ebx + 4]
add esp, 0x14
cmp byte [ebx + 9], 0
je 0x46da47
mov al, byte [ebx + 8]
lea ecx, [ebp - 0xd]
mov byte [ebp - 0xd], al
call fcn.0047cb10
push eax
push esi
call fcn.00438a80
add esp, 8
lea eax, [ebp - 0x1a0]
push 0x538e30
push eax
call fcn.00438a80
mov ecx, dword [ebp - 0x14]
add esp, 8
mov byte [ebp - 4], 0
cmp ecx, 0xf
jbe 0x46da93
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x46da89
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x46e1b0
push ecx
push edx
call fcn.004fa253
add esp, 8
lea esi, [ebx + 0x10]
jmp 0x46dafd
push 0x20
push dword [ebx + 0xc]
lea ecx, [ebp - 0x28]
call fcn.00466a80
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
mov byte [ebp - 4], 2
jbe 0x46dab4
mov eax, dword [eax]
push ecx
push eax
lea eax, [ebp - 0x1a0]
push eax
call fcn.00438fa0
mov ecx, dword [ebp - 0x14]
add esp, 0xc
mov byte [ebp - 4], 0
cmp ecx, 0xf
jbe 0x46dafd
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x46daf3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x46e1b5
push ecx
push edx
call fcn.004fa253
add esp, 8
cmp byte [esi], 0
je 0x46db56
cmp byte [ebp + 0x14], 0
je 0x46db56
xor ecx, ecx
mov eax, 2
cmp dword [ebp - 0x2c], 0xf8
push 0x20
cmovne ecx, eax
mov eax, dword [ebp + 0x10]
lea eax, [ecx + eax*2]
push eax
lea ecx, [ebp - 0x70]
call fcn.00466a80
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
mov byte [ebp - 4], 3
jbe 0x46db39
mov eax, dword [eax]
push ecx
push eax
lea eax, [ebp - 0x1a0]
push eax
call fcn.00438fa0
add esp, 0xc
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x70]
call fcn.00401760
lea eax, [ebp - 0x1a0]
push 0x538e34
push eax
call fcn.00438a80
push dword [ebp - 0x2c]
mov esi, eax
call fcn.0047a450
push eax
push esi
call fcn.00438a80
xor eax, eax
add esp, 0x14
xor esi, esi
cmp ax, word [edi + 0x18]
jae 0x46dbbf
mov eax, dword [edi + 0x14]
movzx ecx, si
add ecx, ecx
cmp dword [eax + ecx*8 + 4], 3
je 0x46dbb8
lea eax, [ebp - 0x1a0]
push 0x533328
push eax
call fcn.00438a80
add esp, 8
lea eax, [ebp - 0x1a0]
mov ecx, ebx
push esi
push edi
push eax
call fcn.0046e280
inc esi
cmp si, word [edi + 0x18]
jb 0x46db85
cmp dword [ebx + 0x14], 0
je 0x46dbcd
push edi
mov ecx, ebx
call fcn.0046e830
push 1
lea ecx, [ebp - 0x108]
call fcn.0046c6d0
cmp byte [ebx + 0x18], 0
mov edx, 0x532969
mov byte [ebp - 4], 4
mov dword [ebp + 0x14], edx
je 0x46dcee
cmp byte [ebx + 9], 0
je 0x46dc14
mov al, byte [ebx + 8]
lea ecx, [ebp + 0x17]
mov byte [ebp + 0x17], al
call fcn.0047cb10
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.00438a80
add esp, 8
mov eax, dword [ebp - 0x108]
push 0x538e38
push 0x532969
mov eax, dword [eax + 4]
mov edi, dword [ebp + eax - 0xf4]
mov bl, byte [ebp + eax - 0xc8]
lea eax, [ebp - 0x108]
push eax
call fcn.00438a80
add esp, 8
push eax
call fcn.00438a80
push 0
mov esi, eax
lea eax, [ebp - 0x40]
push 8
push eax
call fcn.004f9e42
push dword [eax + 0xc]
mov ecx, dword [eax]
push dword [eax + 8]
mov eax, dword [esi]
mov eax, dword [eax + 4]
add eax, esi
push eax
call ecx
mov eax, dword [esi]
add esp, 0x20
mov ecx, dword [eax + 4]
push dword [ebp + 0xc]
mov eax, dword [ecx + esi + 0x14]
and eax, 0xfffff9ff
or eax, 0x800
mov dword [ecx + esi + 0x14], eax
mov ecx, esi
mov eax, dword [esi]
mov eax, dword [eax + 4]
mov byte [eax + esi + 0x40], 0x30
call fcn.00467600
mov eax, dword [ebp - 0x108]
movzx ecx, di
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xf4], ecx
mov eax, dword [ebp - 0x108]
mov eax, dword [eax + 4]
mov byte [ebp + eax - 0xc8], bl
mov ebx, dword [ebp - 0x30]
cmp byte [ebx + 9], 0
je 0x46dce3
mov al, byte [ebx + 8]
lea ecx, [ebp + 0x17]
mov byte [ebp + 0x17], al
call fcn.0047cb10
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.00438a80
add esp, 8
mov edi, dword [ebp + 8]
mov edx, 0x530090
mov dword [ebp + 0x14], edx
cmp dword [ebx + 0x14], 0
je 0x46dd32
cmp dword [ebp - 0x2c], 5
jne 0x46dd32
mov eax, dword [edi + 0x14]
push str.id__
push edx
movzx ecx, word [eax]
mov eax, dword [edi]
mov esi, dword [eax + ecx*4]
lea eax, [ebp - 0x108]
push eax
call fcn.00438a80
add esp, 8
push eax
call fcn.00438a80
add esp, 8
mov ecx, eax
push esi
call fcn.00467600
mov esi, 0x530090
jmp 0x46dd35
mov esi, dword [ebp + 0x14]
cmp dword [ebx + 0x14], 0
je 0x46de34
mov eax, dword [edi + 0x10]
mov ecx, eax
shr ecx, 0x18
mov dword [ebp + 0x10], ecx
mov ecx, eax
shr ecx, 0x10
mov dword [ebp + 8], ecx
mov ecx, eax
shr ecx, 8
mov dword [ebp + 0x14], ecx
test eax, eax
je 0x46de34
movzx eax, al
lea edx, [edi + 0x10]
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp + 0x14]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp + 8]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
lea ecx, [ebx + 0x48]
xor eax, dword [ebp + 0x10]
imul eax, eax, 0x1000193
push eax
push edx
lea eax, [ebp - 0x38]
push eax
call fcn.00465c40
cmp dword [eax + 4], 0
je 0x46de34
lea eax, [ebp - 0x108]
push esi
push eax
call fcn.00438a80
add esp, 8
lea edx, [edi + 0x10]
mov esi, eax
lea ecx, [ebx + 0x48]
lea eax, [ebp - 0x38]
push edx
push eax
call fcn.0046c3c0
mov ecx, dword [eax]
lea eax, [ebp - 0x28]
add ecx, 0x14
push eax
call fcn.0043be30
cmp dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x28]
push dword [ebp - 0x18]
cmova eax, dword [ebp - 0x28]
push eax
push esi
mov byte [ebp - 4], 5
call fcn.00438fa0
mov ecx, dword [ebp - 0x14]
add esp, 0xc
mov byte [ebp - 4], 4
cmp ecx, 0xf
jbe 0x46de34
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x46de2a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x46e1ba
push ecx
push edx
call fcn.004fa253
add esp, 8
mov esi, dword [ebx + 4]
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x19c]
call fcn.0043be30
cmp dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x28]
push dword [ebp - 0x18]
cmova eax, dword [ebp - 0x28]
push eax
push esi
mov byte [ebp - 4], 6
call fcn.00438fa0
mov ecx, dword [ebp - 0x14]
add esp, 0xc
mov byte [ebp - 4], 4
cmp ecx, 0xf
jbe 0x46de9a
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x46de90
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x46e1bf
push ecx
push edx
call fcn.004fa253
add esp, 8
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x104]
call fcn.0043be30
cmp dword [ebp - 0x18], 0
mov ecx, dword [ebp - 0x14]
setne al
mov byte [ebp + 0x17], al
cmp ecx, 0xf
jbe 0x46deea
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x46dedd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x46e1c4
push ecx
push edx
call fcn.004fa253
mov al, byte [ebp + 0x17]
add esp, 8
test al, al
je 0x46e092
lea eax, [ebp - 0x58]
push eax
lea ecx, [ebp - 0x19c]
call fcn.0043be30
mov esi, dword [ebp - 0x48]
xor eax, eax
mov edi, dword [ebp - 0x44]
mov edx, dword [ebp - 0x58]
mov dword [ebp + 0x14], 0
test esi, esi
je 0x46df52
xor ebx, ebx
lea esp, [esp]
cmp edi, 0xf
lea ecx, [ebp - 0x58]
cmova ecx, edx
cmp byte [ecx + eax], 0x1b
jne 0x46df46
nop
inc eax
cmp eax, esi
jae 0x46df47
cmp edi, 0xf
lea ecx, [ebp - 0x58]
cmova ecx, edx
cmp byte [ecx + eax], 0x6d
jne 0x46df30
jmp 0x46df47
inc ebx
inc eax
cmp eax, esi
jb 0x46df20
mov dword [ebp + 0x14], ebx
mov ebx, dword [ebp - 0x30]
cmp edi, 0xf
jbe 0x46df80
inc edi
mov eax, edx
cmp edi, 0x1000
jb 0x46df76
mov edx, dword [eax - 4]
add edi, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x46e1c9
push edi
push edx
call fcn.004fa253
add esp, 8
mov esi, dword [ebp + 0x14]
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x34], 0x32
lea eax, [esi + 2]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebx + 0x68]
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x30]
push eax
push ecx
call fcn.004f8720
mov edi, dword [ebx + 4]
lea ecx, [ebp - 0x70]
add eax, 3
and eax, 0xfffffffc
mov dword [ebx + 0x68], eax
sub eax, esi
push 0x20
push eax
call fcn.00466a80
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
mov byte [ebp - 4], 7
jbe 0x46dfcb
mov eax, dword [eax]
push ecx
push eax
push edi
call fcn.00438fa0
push 0x538e10
push eax
call fcn.00438a80
add esp, 0x14
lea ecx, [ebp - 0x104]
mov esi, eax
lea eax, [ebp - 0x28]
push eax
call fcn.0043be30
cmp dword [ebp - 0x14], 0xf
lea ecx, [ebp - 0x28]
push dword [ebp - 0x18]
cmova ecx, dword [ebp - 0x28]
push ecx
push esi
mov byte [ebp - 4], 8
call fcn.00438fa0
mov ecx, dword [ebp - 0x14]
add esp, 0xc
mov byte [ebp - 4], 7
cmp ecx, 0xf
jbe 0x46e046
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x46e03c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x46e1ce
push ecx
push edx
call fcn.004fa253
add esp, 8
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov byte [ebp - 4], 4
cmp ecx, 0xf
jbe 0x46e099
mov edx, dword [ebp - 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x46e086
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x46e1ce
push ecx
push edx
call fcn.004fa253
add esp, 8
jmp 0x46e099
mov dword [ebx + 0x68], 0
push 0x5363c8
push dword [ebx + 4]
call fcn.00438a80
mov eax, dword [ebp - 0x108]
add esp, 8
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov eax, dword [ebp - 0x108]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x50]
mov dword [ebp + ecx - 0x10c], eax
lea ecx, [ebp - 0x104]
call fcn.00439cc0
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
lea eax, [ebp - 0xb8]
mov byte [ebp - 4], 9
push eax
mov dword [ebp - 0xb8], vtable.std::ios_base.0
call fcn.004f8fc7
mov eax, dword [ebp - 0x1a0]
add esp, 4
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov eax, dword [ebp - 0x1a0]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x50]
mov dword [ebp + ecx - 0x1a4], eax
lea ecx, [ebp - 0x19c]
call fcn.00439cc0
mov eax, dword [ebp - 0x1a0]
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 - 0x1a0]
mov ecx, dword [eax + 4]
lea eax, [ecx - 8]
mov dword [ebp + ecx - 0x1a4], eax
lea eax, [ebp - 0x150]
mov dword [ebp - 4], 0xa
push eax
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.004f8fc7
mov ecx, dword [ebp - 0xc]
add esp, 4
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
call fcn.004f7dd4
call fcn.004ff45f
call fcn.004ff45f
call fcn.004ff45f
call fcn.004ff45f
call fcn.004ff45f
call fcn.004ff45f
call fcn.004ff45f
int3