Function at 0x4022e0
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 0x4835e1
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x48
mov eax, dword [0x4a5080]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [0x4ac6b0]
xor edx, edx
mov edi, dword [ebx + 8]
mov eax, dword [esi + 0x3e48]
mov byte [eax + 0xac], 1
mov eax, dword [esi + 0x3e48]
mov dword [ebp - 0x40], eax
mov ecx, dword [eax + 0xe4]
mov eax, dword [eax + 0xec]
push dword [eax + ecx*4 - 4]
mov ecx, edi
call fcn.00406c10
mov ecx, dword [ebp - 0x40]
add esp, 4
mov dword [ebp - 0x2c], eax
mov ecx, dword [ecx]
cmp dword [ecx + 0x3e7c], eax
jne 0x402383
push ecx
push edi
mov edx, 0xb
mov ecx, eax
call fcn.0041b6c0
mov esi, dword [0x4ac6b0]
add esp, 8
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x48], eax
mov ecx, edi
cmp edi, 0xffffffff
jae 0x4023a6
nop dword [eax]
mov dl, byte [ecx]
test dl, dl
je 0x4023a6
cmp dl, 0x23
jne 0x4023a0
cmp byte [ecx + 1], dl
je 0x4023a6
inc ecx
cmp ecx, 0xffffffff
jb 0x402390
movss xmm2, dword [esi + 0x3bd4]
cmp edi, ecx
jne 0x4023b7
xorps xmm3, xmm3
jmp 0x4023f6
movss xmm3, dword [0x497364]
lea eax, [ebp - 0x38]
push ecx
push ecx
push edi
push ecx
mov ecx, dword [esi + 0x3bd0]
mov dword [esp], 0xbf800000
push eax
call fcn.0042b0f0
movss xmm0, dword [ebp - 0x38]
addss xmm0, dword [0x497108]
movss xmm2, dword [ebp - 0x34]
cvttss2si eax, xmm0
movd xmm3, eax
cvtdq2ps xmm3, xmm3
mov eax, dword [ebp - 0x40]
lea ecx, [ebp - 0x24]
mov edx, dword [ebp - 0x2c]
push 0
push 0
movss xmm0, dword [eax + 0xf0]
movss xmm1, dword [eax + 0xf4]
addss xmm3, xmm0
mov eax, dword [eax + 0x264]
addss xmm2, xmm1
mov dword [ebp - 0x34], eax
movss dword [ebp - 0x24], xmm0
movss dword [ebp - 0x20], xmm1
movss dword [ebp - 0x1c], xmm3
movss dword [ebp - 0x18], xmm2
call fcn.00414900
movss xmm2, dword [ebp - 0x1c]
lea ecx, [ebp - 0x44]
addss xmm2, dword [0x4972e4]
movss xmm0, dword [ebp - 0x18]
mov eax, dword [0x4ac6b0]
subss xmm0, dword [ebp - 0x20]
subss xmm2, dword [ebp - 0x24]
movss xmm1, dword [eax + 0x37e4]
movss dword [ebp - 0x40], xmm0
movss dword [ebp - 0x44], xmm2
call fcn.004147a0
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 0x25]
push 0
push eax
lea eax, [ebp - 0x39]
push eax
lea ecx, [ebp - 0x24]
call fcn.0042efe0
mov ecx, dword fs:[0x2c]
add esp, 0x14
mov byte [ebp - 0x25], al
mov edx, dword [ecx]
mov ecx, dword [0x4acd70]
cmp ecx, dword [edx + 4]
jle 0x402503
push 0x4acd70
call fcn.00481cdd
add esp, 4
cmp dword [0x4acd70], 0xffffffff
jne 0x402503
xorps xmm0, xmm0
mov dword [ebp - 4], 0
mov ecx, 0x4acd74
movups xmmword [0x4acd74], xmm0
movups xmmword [0x4acd84], xmm0
call fcn.004035d0
push 0x4885f0
call fcn.00481fad
add esp, 4
mov dword [ebp - 4], 0xffffffff
push 0x4acd70
call fcn.00481c8c
add esp, 4
mov edx, dword [ebp - 0x2c]
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, dh
xor ecx, eax
movzx eax, byte [ebp - 0x2a]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [ebp - 0x29]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x4acd74
push eax
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.004046b0
mov ecx, dword [0x4acd78]
mov esi, ecx
mov eax, dword [eax + 4]
test eax, eax
cmovne esi, eax
cmp esi, ecx
jne 0x4025a3
mov esi, dword [ebp - 0x2c]
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x50]
mov dword [ebp - 0x30], esi
push eax
mov ecx, 0x4acd74
mov dword [ebp - 0x2c], 0
call fcn.00403c00
push dword [ebp - 0x40]
lea eax, [ebp - 0x48]
mov ecx, 0x4acd74
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.004046b0
mov esi, dword [0x4acd78]
mov eax, dword [eax + 4]
test eax, eax
cmovne esi, eax
cmp byte [ebx + 0xc], 0
je 0x4025b3
movss xmm1, dword [0x497110]
jmp 0x4025b6
xorps xmm1, xmm1
subss xmm1, dword [esi + 0xc]
push 0
push ecx
mov dword [esp], 0
xor ecx, ecx
push 0
mulss xmm1, dword [0x497094]
push edi
addss xmm1, dword [esi + 0xc]
movss dword [esi + 0xc], xmm1
maxss xmm1, dword [0x4970d4]
call fcn.004071b0
mov edi, dword [ebp - 0x34]
xorps xmm2, xmm2
push eax
lea eax, [ebp - 0x24]
mov ecx, edi
push eax
push 0
call fcn.004274d0
movd xmm3, dword [0x4a6178]
movss xmm4, dword [0x497334]
mov eax, dword [0x4ac6b0]
movss xmm5, dword [esi + 0xc]
cvtdq2ps xmm3, xmm3
movd xmm6, dword [0x4a617c]
movaps xmm0, xmm5
mulss xmm0, dword [eax + 0x37a4]
movd xmm7, dword [0x4a6180]
divss xmm3, xmm4
movss xmm2, dword [0x497110]
cvtdq2ps xmm6, xmm6
cvtdq2ps xmm7, xmm7
movss dword [ebp - 0x34], xmm0
xorps xmm0, xmm0
comiss xmm0, xmm3
divss xmm6, xmm4
divss xmm7, xmm4
jbe 0x402661
xorps xmm1, xmm1
jmp 0x402668
movaps xmm1, xmm2
minss xmm1, xmm3
comiss xmm0, xmm6
movss xmm3, dword [0x4970e4]
mulss xmm1, xmm4
addss xmm1, xmm3
cvttss2si ecx, xmm1
jbe 0x402686
xorps xmm1, xmm1
jmp 0x40268d
movaps xmm1, xmm2
minss xmm1, xmm6
mulss xmm1, xmm4
addss xmm1, xmm3
cvttss2si eax, xmm1
shl eax, 8
or ecx, eax
comiss xmm0, xmm7
jbe 0x4026a8
xorps xmm1, xmm1
jmp 0x4026af
movaps xmm1, xmm2
minss xmm1, xmm7
mulss xmm1, xmm4
addss xmm1, xmm3
cvttss2si eax, xmm1
movss xmm1, dword [ebp - 0x34]
shl eax, 0x10
or ecx, eax
comiss xmm0, xmm1
ja 0x4026d1
minss xmm2, xmm1
movaps xmm0, xmm2
mulss xmm0, xmm4
mulss xmm5, dword [0x497158]
addss xmm0, xmm3
cvttss2si esi, xmm0
movss xmm0, dword [ebp - 0x24]
addss xmm0, dword [ebp - 0x1c]
shl esi, 0x18
or esi, ecx
mulss xmm0, xmm3
movss dword [ebp - 0x38], xmm0
movss xmm0, dword [ebp - 0x18]
addss xmm0, dword [0x4972d8]
movss dword [ebp - 0x34], xmm0
test esi, 0xff000000
je 0x402749
comiss xmm3, xmm5
ja 0x402749
push ecx
push 0x30
push 0
lea eax, [ebp - 0x38]
movaps xmm2, xmm5
push eax
mov ecx, edi
call fcn.00426420
mov eax, dword [edi + 0x54]
mov ecx, edi
dec eax
push esi
push eax
push dword [edi + 0x5c]
mov dword [edi + 0x54], eax
call fcn.00426010
mov dword [edi + 0x54], 0
mov al, byte [ebp - 0x25]
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.00481c53
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 8