Function at 0x1002d620
Capabilities:
Hash data using fnv

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10035b01
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x68
mov eax, dword [0x1003f040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x44], edx
mov edi, ecx
mov esi, dword [0x1003f738]
mov eax, dword [esi + 0x3e78]
mov byte [eax + 0xac], 1
mov eax, dword [esi + 0x3e78]
mov dword [ebp - 0x40], eax
cmp byte [eax + 0xaf], 0
je 0x1002d68f
xor al, al
jmp 0x1002dcb5
lea ecx, [esi + 0x3780]
xor edx, edx
mov dword [ebp - 0x3c], ecx
mov ecx, dword [eax + 0xe4]
mov eax, dword [eax + 0xec]
push dword [eax + ecx*4 - 4]
mov ecx, edi
call fcn.10003970
mov ecx, dword [ebp - 0x40]
add esp, 4
mov dword [ebp - 0x4c], eax
mov ecx, dword [ecx]
cmp dword [ecx + 0x3eac], eax
jne 0x1002d6de
push ecx
push edi
mov edx, 0xb
mov ecx, eax
call fcn.100176d0
mov esi, dword [0x1003f738]
add esp, 8
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x54], eax
mov ecx, edi
cmp edi, 0xffffffff
jae 0x1002d6fe
mov dl, byte [ecx]
test dl, dl
je 0x1002d6fe
cmp dl, 0x23
jne 0x1002d6f8
cmp byte [ecx + 1], dl
je 0x1002d6fe
inc ecx
cmp ecx, 0xffffffff
jb 0x1002d6e8
movss xmm0, dword [esi + 0x3be4]
movss dword [ebp - 0x68], xmm0
cmp edi, ecx
jne 0x1002d714
xorps xmm5, xmm5
jmp 0x1002d75b
movss xmm3, dword [0x1003c16c]
lea eax, [ebp - 0x60]
push ecx
push ecx
push edi
push ecx
mov ecx, dword [esi + 0x3be0]
movaps xmm2, xmm0
mov dword [esp], 0xbf800000
push eax
call fcn.10026a40
movss xmm0, dword [ebp - 0x60]
addss xmm0, dword [0x1003c080]
cvttss2si eax, xmm0
movss xmm0, dword [ebp - 0x5c]
movss dword [ebp - 0x68], xmm0
movd xmm5, eax
cvtdq2ps xmm5, xmm5
mov eax, dword [ebp - 0x40]
lea ecx, [ebp - 0x34]
movss xmm1, dword [0x1003c0e4]
mov esi, dword [ebp - 0x4c]
mov edx, esi
push 0
movss xmm3, dword [eax + 0xf0]
movss xmm4, dword [eax + 0xf4]
movaps xmm0, xmm3
mov eax, dword [ebp - 0x3c]
addss xmm0, xmm1
movaps xmm2, xmm4
movss dword [ebp - 0x6c], xmm5
addss xmm2, xmm1
movss dword [ebp - 0x24], xmm3
movss dword [ebp - 0x20], xmm4
movss dword [ebp - 0x34], xmm3
movss dword [ebp - 0x1c], xmm0
movaps xmm0, xmm5
addss xmm0, xmm1
movss dword [ebp - 0x30], xmm4
movss dword [ebp - 0x18], xmm2
movss dword [ebp - 0x28], xmm2
addss xmm0, dword [eax + 0x54]
lea eax, [ebp - 0x24]
push eax
addss xmm0, dword [0x1003c0a4]
addss xmm0, xmm3
movss dword [ebp - 0x2c], xmm0
call fcn.100105e0
movss xmm2, dword [ebp - 0x2c]
lea ecx, [ebp - 0x60]
movss xmm0, dword [ebp - 0x28]
subss xmm2, dword [ebp - 0x34]
subss xmm0, dword [ebp - 0x30]
mov eax, dword [ebp - 0x3c]
movss dword [ebp - 0x60], xmm2
movss xmm1, dword [eax + 0x40]
movss dword [ebp - 0x5c], xmm0
call fcn.10010480
push 0
lea eax, [ebp - 0x35]
mov edx, esi
push eax
lea eax, [ebp - 0x61]
push eax
lea ecx, [ebp - 0x34]
call fcn.1002c050
add esp, 0x14
mov byte [ebp - 0x35], al
test al, al
je 0x1002d85a
mov eax, dword [ebp - 0x44]
cmp byte [eax], 0
sete cl
mov byte [eax], cl
mov ecx, dword [0x1003f738]
mov edx, dword [ecx + 0x3ec4]
cmp edx, esi
je 0x1002d84a
test edx, edx
jne 0x1002d853
mov word [ecx + 0x3ed4], 0x101
or dword [ecx + 0x46f8], 4
mov eax, dword fs:[0x2c]
mov ecx, dword [0x1003f70c]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x1003f94c]
cmp eax, dword [ecx + 4]
jle 0x1002d8cc
push 0x1003f94c
call fcn.100346bd
add esp, 4
cmp dword [0x1003f94c], 0xffffffff
jne 0x1002d8cc
xorps xmm0, xmm0
mov dword [ebp - 4], 0
mov ecx, 0x1003f950
movups xmmword [0x1003f950], xmm0
movups xmmword [0x1003f960], xmm0
call fcn.1002f0a0
push 0x10035e50
call fcn.10034a26
push 0x1003f94c
mov dword [ebp - 4], 0xffffffff
call fcn.1003466c
add esp, 8
mov edx, dword [ebp - 0x4c]
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, dh
xor ecx, eax
movzx eax, byte [ebp - 0x4a]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [ebp - 0x49]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x1003f950
push eax
mov dword [ebp - 0x5c], eax
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x74]
push eax
call fcn.1002ff10
mov ecx, dword [0x1003f954]
mov esi, ecx
mov eax, dword [eax + 4]
test eax, eax
cmovne esi, eax
cmp esi, ecx
jne 0x1002d96c
mov esi, dword [ebp - 0x4c]
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x50], esi
push eax
mov ecx, 0x1003f950
mov dword [ebp - 0x4c], 0
call fcn.1002fa30
push dword [ebp - 0x5c]
lea eax, [ebp - 0x54]
mov ecx, 0x1003f950
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.1002ff10
mov esi, dword [0x1003f954]
mov eax, dword [eax + 4]
test eax, eax
cmovne esi, eax
mov eax, dword [ebp - 0x44]
movss xmm1, dword [0x1003c088]
cmp byte [eax], 0
je 0x1002d981
movaps xmm2, xmm1
jmp 0x1002d984
xorps xmm2, xmm2
subss xmm2, dword [esi + 0xc]
mov eax, dword [ebp - 0x3c]
xorps xmm0, xmm0
mulss xmm2, dword [0x1003c004]
addss xmm2, dword [esi + 0xc]
movss dword [esi + 0xc], xmm2
movss xmm2, dword [eax]
comiss xmm0, xmm2
jbe 0x1002d9af
xorps xmm1, xmm1
jmp 0x1002d9b3
minss xmm1, xmm2
mulss xmm1, dword [0x1003c140]
xor dl, dl
push ecx
mov dword [esp], 0x3f333333
push dword [ebp - 0x18]
addss xmm1, dword [0x1003c054]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0x24]
cvttss2si ecx, xmm1
shl ecx, 0x18
or ecx, 0x161212
call fcn.100043e0
mov eax, dword [ebp - 0x3c]
xorps xmm0, xmm0
mov ecx, dword [ebp - 0x40]
add esp, 0x14
movss xmm1, dword [eax]
comiss xmm0, xmm1
ja 0x1002da0c
movss xmm0, dword [0x1003c088]
minss xmm0, xmm1
mulss xmm0, dword [0x1003c140]
sub esp, 0xc
mov ecx, dword [ecx + 0x26c]
addss xmm0, dword [0x1003c054]
mov dword [esp + 8], 0x3f800000
mov dword [esp], 0x3f333333
cvttss2si eax, xmm0
shl eax, 0x18
or eax, 0x2c2626
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.10022ca0
movd xmm4, dword [0x1003f310]
xorps xmm0, xmm0
movss xmm3, dword [0x1003c140]
cvtdq2ps xmm4, xmm4
mov eax, dword [ebp - 0x3c]
movd xmm5, dword [0x1003f314]
movd xmm6, dword [0x1003f318]
divss xmm4, xmm3
movss xmm7, dword [eax]
comiss xmm0, xmm4
mulss xmm7, dword [esi + 0xc]
movss xmm1, dword [0x1003c088]
cvtdq2ps xmm5, xmm5
cvtdq2ps xmm6, xmm6
divss xmm5, xmm3
divss xmm6, xmm3
jbe 0x1002daa4
xorps xmm2, xmm2
jmp 0x1002daab
movaps xmm2, xmm1
minss xmm2, xmm4
comiss xmm0, xmm5
movss xmm4, dword [0x1003c054]
mulss xmm2, xmm3
addss xmm2, xmm4
cvttss2si edx, xmm2
jbe 0x1002dac9
xorps xmm2, xmm2
jmp 0x1002dad0
movaps xmm2, xmm1
minss xmm2, xmm5
mulss xmm2, xmm3
addss xmm2, xmm4
cvttss2si eax, xmm2
shl eax, 8
or edx, eax
comiss xmm0, xmm6
jbe 0x1002daeb
xorps xmm2, xmm2
jmp 0x1002daf2
movaps xmm2, xmm1
minss xmm2, xmm6
mulss xmm2, xmm3
addss xmm2, xmm4
cvttss2si eax, xmm2
shl eax, 0x10
or edx, eax
comiss xmm0, xmm7
jbe 0x1002db0d
xorps xmm1, xmm1
jmp 0x1002db11
minss xmm1, xmm7
mulss xmm1, xmm3
push ecx
mov dword [esp], 0x3f333333
push dword [ebp - 0x18]
addss xmm1, xmm4
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0x24]
cvttss2si ecx, xmm1
shl ecx, 0x18
or ecx, edx
xor dl, dl
call fcn.100043e0
movss xmm2, dword [ebp - 0x24]
lea eax, [ebp - 0x58]
addss xmm2, dword [ebp - 0x1c]
movss xmm0, dword [esi + 0xc]
add esp, 0x14
movss xmm1, dword [ebp - 0x20]
mulss xmm0, dword [0x1003c0bc]
mulss xmm2, dword [0x1003c054]
push 0
addss xmm1, dword [ebp - 0x18]
push eax
addss xmm0, xmm2
subss xmm2, dword [0x1003c0b4]
lea eax, [ebp - 0x48]
mulss xmm1, dword [0x1003c054]
push eax
mov eax, dword [ebp - 0x40]
movss dword [ebp - 0x58], xmm0
movaps xmm0, xmm1
movss dword [ebp - 0x5c], xmm1
addss xmm0, dword [0x1003c0c4]
subss xmm1, dword [0x1003c0b4]
mov ecx, dword [eax + 0x26c]
movss dword [ebp - 0x48], xmm2
movss dword [ebp - 0x54], xmm0
movss dword [ebp - 0x44], xmm1
call fcn.10020a40
mov eax, dword [ebp - 0x3c]
xorps xmm0, xmm0
movss xmm1, dword [esi + 0xc]
mulss xmm1, dword [eax]
comiss xmm0, xmm1
ja 0x1002dbe1
movss xmm0, dword [0x1003c088]
minss xmm0, xmm1
mulss xmm0, dword [0x1003c140]
mov esi, dword [ebp - 0x40]
movss xmm1, dword [ebp - 0x48]
movss xmm3, dword [0x1003c0c4]
addss xmm0, dword [0x1003c054]
mov ecx, dword [esi + 0x26c]
movss dword [ebp - 0x58], xmm1
movss xmm1, dword [ebp - 0x44]
movss dword [ebp - 0x54], xmm1
push dword [ebp - 0x54]
cvttss2si edx, xmm0
push dword [ebp - 0x58]
shl edx, 0x18
call fcn.10027360
mov ecx, dword [esi + 0x26c]
add esp, 8
mov edx, dword [ecx + 0x3c]
sub edx, 1
mov dword [ecx + 0x3c], edx
jne 0x1002dc44
mov eax, dword [ecx + 0x2c]
add eax, 0x18
jmp 0x1002dc4f
mov eax, dword [ecx + 0x44]
shl edx, 4
add eax, 0xfffffff0
add eax, edx
movups xmm0, xmmword [eax]
movups xmmword [ecx + 0x60], xmm0
call fcn.10020850
mov eax, dword [ebp - 0x3c]
movss xmm0, dword [ebp - 0x1c]
movss xmm1, dword [ebp - 0x68]
mulss xmm1, dword [0x1003c054]
addss xmm0, dword [eax + 0x54]
addss xmm0, dword [0x1003c0a4]
movss dword [ebp - 0x48], xmm0
movss xmm0, dword [ebp - 0x5c]
subss xmm0, xmm1
movss dword [ebp - 0x44], xmm0
movss xmm0, dword [ebp - 0x6c]
comiss xmm0, dword [0x1003bfe4]
jbe 0x1002dcb2
push 1
push dword [ebp - 0x44]
xor edx, edx
mov ecx, edi
push dword [ebp - 0x48]
call fcn.10003ff0
add esp, 0xc
mov al, byte [ebp - 0x35]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.10034503
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret