1361 {
1362 bool flag = leftBits == null;
1363 bool flag2 = rightBits == null;
1364 if (flag && flag2)
1365 {
1366 return (long)leftSign - (long)rightSign;
1367 }
1368 if (flag)
1369 {
1370 uint[]
array = BigIntegerCalculator.Subtract(rightBits, NumericsHelpers.Abs(leftSign));
1372 }
1373 if (flag2)
1374 {
1375 uint[] array2 = BigIntegerCalculator.Subtract(leftBits, NumericsHelpers.Abs(rightSign));
1376 return new BigInteger(array2, array2, leftSign < 0);
1377 }
1378 if (BigIntegerCalculator.Compare(leftBits, rightBits) < 0)
1379 {
1380 uint[] array3 = BigIntegerCalculator.Subtract(rightBits, leftBits);
1381 return new BigInteger(array3, array3, leftSign >= 0);
1382 }
1383 uint[] array4 = BigIntegerCalculator.Subtract(leftBits, rightBits);
1384 return new BigInteger(array4, array4, leftSign < 0);
1385 }