560 {
561 int scale = number.Scale;
562 ReadOnlySpan<byte> readOnlySpan = number.Digits;
563 int digitsCount = number.DigitsCount;
564 bool flag = scale < digitsCount;
565 int num;
566 if (flag)
567 {
568 num = digitsCount + 1;
569 if (scale <= 0)
570 {
571 num += 1 + -scale;
572 }
573 }
574 else
575 {
576 num = ((scale <= 0) ? 1 : scale);
577 }
578 if (number.IsNegative)
579 {
580 num++;
581 }
583 {
584 bytesWritten = 0;
585 return false;
586 }
588 int num2 = 0;
589 if (number.IsNegative)
590 {
592 }
593 if (scale <= 0)
594 {
596 }
597 else
598 {
599 for (;
i < scale;
i++)
600 {
601 byte b = readOnlySpan[
i];
602 if (b == 0)
603 {
604 int num3 = scale -
i;
605 for (int j = 0; j < num3; j++)
606 {
608 }
609 break;
610 }
612 }
613 }
614 if (flag)
615 {
617 if (scale < 0)
618 {
619 int num4 = -scale;
620 for (int k = 0; k < num4; k++)
621 {
623 }
624 }
625 byte b2;
626 while ((b2 = readOnlySpan[i++]) != 0)
627 {
629 }
630 }
631 bytesWritten = num;
632 return true;
633 }