312    {
  313        char* ptr = pBuffer;
  315        {
  320            {
  321                char* ptr2 = pBuffer + bufferLength - 
count;
 
  322                pBuffer = (char*)((nuint)((byte*)pBuffer + count2) & ~(nuint)(count2 - 1));
  324                {
  326                    if (pBuffer > ptr2)
  327                    {
  328                        break;
  329                    }
  330                }
  331                bufferLength -= (nuint)(nint)(pBuffer - ptr);
  332            }
  333        }
  334        while (true)
  335        {
  336            uint num;
  337            if (bufferLength >= 4)
  338            {
  339                num = 
Unsafe.ReadUnaligned<uint>(pBuffer);
 
  340                uint num2 = 
Unsafe.ReadUnaligned<uint>(pBuffer + 2);
 
  342                {
  344                    {
  345                        num = num2;
  346                        pBuffer += 2;
  347                    }
  348                    goto IL_0109;
  349                }
  350                pBuffer += 4;
  351                bufferLength -= 4;
  352                continue;
  353            }
  354            if ((bufferLength & 2) != 0)
  355            {
  356                num = 
Unsafe.ReadUnaligned<uint>(pBuffer);
 
  358                {
  359                    goto IL_0109;
  360                }
  361                pBuffer += 2;
  362            }
  363            if ((bufferLength & 1) != 0 && *pBuffer <= '\u007f')
  364            {
  365                pBuffer++;
  366            }
  367            break;
  368            IL_0109:
  370            {
  371                pBuffer++;
  372            }
  373            break;
  374        }
  375        nuint num3 = (nuint)((byte*)pBuffer - (nuint)ptr);
  376        return num3 / 2;
  377    }
static bool IsHardwareAccelerated
 
static bool AllCharsInUInt32AreAscii(uint value)
 
static bool FirstCharInUInt32IsAscii(uint value)