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)