public abstract class sun.security.ec.point.ProjectivePoint<T extends sun.security.util.math.IntegerModuloP> implements sun.security.ec.point.Point
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: sun.security.ec.point.ProjectivePoint
  super_class: java.lang.Object
{
  protected final T x;
    descriptor: Lsun/security/util/math/IntegerModuloP;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Signature: TT;

  protected final T y;
    descriptor: Lsun/security/util/math/IntegerModuloP;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Signature: TT;

  protected final T z;
    descriptor: Lsun/security/util/math/IntegerModuloP;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Signature: TT;

  protected void <init>(T, T, );
    descriptor: (Lsun/security/util/math/IntegerModuloP;Lsun/security/util/math/IntegerModuloP;Lsun/security/util/math/IntegerModuloP;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // sun.security.ec.point.ProjectivePoint this
        start local 1 // sun.security.util.math.IntegerModuloP x
        start local 2 // sun.security.util.math.IntegerModuloP y
        start local 3 // sun.security.util.math.IntegerModuloP z
         0: .line 41
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 43
            aload 0 /* this */
            aload 1 /* x */
            putfield sun.security.ec.point.ProjectivePoint.x:Lsun/security/util/math/IntegerModuloP;
         2: .line 44
            aload 0 /* this */
            aload 2 /* y */
            putfield sun.security.ec.point.ProjectivePoint.y:Lsun/security/util/math/IntegerModuloP;
         3: .line 45
            aload 0 /* this */
            aload 3 /* z */
            putfield sun.security.ec.point.ProjectivePoint.z:Lsun/security/util/math/IntegerModuloP;
         4: .line 46
            return
        end local 3 // sun.security.util.math.IntegerModuloP z
        end local 2 // sun.security.util.math.IntegerModuloP y
        end local 1 // sun.security.util.math.IntegerModuloP x
        end local 0 // sun.security.ec.point.ProjectivePoint this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/security/ec/point/ProjectivePoint<TT;>;
            0    5     1     x  TT;
            0    5     2     y  TT;
            0    5     3     z  TT;
    Signature: (TT;TT;TT;)V
    MethodParameters:
      Name  Flags
      x     
      y     
      z     

  public sun.security.util.math.IntegerFieldModuloP getField();
    descriptor: ()Lsun/security/util/math/IntegerFieldModuloP;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ec.point.ProjectivePoint this
         0: .line 50
            aload 0 /* this */
            getfield sun.security.ec.point.ProjectivePoint.x:Lsun/security/util/math/IntegerModuloP;
            invokeinterface sun.security.util.math.IntegerModuloP.getField:()Lsun/security/util/math/IntegerFieldModuloP;
            areturn
        end local 0 // sun.security.ec.point.ProjectivePoint this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ec/point/ProjectivePoint<TT;>;

  public sun.security.ec.point.ProjectivePoint$Immutable fixed();
    descriptor: ()Lsun/security/ec/point/ProjectivePoint$Immutable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // sun.security.ec.point.ProjectivePoint this
         0: .line 55
            new sun.security.ec.point.ProjectivePoint$Immutable
            dup
            aload 0 /* this */
            getfield sun.security.ec.point.ProjectivePoint.x:Lsun/security/util/math/IntegerModuloP;
            invokeinterface sun.security.util.math.IntegerModuloP.fixed:()Lsun/security/util/math/ImmutableIntegerModuloP;
            aload 0 /* this */
            getfield sun.security.ec.point.ProjectivePoint.y:Lsun/security/util/math/IntegerModuloP;
            invokeinterface sun.security.util.math.IntegerModuloP.fixed:()Lsun/security/util/math/ImmutableIntegerModuloP;
            aload 0 /* this */
            getfield sun.security.ec.point.ProjectivePoint.z:Lsun/security/util/math/IntegerModuloP;
            invokeinterface sun.security.util.math.IntegerModuloP.fixed:()Lsun/security/util/math/ImmutableIntegerModuloP;
            invokespecial sun.security.ec.point.ProjectivePoint$Immutable.<init>:(Lsun/security/util/math/ImmutableIntegerModuloP;Lsun/security/util/math/ImmutableIntegerModuloP;Lsun/security/util/math/ImmutableIntegerModuloP;)V
            areturn
        end local 0 // sun.security.ec.point.ProjectivePoint this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ec/point/ProjectivePoint<TT;>;

  public sun.security.ec.point.ProjectivePoint$Mutable mutable();
    descriptor: ()Lsun/security/ec/point/ProjectivePoint$Mutable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // sun.security.ec.point.ProjectivePoint this
         0: .line 60
            new sun.security.ec.point.ProjectivePoint$Mutable
            dup
            aload 0 /* this */
            getfield sun.security.ec.point.ProjectivePoint.x:Lsun/security/util/math/IntegerModuloP;
            invokeinterface sun.security.util.math.IntegerModuloP.mutable:()Lsun/security/util/math/MutableIntegerModuloP;
            aload 0 /* this */
            getfield sun.security.ec.point.ProjectivePoint.y:Lsun/security/util/math/IntegerModuloP;
            invokeinterface sun.security.util.math.IntegerModuloP.mutable:()Lsun/security/util/math/MutableIntegerModuloP;
            aload 0 /* this */
            getfield sun.security.ec.point.ProjectivePoint.z:Lsun/security/util/math/IntegerModuloP;
            invokeinterface sun.security.util.math.IntegerModuloP.mutable:()Lsun/security/util/math/MutableIntegerModuloP;
            invokespecial sun.security.ec.point.ProjectivePoint$Mutable.<init>:(Lsun/security/util/math/MutableIntegerModuloP;Lsun/security/util/math/MutableIntegerModuloP;Lsun/security/util/math/MutableIntegerModuloP;)V
            areturn
        end local 0 // sun.security.ec.point.ProjectivePoint this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ec/point/ProjectivePoint<TT;>;

  public T getX();
    descriptor: ()Lsun/security/util/math/IntegerModuloP;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ec.point.ProjectivePoint this
         0: .line 64
            aload 0 /* this */
            getfield sun.security.ec.point.ProjectivePoint.x:Lsun/security/util/math/IntegerModuloP;
            areturn
        end local 0 // sun.security.ec.point.ProjectivePoint this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ec/point/ProjectivePoint<TT;>;
    Signature: ()TT;

  public T getY();
    descriptor: ()Lsun/security/util/math/IntegerModuloP;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ec.point.ProjectivePoint this
         0: .line 68
            aload 0 /* this */
            getfield sun.security.ec.point.ProjectivePoint.y:Lsun/security/util/math/IntegerModuloP;
            areturn
        end local 0 // sun.security.ec.point.ProjectivePoint this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ec/point/ProjectivePoint<TT;>;
    Signature: ()TT;

  public T getZ();
    descriptor: ()Lsun/security/util/math/IntegerModuloP;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ec.point.ProjectivePoint this
         0: .line 72
            aload 0 /* this */
            getfield sun.security.ec.point.ProjectivePoint.z:Lsun/security/util/math/IntegerModuloP;
            areturn
        end local 0 // sun.security.ec.point.ProjectivePoint this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ec/point/ProjectivePoint<TT;>;
    Signature: ()TT;

  public sun.security.ec.point.AffinePoint asAffine();
    descriptor: ()Lsun/security/ec/point/AffinePoint;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // sun.security.ec.point.ProjectivePoint this
         0: .line 76
            aload 0 /* this */
            getfield sun.security.ec.point.ProjectivePoint.z:Lsun/security/util/math/IntegerModuloP;
            invokeinterface sun.security.util.math.IntegerModuloP.multiplicativeInverse:()Lsun/security/util/math/ImmutableIntegerModuloP;
            astore 1 /* zInv */
        start local 1 // sun.security.util.math.IntegerModuloP zInv
         1: .line 77
            new sun.security.ec.point.AffinePoint
            dup
            aload 0 /* this */
            getfield sun.security.ec.point.ProjectivePoint.x:Lsun/security/util/math/IntegerModuloP;
            aload 1 /* zInv */
            invokeinterface sun.security.util.math.IntegerModuloP.multiply:(Lsun/security/util/math/IntegerModuloP;)Lsun/security/util/math/ImmutableIntegerModuloP;
            aload 0 /* this */
            getfield sun.security.ec.point.ProjectivePoint.y:Lsun/security/util/math/IntegerModuloP;
            aload 1 /* zInv */
            invokeinterface sun.security.util.math.IntegerModuloP.multiply:(Lsun/security/util/math/IntegerModuloP;)Lsun/security/util/math/ImmutableIntegerModuloP;
            invokespecial sun.security.ec.point.AffinePoint.<init>:(Lsun/security/util/math/ImmutableIntegerModuloP;Lsun/security/util/math/ImmutableIntegerModuloP;)V
            areturn
        end local 1 // sun.security.util.math.IntegerModuloP zInv
        end local 0 // sun.security.ec.point.ProjectivePoint this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/ec/point/ProjectivePoint<TT;>;
            1    2     1  zInv  Lsun/security/util/math/IntegerModuloP;

  private static <T1 extends sun.security.util.math.IntegerModuloP, T2 extends sun.security.util.math.IntegerModuloP> boolean affineEquals(sun.security.ec.point.ProjectivePoint<T1>, sun.security.ec.point.ProjectivePoint<T2>);
    descriptor: (Lsun/security/ec/point/ProjectivePoint;Lsun/security/ec/point/ProjectivePoint;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // sun.security.ec.point.ProjectivePoint p1
        start local 1 // sun.security.ec.point.ProjectivePoint p2
         0: .line 84
            aload 0 /* p1 */
            invokevirtual sun.security.ec.point.ProjectivePoint.getX:()Lsun/security/util/math/IntegerModuloP;
            invokeinterface sun.security.util.math.IntegerModuloP.mutable:()Lsun/security/util/math/MutableIntegerModuloP;
            aload 1 /* p2 */
            invokevirtual sun.security.ec.point.ProjectivePoint.getZ:()Lsun/security/util/math/IntegerModuloP;
            invokeinterface sun.security.util.math.MutableIntegerModuloP.setProduct:(Lsun/security/util/math/IntegerModuloP;)Lsun/security/util/math/MutableIntegerModuloP;
            astore 2 /* x1 */
        start local 2 // sun.security.util.math.MutableIntegerModuloP x1
         1: .line 85
            aload 1 /* p2 */
            invokevirtual sun.security.ec.point.ProjectivePoint.getX:()Lsun/security/util/math/IntegerModuloP;
            invokeinterface sun.security.util.math.IntegerModuloP.mutable:()Lsun/security/util/math/MutableIntegerModuloP;
            aload 0 /* p1 */
            invokevirtual sun.security.ec.point.ProjectivePoint.getZ:()Lsun/security/util/math/IntegerModuloP;
            invokeinterface sun.security.util.math.MutableIntegerModuloP.setProduct:(Lsun/security/util/math/IntegerModuloP;)Lsun/security/util/math/MutableIntegerModuloP;
            astore 3 /* x2 */
        start local 3 // sun.security.util.math.MutableIntegerModuloP x2
         2: .line 86
            aload 2 /* x1 */
            invokeinterface sun.security.util.math.MutableIntegerModuloP.asBigInteger:()Ljava/math/BigInteger;
            aload 3 /* x2 */
            invokeinterface sun.security.util.math.MutableIntegerModuloP.asBigInteger:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ifne 4
         3: .line 87
            iconst_0
            ireturn
         4: .line 90
      StackMap locals: sun.security.util.math.MutableIntegerModuloP sun.security.util.math.MutableIntegerModuloP
      StackMap stack:
            aload 0 /* p1 */
            invokevirtual sun.security.ec.point.ProjectivePoint.getY:()Lsun/security/util/math/IntegerModuloP;
            invokeinterface sun.security.util.math.IntegerModuloP.mutable:()Lsun/security/util/math/MutableIntegerModuloP;
            aload 1 /* p2 */
            invokevirtual sun.security.ec.point.ProjectivePoint.getZ:()Lsun/security/util/math/IntegerModuloP;
            invokeinterface sun.security.util.math.MutableIntegerModuloP.setProduct:(Lsun/security/util/math/IntegerModuloP;)Lsun/security/util/math/MutableIntegerModuloP;
            astore 4 /* y1 */
        start local 4 // sun.security.util.math.MutableIntegerModuloP y1
         5: .line 91
            aload 1 /* p2 */
            invokevirtual sun.security.ec.point.ProjectivePoint.getY:()Lsun/security/util/math/IntegerModuloP;
            invokeinterface sun.security.util.math.IntegerModuloP.mutable:()Lsun/security/util/math/MutableIntegerModuloP;
            aload 0 /* p1 */
            invokevirtual sun.security.ec.point.ProjectivePoint.getZ:()Lsun/security/util/math/IntegerModuloP;
            invokeinterface sun.security.util.math.MutableIntegerModuloP.setProduct:(Lsun/security/util/math/IntegerModuloP;)Lsun/security/util/math/MutableIntegerModuloP;
            astore 5 /* y2 */
        start local 5 // sun.security.util.math.MutableIntegerModuloP y2
         6: .line 92
            aload 4 /* y1 */
            invokeinterface sun.security.util.math.MutableIntegerModuloP.asBigInteger:()Ljava/math/BigInteger;
            aload 5 /* y2 */
            invokeinterface sun.security.util.math.MutableIntegerModuloP.asBigInteger:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ifne 8
         7: .line 93
            iconst_0
            ireturn
         8: .line 96
      StackMap locals: sun.security.util.math.MutableIntegerModuloP sun.security.util.math.MutableIntegerModuloP
      StackMap stack:
            iconst_1
            ireturn
        end local 5 // sun.security.util.math.MutableIntegerModuloP y2
        end local 4 // sun.security.util.math.MutableIntegerModuloP y1
        end local 3 // sun.security.util.math.MutableIntegerModuloP x2
        end local 2 // sun.security.util.math.MutableIntegerModuloP x1
        end local 1 // sun.security.ec.point.ProjectivePoint p2
        end local 0 // sun.security.ec.point.ProjectivePoint p1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0    p1  Lsun/security/ec/point/ProjectivePoint<TT1;>;
            0    9     1    p2  Lsun/security/ec/point/ProjectivePoint<TT2;>;
            1    9     2    x1  Lsun/security/util/math/MutableIntegerModuloP;
            2    9     3    x2  Lsun/security/util/math/MutableIntegerModuloP;
            5    9     4    y1  Lsun/security/util/math/MutableIntegerModuloP;
            6    9     5    y2  Lsun/security/util/math/MutableIntegerModuloP;
    Signature: <T1::Lsun/security/util/math/IntegerModuloP;T2::Lsun/security/util/math/IntegerModuloP;>(Lsun/security/ec/point/ProjectivePoint<TT1;>;Lsun/security/ec/point/ProjectivePoint<TT2;>;)Z
    MethodParameters:
      Name  Flags
      p1    
      p2    

  public boolean affineEquals(sun.security.ec.point.Point);
    descriptor: (Lsun/security/ec/point/Point;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.security.ec.point.ProjectivePoint this
        start local 1 // sun.security.ec.point.Point p
         0: .line 100
            aload 1 /* p */
            instanceof sun.security.ec.point.ProjectivePoint
            ifeq 4
         1: .line 103
            aload 1 /* p */
            checkcast sun.security.ec.point.ProjectivePoint
         2: .line 102
            astore 2 /* pp */
        start local 2 // sun.security.ec.point.ProjectivePoint pp
         3: .line 104
            aload 0 /* this */
            aload 2 /* pp */
            invokestatic sun.security.ec.point.ProjectivePoint.affineEquals:(Lsun/security/ec/point/ProjectivePoint;Lsun/security/ec/point/ProjectivePoint;)Z
            ireturn
        end local 2 // sun.security.ec.point.ProjectivePoint pp
         4: .line 107
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ec.point.ProjectivePoint.asAffine:()Lsun/security/ec/point/AffinePoint;
            aload 1 /* p */
            invokeinterface sun.security.ec.point.Point.asAffine:()Lsun/security/ec/point/AffinePoint;
            invokevirtual sun.security.ec.point.AffinePoint.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // sun.security.ec.point.Point p
        end local 0 // sun.security.ec.point.ProjectivePoint this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/security/ec/point/ProjectivePoint<TT;>;
            0    5     1     p  Lsun/security/ec/point/Point;
            3    4     2    pp  Lsun/security/ec/point/ProjectivePoint<Lsun/security/util/math/IntegerModuloP;>;
    MethodParameters:
      Name  Flags
      p     

  public sun.security.ec.point.ImmutablePoint fixed();
    descriptor: ()Lsun/security/ec/point/ImmutablePoint;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual sun.security.ec.point.ProjectivePoint.fixed:()Lsun/security/ec/point/ProjectivePoint$Immutable;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public sun.security.ec.point.MutablePoint mutable();
    descriptor: ()Lsun/security/ec/point/MutablePoint;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual sun.security.ec.point.ProjectivePoint.mutable:()Lsun/security/ec/point/ProjectivePoint$Mutable;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: <T::Lsun/security/util/math/IntegerModuloP;>Ljava/lang/Object;Lsun/security/ec/point/Point;
SourceFile: "ProjectivePoint.java"
NestMembers:
  sun.security.ec.point.ProjectivePoint$Immutable  sun.security.ec.point.ProjectivePoint$Mutable
InnerClasses:
  public Immutable = sun.security.ec.point.ProjectivePoint$Immutable of sun.security.ec.point.ProjectivePoint
  public Mutable = sun.security.ec.point.ProjectivePoint$Mutable of sun.security.ec.point.ProjectivePoint