public int findEntry(byte[] p, int pLen)
{
int low = 0;
int high = _entryCnt;
while (low < high)
{
var mid = (int)(((uint)(low + high)) >> 1);
int cmp = Compare(p, pLen, _sortedEntries[mid]);
if (cmp < 0)
{
high = mid;
}
else if (cmp == 0)
{
while (mid > 0 && Compare(p, pLen, _sortedEntries[mid - 1]) == 0)
{
mid--;
}
return mid;
}
else
{
low = mid + 1;
}
}
return -(low + 1);
}