public abstract class org.bouncycastle.math.ec.ECCurve$AbstractF2m extends org.bouncycastle.math.ec.ECCurve
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.bouncycastle.math.ec.ECCurve$AbstractF2m
  super_class: org.bouncycastle.math.ec.ECCurve
{
  private java.math.BigInteger[] si;
    descriptor: [Ljava/math/BigInteger;
    flags: (0x0002) ACC_PRIVATE

  public static java.math.BigInteger inverse(int, int[], java.math.BigInteger);
    descriptor: (I[ILjava/math/BigInteger;)Ljava/math/BigInteger;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // int m
        start local 1 // int[] ks
        start local 2 // java.math.BigInteger x
         0: .line 748
            new org.bouncycastle.math.ec.LongArray
            dup
            aload 2 /* x */
            invokespecial org.bouncycastle.math.ec.LongArray.<init>:(Ljava/math/BigInteger;)V
            iload 0 /* m */
            aload 1 /* ks */
            invokevirtual org.bouncycastle.math.ec.LongArray.modInverse:(I[I)Lorg/bouncycastle/math/ec/LongArray;
            invokevirtual org.bouncycastle.math.ec.LongArray.toBigInteger:()Ljava/math/BigInteger;
            areturn
        end local 2 // java.math.BigInteger x
        end local 1 // int[] ks
        end local 0 // int m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     m  I
            0    1     1    ks  [I
            0    1     2     x  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      m     
      ks    
      x     

  private static org.bouncycastle.math.field.FiniteField buildField(int, int, int, int);
    descriptor: (IIII)Lorg/bouncycastle/math/field/FiniteField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // int m
        start local 1 // int k1
        start local 2 // int k2
        start local 3 // int k3
         0: .line 760
            iload 1 /* k1 */
            ifne 2
         1: .line 762
            new java.lang.IllegalArgumentException
            dup
            ldc "k1 must be > 0"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 765
      StackMap locals:
      StackMap stack:
            iload 2 /* k2 */
            ifne 6
         3: .line 767
            iload 3 /* k3 */
            ifeq 5
         4: .line 769
            new java.lang.IllegalArgumentException
            dup
            ldc "k3 must be 0 if k2 == 0"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 772
      StackMap locals:
      StackMap stack:
            iconst_3
            newarray 10
            dup
            iconst_1
            iload 1 /* k1 */
            iastore
            dup
            iconst_2
            iload 0 /* m */
            iastore
            invokestatic org.bouncycastle.math.field.FiniteFields.getBinaryExtensionField:([I)Lorg/bouncycastle/math/field/PolynomialExtensionField;
            areturn
         6: .line 775
      StackMap locals:
      StackMap stack:
            iload 2 /* k2 */
            iload 1 /* k1 */
            if_icmpgt 8
         7: .line 777
            new java.lang.IllegalArgumentException
            dup
            ldc "k2 must be > k1"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 780
      StackMap locals:
      StackMap stack:
            iload 3 /* k3 */
            iload 2 /* k2 */
            if_icmpgt 10
         9: .line 782
            new java.lang.IllegalArgumentException
            dup
            ldc "k3 must be > k2"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 785
      StackMap locals:
      StackMap stack:
            iconst_5
            newarray 10
            dup
            iconst_1
            iload 1 /* k1 */
            iastore
            dup
            iconst_2
            iload 2 /* k2 */
            iastore
            dup
            iconst_3
            iload 3 /* k3 */
            iastore
            dup
            iconst_4
            iload 0 /* m */
            iastore
            invokestatic org.bouncycastle.math.field.FiniteFields.getBinaryExtensionField:([I)Lorg/bouncycastle/math/field/PolynomialExtensionField;
            areturn
        end local 3 // int k3
        end local 2 // int k2
        end local 1 // int k1
        end local 0 // int m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0     m  I
            0   11     1    k1  I
            0   11     2    k2  I
            0   11     3    k3  I
    MethodParameters:
      Name  Flags
      m     
      k1    
      k2    
      k3    

  protected void <init>(int, int, int, int);
    descriptor: (IIII)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.bouncycastle.math.ec.ECCurve$AbstractF2m this
        start local 1 // int m
        start local 2 // int k1
        start local 3 // int k2
        start local 4 // int k3
         0: .line 790
            aload 0 /* this */
            iload 1 /* m */
            iload 2 /* k1 */
            iload 3 /* k2 */
            iload 4 /* k3 */
            invokestatic org.bouncycastle.math.ec.ECCurve$AbstractF2m.buildField:(IIII)Lorg/bouncycastle/math/field/FiniteField;
            invokespecial org.bouncycastle.math.ec.ECCurve.<init>:(Lorg/bouncycastle/math/field/FiniteField;)V
         1: .line 756
            aload 0 /* this */
            aconst_null
            putfield org.bouncycastle.math.ec.ECCurve$AbstractF2m.si:[Ljava/math/BigInteger;
         2: .line 791
            return
        end local 4 // int k3
        end local 3 // int k2
        end local 2 // int k1
        end local 1 // int m
        end local 0 // org.bouncycastle.math.ec.ECCurve$AbstractF2m this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bouncycastle/math/ec/ECCurve$AbstractF2m;
            0    3     1     m  I
            0    3     2    k1  I
            0    3     3    k2  I
            0    3     4    k3  I
    MethodParameters:
      Name  Flags
      m     
      k1    
      k2    
      k3    

  public boolean isValidFieldElement(java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECCurve$AbstractF2m this
        start local 1 // java.math.BigInteger x
         0: .line 795
            aload 1 /* x */
            ifnull 1
            aload 1 /* x */
            invokevirtual java.math.BigInteger.signum:()I
            iflt 1
            aload 1 /* x */
            invokevirtual java.math.BigInteger.bitLength:()I
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.getFieldSize:()I
            if_icmpgt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.math.BigInteger x
        end local 0 // org.bouncycastle.math.ec.ECCurve$AbstractF2m this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bouncycastle/math/ec/ECCurve$AbstractF2m;
            0    2     1     x  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      x     

  public org.bouncycastle.math.ec.ECPoint createPoint(java.math.BigInteger, java.math.BigInteger, boolean);
    descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;Z)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // org.bouncycastle.math.ec.ECCurve$AbstractF2m this
        start local 1 // java.math.BigInteger x
        start local 2 // java.math.BigInteger y
        start local 3 // boolean withCompression
         0: .line 800
            aload 0 /* this */
            aload 1 /* x */
            invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.fromBigInteger:(Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 4 /* X */
        start local 4 // org.bouncycastle.math.ec.ECFieldElement X
         1: aload 0 /* this */
            aload 2 /* y */
            invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.fromBigInteger:(Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 5 /* Y */
        start local 5 // org.bouncycastle.math.ec.ECFieldElement Y
         2: .line 802
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.getCoordinateSystem:()I
            istore 6 /* coord */
        start local 6 // int coord
         3: .line 804
            iload 6 /* coord */
            tableswitch { // 5 - 6
                    5: 4
                    6: 4
              default: 9
          }
         4: .line 809
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement int
      StackMap stack:
            aload 4 /* X */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
            ifeq 7
         5: .line 811
            aload 5 /* Y */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.getB:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 9
         6: .line 813
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         7: .line 830
      StackMap locals:
      StackMap stack:
            aload 5 /* Y */
            aload 4 /* X */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.divide:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 4 /* X */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 5 /* Y */
         8: .line 832
            goto 9
         9: .line 840
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* X */
            aload 5 /* Y */
            iload 3 /* withCompression */
            invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.createRawPoint:(Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Z)Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        end local 6 // int coord
        end local 5 // org.bouncycastle.math.ec.ECFieldElement Y
        end local 4 // org.bouncycastle.math.ec.ECFieldElement X
        end local 3 // boolean withCompression
        end local 2 // java.math.BigInteger y
        end local 1 // java.math.BigInteger x
        end local 0 // org.bouncycastle.math.ec.ECCurve$AbstractF2m this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0             this  Lorg/bouncycastle/math/ec/ECCurve$AbstractF2m;
            0   10     1                x  Ljava/math/BigInteger;
            0   10     2                y  Ljava/math/BigInteger;
            0   10     3  withCompression  Z
            1   10     4                X  Lorg/bouncycastle/math/ec/ECFieldElement;
            2   10     5                Y  Lorg/bouncycastle/math/ec/ECFieldElement;
            3   10     6            coord  I
    MethodParameters:
                 Name  Flags
      x                
      y                
      withCompression  

  protected org.bouncycastle.math.ec.ECPoint decompressPoint(int, java.math.BigInteger);
    descriptor: (ILjava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // org.bouncycastle.math.ec.ECCurve$AbstractF2m this
        start local 1 // int yTilde
        start local 2 // java.math.BigInteger X1
         0: .line 854
            aload 0 /* this */
            aload 2 /* X1 */
            invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.fromBigInteger:(Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 3 /* x */
        start local 3 // org.bouncycastle.math.ec.ECFieldElement x
         1: aconst_null
            astore 4 /* y */
        start local 4 // org.bouncycastle.math.ec.ECFieldElement y
         2: .line 855
            aload 3 /* x */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
            ifeq 5
         3: .line 857
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.getB:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.sqrt:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 4 /* y */
         4: .line 858
            goto 16
         5: .line 861
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            aload 3 /* x */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.invert:()Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.getB:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.getA:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 3 /* x */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 5 /* beta */
        start local 5 // org.bouncycastle.math.ec.ECFieldElement beta
         6: .line 862
            aload 0 /* this */
            aload 5 /* beta */
            invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.solveQuadraticEquation:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 6 /* z */
        start local 6 // org.bouncycastle.math.ec.ECFieldElement z
         7: .line 863
            aload 6 /* z */
            ifnull 16
         8: .line 865
            aload 6 /* z */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.testBitZero:()Z
            iload 1 /* yTilde */
            iconst_1
            if_icmpne 9
            iconst_1
            goto 10
      StackMap locals: org.bouncycastle.math.ec.ECCurve$AbstractF2m int java.math.BigInteger org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement
      StackMap stack: int
         9: iconst_0
      StackMap locals: org.bouncycastle.math.ec.ECCurve$AbstractF2m int java.math.BigInteger org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement
      StackMap stack: int int
        10: if_icmpeq 12
        11: .line 867
            aload 6 /* z */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.addOne:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 6 /* z */
        12: .line 870
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.getCoordinateSystem:()I
            tableswitch { // 5 - 6
                    5: 13
                    6: 13
              default: 15
          }
        13: .line 875
      StackMap locals:
      StackMap stack:
            aload 6 /* z */
            aload 3 /* x */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 4 /* y */
        14: .line 876
            goto 16
        15: .line 880
      StackMap locals:
      StackMap stack:
            aload 6 /* z */
            aload 3 /* x */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 4 /* y */
        end local 6 // org.bouncycastle.math.ec.ECFieldElement z
        end local 5 // org.bouncycastle.math.ec.ECFieldElement beta
        16: .line 887
      StackMap locals:
      StackMap stack:
            aload 4 /* y */
            ifnonnull 18
        17: .line 889
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid point compression"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 892
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* x */
            aload 4 /* y */
            iconst_1
            invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.createRawPoint:(Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Z)Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        end local 4 // org.bouncycastle.math.ec.ECFieldElement y
        end local 3 // org.bouncycastle.math.ec.ECFieldElement x
        end local 2 // java.math.BigInteger X1
        end local 1 // int yTilde
        end local 0 // org.bouncycastle.math.ec.ECCurve$AbstractF2m this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   19     0    this  Lorg/bouncycastle/math/ec/ECCurve$AbstractF2m;
            0   19     1  yTilde  I
            0   19     2      X1  Ljava/math/BigInteger;
            1   19     3       x  Lorg/bouncycastle/math/ec/ECFieldElement;
            2   19     4       y  Lorg/bouncycastle/math/ec/ECFieldElement;
            6   16     5    beta  Lorg/bouncycastle/math/ec/ECFieldElement;
            7   16     6       z  Lorg/bouncycastle/math/ec/ECFieldElement;
    MethodParameters:
        Name  Flags
      yTilde  
      X1      

  protected org.bouncycastle.math.ec.ECFieldElement solveQuadraticEquation(org.bouncycastle.math.ec.ECFieldElement);
    descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=11, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECCurve$AbstractF2m this
        start local 1 // org.bouncycastle.math.ec.ECFieldElement beta
         0: .line 906
            aload 1 /* beta */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
            ifeq 2
         1: .line 908
            aload 1 /* beta */
            areturn
         2: .line 911
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.bouncycastle.math.ec.ECConstants.ZERO:Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.fromBigInteger:(Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 4 /* zeroElement */
        start local 4 // org.bouncycastle.math.ec.ECFieldElement zeroElement
         3: .line 913
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.getFieldSize:()I
            istore 5 /* m */
        start local 5 // int m
         4: .line 914
            new java.util.Random
            dup
            invokespecial java.util.Random.<init>:()V
            astore 6 /* rand */
        start local 6 // java.util.Random rand
         5: .line 917
      StackMap locals: org.bouncycastle.math.ec.ECCurve$AbstractF2m org.bouncycastle.math.ec.ECFieldElement top top org.bouncycastle.math.ec.ECFieldElement int java.util.Random
      StackMap stack:
            aload 0 /* this */
            new java.math.BigInteger
            dup
            iload 5 /* m */
            aload 6 /* rand */
            invokespecial java.math.BigInteger.<init>:(ILjava/util/Random;)V
            invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.fromBigInteger:(Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 7 /* t */
        start local 7 // org.bouncycastle.math.ec.ECFieldElement t
         6: .line 918
            aload 4 /* zeroElement */
            astore 3 /* z */
        start local 3 // org.bouncycastle.math.ec.ECFieldElement z
         7: .line 919
            aload 1 /* beta */
            astore 8 /* w */
        start local 8 // org.bouncycastle.math.ec.ECFieldElement w
         8: .line 920
            iconst_1
            istore 9 /* i */
        start local 9 // int i
         9: goto 14
        10: .line 922
      StackMap locals: org.bouncycastle.math.ec.ECCurve$AbstractF2m org.bouncycastle.math.ec.ECFieldElement top org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement int java.util.Random org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement int
      StackMap stack:
            aload 8 /* w */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 10 /* w2 */
        start local 10 // org.bouncycastle.math.ec.ECFieldElement w2
        11: .line 923
            aload 3 /* z */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 10 /* w2 */
            aload 7 /* t */
            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 3 /* z */
        12: .line 924
            aload 10 /* w2 */
            aload 1 /* beta */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 8 /* w */
        end local 10 // org.bouncycastle.math.ec.ECFieldElement w2
        13: .line 920
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 9 /* i */
            iload 5 /* m */
            if_icmplt 10
        end local 9 // int i
        15: .line 926
            aload 8 /* w */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
            ifne 17
        16: .line 928
            aconst_null
            areturn
        17: .line 930
      StackMap locals:
      StackMap stack:
            aload 3 /* z */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 3 /* z */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 2 /* gamma */
        end local 8 // org.bouncycastle.math.ec.ECFieldElement w
        end local 7 // org.bouncycastle.math.ec.ECFieldElement t
        start local 2 // org.bouncycastle.math.ec.ECFieldElement gamma
        18: .line 932
            aload 2 /* gamma */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
            ifne 5
        19: .line 934
            aload 3 /* z */
            areturn
        end local 6 // java.util.Random rand
        end local 5 // int m
        end local 4 // org.bouncycastle.math.ec.ECFieldElement zeroElement
        end local 3 // org.bouncycastle.math.ec.ECFieldElement z
        end local 2 // org.bouncycastle.math.ec.ECFieldElement gamma
        end local 1 // org.bouncycastle.math.ec.ECFieldElement beta
        end local 0 // org.bouncycastle.math.ec.ECCurve$AbstractF2m this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   20     0         this  Lorg/bouncycastle/math/ec/ECCurve$AbstractF2m;
            0   20     1         beta  Lorg/bouncycastle/math/ec/ECFieldElement;
           18   20     2        gamma  Lorg/bouncycastle/math/ec/ECFieldElement;
            7   20     3            z  Lorg/bouncycastle/math/ec/ECFieldElement;
            3   20     4  zeroElement  Lorg/bouncycastle/math/ec/ECFieldElement;
            4   20     5            m  I
            5   20     6         rand  Ljava/util/Random;
            6   18     7            t  Lorg/bouncycastle/math/ec/ECFieldElement;
            8   18     8            w  Lorg/bouncycastle/math/ec/ECFieldElement;
            9   15     9            i  I
           11   13    10           w2  Lorg/bouncycastle/math/ec/ECFieldElement;
    MethodParameters:
      Name  Flags
      beta  

  synchronized java.math.BigInteger[] getSi();
    descriptor: ()[Ljava/math/BigInteger;
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECCurve$AbstractF2m this
         0: .line 944
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECCurve$AbstractF2m.si:[Ljava/math/BigInteger;
            ifnonnull 2
         1: .line 946
            aload 0 /* this */
            aload 0 /* this */
            invokestatic org.bouncycastle.math.ec.Tnaf.getSi:(Lorg/bouncycastle/math/ec/ECCurve$AbstractF2m;)[Ljava/math/BigInteger;
            putfield org.bouncycastle.math.ec.ECCurve$AbstractF2m.si:[Ljava/math/BigInteger;
         2: .line 948
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECCurve$AbstractF2m.si:[Ljava/math/BigInteger;
            areturn
        end local 0 // org.bouncycastle.math.ec.ECCurve$AbstractF2m this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bouncycastle/math/ec/ECCurve$AbstractF2m;

  public boolean isKoblitz();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECCurve$AbstractF2m this
         0: .line 957
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECCurve$AbstractF2m.order:Ljava/math/BigInteger;
            ifnull 2
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECCurve$AbstractF2m.cofactor:Ljava/math/BigInteger;
            ifnull 2
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECCurve$AbstractF2m.b:Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isOne:()Z
            ifeq 2
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECCurve$AbstractF2m.a:Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
            ifne 1
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECCurve$AbstractF2m.a:Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isOne:()Z
            ifeq 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
        end local 0 // org.bouncycastle.math.ec.ECCurve$AbstractF2m this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bouncycastle/math/ec/ECCurve$AbstractF2m;
}
SourceFile: "ECCurve.java"
NestHost: org.bouncycastle.math.ec.ECCurve
InnerClasses:
  public abstract AbstractF2m = org.bouncycastle.math.ec.ECCurve$AbstractF2m of org.bouncycastle.math.ec.ECCurve