Function at 0x10037050
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.100df0e0
add esp, 8
or edx, 0xffffffff
mov ecx, esi
call fcn.100dedb0
mov edx, 0xfffffffe
mov ecx, esi
mov ebx, eax
call fcn.100dea00
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.10038260
mov esi, dword [esp + 0x38]
test esi, esi
je 0x10037104
push dword [ebp + 0x10]
lea ecx, [esi + 0x10]
call fcn.10030c60
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 0x10037118
push str.unordered_map_set_too_long
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__]
push 0x18
call fcn.1018b313
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 + 0x10240be0]
mov eax, ebx
shr eax, 0x1f
cvtpd2ps xmm2, xmm0
movd xmm0, ebx
cvtdq2pd xmm0, xmm0
movaps xmm1, xmm2
addsd xmm0, qword [eax*8 + 0x10240be0]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, xmm3
jbe 0x1003720e
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.1018c740
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
cmp ebx, ecx
jae 0x100371ee
cmp ebx, 0x200
jae 0x100371ec
shl ebx, 3
cmp ebx, ecx
jae 0x100371ee
mov ebx, ecx
push ebx
mov ecx, edi
call fcn.10037d00
push dword [esp + 0x30]
lea eax, [esi + 8]
mov ecx, edi
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.10038260
mov edx, dword [eax]
jmp 0x10037212
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 0x1003723d
mov dword [ecx + eax*8], esi
jmp 0x1003725d
cmp dword [ecx + eax*8], edx
jne 0x10037257
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 0x10037261
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