public class org.bouncycastle.math.ec.ECPoint$Fp extends org.bouncycastle.math.ec.ECPoint$AbstractFp
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.math.ec.ECPoint$Fp
  super_class: org.bouncycastle.math.ec.ECPoint$AbstractFp
{
  public void <init>(org.bouncycastle.math.ec.ECCurve, org.bouncycastle.math.ec.ECFieldElement, org.bouncycastle.math.ec.ECFieldElement, boolean);
    descriptor: (Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // org.bouncycastle.math.ec.ECPoint$Fp 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 // boolean withCompression
         0: .line 628
            aload 0 /* this */
            aload 1 /* curve */
            aload 2 /* x */
            aload 3 /* y */
            invokespecial org.bouncycastle.math.ec.ECPoint$AbstractFp.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;)V
         1: .line 630
            aload 2 /* x */
            ifnonnull 2
            iconst_1
            goto 3
      StackMap locals: org.bouncycastle.math.ec.ECPoint$Fp org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement int
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: aload 3 /* y */
            ifnonnull 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack: int
         4: iconst_0
      StackMap locals: org.bouncycastle.math.ec.ECPoint$Fp org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement int
      StackMap stack: int int
         5: if_icmpeq 7
         6: .line 632
            new java.lang.IllegalArgumentException
            dup
            ldc "Exactly one of the field elements is null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 635
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 4 /* withCompression */
            putfield org.bouncycastle.math.ec.ECPoint$Fp.withCompression:Z
         8: .line 636
            return
        end local 4 // boolean withCompression
        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$Fp this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0             this  Lorg/bouncycastle/math/ec/ECPoint$Fp;
            0    9     1            curve  Lorg/bouncycastle/math/ec/ECCurve;
            0    9     2                x  Lorg/bouncycastle/math/ec/ECFieldElement;
            0    9     3                y  Lorg/bouncycastle/math/ec/ECFieldElement;
            0    9     4  withCompression  Z
    MethodParameters:
                 Name  Flags
      curve            
      x                
      y                
      withCompression  

  void <init>(org.bouncycastle.math.ec.ECCurve, org.bouncycastle.math.ec.ECFieldElement, org.bouncycastle.math.ec.ECFieldElement, org.bouncycastle.math.ec.ECFieldElement[], boolean);
    descriptor: (Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;[Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
    flags: (0x0000) 
    Code:
      stack=5, locals=6, args_size=6
        start local 0 // org.bouncycastle.math.ec.ECPoint$Fp 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
        start local 5 // boolean withCompression
         0: .line 640
            aload 0 /* this */
            aload 1 /* curve */
            aload 2 /* x */
            aload 3 /* y */
            aload 4 /* zs */
            invokespecial org.bouncycastle.math.ec.ECPoint$AbstractFp.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;[Lorg/bouncycastle/math/ec/ECFieldElement;)V
         1: .line 642
            aload 0 /* this */
            iload 5 /* withCompression */
            putfield org.bouncycastle.math.ec.ECPoint$Fp.withCompression:Z
         2: .line 643
            return
        end local 5 // boolean withCompression
        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$Fp this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lorg/bouncycastle/math/ec/ECPoint$Fp;
            0    3     1            curve  Lorg/bouncycastle/math/ec/ECCurve;
            0    3     2                x  Lorg/bouncycastle/math/ec/ECFieldElement;
            0    3     3                y  Lorg/bouncycastle/math/ec/ECFieldElement;
            0    3     4               zs  [Lorg/bouncycastle/math/ec/ECFieldElement;
            0    3     5  withCompression  Z
    MethodParameters:
                 Name  Flags
      curve            
      x                
      y                
      zs               
      withCompression  

  protected org.bouncycastle.math.ec.ECPoint detach();
    descriptor: ()Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
         0: .line 647
            new org.bouncycastle.math.ec.ECPoint$Fp
            dup
            aconst_null
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.getAffineXCoord:()Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.getAffineYCoord:()Lorg/bouncycastle/math/ec/ECFieldElement;
            iconst_0
            invokespecial org.bouncycastle.math.ec.ECPoint$Fp.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
            areturn
        end local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECPoint$Fp;

  public org.bouncycastle.math.ec.ECFieldElement getZCoord(int);
    descriptor: (I)Lorg/bouncycastle/math/ec/ECFieldElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
        start local 1 // int index
         0: .line 652
            iload 1 /* index */
            iconst_1
            if_icmpne 2
            iconst_4
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.getCurveCoordinateSystem:()I
            if_icmpne 2
         1: .line 654
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.getJacobianModifiedW:()Lorg/bouncycastle/math/ec/ECFieldElement;
            areturn
         2: .line 657
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* index */
            invokespecial org.bouncycastle.math.ec.ECPoint$AbstractFp.getZCoord:(I)Lorg/bouncycastle/math/ec/ECFieldElement;
            areturn
        end local 1 // int index
        end local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/bouncycastle/math/ec/ECPoint$Fp;
            0    3     1  index  I
    MethodParameters:
       Name  Flags
      index  

  public org.bouncycastle.math.ec.ECPoint add(org.bouncycastle.math.ec.ECPoint);
    descriptor: (Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=27, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
        start local 1 // org.bouncycastle.math.ec.ECPoint b
         0: .line 663
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.isInfinity:()Z
            ifeq 2
         1: .line 665
            aload 1 /* b */
            areturn
         2: .line 667
      StackMap locals:
      StackMap stack:
            aload 1 /* b */
            invokevirtual org.bouncycastle.math.ec.ECPoint.isInfinity:()Z
            ifeq 4
         3: .line 669
            aload 0 /* this */
            areturn
         4: .line 671
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* b */
            if_acmpne 6
         5: .line 673
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.twice:()Lorg/bouncycastle/math/ec/ECPoint;
            areturn
         6: .line 676
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            astore 2 /* curve */
        start local 2 // org.bouncycastle.math.ec.ECCurve curve
         7: .line 677
            aload 2 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getCoordinateSystem:()I
            istore 3 /* coord */
        start local 3 // int coord
         8: .line 679
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.x:Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 4 /* X1 */
        start local 4 // org.bouncycastle.math.ec.ECFieldElement X1
         9: aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.y:Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 5 /* Y1 */
        start local 5 // org.bouncycastle.math.ec.ECFieldElement Y1
        10: .line 680
            aload 1 /* b */
            getfield org.bouncycastle.math.ec.ECPoint.x:Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 6 /* X2 */
        start local 6 // org.bouncycastle.math.ec.ECFieldElement X2
        11: aload 1 /* b */
            getfield org.bouncycastle.math.ec.ECPoint.y:Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 7 /* Y2 */
        start local 7 // org.bouncycastle.math.ec.ECFieldElement Y2
        12: .line 682
            iload 3 /* coord */
            tableswitch { // 0 - 4
                    0: 13
                    1: 23
                    2: 57
                    3: 120
                    4: 57
              default: 120
          }
        13: .line 686
      StackMap locals: org.bouncycastle.math.ec.ECPoint$Fp org.bouncycastle.math.ec.ECPoint org.bouncycastle.math.ec.ECCurve int org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            aload 6 /* X2 */
            aload 4 /* X1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 8 /* dx */
        start local 8 // org.bouncycastle.math.ec.ECFieldElement dx
        14: aload 7 /* Y2 */
            aload 5 /* Y1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 9 /* dy */
        start local 9 // org.bouncycastle.math.ec.ECFieldElement dy
        15: .line 688
            aload 8 /* dx */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
            ifeq 19
        16: .line 690
            aload 9 /* dy */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
            ifeq 18
        17: .line 693
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.twice:()Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        18: .line 697
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            aload 2 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getInfinity:()Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        19: .line 700
      StackMap locals:
      StackMap stack:
            aload 9 /* dy */
            aload 8 /* dx */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.divide:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 10 /* gamma */
        start local 10 // org.bouncycastle.math.ec.ECFieldElement gamma
        20: .line 701
            aload 10 /* gamma */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 4 /* X1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 6 /* X2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 11 /* X3 */
        start local 11 // org.bouncycastle.math.ec.ECFieldElement X3
        21: .line 702
            aload 10 /* gamma */
            aload 4 /* X1 */
            aload 11 /* X3 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 5 /* Y1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 12 /* Y3 */
        start local 12 // org.bouncycastle.math.ec.ECFieldElement Y3
        22: .line 704
            new org.bouncycastle.math.ec.ECPoint$Fp
            dup
            aload 2 /* curve */
            aload 11 /* X3 */
            aload 12 /* Y3 */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.withCompression:Z
            invokespecial org.bouncycastle.math.ec.ECPoint$Fp.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
            areturn
        end local 12 // org.bouncycastle.math.ec.ECFieldElement Y3
        end local 11 // org.bouncycastle.math.ec.ECFieldElement X3
        end local 10 // org.bouncycastle.math.ec.ECFieldElement gamma
        end local 9 // org.bouncycastle.math.ec.ECFieldElement dy
        end local 8 // org.bouncycastle.math.ec.ECFieldElement dx
        23: .line 709
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.zs:[Lorg/bouncycastle/math/ec/ECFieldElement;
            iconst_0
            aaload
            astore 8 /* Z1 */
        start local 8 // org.bouncycastle.math.ec.ECFieldElement Z1
        24: .line 710
            aload 1 /* b */
            getfield org.bouncycastle.math.ec.ECPoint.zs:[Lorg/bouncycastle/math/ec/ECFieldElement;
            iconst_0
            aaload
            astore 9 /* Z2 */
        start local 9 // org.bouncycastle.math.ec.ECFieldElement Z2
        25: .line 712
            aload 8 /* Z1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isOne:()Z
            istore 10 /* Z1IsOne */
        start local 10 // boolean Z1IsOne
        26: .line 713
            aload 9 /* Z2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isOne:()Z
            istore 11 /* Z2IsOne */
        start local 11 // boolean Z2IsOne
        27: .line 715
            iload 10 /* Z1IsOne */
            ifeq 28
            aload 7 /* Y2 */
            goto 29
      StackMap locals: org.bouncycastle.math.ec.ECPoint$Fp org.bouncycastle.math.ec.ECPoint org.bouncycastle.math.ec.ECCurve int 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 org.bouncycastle.math.ec.ECFieldElement int int
      StackMap stack:
        28: aload 7 /* Y2 */
            aload 8 /* Z1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
      StackMap locals:
      StackMap stack: org.bouncycastle.math.ec.ECFieldElement
        29: astore 12 /* u1 */
        start local 12 // org.bouncycastle.math.ec.ECFieldElement u1
        30: .line 716
            iload 11 /* Z2IsOne */
            ifeq 31
            aload 5 /* Y1 */
            goto 32
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
        31: aload 5 /* Y1 */
            aload 9 /* Z2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
      StackMap locals:
      StackMap stack: org.bouncycastle.math.ec.ECFieldElement
        32: astore 13 /* u2 */
        start local 13 // org.bouncycastle.math.ec.ECFieldElement u2
        33: .line 717
            aload 12 /* u1 */
            aload 13 /* u2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 14 /* u */
        start local 14 // org.bouncycastle.math.ec.ECFieldElement u
        34: .line 718
            iload 10 /* Z1IsOne */
            ifeq 35
            aload 6 /* X2 */
            goto 36
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
        35: aload 6 /* X2 */
            aload 8 /* Z1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
      StackMap locals:
      StackMap stack: org.bouncycastle.math.ec.ECFieldElement
        36: astore 15 /* v1 */
        start local 15 // org.bouncycastle.math.ec.ECFieldElement v1
        37: .line 719
            iload 11 /* Z2IsOne */
            ifeq 38
            aload 4 /* X1 */
            goto 39
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
        38: aload 4 /* X1 */
            aload 9 /* Z2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
      StackMap locals:
      StackMap stack: org.bouncycastle.math.ec.ECFieldElement
        39: astore 16 /* v2 */
        start local 16 // org.bouncycastle.math.ec.ECFieldElement v2
        40: .line 720
            aload 15 /* v1 */
            aload 16 /* v2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 17 /* v */
        start local 17 // org.bouncycastle.math.ec.ECFieldElement v
        41: .line 723
            aload 17 /* v */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
            ifeq 45
        42: .line 725
            aload 14 /* u */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
            ifeq 44
        43: .line 728
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.twice:()Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        44: .line 732
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            aload 2 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getInfinity:()Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        45: .line 736
      StackMap locals:
      StackMap stack:
            iload 10 /* Z1IsOne */
            ifeq 46
            aload 9 /* Z2 */
            goto 48
      StackMap locals:
      StackMap stack:
        46: iload 11 /* Z2IsOne */
            ifeq 47
            aload 8 /* Z1 */
            goto 48
      StackMap locals:
      StackMap stack:
        47: aload 8 /* Z1 */
            aload 9 /* Z2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
      StackMap locals:
      StackMap stack: org.bouncycastle.math.ec.ECFieldElement
        48: astore 18 /* w */
        start local 18 // org.bouncycastle.math.ec.ECFieldElement w
        49: .line 737
            aload 17 /* v */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 19 /* vSquared */
        start local 19 // org.bouncycastle.math.ec.ECFieldElement vSquared
        50: .line 738
            aload 19 /* vSquared */
            aload 17 /* v */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 20 /* vCubed */
        start local 20 // org.bouncycastle.math.ec.ECFieldElement vCubed
        51: .line 739
            aload 19 /* vSquared */
            aload 16 /* v2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 21 /* vSquaredV2 */
        start local 21 // org.bouncycastle.math.ec.ECFieldElement vSquaredV2
        52: .line 740
            aload 14 /* u */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 18 /* w */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 20 /* vCubed */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            aload 21 /* vSquaredV2 */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 22 /* A */
        start local 22 // org.bouncycastle.math.ec.ECFieldElement A
        53: .line 742
            aload 17 /* v */
            aload 22 /* A */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 23 /* X3 */
        start local 23 // org.bouncycastle.math.ec.ECFieldElement X3
        54: .line 743
            aload 21 /* vSquaredV2 */
            aload 22 /* A */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 14 /* u */
            aload 13 /* u2 */
            aload 20 /* vCubed */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiplyMinusProduct:(Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 24 /* Y3 */
        start local 24 // org.bouncycastle.math.ec.ECFieldElement Y3
        55: .line 744
            aload 20 /* vCubed */
            aload 18 /* w */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 25 /* Z3 */
        start local 25 // org.bouncycastle.math.ec.ECFieldElement Z3
        56: .line 746
            new org.bouncycastle.math.ec.ECPoint$Fp
            dup
            aload 2 /* curve */
            aload 23 /* X3 */
            aload 24 /* Y3 */
            iconst_1
            anewarray org.bouncycastle.math.ec.ECFieldElement
            dup
            iconst_0
            aload 25 /* Z3 */
            aastore
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.withCompression:Z
            invokespecial org.bouncycastle.math.ec.ECPoint$Fp.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;[Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
            areturn
        end local 25 // org.bouncycastle.math.ec.ECFieldElement Z3
        end local 24 // org.bouncycastle.math.ec.ECFieldElement Y3
        end local 23 // org.bouncycastle.math.ec.ECFieldElement X3
        end local 22 // org.bouncycastle.math.ec.ECFieldElement A
        end local 21 // org.bouncycastle.math.ec.ECFieldElement vSquaredV2
        end local 20 // org.bouncycastle.math.ec.ECFieldElement vCubed
        end local 19 // org.bouncycastle.math.ec.ECFieldElement vSquared
        end local 18 // org.bouncycastle.math.ec.ECFieldElement w
        end local 17 // org.bouncycastle.math.ec.ECFieldElement v
        end local 16 // org.bouncycastle.math.ec.ECFieldElement v2
        end local 15 // org.bouncycastle.math.ec.ECFieldElement v1
        end local 14 // org.bouncycastle.math.ec.ECFieldElement u
        end local 13 // org.bouncycastle.math.ec.ECFieldElement u2
        end local 12 // org.bouncycastle.math.ec.ECFieldElement u1
        end local 11 // boolean Z2IsOne
        end local 10 // boolean Z1IsOne
        end local 9 // org.bouncycastle.math.ec.ECFieldElement Z2
        end local 8 // org.bouncycastle.math.ec.ECFieldElement Z1
        57: .line 752
      StackMap locals: org.bouncycastle.math.ec.ECPoint$Fp org.bouncycastle.math.ec.ECPoint org.bouncycastle.math.ec.ECCurve int org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.zs:[Lorg/bouncycastle/math/ec/ECFieldElement;
            iconst_0
            aaload
            astore 8 /* Z1 */
        start local 8 // org.bouncycastle.math.ec.ECFieldElement Z1
        58: .line 753
            aload 1 /* b */
            getfield org.bouncycastle.math.ec.ECPoint.zs:[Lorg/bouncycastle/math/ec/ECFieldElement;
            iconst_0
            aaload
            astore 9 /* Z2 */
        start local 9 // org.bouncycastle.math.ec.ECFieldElement Z2
        59: .line 755
            aload 8 /* Z1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isOne:()Z
            istore 10 /* Z1IsOne */
        start local 10 // boolean Z1IsOne
        60: .line 757
            aconst_null
            astore 14 /* Z3Squared */
        start local 14 // org.bouncycastle.math.ec.ECFieldElement Z3Squared
        61: .line 759
            iload 10 /* Z1IsOne */
            ifne 77
            aload 8 /* Z1 */
            aload 9 /* Z2 */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 77
        62: .line 763
            aload 4 /* X1 */
            aload 6 /* X2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 15 /* dx */
        start local 15 // org.bouncycastle.math.ec.ECFieldElement dx
        63: aload 5 /* Y1 */
            aload 7 /* Y2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 16 /* dy */
        start local 16 // org.bouncycastle.math.ec.ECFieldElement dy
        64: .line 764
            aload 15 /* dx */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
            ifeq 68
        65: .line 766
            aload 16 /* dy */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
            ifeq 67
        66: .line 768
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.twice:()Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        67: .line 770
      StackMap locals: org.bouncycastle.math.ec.ECPoint$Fp org.bouncycastle.math.ec.ECPoint org.bouncycastle.math.ec.ECCurve int 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 org.bouncycastle.math.ec.ECFieldElement int top top top org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            aload 2 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getInfinity:()Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        68: .line 773
      StackMap locals:
      StackMap stack:
            aload 15 /* dx */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 17 /* C */
        start local 17 // org.bouncycastle.math.ec.ECFieldElement C
        69: .line 774
            aload 4 /* X1 */
            aload 17 /* C */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 18 /* W1 */
        start local 18 // org.bouncycastle.math.ec.ECFieldElement W1
        70: aload 6 /* X2 */
            aload 17 /* C */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 19 /* W2 */
        start local 19 // org.bouncycastle.math.ec.ECFieldElement W2
        71: .line 775
            aload 18 /* W1 */
            aload 19 /* W2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 5 /* Y1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 20 /* A1 */
        start local 20 // org.bouncycastle.math.ec.ECFieldElement A1
        72: .line 777
            aload 16 /* dy */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 18 /* W1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 19 /* W2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 11 /* X3 */
        start local 11 // org.bouncycastle.math.ec.ECFieldElement X3
        73: .line 778
            aload 18 /* W1 */
            aload 11 /* X3 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 16 /* dy */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 20 /* A1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 12 /* Y3 */
        start local 12 // org.bouncycastle.math.ec.ECFieldElement Y3
        74: .line 779
            aload 15 /* dx */
            astore 13 /* Z3 */
        start local 13 // org.bouncycastle.math.ec.ECFieldElement Z3
        75: .line 781
            aload 13 /* Z3 */
            aload 8 /* Z1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 13 /* Z3 */
        end local 20 // org.bouncycastle.math.ec.ECFieldElement A1
        end local 19 // org.bouncycastle.math.ec.ECFieldElement W2
        end local 18 // org.bouncycastle.math.ec.ECFieldElement W1
        end local 17 // org.bouncycastle.math.ec.ECFieldElement C
        end local 16 // org.bouncycastle.math.ec.ECFieldElement dy
        end local 15 // org.bouncycastle.math.ec.ECFieldElement dx
        76: .line 782
            goto 114
        end local 13 // org.bouncycastle.math.ec.ECFieldElement Z3
        end local 12 // org.bouncycastle.math.ec.ECFieldElement Y3
        end local 11 // org.bouncycastle.math.ec.ECFieldElement X3
        77: .line 786
      StackMap locals:
      StackMap stack:
            iload 10 /* Z1IsOne */
            ifeq 82
        78: .line 788
            aload 8 /* Z1 */
            astore 15 /* Z1Squared */
        start local 15 // org.bouncycastle.math.ec.ECFieldElement Z1Squared
        79: aload 6 /* X2 */
            astore 16 /* U2 */
        start local 16 // org.bouncycastle.math.ec.ECFieldElement U2
        80: aload 7 /* Y2 */
            astore 17 /* S2 */
        start local 17 // org.bouncycastle.math.ec.ECFieldElement S2
        81: .line 789
            goto 86
        end local 17 // org.bouncycastle.math.ec.ECFieldElement S2
        end local 16 // org.bouncycastle.math.ec.ECFieldElement U2
        end local 15 // org.bouncycastle.math.ec.ECFieldElement Z1Squared
        82: .line 792
      StackMap locals:
      StackMap stack:
            aload 8 /* Z1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 15 /* Z1Squared */
        start local 15 // org.bouncycastle.math.ec.ECFieldElement Z1Squared
        83: .line 793
            aload 15 /* Z1Squared */
            aload 6 /* X2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 16 /* U2 */
        start local 16 // org.bouncycastle.math.ec.ECFieldElement U2
        84: .line 794
            aload 15 /* Z1Squared */
            aload 8 /* Z1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 18 /* Z1Cubed */
        start local 18 // org.bouncycastle.math.ec.ECFieldElement Z1Cubed
        85: .line 795
            aload 18 /* Z1Cubed */
            aload 7 /* Y2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 17 /* S2 */
        end local 18 // org.bouncycastle.math.ec.ECFieldElement Z1Cubed
        start local 17 // org.bouncycastle.math.ec.ECFieldElement S2
        86: .line 798
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            aload 9 /* Z2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isOne:()Z
            istore 18 /* Z2IsOne */
        start local 18 // boolean Z2IsOne
        87: .line 800
            iload 18 /* Z2IsOne */
            ifeq 92
        88: .line 802
            aload 9 /* Z2 */
            astore 19 /* Z2Squared */
        start local 19 // org.bouncycastle.math.ec.ECFieldElement Z2Squared
        89: aload 4 /* X1 */
            astore 20 /* U1 */
        start local 20 // org.bouncycastle.math.ec.ECFieldElement U1
        90: aload 5 /* Y1 */
            astore 21 /* S1 */
        start local 21 // org.bouncycastle.math.ec.ECFieldElement S1
        91: .line 803
            goto 96
        end local 21 // org.bouncycastle.math.ec.ECFieldElement S1
        end local 20 // org.bouncycastle.math.ec.ECFieldElement U1
        end local 19 // org.bouncycastle.math.ec.ECFieldElement Z2Squared
        92: .line 806
      StackMap locals: int
      StackMap stack:
            aload 9 /* Z2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 19 /* Z2Squared */
        start local 19 // org.bouncycastle.math.ec.ECFieldElement Z2Squared
        93: .line 807
            aload 19 /* Z2Squared */
            aload 4 /* X1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 20 /* U1 */
        start local 20 // org.bouncycastle.math.ec.ECFieldElement U1
        94: .line 808
            aload 19 /* Z2Squared */
            aload 9 /* Z2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 22 /* Z2Cubed */
        start local 22 // org.bouncycastle.math.ec.ECFieldElement Z2Cubed
        95: .line 809
            aload 22 /* Z2Cubed */
            aload 5 /* Y1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 21 /* S1 */
        end local 22 // org.bouncycastle.math.ec.ECFieldElement Z2Cubed
        start local 21 // org.bouncycastle.math.ec.ECFieldElement S1
        96: .line 812
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            aload 20 /* U1 */
            aload 16 /* U2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 22 /* H */
        start local 22 // org.bouncycastle.math.ec.ECFieldElement H
        97: .line 813
            aload 21 /* S1 */
            aload 17 /* S2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 23 /* R */
        start local 23 // org.bouncycastle.math.ec.ECFieldElement R
        98: .line 816
            aload 22 /* H */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
            ifeq 102
        99: .line 818
            aload 23 /* R */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
            ifeq 101
       100: .line 821
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.twice:()Lorg/bouncycastle/math/ec/ECPoint;
            areturn
       101: .line 825
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            aload 2 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getInfinity:()Lorg/bouncycastle/math/ec/ECPoint;
            areturn
       102: .line 828
      StackMap locals:
      StackMap stack:
            aload 22 /* H */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 24 /* HSquared */
        start local 24 // org.bouncycastle.math.ec.ECFieldElement HSquared
       103: .line 829
            aload 24 /* HSquared */
            aload 22 /* H */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 25 /* G */
        start local 25 // org.bouncycastle.math.ec.ECFieldElement G
       104: .line 830
            aload 24 /* HSquared */
            aload 20 /* U1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 26 /* V */
        start local 26 // org.bouncycastle.math.ec.ECFieldElement V
       105: .line 832
            aload 23 /* R */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 25 /* G */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            aload 26 /* V */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 11 /* X3 */
        start local 11 // org.bouncycastle.math.ec.ECFieldElement X3
       106: .line 833
            aload 26 /* V */
            aload 11 /* X3 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 23 /* R */
            aload 25 /* G */
            aload 21 /* S1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiplyMinusProduct:(Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 12 /* Y3 */
        start local 12 // org.bouncycastle.math.ec.ECFieldElement Y3
       107: .line 835
            aload 22 /* H */
            astore 13 /* Z3 */
        start local 13 // org.bouncycastle.math.ec.ECFieldElement Z3
       108: .line 836
            iload 10 /* Z1IsOne */
            ifne 110
       109: .line 838
            aload 13 /* Z3 */
            aload 8 /* Z1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 13 /* Z3 */
       110: .line 840
      StackMap locals: org.bouncycastle.math.ec.ECPoint$Fp org.bouncycastle.math.ec.ECPoint org.bouncycastle.math.ec.ECCurve int 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 org.bouncycastle.math.ec.ECFieldElement int 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 org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement int 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 org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            iload 18 /* Z2IsOne */
            ifne 112
       111: .line 842
            aload 13 /* Z3 */
            aload 9 /* Z2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 13 /* Z3 */
       112: .line 850
      StackMap locals:
      StackMap stack:
            aload 13 /* Z3 */
            aload 22 /* H */
            if_acmpne 114
       113: .line 852
            aload 24 /* HSquared */
            astore 14 /* Z3Squared */
        end local 26 // org.bouncycastle.math.ec.ECFieldElement V
        end local 25 // org.bouncycastle.math.ec.ECFieldElement G
        end local 24 // org.bouncycastle.math.ec.ECFieldElement HSquared
        end local 23 // org.bouncycastle.math.ec.ECFieldElement R
        end local 22 // org.bouncycastle.math.ec.ECFieldElement H
        end local 21 // org.bouncycastle.math.ec.ECFieldElement S1
        end local 20 // org.bouncycastle.math.ec.ECFieldElement U1
        end local 19 // org.bouncycastle.math.ec.ECFieldElement Z2Squared
        end local 18 // boolean Z2IsOne
        end local 17 // org.bouncycastle.math.ec.ECFieldElement S2
        end local 16 // org.bouncycastle.math.ec.ECFieldElement U2
        end local 15 // org.bouncycastle.math.ec.ECFieldElement Z1Squared
       114: .line 857
      StackMap locals: org.bouncycastle.math.ec.ECPoint$Fp org.bouncycastle.math.ec.ECPoint org.bouncycastle.math.ec.ECCurve int 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 org.bouncycastle.math.ec.ECFieldElement int org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            iload 3 /* coord */
            iconst_4
            if_icmpne 118
       115: .line 860
            aload 0 /* this */
            aload 13 /* Z3 */
            aload 14 /* Z3Squared */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.calculateJacobianModifiedW:(Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 16 /* W3 */
        start local 16 // org.bouncycastle.math.ec.ECFieldElement W3
       116: .line 862
            iconst_2
            anewarray org.bouncycastle.math.ec.ECFieldElement
            dup
            iconst_0
            aload 13 /* Z3 */
            aastore
            dup
            iconst_1
            aload 16 /* W3 */
            aastore
            astore 15 /* zs */
        end local 16 // org.bouncycastle.math.ec.ECFieldElement W3
        start local 15 // org.bouncycastle.math.ec.ECFieldElement[] zs
       117: .line 863
            goto 119
        end local 15 // org.bouncycastle.math.ec.ECFieldElement[] zs
       118: .line 866
      StackMap locals:
      StackMap stack:
            iconst_1
            anewarray org.bouncycastle.math.ec.ECFieldElement
            dup
            iconst_0
            aload 13 /* Z3 */
            aastore
            astore 15 /* zs */
        start local 15 // org.bouncycastle.math.ec.ECFieldElement[] zs
       119: .line 869
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement[]
      StackMap stack:
            new org.bouncycastle.math.ec.ECPoint$Fp
            dup
            aload 2 /* curve */
            aload 11 /* X3 */
            aload 12 /* Y3 */
            aload 15 /* zs */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.withCompression:Z
            invokespecial org.bouncycastle.math.ec.ECPoint$Fp.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;[Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
            areturn
        end local 15 // org.bouncycastle.math.ec.ECFieldElement[] zs
        end local 14 // org.bouncycastle.math.ec.ECFieldElement Z3Squared
        end local 13 // org.bouncycastle.math.ec.ECFieldElement Z3
        end local 12 // org.bouncycastle.math.ec.ECFieldElement Y3
        end local 11 // org.bouncycastle.math.ec.ECFieldElement X3
        end local 10 // boolean Z1IsOne
        end local 9 // org.bouncycastle.math.ec.ECFieldElement Z2
        end local 8 // org.bouncycastle.math.ec.ECFieldElement Z1
       120: .line 874
      StackMap locals: org.bouncycastle.math.ec.ECPoint$Fp org.bouncycastle.math.ec.ECPoint org.bouncycastle.math.ec.ECCurve int org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            ldc "unsupported coordinate system"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // org.bouncycastle.math.ec.ECFieldElement Y2
        end local 6 // org.bouncycastle.math.ec.ECFieldElement X2
        end local 5 // org.bouncycastle.math.ec.ECFieldElement Y1
        end local 4 // org.bouncycastle.math.ec.ECFieldElement X1
        end local 3 // int coord
        end local 2 // org.bouncycastle.math.ec.ECCurve curve
        end local 1 // org.bouncycastle.math.ec.ECPoint b
        end local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0  121     0        this  Lorg/bouncycastle/math/ec/ECPoint$Fp;
            0  121     1           b  Lorg/bouncycastle/math/ec/ECPoint;
            7  121     2       curve  Lorg/bouncycastle/math/ec/ECCurve;
            8  121     3       coord  I
            9  121     4          X1  Lorg/bouncycastle/math/ec/ECFieldElement;
           10  121     5          Y1  Lorg/bouncycastle/math/ec/ECFieldElement;
           11  121     6          X2  Lorg/bouncycastle/math/ec/ECFieldElement;
           12  121     7          Y2  Lorg/bouncycastle/math/ec/ECFieldElement;
           14   23     8          dx  Lorg/bouncycastle/math/ec/ECFieldElement;
           15   23     9          dy  Lorg/bouncycastle/math/ec/ECFieldElement;
           20   23    10       gamma  Lorg/bouncycastle/math/ec/ECFieldElement;
           21   23    11          X3  Lorg/bouncycastle/math/ec/ECFieldElement;
           22   23    12          Y3  Lorg/bouncycastle/math/ec/ECFieldElement;
           24   57     8          Z1  Lorg/bouncycastle/math/ec/ECFieldElement;
           25   57     9          Z2  Lorg/bouncycastle/math/ec/ECFieldElement;
           26   57    10     Z1IsOne  Z
           27   57    11     Z2IsOne  Z
           30   57    12          u1  Lorg/bouncycastle/math/ec/ECFieldElement;
           33   57    13          u2  Lorg/bouncycastle/math/ec/ECFieldElement;
           34   57    14           u  Lorg/bouncycastle/math/ec/ECFieldElement;
           37   57    15          v1  Lorg/bouncycastle/math/ec/ECFieldElement;
           40   57    16          v2  Lorg/bouncycastle/math/ec/ECFieldElement;
           41   57    17           v  Lorg/bouncycastle/math/ec/ECFieldElement;
           49   57    18           w  Lorg/bouncycastle/math/ec/ECFieldElement;
           50   57    19    vSquared  Lorg/bouncycastle/math/ec/ECFieldElement;
           51   57    20      vCubed  Lorg/bouncycastle/math/ec/ECFieldElement;
           52   57    21  vSquaredV2  Lorg/bouncycastle/math/ec/ECFieldElement;
           53   57    22           A  Lorg/bouncycastle/math/ec/ECFieldElement;
           54   57    23          X3  Lorg/bouncycastle/math/ec/ECFieldElement;
           55   57    24          Y3  Lorg/bouncycastle/math/ec/ECFieldElement;
           56   57    25          Z3  Lorg/bouncycastle/math/ec/ECFieldElement;
           58  120     8          Z1  Lorg/bouncycastle/math/ec/ECFieldElement;
           59  120     9          Z2  Lorg/bouncycastle/math/ec/ECFieldElement;
           60  120    10     Z1IsOne  Z
           73   77    11          X3  Lorg/bouncycastle/math/ec/ECFieldElement;
          106  120    11          X3  Lorg/bouncycastle/math/ec/ECFieldElement;
           74   77    12          Y3  Lorg/bouncycastle/math/ec/ECFieldElement;
          107  120    12          Y3  Lorg/bouncycastle/math/ec/ECFieldElement;
           75   77    13          Z3  Lorg/bouncycastle/math/ec/ECFieldElement;
          108  120    13          Z3  Lorg/bouncycastle/math/ec/ECFieldElement;
           61  120    14   Z3Squared  Lorg/bouncycastle/math/ec/ECFieldElement;
           63   76    15          dx  Lorg/bouncycastle/math/ec/ECFieldElement;
           64   76    16          dy  Lorg/bouncycastle/math/ec/ECFieldElement;
           69   76    17           C  Lorg/bouncycastle/math/ec/ECFieldElement;
           70   76    18          W1  Lorg/bouncycastle/math/ec/ECFieldElement;
           71   76    19          W2  Lorg/bouncycastle/math/ec/ECFieldElement;
           72   76    20          A1  Lorg/bouncycastle/math/ec/ECFieldElement;
           79   82    15   Z1Squared  Lorg/bouncycastle/math/ec/ECFieldElement;
           83  114    15   Z1Squared  Lorg/bouncycastle/math/ec/ECFieldElement;
           80   82    16          U2  Lorg/bouncycastle/math/ec/ECFieldElement;
           84  114    16          U2  Lorg/bouncycastle/math/ec/ECFieldElement;
           81   82    17          S2  Lorg/bouncycastle/math/ec/ECFieldElement;
           86  114    17          S2  Lorg/bouncycastle/math/ec/ECFieldElement;
           85   86    18     Z1Cubed  Lorg/bouncycastle/math/ec/ECFieldElement;
           87  114    18     Z2IsOne  Z
           89   92    19   Z2Squared  Lorg/bouncycastle/math/ec/ECFieldElement;
           93  114    19   Z2Squared  Lorg/bouncycastle/math/ec/ECFieldElement;
           90   92    20          U1  Lorg/bouncycastle/math/ec/ECFieldElement;
           94  114    20          U1  Lorg/bouncycastle/math/ec/ECFieldElement;
           91   92    21          S1  Lorg/bouncycastle/math/ec/ECFieldElement;
           96  114    21          S1  Lorg/bouncycastle/math/ec/ECFieldElement;
           95   96    22     Z2Cubed  Lorg/bouncycastle/math/ec/ECFieldElement;
           97  114    22           H  Lorg/bouncycastle/math/ec/ECFieldElement;
           98  114    23           R  Lorg/bouncycastle/math/ec/ECFieldElement;
          103  114    24    HSquared  Lorg/bouncycastle/math/ec/ECFieldElement;
          104  114    25           G  Lorg/bouncycastle/math/ec/ECFieldElement;
          105  114    26           V  Lorg/bouncycastle/math/ec/ECFieldElement;
          117  118    15          zs  [Lorg/bouncycastle/math/ec/ECFieldElement;
          119  120    15          zs  [Lorg/bouncycastle/math/ec/ECFieldElement;
          116  117    16          W3  Lorg/bouncycastle/math/ec/ECFieldElement;
    MethodParameters:
      Name  Flags
      b     

  public org.bouncycastle.math.ec.ECPoint twice();
    descriptor: ()Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=19, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
         0: .line 882
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.isInfinity:()Z
            ifeq 2
         1: .line 884
            aload 0 /* this */
            areturn
         2: .line 887
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            astore 1 /* curve */
        start local 1 // org.bouncycastle.math.ec.ECCurve curve
         3: .line 889
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.y:Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 2 /* Y1 */
        start local 2 // org.bouncycastle.math.ec.ECFieldElement Y1
         4: .line 890
            aload 2 /* Y1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
            ifeq 6
         5: .line 892
            aload 1 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getInfinity:()Lorg/bouncycastle/math/ec/ECPoint;
            areturn
         6: .line 895
      StackMap locals: org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            aload 1 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getCoordinateSystem:()I
            istore 3 /* coord */
        start local 3 // int coord
         7: .line 897
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.x:Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 4 /* X1 */
        start local 4 // org.bouncycastle.math.ec.ECFieldElement X1
         8: .line 899
            iload 3 /* coord */
            tableswitch { // 0 - 4
                    0: 9
                    1: 14
                    2: 38
                    3: 71
                    4: 70
              default: 71
          }
         9: .line 903
      StackMap locals: int org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            aload 4 /* X1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 5 /* X1Squared */
        start local 5 // org.bouncycastle.math.ec.ECFieldElement X1Squared
        10: .line 904
            aload 0 /* this */
            aload 5 /* X1Squared */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.three:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            invokevirtual org.bouncycastle.math.ec.ECCurve.getA:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            aload 2 /* Y1 */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.divide:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 6 /* gamma */
        start local 6 // org.bouncycastle.math.ec.ECFieldElement gamma
        11: .line 905
            aload 6 /* gamma */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            aload 4 /* X1 */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 7 /* X3 */
        start local 7 // org.bouncycastle.math.ec.ECFieldElement X3
        12: .line 906
            aload 6 /* gamma */
            aload 4 /* X1 */
            aload 7 /* X3 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 2 /* Y1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 8 /* Y3 */
        start local 8 // org.bouncycastle.math.ec.ECFieldElement Y3
        13: .line 908
            new org.bouncycastle.math.ec.ECPoint$Fp
            dup
            aload 1 /* curve */
            aload 7 /* X3 */
            aload 8 /* Y3 */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.withCompression:Z
            invokespecial org.bouncycastle.math.ec.ECPoint$Fp.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
            areturn
        end local 8 // org.bouncycastle.math.ec.ECFieldElement Y3
        end local 7 // org.bouncycastle.math.ec.ECFieldElement X3
        end local 6 // org.bouncycastle.math.ec.ECFieldElement gamma
        end local 5 // org.bouncycastle.math.ec.ECFieldElement X1Squared
        14: .line 913
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.zs:[Lorg/bouncycastle/math/ec/ECFieldElement;
            iconst_0
            aaload
            astore 5 /* Z1 */
        start local 5 // org.bouncycastle.math.ec.ECFieldElement Z1
        15: .line 915
            aload 5 /* Z1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isOne:()Z
            istore 6 /* Z1IsOne */
        start local 6 // boolean Z1IsOne
        16: .line 918
            aload 1 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getA:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 7 /* w */
        start local 7 // org.bouncycastle.math.ec.ECFieldElement w
        17: .line 919
            aload 7 /* w */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
            ifne 19
            iload 6 /* Z1IsOne */
            ifne 19
        18: .line 921
            aload 7 /* w */
            aload 5 /* Z1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 7 /* w */
        19: .line 923
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement int org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            aload 7 /* w */
            aload 0 /* this */
            aload 4 /* X1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.three:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 7 /* w */
        20: .line 925
            iload 6 /* Z1IsOne */
            ifeq 21
            aload 2 /* Y1 */
            goto 22
      StackMap locals:
      StackMap stack:
        21: aload 2 /* Y1 */
            aload 5 /* Z1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
      StackMap locals:
      StackMap stack: org.bouncycastle.math.ec.ECFieldElement
        22: astore 8 /* s */
        start local 8 // org.bouncycastle.math.ec.ECFieldElement s
        23: .line 926
            iload 6 /* Z1IsOne */
            ifeq 24
            aload 2 /* Y1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            goto 25
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
        24: aload 8 /* s */
            aload 2 /* Y1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
      StackMap locals:
      StackMap stack: org.bouncycastle.math.ec.ECFieldElement
        25: astore 9 /* t */
        start local 9 // org.bouncycastle.math.ec.ECFieldElement t
        26: .line 927
            aload 4 /* X1 */
            aload 9 /* t */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 10 /* B */
        start local 10 // org.bouncycastle.math.ec.ECFieldElement B
        27: .line 928
            aload 0 /* this */
            aload 10 /* B */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.four:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 11 /* _4B */
        start local 11 // org.bouncycastle.math.ec.ECFieldElement _4B
        28: .line 929
            aload 7 /* w */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            aload 11 /* _4B */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 12 /* h */
        start local 12 // org.bouncycastle.math.ec.ECFieldElement h
        29: .line 931
            aload 0 /* this */
            aload 8 /* s */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 13 /* _2s */
        start local 13 // org.bouncycastle.math.ec.ECFieldElement _2s
        30: .line 932
            aload 12 /* h */
            aload 13 /* _2s */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 14 /* X3 */
        start local 14 // org.bouncycastle.math.ec.ECFieldElement X3
        31: .line 933
            aload 0 /* this */
            aload 9 /* t */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 15 /* _2t */
        start local 15 // org.bouncycastle.math.ec.ECFieldElement _2t
        32: .line 934
            aload 11 /* _4B */
            aload 12 /* h */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 7 /* w */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            aload 15 /* _2t */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 16 /* Y3 */
        start local 16 // org.bouncycastle.math.ec.ECFieldElement Y3
        33: .line 935
            iload 6 /* Z1IsOne */
            ifeq 34
            aload 0 /* this */
            aload 15 /* _2t */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            goto 35
      StackMap locals: org.bouncycastle.math.ec.ECPoint$Fp org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECFieldElement int org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement int 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 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:
        34: aload 13 /* _2s */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
      StackMap locals:
      StackMap stack: org.bouncycastle.math.ec.ECFieldElement
        35: astore 17 /* _4sSquared */
        start local 17 // org.bouncycastle.math.ec.ECFieldElement _4sSquared
        36: .line 936
            aload 0 /* this */
            aload 17 /* _4sSquared */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 8 /* s */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 18 /* Z3 */
        start local 18 // org.bouncycastle.math.ec.ECFieldElement Z3
        37: .line 938
            new org.bouncycastle.math.ec.ECPoint$Fp
            dup
            aload 1 /* curve */
            aload 14 /* X3 */
            aload 16 /* Y3 */
            iconst_1
            anewarray org.bouncycastle.math.ec.ECFieldElement
            dup
            iconst_0
            aload 18 /* Z3 */
            aastore
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.withCompression:Z
            invokespecial org.bouncycastle.math.ec.ECPoint$Fp.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;[Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
            areturn
        end local 18 // org.bouncycastle.math.ec.ECFieldElement Z3
        end local 17 // org.bouncycastle.math.ec.ECFieldElement _4sSquared
        end local 16 // org.bouncycastle.math.ec.ECFieldElement Y3
        end local 15 // org.bouncycastle.math.ec.ECFieldElement _2t
        end local 14 // org.bouncycastle.math.ec.ECFieldElement X3
        end local 13 // org.bouncycastle.math.ec.ECFieldElement _2s
        end local 12 // org.bouncycastle.math.ec.ECFieldElement h
        end local 11 // org.bouncycastle.math.ec.ECFieldElement _4B
        end local 10 // org.bouncycastle.math.ec.ECFieldElement B
        end local 9 // org.bouncycastle.math.ec.ECFieldElement t
        end local 8 // org.bouncycastle.math.ec.ECFieldElement s
        end local 7 // org.bouncycastle.math.ec.ECFieldElement w
        end local 6 // boolean Z1IsOne
        end local 5 // org.bouncycastle.math.ec.ECFieldElement Z1
        38: .line 943
      StackMap locals: org.bouncycastle.math.ec.ECPoint$Fp org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECFieldElement int org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.zs:[Lorg/bouncycastle/math/ec/ECFieldElement;
            iconst_0
            aaload
            astore 5 /* Z1 */
        start local 5 // org.bouncycastle.math.ec.ECFieldElement Z1
        39: .line 945
            aload 5 /* Z1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isOne:()Z
            istore 6 /* Z1IsOne */
        start local 6 // boolean Z1IsOne
        40: .line 947
            aload 2 /* Y1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 7 /* Y1Squared */
        start local 7 // org.bouncycastle.math.ec.ECFieldElement Y1Squared
        41: .line 948
            aload 7 /* Y1Squared */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 8 /* T */
        start local 8 // org.bouncycastle.math.ec.ECFieldElement T
        42: .line 950
            aload 1 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getA:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 9 /* a4 */
        start local 9 // org.bouncycastle.math.ec.ECFieldElement a4
        43: .line 951
            aload 9 /* a4 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.negate:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 10 /* a4Neg */
        start local 10 // org.bouncycastle.math.ec.ECFieldElement a4Neg
        44: .line 954
            aload 10 /* a4Neg */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            ldc 3
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ifeq 51
        45: .line 956
            iload 6 /* Z1IsOne */
            ifeq 46
            aload 5 /* Z1 */
            goto 47
      StackMap locals: org.bouncycastle.math.ec.ECPoint$Fp org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECFieldElement int org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement int org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
        46: aload 5 /* Z1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
      StackMap locals:
      StackMap stack: org.bouncycastle.math.ec.ECFieldElement
        47: astore 13 /* Z1Squared */
        start local 13 // org.bouncycastle.math.ec.ECFieldElement Z1Squared
        48: .line 957
            aload 0 /* this */
            aload 4 /* X1 */
            aload 13 /* Z1Squared */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 4 /* X1 */
            aload 13 /* Z1Squared */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.three:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 11 /* M */
        start local 11 // org.bouncycastle.math.ec.ECFieldElement M
        49: .line 958
            aload 0 /* this */
            aload 7 /* Y1Squared */
            aload 4 /* X1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.four:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 12 /* S */
        end local 13 // org.bouncycastle.math.ec.ECFieldElement Z1Squared
        start local 12 // org.bouncycastle.math.ec.ECFieldElement S
        50: .line 959
            goto 64
        end local 12 // org.bouncycastle.math.ec.ECFieldElement S
        end local 11 // org.bouncycastle.math.ec.ECFieldElement M
        51: .line 962
      StackMap locals:
      StackMap stack:
            aload 4 /* X1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 13 /* X1Squared */
        start local 13 // org.bouncycastle.math.ec.ECFieldElement X1Squared
        52: .line 963
            aload 0 /* this */
            aload 13 /* X1Squared */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.three:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 11 /* M */
        start local 11 // org.bouncycastle.math.ec.ECFieldElement M
        53: .line 964
            iload 6 /* Z1IsOne */
            ifeq 56
        54: .line 966
            aload 11 /* M */
            aload 9 /* a4 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 11 /* M */
        55: .line 967
            goto 63
        56: .line 968
      StackMap locals: org.bouncycastle.math.ec.ECPoint$Fp org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECFieldElement int org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement int 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 top org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            aload 9 /* a4 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
            ifne 63
        57: .line 970
            aload 5 /* Z1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 14 /* Z1Squared */
        start local 14 // org.bouncycastle.math.ec.ECFieldElement Z1Squared
        58: .line 971
            aload 14 /* Z1Squared */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 15 /* Z1Pow4 */
        start local 15 // org.bouncycastle.math.ec.ECFieldElement Z1Pow4
        59: .line 972
            aload 10 /* a4Neg */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.bitLength:()I
            aload 9 /* a4 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.bitLength:()I
            if_icmpge 62
        60: .line 974
            aload 11 /* M */
            aload 15 /* Z1Pow4 */
            aload 10 /* a4Neg */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 11 /* M */
        61: .line 975
            goto 63
        62: .line 978
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            aload 11 /* M */
            aload 15 /* Z1Pow4 */
            aload 9 /* a4 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 11 /* M */
        end local 15 // org.bouncycastle.math.ec.ECFieldElement Z1Pow4
        end local 14 // org.bouncycastle.math.ec.ECFieldElement Z1Squared
        63: .line 982
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* X1 */
            aload 7 /* Y1Squared */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.four:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 12 /* S */
        end local 13 // org.bouncycastle.math.ec.ECFieldElement X1Squared
        start local 12 // org.bouncycastle.math.ec.ECFieldElement S
        64: .line 985
      StackMap locals: org.bouncycastle.math.ec.ECPoint$Fp org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECFieldElement int org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement int 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 org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            aload 11 /* M */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            aload 12 /* S */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 13 /* X3 */
        start local 13 // org.bouncycastle.math.ec.ECFieldElement X3
        65: .line 986
            aload 12 /* S */
            aload 13 /* X3 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 11 /* M */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            aload 8 /* T */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.eight:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 14 /* Y3 */
        start local 14 // org.bouncycastle.math.ec.ECFieldElement Y3
        66: .line 988
            aload 0 /* this */
            aload 2 /* Y1 */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 15 /* Z3 */
        start local 15 // org.bouncycastle.math.ec.ECFieldElement Z3
        67: .line 989
            iload 6 /* Z1IsOne */
            ifne 69
        68: .line 991
            aload 15 /* Z3 */
            aload 5 /* Z1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 15 /* Z3 */
        69: .line 997
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            new org.bouncycastle.math.ec.ECPoint$Fp
            dup
            aload 1 /* curve */
            aload 13 /* X3 */
            aload 14 /* Y3 */
            iconst_1
            anewarray org.bouncycastle.math.ec.ECFieldElement
            dup
            iconst_0
            aload 15 /* Z3 */
            aastore
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.withCompression:Z
            invokespecial org.bouncycastle.math.ec.ECPoint$Fp.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;[Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
            areturn
        end local 15 // org.bouncycastle.math.ec.ECFieldElement Z3
        end local 14 // org.bouncycastle.math.ec.ECFieldElement Y3
        end local 13 // org.bouncycastle.math.ec.ECFieldElement X3
        end local 12 // org.bouncycastle.math.ec.ECFieldElement S
        end local 11 // org.bouncycastle.math.ec.ECFieldElement M
        end local 10 // org.bouncycastle.math.ec.ECFieldElement a4Neg
        end local 9 // org.bouncycastle.math.ec.ECFieldElement a4
        end local 8 // org.bouncycastle.math.ec.ECFieldElement T
        end local 7 // org.bouncycastle.math.ec.ECFieldElement Y1Squared
        end local 6 // boolean Z1IsOne
        end local 5 // org.bouncycastle.math.ec.ECFieldElement Z1
        70: .line 1002
      StackMap locals: org.bouncycastle.math.ec.ECPoint$Fp org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECFieldElement int org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            aload 0 /* this */
            iconst_1
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.twiceJacobianModified:(Z)Lorg/bouncycastle/math/ec/ECPoint$Fp;
            areturn
        71: .line 1007
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            ldc "unsupported coordinate system"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // org.bouncycastle.math.ec.ECFieldElement X1
        end local 3 // int coord
        end local 2 // org.bouncycastle.math.ec.ECFieldElement Y1
        end local 1 // org.bouncycastle.math.ec.ECCurve curve
        end local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   72     0        this  Lorg/bouncycastle/math/ec/ECPoint$Fp;
            3   72     1       curve  Lorg/bouncycastle/math/ec/ECCurve;
            4   72     2          Y1  Lorg/bouncycastle/math/ec/ECFieldElement;
            7   72     3       coord  I
            8   72     4          X1  Lorg/bouncycastle/math/ec/ECFieldElement;
           10   14     5   X1Squared  Lorg/bouncycastle/math/ec/ECFieldElement;
           11   14     6       gamma  Lorg/bouncycastle/math/ec/ECFieldElement;
           12   14     7          X3  Lorg/bouncycastle/math/ec/ECFieldElement;
           13   14     8          Y3  Lorg/bouncycastle/math/ec/ECFieldElement;
           15   38     5          Z1  Lorg/bouncycastle/math/ec/ECFieldElement;
           16   38     6     Z1IsOne  Z
           17   38     7           w  Lorg/bouncycastle/math/ec/ECFieldElement;
           23   38     8           s  Lorg/bouncycastle/math/ec/ECFieldElement;
           26   38     9           t  Lorg/bouncycastle/math/ec/ECFieldElement;
           27   38    10           B  Lorg/bouncycastle/math/ec/ECFieldElement;
           28   38    11         _4B  Lorg/bouncycastle/math/ec/ECFieldElement;
           29   38    12           h  Lorg/bouncycastle/math/ec/ECFieldElement;
           30   38    13         _2s  Lorg/bouncycastle/math/ec/ECFieldElement;
           31   38    14          X3  Lorg/bouncycastle/math/ec/ECFieldElement;
           32   38    15         _2t  Lorg/bouncycastle/math/ec/ECFieldElement;
           33   38    16          Y3  Lorg/bouncycastle/math/ec/ECFieldElement;
           36   38    17  _4sSquared  Lorg/bouncycastle/math/ec/ECFieldElement;
           37   38    18          Z3  Lorg/bouncycastle/math/ec/ECFieldElement;
           39   70     5          Z1  Lorg/bouncycastle/math/ec/ECFieldElement;
           40   70     6     Z1IsOne  Z
           41   70     7   Y1Squared  Lorg/bouncycastle/math/ec/ECFieldElement;
           42   70     8           T  Lorg/bouncycastle/math/ec/ECFieldElement;
           43   70     9          a4  Lorg/bouncycastle/math/ec/ECFieldElement;
           44   70    10       a4Neg  Lorg/bouncycastle/math/ec/ECFieldElement;
           49   51    11           M  Lorg/bouncycastle/math/ec/ECFieldElement;
           53   70    11           M  Lorg/bouncycastle/math/ec/ECFieldElement;
           50   51    12           S  Lorg/bouncycastle/math/ec/ECFieldElement;
           64   70    12           S  Lorg/bouncycastle/math/ec/ECFieldElement;
           48   50    13   Z1Squared  Lorg/bouncycastle/math/ec/ECFieldElement;
           52   64    13   X1Squared  Lorg/bouncycastle/math/ec/ECFieldElement;
           58   63    14   Z1Squared  Lorg/bouncycastle/math/ec/ECFieldElement;
           59   63    15      Z1Pow4  Lorg/bouncycastle/math/ec/ECFieldElement;
           65   70    13          X3  Lorg/bouncycastle/math/ec/ECFieldElement;
           66   70    14          Y3  Lorg/bouncycastle/math/ec/ECFieldElement;
           67   70    15          Z3  Lorg/bouncycastle/math/ec/ECFieldElement;

  public org.bouncycastle.math.ec.ECPoint twicePlus(org.bouncycastle.math.ec.ECPoint);
    descriptor: (Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=19, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
        start local 1 // org.bouncycastle.math.ec.ECPoint b
         0: .line 1014
            aload 0 /* this */
            aload 1 /* b */
            if_acmpne 2
         1: .line 1016
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.threeTimes:()Lorg/bouncycastle/math/ec/ECPoint;
            areturn
         2: .line 1018
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.isInfinity:()Z
            ifeq 4
         3: .line 1020
            aload 1 /* b */
            areturn
         4: .line 1022
      StackMap locals:
      StackMap stack:
            aload 1 /* b */
            invokevirtual org.bouncycastle.math.ec.ECPoint.isInfinity:()Z
            ifeq 6
         5: .line 1024
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.twice:()Lorg/bouncycastle/math/ec/ECPoint;
            areturn
         6: .line 1027
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.y:Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 2 /* Y1 */
        start local 2 // org.bouncycastle.math.ec.ECFieldElement Y1
         7: .line 1028
            aload 2 /* Y1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
            ifeq 9
         8: .line 1030
            aload 1 /* b */
            areturn
         9: .line 1033
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            astore 3 /* curve */
        start local 3 // org.bouncycastle.math.ec.ECCurve curve
        10: .line 1034
            aload 3 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getCoordinateSystem:()I
            istore 4 /* coord */
        start local 4 // int coord
        11: .line 1036
            iload 4 /* coord */
            tableswitch { // 0 - 4
                    0: 12
                    1: 34
                    2: 34
                    3: 34
                    4: 33
              default: 34
          }
        12: .line 1040
      StackMap locals: org.bouncycastle.math.ec.ECCurve int
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.x:Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 5 /* X1 */
        start local 5 // org.bouncycastle.math.ec.ECFieldElement X1
        13: .line 1041
            aload 1 /* b */
            getfield org.bouncycastle.math.ec.ECPoint.x:Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 6 /* X2 */
        start local 6 // org.bouncycastle.math.ec.ECFieldElement X2
        14: aload 1 /* b */
            getfield org.bouncycastle.math.ec.ECPoint.y:Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 7 /* Y2 */
        start local 7 // org.bouncycastle.math.ec.ECFieldElement Y2
        15: .line 1043
            aload 6 /* X2 */
            aload 5 /* X1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 8 /* dx */
        start local 8 // org.bouncycastle.math.ec.ECFieldElement dx
        16: aload 7 /* Y2 */
            aload 2 /* Y1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 9 /* dy */
        start local 9 // org.bouncycastle.math.ec.ECFieldElement dy
        17: .line 1045
            aload 8 /* dx */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
            ifeq 21
        18: .line 1047
            aload 9 /* dy */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
            ifeq 20
        19: .line 1050
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.threeTimes:()Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        20: .line 1054
      StackMap locals: org.bouncycastle.math.ec.ECPoint$Fp org.bouncycastle.math.ec.ECPoint org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECCurve int 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:
            aload 0 /* this */
            areturn
        21: .line 1062
      StackMap locals:
      StackMap stack:
            aload 8 /* dx */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 10 /* X */
        start local 10 // org.bouncycastle.math.ec.ECFieldElement X
        22: aload 9 /* dy */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 11 /* Y */
        start local 11 // org.bouncycastle.math.ec.ECFieldElement Y
        23: .line 1063
            aload 10 /* X */
            aload 0 /* this */
            aload 5 /* X1 */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 6 /* X2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 11 /* Y */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 12 /* d */
        start local 12 // org.bouncycastle.math.ec.ECFieldElement d
        24: .line 1064
            aload 12 /* d */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
            ifeq 26
        25: .line 1066
            aload 3 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getInfinity:()Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        26: .line 1069
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            aload 12 /* d */
            aload 8 /* dx */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 13 /* D */
        start local 13 // org.bouncycastle.math.ec.ECFieldElement D
        27: .line 1070
            aload 13 /* D */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.invert:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 14 /* I */
        start local 14 // org.bouncycastle.math.ec.ECFieldElement I
        28: .line 1071
            aload 12 /* d */
            aload 14 /* I */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 9 /* dy */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 15 /* L1 */
        start local 15 // org.bouncycastle.math.ec.ECFieldElement L1
        29: .line 1072
            aload 0 /* this */
            aload 2 /* Y1 */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 10 /* X */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 8 /* dx */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 14 /* I */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 15 /* L1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 16 /* L2 */
        start local 16 // org.bouncycastle.math.ec.ECFieldElement L2
        30: .line 1073
            aload 16 /* L2 */
            aload 15 /* L1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 15 /* L1 */
            aload 16 /* L2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 6 /* X2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 17 /* X4 */
        start local 17 // org.bouncycastle.math.ec.ECFieldElement X4
        31: .line 1074
            aload 5 /* X1 */
            aload 17 /* X4 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 16 /* L2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 2 /* Y1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 18 /* Y4 */
        start local 18 // org.bouncycastle.math.ec.ECFieldElement Y4
        32: .line 1076
            new org.bouncycastle.math.ec.ECPoint$Fp
            dup
            aload 3 /* curve */
            aload 17 /* X4 */
            aload 18 /* Y4 */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.withCompression:Z
            invokespecial org.bouncycastle.math.ec.ECPoint$Fp.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
            areturn
        end local 18 // org.bouncycastle.math.ec.ECFieldElement Y4
        end local 17 // org.bouncycastle.math.ec.ECFieldElement X4
        end local 16 // org.bouncycastle.math.ec.ECFieldElement L2
        end local 15 // org.bouncycastle.math.ec.ECFieldElement L1
        end local 14 // org.bouncycastle.math.ec.ECFieldElement I
        end local 13 // org.bouncycastle.math.ec.ECFieldElement D
        end local 12 // org.bouncycastle.math.ec.ECFieldElement d
        end local 11 // org.bouncycastle.math.ec.ECFieldElement Y
        end local 10 // org.bouncycastle.math.ec.ECFieldElement X
        end local 9 // org.bouncycastle.math.ec.ECFieldElement dy
        end local 8 // org.bouncycastle.math.ec.ECFieldElement dx
        end local 7 // org.bouncycastle.math.ec.ECFieldElement Y2
        end local 6 // org.bouncycastle.math.ec.ECFieldElement X2
        end local 5 // org.bouncycastle.math.ec.ECFieldElement X1
        33: .line 1080
      StackMap locals: org.bouncycastle.math.ec.ECPoint$Fp org.bouncycastle.math.ec.ECPoint org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECCurve int
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.twiceJacobianModified:(Z)Lorg/bouncycastle/math/ec/ECPoint$Fp;
            aload 1 /* b */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.add:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        34: .line 1084
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.twice:()Lorg/bouncycastle/math/ec/ECPoint;
            aload 1 /* b */
            invokevirtual org.bouncycastle.math.ec.ECPoint.add:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        end local 4 // int coord
        end local 3 // org.bouncycastle.math.ec.ECCurve curve
        end local 2 // org.bouncycastle.math.ec.ECFieldElement Y1
        end local 1 // org.bouncycastle.math.ec.ECPoint b
        end local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   35     0   this  Lorg/bouncycastle/math/ec/ECPoint$Fp;
            0   35     1      b  Lorg/bouncycastle/math/ec/ECPoint;
            7   35     2     Y1  Lorg/bouncycastle/math/ec/ECFieldElement;
           10   35     3  curve  Lorg/bouncycastle/math/ec/ECCurve;
           11   35     4  coord  I
           13   33     5     X1  Lorg/bouncycastle/math/ec/ECFieldElement;
           14   33     6     X2  Lorg/bouncycastle/math/ec/ECFieldElement;
           15   33     7     Y2  Lorg/bouncycastle/math/ec/ECFieldElement;
           16   33     8     dx  Lorg/bouncycastle/math/ec/ECFieldElement;
           17   33     9     dy  Lorg/bouncycastle/math/ec/ECFieldElement;
           22   33    10      X  Lorg/bouncycastle/math/ec/ECFieldElement;
           23   33    11      Y  Lorg/bouncycastle/math/ec/ECFieldElement;
           24   33    12      d  Lorg/bouncycastle/math/ec/ECFieldElement;
           27   33    13      D  Lorg/bouncycastle/math/ec/ECFieldElement;
           28   33    14      I  Lorg/bouncycastle/math/ec/ECFieldElement;
           29   33    15     L1  Lorg/bouncycastle/math/ec/ECFieldElement;
           30   33    16     L2  Lorg/bouncycastle/math/ec/ECFieldElement;
           31   33    17     X4  Lorg/bouncycastle/math/ec/ECFieldElement;
           32   33    18     Y4  Lorg/bouncycastle/math/ec/ECFieldElement;
    MethodParameters:
      Name  Flags
      b     

  public org.bouncycastle.math.ec.ECPoint threeTimes();
    descriptor: ()Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=16, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
         0: .line 1091
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.isInfinity:()Z
            ifeq 2
         1: .line 1093
            aload 0 /* this */
            areturn
         2: .line 1096
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.y:Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 1 /* Y1 */
        start local 1 // org.bouncycastle.math.ec.ECFieldElement Y1
         3: .line 1097
            aload 1 /* Y1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
            ifeq 5
         4: .line 1099
            aload 0 /* this */
            areturn
         5: .line 1102
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            astore 2 /* curve */
        start local 2 // org.bouncycastle.math.ec.ECCurve curve
         6: .line 1103
            aload 2 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getCoordinateSystem:()I
            istore 3 /* coord */
        start local 3 // int coord
         7: .line 1105
            iload 3 /* coord */
            tableswitch { // 0 - 4
                    0: 8
                    1: 24
                    2: 24
                    3: 24
                    4: 23
              default: 24
          }
         8: .line 1109
      StackMap locals: org.bouncycastle.math.ec.ECCurve int
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.x:Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 4 /* X1 */
        start local 4 // org.bouncycastle.math.ec.ECFieldElement X1
         9: .line 1111
            aload 0 /* this */
            aload 1 /* Y1 */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 5 /* _2Y1 */
        start local 5 // org.bouncycastle.math.ec.ECFieldElement _2Y1
        10: .line 1112
            aload 5 /* _2Y1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 6 /* X */
        start local 6 // org.bouncycastle.math.ec.ECFieldElement X
        11: .line 1113
            aload 0 /* this */
            aload 4 /* X1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.three:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            invokevirtual org.bouncycastle.math.ec.ECCurve.getA:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 7 /* Z */
        start local 7 // org.bouncycastle.math.ec.ECFieldElement Z
        12: .line 1114
            aload 7 /* Z */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 8 /* Y */
        start local 8 // org.bouncycastle.math.ec.ECFieldElement Y
        13: .line 1116
            aload 0 /* this */
            aload 4 /* X1 */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.three:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 6 /* X */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 8 /* Y */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 9 /* d */
        start local 9 // org.bouncycastle.math.ec.ECFieldElement d
        14: .line 1117
            aload 9 /* d */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
            ifeq 16
        15: .line 1119
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            invokevirtual org.bouncycastle.math.ec.ECCurve.getInfinity:()Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        16: .line 1122
      StackMap locals: org.bouncycastle.math.ec.ECPoint$Fp org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECCurve int 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 org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            aload 9 /* d */
            aload 5 /* _2Y1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 10 /* D */
        start local 10 // org.bouncycastle.math.ec.ECFieldElement D
        17: .line 1123
            aload 10 /* D */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.invert:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 11 /* I */
        start local 11 // org.bouncycastle.math.ec.ECFieldElement I
        18: .line 1124
            aload 9 /* d */
            aload 11 /* I */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 7 /* Z */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 12 /* L1 */
        start local 12 // org.bouncycastle.math.ec.ECFieldElement L1
        19: .line 1125
            aload 6 /* X */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 11 /* I */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 12 /* L1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 13 /* L2 */
        start local 13 // org.bouncycastle.math.ec.ECFieldElement L2
        20: .line 1127
            aload 13 /* L2 */
            aload 12 /* L1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 12 /* L1 */
            aload 13 /* L2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 4 /* X1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 14 /* X4 */
        start local 14 // org.bouncycastle.math.ec.ECFieldElement X4
        21: .line 1128
            aload 4 /* X1 */
            aload 14 /* X4 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 13 /* L2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 1 /* Y1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 15 /* Y4 */
        start local 15 // org.bouncycastle.math.ec.ECFieldElement Y4
        22: .line 1129
            new org.bouncycastle.math.ec.ECPoint$Fp
            dup
            aload 2 /* curve */
            aload 14 /* X4 */
            aload 15 /* Y4 */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.withCompression:Z
            invokespecial org.bouncycastle.math.ec.ECPoint$Fp.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
            areturn
        end local 15 // org.bouncycastle.math.ec.ECFieldElement Y4
        end local 14 // org.bouncycastle.math.ec.ECFieldElement X4
        end local 13 // org.bouncycastle.math.ec.ECFieldElement L2
        end local 12 // org.bouncycastle.math.ec.ECFieldElement L1
        end local 11 // org.bouncycastle.math.ec.ECFieldElement I
        end local 10 // org.bouncycastle.math.ec.ECFieldElement D
        end local 9 // org.bouncycastle.math.ec.ECFieldElement d
        end local 8 // org.bouncycastle.math.ec.ECFieldElement Y
        end local 7 // org.bouncycastle.math.ec.ECFieldElement Z
        end local 6 // org.bouncycastle.math.ec.ECFieldElement X
        end local 5 // org.bouncycastle.math.ec.ECFieldElement _2Y1
        end local 4 // org.bouncycastle.math.ec.ECFieldElement X1
        23: .line 1133
      StackMap locals: org.bouncycastle.math.ec.ECPoint$Fp org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECCurve int
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.twiceJacobianModified:(Z)Lorg/bouncycastle/math/ec/ECPoint$Fp;
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.add:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        24: .line 1138
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.twice:()Lorg/bouncycastle/math/ec/ECPoint;
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint.add:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        end local 3 // int coord
        end local 2 // org.bouncycastle.math.ec.ECCurve curve
        end local 1 // org.bouncycastle.math.ec.ECFieldElement Y1
        end local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   25     0   this  Lorg/bouncycastle/math/ec/ECPoint$Fp;
            3   25     1     Y1  Lorg/bouncycastle/math/ec/ECFieldElement;
            6   25     2  curve  Lorg/bouncycastle/math/ec/ECCurve;
            7   25     3  coord  I
            9   23     4     X1  Lorg/bouncycastle/math/ec/ECFieldElement;
           10   23     5   _2Y1  Lorg/bouncycastle/math/ec/ECFieldElement;
           11   23     6      X  Lorg/bouncycastle/math/ec/ECFieldElement;
           12   23     7      Z  Lorg/bouncycastle/math/ec/ECFieldElement;
           13   23     8      Y  Lorg/bouncycastle/math/ec/ECFieldElement;
           14   23     9      d  Lorg/bouncycastle/math/ec/ECFieldElement;
           17   23    10      D  Lorg/bouncycastle/math/ec/ECFieldElement;
           18   23    11      I  Lorg/bouncycastle/math/ec/ECFieldElement;
           19   23    12     L1  Lorg/bouncycastle/math/ec/ECFieldElement;
           20   23    13     L2  Lorg/bouncycastle/math/ec/ECFieldElement;
           21   23    14     X4  Lorg/bouncycastle/math/ec/ECFieldElement;
           22   23    15     Y4  Lorg/bouncycastle/math/ec/ECFieldElement;

  public org.bouncycastle.math.ec.ECPoint timesPow2(int);
    descriptor: (I)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=16, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
        start local 1 // int e
         0: .line 1145
            iload 1 /* e */
            ifge 2
         1: .line 1147
            new java.lang.IllegalArgumentException
            dup
            ldc "'e' cannot be negative"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1149
      StackMap locals:
      StackMap stack:
            iload 1 /* e */
            ifeq 3
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.isInfinity:()Z
            ifeq 4
         3: .line 1151
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
         4: .line 1153
      StackMap locals:
      StackMap stack:
            iload 1 /* e */
            iconst_1
            if_icmpne 6
         5: .line 1155
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.twice:()Lorg/bouncycastle/math/ec/ECPoint;
            areturn
         6: .line 1158
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            astore 2 /* curve */
        start local 2 // org.bouncycastle.math.ec.ECCurve curve
         7: .line 1160
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.y:Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 3 /* Y1 */
        start local 3 // org.bouncycastle.math.ec.ECFieldElement Y1
         8: .line 1161
            aload 3 /* Y1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
            ifeq 10
         9: .line 1163
            aload 2 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getInfinity:()Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        10: .line 1166
      StackMap locals: org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            aload 2 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getCoordinateSystem:()I
            istore 4 /* coord */
        start local 4 // int coord
        11: .line 1168
            aload 2 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getA:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 5 /* W1 */
        start local 5 // org.bouncycastle.math.ec.ECFieldElement W1
        12: .line 1169
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.x:Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 6 /* X1 */
        start local 6 // org.bouncycastle.math.ec.ECFieldElement X1
        13: .line 1170
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.zs:[Lorg/bouncycastle/math/ec/ECFieldElement;
            arraylength
            iconst_1
            if_icmpge 14
            aload 2 /* curve */
            getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.ECCurve.fromBigInteger:(Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECFieldElement;
            goto 15
      StackMap locals: int org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
        14: aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.zs:[Lorg/bouncycastle/math/ec/ECFieldElement;
            iconst_0
            aaload
      StackMap locals:
      StackMap stack: org.bouncycastle.math.ec.ECFieldElement
        15: astore 7 /* Z1 */
        start local 7 // org.bouncycastle.math.ec.ECFieldElement Z1
        16: .line 1172
            aload 7 /* Z1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isOne:()Z
            ifne 29
        17: .line 1174
            iload 4 /* coord */
            tableswitch { // 0 - 4
                    0: 18
                    1: 19
                    2: 24
                    3: 28
                    4: 26
              default: 28
          }
        18: .line 1177
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            goto 29
        19: .line 1179
      StackMap locals:
      StackMap stack:
            aload 7 /* Z1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 8 /* Z1Sq */
        start local 8 // org.bouncycastle.math.ec.ECFieldElement Z1Sq
        20: .line 1180
            aload 6 /* X1 */
            aload 7 /* Z1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 6 /* X1 */
        21: .line 1181
            aload 3 /* Y1 */
            aload 8 /* Z1Sq */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 3 /* Y1 */
        22: .line 1182
            aload 0 /* this */
            aload 7 /* Z1 */
            aload 8 /* Z1Sq */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.calculateJacobianModifiedW:(Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 5 /* W1 */
        23: .line 1183
            goto 29
        end local 8 // org.bouncycastle.math.ec.ECFieldElement Z1Sq
        24: .line 1185
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 7 /* Z1 */
            aconst_null
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.calculateJacobianModifiedW:(Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 5 /* W1 */
        25: .line 1186
            goto 29
        26: .line 1188
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.getJacobianModifiedW:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 5 /* W1 */
        27: .line 1189
            goto 29
        28: .line 1191
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            ldc "unsupported coordinate system"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        29: .line 1195
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        30: goto 49
        31: .line 1197
      StackMap locals: int
      StackMap stack:
            aload 3 /* Y1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
            ifeq 33
        32: .line 1199
            aload 2 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getInfinity:()Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        33: .line 1202
      StackMap locals:
      StackMap stack:
            aload 6 /* X1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 9 /* X1Squared */
        start local 9 // org.bouncycastle.math.ec.ECFieldElement X1Squared
        34: .line 1203
            aload 0 /* this */
            aload 9 /* X1Squared */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.three:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 10 /* M */
        start local 10 // org.bouncycastle.math.ec.ECFieldElement M
        35: .line 1204
            aload 0 /* this */
            aload 3 /* Y1 */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 11 /* _2Y1 */
        start local 11 // org.bouncycastle.math.ec.ECFieldElement _2Y1
        36: .line 1205
            aload 11 /* _2Y1 */
            aload 3 /* Y1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 12 /* _2Y1Squared */
        start local 12 // org.bouncycastle.math.ec.ECFieldElement _2Y1Squared
        37: .line 1206
            aload 0 /* this */
            aload 6 /* X1 */
            aload 12 /* _2Y1Squared */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 13 /* S */
        start local 13 // org.bouncycastle.math.ec.ECFieldElement S
        38: .line 1207
            aload 12 /* _2Y1Squared */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 14 /* _4T */
        start local 14 // org.bouncycastle.math.ec.ECFieldElement _4T
        39: .line 1208
            aload 0 /* this */
            aload 14 /* _4T */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 15 /* _8T */
        start local 15 // org.bouncycastle.math.ec.ECFieldElement _8T
        40: .line 1210
            aload 5 /* W1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
            ifne 43
        41: .line 1212
            aload 10 /* M */
            aload 5 /* W1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 10 /* M */
        42: .line 1213
            aload 0 /* this */
            aload 15 /* _8T */
            aload 5 /* W1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 5 /* W1 */
        43: .line 1216
      StackMap locals: org.bouncycastle.math.ec.ECPoint$Fp int org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECFieldElement int org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement int 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 org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            aload 10 /* M */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            aload 13 /* S */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 6 /* X1 */
        44: .line 1217
            aload 10 /* M */
            aload 13 /* S */
            aload 6 /* X1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 15 /* _8T */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 3 /* Y1 */
        45: .line 1218
            aload 7 /* Z1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isOne:()Z
            ifeq 46
            aload 11 /* _2Y1 */
            goto 47
      StackMap locals:
      StackMap stack:
        46: aload 11 /* _2Y1 */
            aload 7 /* Z1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
      StackMap locals:
      StackMap stack: org.bouncycastle.math.ec.ECFieldElement
        47: astore 7 /* Z1 */
        end local 15 // org.bouncycastle.math.ec.ECFieldElement _8T
        end local 14 // org.bouncycastle.math.ec.ECFieldElement _4T
        end local 13 // org.bouncycastle.math.ec.ECFieldElement S
        end local 12 // org.bouncycastle.math.ec.ECFieldElement _2Y1Squared
        end local 11 // org.bouncycastle.math.ec.ECFieldElement _2Y1
        end local 10 // org.bouncycastle.math.ec.ECFieldElement M
        end local 9 // org.bouncycastle.math.ec.ECFieldElement X1Squared
        48: .line 1195
            iinc 8 /* i */ 1
      StackMap locals: org.bouncycastle.math.ec.ECPoint$Fp int org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECFieldElement int org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement int
      StackMap stack:
        49: iload 8 /* i */
            iload 1 /* e */
            if_icmplt 31
        end local 8 // int i
        50: .line 1221
            iload 4 /* coord */
            tableswitch { // 0 - 4
                    0: 51
                    1: 55
                    2: 58
                    3: 60
                    4: 59
              default: 60
          }
        51: .line 1224
      StackMap locals:
      StackMap stack:
            aload 7 /* Z1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.invert:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 8 /* zInv */
        start local 8 // org.bouncycastle.math.ec.ECFieldElement zInv
        52: aload 8 /* zInv */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 9 /* zInv2 */
        start local 9 // org.bouncycastle.math.ec.ECFieldElement zInv2
        53: aload 9 /* zInv2 */
            aload 8 /* zInv */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 10 /* zInv3 */
        start local 10 // org.bouncycastle.math.ec.ECFieldElement zInv3
        54: .line 1225
            new org.bouncycastle.math.ec.ECPoint$Fp
            dup
            aload 2 /* curve */
            aload 6 /* X1 */
            aload 9 /* zInv2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 3 /* Y1 */
            aload 10 /* zInv3 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.withCompression:Z
            invokespecial org.bouncycastle.math.ec.ECPoint$Fp.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
            areturn
        end local 10 // org.bouncycastle.math.ec.ECFieldElement zInv3
        end local 9 // org.bouncycastle.math.ec.ECFieldElement zInv2
        end local 8 // org.bouncycastle.math.ec.ECFieldElement zInv
        55: .line 1227
      StackMap locals:
      StackMap stack:
            aload 6 /* X1 */
            aload 7 /* Z1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 6 /* X1 */
        56: .line 1228
            aload 7 /* Z1 */
            aload 7 /* Z1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 7 /* Z1 */
        57: .line 1229
            new org.bouncycastle.math.ec.ECPoint$Fp
            dup
            aload 2 /* curve */
            aload 6 /* X1 */
            aload 3 /* Y1 */
            iconst_1
            anewarray org.bouncycastle.math.ec.ECFieldElement
            dup
            iconst_0
            aload 7 /* Z1 */
            aastore
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.withCompression:Z
            invokespecial org.bouncycastle.math.ec.ECPoint$Fp.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;[Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
            areturn
        58: .line 1231
      StackMap locals:
      StackMap stack:
            new org.bouncycastle.math.ec.ECPoint$Fp
            dup
            aload 2 /* curve */
            aload 6 /* X1 */
            aload 3 /* Y1 */
            iconst_1
            anewarray org.bouncycastle.math.ec.ECFieldElement
            dup
            iconst_0
            aload 7 /* Z1 */
            aastore
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.withCompression:Z
            invokespecial org.bouncycastle.math.ec.ECPoint$Fp.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;[Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
            areturn
        59: .line 1233
      StackMap locals:
      StackMap stack:
            new org.bouncycastle.math.ec.ECPoint$Fp
            dup
            aload 2 /* curve */
            aload 6 /* X1 */
            aload 3 /* Y1 */
            iconst_2
            anewarray org.bouncycastle.math.ec.ECFieldElement
            dup
            iconst_0
            aload 7 /* Z1 */
            aastore
            dup
            iconst_1
            aload 5 /* W1 */
            aastore
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.withCompression:Z
            invokespecial org.bouncycastle.math.ec.ECPoint$Fp.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;[Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
            areturn
        60: .line 1235
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            ldc "unsupported coordinate system"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // org.bouncycastle.math.ec.ECFieldElement Z1
        end local 6 // org.bouncycastle.math.ec.ECFieldElement X1
        end local 5 // org.bouncycastle.math.ec.ECFieldElement W1
        end local 4 // int coord
        end local 3 // org.bouncycastle.math.ec.ECFieldElement Y1
        end local 2 // org.bouncycastle.math.ec.ECCurve curve
        end local 1 // int e
        end local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   61     0         this  Lorg/bouncycastle/math/ec/ECPoint$Fp;
            0   61     1            e  I
            7   61     2        curve  Lorg/bouncycastle/math/ec/ECCurve;
            8   61     3           Y1  Lorg/bouncycastle/math/ec/ECFieldElement;
           11   61     4        coord  I
           12   61     5           W1  Lorg/bouncycastle/math/ec/ECFieldElement;
           13   61     6           X1  Lorg/bouncycastle/math/ec/ECFieldElement;
           16   61     7           Z1  Lorg/bouncycastle/math/ec/ECFieldElement;
           20   24     8         Z1Sq  Lorg/bouncycastle/math/ec/ECFieldElement;
           30   50     8            i  I
           34   48     9    X1Squared  Lorg/bouncycastle/math/ec/ECFieldElement;
           35   48    10            M  Lorg/bouncycastle/math/ec/ECFieldElement;
           36   48    11         _2Y1  Lorg/bouncycastle/math/ec/ECFieldElement;
           37   48    12  _2Y1Squared  Lorg/bouncycastle/math/ec/ECFieldElement;
           38   48    13            S  Lorg/bouncycastle/math/ec/ECFieldElement;
           39   48    14          _4T  Lorg/bouncycastle/math/ec/ECFieldElement;
           40   48    15          _8T  Lorg/bouncycastle/math/ec/ECFieldElement;
           52   55     8         zInv  Lorg/bouncycastle/math/ec/ECFieldElement;
           53   55     9        zInv2  Lorg/bouncycastle/math/ec/ECFieldElement;
           54   55    10        zInv3  Lorg/bouncycastle/math/ec/ECFieldElement;
    MethodParameters:
      Name  Flags
      e     

  protected org.bouncycastle.math.ec.ECFieldElement two(org.bouncycastle.math.ec.ECFieldElement);
    descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
        start local 1 // org.bouncycastle.math.ec.ECFieldElement x
         0: .line 1241
            aload 1 /* x */
            aload 1 /* x */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            areturn
        end local 1 // org.bouncycastle.math.ec.ECFieldElement x
        end local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECPoint$Fp;
            0    1     1     x  Lorg/bouncycastle/math/ec/ECFieldElement;
    MethodParameters:
      Name  Flags
      x     

  protected org.bouncycastle.math.ec.ECFieldElement three(org.bouncycastle.math.ec.ECFieldElement);
    descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
        start local 1 // org.bouncycastle.math.ec.ECFieldElement x
         0: .line 1246
            aload 0 /* this */
            aload 1 /* x */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 1 /* x */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            areturn
        end local 1 // org.bouncycastle.math.ec.ECFieldElement x
        end local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECPoint$Fp;
            0    1     1     x  Lorg/bouncycastle/math/ec/ECFieldElement;
    MethodParameters:
      Name  Flags
      x     

  protected org.bouncycastle.math.ec.ECFieldElement four(org.bouncycastle.math.ec.ECFieldElement);
    descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
        start local 1 // org.bouncycastle.math.ec.ECFieldElement x
         0: .line 1251
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* x */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            areturn
        end local 1 // org.bouncycastle.math.ec.ECFieldElement x
        end local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECPoint$Fp;
            0    1     1     x  Lorg/bouncycastle/math/ec/ECFieldElement;
    MethodParameters:
      Name  Flags
      x     

  protected org.bouncycastle.math.ec.ECFieldElement eight(org.bouncycastle.math.ec.ECFieldElement);
    descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
        start local 1 // org.bouncycastle.math.ec.ECFieldElement x
         0: .line 1256
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* x */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.four:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            areturn
        end local 1 // org.bouncycastle.math.ec.ECFieldElement x
        end local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECPoint$Fp;
            0    1     1     x  Lorg/bouncycastle/math/ec/ECFieldElement;
    MethodParameters:
      Name  Flags
      x     

  protected org.bouncycastle.math.ec.ECFieldElement doubleProductFromSquares(org.bouncycastle.math.ec.ECFieldElement, org.bouncycastle.math.ec.ECFieldElement, org.bouncycastle.math.ec.ECFieldElement, org.bouncycastle.math.ec.ECFieldElement);
    descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
        start local 1 // org.bouncycastle.math.ec.ECFieldElement a
        start local 2 // org.bouncycastle.math.ec.ECFieldElement b
        start local 3 // org.bouncycastle.math.ec.ECFieldElement aSquared
        start local 4 // org.bouncycastle.math.ec.ECFieldElement bSquared
         0: .line 1266
            aload 1 /* a */
            aload 2 /* b */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 3 /* aSquared */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 4 /* bSquared */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            areturn
        end local 4 // org.bouncycastle.math.ec.ECFieldElement bSquared
        end local 3 // org.bouncycastle.math.ec.ECFieldElement aSquared
        end local 2 // org.bouncycastle.math.ec.ECFieldElement b
        end local 1 // org.bouncycastle.math.ec.ECFieldElement a
        end local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/bouncycastle/math/ec/ECPoint$Fp;
            0    1     1         a  Lorg/bouncycastle/math/ec/ECFieldElement;
            0    1     2         b  Lorg/bouncycastle/math/ec/ECFieldElement;
            0    1     3  aSquared  Lorg/bouncycastle/math/ec/ECFieldElement;
            0    1     4  bSquared  Lorg/bouncycastle/math/ec/ECFieldElement;
    MethodParameters:
          Name  Flags
      a         
      b         
      aSquared  
      bSquared  

  public org.bouncycastle.math.ec.ECPoint negate();
    descriptor: ()Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
         0: .line 1271
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.isInfinity:()Z
            ifeq 2
         1: .line 1273
            aload 0 /* this */
            areturn
         2: .line 1276
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            astore 1 /* curve */
        start local 1 // org.bouncycastle.math.ec.ECCurve curve
         3: .line 1277
            aload 1 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getCoordinateSystem:()I
            istore 2 /* coord */
        start local 2 // int coord
         4: .line 1279
            iload 2 /* coord */
            ifeq 6
         5: .line 1281
            new org.bouncycastle.math.ec.ECPoint$Fp
            dup
            aload 1 /* curve */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.x:Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.y:Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.negate:()Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.zs:[Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.withCompression:Z
            invokespecial org.bouncycastle.math.ec.ECPoint$Fp.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;[Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
            areturn
         6: .line 1284
      StackMap locals: org.bouncycastle.math.ec.ECCurve int
      StackMap stack:
            new org.bouncycastle.math.ec.ECPoint$Fp
            dup
            aload 1 /* curve */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.x:Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.y:Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.negate:()Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.withCompression:Z
            invokespecial org.bouncycastle.math.ec.ECPoint$Fp.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
            areturn
        end local 2 // int coord
        end local 1 // org.bouncycastle.math.ec.ECCurve curve
        end local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lorg/bouncycastle/math/ec/ECPoint$Fp;
            3    7     1  curve  Lorg/bouncycastle/math/ec/ECCurve;
            4    7     2  coord  I

  protected org.bouncycastle.math.ec.ECFieldElement calculateJacobianModifiedW(org.bouncycastle.math.ec.ECFieldElement, org.bouncycastle.math.ec.ECFieldElement);
    descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
        start local 1 // org.bouncycastle.math.ec.ECFieldElement Z
        start local 2 // org.bouncycastle.math.ec.ECFieldElement ZSquared
         0: .line 1289
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            invokevirtual org.bouncycastle.math.ec.ECCurve.getA:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 3 /* a4 */
        start local 3 // org.bouncycastle.math.ec.ECFieldElement a4
         1: .line 1290
            aload 3 /* a4 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
            ifne 2
            aload 1 /* Z */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isOne:()Z
            ifeq 3
         2: .line 1292
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            aload 3 /* a4 */
            areturn
         3: .line 1295
      StackMap locals:
      StackMap stack:
            aload 2 /* ZSquared */
            ifnonnull 5
         4: .line 1297
            aload 1 /* Z */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 2 /* ZSquared */
         5: .line 1300
      StackMap locals:
      StackMap stack:
            aload 2 /* ZSquared */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 4 /* W */
        start local 4 // org.bouncycastle.math.ec.ECFieldElement W
         6: .line 1301
            aload 3 /* a4 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.negate:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 5 /* a4Neg */
        start local 5 // org.bouncycastle.math.ec.ECFieldElement a4Neg
         7: .line 1302
            aload 5 /* a4Neg */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.bitLength:()I
            aload 3 /* a4 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.bitLength:()I
            if_icmpge 10
         8: .line 1304
            aload 4 /* W */
            aload 5 /* a4Neg */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.negate:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 4 /* W */
         9: .line 1305
            goto 11
        10: .line 1308
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            aload 4 /* W */
            aload 3 /* a4 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 4 /* W */
        11: .line 1310
      StackMap locals:
      StackMap stack:
            aload 4 /* W */
            areturn
        end local 5 // org.bouncycastle.math.ec.ECFieldElement a4Neg
        end local 4 // org.bouncycastle.math.ec.ECFieldElement W
        end local 3 // org.bouncycastle.math.ec.ECFieldElement a4
        end local 2 // org.bouncycastle.math.ec.ECFieldElement ZSquared
        end local 1 // org.bouncycastle.math.ec.ECFieldElement Z
        end local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Lorg/bouncycastle/math/ec/ECPoint$Fp;
            0   12     1         Z  Lorg/bouncycastle/math/ec/ECFieldElement;
            0   12     2  ZSquared  Lorg/bouncycastle/math/ec/ECFieldElement;
            1   12     3        a4  Lorg/bouncycastle/math/ec/ECFieldElement;
            6   12     4         W  Lorg/bouncycastle/math/ec/ECFieldElement;
            7   12     5     a4Neg  Lorg/bouncycastle/math/ec/ECFieldElement;
    MethodParameters:
          Name  Flags
      Z         
      ZSquared  

  protected org.bouncycastle.math.ec.ECFieldElement getJacobianModifiedW();
    descriptor: ()Lorg/bouncycastle/math/ec/ECFieldElement;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
         0: .line 1315
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.zs:[Lorg/bouncycastle/math/ec/ECFieldElement;
            iconst_1
            aaload
            astore 1 /* W */
        start local 1 // org.bouncycastle.math.ec.ECFieldElement W
         1: .line 1316
            aload 1 /* W */
            ifnonnull 3
         2: .line 1319
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.zs:[Lorg/bouncycastle/math/ec/ECFieldElement;
            iconst_1
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.zs:[Lorg/bouncycastle/math/ec/ECFieldElement;
            iconst_0
            aaload
            aconst_null
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.calculateJacobianModifiedW:(Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            dup
            astore 1 /* W */
            aastore
         3: .line 1321
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            aload 1 /* W */
            areturn
        end local 1 // org.bouncycastle.math.ec.ECFieldElement W
        end local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/bouncycastle/math/ec/ECPoint$Fp;
            1    4     1     W  Lorg/bouncycastle/math/ec/ECFieldElement;

  protected org.bouncycastle.math.ec.ECPoint$Fp twiceJacobianModified(boolean);
    descriptor: (Z)Lorg/bouncycastle/math/ec/ECPoint$Fp;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=9, locals=17, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
        start local 1 // boolean calculateW
         0: .line 1326
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.x:Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 2 /* X1 */
        start local 2 // org.bouncycastle.math.ec.ECFieldElement X1
         1: aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.y:Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 3 /* Y1 */
        start local 3 // org.bouncycastle.math.ec.ECFieldElement Y1
         2: aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.zs:[Lorg/bouncycastle/math/ec/ECFieldElement;
            iconst_0
            aaload
            astore 4 /* Z1 */
        start local 4 // org.bouncycastle.math.ec.ECFieldElement Z1
         3: aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.getJacobianModifiedW:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 5 /* W1 */
        start local 5 // org.bouncycastle.math.ec.ECFieldElement W1
         4: .line 1328
            aload 2 /* X1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 6 /* X1Squared */
        start local 6 // org.bouncycastle.math.ec.ECFieldElement X1Squared
         5: .line 1329
            aload 0 /* this */
            aload 6 /* X1Squared */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.three:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 5 /* W1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 7 /* M */
        start local 7 // org.bouncycastle.math.ec.ECFieldElement M
         6: .line 1330
            aload 0 /* this */
            aload 3 /* Y1 */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 8 /* _2Y1 */
        start local 8 // org.bouncycastle.math.ec.ECFieldElement _2Y1
         7: .line 1331
            aload 8 /* _2Y1 */
            aload 3 /* Y1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 9 /* _2Y1Squared */
        start local 9 // org.bouncycastle.math.ec.ECFieldElement _2Y1Squared
         8: .line 1332
            aload 0 /* this */
            aload 2 /* X1 */
            aload 9 /* _2Y1Squared */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 10 /* S */
        start local 10 // org.bouncycastle.math.ec.ECFieldElement S
         9: .line 1333
            aload 7 /* M */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            aload 10 /* S */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 11 /* X3 */
        start local 11 // org.bouncycastle.math.ec.ECFieldElement X3
        10: .line 1334
            aload 9 /* _2Y1Squared */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 12 /* _4T */
        start local 12 // org.bouncycastle.math.ec.ECFieldElement _4T
        11: .line 1335
            aload 0 /* this */
            aload 12 /* _4T */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 13 /* _8T */
        start local 13 // org.bouncycastle.math.ec.ECFieldElement _8T
        12: .line 1336
            aload 7 /* M */
            aload 10 /* S */
            aload 11 /* X3 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 13 /* _8T */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.subtract:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 14 /* Y3 */
        start local 14 // org.bouncycastle.math.ec.ECFieldElement Y3
        13: .line 1337
            iload 1 /* calculateW */
            ifeq 14
            aload 0 /* this */
            aload 13 /* _8T */
            aload 5 /* W1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.two:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            goto 15
      StackMap locals: org.bouncycastle.math.ec.ECPoint$Fp int 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 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 org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
        14: aconst_null
      StackMap locals:
      StackMap stack: org.bouncycastle.math.ec.ECFieldElement
        15: astore 15 /* W3 */
        start local 15 // org.bouncycastle.math.ec.ECFieldElement W3
        16: .line 1338
            aload 4 /* Z1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isOne:()Z
            ifeq 17
            aload 8 /* _2Y1 */
            goto 18
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
        17: aload 8 /* _2Y1 */
            aload 4 /* Z1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
      StackMap locals:
      StackMap stack: org.bouncycastle.math.ec.ECFieldElement
        18: astore 16 /* Z3 */
        start local 16 // org.bouncycastle.math.ec.ECFieldElement Z3
        19: .line 1340
            new org.bouncycastle.math.ec.ECPoint$Fp
            dup
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$Fp.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            aload 11 /* X3 */
            aload 14 /* Y3 */
            iconst_2
            anewarray org.bouncycastle.math.ec.ECFieldElement
            dup
            iconst_0
            aload 16 /* Z3 */
            aastore
            dup
            iconst_1
            aload 15 /* W3 */
            aastore
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$Fp.withCompression:Z
            invokespecial org.bouncycastle.math.ec.ECPoint$Fp.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;[Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
            areturn
        end local 16 // org.bouncycastle.math.ec.ECFieldElement Z3
        end local 15 // org.bouncycastle.math.ec.ECFieldElement W3
        end local 14 // org.bouncycastle.math.ec.ECFieldElement Y3
        end local 13 // org.bouncycastle.math.ec.ECFieldElement _8T
        end local 12 // org.bouncycastle.math.ec.ECFieldElement _4T
        end local 11 // org.bouncycastle.math.ec.ECFieldElement X3
        end local 10 // org.bouncycastle.math.ec.ECFieldElement S
        end local 9 // org.bouncycastle.math.ec.ECFieldElement _2Y1Squared
        end local 8 // org.bouncycastle.math.ec.ECFieldElement _2Y1
        end local 7 // org.bouncycastle.math.ec.ECFieldElement M
        end local 6 // org.bouncycastle.math.ec.ECFieldElement X1Squared
        end local 5 // org.bouncycastle.math.ec.ECFieldElement W1
        end local 4 // org.bouncycastle.math.ec.ECFieldElement Z1
        end local 3 // org.bouncycastle.math.ec.ECFieldElement Y1
        end local 2 // org.bouncycastle.math.ec.ECFieldElement X1
        end local 1 // boolean calculateW
        end local 0 // org.bouncycastle.math.ec.ECPoint$Fp this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   20     0         this  Lorg/bouncycastle/math/ec/ECPoint$Fp;
            0   20     1   calculateW  Z
            1   20     2           X1  Lorg/bouncycastle/math/ec/ECFieldElement;
            2   20     3           Y1  Lorg/bouncycastle/math/ec/ECFieldElement;
            3   20     4           Z1  Lorg/bouncycastle/math/ec/ECFieldElement;
            4   20     5           W1  Lorg/bouncycastle/math/ec/ECFieldElement;
            5   20     6    X1Squared  Lorg/bouncycastle/math/ec/ECFieldElement;
            6   20     7            M  Lorg/bouncycastle/math/ec/ECFieldElement;
            7   20     8         _2Y1  Lorg/bouncycastle/math/ec/ECFieldElement;
            8   20     9  _2Y1Squared  Lorg/bouncycastle/math/ec/ECFieldElement;
            9   20    10            S  Lorg/bouncycastle/math/ec/ECFieldElement;
           10   20    11           X3  Lorg/bouncycastle/math/ec/ECFieldElement;
           11   20    12          _4T  Lorg/bouncycastle/math/ec/ECFieldElement;
           12   20    13          _8T  Lorg/bouncycastle/math/ec/ECFieldElement;
           13   20    14           Y3  Lorg/bouncycastle/math/ec/ECFieldElement;
           16   20    15           W3  Lorg/bouncycastle/math/ec/ECFieldElement;
           19   20    16           Z3  Lorg/bouncycastle/math/ec/ECFieldElement;
    MethodParameters:
            Name  Flags
      calculateW  
}
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
  public Fp = org.bouncycastle.math.ec.ECPoint$Fp of org.bouncycastle.math.ec.ECPoint