public class org.bouncycastle.math.ec.ECPoint$F2m extends org.bouncycastle.math.ec.ECPoint
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.math.ec.ECPoint$F2m
  super_class: org.bouncycastle.math.ec.ECPoint
{
  public void <init>(org.bouncycastle.math.ec.ECCurve, org.bouncycastle.math.ec.ECFieldElement, org.bouncycastle.math.ec.ECFieldElement);
    descriptor: (Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.bouncycastle.math.ec.ECPoint$F2m this
        start local 1 // org.bouncycastle.math.ec.ECCurve curve
        start local 2 // org.bouncycastle.math.ec.ECFieldElement x
        start local 3 // org.bouncycastle.math.ec.ECFieldElement y
         0: .line 341
            aload 0 /* this */
            aload 1 /* curve */
            aload 2 /* x */
            aload 3 /* y */
            iconst_0
            invokespecial org.bouncycastle.math.ec.ECPoint$F2m.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
         1: .line 342
            return
        end local 3 // org.bouncycastle.math.ec.ECFieldElement y
        end local 2 // org.bouncycastle.math.ec.ECFieldElement x
        end local 1 // org.bouncycastle.math.ec.ECCurve curve
        end local 0 // org.bouncycastle.math.ec.ECPoint$F2m this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bouncycastle/math/ec/ECPoint$F2m;
            0    2     1  curve  Lorg/bouncycastle/math/ec/ECCurve;
            0    2     2      x  Lorg/bouncycastle/math/ec/ECFieldElement;
            0    2     3      y  Lorg/bouncycastle/math/ec/ECFieldElement;
    MethodParameters:
       Name  Flags
      curve  
      x      
      y      

  public void <init>(org.bouncycastle.math.ec.ECCurve, org.bouncycastle.math.ec.ECFieldElement, org.bouncycastle.math.ec.ECFieldElement, boolean);
    descriptor: (Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // org.bouncycastle.math.ec.ECPoint$F2m this
        start local 1 // org.bouncycastle.math.ec.ECCurve curve
        start local 2 // org.bouncycastle.math.ec.ECFieldElement x
        start local 3 // org.bouncycastle.math.ec.ECFieldElement y
        start local 4 // boolean withCompression
         0: .line 352
            aload 0 /* this */
            aload 1 /* curve */
            aload 2 /* x */
            aload 3 /* y */
            invokespecial org.bouncycastle.math.ec.ECPoint.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;)V
         1: .line 354
            aload 2 /* x */
            ifnull 2
            aload 3 /* y */
            ifnull 3
      StackMap locals: org.bouncycastle.math.ec.ECPoint$F2m org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement int
      StackMap stack:
         2: aload 2 /* x */
            ifnonnull 4
            aload 3 /* y */
            ifnull 4
         3: .line 356
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Exactly one of the field elements is null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 359
      StackMap locals:
      StackMap stack:
            aload 2 /* x */
            ifnull 8
         5: .line 362
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$F2m.x:Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$F2m.y:Lorg/bouncycastle/math/ec/ECFieldElement;
            invokestatic org.bouncycastle.math.ec.ECFieldElement$F2m.checkFieldElements:(Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;)V
         6: .line 365
            aload 1 /* curve */
            ifnull 8
         7: .line 367
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$F2m.x:Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$F2m.curve:Lorg/bouncycastle/math/ec/ECCurve;
            invokevirtual org.bouncycastle.math.ec.ECCurve.getA:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokestatic org.bouncycastle.math.ec.ECFieldElement$F2m.checkFieldElements:(Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;)V
         8: .line 371
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 4 /* withCompression */
            putfield org.bouncycastle.math.ec.ECPoint$F2m.withCompression:Z
         9: .line 372
            return
        end local 4 // boolean withCompression
        end local 3 // org.bouncycastle.math.ec.ECFieldElement y
        end local 2 // org.bouncycastle.math.ec.ECFieldElement x
        end local 1 // org.bouncycastle.math.ec.ECCurve curve
        end local 0 // org.bouncycastle.math.ec.ECPoint$F2m this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0             this  Lorg/bouncycastle/math/ec/ECPoint$F2m;
            0   10     1            curve  Lorg/bouncycastle/math/ec/ECCurve;
            0   10     2                x  Lorg/bouncycastle/math/ec/ECFieldElement;
            0   10     3                y  Lorg/bouncycastle/math/ec/ECFieldElement;
            0   10     4  withCompression  Z
    MethodParameters:
                 Name  Flags
      curve            
      x                
      y                
      withCompression  

  public byte[] getEncoded();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECPoint$F2m this
         0: .line 379
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$F2m.isInfinity:()Z
            ifeq 2
         1: .line 381
            iconst_1
            newarray 8
            areturn
         2: .line 384
      StackMap locals:
      StackMap stack:
            getstatic org.bouncycastle.math.ec.ECPoint.converter:Lorg/bouncycastle/asn1/x9/X9IntegerConverter;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$F2m.x:Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.asn1.x9.X9IntegerConverter.getByteLength:(Lorg/bouncycastle/math/ec/ECFieldElement;)I
            istore 1 /* byteCount */
        start local 1 // int byteCount
         3: .line 385
            getstatic org.bouncycastle.math.ec.ECPoint.converter:Lorg/bouncycastle/asn1/x9/X9IntegerConverter;
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$F2m.getX:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            iload 1 /* byteCount */
            invokevirtual org.bouncycastle.asn1.x9.X9IntegerConverter.integerToBytes:(Ljava/math/BigInteger;I)[B
            astore 2 /* X */
        start local 2 // byte[] X
         4: .line 388
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$F2m.withCompression:Z
            ifeq 13
         5: .line 391
            iload 1 /* byteCount */
            iconst_1
            iadd
            newarray 8
            astore 3 /* PO */
        start local 3 // byte[] PO
         6: .line 393
            aload 3 /* PO */
            iconst_0
            iconst_2
            bastore
         7: .line 399
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$F2m.getX:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            getstatic org.bouncycastle.math.ec.ECConstants.ZERO:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ifne 11
         8: .line 401
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$F2m.getY:()Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$F2m.getX:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.invert:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
         9: .line 402
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            iconst_0
            invokevirtual java.math.BigInteger.testBit:(I)Z
            ifeq 11
        10: .line 405
            aload 3 /* PO */
            iconst_0
            iconst_3
            bastore
        11: .line 409
      StackMap locals: int byte[] byte[]
      StackMap stack:
            aload 2 /* X */
            iconst_0
            aload 3 /* PO */
            iconst_1
            iload 1 /* byteCount */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        12: .line 410
            goto 18
        end local 3 // byte[] PO
        13: .line 413
      StackMap locals:
      StackMap stack:
            getstatic org.bouncycastle.math.ec.ECPoint.converter:Lorg/bouncycastle/asn1/x9/X9IntegerConverter;
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$F2m.getY:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            iload 1 /* byteCount */
            invokevirtual org.bouncycastle.asn1.x9.X9IntegerConverter.integerToBytes:(Ljava/math/BigInteger;I)[B
            astore 4 /* Y */
        start local 4 // byte[] Y
        14: .line 415
            iload 1 /* byteCount */
            iload 1 /* byteCount */
            iadd
            iconst_1
            iadd
            newarray 8
            astore 3 /* PO */
        start local 3 // byte[] PO
        15: .line 417
            aload 3 /* PO */
            iconst_0
            iconst_4
            bastore
        16: .line 418
            aload 2 /* X */
            iconst_0
            aload 3 /* PO */
            iconst_1
            iload 1 /* byteCount */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        17: .line 419
            aload 4 /* Y */
            iconst_0
            aload 3 /* PO */
            iload 1 /* byteCount */
            iconst_1
            iadd
            iload 1 /* byteCount */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        end local 4 // byte[] Y
        18: .line 422
      StackMap locals: byte[]
      StackMap stack:
            aload 3 /* PO */
            areturn
        end local 3 // byte[] PO
        end local 2 // byte[] X
        end local 1 // int byteCount
        end local 0 // org.bouncycastle.math.ec.ECPoint$F2m this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   19     0       this  Lorg/bouncycastle/math/ec/ECPoint$F2m;
            3   19     1  byteCount  I
            4   19     2          X  [B
            6   13     3         PO  [B
           15   19     3         PO  [B
           14   18     4          Y  [B

  private static void checkPoints(org.bouncycastle.math.ec.ECPoint, org.bouncycastle.math.ec.ECPoint);
    descriptor: (Lorg/bouncycastle/math/ec/ECPoint;Lorg/bouncycastle/math/ec/ECPoint;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECPoint a
        start local 1 // org.bouncycastle.math.ec.ECPoint b
         0: .line 435
            aload 0 /* a */
            getfield org.bouncycastle.math.ec.ECPoint.curve:Lorg/bouncycastle/math/ec/ECCurve;
            aload 1 /* b */
            getfield org.bouncycastle.math.ec.ECPoint.curve:Lorg/bouncycastle/math/ec/ECCurve;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 437
            new java.lang.IllegalArgumentException
            dup
            ldc "Only points on the same curve can be added or subtracted"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 442
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.bouncycastle.math.ec.ECPoint b
        end local 0 // org.bouncycastle.math.ec.ECPoint a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     a  Lorg/bouncycastle/math/ec/ECPoint;
            0    3     1     b  Lorg/bouncycastle/math/ec/ECPoint;
    MethodParameters:
      Name  Flags
      a     
      b     

  public org.bouncycastle.math.ec.ECPoint add(org.bouncycastle.math.ec.ECPoint);
    descriptor: (Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECPoint$F2m this
        start local 1 // org.bouncycastle.math.ec.ECPoint b
         0: .line 449
            aload 0 /* this */
            aload 1 /* b */
            invokestatic org.bouncycastle.math.ec.ECPoint$F2m.checkPoints:(Lorg/bouncycastle/math/ec/ECPoint;Lorg/bouncycastle/math/ec/ECPoint;)V
         1: .line 450
            aload 0 /* this */
            aload 1 /* b */
            checkcast org.bouncycastle.math.ec.ECPoint$F2m
            invokevirtual org.bouncycastle.math.ec.ECPoint$F2m.addSimple:(Lorg/bouncycastle/math/ec/ECPoint$F2m;)Lorg/bouncycastle/math/ec/ECPoint$F2m;
            areturn
        end local 1 // org.bouncycastle.math.ec.ECPoint b
        end local 0 // org.bouncycastle.math.ec.ECPoint$F2m this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bouncycastle/math/ec/ECPoint$F2m;
            0    2     1     b  Lorg/bouncycastle/math/ec/ECPoint;
    MethodParameters:
      Name  Flags
      b     

  public org.bouncycastle.math.ec.ECPoint$F2m addSimple(org.bouncycastle.math.ec.ECPoint$F2m);
    descriptor: (Lorg/bouncycastle/math/ec/ECPoint$F2m;)Lorg/bouncycastle/math/ec/ECPoint$F2m;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECPoint$F2m this
        start local 1 // org.bouncycastle.math.ec.ECPoint$F2m b
         0: .line 464
            aload 1 /* b */
            astore 2 /* other */
        start local 2 // org.bouncycastle.math.ec.ECPoint$F2m other
         1: .line 465
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$F2m.isInfinity:()Z
            ifeq 3
         2: .line 467
            aload 2 /* other */
            areturn
         3: .line 470
      StackMap locals: org.bouncycastle.math.ec.ECPoint$F2m
      StackMap stack:
            aload 2 /* other */
            invokevirtual org.bouncycastle.math.ec.ECPoint$F2m.isInfinity:()Z
            ifeq 5
         4: .line 472
            aload 0 /* this */
            areturn
         5: .line 475
      StackMap locals:
      StackMap stack:
            aload 2 /* other */
            invokevirtual org.bouncycastle.math.ec.ECPoint$F2m.getX:()Lorg/bouncycastle/math/ec/ECFieldElement;
            checkcast org.bouncycastle.math.ec.ECFieldElement$F2m
            astore 3 /* x2 */
        start local 3 // org.bouncycastle.math.ec.ECFieldElement$F2m x2
         6: .line 476
            aload 2 /* other */
            invokevirtual org.bouncycastle.math.ec.ECPoint$F2m.getY:()Lorg/bouncycastle/math/ec/ECFieldElement;
            checkcast org.bouncycastle.math.ec.ECFieldElement$F2m
            astore 4 /* y2 */
        start local 4 // org.bouncycastle.math.ec.ECFieldElement$F2m y2
         7: .line 479
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$F2m.x:Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 3 /* x2 */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 11
         8: .line 481
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$F2m.y:Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 4 /* y2 */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 484
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$F2m.twice:()Lorg/bouncycastle/math/ec/ECPoint;
            checkcast org.bouncycastle.math.ec.ECPoint$F2m
            areturn
        10: .line 488
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement$F2m org.bouncycastle.math.ec.ECFieldElement$F2m
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$F2m.curve:Lorg/bouncycastle/math/ec/ECCurve;
            invokevirtual org.bouncycastle.math.ec.ECCurve.getInfinity:()Lorg/bouncycastle/math/ec/ECPoint;
            checkcast org.bouncycastle.math.ec.ECPoint$F2m
            areturn
        11: .line 492
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$F2m.y:Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 4 /* y2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$F2m.x:Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 3 /* x2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.divide:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            checkcast org.bouncycastle.math.ec.ECFieldElement$F2m
        12: .line 491
            astore 5 /* lambda */
        start local 5 // org.bouncycastle.math.ec.ECFieldElement$F2m lambda
        13: .line 495
            aload 5 /* lambda */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$F2m.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 5 /* lambda */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$F2m.x:Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 3 /* x2 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$F2m.curve:Lorg/bouncycastle/math/ec/ECCurve;
            invokevirtual org.bouncycastle.math.ec.ECCurve.getA:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            checkcast org.bouncycastle.math.ec.ECFieldElement$F2m
        14: .line 494
            astore 6 /* x3 */
        start local 6 // org.bouncycastle.math.ec.ECFieldElement$F2m x3
        15: .line 498
            aload 5 /* lambda */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$F2m.x:Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 6 /* x3 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$F2m.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 6 /* x3 */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$F2m.y:Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            checkcast org.bouncycastle.math.ec.ECFieldElement$F2m
        16: .line 497
            astore 7 /* y3 */
        start local 7 // org.bouncycastle.math.ec.ECFieldElement$F2m y3
        17: .line 500
            new org.bouncycastle.math.ec.ECPoint$F2m
            dup
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$F2m.curve:Lorg/bouncycastle/math/ec/ECCurve;
            aload 6 /* x3 */
            aload 7 /* y3 */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$F2m.withCompression:Z
            invokespecial org.bouncycastle.math.ec.ECPoint$F2m.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
            areturn
        end local 7 // org.bouncycastle.math.ec.ECFieldElement$F2m y3
        end local 6 // org.bouncycastle.math.ec.ECFieldElement$F2m x3
        end local 5 // org.bouncycastle.math.ec.ECFieldElement$F2m lambda
        end local 4 // org.bouncycastle.math.ec.ECFieldElement$F2m y2
        end local 3 // org.bouncycastle.math.ec.ECFieldElement$F2m x2
        end local 2 // org.bouncycastle.math.ec.ECPoint$F2m other
        end local 1 // org.bouncycastle.math.ec.ECPoint$F2m b
        end local 0 // org.bouncycastle.math.ec.ECPoint$F2m this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   18     0    this  Lorg/bouncycastle/math/ec/ECPoint$F2m;
            0   18     1       b  Lorg/bouncycastle/math/ec/ECPoint$F2m;
            1   18     2   other  Lorg/bouncycastle/math/ec/ECPoint$F2m;
            6   18     3      x2  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;
            7   18     4      y2  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;
           13   18     5  lambda  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;
           15   18     6      x3  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;
           17   18     7      y3  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;
    MethodParameters:
      Name  Flags
      b     

  public org.bouncycastle.math.ec.ECPoint subtract(org.bouncycastle.math.ec.ECPoint);
    descriptor: (Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECPoint$F2m this
        start local 1 // org.bouncycastle.math.ec.ECPoint b
         0: .line 508
            aload 0 /* this */
            aload 1 /* b */
            invokestatic org.bouncycastle.math.ec.ECPoint$F2m.checkPoints:(Lorg/bouncycastle/math/ec/ECPoint;Lorg/bouncycastle/math/ec/ECPoint;)V
         1: .line 509
            aload 0 /* this */
            aload 1 /* b */
            checkcast org.bouncycastle.math.ec.ECPoint$F2m
            invokevirtual org.bouncycastle.math.ec.ECPoint$F2m.subtractSimple:(Lorg/bouncycastle/math/ec/ECPoint$F2m;)Lorg/bouncycastle/math/ec/ECPoint$F2m;
            areturn
        end local 1 // org.bouncycastle.math.ec.ECPoint b
        end local 0 // org.bouncycastle.math.ec.ECPoint$F2m this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bouncycastle/math/ec/ECPoint$F2m;
            0    2     1     b  Lorg/bouncycastle/math/ec/ECPoint;
    MethodParameters:
      Name  Flags
      b     

  public org.bouncycastle.math.ec.ECPoint$F2m subtractSimple(org.bouncycastle.math.ec.ECPoint$F2m);
    descriptor: (Lorg/bouncycastle/math/ec/ECPoint$F2m;)Lorg/bouncycastle/math/ec/ECPoint$F2m;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECPoint$F2m this
        start local 1 // org.bouncycastle.math.ec.ECPoint$F2m b
         0: .line 523
            aload 1 /* b */
            invokevirtual org.bouncycastle.math.ec.ECPoint$F2m.isInfinity:()Z
            ifeq 2
         1: .line 525
            aload 0 /* this */
            areturn
         2: .line 529
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* b */
            invokevirtual org.bouncycastle.math.ec.ECPoint$F2m.negate:()Lorg/bouncycastle/math/ec/ECPoint;
            checkcast org.bouncycastle.math.ec.ECPoint$F2m
            invokevirtual org.bouncycastle.math.ec.ECPoint$F2m.addSimple:(Lorg/bouncycastle/math/ec/ECPoint$F2m;)Lorg/bouncycastle/math/ec/ECPoint$F2m;
            areturn
        end local 1 // org.bouncycastle.math.ec.ECPoint$F2m b
        end local 0 // org.bouncycastle.math.ec.ECPoint$F2m this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bouncycastle/math/ec/ECPoint$F2m;
            0    3     1     b  Lorg/bouncycastle/math/ec/ECPoint$F2m;
    MethodParameters:
      Name  Flags
      b     

  public org.bouncycastle.math.ec.ECPoint twice();
    descriptor: ()Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECPoint$F2m this
         0: .line 537
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$F2m.isInfinity:()Z
            ifeq 2
         1: .line 540
            aload 0 /* this */
            areturn
         2: .line 543
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$F2m.x:Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.signum:()I
            ifne 4
         3: .line 547
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$F2m.curve:Lorg/bouncycastle/math/ec/ECCurve;
            invokevirtual org.bouncycastle.math.ec.ECCurve.getInfinity:()Lorg/bouncycastle/math/ec/ECPoint;
            areturn
         4: .line 551
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$F2m.x:Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$F2m.y:Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$F2m.x:Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.divide:(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;
            checkcast org.bouncycastle.math.ec.ECFieldElement$F2m
         5: .line 550
            astore 1 /* lambda */
        start local 1 // org.bouncycastle.math.ec.ECFieldElement$F2m lambda
         6: .line 554
            aload 1 /* lambda */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$F2m.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 1 /* lambda */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
         7: .line 555
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$F2m.curve:Lorg/bouncycastle/math/ec/ECCurve;
            invokevirtual org.bouncycastle.math.ec.ECCurve.getA:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
         8: .line 554
            checkcast org.bouncycastle.math.ec.ECFieldElement$F2m
         9: .line 553
            astore 2 /* x3 */
        start local 2 // org.bouncycastle.math.ec.ECFieldElement$F2m x3
        10: .line 557
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$F2m.curve:Lorg/bouncycastle/math/ec/ECCurve;
            getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.ECCurve.fromBigInteger:(Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 3 /* ONE */
        start local 3 // org.bouncycastle.math.ec.ECFieldElement ONE
        11: .line 559
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$F2m.x:Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.square:()Lorg/bouncycastle/math/ec/ECFieldElement;
        12: .line 560
            aload 2 /* x3 */
            aload 1 /* lambda */
            aload 3 /* ONE */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$F2m.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement$F2m.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
        13: .line 559
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            checkcast org.bouncycastle.math.ec.ECFieldElement$F2m
        14: .line 558
            astore 4 /* y3 */
        start local 4 // org.bouncycastle.math.ec.ECFieldElement$F2m y3
        15: .line 562
            new org.bouncycastle.math.ec.ECPoint$F2m
            dup
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$F2m.curve:Lorg/bouncycastle/math/ec/ECCurve;
            aload 2 /* x3 */
            aload 4 /* y3 */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$F2m.withCompression:Z
            invokespecial org.bouncycastle.math.ec.ECPoint$F2m.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
            areturn
        end local 4 // org.bouncycastle.math.ec.ECFieldElement$F2m y3
        end local 3 // org.bouncycastle.math.ec.ECFieldElement ONE
        end local 2 // org.bouncycastle.math.ec.ECFieldElement$F2m x3
        end local 1 // org.bouncycastle.math.ec.ECFieldElement$F2m lambda
        end local 0 // org.bouncycastle.math.ec.ECPoint$F2m this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   16     0    this  Lorg/bouncycastle/math/ec/ECPoint$F2m;
            6   16     1  lambda  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;
           10   16     2      x3  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;
           11   16     3     ONE  Lorg/bouncycastle/math/ec/ECFieldElement;
           15   16     4      y3  Lorg/bouncycastle/math/ec/ECFieldElement$F2m;

  public org.bouncycastle.math.ec.ECPoint negate();
    descriptor: ()Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECPoint$F2m this
         0: .line 567
            new org.bouncycastle.math.ec.ECPoint$F2m
            dup
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$F2m.curve:Lorg/bouncycastle/math/ec/ECCurve;
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$F2m.getX:()Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$F2m.getY:()Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECPoint$F2m.getX:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.add:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$F2m.withCompression:Z
            invokespecial org.bouncycastle.math.ec.ECPoint$F2m.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Z)V
            areturn
        end local 0 // org.bouncycastle.math.ec.ECPoint$F2m this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECPoint$F2m;

  synchronized void assertECMultiplier();
    descriptor: ()V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECPoint$F2m this
         0: .line 575
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$F2m.multiplier:Lorg/bouncycastle/math/ec/ECMultiplier;
            ifnonnull 5
         1: .line 577
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECPoint$F2m.curve:Lorg/bouncycastle/math/ec/ECCurve;
            checkcast org.bouncycastle.math.ec.ECCurve$F2m
            invokevirtual org.bouncycastle.math.ec.ECCurve$F2m.isKoblitz:()Z
            ifeq 4
         2: .line 579
            aload 0 /* this */
            new org.bouncycastle.math.ec.WTauNafMultiplier
            dup
            invokespecial org.bouncycastle.math.ec.WTauNafMultiplier.<init>:()V
            putfield org.bouncycastle.math.ec.ECPoint$F2m.multiplier:Lorg/bouncycastle/math/ec/ECMultiplier;
         3: .line 580
            goto 5
         4: .line 583
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new org.bouncycastle.math.ec.WNafMultiplier
            dup
            invokespecial org.bouncycastle.math.ec.WNafMultiplier.<init>:()V
            putfield org.bouncycastle.math.ec.ECPoint$F2m.multiplier:Lorg/bouncycastle/math/ec/ECMultiplier;
         5: .line 586
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.bouncycastle.math.ec.ECPoint$F2m this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/bouncycastle/math/ec/ECPoint$F2m;
}
SourceFile: "ECPoint.java"
NestHost: org.bouncycastle.math.ec.ECPoint
InnerClasses:
  public F2m = org.bouncycastle.math.ec.ECCurve$F2m of org.bouncycastle.math.ec.ECCurve
  public F2m = org.bouncycastle.math.ec.ECFieldElement$F2m of org.bouncycastle.math.ec.ECFieldElement
  public F2m = org.bouncycastle.math.ec.ECPoint$F2m of org.bouncycastle.math.ec.ECPoint