public class org.bouncycastle.math.ec.ECFieldElement$F2m extends org.bouncycastle.math.ec.ECFieldElement
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.math.ec.ECFieldElement$F2m
  super_class: org.bouncycastle.math.ec.ECFieldElement
{
  public static final int GNB;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int TPB;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int PPB;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private int representation;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int m;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int k1;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int k2;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int k3;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private org.bouncycastle.math.ec.IntArray x;
    descriptor: Lorg/bouncycastle/math/ec/IntArray;
    flags: (0x0002) ACC_PRIVATE

  private int t;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  public void <init>(int, int, int, int, java.math.BigInteger);
    descriptor: (IIIILjava/math/BigInteger;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=6
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
        start local 1 // int m
        start local 2 // int k1
        start local 3 // int k2
        start local 4 // int k3
        start local 5 // java.math.BigInteger x
         0: .line 855
            aload 0 /* this */
            invokespecial org.bouncycastle.math.ec.ECFieldElement.<init>:()V
         1: .line 863
            aload 0 /* this */
            iload 1 /* m */
            bipush 31
            iadd
            iconst_5
            ishr
            putfield org.bouncycastle.math.ec.ECFieldElement$F2m.t:I
         2: .line 864
            aload 0 /* this */
            new org.bouncycastle.math.ec.IntArray
            dup
            aload 5 /* x */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.t:I
            invokespecial org.bouncycastle.math.ec.IntArray.<init>:(Ljava/math/BigInteger;I)V
            putfield org.bouncycastle.math.ec.ECFieldElement$F2m.x:Lorg/bouncycastle/math/ec/IntArray;
         3: .line 866
            iload 3 /* k2 */
            ifne 6
            iload 4 /* k3 */
            ifne 6
         4: .line 868
            aload 0 /* this */
            iconst_2
            putfield org.bouncycastle.math.ec.ECFieldElement$F2m.representation:I
         5: .line 869
            goto 15
         6: .line 872
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement$F2m int int int int java.math.BigInteger
      StackMap stack:
            iload 3 /* k2 */
            iload 4 /* k3 */
            if_icmplt 10
         7: .line 874
            new java.lang.IllegalArgumentException
            dup
         8: .line 875
            ldc "k2 must be smaller than k3"
         9: .line 874
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 877
      StackMap locals:
      StackMap stack:
            iload 3 /* k2 */
            ifgt 14
        11: .line 879
            new java.lang.IllegalArgumentException
            dup
        12: .line 880
            ldc "k2 must be larger than 0"
        13: .line 879
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 882
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_3
            putfield org.bouncycastle.math.ec.ECFieldElement$F2m.representation:I
        15: .line 885
      StackMap locals:
      StackMap stack:
            aload 5 /* x */
            invokevirtual java.math.BigInteger.signum:()I
            ifge 17
        16: .line 887
            new java.lang.IllegalArgumentException
            dup
            ldc "x value cannot be negative"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 890
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* m */
            putfield org.bouncycastle.math.ec.ECFieldElement$F2m.m:I
        18: .line 891
            aload 0 /* this */
            iload 2 /* k1 */
            putfield org.bouncycastle.math.ec.ECFieldElement$F2m.k1:I
        19: .line 892
            aload 0 /* this */
            iload 3 /* k2 */
            putfield org.bouncycastle.math.ec.ECFieldElement$F2m.k2:I
        20: .line 893
            aload 0 /* this */
            iload 4 /* k3 */
            putfield org.bouncycastle.math.ec.ECFieldElement$F2m.k3:I
        21: .line 894
            return
        end local 5 // java.math.BigInteger x
        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.ECFieldElement$F2m this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   22     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;
            0   22     1     m  I
            0   22     2    k1  I
            0   22     3    k2  I
            0   22     4    k3  I
            0   22     5     x  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      m     
      k1    
      k2    
      k3    
      x     

  public void <init>(int, int, java.math.BigInteger);
    descriptor: (IILjava/math/BigInteger;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
        start local 1 // int m
        start local 2 // int k
        start local 3 // java.math.BigInteger x
         0: .line 908
            aload 0 /* this */
            iload 1 /* m */
            iload 2 /* k */
            iconst_0
            iconst_0
            aload 3 /* x */
            invokespecial org.bouncycastle.math.ec.ECFieldElement$F2m.<init>:(IIIILjava/math/BigInteger;)V
         1: .line 909
            return
        end local 3 // java.math.BigInteger x
        end local 2 // int k
        end local 1 // int m
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;
            0    2     1     m  I
            0    2     2     k  I
            0    2     3     x  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      m     
      k     
      x     

  private void <init>(int, int, int, int, org.bouncycastle.math.ec.IntArray);
    descriptor: (IIIILorg/bouncycastle/math/ec/IntArray;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=6
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
        start local 1 // int m
        start local 2 // int k1
        start local 3 // int k2
        start local 4 // int k3
        start local 5 // org.bouncycastle.math.ec.IntArray x
         0: .line 911
            aload 0 /* this */
            invokespecial org.bouncycastle.math.ec.ECFieldElement.<init>:()V
         1: .line 913
            aload 0 /* this */
            iload 1 /* m */
            bipush 31
            iadd
            iconst_5
            ishr
            putfield org.bouncycastle.math.ec.ECFieldElement$F2m.t:I
         2: .line 914
            aload 0 /* this */
            aload 5 /* x */
            putfield org.bouncycastle.math.ec.ECFieldElement$F2m.x:Lorg/bouncycastle/math/ec/IntArray;
         3: .line 915
            aload 0 /* this */
            iload 1 /* m */
            putfield org.bouncycastle.math.ec.ECFieldElement$F2m.m:I
         4: .line 916
            aload 0 /* this */
            iload 2 /* k1 */
            putfield org.bouncycastle.math.ec.ECFieldElement$F2m.k1:I
         5: .line 917
            aload 0 /* this */
            iload 3 /* k2 */
            putfield org.bouncycastle.math.ec.ECFieldElement$F2m.k2:I
         6: .line 918
            aload 0 /* this */
            iload 4 /* k3 */
            putfield org.bouncycastle.math.ec.ECFieldElement$F2m.k3:I
         7: .line 920
            iload 3 /* k2 */
            ifne 10
            iload 4 /* k3 */
            ifne 10
         8: .line 922
            aload 0 /* this */
            iconst_2
            putfield org.bouncycastle.math.ec.ECFieldElement$F2m.representation:I
         9: .line 923
            goto 11
        10: .line 926
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement$F2m int int int int org.bouncycastle.math.ec.IntArray
      StackMap stack:
            aload 0 /* this */
            iconst_3
            putfield org.bouncycastle.math.ec.ECFieldElement$F2m.representation:I
        11: .line 929
      StackMap locals:
      StackMap stack:
            return
        end local 5 // org.bouncycastle.math.ec.IntArray x
        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.ECFieldElement$F2m this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;
            0   12     1     m  I
            0   12     2    k1  I
            0   12     3    k2  I
            0   12     4    k3  I
            0   12     5     x  Lorg/bouncycastle/math/ec/IntArray;
    MethodParameters:
      Name  Flags
      m     
      k1    
      k2    
      k3    
      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$F2m this
         0: .line 933
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.x:Lorg/bouncycastle/math/ec/IntArray;
            invokevirtual org.bouncycastle.math.ec.IntArray.toBigInteger:()Ljava/math/BigInteger;
            areturn
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;

  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$F2m this
         0: .line 938
            ldc "F2m"
            areturn
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;

  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$F2m this
         0: .line 943
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.m:I
            ireturn
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;

  public static void checkFieldElements(org.bouncycastle.math.ec.ECFieldElement, org.bouncycastle.math.ec.ECFieldElement);
    descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECFieldElement a
        start local 1 // org.bouncycastle.math.ec.ECFieldElement b
         0: .line 961
            aload 0 /* a */
            instanceof org.bouncycastle.math.ec.ECFieldElement$F2m
            ifeq 1
            aload 1 /* b */
            instanceof org.bouncycastle.math.ec.ECFieldElement$F2m
            ifne 2
         1: .line 963
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Field elements are not both instances of ECFieldElement.F2m"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 967
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            checkcast org.bouncycastle.math.ec.ECFieldElement$F2m
            astore 2 /* aF2m */
        start local 2 // org.bouncycastle.math.ec.ECFieldElement$F2m aF2m
         3: .line 968
            aload 1 /* b */
            checkcast org.bouncycastle.math.ec.ECFieldElement$F2m
            astore 3 /* bF2m */
        start local 3 // org.bouncycastle.math.ec.ECFieldElement$F2m bF2m
         4: .line 970
            aload 2 /* aF2m */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.m:I
            aload 3 /* bF2m */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.m:I
            if_icmpne 6
            aload 2 /* aF2m */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k1:I
            aload 3 /* bF2m */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k1:I
            if_icmpne 6
         5: .line 971
            aload 2 /* aF2m */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k2:I
            aload 3 /* bF2m */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k2:I
            if_icmpne 6
            aload 2 /* aF2m */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k3:I
            aload 3 /* bF2m */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k3:I
            if_icmpeq 7
         6: .line 973
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement$F2m org.bouncycastle.math.ec.ECFieldElement$F2m
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Field elements are not elements of the same field F2m"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 977
      StackMap locals:
      StackMap stack:
            aload 2 /* aF2m */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.representation:I
            aload 3 /* bF2m */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.representation:I
            if_icmpeq 11
         8: .line 980
            new java.lang.IllegalArgumentException
            dup
         9: .line 981
            ldc "One of the field elements are not elements has incorrect representation"
        10: .line 980
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 984
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.bouncycastle.math.ec.ECFieldElement$F2m bF2m
        end local 2 // org.bouncycastle.math.ec.ECFieldElement$F2m aF2m
        end local 1 // org.bouncycastle.math.ec.ECFieldElement b
        end local 0 // org.bouncycastle.math.ec.ECFieldElement a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0     a  Lorg/bouncycastle/math/ec/ECFieldElement;
            0   12     1     b  Lorg/bouncycastle/math/ec/ECFieldElement;
            3   12     2  aF2m  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;
            4   12     3  bF2m  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;
    MethodParameters:
      Name  Flags
      a     
      b     

  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=4, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
        start local 1 // org.bouncycastle.math.ec.ECFieldElement b
         0: .line 991
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.x:Lorg/bouncycastle/math/ec/IntArray;
            invokevirtual org.bouncycastle.math.ec.IntArray.clone:()Ljava/lang/Object;
            checkcast org.bouncycastle.math.ec.IntArray
            astore 2 /* iarrClone */
        start local 2 // org.bouncycastle.math.ec.IntArray iarrClone
         1: .line 992
            aload 1 /* b */
            checkcast org.bouncycastle.math.ec.ECFieldElement$F2m
            astore 3 /* bF2m */
        start local 3 // org.bouncycastle.math.ec.ECFieldElement$F2m bF2m
         2: .line 993
            aload 2 /* iarrClone */
            aload 3 /* bF2m */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.x:Lorg/bouncycastle/math/ec/IntArray;
            iconst_0
            invokevirtual org.bouncycastle.math.ec.IntArray.addShifted:(Lorg/bouncycastle/math/ec/IntArray;I)V
         3: .line 994
            new org.bouncycastle.math.ec.ECFieldElement$F2m
            dup
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.m:I
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k1:I
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k2:I
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k3:I
            aload 2 /* iarrClone */
            invokespecial org.bouncycastle.math.ec.ECFieldElement$F2m.<init>:(IIIILorg/bouncycastle/math/ec/IntArray;)V
            areturn
        end local 3 // org.bouncycastle.math.ec.ECFieldElement$F2m bF2m
        end local 2 // org.bouncycastle.math.ec.IntArray iarrClone
        end local 1 // org.bouncycastle.math.ec.ECFieldElement b
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;
            0    4     1          b  Lorg/bouncycastle/math/ec/ECFieldElement;
            1    4     2  iarrClone  Lorg/bouncycastle/math/ec/IntArray;
            2    4     3       bF2m  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;
    MethodParameters:
      Name  Flags
      b     final

  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=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
        start local 1 // org.bouncycastle.math.ec.ECFieldElement b
         0: .line 1000
            aload 0 /* this */
            aload 1 /* b */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$F2m.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            areturn
        end local 1 // org.bouncycastle.math.ec.ECFieldElement b
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;
            0    1     1     b  Lorg/bouncycastle/math/ec/ECFieldElement;
    MethodParameters:
      Name  Flags
      b     final

  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=4, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
        start local 1 // org.bouncycastle.math.ec.ECFieldElement b
         0: .line 1012
            aload 1 /* b */
            checkcast org.bouncycastle.math.ec.ECFieldElement$F2m
            astore 2 /* bF2m */
        start local 2 // org.bouncycastle.math.ec.ECFieldElement$F2m bF2m
         1: .line 1013
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.x:Lorg/bouncycastle/math/ec/IntArray;
            aload 2 /* bF2m */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.x:Lorg/bouncycastle/math/ec/IntArray;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.m:I
            invokevirtual org.bouncycastle.math.ec.IntArray.multiply:(Lorg/bouncycastle/math/ec/IntArray;I)Lorg/bouncycastle/math/ec/IntArray;
            astore 3 /* mult */
        start local 3 // org.bouncycastle.math.ec.IntArray mult
         2: .line 1014
            aload 3 /* mult */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.m:I
            iconst_3
            newarray 10
            dup
            iconst_0
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k1:I
            iastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k2:I
            iastore
            dup
            iconst_2
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k3:I
            iastore
            invokevirtual org.bouncycastle.math.ec.IntArray.reduce:(I[I)V
         3: .line 1015
            new org.bouncycastle.math.ec.ECFieldElement$F2m
            dup
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.m:I
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k1:I
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k2:I
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k3:I
            aload 3 /* mult */
            invokespecial org.bouncycastle.math.ec.ECFieldElement$F2m.<init>:(IIIILorg/bouncycastle/math/ec/IntArray;)V
            areturn
        end local 3 // org.bouncycastle.math.ec.IntArray mult
        end local 2 // org.bouncycastle.math.ec.ECFieldElement$F2m bF2m
        end local 1 // org.bouncycastle.math.ec.ECFieldElement b
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;
            0    4     1     b  Lorg/bouncycastle/math/ec/ECFieldElement;
            1    4     2  bF2m  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;
            2    4     3  mult  Lorg/bouncycastle/math/ec/IntArray;
    MethodParameters:
      Name  Flags
      b     final

  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=2, locals=3, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
        start local 1 // org.bouncycastle.math.ec.ECFieldElement b
         0: .line 1021
            aload 1 /* b */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.invert:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 2 /* bInv */
        start local 2 // org.bouncycastle.math.ec.ECFieldElement bInv
         1: .line 1022
            aload 0 /* this */
            aload 2 /* bInv */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$F2m.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            areturn
        end local 2 // org.bouncycastle.math.ec.ECFieldElement bInv
        end local 1 // org.bouncycastle.math.ec.ECFieldElement b
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;
            0    2     1     b  Lorg/bouncycastle/math/ec/ECFieldElement;
            1    2     2  bInv  Lorg/bouncycastle/math/ec/ECFieldElement;
    MethodParameters:
      Name  Flags
      b     final

  public org.bouncycastle.math.ec.ECFieldElement negate();
    descriptor: ()Lorg/bouncycastle/math/ec/ECFieldElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
         0: .line 1028
            aload 0 /* this */
            areturn
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;

  public org.bouncycastle.math.ec.ECFieldElement square();
    descriptor: ()Lorg/bouncycastle/math/ec/ECFieldElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
         0: .line 1033
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.x:Lorg/bouncycastle/math/ec/IntArray;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.m:I
            invokevirtual org.bouncycastle.math.ec.IntArray.square:(I)Lorg/bouncycastle/math/ec/IntArray;
            astore 1 /* squared */
        start local 1 // org.bouncycastle.math.ec.IntArray squared
         1: .line 1034
            aload 1 /* squared */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.m:I
            iconst_3
            newarray 10
            dup
            iconst_0
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k1:I
            iastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k2:I
            iastore
            dup
            iconst_2
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k3:I
            iastore
            invokevirtual org.bouncycastle.math.ec.IntArray.reduce:(I[I)V
         2: .line 1035
            new org.bouncycastle.math.ec.ECFieldElement$F2m
            dup
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.m:I
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k1:I
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k2:I
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k3:I
            aload 1 /* squared */
            invokespecial org.bouncycastle.math.ec.ECFieldElement$F2m.<init>:(IIIILorg/bouncycastle/math/ec/IntArray;)V
            areturn
        end local 1 // org.bouncycastle.math.ec.IntArray squared
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;
            1    3     1  squared  Lorg/bouncycastle/math/ec/IntArray;

  public org.bouncycastle.math.ec.ECFieldElement invert();
    descriptor: ()Lorg/bouncycastle/math/ec/ECFieldElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=10, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
         0: .line 1046
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.x:Lorg/bouncycastle/math/ec/IntArray;
            invokevirtual org.bouncycastle.math.ec.IntArray.clone:()Ljava/lang/Object;
            checkcast org.bouncycastle.math.ec.IntArray
            astore 1 /* uz */
        start local 1 // org.bouncycastle.math.ec.IntArray uz
         1: .line 1049
            new org.bouncycastle.math.ec.IntArray
            dup
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.t:I
            invokespecial org.bouncycastle.math.ec.IntArray.<init>:(I)V
            astore 2 /* vz */
        start local 2 // org.bouncycastle.math.ec.IntArray vz
         2: .line 1050
            aload 2 /* vz */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.m:I
            invokevirtual org.bouncycastle.math.ec.IntArray.setBit:(I)V
         3: .line 1051
            aload 2 /* vz */
            iconst_0
            invokevirtual org.bouncycastle.math.ec.IntArray.setBit:(I)V
         4: .line 1052
            aload 2 /* vz */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k1:I
            invokevirtual org.bouncycastle.math.ec.IntArray.setBit:(I)V
         5: .line 1053
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.representation:I
            iconst_3
            if_icmpne 8
         6: .line 1055
            aload 2 /* vz */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k2:I
            invokevirtual org.bouncycastle.math.ec.IntArray.setBit:(I)V
         7: .line 1056
            aload 2 /* vz */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k3:I
            invokevirtual org.bouncycastle.math.ec.IntArray.setBit:(I)V
         8: .line 1060
      StackMap locals: org.bouncycastle.math.ec.IntArray org.bouncycastle.math.ec.IntArray
      StackMap stack:
            new org.bouncycastle.math.ec.IntArray
            dup
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.t:I
            invokespecial org.bouncycastle.math.ec.IntArray.<init>:(I)V
            astore 3 /* g1z */
        start local 3 // org.bouncycastle.math.ec.IntArray g1z
         9: .line 1061
            aload 3 /* g1z */
            iconst_0
            invokevirtual org.bouncycastle.math.ec.IntArray.setBit:(I)V
        10: .line 1062
            new org.bouncycastle.math.ec.IntArray
            dup
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.t:I
            invokespecial org.bouncycastle.math.ec.IntArray.<init>:(I)V
            astore 4 /* g2z */
        start local 4 // org.bouncycastle.math.ec.IntArray g2z
        11: .line 1065
            goto 27
        12: .line 1070
      StackMap locals: org.bouncycastle.math.ec.IntArray org.bouncycastle.math.ec.IntArray
      StackMap stack:
            aload 1 /* uz */
            invokevirtual org.bouncycastle.math.ec.IntArray.bitLength:()I
            aload 2 /* vz */
            invokevirtual org.bouncycastle.math.ec.IntArray.bitLength:()I
            isub
            istore 5 /* j */
        start local 5 // int j
        13: .line 1073
            iload 5 /* j */
            ifge 21
        14: .line 1075
            aload 1 /* uz */
            astore 6 /* uzCopy */
        start local 6 // org.bouncycastle.math.ec.IntArray uzCopy
        15: .line 1076
            aload 2 /* vz */
            astore 1 /* uz */
        16: .line 1077
            aload 6 /* uzCopy */
            astore 2 /* vz */
        17: .line 1079
            aload 3 /* g1z */
            astore 7 /* g1zCopy */
        start local 7 // org.bouncycastle.math.ec.IntArray g1zCopy
        18: .line 1080
            aload 4 /* g2z */
            astore 3 /* g1z */
        19: .line 1081
            aload 7 /* g1zCopy */
            astore 4 /* g2z */
        20: .line 1083
            iload 5 /* j */
            ineg
            istore 5 /* j */
        end local 7 // org.bouncycastle.math.ec.IntArray g1zCopy
        end local 6 // org.bouncycastle.math.ec.IntArray uzCopy
        21: .line 1093
      StackMap locals: int
      StackMap stack:
            iload 5 /* j */
            iconst_5
            ishr
            istore 6 /* jInt */
        start local 6 // int jInt
        22: .line 1095
            iload 5 /* j */
            bipush 31
            iand
            istore 7 /* jBit */
        start local 7 // int jBit
        23: .line 1096
            aload 2 /* vz */
            iload 7 /* jBit */
            invokevirtual org.bouncycastle.math.ec.IntArray.shiftLeft:(I)Lorg/bouncycastle/math/ec/IntArray;
            astore 8 /* vzShift */
        start local 8 // org.bouncycastle.math.ec.IntArray vzShift
        24: .line 1097
            aload 1 /* uz */
            aload 8 /* vzShift */
            iload 6 /* jInt */
            invokevirtual org.bouncycastle.math.ec.IntArray.addShifted:(Lorg/bouncycastle/math/ec/IntArray;I)V
        25: .line 1101
            aload 4 /* g2z */
            iload 7 /* jBit */
            invokevirtual org.bouncycastle.math.ec.IntArray.shiftLeft:(I)Lorg/bouncycastle/math/ec/IntArray;
            astore 9 /* g2zShift */
        start local 9 // org.bouncycastle.math.ec.IntArray g2zShift
        26: .line 1102
            aload 3 /* g1z */
            aload 9 /* g2zShift */
            iload 6 /* jInt */
            invokevirtual org.bouncycastle.math.ec.IntArray.addShifted:(Lorg/bouncycastle/math/ec/IntArray;I)V
        end local 9 // org.bouncycastle.math.ec.IntArray g2zShift
        end local 8 // org.bouncycastle.math.ec.IntArray vzShift
        end local 7 // int jBit
        end local 6 // int jInt
        end local 5 // int j
        27: .line 1065
      StackMap locals:
      StackMap stack:
            aload 1 /* uz */
            invokevirtual org.bouncycastle.math.ec.IntArray.isZero:()Z
            ifeq 12
        28: .line 1105
            new org.bouncycastle.math.ec.ECFieldElement$F2m
            dup
        29: .line 1106
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.m:I
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k1:I
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k2:I
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k3:I
            aload 4 /* g2z */
        30: .line 1105
            invokespecial org.bouncycastle.math.ec.ECFieldElement$F2m.<init>:(IIIILorg/bouncycastle/math/ec/IntArray;)V
            areturn
        end local 4 // org.bouncycastle.math.ec.IntArray g2z
        end local 3 // org.bouncycastle.math.ec.IntArray g1z
        end local 2 // org.bouncycastle.math.ec.IntArray vz
        end local 1 // org.bouncycastle.math.ec.IntArray uz
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   31     0      this  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;
            1   31     1        uz  Lorg/bouncycastle/math/ec/IntArray;
            2   31     2        vz  Lorg/bouncycastle/math/ec/IntArray;
            9   31     3       g1z  Lorg/bouncycastle/math/ec/IntArray;
           11   31     4       g2z  Lorg/bouncycastle/math/ec/IntArray;
           13   27     5         j  I
           15   21     6    uzCopy  Lorg/bouncycastle/math/ec/IntArray;
           18   21     7   g1zCopy  Lorg/bouncycastle/math/ec/IntArray;
           22   27     6      jInt  I
           23   27     7      jBit  I
           24   27     8   vzShift  Lorg/bouncycastle/math/ec/IntArray;
           26   27     9  g2zShift  Lorg/bouncycastle/math/ec/IntArray;

  public org.bouncycastle.math.ec.ECFieldElement sqrt();
    descriptor: ()Lorg/bouncycastle/math/ec/ECFieldElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
         0: .line 1111
            new java.lang.RuntimeException
            dup
            ldc "Not implemented"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;

  public int getRepresentation();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
         0: .line 1124
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.representation:I
            ireturn
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;

  public int getM();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
         0: .line 1133
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.m:I
            ireturn
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;

  public int getK1();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
         0: .line 1146
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k1:I
            ireturn
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;

  public int getK2();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
         0: .line 1157
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k2:I
            ireturn
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;

  public int getK3();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
         0: .line 1168
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k3:I
            ireturn
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;

  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$F2m this
        start local 1 // java.lang.Object anObject
         0: .line 1173
            aload 1 /* anObject */
            aload 0 /* this */
            if_acmpne 2
         1: .line 1175
            iconst_1
            ireturn
         2: .line 1178
      StackMap locals:
      StackMap stack:
            aload 1 /* anObject */
            instanceof org.bouncycastle.math.ec.ECFieldElement$F2m
            ifne 4
         3: .line 1180
            iconst_0
            ireturn
         4: .line 1183
      StackMap locals:
      StackMap stack:
            aload 1 /* anObject */
            checkcast org.bouncycastle.math.ec.ECFieldElement$F2m
            astore 2 /* b */
        start local 2 // org.bouncycastle.math.ec.ECFieldElement$F2m b
         5: .line 1185
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.m:I
            aload 2 /* b */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.m:I
            if_icmpne 10
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k1:I
            aload 2 /* b */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k1:I
            if_icmpne 10
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k2:I
            aload 2 /* b */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k2:I
            if_icmpne 10
         6: .line 1186
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k3:I
            aload 2 /* b */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k3:I
            if_icmpne 10
         7: .line 1187
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.representation:I
            aload 2 /* b */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.representation:I
            if_icmpne 10
         8: .line 1188
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.x:Lorg/bouncycastle/math/ec/IntArray;
            aload 2 /* b */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.x:Lorg/bouncycastle/math/ec/IntArray;
            invokevirtual org.bouncycastle.math.ec.IntArray.equals:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 1185
            iconst_1
            ireturn
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement$F2m
      StackMap stack:
        10: iconst_0
            ireturn
        end local 2 // org.bouncycastle.math.ec.ECFieldElement$F2m b
        end local 1 // java.lang.Object anObject
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;
            0   11     1  anObject  Ljava/lang/Object;
            5   11     2         b  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;
    MethodParameters:
          Name  Flags
      anObject  

  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$F2m this
         0: .line 1193
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.x:Lorg/bouncycastle/math/ec/IntArray;
            invokevirtual org.bouncycastle.math.ec.IntArray.hashCode:()I
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.m:I
            ixor
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k1:I
            ixor
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k2:I
            ixor
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECFieldElement$F2m.k3:I
            ixor
            ireturn
        end local 0 // org.bouncycastle.math.ec.ECFieldElement$F2m this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;
}
SourceFile: "ECFieldElement.java"
NestHost: org.bouncycastle.math.ec.ECFieldElement
InnerClasses:
  public F2m = org.bouncycastle.math.ec.ECFieldElement$F2m of org.bouncycastle.math.ec.ECFieldElement