public virtual void NormalizeAll(ECPoint[] points, int off, int len, ECFieldElement iso) { CheckPoints(points, off, len); int coordinateSystem = CoordinateSystem; if (coordinateSystem == 0 || coordinateSystem == 5) { if (iso != null) { throw new ArgumentException("not valid for affine coordinates", "iso"); } return; } ECFieldElement[] array = new ECFieldElement[len]; int[] array2 = new int[len]; int num = 0; for (int i = 0; i < len; i++) { ECPoint eCPoint = points[off + i]; if (eCPoint != null && (iso != null || !eCPoint.IsNormalized())) { array[num] = eCPoint.GetZCoord(0); array2[num++] = off + i; } } if (num != 0) { ECAlgorithms.MontgomeryTrick(array, 0, num, iso); for (int j = 0; j < num; j++) { int num3 = array2[j]; points[num3] = points[num3].Normalize(array[j]); } } }