Function at 0x10089150
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100a5cb1
mov eax, dword fs:[0]
push eax
sub esp, 0x94
mov eax, dword [0x100bc040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
call fcn.10024c20
mov esi, eax
mov edx, dword [esi + 0xe4]
mov ecx, dword [esi + 0xec]
push dword [ecx + edx*4 - 4]
xor edx, edx
mov ecx, edi
call fcn.1004bce0
mov ecx, dword [esi]
add esp, 4
mov dword [ebp - 0x38], eax
cmp dword [ecx + 0x3e7c], eax
jne 0x100891c5
push 0
push edi
mov edx, 0xb
mov ecx, eax
call fcn.10063ef0
mov eax, dword [ebp - 0x38]
add esp, 8
mov ecx, eax
mov dword [ebp - 0x44], eax
shr ecx, 0x18
mov edx, edi
mov dword [ebp - 0x4c], ecx
mov ecx, eax
shr ecx, 0x10
push ecx
mov dword [esp], 0xbf800000
mov dword [ebp - 0x58], ecx
lea ecx, [ebp - 0x30]
shr eax, 8
push 1
push 0
mov dword [ebp - 0x54], eax
call fcn.10051a20
movss xmm0, dword [esi + 0xf0]
lea ecx, [ebp - 0x80]
movss dword [ebp - 0x18], xmm0
add esp, 4
movss xmm0, dword [esi + 0xf4]
movss dword [ebp - 0x14], xmm0
mov eax, dword [esi + 0x264]
movd xmm0, dword [ebp + 0x10]
mov dword [ebp - 0x48], eax
mov eax, dword [0x1019fdb0]
cvtdq2ps xmm0, xmm0
mov eax, dword [eax + 0x3e48]
movss xmm2, dword [eax + 0x1c]
movss xmm1, dword [eax + 0x20]
divss xmm2, xmm0
movss dword [esp + 4], xmm1
movss dword [esp], xmm2
call fcn.100248c0
movss xmm0, dword [ebp - 0x14]
lea ecx, [ebp - 0x70]
sub esp, 8
addss xmm0, dword [eax + 4]
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0x18]
addss xmm0, dword [eax]
movss dword [esp], xmm0
call fcn.100248c0
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x28]
call fcn.10024b30
mov edx, dword [ebp - 0x38]
lea ecx, [ebp - 0x28]
push 0
push 0
call fcn.1005c250
mov eax, dword [0x1019fdb0]
add esp, 4
movss xmm0, dword [eax + 0x37c8]
lea eax, [ebp - 0x28]
movss dword [esp], xmm0
push eax
call fcn.10024c50
mov edx, dword [ebp - 0x38]
lea eax, [ebp - 0x31]
push 0
push eax
lea eax, [ebp - 0x3d]
push eax
lea ecx, [ebp - 0x28]
call fcn.100747f0
mov ecx, dword fs:[0x2c]
add esp, 0x14
mov edx, dword [0x1019fc78]
mov byte [ebp - 0x31], al
mov edx, dword [ecx + edx*4]
mov ecx, dword [0x10201f84]
cmp ecx, dword [edx + 4]
jle 0x10089343
push 0x10201f84
call fcn.100a085e
add esp, 4
cmp dword [0x10201f84], 0xffffffff
jne 0x10089343
xorps xmm0, xmm0
mov dword [ebp - 4], 0
mov ecx, 0x10201f88
movups xmmword [0x10201f88], xmm0
movups xmmword [0x10201f98], xmm0
call fcn.10081a30
push 0x100a6c40
call fcn.100a0781
push 0x10201f84
mov dword [ebp - 4], 0xffffffff
call fcn.100a080d
add esp, 8
mov eax, dword [ebp - 0x38]
movzx eax, al
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x54]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x58]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x10201f88
xor eax, dword [ebp - 0x4c]
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x80]
push eax
call fcn.10087ab0
mov ecx, dword [0x10201f8c]
mov esi, ecx
mov eax, dword [eax + 4]
test eax, eax
cmovne esi, eax
cmp esi, ecx
jne 0x10089415
mov eax, dword [ebp - 0x38]
mov ecx, 0x10201f88
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x70]
mov dword [ebp - 0x4c], 0
push eax
call fcn.10084890
mov ecx, dword [ebp - 0x38]
movzx eax, cl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, byte [ebp - 0x37]
xor ecx, eax
movzx eax, byte [ebp - 0x36]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [ebp - 0x35]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x10201f88
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x68]
push eax
call fcn.10087ab0
mov esi, dword [0x10201f8c]
mov eax, dword [eax + 4]
test eax, eax
cmovne esi, eax
cmp byte [ebp + 0xc], 0
je 0x10089425
movss xmm1, dword [0x100b2860]
jmp 0x10089428
xorps xmm1, xmm1
subss xmm1, dword [esi + 0xc]
push dword [ebp + 0x14]
lea eax, [ebp - 0x78]
push ecx
mov dword [esp], 0x40800000
mulss xmm1, dword [0x100b27a4]
push 1
push ecx
mov ecx, 0x10201df8
addss xmm1, dword [esi + 0xc]
movss dword [esi + 0xc], xmm1
mulss xmm1, dword [0x100b2804]
movss dword [esp], xmm1
push eax
call fcn.10024ca0
mov ecx, eax
call fcn.10024b10
mov ecx, dword [ebp - 0x48]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.10068d20
cmp byte [ebp + 0xc], 0
je 0x100894a7
movss xmm0, dword [esi + 0xc]
lea eax, [ebp - 0x90]
cvtps2pd xmm0, xmm0
mov ecx, 0x10201df8
mulsd xmm0, qword [0x100b28a8]
cvtpd2ps xmm0, xmm0
jmp 0x100894ba
movss xmm0, dword [0x100b2860]
lea eax, [ebp - 0xa0]
mov ecx, 0x10201e18
push 1
push ecx
movss dword [esp], xmm0
push eax
call fcn.10024ca0
mov ecx, eax
call fcn.10024b10
movss xmm0, dword [ebp - 0x2c]
lea ecx, [ebp - 0x60]
mulss xmm0, dword [0x100b2804]
sub esp, 8
mov esi, eax
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0x30]
mulss xmm0, dword [0x100b2804]
movss dword [esp], xmm0
call fcn.100248c0
movss xmm0, dword [ebp - 0x24]
lea ecx, [ebp - 0x3c]
addss xmm0, dword [ebp - 0x1c]
sub esp, 8
mulss xmm0, dword [0x100b2804]
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0x20]
addss xmm0, dword [ebp - 0x28]
mulss xmm0, dword [0x100b2804]
movss dword [esp], xmm0
call fcn.100248c0
movss xmm0, dword [ebp - 0x38]
lea ecx, [ebp - 0x68]
subss xmm0, dword [ebp - 0x5c]
sub esp, 8
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0x3c]
subss xmm0, dword [ebp - 0x60]
movss dword [esp], xmm0
call fcn.100248c0
push 0
push ecx
mov ecx, dword [ebp - 0x48]
lea eax, [ebp - 0x68]
mov dword [esp], 0
xorps xmm2, xmm2
push 0
push edi
push esi
push eax
push 0
call fcn.10068fa0
mov al, byte [ebp - 0x31]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100a046e
mov esp, ebp
pop ebp
ret 0x10