3938 {
3939 int num = number.Scale;
3940 if (num > 10 || num < number.DigitsCount || number.IsNegative)
3941 {
3942 return false;
3943 }
3944 byte* digitsPointer = number.GetDigitsPointer();
3945 uint num2 = 0u;
3946 while (--num >= 0)
3947 {
3948 if (num2 > 429496729)
3949 {
3950 return false;
3951 }
3952 num2 *= 10;
3953 if (*digitsPointer != 0)
3954 {
3955 uint num3 = num2 + (uint)(*(digitsPointer++) - 48);
3956 if (num3 < num2)
3957 {
3958 return false;
3959 }
3960 num2 = num3;
3961 }
3962 }
3964 return true;
3965 }