public abstract class org.bouncycastle.math.ec.ECPoint$AbstractFp extends org.bouncycastle.math.ec.ECPoint
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.bouncycastle.math.ec.ECPoint$AbstractFp
  super_class: org.bouncycastle.math.ec.ECPoint
{
  protected void <init>(org.bouncycastle.math.ec.ECCurve, org.bouncycastle.math.ec.ECFieldElement, org.bouncycastle.math.ec.ECFieldElement);
    descriptor: (Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.bouncycastle.math.ec.ECPoint$AbstractFp this
        start local 1 // org.bouncycastle.math.ec.ECCurve curve
        start local 2 // org.bouncycastle.math.ec.ECFieldElement x
        start local 3 // org.bouncycastle.math.ec.ECFieldElement y
         0: .line 544
            aload 0 /* this */
            aload 1 /* curve */
            aload 2 /* x */
            aload 3 /* y */
            invokespecial org.bouncycastle.math.ec.ECPoint.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;)V
         1: .line 545
            return
        end local 3 // org.bouncycastle.math.ec.ECFieldElement y
        end local 2 // org.bouncycastle.math.ec.ECFieldElement x
        end local 1 // org.bouncycastle.math.ec.ECCurve curve
        end local 0 // org.bouncycastle.math.ec.ECPoint$AbstractFp this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bouncycastle/math/ec/ECPoint$AbstractFp;
            0    2     1  curve  Lorg/bouncycastle/math/ec/ECCurve;
            0    2     2      x  Lorg/bouncycastle/math/ec/ECFieldElement;
            0    2     3      y  Lorg/bouncycastle/math/ec/ECFieldElement;
    MethodParameters:
       Name  Flags
      curve  
      x      
      y      

  protected void <init>(org.bouncycastle.math.ec.ECCurve, org.bouncycastle.math.ec.ECFieldElement, org.bouncycastle.math.ec.ECFieldElement, org.bouncycastle.math.ec.ECFieldElement[]);
    descriptor: (Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;[Lorg/bouncycastle/math/ec/ECFieldElement;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.bouncycastle.math.ec.ECPoint$AbstractFp this
        start local 1 // org.bouncycastle.math.ec.ECCurve curve
        start local 2 // org.bouncycastle.math.ec.ECFieldElement x
        start local 3 // org.bouncycastle.math.ec.ECFieldElement y
        start local 4 // org.bouncycastle.math.ec.ECFieldElement[] zs
         0: .line 549
            aload 0 /* this */
            aload 1 /* curve */
            aload 2 /* x */
            aload 3 /* y */
            aload 4 /* zs */
            invokespecial org.bouncycastle.math.ec.ECPoint.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;[Lorg/bouncycastle/math/ec/ECFieldElement;)V
         1: .line 550
            return
        end local 4 // org.bouncycastle.math.ec.ECFieldElement[] zs
        end local 3 // org.bouncycastle.math.ec.ECFieldElement y
        end local 2 // org.bouncycastle.math.ec.ECFieldElement x
        end local 1 // org.bouncycastle.math.ec.ECCurve curve
        end local 0 // org.bouncycastle.math.ec.ECPoint$AbstractFp this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bouncycastle/math/ec/ECPoint$AbstractFp;
            0    2     1  curve  Lorg/bouncycastle/math/ec/ECCurve;
            0    2     2      x  Lorg/bouncycastle/math/ec/ECFieldElement;
            0    2     3      y  Lorg/bouncycastle/math/ec/ECFieldElement;
            0    2     4     zs  [Lorg/bouncycastle/math/ec/ECFieldElement;
    MethodParameters:
       Name  Flags
      curve  
      x      
      y      
      zs     

  protected boolean getCompressionYTilde();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECPoint$AbstractFp this
         0: .line 554
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$AbstractFp.getAffineYCoord:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.testBitZero:()Z
            ireturn
        end local 0 // org.bouncycastle.math.ec.ECPoint$AbstractFp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECPoint$AbstractFp;

  protected boolean satisfiesCurveEquation();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=10, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECPoint$AbstractFp this
         0: .line 559
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$AbstractFp.x:Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 1 /* X */
        start local 1 // org.bouncycastle.math.ec.ECFieldElement X
         1: aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$AbstractFp.y:Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 2 /* Y */
        start local 2 // org.bouncycastle.math.ec.ECFieldElement Y
         2: aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$AbstractFp.curve:Lorg/bouncycastle/math/ec/ECCurve;
            invokevirtual org.bouncycastle.math.ec.ECCurve.getA:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 3 /* A */
        start local 3 // org.bouncycastle.math.ec.ECFieldElement A
         3: aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$AbstractFp.curve:Lorg/bouncycastle/math/ec/ECCurve;
            invokevirtual org.bouncycastle.math.ec.ECCurve.getB:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 4 /* B */
        start local 4 // org.bouncycastle.math.ec.ECFieldElement B
         4: .line 560
            aload 2 /* Y */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 5 /* lhs */
        start local 5 // org.bouncycastle.math.ec.ECFieldElement lhs
         5: .line 562
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$AbstractFp.getCurveCoordinateSystem:()I
            tableswitch { // 0 - 4
                    0: 6
                    1: 7
                    2: 15
                    3: 15
                    4: 15
              default: 23
          }
         6: .line 565
      StackMap locals: org.bouncycastle.math.ec.ECPoint$AbstractFp org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            goto 24
         7: .line 568
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$AbstractFp.zs:[Lorg/bouncycastle/math/ec/ECFieldElement;
            iconst_0
            aaload
            astore 6 /* Z */
        start local 6 // org.bouncycastle.math.ec.ECFieldElement Z
         8: .line 569
            aload 6 /* Z */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isOne:()Z
            ifne 24
         9: .line 571
            aload 6 /* Z */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 7 /* Z2 */
        start local 7 // org.bouncycastle.math.ec.ECFieldElement Z2
        10: aload 6 /* Z */
            aload 7 /* Z2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 8 /* Z3 */
        start local 8 // org.bouncycastle.math.ec.ECFieldElement Z3
        11: .line 572
            aload 5 /* lhs */
            aload 6 /* Z */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 5 /* lhs */
        12: .line 573
            aload 3 /* A */
            aload 7 /* Z2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 3 /* A */
        13: .line 574
            aload 4 /* B */
            aload 8 /* Z3 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 4 /* B */
        end local 8 // org.bouncycastle.math.ec.ECFieldElement Z3
        end local 7 // org.bouncycastle.math.ec.ECFieldElement Z2
        14: .line 576
            goto 24
        end local 6 // org.bouncycastle.math.ec.ECFieldElement Z
        15: .line 582
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$AbstractFp.zs:[Lorg/bouncycastle/math/ec/ECFieldElement;
            iconst_0
            aaload
            astore 6 /* Z */
        start local 6 // org.bouncycastle.math.ec.ECFieldElement Z
        16: .line 583
            aload 6 /* Z */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isOne:()Z
            ifne 24
        17: .line 585
            aload 6 /* Z */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 7 /* Z2 */
        start local 7 // org.bouncycastle.math.ec.ECFieldElement Z2
        18: aload 7 /* Z2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 8 /* Z4 */
        start local 8 // org.bouncycastle.math.ec.ECFieldElement Z4
        19: aload 7 /* Z2 */
            aload 8 /* Z4 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 9 /* Z6 */
        start local 9 // org.bouncycastle.math.ec.ECFieldElement Z6
        20: .line 586
            aload 3 /* A */
            aload 8 /* Z4 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 3 /* A */
        21: .line 587
            aload 4 /* B */
            aload 9 /* Z6 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 4 /* B */
        end local 9 // org.bouncycastle.math.ec.ECFieldElement Z6
        end local 8 // org.bouncycastle.math.ec.ECFieldElement Z4
        end local 7 // org.bouncycastle.math.ec.ECFieldElement Z2
        22: .line 589
            goto 24
        end local 6 // org.bouncycastle.math.ec.ECFieldElement Z
        23: .line 592
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            ldc "unsupported coordinate system"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        24: .line 595
      StackMap locals:
      StackMap stack:
            aload 1 /* X */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 3 /* A */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 1 /* X */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 4 /* B */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 6 /* rhs */
        start local 6 // org.bouncycastle.math.ec.ECFieldElement rhs
        25: .line 596
            aload 5 /* lhs */
            aload 6 /* rhs */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 6 // org.bouncycastle.math.ec.ECFieldElement rhs
        end local 5 // org.bouncycastle.math.ec.ECFieldElement lhs
        end local 4 // org.bouncycastle.math.ec.ECFieldElement B
        end local 3 // org.bouncycastle.math.ec.ECFieldElement A
        end local 2 // org.bouncycastle.math.ec.ECFieldElement Y
        end local 1 // org.bouncycastle.math.ec.ECFieldElement X
        end local 0 // org.bouncycastle.math.ec.ECPoint$AbstractFp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   26     0  this  Lorg/bouncycastle/math/ec/ECPoint$AbstractFp;
            1   26     1     X  Lorg/bouncycastle/math/ec/ECFieldElement;
            2   26     2     Y  Lorg/bouncycastle/math/ec/ECFieldElement;
            3   26     3     A  Lorg/bouncycastle/math/ec/ECFieldElement;
            4   26     4     B  Lorg/bouncycastle/math/ec/ECFieldElement;
            5   26     5   lhs  Lorg/bouncycastle/math/ec/ECFieldElement;
            8   15     6     Z  Lorg/bouncycastle/math/ec/ECFieldElement;
           10   14     7    Z2  Lorg/bouncycastle/math/ec/ECFieldElement;
           11   14     8    Z3  Lorg/bouncycastle/math/ec/ECFieldElement;
           16   23     6     Z  Lorg/bouncycastle/math/ec/ECFieldElement;
           18   22     7    Z2  Lorg/bouncycastle/math/ec/ECFieldElement;
           19   22     8    Z4  Lorg/bouncycastle/math/ec/ECFieldElement;
           20   22     9    Z6  Lorg/bouncycastle/math/ec/ECFieldElement;
           25   26     6   rhs  Lorg/bouncycastle/math/ec/ECFieldElement;

  public org.bouncycastle.math.ec.ECPoint subtract(org.bouncycastle.math.ec.ECPoint);
    descriptor: (Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECPoint$AbstractFp this
        start local 1 // org.bouncycastle.math.ec.ECPoint b
         0: .line 601
            aload 1 /* b */
            invokevirtual org.bouncycastle.math.ec.ECPoint.isInfinity:()Z
            ifeq 2
         1: .line 603
            aload 0 /* this */
            areturn
         2: .line 607
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* b */
            invokevirtual org.bouncycastle.math.ec.ECPoint.negate:()Lorg/bouncycastle/math/ec/ECPoint;
            invokevirtual org.bouncycastle.math.ec.ECPoint$AbstractFp.add:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        end local 1 // org.bouncycastle.math.ec.ECPoint b
        end local 0 // org.bouncycastle.math.ec.ECPoint$AbstractFp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bouncycastle/math/ec/ECPoint$AbstractFp;
            0    3     1     b  Lorg/bouncycastle/math/ec/ECPoint;
    MethodParameters:
      Name  Flags
      b     
}
SourceFile: "ECPoint.java"
NestHost: org.bouncycastle.math.ec.ECPoint
InnerClasses:
  public abstract AbstractFp = org.bouncycastle.math.ec.ECPoint$AbstractFp of org.bouncycastle.math.ec.ECPoint