private static unsafe void StringToNumber(string str, NumberStyles options, ref Number.NumberBuffer number, NumberFormatInfo info, bool parseDecimal)
{
if (str == null)
{
throw new ArgumentNullException("String");
}
string str1 = str;
char * chPtr = (char *)str1;
if ((IntPtr)chPtr != IntPtr.Zero)
{
chPtr += RuntimeHelpers.OffsetToStringData;
}
char *str2 = chPtr;
if (!Number.ParseNumber(ref str2, options, ref number, (StringBuilder)null, info, parseDecimal) || str2 - chPtr < (long)str.Length && !Number.TrailingZeros(str, (int)(str2 - chPtr)))
{
throw new FormatException(Environment.GetResourceString("Format_InvalidString"));
}
str1 = (string)null;
}