Function at 0x1002ad10
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1013f615
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebx
push esi
push edi
mov eax, dword [0x101a0040]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0x10]
mov edi, dword [ecx + 4]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x24], eax
push edi
mov dword [ebp - 4], 0
call fcn.10012b10
mov esi, eax
mov ecx, edi
mov edx, esi
neg edx
call fcn.100a6150
not esi
mov ecx, edi
mov edx, esi
mov ebx, eax
call fcn.100a5cf0
mov eax, ebx
mov dword [ebp - 4], 0xffffffff
shr eax, 8
movzx ecx, al
movzx eax, bl
xor eax, 0x811c9dc5
mov edi, dword [ebp - 0x14]
imul eax, eax, 0x1000193
xor ecx, eax
mov eax, ebx
shr eax, 0x10
imul ecx, ecx, 0x1000193
movzx eax, al
shr ebx, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
xor eax, ebx
mov ebx, dword [ebp - 0x1c]
imul eax, eax, 0x1000193
mov ecx, ebx
push eax
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x18]
push edi
push eax
call fcn.1002c590
mov esi, dword [ebp - 0x14]
test esi, esi
je 0x1002adeb
push dword [ebp - 0x24]
lea ecx, [esi + 0x10]
call fcn.10023f90
mov eax, dword [ebp - 0x2c]
mov byte [eax + 4], 0
jmp 0x1002af38
cmp dword [ebx + 8], 0xaaaaaaa
jne 0x1002adff
push str.unordered_map_set_too_long
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__]
lea eax, [ebx + 4]
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 1
push 0x18
mov dword [ebp - 0x1c], 0
call fcn.1013c263
mov ecx, dword [edi]
mov esi, eax
add esp, 4
mov dword [ebp - 0x1c], esi
mov dword [esi + 8], ecx
mov ecx, dword [edi + 4]
mov dword [edi], 0xfffffffe
mov dword [esi + 0xc], ecx
mov ecx, dword [ebp - 0x24]
mov dword [edi + 4], 0
mov eax, dword [ecx]
mov dword [esi + 0x10], eax
mov eax, dword [ecx + 4]
mov dword [ecx], 0xfffffffe
mov dword [esi + 0x14], eax
mov dword [ecx + 4], 0
mov dword [ebp - 4], 2
mov eax, dword [ebx + 8]
mov edi, dword [ebx + 0x1c]
inc eax
movss xmm3, dword [ebx]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movd xmm1, edi
addsd xmm0, qword [eax*8 + 0x1018afc0]
cvtdq2pd xmm1, xmm1
mov eax, edi
shr eax, 0x1f
cvtpd2ps xmm0, xmm0
addsd xmm1, qword [eax*8 + 0x1018afc0]
movaps xmm2, xmm0
cvtpd2ps xmm1, xmm1
divss xmm2, xmm1
comiss xmm2, xmm3
jbe 0x1002aef0
divss xmm0, xmm3
call fcn.1000c140
call fcn.1013d7e0
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
cmp edi, ecx
jae 0x1002aed2
cmp edi, 0x200
jae 0x1002aed0
shl edi, 3
cmp edi, ecx
jae 0x1002aed2
mov edi, ecx
push edi
mov ecx, ebx
call fcn.1002c160
push dword [ebp - 0x28]
lea eax, [esi + 8]
mov ecx, ebx
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.1002c590
mov edx, dword [eax]
jmp 0x1002aef3
mov edx, dword [ebp - 0x18]
mov edi, dword [edx + 4]
inc dword [ebx + 8]
mov dword [esi], edx
mov dword [esi + 4], edi
mov dword [edi], esi
mov dword [edx + 4], esi
mov eax, dword [ebx + 0x18]
and eax, dword [ebp - 0x28]
mov ecx, dword [ebx + 0xc]
mov esi, dword [ebp - 0x20]
mov ebx, dword [ecx + eax*8]
cmp ebx, dword [esi]
mov esi, dword [ebp - 0x1c]
jne 0x1002af1e
mov dword [ecx + eax*8], esi
jmp 0x1002af2d
cmp ebx, edx
jne 0x1002af27
mov dword [ecx + eax*8], esi
jmp 0x1002af31
cmp dword [ecx + eax*8 + 4], edi
jne 0x1002af31
mov dword [ecx + eax*8 + 4], esi
mov eax, dword [ebp - 0x2c]
mov byte [eax + 4], 1
mov dword [eax], esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc