Function at 0x1000a2c0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov eax, dword [0x1002e5a4]
inc eax
mov esi, dword [0x1002e5b8]
movd xmm0, eax
por xmm0, xmmword [0x10023340]
subsd xmm0, qword [0x10023320]
cvtsd2ss xmm0, xmm0
divss xmm0, dword [0x1002e59c]
cvtss2sd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.10012790
fstp dword [esp + 0x10]
movss xmm0, dword [esp + 0x10]
cvttss2si eax, xmm0
mov ecx, eax
subss xmm0, dword [0x100233e0]
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 0x1000a34a
lea ecx, [esi*8]
cmp ecx, eax
cmovbe ecx, eax
cmp esi, 0x200
cmovae ecx, eax
mov esi, ecx
cmp esi, 0x10000001
jae 0x1000a4ac
dec esi
or esi, 1
bsr ecx, esi
xor ecx, 0x1f
neg cl
mov esi, 1
shl esi, cl
mov edi, dword [0x1002e5a0]
mov eax, 2
shl eax, cl
mov ecx, eax
mov edx, edi
call fcn.1000a0f0
lea eax, [esi - 1]
mov dword [0x1002e5b4], eax
mov dword [0x1002e5b8], esi
mov eax, dword [0x1002e5a0]
mov eax, dword [eax]
cmp eax, edi
je 0x1000a4a4
mov dword [esp + 8], edi
jmp 0x1000a3be
mov dword [edx + ebx*4], ecx
mov dword [edx + ebp*4], ecx
cmp eax, edi
je 0x1000a4a4
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 [0x1002e5b4]
mov edx, dword [0x1002e5a8]
lea ebx, [esi + esi]
lea ebp, [esi*2 + 1]
mov esi, dword [edx + esi*8]
cmp esi, edi
je 0x1000a3b0
mov dword [esp + 0xc], ebx
mov ebx, dword [edx + ebp*4]
mov edi, dword [ecx + 8]
cmp edi, dword [ebx + 8]
jne 0x1000a450
mov esi, dword [ebx]
cmp esi, ecx
je 0x1000a448
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 0x1000a498
cmp esi, ebx
je 0x1000a478
mov ebx, dword [ebx + 4]
cmp edi, dword [ebx + 8]
jne 0x1000a450
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 0x1000a498
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 0x1000a3be
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp], str.invalid_hash_bucket_count
call fcn.1000d19e
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], 0x1000a6c0
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
push 0x10003180
call fcn.1000c515
add esp, 4
mov dword [0x1002e57c], 0
mov dword [0x1002e580], 0
mov dword [0x1002e584], 0
push 0x1c
call fcn.1000c52a
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [0x1002e580], eax
movaps xmm0, xmmword [0x100231e0]
movups xmmword [0x1002e588], xmm0
mov dword [0x1002e598], 8
mov dword [0x1002e57c], 0x3f800000
mov dword [ebp - 0x10], 0
mov ecx, 0x1002e588
push eax
push 0x10
call fcn.1000b180
push 0x10004fe0
call fcn.1000c515
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