666 {
667 bool flag = dividend._bits == null;
668 bool flag2 = divisor._bits == null;
669 if (flag && flag2)
670 {
671 (
int Quotient,
int Remainder) tuple = Math.DivRem(dividend._sign, divisor._sign);
675 remainder = bigInteger2;
676 return result;
677 }
678 if (flag)
679 {
680 remainder = dividend;
682 }
683 if (flag2)
684 {
685 uint remainder2;
686 uint[]
array = BigIntegerCalculator.Divide(dividend._bits, NumericsHelpers.Abs(divisor._sign), out remainder2);
687 remainder = ((dividend._sign < 0) ? (-1 * remainder2) : remainder2);
689 }
690 if (dividend._bits.Length < divisor._bits.Length)
691 {
692 remainder = dividend;
694 }
695 uint[] remainder3;
696 uint[] array2 = BigIntegerCalculator.Divide(dividend._bits, divisor._bits, out remainder3);
697 remainder =
new BigInteger(remainder3, remainder3, dividend._sign < 0);
698 return new BigInteger(array2, array2, (dividend._sign < 0) ^ (divisor._sign < 0));
699 }
static readonly BigInteger s_bnZeroInt
static BigInteger Remainder(BigInteger dividend, BigInteger divisor)