protected static int FindSequence(byte[] Array, byte[] SequenceToFind, int Start = 0, int EndIndex = int.MaxValue)
{
int ArrayUpTo = Math.Min(EndIndex, Array.Length) - SequenceToFind.Length;
int SequenceToFindLength = SequenceToFind.Length;
for (int n = Start; n < ArrayUpTo; n++)
{
bool Found = true;
for (int m = 0; m < SequenceToFindLength; m++)
{
if (SequenceToFind[m] != Array[n + m])
{
Found = false;
break;
}
}
if (Found)
{
return n;
}
}
return -1;
}