public static int ByteIndexOf(byte[] searched, byte[] find, int start)
{
bool matched = false;
int end = find.Length - 1;
int skip = 0;
for (int index = start; index <= searched.Length - find.Length; ++index)
{
matched = true;
if (find[0] != searched[index] || find[end] != searched[index + end]) continue;
else skip++;
if (end > 10)
if (find[skip] != searched[index + skip] || find[end - skip] != searched[index + end - skip])
continue;
else skip++;
for (int subIndex = skip; subIndex < find.Length - skip; ++subIndex)
{
if (find[subIndex] != searched[index + subIndex])
{
matched = false;
break;
}
}
if (matched)
{
return index;
}
}
return -1;
}