Function at 0x10035980
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x34
mov eax, dword [ebp + 0xc]
push ebx
push esi
push edi
mov esi, dword [eax + 4]
mov edi, ecx
mov eax, dword [eax]
mov ecx, esi
cdq
push edx
push eax
mov edx, 0xfff0b9d8
call fcn.100d4f10
add esp, 8
or edx, 0xffffffff
mov ecx, esi
call fcn.100d4be0
mov edx, 0xfffffffe
mov ecx, esi
mov ebx, eax
call fcn.100d4830
mov ecx, ebx
mov eax, ebx
shr ecx, 8
movzx edx, cl
movzx ecx, bl
xor ecx, 0x811c9dc5
shr eax, 0x10
imul ecx, ecx, 0x1000193
movzx eax, al
shr ebx, 0x18
xor edx, ecx
imul ecx, edx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, edi
xor eax, ebx
mov ebx, dword [ebp + 0xc]
imul eax, eax, 0x1000193
push eax
mov dword [esp + 0x34], eax
lea eax, [esp + 0x38]
push ebx
push eax
call fcn.10036b90
mov esi, dword [esp + 0x38]
test esi, esi
je 0x10035a34
push dword [ebp + 0x10]
lea ecx, [esi + 0x10]
call fcn.1002fc60
mov eax, dword [ebp + 8]
mov byte [eax + 4], 0
mov dword [eax], esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp dword [edi + 8], 0xaaaaaaa
jne 0x10035a48
push str.unordered_map_set_too_long
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__]
push 0x18
call fcn.101832c9
mov ecx, dword [ebx]
mov esi, eax
add esp, 4
mov dword [esp + 0x3c], esi
mov dword [esi + 8], ecx
mov ecx, dword [ebx + 4]
mov dword [ebx], 0xfffffffe
mov dword [esi + 0xc], ecx
mov ecx, dword [ebp + 0x10]
mov dword [ebx + 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 eax, dword [edi + 8]
mov ebx, dword [edi + 0x1c]
inc eax
movss xmm3, dword [edi]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1022fea0]
mov eax, ebx
shr eax, 0x1f
cvtpd2ps xmm2, xmm0
movd xmm0, ebx
cvtdq2pd xmm0, xmm0
movaps xmm1, xmm2
addsd xmm0, qword [eax*8 + 0x1022fea0]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, xmm3
jbe 0x10035b3e
divss xmm2, xmm3
sub esp, 8
movss dword [esp + 0x3c], xmm2
fld dword [esp + 0x3c]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_ceil
add esp, 8
fstp dword [esp + 0x34]
movss xmm0, dword [esp + 0x34]
call fcn.101850d0
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
cmp ebx, ecx
jae 0x10035b1e
cmp ebx, 0x200
jae 0x10035b1c
shl ebx, 3
cmp ebx, ecx
jae 0x10035b1e
mov ebx, ecx
push ebx
mov ecx, edi
call fcn.10036630
push dword [esp + 0x30]
lea eax, [esi + 8]
mov ecx, edi
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.10036b90
mov edx, dword [eax]
jmp 0x10035b42
mov edx, dword [esp + 0x34]
mov ebx, dword [edx + 4]
inc dword [edi + 8]
mov dword [esi], edx
mov dword [esi + 4], ebx
mov dword [ebx], esi
mov dword [edx + 4], esi
mov eax, dword [edi + 0x18]
and eax, dword [esp + 0x30]
mov ecx, dword [edi + 0xc]
mov esi, dword [ecx + eax*8]
cmp esi, dword [edi + 4]
mov esi, dword [esp + 0x3c]
jne 0x10035b6d
mov dword [ecx + eax*8], esi
jmp 0x10035b8d
cmp dword [ecx + eax*8], edx
jne 0x10035b87
mov dword [ecx + eax*8], esi
mov eax, dword [ebp + 8]
mov byte [eax + 4], 1
mov dword [eax], esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp dword [ecx + eax*8 + 4], ebx
jne 0x10035b91
mov dword [ecx + eax*8 + 4], esi
mov eax, dword [ebp + 8]
pop edi
mov dword [eax], esi
pop esi
mov byte [eax + 4], 1
pop ebx
mov esp, ebp
pop ebp
ret 0xc