Function at 0x459290
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5055dd
mov eax, dword fs:[0]
push eax
sub esp, 0x7c
mov eax, dword [0x5582e0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x4c], edi
push 0x2c
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
call fcn.00500dd9
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [ebp - 0x34], eax
mov esi, dword [edi + 0x210]
lea ebx, [edi + 0x210]
mov dword [ebp - 4], 0
mov dword [ebp - 0x3c], ebx
mov esi, dword [esi]
cmp byte [esi + 0xd], 0
jne 0x45945f
mov edi, dword [ebp + 8]
nop
mov ecx, dword [esi + 0x10]
cmp ecx, edi
lea eax, [ecx - 1]
cmovl eax, ecx
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x2c], eax
lea eax, [esi + 0x14]
push eax
call fcn.0042c1f0
mov ebx, dword [ebp - 0x2c]
mov byte [ebp - 4], 1
cmp ebx, edi
jl 0x45933e
cmp ebx, dword [ebp + 0xc]
jle 0x4593db
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp - 0x34]
call fcn.0044fc40
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [ebp - 0x88], xmm0
cmp byte [eax + 0xd], 0
jne 0x459368
cmp ebx, dword [eax + 0x10]
jge 0x4593db
cmp dword [ebp - 0x30], 0x5d1745d
je 0x4596f8
mov ebx, dword [ebp - 0x34]
lea eax, [ebp - 0x34]
mov dword [ebp - 0x44], eax
push 0x2c
mov byte [ebp - 4], 2
mov dword [ebp - 0x40], 0
call fcn.00500dd9
mov edi, eax
add esp, 4
mov dword [ebp - 0x40], edi
mov eax, dword [ebp - 0x2c]
lea ecx, [edi + 0x14]
mov dword [edi + 0x10], eax
lea eax, [ebp - 0x28]
push eax
mov byte [ebp - 4], 3
call fcn.0042c1f0
push edi
push dword [ebp - 0x84]
mov dword [edi], ebx
lea ecx, [ebp - 0x34]
push dword [ebp - 0x88]
mov dword [edi + 4], ebx
mov dword [edi + 8], ebx
mov word [edi + 0xc], 0
mov dword [ebp - 0x40], 0
call fcn.004449b0
mov edi, dword [ebp + 8]
mov ecx, dword [ebp - 0x14]
mov byte [ebp - 4], 0
cmp ecx, 0x10
jb 0x459413
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x459409
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4595ee
push ecx
push edx
call fcn.00500e09
add esp, 8
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x459439
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x459435
cmp esi, dword [eax + 8]
jne 0x459435
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x459425
mov esi, eax
jmp 0x45944f
mov esi, eax
mov ecx, dword [esi]
cmp byte [ecx + 0xd], 0
jne 0x45944f
mov eax, dword [ecx]
mov esi, ecx
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x459443
cmp byte [esi + 0xd], 0
je 0x459310
mov ebx, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x4c]
lea eax, [ebp - 0x34]
cmp ebx, eax
je 0x459498
mov esi, dword [ebx]
mov ecx, ebx
push dword [esi + 4]
push ebx
call fcn.0043a0f0
mov dword [esi + 4], esi
mov dword [esi], esi
mov dword [esi + 8], esi
mov eax, dword [ebp - 0x34]
mov dword [ebx + 4], 0
mov ecx, dword [ebx]
mov dword [ebx], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebx + 4]
mov dword [ebx + 4], eax
mov dword [ebp - 0x30], ecx
lea ecx, [ebp - 0x6c]
call fcn.004519e0
mov ebx, dword [edi + 0x1f4]
lea eax, [edi + 0x1f0]
mov byte [ebp - 4], 4
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x48], ebx
mov esi, dword [ebx]
cmp esi, ebx
je 0x459656
mov ecx, dword [ebp + 8]
mov eax, ebx
mov ebx, dword [esi + 8]
cmp ebx, ecx
jl 0x4594d6
cmp ebx, dword [ebp + 0xc]
jle 0x459646
dec ebx
movzx eax, bl
xor eax, 0x811c9dc5
mov dword [ebp - 0x38], ebx
imul ecx, eax, 0x1000193
mov eax, ebx
sar eax, 8
movzx eax, al
xor ecx, eax
mov eax, ebx
sar eax, 0x10
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
mov eax, ebx
imul ecx, ecx, 0x1000193
sar eax, 0x18
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
lea ecx, [ebp - 0x6c]
push eax
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.0044fbd0
cmp dword [ebp - 0x40], 0
jne 0x459640
cmp dword [ebp - 0x64], 0x15555555
je 0x4596ee
lea eax, [ebp - 0x68]
mov dword [ebp - 0x78], eax
push 0xc
mov byte [ebp - 4], 5
mov dword [ebp - 0x74], 0
call fcn.00500dd9
mov edi, eax
add esp, 4
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x74], edi
mov dword [edi + 8], ebx
mov ecx, dword [ebp - 0x64]
mov byte [ebp - 4], 6
lea edx, [ecx + 1]
movd xmm0, edx
mov eax, edx
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x50c350]
mov eax, dword [ebp - 0x50]
cvtpd2ps xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x50c350]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, dword [ebp - 0x6c]
seta al
test al, al
je 0x4595f4
push edx
lea ecx, [ebp - 0x6c]
call fcn.0045d050
push eax
lea ecx, [ebp - 0x6c]
call fcn.0045ddd0
push dword [ebp - 0x3c]
lea eax, [edi + 8]
push eax
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp - 0x6c]
call fcn.0044fbd0
mov ecx, dword [ebp - 0x64]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x40], eax
jmp 0x4595f7
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov edx, dword [ebp - 0x44]
mov ebx, dword [edx + 4]
inc ecx
mov dword [ebp - 0x64], ecx
mov dword [edi], edx
mov dword [edi + 4], ebx
mov dword [ebx], edi
mov dword [edx + 4], edi
mov eax, dword [ebp - 0x54]
and eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x74], 0
mov edi, dword [ecx + eax*8]
cmp edi, dword [ebp - 0x68]
mov edi, dword [ebp - 0x38]
jne 0x459628
mov dword [ecx + eax*8], edi
jmp 0x459638
cmp dword [ecx + eax*8], edx
jne 0x459632
mov dword [ecx + eax*8], edi
jmp 0x45963c
cmp dword [ecx + eax*8 + 4], ebx
jne 0x45963c
mov dword [ecx + eax*8 + 4], edi
mov byte [ebp - 4], 4
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x48]
mov esi, dword [esi]
cmp esi, eax
jne 0x4594c5
mov edi, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x70]
lea ecx, [ebp - 0x6c]
push ecx
mov ecx, eax
call fcn.00452900
mov eax, dword [ebp + 8]
mov ecx, dword [edi + 4]
lea eax, [eax + eax*2]
lea edx, [ecx + eax*4]
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*4]
cmp edx, eax
je 0x4596a6
push edx
push dword [edi + 8]
push eax
call fcn.00450140
mov edi, dword [edi + 8]
mov ebx, eax
add esp, 0xc
mov esi, ebx
cmp ebx, edi
je 0x4596a0
mov ecx, esi
call fcn.00452520
add esi, 0xc
cmp esi, edi
jne 0x459692
mov edi, dword [ebp - 0x4c]
mov dword [edi + 8], ebx
lea ecx, [ebp - 0x6c]
mov byte [edi + 0x41], 1
call fcn.00452060
mov eax, dword [ebp - 0x34]
push dword [eax + 4]
lea eax, [ebp - 0x34]
push eax
mov ecx, eax
call fcn.0043a0f0
push 0x2c
push dword [ebp - 0x34]
call fcn.00500e09
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00501271
mov esp, ebp
pop ebp
ret 8
push str.unordered_map_set_too_long
call sub.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__
call fcn.00444ba0
int3