int findSubsStartIndex(byte[] array, int endidx)
{
int index = endidx;
index -= (index % 4);
while (index > 3)
{
index -= 4;
uint len = BitConverter.ToUInt32(array, index);
if (isBE)
len = len.swap();
if ((endidx - index - 3) == len)
{
break;
}
}
return index;
}