public class org.bouncycastle.math.ec.ECFieldElement$Fp extends org.bouncycastle.math.ec.ECFieldElement$AbstractFp
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.math.ec.ECFieldElement$Fp
  super_class: org.bouncycastle.math.ec.ECFieldElement$AbstractFp
{
  java.math.BigInteger q;
    descriptor: Ljava/math/BigInteger;
    flags: (0x0000) 

  java.math.BigInteger r;
    descriptor: Ljava/math/BigInteger;
    flags: (0x0000) 

  java.math.BigInteger x;
    descriptor: Ljava/math/BigInteger;
    flags: (0x0000) 

  static java.math.BigInteger calculateResidue(java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;)Ljava/math/BigInteger;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.math.BigInteger p
         0: .line 102
            aload 0 /* p */
            invokevirtual java.math.BigInteger.bitLength:()I
            istore 1 /* bitLength */
        start local 1 // int bitLength
         1: .line 103
            iload 1 /* bitLength */
            bipush 96
            if_icmplt 5
         2: .line 105
            aload 0 /* p */
            iload 1 /* bitLength */
            bipush 64
            isub
            invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
            astore 2 /* firstWord */
        start local 2 // java.math.BigInteger firstWord
         3: .line 106
            aload 2 /* firstWord */
            invokevirtual java.math.BigInteger.longValue:()J
            ldc -1
            lcmp
            ifne 5
         4: .line 108
            getstatic org.bouncycastle.math.ec.ECFieldElement$Fp.ONE:Ljava/math/BigInteger;
            iload 1 /* bitLength */
            invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
            aload 0 /* p */
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            areturn
        end local 2 // java.math.BigInteger firstWord
         5: .line 111
      StackMap locals: int
      StackMap stack:
            aconst_null
            areturn
        end local 1 // int bitLength
        end local 0 // java.math.BigInteger p
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0          p  Ljava/math/BigInteger;
            1    6     1  bitLength  I
            3    5     2  firstWord  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      p     

  public void <init>(java.math.BigInteger, java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
        start local 1 // java.math.BigInteger q
        start local 2 // java.math.BigInteger x
         0: .line 119
            aload 0 /* this */
            aload 1 /* q */
            aload 1 /* q */
            invokestatic org.bouncycastle.math.ec.ECFieldElement$Fp.calculateResidue:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 2 /* x */
            invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
         1: .line 120
            return
        end local 2 // java.math.BigInteger x
        end local 1 // java.math.BigInteger q
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
            0    2     1     q  Ljava/math/BigInteger;
            0    2     2     x  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      q     
      x     

  void <init>(java.math.BigInteger, java.math.BigInteger, java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
        start local 1 // java.math.BigInteger q
        start local 2 // java.math.BigInteger r
        start local 3 // java.math.BigInteger x
         0: .line 122
            aload 0 /* this */
            invokespecial org.bouncycastle.math.ec.ECFieldElement$AbstractFp.<init>:()V
         1: .line 124
            aload 3 /* x */
            ifnull 2
            aload 3 /* x */
            invokevirtual java.math.BigInteger.signum:()I
            iflt 2
            aload 3 /* x */
            aload 1 /* q */
            invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
            iflt 3
         2: .line 126
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement$Fp java.math.BigInteger java.math.BigInteger java.math.BigInteger
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "x value invalid in Fp field element"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 129
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* q */
            putfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
         4: .line 130
            aload 0 /* this */
            aload 2 /* r */
            putfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
         5: .line 131
            aload 0 /* this */
            aload 3 /* x */
            putfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
         6: .line 132
            return
        end local 3 // java.math.BigInteger x
        end local 2 // java.math.BigInteger r
        end local 1 // java.math.BigInteger q
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
            0    7     1     q  Ljava/math/BigInteger;
            0    7     2     r  Ljava/math/BigInteger;
            0    7     3     x  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      q     
      r     
      x     

  public java.math.BigInteger toBigInteger();
    descriptor: ()Ljava/math/BigInteger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
         0: .line 136
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
            areturn
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;

  public java.lang.String getFieldName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
         0: .line 146
            ldc "Fp"
            areturn
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;

  public int getFieldSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
         0: .line 151
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.bitLength:()I
            ireturn
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;

  public java.math.BigInteger getQ();
    descriptor: ()Ljava/math/BigInteger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
         0: .line 156
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            areturn
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;

  public org.bouncycastle.math.ec.ECFieldElement add(org.bouncycastle.math.ec.ECFieldElement);
    descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
        start local 1 // org.bouncycastle.math.ec.ECFieldElement b
         0: .line 161
            new org.bouncycastle.math.ec.ECFieldElement$Fp
            dup
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
            aload 1 /* b */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modAdd:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            areturn
        end local 1 // org.bouncycastle.math.ec.ECFieldElement b
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
            0    1     1     b  Lorg/bouncycastle/math/ec/ECFieldElement;
    MethodParameters:
      Name  Flags
      b     

  public org.bouncycastle.math.ec.ECFieldElement addOne();
    descriptor: ()Lorg/bouncycastle/math/ec/ECFieldElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
         0: .line 166
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
            getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 1 /* x2 */
        start local 1 // java.math.BigInteger x2
         1: .line 167
            aload 1 /* x2 */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
            ifne 3
         2: .line 169
            getstatic org.bouncycastle.math.ec.ECConstants.ZERO:Ljava/math/BigInteger;
            astore 1 /* x2 */
         3: .line 171
      StackMap locals: java.math.BigInteger
      StackMap stack:
            new org.bouncycastle.math.ec.ECFieldElement$Fp
            dup
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
            aload 1 /* x2 */
            invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            areturn
        end local 1 // java.math.BigInteger x2
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
            1    4     1    x2  Ljava/math/BigInteger;

  public org.bouncycastle.math.ec.ECFieldElement subtract(org.bouncycastle.math.ec.ECFieldElement);
    descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
        start local 1 // org.bouncycastle.math.ec.ECFieldElement b
         0: .line 176
            new org.bouncycastle.math.ec.ECFieldElement$Fp
            dup
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
            aload 1 /* b */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modSubtract:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            areturn
        end local 1 // org.bouncycastle.math.ec.ECFieldElement b
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
            0    1     1     b  Lorg/bouncycastle/math/ec/ECFieldElement;
    MethodParameters:
      Name  Flags
      b     

  public org.bouncycastle.math.ec.ECFieldElement multiply(org.bouncycastle.math.ec.ECFieldElement);
    descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
        start local 1 // org.bouncycastle.math.ec.ECFieldElement b
         0: .line 181
            new org.bouncycastle.math.ec.ECFieldElement$Fp
            dup
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
            aload 1 /* b */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modMult:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            areturn
        end local 1 // org.bouncycastle.math.ec.ECFieldElement b
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
            0    1     1     b  Lorg/bouncycastle/math/ec/ECFieldElement;
    MethodParameters:
      Name  Flags
      b     

  public org.bouncycastle.math.ec.ECFieldElement multiplyMinusProduct(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;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=10, args_size=4
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
        start local 1 // org.bouncycastle.math.ec.ECFieldElement b
        start local 2 // org.bouncycastle.math.ec.ECFieldElement x
        start local 3 // org.bouncycastle.math.ec.ECFieldElement y
         0: .line 186
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
            astore 4 /* ax */
        start local 4 // java.math.BigInteger ax
         1: aload 1 /* b */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            astore 5 /* bx */
        start local 5 // java.math.BigInteger bx
         2: aload 2 /* x */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            astore 6 /* xx */
        start local 6 // java.math.BigInteger xx
         3: aload 3 /* y */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            astore 7 /* yx */
        start local 7 // java.math.BigInteger yx
         4: .line 187
            aload 4 /* ax */
            aload 5 /* bx */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 8 /* ab */
        start local 8 // java.math.BigInteger ab
         5: .line 188
            aload 6 /* xx */
            aload 7 /* yx */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 9 /* xy */
        start local 9 // java.math.BigInteger xy
         6: .line 189
            new org.bouncycastle.math.ec.ECFieldElement$Fp
            dup
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
            aload 0 /* this */
            aload 8 /* ab */
            aload 9 /* xy */
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modReduce:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            areturn
        end local 9 // java.math.BigInteger xy
        end local 8 // java.math.BigInteger ab
        end local 7 // java.math.BigInteger yx
        end local 6 // java.math.BigInteger xx
        end local 5 // java.math.BigInteger bx
        end local 4 // java.math.BigInteger ax
        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.ECFieldElement b
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
            0    7     1     b  Lorg/bouncycastle/math/ec/ECFieldElement;
            0    7     2     x  Lorg/bouncycastle/math/ec/ECFieldElement;
            0    7     3     y  Lorg/bouncycastle/math/ec/ECFieldElement;
            1    7     4    ax  Ljava/math/BigInteger;
            2    7     5    bx  Ljava/math/BigInteger;
            3    7     6    xx  Ljava/math/BigInteger;
            4    7     7    yx  Ljava/math/BigInteger;
            5    7     8    ab  Ljava/math/BigInteger;
            6    7     9    xy  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      b     
      x     
      y     

  public org.bouncycastle.math.ec.ECFieldElement multiplyPlusProduct(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;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=10, args_size=4
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
        start local 1 // org.bouncycastle.math.ec.ECFieldElement b
        start local 2 // org.bouncycastle.math.ec.ECFieldElement x
        start local 3 // org.bouncycastle.math.ec.ECFieldElement y
         0: .line 194
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
            astore 4 /* ax */
        start local 4 // java.math.BigInteger ax
         1: aload 1 /* b */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            astore 5 /* bx */
        start local 5 // java.math.BigInteger bx
         2: aload 2 /* x */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            astore 6 /* xx */
        start local 6 // java.math.BigInteger xx
         3: aload 3 /* y */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            astore 7 /* yx */
        start local 7 // java.math.BigInteger yx
         4: .line 195
            aload 4 /* ax */
            aload 5 /* bx */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 8 /* ab */
        start local 8 // java.math.BigInteger ab
         5: .line 196
            aload 6 /* xx */
            aload 7 /* yx */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 9 /* xy */
        start local 9 // java.math.BigInteger xy
         6: .line 197
            new org.bouncycastle.math.ec.ECFieldElement$Fp
            dup
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
            aload 0 /* this */
            aload 8 /* ab */
            aload 9 /* xy */
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modReduce:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            areturn
        end local 9 // java.math.BigInteger xy
        end local 8 // java.math.BigInteger ab
        end local 7 // java.math.BigInteger yx
        end local 6 // java.math.BigInteger xx
        end local 5 // java.math.BigInteger bx
        end local 4 // java.math.BigInteger ax
        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.ECFieldElement b
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
            0    7     1     b  Lorg/bouncycastle/math/ec/ECFieldElement;
            0    7     2     x  Lorg/bouncycastle/math/ec/ECFieldElement;
            0    7     3     y  Lorg/bouncycastle/math/ec/ECFieldElement;
            1    7     4    ax  Ljava/math/BigInteger;
            2    7     5    bx  Ljava/math/BigInteger;
            3    7     6    xx  Ljava/math/BigInteger;
            4    7     7    yx  Ljava/math/BigInteger;
            5    7     8    ab  Ljava/math/BigInteger;
            6    7     9    xy  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      b     
      x     
      y     

  public org.bouncycastle.math.ec.ECFieldElement divide(org.bouncycastle.math.ec.ECFieldElement);
    descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=2, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
        start local 1 // org.bouncycastle.math.ec.ECFieldElement b
         0: .line 202
            new org.bouncycastle.math.ec.ECFieldElement$Fp
            dup
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
            aload 0 /* this */
            aload 1 /* b */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modInverse:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modMult:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            areturn
        end local 1 // org.bouncycastle.math.ec.ECFieldElement b
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
            0    1     1     b  Lorg/bouncycastle/math/ec/ECFieldElement;
    MethodParameters:
      Name  Flags
      b     

  public org.bouncycastle.math.ec.ECFieldElement negate();
    descriptor: ()Lorg/bouncycastle/math/ec/ECFieldElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
         0: .line 207
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.signum:()I
            ifne 1
            aload 0 /* this */
            goto 2
      StackMap locals:
      StackMap stack:
         1: new org.bouncycastle.math.ec.ECFieldElement$Fp
            dup
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
      StackMap locals:
      StackMap stack: org.bouncycastle.math.ec.ECFieldElement$Fp
         2: areturn
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;

  public org.bouncycastle.math.ec.ECFieldElement square();
    descriptor: ()Lorg/bouncycastle/math/ec/ECFieldElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
         0: .line 212
            new org.bouncycastle.math.ec.ECFieldElement$Fp
            dup
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modMult:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            areturn
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;

  public org.bouncycastle.math.ec.ECFieldElement squareMinusProduct(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: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=8, args_size=3
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
        start local 1 // org.bouncycastle.math.ec.ECFieldElement x
        start local 2 // org.bouncycastle.math.ec.ECFieldElement y
         0: .line 217
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
            astore 3 /* ax */
        start local 3 // java.math.BigInteger ax
         1: aload 1 /* x */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            astore 4 /* xx */
        start local 4 // java.math.BigInteger xx
         2: aload 2 /* y */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            astore 5 /* yx */
        start local 5 // java.math.BigInteger yx
         3: .line 218
            aload 3 /* ax */
            aload 3 /* ax */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 6 /* aa */
        start local 6 // java.math.BigInteger aa
         4: .line 219
            aload 4 /* xx */
            aload 5 /* yx */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 7 /* xy */
        start local 7 // java.math.BigInteger xy
         5: .line 220
            new org.bouncycastle.math.ec.ECFieldElement$Fp
            dup
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
            aload 0 /* this */
            aload 6 /* aa */
            aload 7 /* xy */
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modReduce:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            areturn
        end local 7 // java.math.BigInteger xy
        end local 6 // java.math.BigInteger aa
        end local 5 // java.math.BigInteger yx
        end local 4 // java.math.BigInteger xx
        end local 3 // java.math.BigInteger ax
        end local 2 // org.bouncycastle.math.ec.ECFieldElement y
        end local 1 // org.bouncycastle.math.ec.ECFieldElement x
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
            0    6     1     x  Lorg/bouncycastle/math/ec/ECFieldElement;
            0    6     2     y  Lorg/bouncycastle/math/ec/ECFieldElement;
            1    6     3    ax  Ljava/math/BigInteger;
            2    6     4    xx  Ljava/math/BigInteger;
            3    6     5    yx  Ljava/math/BigInteger;
            4    6     6    aa  Ljava/math/BigInteger;
            5    6     7    xy  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      x     
      y     

  public org.bouncycastle.math.ec.ECFieldElement squarePlusProduct(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: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=8, args_size=3
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
        start local 1 // org.bouncycastle.math.ec.ECFieldElement x
        start local 2 // org.bouncycastle.math.ec.ECFieldElement y
         0: .line 225
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
            astore 3 /* ax */
        start local 3 // java.math.BigInteger ax
         1: aload 1 /* x */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            astore 4 /* xx */
        start local 4 // java.math.BigInteger xx
         2: aload 2 /* y */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            astore 5 /* yx */
        start local 5 // java.math.BigInteger yx
         3: .line 226
            aload 3 /* ax */
            aload 3 /* ax */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 6 /* aa */
        start local 6 // java.math.BigInteger aa
         4: .line 227
            aload 4 /* xx */
            aload 5 /* yx */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 7 /* xy */
        start local 7 // java.math.BigInteger xy
         5: .line 228
            new org.bouncycastle.math.ec.ECFieldElement$Fp
            dup
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
            aload 0 /* this */
            aload 6 /* aa */
            aload 7 /* xy */
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modReduce:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            areturn
        end local 7 // java.math.BigInteger xy
        end local 6 // java.math.BigInteger aa
        end local 5 // java.math.BigInteger yx
        end local 4 // java.math.BigInteger xx
        end local 3 // java.math.BigInteger ax
        end local 2 // org.bouncycastle.math.ec.ECFieldElement y
        end local 1 // org.bouncycastle.math.ec.ECFieldElement x
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
            0    6     1     x  Lorg/bouncycastle/math/ec/ECFieldElement;
            0    6     2     y  Lorg/bouncycastle/math/ec/ECFieldElement;
            1    6     3    ax  Ljava/math/BigInteger;
            2    6     4    xx  Ljava/math/BigInteger;
            3    6     5    yx  Ljava/math/BigInteger;
            4    6     6    aa  Ljava/math/BigInteger;
            5    6     7    xy  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      x     
      y     

  public org.bouncycastle.math.ec.ECFieldElement invert();
    descriptor: ()Lorg/bouncycastle/math/ec/ECFieldElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
         0: .line 234
            new org.bouncycastle.math.ec.ECFieldElement$Fp
            dup
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modInverse:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            areturn
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;

  public org.bouncycastle.math.ec.ECFieldElement sqrt();
    descriptor: ()Lorg/bouncycastle/math/ec/ECFieldElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=11, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
         0: .line 244
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.isZero:()Z
            ifne 1
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.isOne:()Z
            ifeq 2
         1: .line 246
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
         2: .line 249
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            iconst_0
            invokevirtual java.math.BigInteger.testBit:(I)Z
            ifne 4
         3: .line 251
            new java.lang.RuntimeException
            dup
            ldc "not done yet"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 257
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            iconst_1
            invokevirtual java.math.BigInteger.testBit:(I)Z
            ifeq 7
         5: .line 259
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            iconst_2
            invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
            getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 1 /* e */
        start local 1 // java.math.BigInteger e
         6: .line 260
            aload 0 /* this */
            new org.bouncycastle.math.ec.ECFieldElement$Fp
            dup
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
            aload 1 /* e */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.modPow:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.checkSqrt:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            areturn
        end local 1 // java.math.BigInteger e
         7: .line 263
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            iconst_2
            invokevirtual java.math.BigInteger.testBit:(I)Z
            ifeq 16
         8: .line 265
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            iconst_3
            invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.modPow:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 1 /* t1 */
        start local 1 // java.math.BigInteger t1
         9: .line 266
            aload 0 /* this */
            aload 1 /* t1 */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modMult:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 2 /* t2 */
        start local 2 // java.math.BigInteger t2
        10: .line 267
            aload 0 /* this */
            aload 2 /* t2 */
            aload 1 /* t1 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modMult:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 3 /* t3 */
        start local 3 // java.math.BigInteger t3
        11: .line 269
            aload 3 /* t3 */
            getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ifeq 13
        12: .line 271
            aload 0 /* this */
            new org.bouncycastle.math.ec.ECFieldElement$Fp
            dup
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
            aload 2 /* t2 */
            invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.checkSqrt:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            areturn
        13: .line 275
      StackMap locals: java.math.BigInteger java.math.BigInteger java.math.BigInteger
      StackMap stack:
            getstatic org.bouncycastle.math.ec.ECConstants.TWO:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            iconst_2
            invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.modPow:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 4 /* t4 */
        start local 4 // java.math.BigInteger t4
        14: .line 277
            aload 0 /* this */
            aload 2 /* t2 */
            aload 4 /* t4 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modMult:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 5 /* y */
        start local 5 // java.math.BigInteger y
        15: .line 279
            aload 0 /* this */
            new org.bouncycastle.math.ec.ECFieldElement$Fp
            dup
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
            aload 5 /* y */
            invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.checkSqrt:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            areturn
        end local 5 // java.math.BigInteger y
        end local 4 // java.math.BigInteger t4
        end local 3 // java.math.BigInteger t3
        end local 2 // java.math.BigInteger t2
        end local 1 // java.math.BigInteger t1
        16: .line 284
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            iconst_1
            invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
            astore 1 /* legendreExponent */
        start local 1 // java.math.BigInteger legendreExponent
        17: .line 285
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
            aload 1 /* legendreExponent */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.modPow:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
            getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ifne 19
        18: .line 287
            aconst_null
            areturn
        19: .line 290
      StackMap locals: java.math.BigInteger
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
            astore 2 /* X */
        start local 2 // java.math.BigInteger X
        20: .line 291
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* X */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modDouble:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modDouble:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 3 /* fourX */
        start local 3 // java.math.BigInteger fourX
        21: .line 293
            aload 1 /* legendreExponent */
            getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 4 /* k */
        start local 4 // java.math.BigInteger k
        22: aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 5 /* qMinusOne */
        start local 5 // java.math.BigInteger qMinusOne
        23: .line 296
            new java.util.Random
            dup
            invokespecial java.util.Random.<init>:()V
            astore 8 /* rand */
        start local 8 // java.util.Random rand
        24: .line 302
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement$Fp java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger top top java.util.Random
      StackMap stack:
            new java.math.BigInteger
            dup
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.bitLength:()I
            aload 8 /* rand */
            invokespecial java.math.BigInteger.<init>:(ILjava/util/Random;)V
            astore 9 /* P */
        start local 9 // java.math.BigInteger P
        25: .line 304
            aload 9 /* P */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
            ifge 24
        26: .line 305
            aload 0 /* this */
            aload 9 /* P */
            aload 9 /* P */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 3 /* fourX */
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modReduce:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 1 /* legendreExponent */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.modPow:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 5 /* qMinusOne */
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ifeq 24
        27: .line 307
            aload 0 /* this */
            aload 9 /* P */
            aload 2 /* X */
            aload 4 /* k */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.lucasSequence:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)[Ljava/math/BigInteger;
            astore 10 /* result */
        start local 10 // java.math.BigInteger[] result
        28: .line 308
            aload 10 /* result */
            iconst_0
            aaload
            astore 6 /* U */
        start local 6 // java.math.BigInteger U
        29: .line 309
            aload 10 /* result */
            iconst_1
            aaload
            astore 7 /* V */
        start local 7 // java.math.BigInteger V
        30: .line 311
            aload 0 /* this */
            aload 7 /* V */
            aload 7 /* V */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modMult:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 3 /* fourX */
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ifeq 32
        31: .line 313
            new org.bouncycastle.math.ec.ECFieldElement$Fp
            dup
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
            aload 0 /* this */
            aload 7 /* V */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modHalfAbs:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokespecial org.bouncycastle.math.ec.ECFieldElement$Fp.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            areturn
        end local 10 // java.math.BigInteger[] result
        end local 9 // java.math.BigInteger P
        32: .line 316
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement$Fp java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.util.Random
      StackMap stack:
            aload 6 /* U */
            getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ifne 24
            aload 6 /* U */
            aload 5 /* qMinusOne */
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ifne 24
        33: .line 318
            aconst_null
            areturn
        end local 8 // java.util.Random rand
        end local 7 // java.math.BigInteger V
        end local 6 // java.math.BigInteger U
        end local 5 // java.math.BigInteger qMinusOne
        end local 4 // java.math.BigInteger k
        end local 3 // java.math.BigInteger fourX
        end local 2 // java.math.BigInteger X
        end local 1 // java.math.BigInteger legendreExponent
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   34     0              this  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
            6    7     1                 e  Ljava/math/BigInteger;
            9   16     1                t1  Ljava/math/BigInteger;
           10   16     2                t2  Ljava/math/BigInteger;
           11   16     3                t3  Ljava/math/BigInteger;
           14   16     4                t4  Ljava/math/BigInteger;
           15   16     5                 y  Ljava/math/BigInteger;
           17   34     1  legendreExponent  Ljava/math/BigInteger;
           20   34     2                 X  Ljava/math/BigInteger;
           21   34     3             fourX  Ljava/math/BigInteger;
           22   34     4                 k  Ljava/math/BigInteger;
           23   34     5         qMinusOne  Ljava/math/BigInteger;
           29   34     6                 U  Ljava/math/BigInteger;
           30   34     7                 V  Ljava/math/BigInteger;
           24   34     8              rand  Ljava/util/Random;
           25   32     9                 P  Ljava/math/BigInteger;
           28   32    10            result  [Ljava/math/BigInteger;

  private org.bouncycastle.math.ec.ECFieldElement checkSqrt(org.bouncycastle.math.ec.ECFieldElement);
    descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
        start local 1 // org.bouncycastle.math.ec.ECFieldElement z
         0: .line 323
            aload 1 /* z */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 1
            aload 1 /* z */
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: org.bouncycastle.math.ec.ECFieldElement
         2: areturn
        end local 1 // org.bouncycastle.math.ec.ECFieldElement z
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
            0    3     1     z  Lorg/bouncycastle/math/ec/ECFieldElement;
    MethodParameters:
      Name  Flags
      z     

  private java.math.BigInteger[] lucasSequence(java.math.BigInteger, java.math.BigInteger, java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)[Ljava/math/BigInteger;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=12, args_size=4
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
        start local 1 // java.math.BigInteger P
        start local 2 // java.math.BigInteger Q
        start local 3 // java.math.BigInteger k
         0: .line 333
            aload 3 /* k */
            invokevirtual java.math.BigInteger.bitLength:()I
            istore 4 /* n */
        start local 4 // int n
         1: .line 334
            aload 3 /* k */
            invokevirtual java.math.BigInteger.getLowestSetBit:()I
            istore 5 /* s */
        start local 5 // int s
         2: .line 338
            getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
            astore 6 /* Uh */
        start local 6 // java.math.BigInteger Uh
         3: .line 339
            getstatic org.bouncycastle.math.ec.ECConstants.TWO:Ljava/math/BigInteger;
            astore 7 /* Vl */
        start local 7 // java.math.BigInteger Vl
         4: .line 340
            aload 1 /* P */
            astore 8 /* Vh */
        start local 8 // java.math.BigInteger Vh
         5: .line 341
            getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
            astore 9 /* Ql */
        start local 9 // java.math.BigInteger Ql
         6: .line 342
            getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
            astore 10 /* Qh */
        start local 10 // java.math.BigInteger Qh
         7: .line 344
            iload 4 /* n */
            iconst_1
            isub
            istore 11 /* j */
        start local 11 // int j
         8: goto 21
         9: .line 346
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement$Fp java.math.BigInteger java.math.BigInteger java.math.BigInteger int int java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger int
      StackMap stack:
            aload 0 /* this */
            aload 9 /* Ql */
            aload 10 /* Qh */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modMult:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 9 /* Ql */
        10: .line 348
            aload 3 /* k */
            iload 11 /* j */
            invokevirtual java.math.BigInteger.testBit:(I)Z
            ifeq 16
        11: .line 350
            aload 0 /* this */
            aload 9 /* Ql */
            aload 2 /* Q */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modMult:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 10 /* Qh */
        12: .line 351
            aload 0 /* this */
            aload 6 /* Uh */
            aload 8 /* Vh */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modMult:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 6 /* Uh */
        13: .line 352
            aload 0 /* this */
            aload 8 /* Vh */
            aload 7 /* Vl */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 1 /* P */
            aload 9 /* Ql */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modReduce:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 7 /* Vl */
        14: .line 353
            aload 0 /* this */
            aload 8 /* Vh */
            aload 8 /* Vh */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 10 /* Qh */
            iconst_1
            invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modReduce:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 8 /* Vh */
        15: .line 354
            goto 20
        16: .line 357
      StackMap locals:
      StackMap stack:
            aload 9 /* Ql */
            astore 10 /* Qh */
        17: .line 358
            aload 0 /* this */
            aload 6 /* Uh */
            aload 7 /* Vl */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 9 /* Ql */
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modReduce:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 6 /* Uh */
        18: .line 359
            aload 0 /* this */
            aload 8 /* Vh */
            aload 7 /* Vl */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 1 /* P */
            aload 9 /* Ql */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modReduce:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 8 /* Vh */
        19: .line 360
            aload 0 /* this */
            aload 7 /* Vl */
            aload 7 /* Vl */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 9 /* Ql */
            iconst_1
            invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modReduce:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 7 /* Vl */
        20: .line 344
      StackMap locals:
      StackMap stack:
            iinc 11 /* j */ -1
      StackMap locals:
      StackMap stack:
        21: iload 11 /* j */
            iload 5 /* s */
            iconst_1
            iadd
            if_icmpge 9
        end local 11 // int j
        22: .line 364
            aload 0 /* this */
            aload 9 /* Ql */
            aload 10 /* Qh */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modMult:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 9 /* Ql */
        23: .line 365
            aload 0 /* this */
            aload 9 /* Ql */
            aload 2 /* Q */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modMult:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 10 /* Qh */
        24: .line 366
            aload 0 /* this */
            aload 6 /* Uh */
            aload 7 /* Vl */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 9 /* Ql */
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modReduce:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 6 /* Uh */
        25: .line 367
            aload 0 /* this */
            aload 8 /* Vh */
            aload 7 /* Vl */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 1 /* P */
            aload 9 /* Ql */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modReduce:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 7 /* Vl */
        26: .line 368
            aload 0 /* this */
            aload 9 /* Ql */
            aload 10 /* Qh */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modMult:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 9 /* Ql */
        27: .line 370
            iconst_1
            istore 11 /* j */
        start local 11 // int j
        28: goto 33
        29: .line 372
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* Uh */
            aload 7 /* Vl */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modMult:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 6 /* Uh */
        30: .line 373
            aload 0 /* this */
            aload 7 /* Vl */
            aload 7 /* Vl */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 9 /* Ql */
            iconst_1
            invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modReduce:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 7 /* Vl */
        31: .line 374
            aload 0 /* this */
            aload 9 /* Ql */
            aload 9 /* Ql */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modMult:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 9 /* Ql */
        32: .line 370
            iinc 11 /* j */ 1
      StackMap locals:
      StackMap stack:
        33: iload 11 /* j */
            iload 5 /* s */
            if_icmple 29
        end local 11 // int j
        34: .line 377
            iconst_2
            anewarray java.math.BigInteger
            dup
            iconst_0
            aload 6 /* Uh */
            aastore
            dup
            iconst_1
            aload 7 /* Vl */
            aastore
            areturn
        end local 10 // java.math.BigInteger Qh
        end local 9 // java.math.BigInteger Ql
        end local 8 // java.math.BigInteger Vh
        end local 7 // java.math.BigInteger Vl
        end local 6 // java.math.BigInteger Uh
        end local 5 // int s
        end local 4 // int n
        end local 3 // java.math.BigInteger k
        end local 2 // java.math.BigInteger Q
        end local 1 // java.math.BigInteger P
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   35     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
            0   35     1     P  Ljava/math/BigInteger;
            0   35     2     Q  Ljava/math/BigInteger;
            0   35     3     k  Ljava/math/BigInteger;
            1   35     4     n  I
            2   35     5     s  I
            3   35     6    Uh  Ljava/math/BigInteger;
            4   35     7    Vl  Ljava/math/BigInteger;
            5   35     8    Vh  Ljava/math/BigInteger;
            6   35     9    Ql  Ljava/math/BigInteger;
            7   35    10    Qh  Ljava/math/BigInteger;
            8   22    11     j  I
           28   34    11     j  I
    MethodParameters:
      Name  Flags
      P     
      Q     
      k     

  protected java.math.BigInteger modAdd(java.math.BigInteger, java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
        start local 1 // java.math.BigInteger x1
        start local 2 // java.math.BigInteger x2
         0: .line 382
            aload 1 /* x1 */
            aload 2 /* x2 */
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 3 /* x3 */
        start local 3 // java.math.BigInteger x3
         1: .line 383
            aload 3 /* x3 */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
            iflt 3
         2: .line 385
            aload 3 /* x3 */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 3 /* x3 */
         3: .line 387
      StackMap locals: java.math.BigInteger
      StackMap stack:
            aload 3 /* x3 */
            areturn
        end local 3 // java.math.BigInteger x3
        end local 2 // java.math.BigInteger x2
        end local 1 // java.math.BigInteger x1
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
            0    4     1    x1  Ljava/math/BigInteger;
            0    4     2    x2  Ljava/math/BigInteger;
            1    4     3    x3  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      x1    
      x2    

  protected java.math.BigInteger modDouble(java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;)Ljava/math/BigInteger;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
        start local 1 // java.math.BigInteger x
         0: .line 392
            aload 1 /* x */
            iconst_1
            invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
            astore 2 /* _2x */
        start local 2 // java.math.BigInteger _2x
         1: .line 393
            aload 2 /* _2x */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
            iflt 3
         2: .line 395
            aload 2 /* _2x */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 2 /* _2x */
         3: .line 397
      StackMap locals: java.math.BigInteger
      StackMap stack:
            aload 2 /* _2x */
            areturn
        end local 2 // java.math.BigInteger _2x
        end local 1 // java.math.BigInteger x
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
            0    4     1     x  Ljava/math/BigInteger;
            1    4     2   _2x  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      x     

  protected java.math.BigInteger modHalf(java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;)Ljava/math/BigInteger;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
        start local 1 // java.math.BigInteger x
         0: .line 402
            aload 1 /* x */
            iconst_0
            invokevirtual java.math.BigInteger.testBit:(I)Z
            ifeq 2
         1: .line 404
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            aload 1 /* x */
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 1 /* x */
         2: .line 406
      StackMap locals:
      StackMap stack:
            aload 1 /* x */
            iconst_1
            invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
            areturn
        end local 1 // java.math.BigInteger x
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
            0    3     1     x  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      x     

  protected java.math.BigInteger modHalfAbs(java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;)Ljava/math/BigInteger;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
        start local 1 // java.math.BigInteger x
         0: .line 411
            aload 1 /* x */
            iconst_0
            invokevirtual java.math.BigInteger.testBit:(I)Z
            ifeq 2
         1: .line 413
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            aload 1 /* x */
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 1 /* x */
         2: .line 415
      StackMap locals:
      StackMap stack:
            aload 1 /* x */
            iconst_1
            invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
            areturn
        end local 1 // java.math.BigInteger x
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
            0    3     1     x  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      x     

  protected java.math.BigInteger modInverse(java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;)Ljava/math/BigInteger;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
        start local 1 // java.math.BigInteger x
         0: .line 420
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.getFieldSize:()I
            istore 2 /* bits */
        start local 2 // int bits
         1: .line 421
            iload 2 /* bits */
            bipush 31
            iadd
            iconst_5
            ishr
            istore 3 /* len */
        start local 3 // int len
         2: .line 422
            iload 2 /* bits */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            invokestatic org.bouncycastle.math.raw.Nat.fromBigInteger:(ILjava/math/BigInteger;)[I
            astore 4 /* p */
        start local 4 // int[] p
         3: .line 423
            iload 2 /* bits */
            aload 1 /* x */
            invokestatic org.bouncycastle.math.raw.Nat.fromBigInteger:(ILjava/math/BigInteger;)[I
            astore 5 /* n */
        start local 5 // int[] n
         4: .line 424
            iload 3 /* len */
            invokestatic org.bouncycastle.math.raw.Nat.create:(I)[I
            astore 6 /* z */
        start local 6 // int[] z
         5: .line 425
            aload 4 /* p */
            aload 5 /* n */
            aload 6 /* z */
            invokestatic org.bouncycastle.math.raw.Mod.invert:([I[I[I)V
         6: .line 426
            iload 3 /* len */
            aload 6 /* z */
            invokestatic org.bouncycastle.math.raw.Nat.toBigInteger:(I[I)Ljava/math/BigInteger;
            areturn
        end local 6 // int[] z
        end local 5 // int[] n
        end local 4 // int[] p
        end local 3 // int len
        end local 2 // int bits
        end local 1 // java.math.BigInteger x
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
            0    7     1     x  Ljava/math/BigInteger;
            1    7     2  bits  I
            2    7     3   len  I
            3    7     4     p  [I
            4    7     5     n  [I
            5    7     6     z  [I
    MethodParameters:
      Name  Flags
      x     

  protected java.math.BigInteger modMult(java.math.BigInteger, java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
        start local 1 // java.math.BigInteger x1
        start local 2 // java.math.BigInteger x2
         0: .line 431
            aload 0 /* this */
            aload 1 /* x1 */
            aload 2 /* x2 */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$Fp.modReduce:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            areturn
        end local 2 // java.math.BigInteger x2
        end local 1 // java.math.BigInteger x1
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
            0    1     1    x1  Ljava/math/BigInteger;
            0    1     2    x2  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      x1    
      x2    

  protected java.math.BigInteger modReduce(java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;)Ljava/math/BigInteger;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
        start local 1 // java.math.BigInteger x
         0: .line 436
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
            ifnull 21
         1: .line 438
            aload 1 /* x */
            invokevirtual java.math.BigInteger.signum:()I
            ifge 2
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: istore 2 /* negative */
        start local 2 // boolean negative
         4: .line 439
            iload 2 /* negative */
            ifeq 6
         5: .line 441
            aload 1 /* x */
            invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
            astore 1 /* x */
         6: .line 443
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.bitLength:()I
            istore 3 /* qLen */
        start local 3 // int qLen
         7: .line 444
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
            getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            istore 4 /* rIsOne */
        start local 4 // boolean rIsOne
         8: .line 445
            goto 14
         9: .line 447
      StackMap locals: int int
      StackMap stack:
            aload 1 /* x */
            iload 3 /* qLen */
            invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
            astore 5 /* u */
        start local 5 // java.math.BigInteger u
        10: .line 448
            aload 1 /* x */
            aload 5 /* u */
            iload 3 /* qLen */
            invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 6 /* v */
        start local 6 // java.math.BigInteger v
        11: .line 449
            iload 4 /* rIsOne */
            ifne 13
        12: .line 451
            aload 5 /* u */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.r:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 5 /* u */
        13: .line 453
      StackMap locals: java.math.BigInteger java.math.BigInteger
      StackMap stack:
            aload 5 /* u */
            aload 6 /* v */
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 1 /* x */
        end local 6 // java.math.BigInteger v
        end local 5 // java.math.BigInteger u
        14: .line 445
      StackMap locals:
      StackMap stack:
            aload 1 /* x */
            invokevirtual java.math.BigInteger.bitLength:()I
            iload 3 /* qLen */
            iconst_1
            iadd
            if_icmpgt 9
        15: .line 455
            goto 17
        16: .line 457
      StackMap locals:
      StackMap stack:
            aload 1 /* x */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 1 /* x */
        17: .line 455
      StackMap locals:
      StackMap stack:
            aload 1 /* x */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
            ifge 16
        18: .line 459
            iload 2 /* negative */
            ifeq 22
            aload 1 /* x */
            invokevirtual java.math.BigInteger.signum:()I
            ifeq 22
        19: .line 461
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            aload 1 /* x */
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 1 /* x */
        end local 4 // boolean rIsOne
        end local 3 // int qLen
        end local 2 // boolean negative
        20: .line 463
            goto 22
        21: .line 466
      StackMap locals:
      StackMap stack:
            aload 1 /* x */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 1 /* x */
        22: .line 468
      StackMap locals:
      StackMap stack:
            aload 1 /* x */
            areturn
        end local 1 // java.math.BigInteger x
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   23     0      this  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
            0   23     1         x  Ljava/math/BigInteger;
            4   20     2  negative  Z
            7   20     3      qLen  I
            8   20     4    rIsOne  Z
           10   14     5         u  Ljava/math/BigInteger;
           11   14     6         v  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      x     

  protected java.math.BigInteger modSubtract(java.math.BigInteger, java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
        start local 1 // java.math.BigInteger x1
        start local 2 // java.math.BigInteger x2
         0: .line 473
            aload 1 /* x1 */
            aload 2 /* x2 */
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 3 /* x3 */
        start local 3 // java.math.BigInteger x3
         1: .line 474
            aload 3 /* x3 */
            invokevirtual java.math.BigInteger.signum:()I
            ifge 3
         2: .line 476
            aload 3 /* x3 */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 3 /* x3 */
         3: .line 478
      StackMap locals: java.math.BigInteger
      StackMap stack:
            aload 3 /* x3 */
            areturn
        end local 3 // java.math.BigInteger x3
        end local 2 // java.math.BigInteger x2
        end local 1 // java.math.BigInteger x1
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
            0    4     1    x1  Ljava/math/BigInteger;
            0    4     2    x2  Ljava/math/BigInteger;
            1    4     3    x3  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      x1    
      x2    

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
        start local 1 // java.lang.Object other
         0: .line 483
            aload 1 /* other */
            aload 0 /* this */
            if_acmpne 2
         1: .line 485
            iconst_1
            ireturn
         2: .line 488
      StackMap locals:
      StackMap stack:
            aload 1 /* other */
            instanceof org.bouncycastle.math.ec.ECFieldElement$Fp
            ifne 4
         3: .line 490
            iconst_0
            ireturn
         4: .line 493
      StackMap locals:
      StackMap stack:
            aload 1 /* other */
            checkcast org.bouncycastle.math.ec.ECFieldElement$Fp
            astore 2 /* o */
        start local 2 // org.bouncycastle.math.ec.ECFieldElement$Fp o
         5: .line 494
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            aload 2 /* o */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ifeq 6
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
            aload 2 /* o */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ifeq 6
            iconst_1
            ireturn
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement$Fp
      StackMap stack:
         6: iconst_0
            ireturn
        end local 2 // org.bouncycastle.math.ec.ECFieldElement$Fp o
        end local 1 // java.lang.Object other
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
            0    7     1  other  Ljava/lang/Object;
            5    7     2      o  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
    MethodParameters:
       Name  Flags
      other  

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
         0: .line 499
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.q:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.hashCode:()I
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$Fp.x:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.hashCode:()I
            ixor
            ireturn
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$Fp this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$Fp;
}
SourceFile: "ECFieldElement.java"
NestHost: org.bouncycastle.math.ec.ECFieldElement
InnerClasses:
  public abstract AbstractFp = org.bouncycastle.math.ec.ECFieldElement$AbstractFp of org.bouncycastle.math.ec.ECFieldElement
  public Fp = org.bouncycastle.math.ec.ECFieldElement$Fp of org.bouncycastle.math.ec.ECFieldElement