Function at 0x1001a020
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xc8
mov edx, dword [0x100e23a0]
movzx eax, dl
xor eax, 0x811c9dc5
mov dword [esp], edx
imul ecx, eax, 0x1000193
mov eax, edx
shr eax, 8
movzx eax, al
push esi
push edi
xor ecx, eax
mov eax, edx
shr eax, 0x10
imul ecx, ecx, 0x1000193
movzx eax, al
shr edx, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x100e26ac
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [esp + 0xc]
push eax
lea eax, [esp + 0xd0]
push eax
call fcn.10008b00
mov edi, dword [0x100e26b0]
mov eax, dword [eax + 4]
test eax, eax
cmovne edi, eax
cmp edi, dword [0x100e26b0]
jne 0x1001a0ab
xor al, al
vzeroupper
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 8]
mov edi, dword [edi + 0xc]
mov ecx, dword [eax + 0x90]
add ecx, eax
mov dword [esp + 0xc], ecx
mov ecx, dword [edi + 0x2064]
mov eax, dword [ecx]
cmp eax, ecx
je 0x1001a18e
nop dword [eax]
mov esi, dword [eax + 0x20]
mov edx, dword [esi + 0x18]
mov edx, dword [edx + 0x244]
vmovdqu xmm1, xmmword [edx + 0x10]
vmovdqu xmm2, xmmword [edx + 0x20]
vmovdqu xmm3, xmmword [edx + 0x30]
vmovdqu xmm4, xmmword [edx + 0x40]
mov edx, dword [esi + 0x2c]
vmovss dword [esp + 0x30], xmm1
vextractps dword [esp + 0x34], xmm1, 1
vextractps dword [esp + 0x38], xmm1, 2
lea edx, [edx + edx*2]
shl edx, 4
add edx, dword [0x100e20dc]
vmovss dword [esp + 0x3c], xmm4
vmovss dword [esp + 0x40], xmm2
vextractps dword [esp + 0x44], xmm2, 1
vextractps dword [esp + 0x48], xmm2, 2
vextractps dword [esp + 0x4c], xmm4, 1
vmovdqu ymm1, ymmword [esp + 0x30]
vmovdqu ymmword [edx], ymm1
vmovss dword [esp + 0x50], xmm3
vextractps dword [esp + 0x54], xmm3, 1
vextractps dword [esp + 0x58], xmm3, 2
vextractps dword [esp + 0x5c], xmm4, 2
vmovdqu xmm0, xmmword [esp + 0x50]
vmovdqu xmmword [edx + 0x20], xmm0
mov edx, dword [esi + 0x2c]
lea edx, [edx + edx*2]
shl edx, 4
add edx, dword [0x100e2158]
vmovdqu ymmword [edx], ymm1
vmovdqu xmmword [edx + 0x20], xmm0
mov eax, dword [eax]
cmp eax, ecx
jne 0x1001a0d0
mov eax, dword [edi + 0x58]
xor edx, edx
mov ecx, dword [edi + 0x54]
sub eax, ecx
sar eax, 2
test eax, eax
je 0x1001a517
mov esi, dword [ecx + edx*4]
cmp esi, 0xffffffff
je 0x1001a503
mov ecx, dword [esp + 0xc]
imul eax, esi, 0x70
mov eax, dword [eax + ecx + 0x20]
mov ecx, esi
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [0x100e20dc]
shl ecx, 6
vmovdqu ymm6, ymmword [eax]
vmovss xmm3, dword [ecx + edi + 0x94]
vmovss xmm4, dword [ecx + edi + 0x90]
vmovss xmm5, dword [ecx + edi + 0x98]
vmovaps xmm0, xmm6
vshufps xmm0, xmm0, xmm0, 0x55
vmovups xmmword [esp + 0xa0], xmm0
vmulss xmm0, xmm3, xmm0
vmovdqu xmm7, xmmword [eax + 0x20]
vmovaps xmm2, xmm6
vfmadd213ss xmm2, xmm4, xmm0
vmovaps xmm0, xmm6
vshufps xmm0, xmm0, xmm0, 0xaa
vmovaps xmm1, xmm0
vmovups xmmword [esp + 0x70], xmm0
vfmadd213ss xmm1, xmm5, xmm2
vmovaps xmm0, xmm6
vshufps xmm0, xmm0, xmm0, 0xff
vaddss xmm0, xmm1, xmm0
vmovss dword [esp + 0x10], xmm0
vextractf128 xmm0, ymm6, 1
vshufps xmm0, xmm0, xmm0, 0x55
vmovups xmmword [esp + 0x90], xmm0
vmulss xmm0, xmm3, xmm0
vextractf128 xmm2, ymm6, 1
vfmadd213ss xmm2, xmm4, xmm0
vextractf128 xmm0, ymm6, 1
vshufps xmm0, xmm0, xmm0, 0xaa
vmovaps xmm1, xmm0
vfmadd213ss xmm1, xmm5, xmm2
vmovups xmmword [esp + 0x80], xmm0
vextractf128 xmm0, ymm6, 1
vshufps xmm0, xmm0, xmm0, 0xff
vaddss xmm0, xmm1, xmm0
vmovss dword [esp + 0x24], xmm0
vshufps xmm0, xmm7, xmm7, 0x55
vmulss xmm0, xmm3, xmm0
vmovaps xmm2, xmm7
vfmadd213ss xmm2, xmm4, xmm0
vshufps xmm0, xmm7, xmm7, 0xaa
vmovaps xmm1, xmm0
vfmadd213ss xmm1, xmm5, xmm2
vmovups xmm5, xmmword [esp + 0x90]
vmovups xmmword [esp + 0xb0], xmm0
vmovss xmm2, dword [ecx + edi + 0x70]
vshufps xmm0, xmm7, xmm7, 0xff
vmovss xmm7, dword [ecx + edi + 0x74]
vaddss xmm0, xmm1, xmm0
vmovss dword [esp + 0x28], xmm0
vmulss xmm0, xmm5, dword [ecx + edi + 0x78]
vmovdqu ymm5, ymmword [eax]
vextractf128 xmm1, ymm5, 1
vfmadd132ss xmm1, xmm0, dword [ecx + edi + 0x68]
vmovss xmm0, dword [esp + 0x80]
vfmadd132ss xmm0, xmm1, dword [ecx + edi + 0x88]
vmovups xmm5, xmmword [esp + 0x90]
vmovss xmm3, dword [ecx + edi + 0x60]
vmovss dword [esp + 0x20], xmm0
vmulss xmm0, xmm7, xmm5
vmovdqu ymm5, ymmword [eax]
vextractf128 xmm1, ymm5, 1
vfmadd132ss xmm1, xmm0, dword [ecx + edi + 0x64]
vmovups xmm0, xmmword [esp + 0x80]
vmovaps xmm5, xmm0
vfmadd132ss xmm5, xmm1, dword [ecx + edi + 0x84]
vmovss dword [esp + 8], xmm5
vmovups xmm5, xmmword [esp + 0x90]
vmovdqu ymmword [esp + 0x30], ymm6
vmovss xmm6, dword [ecx + edi + 0x80]
vmulss xmm0, xmm2, xmm5
vmovdqu ymm5, ymmword [esp + 0x30]
vextractf128 xmm1, ymm5, 1
vfmadd213ss xmm1, xmm3, xmm0
vmovups xmm0, xmmword [esp + 0x80]
vfmadd213ss xmm0, xmm6, xmm1
vmovss xmm1, dword [esp + 0xa0]
vmovss xmm4, dword [esp + 0x70]
vmovups xmmword [esp + 0x80], xmm0
vmulss xmm0, xmm5, dword [ecx + edi + 0x68]
vfmadd132ss xmm1, xmm0, dword [ecx + edi + 0x78]
vmovdqu ymm0, ymmword [eax]
vmulss xmm0, xmm0, dword [ecx + edi + 0x64]
vmovss xmm5, dword [esp + 0x70]
vfmadd132ss xmm5, xmm1, dword [ecx + edi + 0x88]
vmovss xmm1, dword [esp + 0xa0]
vfmadd213ss xmm1, xmm7, xmm0
vfmadd132ss xmm4, xmm1, dword [ecx + edi + 0x84]
vmovdqu ymm0, ymmword [eax]
vmovups xmm1, xmmword [esp + 0xa0]
vmulss xmm0, xmm3, xmm0
vfmadd213ss xmm1, xmm2, xmm0
vmovups xmm0, xmmword [esp + 0x70]
vfmadd213ss xmm0, xmm6, xmm1
vmovups xmmword [esp + 0x70], xmm0
vmulss xmm0, xmm2, dword [eax + 0x24]
vmovdqu xmm2, xmmword [eax + 0x20]
vmovaps xmm1, xmm2
vfmadd213ss xmm1, xmm3, xmm0
vmovups xmm3, xmmword [esp + 0xb0]
vfmadd213ss xmm3, xmm6, xmm1
vshufps xmm6, xmm2, xmm2, 0x55
vmulss xmm0, xmm7, xmm6
vmovups xmm7, xmmword [esp + 0xb0]
vmovaps xmm1, xmm2
vfmadd132ss xmm1, xmm0, dword [ecx + edi + 0x64]
vmulss xmm0, xmm6, dword [ecx + edi + 0x78]
vmovdqu xmm6, xmmword [eax + 0x20]
vfmadd132ss xmm6, xmm0, dword [ecx + edi + 0x68]
vmovups xmm0, xmmword [esp + 0x70]
vmovss dword [esp + 0x30], xmm0
vmovss xmm0, dword [esp + 0x10]
vmovss dword [esp + 0x3c], xmm0
vmovups xmm0, xmmword [esp + 0x80]
vmovss dword [esp + 0x40], xmm0
vmovss xmm0, dword [esp + 8]
vmovss dword [esp + 0x44], xmm0
vmovss xmm0, dword [esp + 0x20]
vmovss dword [esp + 0x48], xmm0
vmovss xmm0, dword [esp + 0x24]
lea eax, [esi + esi*2]
vmovss dword [esp + 0x4c], xmm0
vmovss xmm0, dword [esp + 0x28]
shl eax, 4
add eax, dword [0x100e20dc]
vmovaps xmm2, xmm7
vfmadd132ss xmm2, xmm1, dword [ecx + edi + 0x84]
vfmadd132ss xmm7, xmm6, dword [ecx + edi + 0x88]
vmovss dword [esp + 0x5c], xmm0
vmovss dword [esp + 0x34], xmm4
vmovss dword [esp + 0x38], xmm5
vmovdqu ymm0, ymmword [esp + 0x30]
vmovdqu ymmword [eax], ymm0
vmovss dword [esp + 0x50], xmm3
vmovss dword [esp + 0x54], xmm2
vmovss dword [esp + 0x58], xmm7
vmovdqu xmm0, xmmword [esp + 0x50]
vmovdqu xmmword [eax + 0x20], xmm0
mov eax, dword [edi + 0x58]
inc edx
mov ecx, dword [edi + 0x54]
sub eax, ecx
sar eax, 2
cmp edx, eax
jb 0x1001a1a3
mov al, 1
vzeroupper
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8