Function at 0x10009ea0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov eax, dword [0x1002e480]
inc eax
mov esi, dword [0x1002e494]
movd xmm0, eax
por xmm0, xmmword [0x100232f0]
subsd xmm0, qword [0x100232d0]
cvtsd2ss xmm0, xmm0
divss xmm0, dword [0x1002e478]
cvtss2sd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.10012370
fstp dword [esp + 0x10]
movss xmm0, dword [esp + 0x10]
cvttss2si eax, xmm0
mov ecx, eax
subss xmm0, dword [0x100233a0]
cvttss2si edx, xmm0
sar ecx, 0x1f
and edx, ecx
or edx, eax
cmp edx, 9
mov eax, 8
cmovae eax, edx
cmp esi, eax
jae 0x10009f2a
lea ecx, [esi*8]
cmp ecx, eax
cmovbe ecx, eax
cmp esi, 0x200
cmovae ecx, eax
mov esi, ecx
cmp esi, 0x10000001
jae 0x1000a08c
dec esi
or esi, 1
bsr ecx, esi
xor ecx, 0x1f
neg cl
mov esi, 1
shl esi, cl
mov edi, dword [0x1002e47c]
mov eax, 2
shl eax, cl
mov ecx, eax
mov edx, edi
call fcn.10009cd0
lea eax, [esi - 1]
mov dword [0x1002e490], eax
mov dword [0x1002e494], esi
mov eax, dword [0x1002e47c]
mov eax, dword [eax]
cmp eax, edi
je 0x1000a084
mov dword [esp + 8], edi
jmp 0x10009f9e
mov dword [edx + ebx*4], ecx
mov dword [edx + ebp*4], ecx
cmp eax, edi
je 0x1000a084
mov ecx, eax
mov eax, dword [eax]
movzx edx, byte [ecx + 8]
xor edx, 0x811c9dc5
imul edx, edx, 0x1000193
movzx esi, byte [ecx + 9]
xor esi, edx
imul edx, esi, 0x1000193
movzx esi, byte [ecx + 0xa]
xor esi, edx
imul edx, esi, 0x1000193
movzx esi, byte [ecx + 0xb]
xor esi, edx
imul esi, esi, 0x1000193
and esi, dword [0x1002e490]
mov edx, dword [0x1002e484]
lea ebx, [esi + esi]
lea ebp, [esi*2 + 1]
mov esi, dword [edx + esi*8]
cmp esi, edi
je 0x10009f90
mov dword [esp + 0xc], ebx
mov ebx, dword [edx + ebp*4]
mov edi, dword [ecx + 8]
cmp edi, dword [ebx + 8]
jne 0x1000a030
mov esi, dword [ebx]
cmp esi, ecx
je 0x1000a028
mov edi, dword [ecx + 4]
mov dword [esp + 0xc], edi
mov dword [edi], eax
mov ebx, dword [eax + 4]
mov dword [ebx], esi
mov edi, dword [esi + 4]
mov dword [edi], ecx
mov dword [esi + 4], ebx
mov esi, dword [esp + 0xc]
mov dword [eax + 4], esi
mov dword [ecx + 4], edi
mov dword [edx + ebp*4], ecx
jmp 0x1000a078
cmp esi, ebx
je 0x1000a058
mov ebx, dword [ebx + 4]
cmp edi, dword [ebx + 8]
jne 0x1000a030
mov edx, dword [ebx]
mov esi, dword [ecx + 4]
mov dword [esi], eax
mov edi, dword [eax + 4]
mov dword [edi], edx
mov ebx, dword [edx + 4]
mov dword [ebx], ecx
mov dword [edx + 4], edi
mov dword [eax + 4], esi
mov dword [ecx + 4], ebx
jmp 0x1000a078
mov esi, dword [ecx + 4]
mov dword [esi], eax
mov edi, dword [eax + 4]
mov dword [edi], ebx
mov ebp, dword [ebx + 4]
mov dword [ebp], ecx
mov dword [ebx + 4], edi
mov dword [eax + 4], esi
mov dword [ecx + 4], ebp
mov esi, dword [esp + 0xc]
mov dword [edx + esi*4], ecx
mov edi, dword [esp + 8]
cmp eax, edi
jne 0x10009f9e
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp], str.invalid_hash_bucket_count
call fcn.1000cd6b
nop dword [eax + eax]
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x10
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x1000a2b0
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
push 0x100030b0
call fcn.1000c0e7
add esp, 4
mov dword [0x1002e458], 0
mov dword [0x1002e45c], 0
mov dword [0x1002e460], 0
push 0x1c
call fcn.1000c0fc
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [0x1002e45c], eax
movaps xmm0, xmmword [0x100231e0]
movups xmmword [0x1002e464], xmm0
mov dword [0x1002e474], 8
mov dword [0x1002e458], 0x3f800000
mov dword [ebp - 0x10], 0
mov ecx, 0x1002e464
push eax
push 0x10
call fcn.1000ad50
push 0x10004a30
call fcn.1000c0e7
add esp, 4
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret