public abstract class org.bouncycastle.math.ec.rfc8032.Ed25519
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.bouncycastle.math.ec.rfc8032.Ed25519
  super_class: java.lang.Object
{
  private static final long M28L;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 268435455

  private static final long M32L;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4294967295

  private static final int POINT_BYTES;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 32

  private static final int SCALAR_INTS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  private static final int SCALAR_BYTES;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 32

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

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

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

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

  private static final byte[] DOM2_PREFIX;
    descriptor: [B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int[] P;
    descriptor: [I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int[] L;
    descriptor: [I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int L0;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -50998291

  private static final int L1;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 19280294

  private static final int L2;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 127719000

  private static final int L3;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -6428113

  private static final int L4;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 5343

  private static final int[] B_x;
    descriptor: [I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int[] B_y;
    descriptor: [I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int[] C_d;
    descriptor: [I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int[] C_d2;
    descriptor: [I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int[] C_d4;
    descriptor: [I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int WNAF_WIDTH_BASE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 7

  private static final int PRECOMP_BLOCKS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  private static final int PRECOMP_TEETH;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private static final int PRECOMP_SPACING;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  private static final int PRECOMP_POINTS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  private static final int PRECOMP_MASK;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 7

  private static java.lang.Object precompLock;
    descriptor: Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt[] precompBaseTable;
    descriptor: [Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static int[] precompBase;
    descriptor: [I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 36
            ldc "SigEd25519 no Ed25519 collisions"
            invokestatic org.bouncycastle.util.Strings.toByteArray:(Ljava/lang/String;)[B
            putstatic org.bouncycastle.math.ec.rfc8032.Ed25519.DOM2_PREFIX:[B
         1: .line 38
            bipush 8
            newarray 10
            dup
            iconst_0
            bipush -19
            iastore
            dup
            iconst_1
            iconst_m1
            iastore
            dup
            iconst_2
            iconst_m1
            iastore
            dup
            iconst_3
            iconst_m1
            iastore
            dup
            iconst_4
            iconst_m1
            iastore
            dup
            iconst_5
            iconst_m1
            iastore
            dup
            bipush 6
            iconst_m1
            iastore
            dup
            bipush 7
            ldc 2147483647
            iastore
            putstatic org.bouncycastle.math.ec.rfc8032.Ed25519.P:[I
         2: .line 39
            bipush 8
            newarray 10
            dup
            iconst_0
            ldc 1559614445
            iastore
            dup
            iconst_1
            ldc 1477600026
            iastore
            dup
            iconst_2
            ldc -1560830762
            iastore
            dup
            iconst_3
            ldc 350157278
            iastore
            dup
            bipush 7
            ldc 268435456
            iastore
            putstatic org.bouncycastle.math.ec.rfc8032.Ed25519.L:[I
         3: .line 47
            bipush 10
            newarray 10
            dup
            iconst_0
            ldc 52811034
            iastore
            dup
            iconst_1
            ldc 25909283
            iastore
            dup
            iconst_2
            ldc 8072341
            iastore
            dup
            iconst_3
            ldc 50637101
            iastore
            dup
            iconst_4
            ldc 13785486
            iastore
            dup
            iconst_5
            ldc 30858332
            iastore
            dup
            bipush 6
         4: .line 48
            ldc 20483199
            iastore
            dup
            bipush 7
            ldc 20966410
            iastore
            dup
            bipush 8
            ldc 43936626
            iastore
            dup
            bipush 9
            ldc 4379245
            iastore
         5: .line 47
            putstatic org.bouncycastle.math.ec.rfc8032.Ed25519.B_x:[I
         6: .line 49
            bipush 10
            newarray 10
            dup
            iconst_0
            ldc 40265304
            iastore
            dup
            iconst_1
            ldc 26843545
            iastore
            dup
            iconst_2
            ldc 6710886
            iastore
            dup
            iconst_3
            ldc 53687091
            iastore
            dup
            iconst_4
            ldc 13421772
            iastore
            dup
            iconst_5
            ldc 40265318
            iastore
            dup
            bipush 6
         7: .line 50
            ldc 26843545
            iastore
            dup
            bipush 7
            ldc 6710886
            iastore
            dup
            bipush 8
            ldc 53687091
            iastore
            dup
            bipush 9
            ldc 13421772
            iastore
         8: .line 49
            putstatic org.bouncycastle.math.ec.rfc8032.Ed25519.B_y:[I
         9: .line 51
            bipush 10
            newarray 10
            dup
            iconst_0
            ldc 56195235
            iastore
            dup
            iconst_1
            ldc 47411844
            iastore
            dup
            iconst_2
            ldc 25868126
            iastore
            dup
            iconst_3
            ldc 40503822
            iastore
            dup
            iconst_4
            ldc 57364
            iastore
            dup
            iconst_5
            ldc 58321048
            iastore
            dup
            bipush 6
        10: .line 52
            ldc 30416477
            iastore
            dup
            bipush 7
            ldc 31930572
            iastore
            dup
            bipush 8
            ldc 57760639
            iastore
            dup
            bipush 9
            ldc 10749657
            iastore
        11: .line 51
            putstatic org.bouncycastle.math.ec.rfc8032.Ed25519.C_d:[I
        12: .line 53
            bipush 10
            newarray 10
            dup
            iconst_0
            ldc 45281625
            iastore
            dup
            iconst_1
            ldc 27714825
            iastore
            dup
            iconst_2
            ldc 18181821
            iastore
            dup
            iconst_3
            ldc 13898781
            iastore
            dup
            iconst_4
            ldc 114729
            iastore
            dup
            iconst_5
            ldc 49533232
            iastore
            dup
            bipush 6
        13: .line 54
            ldc 60832955
            iastore
            dup
            bipush 7
            ldc 30306712
            iastore
            dup
            bipush 8
            ldc 48412415
            iastore
            dup
            bipush 9
            ldc 4722099
            iastore
        14: .line 53
            putstatic org.bouncycastle.math.ec.rfc8032.Ed25519.C_d2:[I
        15: .line 55
            bipush 10
            newarray 10
            dup
            iconst_0
            ldc 23454386
            iastore
            dup
            iconst_1
            ldc 55429651
            iastore
            dup
            iconst_2
            ldc 2809210
            iastore
            dup
            iconst_3
            ldc 27797563
            iastore
            dup
            iconst_4
            ldc 229458
            iastore
            dup
            iconst_5
            ldc 31957600
            iastore
            dup
            bipush 6
        16: .line 56
            ldc 54557047
            iastore
            dup
            bipush 7
            ldc 27058993
            iastore
            dup
            bipush 8
            ldc 29715967
            iastore
            dup
            bipush 9
            ldc 9444199
            iastore
        17: .line 55
            putstatic org.bouncycastle.math.ec.rfc8032.Ed25519.C_d4:[I
        18: .line 66
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompLock:Ljava/lang/Object;
        19: .line 68
            aconst_null
            putstatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompBaseTable:[Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
        20: .line 69
            aconst_null
            putstatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompBase:[I
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.rfc8032.Ed25519 this
         0: .line 15
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.bouncycastle.math.ec.rfc8032.Ed25519 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/rfc8032/Ed25519;

  private static byte[] calculateS(byte[], byte[], byte[]);
    descriptor: ([B[B[B)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // byte[] r
        start local 1 // byte[] k
        start local 2 // byte[] s
         0: .line 97
            bipush 16
            newarray 10
            astore 3 /* t */
        start local 3 // int[] t
         1: aload 0 /* r */
            iconst_0
            aload 3 /* t */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decodeScalar:([BI[I)V
         2: .line 98
            bipush 8
            newarray 10
            astore 4 /* u */
        start local 4 // int[] u
         3: aload 1 /* k */
            iconst_0
            aload 4 /* u */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decodeScalar:([BI[I)V
         4: .line 99
            bipush 8
            newarray 10
            astore 5 /* v */
        start local 5 // int[] v
         5: aload 2 /* s */
            iconst_0
            aload 5 /* v */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decodeScalar:([BI[I)V
         6: .line 101
            aload 4 /* u */
            aload 5 /* v */
            aload 3 /* t */
            invokestatic org.bouncycastle.math.raw.Nat256.mulAddTo:([I[I[I)I
            pop
         7: .line 103
            bipush 64
            newarray 8
            astore 6 /* result */
        start local 6 // byte[] result
         8: .line 104
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         9: goto 12
        10: .line 106
      StackMap locals: byte[] byte[] byte[] int[] int[] int[] byte[] int
      StackMap stack:
            aload 3 /* t */
            iload 7 /* i */
            iaload
            aload 6 /* result */
            iload 7 /* i */
            iconst_4
            imul
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.encode32:(I[BI)V
        11: .line 104
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 7 /* i */
            aload 3 /* t */
            arraylength
            if_icmplt 10
        end local 7 // int i
        13: .line 108
            aload 6 /* result */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.reduceScalar:([B)[B
            areturn
        end local 6 // byte[] result
        end local 5 // int[] v
        end local 4 // int[] u
        end local 3 // int[] t
        end local 2 // byte[] s
        end local 1 // byte[] k
        end local 0 // byte[] r
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   14     0       r  [B
            0   14     1       k  [B
            0   14     2       s  [B
            1   14     3       t  [I
            3   14     4       u  [I
            5   14     5       v  [I
            8   14     6  result  [B
            9   13     7       i  I
    MethodParameters:
      Name  Flags
      r     
      k     
      s     

  private static boolean checkContextVar(byte[], byte);
    descriptor: ([BB)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // byte[] ctx
        start local 1 // byte phflag
         0: .line 113
            aload 0 /* ctx */
            ifnonnull 1
            iload 1 /* phflag */
            ifeq 4
         1: .line 114
      StackMap locals:
      StackMap stack:
            aload 0 /* ctx */
            ifnull 3
            aload 0 /* ctx */
            arraylength
            sipush 256
         2: .line 113
            if_icmplt 4
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_1
            ireturn
        end local 1 // byte phflag
        end local 0 // byte[] ctx
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0     ctx  [B
            0    5     1  phflag  B
    MethodParameters:
        Name  Flags
      ctx     
      phflag  

  private static boolean checkPointVar(byte[]);
    descriptor: ([B)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // byte[] p
         0: .line 119
            bipush 8
            newarray 10
            astore 1 /* t */
        start local 1 // int[] t
         1: .line 120
            aload 0 /* p */
            iconst_0
            aload 1 /* t */
            iconst_0
            bipush 8
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode32:([BI[III)V
         2: .line 121
            aload 1 /* t */
            bipush 7
            dup2
            iaload
            ldc 2147483647
            iand
            iastore
         3: .line 122
            aload 1 /* t */
            getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.P:[I
            invokestatic org.bouncycastle.math.raw.Nat256.gte:([I[I)Z
            ifeq 4
            iconst_0
            goto 5
      StackMap locals: int[]
      StackMap stack:
         4: iconst_1
      StackMap locals:
      StackMap stack: int
         5: ireturn
        end local 1 // int[] t
        end local 0 // byte[] p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0     p  [B
            1    6     1     t  [I
    MethodParameters:
      Name  Flags
      p     

  private static boolean checkScalarVar(byte[]);
    descriptor: ([B)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // byte[] s
         0: .line 127
            bipush 8
            newarray 10
            astore 1 /* n */
        start local 1 // int[] n
         1: .line 128
            aload 0 /* s */
            iconst_0
            aload 1 /* n */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decodeScalar:([BI[I)V
         2: .line 129
            aload 1 /* n */
            getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.L:[I
            invokestatic org.bouncycastle.math.raw.Nat256.gte:([I[I)Z
            ifeq 3
            iconst_0
            goto 4
      StackMap locals: int[]
      StackMap stack:
         3: iconst_1
      StackMap locals:
      StackMap stack: int
         4: ireturn
        end local 1 // int[] n
        end local 0 // byte[] s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     s  [B
            1    5     1     n  [I
    MethodParameters:
      Name  Flags
      s     

  private static org.bouncycastle.crypto.Digest createDigest();
    descriptor: ()Lorg/bouncycastle/crypto/Digest;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 134
            new org.bouncycastle.crypto.digests.SHA512Digest
            dup
            invokespecial org.bouncycastle.crypto.digests.SHA512Digest.<init>:()V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static org.bouncycastle.crypto.Digest createPrehash();
    descriptor: ()Lorg/bouncycastle/crypto/Digest;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 139
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.createDigest:()Lorg/bouncycastle/crypto/Digest;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static int decode24(byte[], int);
    descriptor: ([BI)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // byte[] bs
        start local 1 // int off
         0: .line 144
            aload 0 /* bs */
            iload 1 /* off */
            baload
            sipush 255
            iand
            istore 2 /* n */
        start local 2 // int n
         1: .line 145
            iload 2 /* n */
            aload 0 /* bs */
            iinc 1 /* off */ 1
            iload 1 /* off */
            baload
            sipush 255
            iand
            bipush 8
            ishl
            ior
            istore 2 /* n */
         2: .line 146
            iload 2 /* n */
            aload 0 /* bs */
            iinc 1 /* off */ 1
            iload 1 /* off */
            baload
            sipush 255
            iand
            bipush 16
            ishl
            ior
            istore 2 /* n */
         3: .line 147
            iload 2 /* n */
            ireturn
        end local 2 // int n
        end local 1 // int off
        end local 0 // byte[] bs
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0    bs  [B
            0    4     1   off  I
            1    4     2     n  I
    MethodParameters:
      Name  Flags
      bs    
      off   

  private static int decode32(byte[], int);
    descriptor: ([BI)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // byte[] bs
        start local 1 // int off
         0: .line 152
            aload 0 /* bs */
            iload 1 /* off */
            baload
            sipush 255
            iand
            istore 2 /* n */
        start local 2 // int n
         1: .line 153
            iload 2 /* n */
            aload 0 /* bs */
            iinc 1 /* off */ 1
            iload 1 /* off */
            baload
            sipush 255
            iand
            bipush 8
            ishl
            ior
            istore 2 /* n */
         2: .line 154
            iload 2 /* n */
            aload 0 /* bs */
            iinc 1 /* off */ 1
            iload 1 /* off */
            baload
            sipush 255
            iand
            bipush 16
            ishl
            ior
            istore 2 /* n */
         3: .line 155
            iload 2 /* n */
            aload 0 /* bs */
            iinc 1 /* off */ 1
            iload 1 /* off */
            baload
            bipush 24
            ishl
            ior
            istore 2 /* n */
         4: .line 156
            iload 2 /* n */
            ireturn
        end local 2 // int n
        end local 1 // int off
        end local 0 // byte[] bs
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0    bs  [B
            0    5     1   off  I
            1    5     2     n  I
    MethodParameters:
      Name  Flags
      bs    
      off   

  private static void decode32(byte[], int, int[], int, int);
    descriptor: ([BI[III)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // byte[] bs
        start local 1 // int bsOff
        start local 2 // int[] n
        start local 3 // int nOff
        start local 4 // int nLen
         0: .line 161
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         1: goto 4
         2: .line 163
      StackMap locals: int
      StackMap stack:
            aload 2 /* n */
            iload 3 /* nOff */
            iload 5 /* i */
            iadd
            aload 0 /* bs */
            iload 1 /* bsOff */
            iload 5 /* i */
            iconst_4
            imul
            iadd
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode32:([BI)I
            iastore
         3: .line 161
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         4: iload 5 /* i */
            iload 4 /* nLen */
            if_icmplt 2
        end local 5 // int i
         5: .line 165
            return
        end local 4 // int nLen
        end local 3 // int nOff
        end local 2 // int[] n
        end local 1 // int bsOff
        end local 0 // byte[] bs
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0     bs  [B
            0    6     1  bsOff  I
            0    6     2      n  [I
            0    6     3   nOff  I
            0    6     4   nLen  I
            1    5     5      i  I
    MethodParameters:
       Name  Flags
      bs     
      bsOff  
      n      
      nOff   
      nLen   

  private static boolean decodePointVar(byte[], int, boolean, org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt);
    descriptor: ([BIZLorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // byte[] p
        start local 1 // int pOff
        start local 2 // boolean negate
        start local 3 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt r
         0: .line 169
            aload 0 /* p */
            iload 1 /* pOff */
            iload 1 /* pOff */
            bipush 32
            iadd
            invokestatic org.bouncycastle.util.Arrays.copyOfRange:([BII)[B
            astore 4 /* py */
        start local 4 // byte[] py
         1: .line 170
            aload 4 /* py */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.checkPointVar:([B)Z
            ifne 3
         2: .line 172
            iconst_0
            ireturn
         3: .line 175
      StackMap locals: byte[]
      StackMap stack:
            aload 4 /* py */
            bipush 31
            baload
            sipush 128
            iand
            bipush 7
            iushr
            istore 5 /* x_0 */
        start local 5 // int x_0
         4: .line 176
            aload 4 /* py */
            bipush 31
            dup2
            baload
            bipush 127
            iand
            i2b
            bastore
         5: .line 178
            aload 4 /* py */
            iconst_0
            aload 3 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.y:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.decode:([BI[I)V
         6: .line 180
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
            astore 6 /* u */
        start local 6 // int[] u
         7: .line 181
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
            astore 7 /* v */
        start local 7 // int[] v
         8: .line 183
            aload 3 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.y:[I
            aload 6 /* u */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.sqr:([I[I)V
         9: .line 184
            getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.C_d:[I
            aload 6 /* u */
            aload 7 /* v */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        10: .line 185
            aload 6 /* u */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.subOne:([I)V
        11: .line 186
            aload 7 /* v */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.addOne:([I)V
        12: .line 188
            aload 6 /* u */
            aload 7 /* v */
            aload 3 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.sqrtRatioVar:([I[I[I)Z
            ifne 14
        13: .line 190
            iconst_0
            ireturn
        14: .line 193
      StackMap locals: int int[] int[]
      StackMap stack:
            aload 3 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.normalize:([I)V
        15: .line 194
            iload 5 /* x_0 */
            iconst_1
            if_icmpne 17
            aload 3 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.isZeroVar:([I)Z
            ifeq 17
        16: .line 196
            iconst_0
            ireturn
        17: .line 199
      StackMap locals:
      StackMap stack:
            iload 2 /* negate */
            iload 5 /* x_0 */
            aload 3 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
            iconst_0
            iaload
            iconst_1
            iand
            if_icmpeq 18
            iconst_1
            goto 19
      StackMap locals:
      StackMap stack: int
        18: iconst_0
      StackMap locals: byte[] int int org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt byte[] int int[] int[]
      StackMap stack: int int
        19: ixor
            ifeq 21
        20: .line 201
            aload 3 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
            aload 3 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.negate:([I[I)V
        21: .line 204
      StackMap locals:
      StackMap stack:
            aload 3 /* r */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointExtendXY:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;)V
        22: .line 205
            iconst_1
            ireturn
        end local 7 // int[] v
        end local 6 // int[] u
        end local 5 // int x_0
        end local 4 // byte[] py
        end local 3 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt r
        end local 2 // boolean negate
        end local 1 // int pOff
        end local 0 // byte[] p
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   23     0       p  [B
            0   23     1    pOff  I
            0   23     2  negate  Z
            0   23     3       r  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
            1   23     4      py  [B
            4   23     5     x_0  I
            7   23     6       u  [I
            8   23     7       v  [I
    MethodParameters:
        Name  Flags
      p       
      pOff    
      negate  
      r       

  private static void decodeScalar(byte[], int, int[]);
    descriptor: ([BI[I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // byte[] k
        start local 1 // int kOff
        start local 2 // int[] n
         0: .line 210
            aload 0 /* k */
            iload 1 /* kOff */
            aload 2 /* n */
            iconst_0
            bipush 8
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode32:([BI[III)V
         1: .line 211
            return
        end local 2 // int[] n
        end local 1 // int kOff
        end local 0 // byte[] k
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     k  [B
            0    2     1  kOff  I
            0    2     2     n  [I
    MethodParameters:
      Name  Flags
      k     
      kOff  
      n     

  private static void dom2(org.bouncycastle.crypto.Digest, byte, byte[]);
    descriptor: (Lorg/bouncycastle/crypto/Digest;B[B)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.bouncycastle.crypto.Digest d
        start local 1 // byte phflag
        start local 2 // byte[] ctx
         0: .line 215
            aload 2 /* ctx */
            ifnull 5
         1: .line 217
            aload 0 /* d */
            getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.DOM2_PREFIX:[B
            iconst_0
            getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.DOM2_PREFIX:[B
            arraylength
            invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
         2: .line 218
            aload 0 /* d */
            iload 1 /* phflag */
            invokeinterface org.bouncycastle.crypto.Digest.update:(B)V
         3: .line 219
            aload 0 /* d */
            aload 2 /* ctx */
            arraylength
            i2b
            invokeinterface org.bouncycastle.crypto.Digest.update:(B)V
         4: .line 220
            aload 0 /* d */
            aload 2 /* ctx */
            iconst_0
            aload 2 /* ctx */
            arraylength
            invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
         5: .line 222
      StackMap locals:
      StackMap stack:
            return
        end local 2 // byte[] ctx
        end local 1 // byte phflag
        end local 0 // org.bouncycastle.crypto.Digest d
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0       d  Lorg/bouncycastle/crypto/Digest;
            0    6     1  phflag  B
            0    6     2     ctx  [B
    MethodParameters:
        Name  Flags
      d       
      phflag  
      ctx     

  private static void encode24(int, byte[], int);
    descriptor: (I[BI)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // int n
        start local 1 // byte[] bs
        start local 2 // int off
         0: .line 226
            aload 1 /* bs */
            iload 2 /* off */
            iload 0 /* n */
            i2b
            bastore
         1: .line 227
            aload 1 /* bs */
            iinc 2 /* off */ 1
            iload 2 /* off */
            iload 0 /* n */
            bipush 8
            iushr
            i2b
            bastore
         2: .line 228
            aload 1 /* bs */
            iinc 2 /* off */ 1
            iload 2 /* off */
            iload 0 /* n */
            bipush 16
            iushr
            i2b
            bastore
         3: .line 229
            return
        end local 2 // int off
        end local 1 // byte[] bs
        end local 0 // int n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     n  I
            0    4     1    bs  [B
            0    4     2   off  I
    MethodParameters:
      Name  Flags
      n     
      bs    
      off   

  private static void encode32(int, byte[], int);
    descriptor: (I[BI)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // int n
        start local 1 // byte[] bs
        start local 2 // int off
         0: .line 233
            aload 1 /* bs */
            iload 2 /* off */
            iload 0 /* n */
            i2b
            bastore
         1: .line 234
            aload 1 /* bs */
            iinc 2 /* off */ 1
            iload 2 /* off */
            iload 0 /* n */
            bipush 8
            iushr
            i2b
            bastore
         2: .line 235
            aload 1 /* bs */
            iinc 2 /* off */ 1
            iload 2 /* off */
            iload 0 /* n */
            bipush 16
            iushr
            i2b
            bastore
         3: .line 236
            aload 1 /* bs */
            iinc 2 /* off */ 1
            iload 2 /* off */
            iload 0 /* n */
            bipush 24
            iushr
            i2b
            bastore
         4: .line 237
            return
        end local 2 // int off
        end local 1 // byte[] bs
        end local 0 // int n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     n  I
            0    5     1    bs  [B
            0    5     2   off  I
    MethodParameters:
      Name  Flags
      n     
      bs    
      off   

  private static void encode56(long, byte[], int);
    descriptor: (J[BI)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // long n
        start local 2 // byte[] bs
        start local 3 // int off
         0: .line 241
            lload 0 /* n */
            l2i
            aload 2 /* bs */
            iload 3 /* off */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.encode32:(I[BI)V
         1: .line 242
            lload 0 /* n */
            bipush 32
            lushr
            l2i
            aload 2 /* bs */
            iload 3 /* off */
            iconst_4
            iadd
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.encode24:(I[BI)V
         2: .line 243
            return
        end local 3 // int off
        end local 2 // byte[] bs
        end local 0 // long n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     n  J
            0    3     2    bs  [B
            0    3     3   off  I
    MethodParameters:
      Name  Flags
      n     
      bs    
      off   

  private static void encodePoint(org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum, byte[], int);
    descriptor: (Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;[BI)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum p
        start local 1 // byte[] r
        start local 2 // int rOff
         0: .line 247
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
            astore 3 /* x */
        start local 3 // int[] x
         1: .line 248
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
            astore 4 /* y */
        start local 4 // int[] y
         2: .line 250
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.z:[I
            aload 4 /* y */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.inv:([I[I)V
         3: .line 251
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.x:[I
            aload 4 /* y */
            aload 3 /* x */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
         4: .line 252
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.y:[I
            aload 4 /* y */
            aload 4 /* y */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
         5: .line 253
            aload 3 /* x */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.normalize:([I)V
         6: .line 254
            aload 4 /* y */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.normalize:([I)V
         7: .line 256
            aload 4 /* y */
            aload 1 /* r */
            iload 2 /* rOff */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.encode:([I[BI)V
         8: .line 257
            aload 1 /* r */
            iload 2 /* rOff */
            bipush 32
            iadd
            iconst_1
            isub
            dup2
            baload
            aload 3 /* x */
            iconst_0
            iaload
            iconst_1
            iand
            bipush 7
            ishl
            ior
            i2b
            bastore
         9: .line 258
            return
        end local 4 // int[] y
        end local 3 // int[] x
        end local 2 // int rOff
        end local 1 // byte[] r
        end local 0 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0     p  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;
            0   10     1     r  [B
            0   10     2  rOff  I
            1   10     3     x  [I
            2   10     4     y  [I
    MethodParameters:
      Name  Flags
      p     
      r     
      rOff  

  public static void generatePrivateKey(java.security.SecureRandom, byte[]);
    descriptor: (Ljava/security/SecureRandom;[B)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.security.SecureRandom random
        start local 1 // byte[] k
         0: .line 262
            aload 0 /* random */
            aload 1 /* k */
            invokevirtual java.security.SecureRandom.nextBytes:([B)V
         1: .line 263
            return
        end local 1 // byte[] k
        end local 0 // java.security.SecureRandom random
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  random  Ljava/security/SecureRandom;
            0    2     1       k  [B
    MethodParameters:
        Name  Flags
      random  
      k       

  public static void generatePublicKey(byte[], int, byte[], int);
    descriptor: ([BI[BI)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // byte[] sk
        start local 1 // int skOff
        start local 2 // byte[] pk
        start local 3 // int pkOff
         0: .line 267
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.createDigest:()Lorg/bouncycastle/crypto/Digest;
            astore 4 /* d */
        start local 4 // org.bouncycastle.crypto.Digest d
         1: .line 268
            aload 4 /* d */
            invokeinterface org.bouncycastle.crypto.Digest.getDigestSize:()I
            newarray 8
            astore 5 /* h */
        start local 5 // byte[] h
         2: .line 270
            aload 4 /* d */
            aload 0 /* sk */
            iload 1 /* skOff */
            bipush 32
            invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
         3: .line 271
            aload 4 /* d */
            aload 5 /* h */
            iconst_0
            invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
            pop
         4: .line 273
            bipush 32
            newarray 8
            astore 6 /* s */
        start local 6 // byte[] s
         5: .line 274
            aload 5 /* h */
            iconst_0
            aload 6 /* s */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pruneScalar:([BI[B)V
         6: .line 276
            aload 6 /* s */
            aload 2 /* pk */
            iload 3 /* pkOff */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.scalarMultBaseEncoded:([B[BI)V
         7: .line 277
            return
        end local 6 // byte[] s
        end local 5 // byte[] h
        end local 4 // org.bouncycastle.crypto.Digest d
        end local 3 // int pkOff
        end local 2 // byte[] pk
        end local 1 // int skOff
        end local 0 // byte[] sk
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0     sk  [B
            0    8     1  skOff  I
            0    8     2     pk  [B
            0    8     3  pkOff  I
            1    8     4      d  Lorg/bouncycastle/crypto/Digest;
            2    8     5      h  [B
            5    8     6      s  [B
    MethodParameters:
       Name  Flags
      sk     
      skOff  
      pk     
      pkOff  

  private static byte[] getWNAF(int[], int);
    descriptor: ([II)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=14, args_size=2
        start local 0 // int[] n
        start local 1 // int width
         0: .line 283
            bipush 16
            newarray 10
            astore 2 /* t */
        start local 2 // int[] t
         1: .line 285
            aload 2 /* t */
            arraylength
            istore 3 /* tPos */
        start local 3 // int tPos
         2: iconst_0
            istore 4 /* c */
        start local 4 // int c
         3: .line 286
            bipush 8
            istore 5 /* i */
        start local 5 // int i
         4: .line 287
            goto 8
         5: .line 289
      StackMap locals: int[] int int[] int int int
      StackMap stack:
            aload 0 /* n */
            iload 5 /* i */
            iaload
            istore 6 /* next */
        start local 6 // int next
         6: .line 290
            aload 2 /* t */
            iinc 3 /* tPos */ -1
            iload 3 /* tPos */
            iload 6 /* next */
            bipush 16
            iushr
            iload 4 /* c */
            bipush 16
            ishl
            ior
            iastore
         7: .line 291
            aload 2 /* t */
            iinc 3 /* tPos */ -1
            iload 3 /* tPos */
            iload 6 /* next */
            dup
            istore 4 /* c */
            iastore
        end local 6 // int next
         8: .line 287
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ -1
            iload 5 /* i */
            ifge 5
        end local 5 // int i
        end local 4 // int c
        end local 3 // int tPos
         9: .line 295
            sipush 256
            newarray 8
            astore 3 /* ws */
        start local 3 // byte[] ws
        10: .line 297
            iconst_1
            iload 1 /* width */
            ishl
            istore 4 /* pow2 */
        start local 4 // int pow2
        11: .line 298
            iload 4 /* pow2 */
            iconst_1
            isub
            istore 5 /* mask */
        start local 5 // int mask
        12: .line 299
            iload 4 /* pow2 */
            iconst_1
            iushr
            istore 6 /* sign */
        start local 6 // int sign
        13: .line 301
            iconst_0
            istore 7 /* j */
        start local 7 // int j
        14: iconst_0
            istore 8 /* carry */
        start local 8 // int carry
        15: .line 302
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        16: goto 32
        17: .line 304
      StackMap locals: int[] int int[] byte[] int int int int int int
      StackMap stack:
            aload 2 /* t */
            iload 9 /* i */
            iaload
            istore 10 /* word */
        start local 10 // int word
        18: .line 305
            goto 30
        19: .line 307
      StackMap locals: int
      StackMap stack:
            iload 10 /* word */
            iload 7 /* j */
            iushr
            istore 11 /* word16 */
        start local 11 // int word16
        20: .line 308
            iload 11 /* word16 */
            iconst_1
            iand
            istore 12 /* bit */
        start local 12 // int bit
        21: .line 310
            iload 12 /* bit */
            iload 8 /* carry */
            if_icmpne 24
        22: .line 312
            iinc 7 /* j */ 1
        23: .line 313
            goto 30
        24: .line 316
      StackMap locals: int int
      StackMap stack:
            iload 11 /* word16 */
            iload 5 /* mask */
            iand
            iload 8 /* carry */
            iadd
            istore 13 /* digit */
        start local 13 // int digit
        25: .line 317
            iload 13 /* digit */
            iload 6 /* sign */
            iand
            istore 8 /* carry */
        26: .line 318
            iload 13 /* digit */
            iload 8 /* carry */
            iconst_1
            ishl
            isub
            istore 13 /* digit */
        27: .line 319
            iload 8 /* carry */
            iload 1 /* width */
            iconst_1
            isub
            iushr
            istore 8 /* carry */
        28: .line 321
            aload 3 /* ws */
            iload 9 /* i */
            iconst_4
            ishl
            iload 7 /* j */
            iadd
            iload 13 /* digit */
            i2b
            bastore
        29: .line 323
            iload 7 /* j */
            iload 1 /* width */
            iadd
            istore 7 /* j */
        end local 13 // int digit
        end local 12 // int bit
        end local 11 // int word16
        30: .line 305
      StackMap locals:
      StackMap stack:
            iload 7 /* j */
            bipush 16
            if_icmplt 19
        end local 10 // int word
        31: .line 302
            iinc 9 /* i */ 1
            iinc 7 /* j */ -16
      StackMap locals:
      StackMap stack:
        32: iload 9 /* i */
            aload 2 /* t */
            arraylength
            if_icmplt 17
        end local 9 // int i
        33: .line 329
            aload 3 /* ws */
            areturn
        end local 8 // int carry
        end local 7 // int j
        end local 6 // int sign
        end local 5 // int mask
        end local 4 // int pow2
        end local 3 // byte[] ws
        end local 2 // int[] t
        end local 1 // int width
        end local 0 // int[] n
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   34     0       n  [I
            0   34     1   width  I
            1   34     2       t  [I
            2    9     3    tPos  I
            3    9     4       c  I
            4    9     5       i  I
            6    8     6    next  I
           10   34     3      ws  [B
           11   34     4    pow2  I
           12   34     5    mask  I
           13   34     6    sign  I
           14   34     7       j  I
           15   34     8   carry  I
           16   33     9       i  I
           18   31    10    word  I
           20   30    11  word16  I
           21   30    12     bit  I
           25   30    13   digit  I
    MethodParameters:
       Name  Flags
      n      
      width  

  private static void implSign(org.bouncycastle.crypto.Digest, byte[], byte[], byte[], int, byte[], byte, byte[], int, int, byte[], int);
    descriptor: (Lorg/bouncycastle/crypto/Digest;[B[B[BI[BB[BII[BI)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=16, args_size=12
        start local 0 // org.bouncycastle.crypto.Digest d
        start local 1 // byte[] h
        start local 2 // byte[] s
        start local 3 // byte[] pk
        start local 4 // int pkOff
        start local 5 // byte[] ctx
        start local 6 // byte phflag
        start local 7 // byte[] m
        start local 8 // int mOff
        start local 9 // int mLen
        start local 10 // byte[] sig
        start local 11 // int sigOff
         0: .line 335
            aload 0 /* d */
            iload 6 /* phflag */
            aload 5 /* ctx */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.dom2:(Lorg/bouncycastle/crypto/Digest;B[B)V
         1: .line 336
            aload 0 /* d */
            aload 1 /* h */
            bipush 32
            bipush 32
            invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
         2: .line 337
            aload 0 /* d */
            aload 7 /* m */
            iload 8 /* mOff */
            iload 9 /* mLen */
            invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
         3: .line 338
            aload 0 /* d */
            aload 1 /* h */
            iconst_0
            invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
            pop
         4: .line 340
            aload 1 /* h */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.reduceScalar:([B)[B
            astore 12 /* r */
        start local 12 // byte[] r
         5: .line 341
            bipush 32
            newarray 8
            astore 13 /* R */
        start local 13 // byte[] R
         6: .line 342
            aload 12 /* r */
            aload 13 /* R */
            iconst_0
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.scalarMultBaseEncoded:([B[BI)V
         7: .line 344
            aload 0 /* d */
            iload 6 /* phflag */
            aload 5 /* ctx */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.dom2:(Lorg/bouncycastle/crypto/Digest;B[B)V
         8: .line 345
            aload 0 /* d */
            aload 13 /* R */
            iconst_0
            bipush 32
            invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
         9: .line 346
            aload 0 /* d */
            aload 3 /* pk */
            iload 4 /* pkOff */
            bipush 32
            invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
        10: .line 347
            aload 0 /* d */
            aload 7 /* m */
            iload 8 /* mOff */
            iload 9 /* mLen */
            invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
        11: .line 348
            aload 0 /* d */
            aload 1 /* h */
            iconst_0
            invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
            pop
        12: .line 350
            aload 1 /* h */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.reduceScalar:([B)[B
            astore 14 /* k */
        start local 14 // byte[] k
        13: .line 351
            aload 12 /* r */
            aload 14 /* k */
            aload 2 /* s */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.calculateS:([B[B[B)[B
            astore 15 /* S */
        start local 15 // byte[] S
        14: .line 353
            aload 13 /* R */
            iconst_0
            aload 10 /* sig */
            iload 11 /* sigOff */
            bipush 32
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        15: .line 354
            aload 15 /* S */
            iconst_0
            aload 10 /* sig */
            iload 11 /* sigOff */
            bipush 32
            iadd
            bipush 32
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        16: .line 355
            return
        end local 15 // byte[] S
        end local 14 // byte[] k
        end local 13 // byte[] R
        end local 12 // byte[] r
        end local 11 // int sigOff
        end local 10 // byte[] sig
        end local 9 // int mLen
        end local 8 // int mOff
        end local 7 // byte[] m
        end local 6 // byte phflag
        end local 5 // byte[] ctx
        end local 4 // int pkOff
        end local 3 // byte[] pk
        end local 2 // byte[] s
        end local 1 // byte[] h
        end local 0 // org.bouncycastle.crypto.Digest d
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   17     0       d  Lorg/bouncycastle/crypto/Digest;
            0   17     1       h  [B
            0   17     2       s  [B
            0   17     3      pk  [B
            0   17     4   pkOff  I
            0   17     5     ctx  [B
            0   17     6  phflag  B
            0   17     7       m  [B
            0   17     8    mOff  I
            0   17     9    mLen  I
            0   17    10     sig  [B
            0   17    11  sigOff  I
            5   17    12       r  [B
            6   17    13       R  [B
           13   17    14       k  [B
           14   17    15       S  [B
    MethodParameters:
        Name  Flags
      d       
      h       
      s       
      pk      
      pkOff   
      ctx     
      phflag  
      m       
      mOff    
      mLen    
      sig     
      sigOff  

  private static void implSign(byte[], int, byte[], byte, byte[], int, int, byte[], int);
    descriptor: ([BI[BB[BII[BI)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=12, locals=13, args_size=9
        start local 0 // byte[] sk
        start local 1 // int skOff
        start local 2 // byte[] ctx
        start local 3 // byte phflag
        start local 4 // byte[] m
        start local 5 // int mOff
        start local 6 // int mLen
        start local 7 // byte[] sig
        start local 8 // int sigOff
         0: .line 360
            aload 2 /* ctx */
            iload 3 /* phflag */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.checkContextVar:([BB)Z
            ifne 2
         1: .line 362
            new java.lang.IllegalArgumentException
            dup
            ldc "ctx"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 365
      StackMap locals:
      StackMap stack:
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.createDigest:()Lorg/bouncycastle/crypto/Digest;
            astore 9 /* d */
        start local 9 // org.bouncycastle.crypto.Digest d
         3: .line 366
            aload 9 /* d */
            invokeinterface org.bouncycastle.crypto.Digest.getDigestSize:()I
            newarray 8
            astore 10 /* h */
        start local 10 // byte[] h
         4: .line 368
            aload 9 /* d */
            aload 0 /* sk */
            iload 1 /* skOff */
            bipush 32
            invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
         5: .line 369
            aload 9 /* d */
            aload 10 /* h */
            iconst_0
            invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
            pop
         6: .line 371
            bipush 32
            newarray 8
            astore 11 /* s */
        start local 11 // byte[] s
         7: .line 372
            aload 10 /* h */
            iconst_0
            aload 11 /* s */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pruneScalar:([BI[B)V
         8: .line 374
            bipush 32
            newarray 8
            astore 12 /* pk */
        start local 12 // byte[] pk
         9: .line 375
            aload 11 /* s */
            aload 12 /* pk */
            iconst_0
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.scalarMultBaseEncoded:([B[BI)V
        10: .line 377
            aload 9 /* d */
            aload 10 /* h */
            aload 11 /* s */
            aload 12 /* pk */
            iconst_0
            aload 2 /* ctx */
            iload 3 /* phflag */
            aload 4 /* m */
            iload 5 /* mOff */
            iload 6 /* mLen */
            aload 7 /* sig */
            iload 8 /* sigOff */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.implSign:(Lorg/bouncycastle/crypto/Digest;[B[B[BI[BB[BII[BI)V
        11: .line 378
            return
        end local 12 // byte[] pk
        end local 11 // byte[] s
        end local 10 // byte[] h
        end local 9 // org.bouncycastle.crypto.Digest d
        end local 8 // int sigOff
        end local 7 // byte[] sig
        end local 6 // int mLen
        end local 5 // int mOff
        end local 4 // byte[] m
        end local 3 // byte phflag
        end local 2 // byte[] ctx
        end local 1 // int skOff
        end local 0 // byte[] sk
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0      sk  [B
            0   12     1   skOff  I
            0   12     2     ctx  [B
            0   12     3  phflag  B
            0   12     4       m  [B
            0   12     5    mOff  I
            0   12     6    mLen  I
            0   12     7     sig  [B
            0   12     8  sigOff  I
            3   12     9       d  Lorg/bouncycastle/crypto/Digest;
            4   12    10       h  [B
            7   12    11       s  [B
            9   12    12      pk  [B
    MethodParameters:
        Name  Flags
      sk      
      skOff   
      ctx     
      phflag  
      m       
      mOff    
      mLen    
      sig     
      sigOff  

  private static void implSign(byte[], int, byte[], int, byte[], byte, byte[], int, int, byte[], int);
    descriptor: ([BI[BI[BB[BII[BI)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=12, locals=14, args_size=11
        start local 0 // byte[] sk
        start local 1 // int skOff
        start local 2 // byte[] pk
        start local 3 // int pkOff
        start local 4 // byte[] ctx
        start local 5 // byte phflag
        start local 6 // byte[] m
        start local 7 // int mOff
        start local 8 // int mLen
        start local 9 // byte[] sig
        start local 10 // int sigOff
         0: .line 383
            aload 4 /* ctx */
            iload 5 /* phflag */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.checkContextVar:([BB)Z
            ifne 2
         1: .line 385
            new java.lang.IllegalArgumentException
            dup
            ldc "ctx"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 388
      StackMap locals:
      StackMap stack:
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.createDigest:()Lorg/bouncycastle/crypto/Digest;
            astore 11 /* d */
        start local 11 // org.bouncycastle.crypto.Digest d
         3: .line 389
            aload 11 /* d */
            invokeinterface org.bouncycastle.crypto.Digest.getDigestSize:()I
            newarray 8
            astore 12 /* h */
        start local 12 // byte[] h
         4: .line 391
            aload 11 /* d */
            aload 0 /* sk */
            iload 1 /* skOff */
            bipush 32
            invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
         5: .line 392
            aload 11 /* d */
            aload 12 /* h */
            iconst_0
            invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
            pop
         6: .line 394
            bipush 32
            newarray 8
            astore 13 /* s */
        start local 13 // byte[] s
         7: .line 395
            aload 12 /* h */
            iconst_0
            aload 13 /* s */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pruneScalar:([BI[B)V
         8: .line 397
            aload 11 /* d */
            aload 12 /* h */
            aload 13 /* s */
            aload 2 /* pk */
            iload 3 /* pkOff */
            aload 4 /* ctx */
            iload 5 /* phflag */
            aload 6 /* m */
            iload 7 /* mOff */
            iload 8 /* mLen */
            aload 9 /* sig */
            iload 10 /* sigOff */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.implSign:(Lorg/bouncycastle/crypto/Digest;[B[B[BI[BB[BII[BI)V
         9: .line 398
            return
        end local 13 // byte[] s
        end local 12 // byte[] h
        end local 11 // org.bouncycastle.crypto.Digest d
        end local 10 // int sigOff
        end local 9 // byte[] sig
        end local 8 // int mLen
        end local 7 // int mOff
        end local 6 // byte[] m
        end local 5 // byte phflag
        end local 4 // byte[] ctx
        end local 3 // int pkOff
        end local 2 // byte[] pk
        end local 1 // int skOff
        end local 0 // byte[] sk
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0      sk  [B
            0   10     1   skOff  I
            0   10     2      pk  [B
            0   10     3   pkOff  I
            0   10     4     ctx  [B
            0   10     5  phflag  B
            0   10     6       m  [B
            0   10     7    mOff  I
            0   10     8    mLen  I
            0   10     9     sig  [B
            0   10    10  sigOff  I
            3   10    11       d  Lorg/bouncycastle/crypto/Digest;
            4   10    12       h  [B
            7   10    13       s  [B
    MethodParameters:
        Name  Flags
      sk      
      skOff   
      pk      
      pkOff   
      ctx     
      phflag  
      m       
      mOff    
      mLen    
      sig     
      sigOff  

  private static boolean implVerify(byte[], int, byte[], int, byte[], byte, byte[], int, int);
    descriptor: ([BI[BI[BB[BII)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=19, args_size=9
        start local 0 // byte[] sig
        start local 1 // int sigOff
        start local 2 // byte[] pk
        start local 3 // int pkOff
        start local 4 // byte[] ctx
        start local 5 // byte phflag
        start local 6 // byte[] m
        start local 7 // int mOff
        start local 8 // int mLen
         0: .line 403
            aload 4 /* ctx */
            iload 5 /* phflag */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.checkContextVar:([BB)Z
            ifne 2
         1: .line 405
            new java.lang.IllegalArgumentException
            dup
            ldc "ctx"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 408
      StackMap locals:
      StackMap stack:
            aload 0 /* sig */
            iload 1 /* sigOff */
            iload 1 /* sigOff */
            bipush 32
            iadd
            invokestatic org.bouncycastle.util.Arrays.copyOfRange:([BII)[B
            astore 9 /* R */
        start local 9 // byte[] R
         3: .line 409
            aload 0 /* sig */
            iload 1 /* sigOff */
            bipush 32
            iadd
            iload 1 /* sigOff */
            bipush 64
            iadd
            invokestatic org.bouncycastle.util.Arrays.copyOfRange:([BII)[B
            astore 10 /* S */
        start local 10 // byte[] S
         4: .line 411
            aload 9 /* R */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.checkPointVar:([B)Z
            ifne 6
         5: .line 413
            iconst_0
            ireturn
         6: .line 415
      StackMap locals: byte[] byte[]
      StackMap stack:
            aload 10 /* S */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.checkScalarVar:([B)Z
            ifne 8
         7: .line 417
            iconst_0
            ireturn
         8: .line 420
      StackMap locals:
      StackMap stack:
            new org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt
            dup
            invokespecial org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.<init>:()V
            astore 11 /* pA */
        start local 11 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt pA
         9: .line 421
            aload 2 /* pk */
            iload 3 /* pkOff */
            iconst_1
            aload 11 /* pA */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decodePointVar:([BIZLorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;)Z
            ifne 11
        10: .line 423
            iconst_0
            ireturn
        11: .line 426
      StackMap locals: org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt
      StackMap stack:
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.createDigest:()Lorg/bouncycastle/crypto/Digest;
            astore 12 /* d */
        start local 12 // org.bouncycastle.crypto.Digest d
        12: .line 427
            aload 12 /* d */
            invokeinterface org.bouncycastle.crypto.Digest.getDigestSize:()I
            newarray 8
            astore 13 /* h */
        start local 13 // byte[] h
        13: .line 429
            aload 12 /* d */
            iload 5 /* phflag */
            aload 4 /* ctx */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.dom2:(Lorg/bouncycastle/crypto/Digest;B[B)V
        14: .line 430
            aload 12 /* d */
            aload 9 /* R */
            iconst_0
            bipush 32
            invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
        15: .line 431
            aload 12 /* d */
            aload 2 /* pk */
            iload 3 /* pkOff */
            bipush 32
            invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
        16: .line 432
            aload 12 /* d */
            aload 6 /* m */
            iload 7 /* mOff */
            iload 8 /* mLen */
            invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
        17: .line 433
            aload 12 /* d */
            aload 13 /* h */
            iconst_0
            invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
            pop
        18: .line 435
            aload 13 /* h */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.reduceScalar:([B)[B
            astore 14 /* k */
        start local 14 // byte[] k
        19: .line 437
            bipush 8
            newarray 10
            astore 15 /* nS */
        start local 15 // int[] nS
        20: .line 438
            aload 10 /* S */
            iconst_0
            aload 15 /* nS */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decodeScalar:([BI[I)V
        21: .line 440
            bipush 8
            newarray 10
            astore 16 /* nA */
        start local 16 // int[] nA
        22: .line 441
            aload 14 /* k */
            iconst_0
            aload 16 /* nA */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decodeScalar:([BI[I)V
        23: .line 443
            new org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum
            dup
            invokespecial org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.<init>:()V
            astore 17 /* pR */
        start local 17 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum pR
        24: .line 444
            aload 15 /* nS */
            aload 16 /* nA */
            aload 11 /* pA */
            aload 17 /* pR */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.scalarMultStraussVar:([I[ILorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
        25: .line 446
            bipush 32
            newarray 8
            astore 18 /* check */
        start local 18 // byte[] check
        26: .line 447
            aload 17 /* pR */
            aload 18 /* check */
            iconst_0
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.encodePoint:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;[BI)V
        27: .line 449
            aload 18 /* check */
            aload 9 /* R */
            invokestatic org.bouncycastle.util.Arrays.areEqual:([B[B)Z
            ireturn
        end local 18 // byte[] check
        end local 17 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum pR
        end local 16 // int[] nA
        end local 15 // int[] nS
        end local 14 // byte[] k
        end local 13 // byte[] h
        end local 12 // org.bouncycastle.crypto.Digest d
        end local 11 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt pA
        end local 10 // byte[] S
        end local 9 // byte[] R
        end local 8 // int mLen
        end local 7 // int mOff
        end local 6 // byte[] m
        end local 5 // byte phflag
        end local 4 // byte[] ctx
        end local 3 // int pkOff
        end local 2 // byte[] pk
        end local 1 // int sigOff
        end local 0 // byte[] sig
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   28     0     sig  [B
            0   28     1  sigOff  I
            0   28     2      pk  [B
            0   28     3   pkOff  I
            0   28     4     ctx  [B
            0   28     5  phflag  B
            0   28     6       m  [B
            0   28     7    mOff  I
            0   28     8    mLen  I
            3   28     9       R  [B
            4   28    10       S  [B
            9   28    11      pA  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
           12   28    12       d  Lorg/bouncycastle/crypto/Digest;
           13   28    13       h  [B
           19   28    14       k  [B
           20   28    15      nS  [I
           22   28    16      nA  [I
           24   28    17      pR  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;
           26   28    18   check  [B
    MethodParameters:
        Name  Flags
      sig     
      sigOff  
      pk      
      pkOff   
      ctx     
      phflag  
      m       
      mOff    
      mLen    

  private static void pointAddVar(boolean, org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt, org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum);
    descriptor: (ZLorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=15, args_size=3
        start local 0 // boolean negate
        start local 1 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt p
        start local 2 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum r
         0: .line 454
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
            astore 3 /* A */
        start local 3 // int[] A
         1: .line 455
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
            astore 4 /* B */
        start local 4 // int[] B
         2: .line 456
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
            astore 5 /* C */
        start local 5 // int[] C
         3: .line 457
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
            astore 6 /* D */
        start local 6 // int[] D
         4: .line 458
            aload 2 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.u:[I
            astore 7 /* E */
        start local 7 // int[] E
         5: .line 459
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
            astore 8 /* F */
        start local 8 // int[] F
         6: .line 460
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
            astore 9 /* G */
        start local 9 // int[] G
         7: .line 461
            aload 2 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.v:[I
            astore 10 /* H */
        start local 10 // int[] H
         8: .line 464
            iload 0 /* negate */
            ifeq 14
         9: .line 466
            aload 6 /* D */
            astore 11 /* c */
        start local 11 // int[] c
        10: aload 5 /* C */
            astore 12 /* d */
        start local 12 // int[] d
        11: aload 9 /* G */
            astore 13 /* f */
        start local 13 // int[] f
        12: aload 8 /* F */
            astore 14 /* g */
        start local 14 // int[] g
        13: .line 467
            goto 18
        end local 14 // int[] g
        end local 13 // int[] f
        end local 12 // int[] d
        end local 11 // int[] c
        14: .line 470
      StackMap locals: int org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum int[] int[] int[] int[] int[] int[] int[] int[]
      StackMap stack:
            aload 5 /* C */
            astore 11 /* c */
        start local 11 // int[] c
        15: aload 6 /* D */
            astore 12 /* d */
        start local 12 // int[] d
        16: aload 8 /* F */
            astore 13 /* f */
        start local 13 // int[] f
        17: aload 9 /* G */
            astore 14 /* g */
        start local 14 // int[] g
        18: .line 473
      StackMap locals: int org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum int[] int[] int[] int[] int[] int[] int[] int[] int[] int[] int[] int[]
      StackMap stack:
            aload 2 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.y:[I
            aload 2 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.x:[I
            aload 4 /* B */
            aload 3 /* A */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.apm:([I[I[I[I)V
        19: .line 474
            aload 1 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.y:[I
            aload 1 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
            aload 12 /* d */
            aload 11 /* c */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.apm:([I[I[I[I)V
        20: .line 475
            aload 3 /* A */
            aload 5 /* C */
            aload 3 /* A */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        21: .line 476
            aload 4 /* B */
            aload 6 /* D */
            aload 4 /* B */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        22: .line 477
            aload 2 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.u:[I
            aload 2 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.v:[I
            aload 5 /* C */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        23: .line 478
            aload 5 /* C */
            aload 1 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.t:[I
            aload 5 /* C */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        24: .line 479
            aload 5 /* C */
            getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.C_d2:[I
            aload 5 /* C */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        25: .line 480
            aload 2 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.z:[I
            aload 1 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.z:[I
            aload 6 /* D */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        26: .line 481
            aload 6 /* D */
            aload 6 /* D */
            aload 6 /* D */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.add:([I[I[I)V
        27: .line 482
            aload 4 /* B */
            aload 3 /* A */
            aload 10 /* H */
            aload 7 /* E */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.apm:([I[I[I[I)V
        28: .line 483
            aload 6 /* D */
            aload 5 /* C */
            aload 14 /* g */
            aload 13 /* f */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.apm:([I[I[I[I)V
        29: .line 484
            aload 14 /* g */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.carry:([I)V
        30: .line 485
            aload 7 /* E */
            aload 8 /* F */
            aload 2 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.x:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        31: .line 486
            aload 9 /* G */
            aload 10 /* H */
            aload 2 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.y:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        32: .line 487
            aload 8 /* F */
            aload 9 /* G */
            aload 2 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.z:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        33: .line 488
            return
        end local 14 // int[] g
        end local 13 // int[] f
        end local 12 // int[] d
        end local 11 // int[] c
        end local 10 // int[] H
        end local 9 // int[] G
        end local 8 // int[] F
        end local 7 // int[] E
        end local 6 // int[] D
        end local 5 // int[] C
        end local 4 // int[] B
        end local 3 // int[] A
        end local 2 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum r
        end local 1 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt p
        end local 0 // boolean negate
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   34     0  negate  Z
            0   34     1       p  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
            0   34     2       r  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;
            1   34     3       A  [I
            2   34     4       B  [I
            3   34     5       C  [I
            4   34     6       D  [I
            5   34     7       E  [I
            6   34     8       F  [I
            7   34     9       G  [I
            8   34    10       H  [I
           10   14    11       c  [I
           15   34    11       c  [I
           11   14    12       d  [I
           16   34    12       d  [I
           12   14    13       f  [I
           17   34    13       f  [I
           13   14    14       g  [I
           18   34    14       g  [I
    MethodParameters:
        Name  Flags
      negate  
      p       
      r       

  private static void pointAddVar(boolean, org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt, org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt, org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt);
    descriptor: (ZLorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=16, args_size=4
        start local 0 // boolean negate
        start local 1 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt p
        start local 2 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt q
        start local 3 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt r
         0: .line 492
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
            astore 4 /* A */
        start local 4 // int[] A
         1: .line 493
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
            astore 5 /* B */
        start local 5 // int[] B
         2: .line 494
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
            astore 6 /* C */
        start local 6 // int[] C
         3: .line 495
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
            astore 7 /* D */
        start local 7 // int[] D
         4: .line 496
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
            astore 8 /* E */
        start local 8 // int[] E
         5: .line 497
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
            astore 9 /* F */
        start local 9 // int[] F
         6: .line 498
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
            astore 10 /* G */
        start local 10 // int[] G
         7: .line 499
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
            astore 11 /* H */
        start local 11 // int[] H
         8: .line 502
            iload 0 /* negate */
            ifeq 14
         9: .line 504
            aload 7 /* D */
            astore 12 /* c */
        start local 12 // int[] c
        10: aload 6 /* C */
            astore 13 /* d */
        start local 13 // int[] d
        11: aload 10 /* G */
            astore 14 /* f */
        start local 14 // int[] f
        12: aload 9 /* F */
            astore 15 /* g */
        start local 15 // int[] g
        13: .line 505
            goto 18
        end local 15 // int[] g
        end local 14 // int[] f
        end local 13 // int[] d
        end local 12 // int[] c
        14: .line 508
      StackMap locals: int org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt int[] int[] int[] int[] int[] int[] int[] int[]
      StackMap stack:
            aload 6 /* C */
            astore 12 /* c */
        start local 12 // int[] c
        15: aload 7 /* D */
            astore 13 /* d */
        start local 13 // int[] d
        16: aload 9 /* F */
            astore 14 /* f */
        start local 14 // int[] f
        17: aload 10 /* G */
            astore 15 /* g */
        start local 15 // int[] g
        18: .line 511
      StackMap locals: int org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt int[] int[] int[] int[] int[] int[] int[] int[] int[] int[] int[] int[]
      StackMap stack:
            aload 1 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.y:[I
            aload 1 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
            aload 5 /* B */
            aload 4 /* A */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.apm:([I[I[I[I)V
        19: .line 512
            aload 2 /* q */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.y:[I
            aload 2 /* q */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
            aload 13 /* d */
            aload 12 /* c */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.apm:([I[I[I[I)V
        20: .line 513
            aload 4 /* A */
            aload 6 /* C */
            aload 4 /* A */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        21: .line 514
            aload 5 /* B */
            aload 7 /* D */
            aload 5 /* B */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        22: .line 515
            aload 1 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.t:[I
            aload 2 /* q */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.t:[I
            aload 6 /* C */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        23: .line 516
            aload 6 /* C */
            getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.C_d2:[I
            aload 6 /* C */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        24: .line 517
            aload 1 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.z:[I
            aload 2 /* q */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.z:[I
            aload 7 /* D */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        25: .line 518
            aload 7 /* D */
            aload 7 /* D */
            aload 7 /* D */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.add:([I[I[I)V
        26: .line 519
            aload 5 /* B */
            aload 4 /* A */
            aload 11 /* H */
            aload 8 /* E */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.apm:([I[I[I[I)V
        27: .line 520
            aload 7 /* D */
            aload 6 /* C */
            aload 15 /* g */
            aload 14 /* f */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.apm:([I[I[I[I)V
        28: .line 521
            aload 15 /* g */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.carry:([I)V
        29: .line 522
            aload 8 /* E */
            aload 9 /* F */
            aload 3 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        30: .line 523
            aload 10 /* G */
            aload 11 /* H */
            aload 3 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.y:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        31: .line 524
            aload 9 /* F */
            aload 10 /* G */
            aload 3 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.z:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        32: .line 525
            aload 8 /* E */
            aload 11 /* H */
            aload 3 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.t:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        33: .line 526
            return
        end local 15 // int[] g
        end local 14 // int[] f
        end local 13 // int[] d
        end local 12 // int[] c
        end local 11 // int[] H
        end local 10 // int[] G
        end local 9 // int[] F
        end local 8 // int[] E
        end local 7 // int[] D
        end local 6 // int[] C
        end local 5 // int[] B
        end local 4 // int[] A
        end local 3 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt r
        end local 2 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt q
        end local 1 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt p
        end local 0 // boolean negate
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   34     0  negate  Z
            0   34     1       p  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
            0   34     2       q  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
            0   34     3       r  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
            1   34     4       A  [I
            2   34     5       B  [I
            3   34     6       C  [I
            4   34     7       D  [I
            5   34     8       E  [I
            6   34     9       F  [I
            7   34    10       G  [I
            8   34    11       H  [I
           10   14    12       c  [I
           15   34    12       c  [I
           11   14    13       d  [I
           16   34    13       d  [I
           12   14    14       f  [I
           17   34    14       f  [I
           13   14    15       g  [I
           18   34    15       g  [I
    MethodParameters:
        Name  Flags
      negate  
      p       
      q       
      r       

  private static void pointAddPrecomp(org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp, org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum);
    descriptor: (Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointPrecomp;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp p
        start local 1 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum r
         0: .line 530
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
            astore 2 /* A */
        start local 2 // int[] A
         1: .line 531
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
            astore 3 /* B */
        start local 3 // int[] B
         2: .line 532
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
            astore 4 /* C */
        start local 4 // int[] C
         3: .line 533
            aload 1 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.u:[I
            astore 5 /* E */
        start local 5 // int[] E
         4: .line 534
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
            astore 6 /* F */
        start local 6 // int[] F
         5: .line 535
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
            astore 7 /* G */
        start local 7 // int[] G
         6: .line 536
            aload 1 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.v:[I
            astore 8 /* H */
        start local 8 // int[] H
         7: .line 538
            aload 1 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.y:[I
            aload 1 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.x:[I
            aload 3 /* B */
            aload 2 /* A */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.apm:([I[I[I[I)V
         8: .line 539
            aload 2 /* A */
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.ymx_h:[I
            aload 2 /* A */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
         9: .line 540
            aload 3 /* B */
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.ypx_h:[I
            aload 3 /* B */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        10: .line 541
            aload 1 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.u:[I
            aload 1 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.v:[I
            aload 4 /* C */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        11: .line 542
            aload 4 /* C */
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.xyd:[I
            aload 4 /* C */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        12: .line 543
            aload 3 /* B */
            aload 2 /* A */
            aload 8 /* H */
            aload 5 /* E */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.apm:([I[I[I[I)V
        13: .line 544
            aload 1 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.z:[I
            aload 4 /* C */
            aload 7 /* G */
            aload 6 /* F */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.apm:([I[I[I[I)V
        14: .line 545
            aload 7 /* G */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.carry:([I)V
        15: .line 546
            aload 5 /* E */
            aload 6 /* F */
            aload 1 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.x:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        16: .line 547
            aload 7 /* G */
            aload 8 /* H */
            aload 1 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.y:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        17: .line 548
            aload 6 /* F */
            aload 7 /* G */
            aload 1 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.z:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        18: .line 549
            return
        end local 8 // int[] H
        end local 7 // int[] G
        end local 6 // int[] F
        end local 5 // int[] E
        end local 4 // int[] C
        end local 3 // int[] B
        end local 2 // int[] A
        end local 1 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum r
        end local 0 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0     p  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointPrecomp;
            0   19     1     r  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;
            1   19     2     A  [I
            2   19     3     B  [I
            3   19     4     C  [I
            4   19     5     E  [I
            5   19     6     F  [I
            6   19     7     G  [I
            7   19     8     H  [I
    MethodParameters:
      Name  Flags
      p     
      r     

  private static org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt pointCopy(org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum);
    descriptor: (Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum p
         0: .line 553
            new org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt
            dup
            invokespecial org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.<init>:()V
            astore 1 /* r */
        start local 1 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt r
         1: .line 554
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.x:[I
            iconst_0
            aload 1 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
            iconst_0
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
         2: .line 555
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.y:[I
            iconst_0
            aload 1 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.y:[I
            iconst_0
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
         3: .line 556
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.z:[I
            iconst_0
            aload 1 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.z:[I
            iconst_0
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
         4: .line 557
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.u:[I
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.v:[I
            aload 1 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.t:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
         5: .line 558
            aload 1 /* r */
            areturn
        end local 1 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt r
        end local 0 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0     p  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;
            1    6     1     r  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
    MethodParameters:
      Name  Flags
      p     

  private static org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt pointCopy(org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt);
    descriptor: (Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;)Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt p
         0: .line 563
            new org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt
            dup
            invokespecial org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.<init>:()V
            astore 1 /* r */
        start local 1 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt r
         1: .line 564
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
            iconst_0
            aload 1 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
            iconst_0
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
         2: .line 565
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.y:[I
            iconst_0
            aload 1 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.y:[I
            iconst_0
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
         3: .line 566
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.z:[I
            iconst_0
            aload 1 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.z:[I
            iconst_0
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
         4: .line 567
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.t:[I
            iconst_0
            aload 1 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.t:[I
            iconst_0
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
         5: .line 568
            aload 1 /* r */
            areturn
        end local 1 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt r
        end local 0 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0     p  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
            1    6     1     r  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
    MethodParameters:
      Name  Flags
      p     

  private static void pointDouble(org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum);
    descriptor: (Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=1
        start local 0 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum r
         0: .line 573
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
            astore 1 /* A */
        start local 1 // int[] A
         1: .line 574
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
            astore 2 /* B */
        start local 2 // int[] B
         2: .line 575
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
            astore 3 /* C */
        start local 3 // int[] C
         3: .line 576
            aload 0 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.u:[I
            astore 4 /* E */
        start local 4 // int[] E
         4: .line 577
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
            astore 5 /* F */
        start local 5 // int[] F
         5: .line 578
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
            astore 6 /* G */
        start local 6 // int[] G
         6: .line 579
            aload 0 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.v:[I
            astore 7 /* H */
        start local 7 // int[] H
         7: .line 581
            aload 0 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.x:[I
            aload 1 /* A */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.sqr:([I[I)V
         8: .line 582
            aload 0 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.y:[I
            aload 2 /* B */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.sqr:([I[I)V
         9: .line 583
            aload 0 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.z:[I
            aload 3 /* C */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.sqr:([I[I)V
        10: .line 584
            aload 3 /* C */
            aload 3 /* C */
            aload 3 /* C */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.add:([I[I[I)V
        11: .line 585
            aload 1 /* A */
            aload 2 /* B */
            aload 7 /* H */
            aload 6 /* G */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.apm:([I[I[I[I)V
        12: .line 586
            aload 0 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.x:[I
            aload 0 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.y:[I
            aload 4 /* E */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.add:([I[I[I)V
        13: .line 587
            aload 4 /* E */
            aload 4 /* E */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.sqr:([I[I)V
        14: .line 588
            aload 7 /* H */
            aload 4 /* E */
            aload 4 /* E */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.sub:([I[I[I)V
        15: .line 589
            aload 3 /* C */
            aload 6 /* G */
            aload 5 /* F */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.add:([I[I[I)V
        16: .line 590
            aload 5 /* F */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.carry:([I)V
        17: .line 591
            aload 4 /* E */
            aload 5 /* F */
            aload 0 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.x:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        18: .line 592
            aload 6 /* G */
            aload 7 /* H */
            aload 0 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.y:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        19: .line 593
            aload 5 /* F */
            aload 6 /* G */
            aload 0 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.z:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        20: .line 594
            return
        end local 7 // int[] H
        end local 6 // int[] G
        end local 5 // int[] F
        end local 4 // int[] E
        end local 3 // int[] C
        end local 2 // int[] B
        end local 1 // int[] A
        end local 0 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum r
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   21     0     r  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;
            1   21     1     A  [I
            2   21     2     B  [I
            3   21     3     C  [I
            4   21     4     E  [I
            5   21     5     F  [I
            6   21     6     G  [I
            7   21     7     H  [I
    MethodParameters:
      Name  Flags
      r     

  private static void pointExtendXY(org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum);
    descriptor: (Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum p
         0: .line 598
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.z:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.one:([I)V
         1: .line 599
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.x:[I
            iconst_0
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.u:[I
            iconst_0
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
         2: .line 600
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.y:[I
            iconst_0
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.v:[I
            iconst_0
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
         3: .line 601
            return
        end local 0 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     p  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;
    MethodParameters:
      Name  Flags
      p     

  private static void pointExtendXY(org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt);
    descriptor: (Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt p
         0: .line 605
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.z:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.one:([I)V
         1: .line 606
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.y:[I
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.t:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
         2: .line 607
            return
        end local 0 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     p  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
    MethodParameters:
      Name  Flags
      p     

  private static void pointLookup(int, int, org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp);
    descriptor: (IILorg/bouncycastle/math/ec/rfc8032/Ed25519$PointPrecomp;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // int block
        start local 1 // int index
        start local 2 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp p
         0: .line 614
            iload 0 /* block */
            bipush 8
            imul
            iconst_3
            imul
            bipush 10
            imul
            istore 3 /* off */
        start local 3 // int off
         1: .line 616
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 8
         3: .line 618
      StackMap locals: int int
      StackMap stack:
            iload 4 /* i */
            iload 1 /* index */
            ixor
            iconst_1
            isub
            bipush 31
            ishr
            istore 5 /* mask */
        start local 5 // int mask
         4: .line 619
            bipush 10
            iload 5 /* mask */
            getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompBase:[I
            iload 3 /* off */
            aload 2 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.ypx_h:[I
            iconst_0
            invokestatic org.bouncycastle.math.raw.Nat.cmov:(II[II[II)V
            iinc 3 /* off */ 10
         5: .line 620
            bipush 10
            iload 5 /* mask */
            getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompBase:[I
            iload 3 /* off */
            aload 2 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.ymx_h:[I
            iconst_0
            invokestatic org.bouncycastle.math.raw.Nat.cmov:(II[II[II)V
            iinc 3 /* off */ 10
         6: .line 621
            bipush 10
            iload 5 /* mask */
            getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompBase:[I
            iload 3 /* off */
            aload 2 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.xyd:[I
            iconst_0
            invokestatic org.bouncycastle.math.raw.Nat.cmov:(II[II[II)V
            iinc 3 /* off */ 10
        end local 5 // int mask
         7: .line 616
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            bipush 8
            if_icmplt 3
        end local 4 // int i
         9: .line 623
            return
        end local 3 // int off
        end local 2 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp p
        end local 1 // int index
        end local 0 // int block
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0  block  I
            0   10     1  index  I
            0   10     2      p  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointPrecomp;
            1   10     3    off  I
            2    9     4      i  I
            4    7     5   mask  I
    MethodParameters:
       Name  Flags
      block  
      index  
      p      

  private static org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt[] pointPrecompVar(org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt, int);
    descriptor: (Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;I)[Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=2
        start local 0 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt p
        start local 1 // int count
         0: .line 629
            new org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt
            dup
            invokespecial org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.<init>:()V
            astore 2 /* d */
        start local 2 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt d
         1: .line 630
            iconst_0
            aload 0 /* p */
            aload 0 /* p */
            aload 2 /* d */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointAddVar:(ZLorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;)V
         2: .line 632
            iload 1 /* count */
            anewarray org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt
            astore 3 /* table */
        start local 3 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt[] table
         3: .line 633
            aload 3 /* table */
            iconst_0
            aload 0 /* p */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointCopy:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;)Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
            aastore
         4: .line 634
            iconst_1
            istore 4 /* i */
        start local 4 // int i
         5: goto 8
         6: .line 636
      StackMap locals: org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt[] int
      StackMap stack:
            iconst_0
            aload 3 /* table */
            iload 4 /* i */
            iconst_1
            isub
            aaload
            aload 2 /* d */
            aload 3 /* table */
            iload 4 /* i */
            new org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt
            dup
            invokespecial org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.<init>:()V
            dup_x2
            aastore
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointAddVar:(ZLorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;)V
         7: .line 634
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            iload 1 /* count */
            if_icmplt 6
        end local 4 // int i
         9: .line 638
            aload 3 /* table */
            areturn
        end local 3 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt[] table
        end local 2 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt d
        end local 1 // int count
        end local 0 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt p
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0      p  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
            0   10     1  count  I
            1   10     2      d  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
            3   10     3  table  [Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
            5    9     4      i  I
    MethodParameters:
       Name  Flags
      p      
      count  

  private static void pointSetNeutral(org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum);
    descriptor: (Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum p
         0: .line 643
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.x:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.zero:([I)V
         1: .line 644
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.y:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.one:([I)V
         2: .line 645
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.z:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.one:([I)V
         3: .line 646
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.u:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.zero:([I)V
         4: .line 647
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.v:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.one:([I)V
         5: .line 648
            return
        end local 0 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0     p  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;
    MethodParameters:
      Name  Flags
      p     

  private static void pointSetNeutral(org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt);
    descriptor: (Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt p
         0: .line 652
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.zero:([I)V
         1: .line 653
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.y:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.one:([I)V
         2: .line 654
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.z:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.one:([I)V
         3: .line 655
            aload 0 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.t:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.zero:([I)V
         4: .line 656
            return
        end local 0 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     p  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
    MethodParameters:
      Name  Flags
      p     

  public static void precompute();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=13, args_size=0
         0: .line 660
            getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompLock:Ljava/lang/Object;
            dup
            astore 0
            monitorenter
         1: .line 662
            getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompBase:[I
            ifnull 4
         2: .line 664
            aload 0
            monitorexit
         3: return
         4: .line 669
      StackMap locals: java.lang.Object
      StackMap stack:
            new org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt
            dup
            invokespecial org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.<init>:()V
            astore 1 /* b */
        start local 1 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt b
         5: .line 670
            getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.B_x:[I
            iconst_0
            aload 1 /* b */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
            iconst_0
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
         6: .line 671
            getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.B_y:[I
            iconst_0
            aload 1 /* b */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.y:[I
            iconst_0
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
         7: .line 672
            aload 1 /* b */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointExtendXY:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;)V
         8: .line 674
            aload 1 /* b */
            bipush 32
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointPrecompVar:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;I)[Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
            putstatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompBaseTable:[Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
        end local 1 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt b
         9: .line 677
            new org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum
            dup
            invokespecial org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.<init>:()V
            astore 1 /* p */
        start local 1 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum p
        10: .line 678
            getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.B_x:[I
            iconst_0
            aload 1 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.x:[I
            iconst_0
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
        11: .line 679
            getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.B_y:[I
            iconst_0
            aload 1 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.y:[I
            iconst_0
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
        12: .line 680
            aload 1 /* p */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointExtendXY:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
        13: .line 682
            sipush 1920
            newarray 10
            putstatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompBase:[I
        14: .line 684
            iconst_0
            istore 2 /* off */
        start local 2 // int off
        15: .line 685
            iconst_0
            istore 3 /* b */
        start local 3 // int b
        16: goto 68
        17: .line 687
      StackMap locals: org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum int int
      StackMap stack:
            iconst_4
            anewarray org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt
            astore 4 /* ds */
        start local 4 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt[] ds
        18: .line 689
            new org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt
            dup
            invokespecial org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.<init>:()V
            astore 5 /* sum */
        start local 5 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt sum
        19: .line 690
            aload 5 /* sum */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointSetNeutral:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;)V
        20: .line 692
            iconst_0
            istore 6 /* t */
        start local 6 // int t
        21: goto 33
        22: .line 694
      StackMap locals: org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt[] org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt int
      StackMap stack:
            aload 1 /* p */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointCopy:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
            astore 7 /* q */
        start local 7 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt q
        23: .line 695
            iconst_1
            aload 5 /* sum */
            aload 7 /* q */
            aload 5 /* sum */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointAddVar:(ZLorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;)V
        24: .line 696
            aload 1 /* p */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointDouble:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
        25: .line 698
            aload 4 /* ds */
            iload 6 /* t */
            aload 1 /* p */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointCopy:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
            aastore
        26: .line 700
            iload 3 /* b */
            iload 6 /* t */
            iadd
            bipush 10
            if_icmpeq 32
        27: .line 702
            iconst_1
            istore 8 /* s */
        start local 8 // int s
        28: goto 31
        29: .line 704
      StackMap locals: org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt int
      StackMap stack:
            aload 1 /* p */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointDouble:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
        30: .line 702
            iinc 8 /* s */ 1
      StackMap locals:
      StackMap stack:
        31: iload 8 /* s */
            bipush 8
            if_icmplt 29
        end local 8 // int s
        end local 7 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt q
        32: .line 692
      StackMap locals:
      StackMap stack:
            iinc 6 /* t */ 1
      StackMap locals:
      StackMap stack:
        33: iload 6 /* t */
            iconst_4
            if_icmplt 22
        end local 6 // int t
        34: .line 709
            bipush 8
            anewarray org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt
            astore 6 /* points */
        start local 6 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt[] points
        35: .line 710
            iconst_0
            istore 7 /* k */
        start local 7 // int k
        36: .line 711
            aload 6 /* points */
            iload 7 /* k */
            iinc 7 /* k */ 1
            aload 5 /* sum */
            aastore
        37: .line 713
            iconst_0
            istore 8 /* t */
        start local 8 // int t
        38: goto 46
        39: .line 715
      StackMap locals: java.lang.Object org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum int int org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt[] org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt[] int int
      StackMap stack:
            iconst_1
            iload 8 /* t */
            ishl
            istore 9 /* size */
        start local 9 // int size
        40: .line 716
            iconst_0
            istore 10 /* j */
        start local 10 // int j
        41: goto 44
        42: .line 718
      StackMap locals: int int
      StackMap stack:
            iconst_0
            aload 6 /* points */
            iload 7 /* k */
            iload 9 /* size */
            isub
            aaload
            aload 4 /* ds */
            iload 8 /* t */
            aaload
            aload 6 /* points */
            iload 7 /* k */
            new org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt
            dup
            invokespecial org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.<init>:()V
            dup_x2
            aastore
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointAddVar:(ZLorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;)V
        43: .line 716
            iinc 10 /* j */ 1
            iinc 7 /* k */ 1
      StackMap locals:
      StackMap stack:
        44: iload 10 /* j */
            iload 9 /* size */
            if_icmplt 42
        end local 10 // int j
        end local 9 // int size
        45: .line 713
            iinc 8 /* t */ 1
      StackMap locals:
      StackMap stack:
        46: iload 8 /* t */
            iconst_3
            if_icmplt 39
        end local 8 // int t
        47: .line 724
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        48: goto 66
        49: .line 726
      StackMap locals:
      StackMap stack:
            aload 6 /* points */
            iload 8 /* i */
            aaload
            astore 9 /* q */
        start local 9 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt q
        50: .line 728
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
            astore 10 /* x */
        start local 10 // int[] x
        51: .line 729
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.create:()[I
            astore 11 /* y */
        start local 11 // int[] y
        52: .line 731
            aload 9 /* q */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.z:[I
            aload 9 /* q */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.z:[I
            aload 10 /* x */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.add:([I[I[I)V
        53: .line 733
            aload 10 /* x */
            aload 11 /* y */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.inv:([I[I)V
        54: .line 734
            aload 9 /* q */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.x:[I
            aload 11 /* y */
            aload 10 /* x */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        55: .line 735
            aload 9 /* q */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt.y:[I
            aload 11 /* y */
            aload 11 /* y */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        56: .line 737
            new org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp
            dup
            invokespecial org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.<init>:()V
            astore 12 /* r */
        start local 12 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp r
        57: .line 738
            aload 11 /* y */
            aload 10 /* x */
            aload 12 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.ypx_h:[I
            aload 12 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.ymx_h:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.apm:([I[I[I[I)V
        58: .line 739
            aload 10 /* x */
            aload 11 /* y */
            aload 12 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.xyd:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        59: .line 740
            aload 12 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.xyd:[I
            getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.C_d4:[I
            aload 12 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.xyd:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.mul:([I[I[I)V
        60: .line 742
            aload 12 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.ypx_h:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.normalize:([I)V
        61: .line 743
            aload 12 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.ymx_h:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.normalize:([I)V
        62: .line 746
            aload 12 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.ypx_h:[I
            iconst_0
            getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompBase:[I
            iload 2 /* off */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
            iinc 2 /* off */ 10
        63: .line 747
            aload 12 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.ymx_h:[I
            iconst_0
            getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompBase:[I
            iload 2 /* off */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
            iinc 2 /* off */ 10
        64: .line 748
            aload 12 /* r */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.xyd:[I
            iconst_0
            getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompBase:[I
            iload 2 /* off */
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
            iinc 2 /* off */ 10
        end local 12 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp r
        end local 11 // int[] y
        end local 10 // int[] x
        end local 9 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt q
        65: .line 724
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        66: iload 8 /* i */
            bipush 8
            if_icmplt 49
        end local 8 // int i
        end local 7 // int k
        end local 6 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt[] points
        end local 5 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt sum
        end local 4 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt[] ds
        67: .line 685
            iinc 3 /* b */ 1
      StackMap locals: java.lang.Object org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum int int
      StackMap stack:
        68: iload 3 /* b */
            bipush 8
            if_icmplt 17
        end local 3 // int b
        end local 2 // int off
        end local 1 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum p
        69: .line 660
            aload 0
            monitorexit
        70: goto 73
      StackMap locals: java.lang.Object
      StackMap stack: java.lang.Throwable
        71: aload 0
            monitorexit
        72: athrow
        73: .line 754
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            5    9     1       b  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
           10   69     1       p  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;
           15   69     2     off  I
           16   69     3       b  I
           18   67     4      ds  [Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
           19   67     5     sum  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
           21   34     6       t  I
           23   32     7       q  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
           28   32     8       s  I
           35   67     6  points  [Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
           36   67     7       k  I
           38   47     8       t  I
           40   45     9    size  I
           41   45    10       j  I
           48   67     8       i  I
           50   65     9       q  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
           51   65    10       x  [I
           52   65    11       y  [I
           57   65    12       r  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointPrecomp;
      Exception table:
        from    to  target  type
           1     3      71  any
           4    70      71  any
          71    72      71  any

  private static void pruneScalar(byte[], int, byte[]);
    descriptor: ([BI[B)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // byte[] n
        start local 1 // int nOff
        start local 2 // byte[] r
         0: .line 758
            aload 0 /* n */
            iload 1 /* nOff */
            aload 2 /* r */
            iconst_0
            bipush 32
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         1: .line 760
            aload 2 /* r */
            iconst_0
            dup2
            baload
            sipush 248
            iand
            i2b
            bastore
         2: .line 761
            aload 2 /* r */
            bipush 31
            dup2
            baload
            bipush 127
            iand
            i2b
            bastore
         3: .line 762
            aload 2 /* r */
            bipush 31
            dup2
            baload
            bipush 64
            ior
            i2b
            bastore
         4: .line 763
            return
        end local 2 // byte[] r
        end local 1 // int nOff
        end local 0 // byte[] n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     n  [B
            0    5     1  nOff  I
            0    5     2     r  [B
    MethodParameters:
      Name  Flags
      n     
      nOff  
      r     

  private static byte[] reduceScalar(byte[]);
    descriptor: ([B)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=42, args_size=1
        start local 0 // byte[] n
         0: .line 767
            aload 0 /* n */
            iconst_0
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode32:([BI)I
            i2l
            ldc 4294967295
            land
            lstore 1 /* x00 */
        start local 1 // long x00
         1: .line 768
            aload 0 /* n */
            iconst_4
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode24:([BI)I
            iconst_4
            ishl
            i2l
            ldc 4294967295
            land
            lstore 3 /* x01 */
        start local 3 // long x01
         2: .line 769
            aload 0 /* n */
            bipush 7
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode32:([BI)I
            i2l
            ldc 4294967295
            land
            lstore 5 /* x02 */
        start local 5 // long x02
         3: .line 770
            aload 0 /* n */
            bipush 11
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode24:([BI)I
            iconst_4
            ishl
            i2l
            ldc 4294967295
            land
            lstore 7 /* x03 */
        start local 7 // long x03
         4: .line 771
            aload 0 /* n */
            bipush 14
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode32:([BI)I
            i2l
            ldc 4294967295
            land
            lstore 9 /* x04 */
        start local 9 // long x04
         5: .line 772
            aload 0 /* n */
            bipush 18
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode24:([BI)I
            iconst_4
            ishl
            i2l
            ldc 4294967295
            land
            lstore 11 /* x05 */
        start local 11 // long x05
         6: .line 773
            aload 0 /* n */
            bipush 21
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode32:([BI)I
            i2l
            ldc 4294967295
            land
            lstore 13 /* x06 */
        start local 13 // long x06
         7: .line 774
            aload 0 /* n */
            bipush 25
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode24:([BI)I
            iconst_4
            ishl
            i2l
            ldc 4294967295
            land
            lstore 15 /* x07 */
        start local 15 // long x07
         8: .line 775
            aload 0 /* n */
            bipush 28
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode32:([BI)I
            i2l
            ldc 4294967295
            land
            lstore 17 /* x08 */
        start local 17 // long x08
         9: .line 776
            aload 0 /* n */
            bipush 32
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode24:([BI)I
            iconst_4
            ishl
            i2l
            ldc 4294967295
            land
            lstore 19 /* x09 */
        start local 19 // long x09
        10: .line 777
            aload 0 /* n */
            bipush 35
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode32:([BI)I
            i2l
            ldc 4294967295
            land
            lstore 21 /* x10 */
        start local 21 // long x10
        11: .line 778
            aload 0 /* n */
            bipush 39
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode24:([BI)I
            iconst_4
            ishl
            i2l
            ldc 4294967295
            land
            lstore 23 /* x11 */
        start local 23 // long x11
        12: .line 779
            aload 0 /* n */
            bipush 42
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode32:([BI)I
            i2l
            ldc 4294967295
            land
            lstore 25 /* x12 */
        start local 25 // long x12
        13: .line 780
            aload 0 /* n */
            bipush 46
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode24:([BI)I
            iconst_4
            ishl
            i2l
            ldc 4294967295
            land
            lstore 27 /* x13 */
        start local 27 // long x13
        14: .line 781
            aload 0 /* n */
            bipush 49
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode32:([BI)I
            i2l
            ldc 4294967295
            land
            lstore 29 /* x14 */
        start local 29 // long x14
        15: .line 782
            aload 0 /* n */
            bipush 53
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode24:([BI)I
            iconst_4
            ishl
            i2l
            ldc 4294967295
            land
            lstore 31 /* x15 */
        start local 31 // long x15
        16: .line 783
            aload 0 /* n */
            bipush 56
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode32:([BI)I
            i2l
            ldc 4294967295
            land
            lstore 33 /* x16 */
        start local 33 // long x16
        17: .line 784
            aload 0 /* n */
            bipush 60
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decode24:([BI)I
            iconst_4
            ishl
            i2l
            ldc 4294967295
            land
            lstore 35 /* x17 */
        start local 35 // long x17
        18: .line 785
            aload 0 /* n */
            bipush 63
            baload
            i2l
            ldc 255
            land
            lstore 37 /* x18 */
        start local 37 // long x18
        19: .line 789
            lload 19 /* x09 */
            lload 37 /* x18 */
            ldc -50998291
            lmul
            lsub
            lstore 19 /* x09 */
        20: .line 790
            lload 21 /* x10 */
            lload 37 /* x18 */
            ldc 19280294
            lmul
            lsub
            lstore 21 /* x10 */
        21: .line 791
            lload 23 /* x11 */
            lload 37 /* x18 */
            ldc 127719000
            lmul
            lsub
            lstore 23 /* x11 */
        22: .line 792
            lload 25 /* x12 */
            lload 37 /* x18 */
            ldc -6428113
            lmul
            lsub
            lstore 25 /* x12 */
        23: .line 793
            lload 27 /* x13 */
            lload 37 /* x18 */
            ldc 5343
            lmul
            lsub
            lstore 27 /* x13 */
        24: .line 795
            lload 35 /* x17 */
            lload 33 /* x16 */
            bipush 28
            lshr
            ladd
            lstore 35 /* x17 */
            lload 33 /* x16 */
            ldc 268435455
            land
            lstore 33 /* x16 */
        25: .line 796
            lload 17 /* x08 */
            lload 35 /* x17 */
            ldc -50998291
            lmul
            lsub
            lstore 17 /* x08 */
        26: .line 797
            lload 19 /* x09 */
            lload 35 /* x17 */
            ldc 19280294
            lmul
            lsub
            lstore 19 /* x09 */
        27: .line 798
            lload 21 /* x10 */
            lload 35 /* x17 */
            ldc 127719000
            lmul
            lsub
            lstore 21 /* x10 */
        28: .line 799
            lload 23 /* x11 */
            lload 35 /* x17 */
            ldc -6428113
            lmul
            lsub
            lstore 23 /* x11 */
        29: .line 800
            lload 25 /* x12 */
            lload 35 /* x17 */
            ldc 5343
            lmul
            lsub
            lstore 25 /* x12 */
        30: .line 803
            lload 15 /* x07 */
            lload 33 /* x16 */
            ldc -50998291
            lmul
            lsub
            lstore 15 /* x07 */
        31: .line 804
            lload 17 /* x08 */
            lload 33 /* x16 */
            ldc 19280294
            lmul
            lsub
            lstore 17 /* x08 */
        32: .line 805
            lload 19 /* x09 */
            lload 33 /* x16 */
            ldc 127719000
            lmul
            lsub
            lstore 19 /* x09 */
        33: .line 806
            lload 21 /* x10 */
            lload 33 /* x16 */
            ldc -6428113
            lmul
            lsub
            lstore 21 /* x10 */
        34: .line 807
            lload 23 /* x11 */
            lload 33 /* x16 */
            ldc 5343
            lmul
            lsub
            lstore 23 /* x11 */
        35: .line 809
            lload 31 /* x15 */
            lload 29 /* x14 */
            bipush 28
            lshr
            ladd
            lstore 31 /* x15 */
            lload 29 /* x14 */
            ldc 268435455
            land
            lstore 29 /* x14 */
        36: .line 810
            lload 13 /* x06 */
            lload 31 /* x15 */
            ldc -50998291
            lmul
            lsub
            lstore 13 /* x06 */
        37: .line 811
            lload 15 /* x07 */
            lload 31 /* x15 */
            ldc 19280294
            lmul
            lsub
            lstore 15 /* x07 */
        38: .line 812
            lload 17 /* x08 */
            lload 31 /* x15 */
            ldc 127719000
            lmul
            lsub
            lstore 17 /* x08 */
        39: .line 813
            lload 19 /* x09 */
            lload 31 /* x15 */
            ldc -6428113
            lmul
            lsub
            lstore 19 /* x09 */
        40: .line 814
            lload 21 /* x10 */
            lload 31 /* x15 */
            ldc 5343
            lmul
            lsub
            lstore 21 /* x10 */
        41: .line 817
            lload 11 /* x05 */
            lload 29 /* x14 */
            ldc -50998291
            lmul
            lsub
            lstore 11 /* x05 */
        42: .line 818
            lload 13 /* x06 */
            lload 29 /* x14 */
            ldc 19280294
            lmul
            lsub
            lstore 13 /* x06 */
        43: .line 819
            lload 15 /* x07 */
            lload 29 /* x14 */
            ldc 127719000
            lmul
            lsub
            lstore 15 /* x07 */
        44: .line 820
            lload 17 /* x08 */
            lload 29 /* x14 */
            ldc -6428113
            lmul
            lsub
            lstore 17 /* x08 */
        45: .line 821
            lload 19 /* x09 */
            lload 29 /* x14 */
            ldc 5343
            lmul
            lsub
            lstore 19 /* x09 */
        46: .line 823
            lload 27 /* x13 */
            lload 25 /* x12 */
            bipush 28
            lshr
            ladd
            lstore 27 /* x13 */
            lload 25 /* x12 */
            ldc 268435455
            land
            lstore 25 /* x12 */
        47: .line 824
            lload 9 /* x04 */
            lload 27 /* x13 */
            ldc -50998291
            lmul
            lsub
            lstore 9 /* x04 */
        48: .line 825
            lload 11 /* x05 */
            lload 27 /* x13 */
            ldc 19280294
            lmul
            lsub
            lstore 11 /* x05 */
        49: .line 826
            lload 13 /* x06 */
            lload 27 /* x13 */
            ldc 127719000
            lmul
            lsub
            lstore 13 /* x06 */
        50: .line 827
            lload 15 /* x07 */
            lload 27 /* x13 */
            ldc -6428113
            lmul
            lsub
            lstore 15 /* x07 */
        51: .line 828
            lload 17 /* x08 */
            lload 27 /* x13 */
            ldc 5343
            lmul
            lsub
            lstore 17 /* x08 */
        52: .line 830
            lload 25 /* x12 */
            lload 23 /* x11 */
            bipush 28
            lshr
            ladd
            lstore 25 /* x12 */
            lload 23 /* x11 */
            ldc 268435455
            land
            lstore 23 /* x11 */
        53: .line 831
            lload 7 /* x03 */
            lload 25 /* x12 */
            ldc -50998291
            lmul
            lsub
            lstore 7 /* x03 */
        54: .line 832
            lload 9 /* x04 */
            lload 25 /* x12 */
            ldc 19280294
            lmul
            lsub
            lstore 9 /* x04 */
        55: .line 833
            lload 11 /* x05 */
            lload 25 /* x12 */
            ldc 127719000
            lmul
            lsub
            lstore 11 /* x05 */
        56: .line 834
            lload 13 /* x06 */
            lload 25 /* x12 */
            ldc -6428113
            lmul
            lsub
            lstore 13 /* x06 */
        57: .line 835
            lload 15 /* x07 */
            lload 25 /* x12 */
            ldc 5343
            lmul
            lsub
            lstore 15 /* x07 */
        58: .line 837
            lload 23 /* x11 */
            lload 21 /* x10 */
            bipush 28
            lshr
            ladd
            lstore 23 /* x11 */
            lload 21 /* x10 */
            ldc 268435455
            land
            lstore 21 /* x10 */
        59: .line 838
            lload 5 /* x02 */
            lload 23 /* x11 */
            ldc -50998291
            lmul
            lsub
            lstore 5 /* x02 */
        60: .line 839
            lload 7 /* x03 */
            lload 23 /* x11 */
            ldc 19280294
            lmul
            lsub
            lstore 7 /* x03 */
        61: .line 840
            lload 9 /* x04 */
            lload 23 /* x11 */
            ldc 127719000
            lmul
            lsub
            lstore 9 /* x04 */
        62: .line 841
            lload 11 /* x05 */
            lload 23 /* x11 */
            ldc -6428113
            lmul
            lsub
            lstore 11 /* x05 */
        63: .line 842
            lload 13 /* x06 */
            lload 23 /* x11 */
            ldc 5343
            lmul
            lsub
            lstore 13 /* x06 */
        64: .line 844
            lload 21 /* x10 */
            lload 19 /* x09 */
            bipush 28
            lshr
            ladd
            lstore 21 /* x10 */
            lload 19 /* x09 */
            ldc 268435455
            land
            lstore 19 /* x09 */
        65: .line 845
            lload 3 /* x01 */
            lload 21 /* x10 */
            ldc -50998291
            lmul
            lsub
            lstore 3 /* x01 */
        66: .line 846
            lload 5 /* x02 */
            lload 21 /* x10 */
            ldc 19280294
            lmul
            lsub
            lstore 5 /* x02 */
        67: .line 847
            lload 7 /* x03 */
            lload 21 /* x10 */
            ldc 127719000
            lmul
            lsub
            lstore 7 /* x03 */
        68: .line 848
            lload 9 /* x04 */
            lload 21 /* x10 */
            ldc -6428113
            lmul
            lsub
            lstore 9 /* x04 */
        69: .line 849
            lload 11 /* x05 */
            lload 21 /* x10 */
            ldc 5343
            lmul
            lsub
            lstore 11 /* x05 */
        70: .line 851
            lload 17 /* x08 */
            lload 15 /* x07 */
            bipush 28
            lshr
            ladd
            lstore 17 /* x08 */
            lload 15 /* x07 */
            ldc 268435455
            land
            lstore 15 /* x07 */
        71: .line 852
            lload 19 /* x09 */
            lload 17 /* x08 */
            bipush 28
            lshr
            ladd
            lstore 19 /* x09 */
            lload 17 /* x08 */
            ldc 268435455
            land
            lstore 17 /* x08 */
        72: .line 854
            lload 17 /* x08 */
            bipush 27
            lushr
            lstore 39 /* t */
        start local 39 // long t
        73: .line 855
            lload 19 /* x09 */
            lload 39 /* t */
            ladd
            lstore 19 /* x09 */
        74: .line 857
            lload 1 /* x00 */
            lload 19 /* x09 */
            ldc -50998291
            lmul
            lsub
            lstore 1 /* x00 */
        75: .line 858
            lload 3 /* x01 */
            lload 19 /* x09 */
            ldc 19280294
            lmul
            lsub
            lstore 3 /* x01 */
        76: .line 859
            lload 5 /* x02 */
            lload 19 /* x09 */
            ldc 127719000
            lmul
            lsub
            lstore 5 /* x02 */
        77: .line 860
            lload 7 /* x03 */
            lload 19 /* x09 */
            ldc -6428113
            lmul
            lsub
            lstore 7 /* x03 */
        78: .line 861
            lload 9 /* x04 */
            lload 19 /* x09 */
            ldc 5343
            lmul
            lsub
            lstore 9 /* x04 */
        79: .line 863
            lload 3 /* x01 */
            lload 1 /* x00 */
            bipush 28
            lshr
            ladd
            lstore 3 /* x01 */
            lload 1 /* x00 */
            ldc 268435455
            land
            lstore 1 /* x00 */
        80: .line 864
            lload 5 /* x02 */
            lload 3 /* x01 */
            bipush 28
            lshr
            ladd
            lstore 5 /* x02 */
            lload 3 /* x01 */
            ldc 268435455
            land
            lstore 3 /* x01 */
        81: .line 865
            lload 7 /* x03 */
            lload 5 /* x02 */
            bipush 28
            lshr
            ladd
            lstore 7 /* x03 */
            lload 5 /* x02 */
            ldc 268435455
            land
            lstore 5 /* x02 */
        82: .line 866
            lload 9 /* x04 */
            lload 7 /* x03 */
            bipush 28
            lshr
            ladd
            lstore 9 /* x04 */
            lload 7 /* x03 */
            ldc 268435455
            land
            lstore 7 /* x03 */
        83: .line 867
            lload 11 /* x05 */
            lload 9 /* x04 */
            bipush 28
            lshr
            ladd
            lstore 11 /* x05 */
            lload 9 /* x04 */
            ldc 268435455
            land
            lstore 9 /* x04 */
        84: .line 868
            lload 13 /* x06 */
            lload 11 /* x05 */
            bipush 28
            lshr
            ladd
            lstore 13 /* x06 */
            lload 11 /* x05 */
            ldc 268435455
            land
            lstore 11 /* x05 */
        85: .line 869
            lload 15 /* x07 */
            lload 13 /* x06 */
            bipush 28
            lshr
            ladd
            lstore 15 /* x07 */
            lload 13 /* x06 */
            ldc 268435455
            land
            lstore 13 /* x06 */
        86: .line 870
            lload 17 /* x08 */
            lload 15 /* x07 */
            bipush 28
            lshr
            ladd
            lstore 17 /* x08 */
            lload 15 /* x07 */
            ldc 268435455
            land
            lstore 15 /* x07 */
        87: .line 871
            lload 17 /* x08 */
            bipush 28
            lshr
            lstore 19 /* x09 */
            lload 17 /* x08 */
            ldc 268435455
            land
            lstore 17 /* x08 */
        88: .line 873
            lload 19 /* x09 */
            lload 39 /* t */
            lsub
            lstore 19 /* x09 */
        89: .line 877
            lload 1 /* x00 */
            lload 19 /* x09 */
            ldc -50998291
            land
            ladd
            lstore 1 /* x00 */
        90: .line 878
            lload 3 /* x01 */
            lload 19 /* x09 */
            ldc 19280294
            land
            ladd
            lstore 3 /* x01 */
        91: .line 879
            lload 5 /* x02 */
            lload 19 /* x09 */
            ldc 127719000
            land
            ladd
            lstore 5 /* x02 */
        92: .line 880
            lload 7 /* x03 */
            lload 19 /* x09 */
            ldc -6428113
            land
            ladd
            lstore 7 /* x03 */
        93: .line 881
            lload 9 /* x04 */
            lload 19 /* x09 */
            ldc 5343
            land
            ladd
            lstore 9 /* x04 */
        94: .line 883
            lload 3 /* x01 */
            lload 1 /* x00 */
            bipush 28
            lshr
            ladd
            lstore 3 /* x01 */
            lload 1 /* x00 */
            ldc 268435455
            land
            lstore 1 /* x00 */
        95: .line 884
            lload 5 /* x02 */
            lload 3 /* x01 */
            bipush 28
            lshr
            ladd
            lstore 5 /* x02 */
            lload 3 /* x01 */
            ldc 268435455
            land
            lstore 3 /* x01 */
        96: .line 885
            lload 7 /* x03 */
            lload 5 /* x02 */
            bipush 28
            lshr
            ladd
            lstore 7 /* x03 */
            lload 5 /* x02 */
            ldc 268435455
            land
            lstore 5 /* x02 */
        97: .line 886
            lload 9 /* x04 */
            lload 7 /* x03 */
            bipush 28
            lshr
            ladd
            lstore 9 /* x04 */
            lload 7 /* x03 */
            ldc 268435455
            land
            lstore 7 /* x03 */
        98: .line 887
            lload 11 /* x05 */
            lload 9 /* x04 */
            bipush 28
            lshr
            ladd
            lstore 11 /* x05 */
            lload 9 /* x04 */
            ldc 268435455
            land
            lstore 9 /* x04 */
        99: .line 888
            lload 13 /* x06 */
            lload 11 /* x05 */
            bipush 28
            lshr
            ladd
            lstore 13 /* x06 */
            lload 11 /* x05 */
            ldc 268435455
            land
            lstore 11 /* x05 */
       100: .line 889
            lload 15 /* x07 */
            lload 13 /* x06 */
            bipush 28
            lshr
            ladd
            lstore 15 /* x07 */
            lload 13 /* x06 */
            ldc 268435455
            land
            lstore 13 /* x06 */
       101: .line 890
            lload 17 /* x08 */
            lload 15 /* x07 */
            bipush 28
            lshr
            ladd
            lstore 17 /* x08 */
            lload 15 /* x07 */
            ldc 268435455
            land
            lstore 15 /* x07 */
       102: .line 892
            bipush 32
            newarray 8
            astore 41 /* r */
        start local 41 // byte[] r
       103: .line 893
            lload 1 /* x00 */
            lload 3 /* x01 */
            bipush 28
            lshl
            lor
            aload 41 /* r */
            iconst_0
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.encode56:(J[BI)V
       104: .line 894
            lload 5 /* x02 */
            lload 7 /* x03 */
            bipush 28
            lshl
            lor
            aload 41 /* r */
            bipush 7
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.encode56:(J[BI)V
       105: .line 895
            lload 9 /* x04 */
            lload 11 /* x05 */
            bipush 28
            lshl
            lor
            aload 41 /* r */
            bipush 14
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.encode56:(J[BI)V
       106: .line 896
            lload 13 /* x06 */
            lload 15 /* x07 */
            bipush 28
            lshl
            lor
            aload 41 /* r */
            bipush 21
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.encode56:(J[BI)V
       107: .line 897
            lload 17 /* x08 */
            l2i
            aload 41 /* r */
            bipush 28
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.encode32:(I[BI)V
       108: .line 898
            aload 41 /* r */
            areturn
        end local 41 // byte[] r
        end local 39 // long t
        end local 37 // long x18
        end local 35 // long x17
        end local 33 // long x16
        end local 31 // long x15
        end local 29 // long x14
        end local 27 // long x13
        end local 25 // long x12
        end local 23 // long x11
        end local 21 // long x10
        end local 19 // long x09
        end local 17 // long x08
        end local 15 // long x07
        end local 13 // long x06
        end local 11 // long x05
        end local 9 // long x04
        end local 7 // long x03
        end local 5 // long x02
        end local 3 // long x01
        end local 1 // long x00
        end local 0 // byte[] n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0  109     0     n  [B
            1  109     1   x00  J
            2  109     3   x01  J
            3  109     5   x02  J
            4  109     7   x03  J
            5  109     9   x04  J
            6  109    11   x05  J
            7  109    13   x06  J
            8  109    15   x07  J
            9  109    17   x08  J
           10  109    19   x09  J
           11  109    21   x10  J
           12  109    23   x11  J
           13  109    25   x12  J
           14  109    27   x13  J
           15  109    29   x14  J
           16  109    31   x15  J
           17  109    33   x16  J
           18  109    35   x17  J
           19  109    37   x18  J
           73  109    39     t  J
          103  109    41     r  [B
    MethodParameters:
      Name  Flags
      n     

  private static void scalarMultBase(byte[], org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum);
    descriptor: ([BLorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // byte[] k
        start local 1 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum r
         0: .line 903
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompute:()V
         1: .line 905
            aload 1 /* r */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointSetNeutral:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
         2: .line 907
            bipush 8
            newarray 10
            astore 2 /* n */
        start local 2 // int[] n
         3: .line 908
            aload 0 /* k */
            iconst_0
            aload 2 /* n */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.decodeScalar:([BI[I)V
         4: .line 913
            bipush 8
            aload 2 /* n */
            iconst_0
            iaload
            iconst_m1
            ixor
            iconst_1
            iand
            aload 2 /* n */
            getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.L:[I
            aload 2 /* n */
            invokestatic org.bouncycastle.math.raw.Nat.cadd:(II[I[I[I)I
            pop
         5: .line 915
            bipush 8
            aload 2 /* n */
            iconst_1
            invokestatic org.bouncycastle.math.raw.Nat.shiftDownBit:(I[II)I
            pop
         6: .line 917
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         7: goto 10
         8: .line 919
      StackMap locals: int[] int
      StackMap stack:
            aload 2 /* n */
            iload 3 /* i */
            aload 2 /* n */
            iload 3 /* i */
            iaload
            invokestatic org.bouncycastle.math.raw.Interleave.shuffle2:(I)I
            iastore
         9: .line 917
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 3 /* i */
            bipush 8
            if_icmplt 8
        end local 3 // int i
        11: .line 923
            new org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp
            dup
            invokespecial org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.<init>:()V
            astore 3 /* p */
        start local 3 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp p
        12: .line 925
            bipush 28
            istore 4 /* cOff */
        start local 4 // int cOff
        13: .line 928
      StackMap locals: byte[] org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum int[] org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp int
      StackMap stack:
            iconst_0
            istore 5 /* b */
        start local 5 // int b
        14: goto 23
        15: .line 930
      StackMap locals: int
      StackMap stack:
            aload 2 /* n */
            iload 5 /* b */
            iaload
            iload 4 /* cOff */
            iushr
            istore 6 /* w */
        start local 6 // int w
        16: .line 931
            iload 6 /* w */
            iconst_3
            iushr
            iconst_1
            iand
            istore 7 /* sign */
        start local 7 // int sign
        17: .line 932
            iload 6 /* w */
            iload 7 /* sign */
            ineg
            ixor
            bipush 7
            iand
            istore 8 /* abs */
        start local 8 // int abs
        18: .line 937
            iload 5 /* b */
            iload 8 /* abs */
            aload 3 /* p */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointLookup:(IILorg/bouncycastle/math/ec/rfc8032/Ed25519$PointPrecomp;)V
        19: .line 939
            iload 7 /* sign */
            aload 3 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.ypx_h:[I
            aload 3 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.ymx_h:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.cswap:(I[I[I)V
        20: .line 940
            iload 7 /* sign */
            aload 3 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp.xyd:[I
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.cnegate:(I[I)V
        21: .line 942
            aload 3 /* p */
            aload 1 /* r */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointAddPrecomp:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointPrecomp;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
        end local 8 // int abs
        end local 7 // int sign
        end local 6 // int w
        22: .line 928
            iinc 5 /* b */ 1
      StackMap locals:
      StackMap stack:
        23: iload 5 /* b */
            bipush 8
            if_icmplt 15
        end local 5 // int b
        24: .line 945
            iinc 4 /* cOff */ -4
            iload 4 /* cOff */
            ifge 26
        25: .line 947
            goto 28
        26: .line 950
      StackMap locals:
      StackMap stack:
            aload 1 /* r */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointDouble:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
        27: .line 926
            goto 13
        28: .line 952
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int cOff
        end local 3 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp p
        end local 2 // int[] n
        end local 1 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum r
        end local 0 // byte[] k
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   29     0     k  [B
            0   29     1     r  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;
            3   29     2     n  [I
            7   11     3     i  I
           12   29     3     p  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointPrecomp;
           13   29     4  cOff  I
           14   24     5     b  I
           16   22     6     w  I
           17   22     7  sign  I
           18   22     8   abs  I
    MethodParameters:
      Name  Flags
      k     
      r     

  private static void scalarMultBaseEncoded(byte[], byte[], int);
    descriptor: ([B[BI)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // byte[] k
        start local 1 // byte[] r
        start local 2 // int rOff
         0: .line 956
            new org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum
            dup
            invokespecial org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.<init>:()V
            astore 3 /* p */
        start local 3 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum p
         1: .line 957
            aload 0 /* k */
            aload 3 /* p */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.scalarMultBase:([BLorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
         2: .line 958
            aload 3 /* p */
            aload 1 /* r */
            iload 2 /* rOff */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.encodePoint:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;[BI)V
         3: .line 959
            return
        end local 3 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum p
        end local 2 // int rOff
        end local 1 // byte[] r
        end local 0 // byte[] k
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     k  [B
            0    4     1     r  [B
            0    4     2  rOff  I
            1    4     3     p  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;
    MethodParameters:
      Name  Flags
      k     
      r     
      rOff  

  public static void scalarMultBaseYZ(org.bouncycastle.math.ec.rfc7748.X25519$Friend, byte[], int, int[], int[]);
    descriptor: (Lorg/bouncycastle/math/ec/rfc7748/X25519$Friend;[BI[I[I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // org.bouncycastle.math.ec.rfc7748.X25519$Friend friend
        start local 1 // byte[] k
        start local 2 // int kOff
        start local 3 // int[] y
        start local 4 // int[] z
         0: .line 966
            aload 0 /* friend */
            ifnonnull 2
         1: .line 968
            new java.lang.NullPointerException
            dup
            ldc "This method is only for use by X25519"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 971
      StackMap locals:
      StackMap stack:
            bipush 32
            newarray 8
            astore 5 /* n */
        start local 5 // byte[] n
         3: .line 972
            aload 1 /* k */
            iload 2 /* kOff */
            aload 5 /* n */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pruneScalar:([BI[B)V
         4: .line 974
            new org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum
            dup
            invokespecial org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.<init>:()V
            astore 6 /* p */
        start local 6 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum p
         5: .line 975
            aload 5 /* n */
            aload 6 /* p */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.scalarMultBase:([BLorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
         6: .line 976
            aload 6 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.y:[I
            iconst_0
            aload 3 /* y */
            iconst_0
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
         7: .line 977
            aload 6 /* p */
            getfield org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum.z:[I
            iconst_0
            aload 4 /* z */
            iconst_0
            invokestatic org.bouncycastle.math.ec.rfc7748.X25519Field.copy:([II[II)V
         8: .line 978
            return
        end local 6 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum p
        end local 5 // byte[] n
        end local 4 // int[] z
        end local 3 // int[] y
        end local 2 // int kOff
        end local 1 // byte[] k
        end local 0 // org.bouncycastle.math.ec.rfc7748.X25519$Friend friend
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0  friend  Lorg/bouncycastle/math/ec/rfc7748/X25519$Friend;
            0    9     1       k  [B
            0    9     2    kOff  I
            0    9     3       y  [I
            0    9     4       z  [I
            3    9     5       n  [B
            5    9     6       p  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;
    MethodParameters:
        Name  Flags
      friend  
      k       
      kOff    
      y       
      z       

  private static void scalarMultStraussVar(int[], int[], org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt, org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum);
    descriptor: ([I[ILorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=12, args_size=4
        start local 0 // int[] nb
        start local 1 // int[] np
        start local 2 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt p
        start local 3 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum r
         0: .line 982
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompute:()V
         1: .line 986
            aload 0 /* nb */
            bipush 7
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.getWNAF:([II)[B
            astore 4 /* ws_b */
        start local 4 // byte[] ws_b
         2: .line 987
            aload 1 /* np */
            iconst_5
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.getWNAF:([II)[B
            astore 5 /* ws_p */
        start local 5 // byte[] ws_p
         3: .line 989
            aload 2 /* p */
            bipush 8
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointPrecompVar:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;I)[Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
            astore 6 /* tp */
        start local 6 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt[] tp
         4: .line 991
            aload 3 /* r */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointSetNeutral:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
         5: .line 993
            sipush 255
            istore 7 /* bit */
        start local 7 // int bit
         6: .line 994
            goto 8
         7: .line 996
      StackMap locals: int[] int[] org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum byte[] byte[] org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt[] int
      StackMap stack:
            iinc 7 /* bit */ -1
         8: .line 994
      StackMap locals:
      StackMap stack:
            iload 7 /* bit */
            ifle 9
            aload 4 /* ws_b */
            iload 7 /* bit */
            baload
            aload 5 /* ws_p */
            iload 7 /* bit */
            baload
            ior
            ifeq 7
         9: .line 1001
      StackMap locals:
      StackMap stack:
            aload 4 /* ws_b */
            iload 7 /* bit */
            baload
            istore 8 /* wb */
        start local 8 // int wb
        10: .line 1002
            iload 8 /* wb */
            ifeq 16
        11: .line 1004
            iload 8 /* wb */
            bipush 31
            ishr
            istore 9 /* sign */
        start local 9 // int sign
        12: .line 1005
            iload 8 /* wb */
            iload 9 /* sign */
            ixor
            iconst_1
            iushr
            istore 10 /* index */
        start local 10 // int index
        13: .line 1007
            iload 9 /* sign */
            ifeq 14
            iconst_1
            goto 15
      StackMap locals: int int int
      StackMap stack:
        14: iconst_0
      StackMap locals:
      StackMap stack: int
        15: getstatic org.bouncycastle.math.ec.rfc8032.Ed25519.precompBaseTable:[Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
            iload 10 /* index */
            aaload
            aload 3 /* r */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointAddVar:(ZLorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
        end local 10 // int index
        end local 9 // int sign
        16: .line 1010
      StackMap locals:
      StackMap stack:
            aload 5 /* ws_p */
            iload 7 /* bit */
            baload
            istore 9 /* wp */
        start local 9 // int wp
        17: .line 1011
            iload 9 /* wp */
            ifeq 23
        18: .line 1013
            iload 9 /* wp */
            bipush 31
            ishr
            istore 10 /* sign */
        start local 10 // int sign
        19: .line 1014
            iload 9 /* wp */
            iload 10 /* sign */
            ixor
            iconst_1
            iushr
            istore 11 /* index */
        start local 11 // int index
        20: .line 1016
            iload 10 /* sign */
            ifeq 21
            iconst_1
            goto 22
      StackMap locals: int int int
      StackMap stack:
        21: iconst_0
      StackMap locals:
      StackMap stack: int
        22: aload 6 /* tp */
            iload 11 /* index */
            aaload
            aload 3 /* r */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointAddVar:(ZLorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
        end local 11 // int index
        end local 10 // int sign
        23: .line 1019
      StackMap locals:
      StackMap stack:
            iinc 7 /* bit */ -1
            iload 7 /* bit */
            ifge 25
        24: .line 1021
            goto 27
        25: .line 1024
      StackMap locals:
      StackMap stack:
            aload 3 /* r */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.pointDouble:(Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;)V
        end local 9 // int wp
        end local 8 // int wb
        26: .line 999
            goto 9
        27: .line 1026
      StackMap locals:
      StackMap stack:
            return
        end local 7 // int bit
        end local 6 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt[] tp
        end local 5 // byte[] ws_p
        end local 4 // byte[] ws_b
        end local 3 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum r
        end local 2 // org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt p
        end local 1 // int[] np
        end local 0 // int[] nb
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   28     0     nb  [I
            0   28     1     np  [I
            0   28     2      p  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
            0   28     3      r  Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointAccum;
            2   28     4   ws_b  [B
            3   28     5   ws_p  [B
            4   28     6     tp  [Lorg/bouncycastle/math/ec/rfc8032/Ed25519$PointExt;
            6   28     7    bit  I
           10   26     8     wb  I
           12   16     9   sign  I
           13   16    10  index  I
           17   26     9     wp  I
           19   23    10   sign  I
           20   23    11  index  I
    MethodParameters:
      Name  Flags
      nb    
      np    
      p     
      r     

  public static void sign(byte[], int, byte[], int, int, byte[], int);
    descriptor: ([BI[BII[BI)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=9, args_size=7
        start local 0 // byte[] sk
        start local 1 // int skOff
        start local 2 // byte[] m
        start local 3 // int mOff
        start local 4 // int mLen
        start local 5 // byte[] sig
        start local 6 // int sigOff
         0: .line 1030
            aconst_null
            astore 7 /* ctx */
        start local 7 // byte[] ctx
         1: .line 1031
            iconst_0
            istore 8 /* phflag */
        start local 8 // byte phflag
         2: .line 1033
            aload 0 /* sk */
            iload 1 /* skOff */
            aload 7 /* ctx */
            iload 8 /* phflag */
            aload 2 /* m */
            iload 3 /* mOff */
            iload 4 /* mLen */
            aload 5 /* sig */
            iload 6 /* sigOff */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.implSign:([BI[BB[BII[BI)V
         3: .line 1034
            return
        end local 8 // byte phflag
        end local 7 // byte[] ctx
        end local 6 // int sigOff
        end local 5 // byte[] sig
        end local 4 // int mLen
        end local 3 // int mOff
        end local 2 // byte[] m
        end local 1 // int skOff
        end local 0 // byte[] sk
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0      sk  [B
            0    4     1   skOff  I
            0    4     2       m  [B
            0    4     3    mOff  I
            0    4     4    mLen  I
            0    4     5     sig  [B
            0    4     6  sigOff  I
            1    4     7     ctx  [B
            2    4     8  phflag  B
    MethodParameters:
        Name  Flags
      sk      
      skOff   
      m       
      mOff    
      mLen    
      sig     
      sigOff  

  public static void sign(byte[], int, byte[], int, byte[], int, int, byte[], int);
    descriptor: ([BI[BI[BII[BI)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=11, locals=11, args_size=9
        start local 0 // byte[] sk
        start local 1 // int skOff
        start local 2 // byte[] pk
        start local 3 // int pkOff
        start local 4 // byte[] m
        start local 5 // int mOff
        start local 6 // int mLen
        start local 7 // byte[] sig
        start local 8 // int sigOff
         0: .line 1038
            aconst_null
            astore 9 /* ctx */
        start local 9 // byte[] ctx
         1: .line 1039
            iconst_0
            istore 10 /* phflag */
        start local 10 // byte phflag
         2: .line 1041
            aload 0 /* sk */
            iload 1 /* skOff */
            aload 2 /* pk */
            iload 3 /* pkOff */
            aload 9 /* ctx */
            iload 10 /* phflag */
            aload 4 /* m */
            iload 5 /* mOff */
            iload 6 /* mLen */
            aload 7 /* sig */
            iload 8 /* sigOff */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.implSign:([BI[BI[BB[BII[BI)V
         3: .line 1042
            return
        end local 10 // byte phflag
        end local 9 // byte[] ctx
        end local 8 // int sigOff
        end local 7 // byte[] sig
        end local 6 // int mLen
        end local 5 // int mOff
        end local 4 // byte[] m
        end local 3 // int pkOff
        end local 2 // byte[] pk
        end local 1 // int skOff
        end local 0 // byte[] sk
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0      sk  [B
            0    4     1   skOff  I
            0    4     2      pk  [B
            0    4     3   pkOff  I
            0    4     4       m  [B
            0    4     5    mOff  I
            0    4     6    mLen  I
            0    4     7     sig  [B
            0    4     8  sigOff  I
            1    4     9     ctx  [B
            2    4    10  phflag  B
    MethodParameters:
        Name  Flags
      sk      
      skOff   
      pk      
      pkOff   
      m       
      mOff    
      mLen    
      sig     
      sigOff  

  public static void sign(byte[], int, byte[], byte[], int, int, byte[], int);
    descriptor: ([BI[B[BII[BI)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=9, args_size=8
        start local 0 // byte[] sk
        start local 1 // int skOff
        start local 2 // byte[] ctx
        start local 3 // byte[] m
        start local 4 // int mOff
        start local 5 // int mLen
        start local 6 // byte[] sig
        start local 7 // int sigOff
         0: .line 1046
            iconst_0
            istore 8 /* phflag */
        start local 8 // byte phflag
         1: .line 1048
            aload 0 /* sk */
            iload 1 /* skOff */
            aload 2 /* ctx */
            iload 8 /* phflag */
            aload 3 /* m */
            iload 4 /* mOff */
            iload 5 /* mLen */
            aload 6 /* sig */
            iload 7 /* sigOff */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.implSign:([BI[BB[BII[BI)V
         2: .line 1049
            return
        end local 8 // byte phflag
        end local 7 // int sigOff
        end local 6 // byte[] sig
        end local 5 // int mLen
        end local 4 // int mOff
        end local 3 // byte[] m
        end local 2 // byte[] ctx
        end local 1 // int skOff
        end local 0 // byte[] sk
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0      sk  [B
            0    3     1   skOff  I
            0    3     2     ctx  [B
            0    3     3       m  [B
            0    3     4    mOff  I
            0    3     5    mLen  I
            0    3     6     sig  [B
            0    3     7  sigOff  I
            1    3     8  phflag  B
    MethodParameters:
        Name  Flags
      sk      
      skOff   
      ctx     
      m       
      mOff    
      mLen    
      sig     
      sigOff  

  public static void sign(byte[], int, byte[], int, byte[], byte[], int, int, byte[], int);
    descriptor: ([BI[BI[B[BII[BI)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=11, locals=11, args_size=10
        start local 0 // byte[] sk
        start local 1 // int skOff
        start local 2 // byte[] pk
        start local 3 // int pkOff
        start local 4 // byte[] ctx
        start local 5 // byte[] m
        start local 6 // int mOff
        start local 7 // int mLen
        start local 8 // byte[] sig
        start local 9 // int sigOff
         0: .line 1053
            iconst_0
            istore 10 /* phflag */
        start local 10 // byte phflag
         1: .line 1055
            aload 0 /* sk */
            iload 1 /* skOff */
            aload 2 /* pk */
            iload 3 /* pkOff */
            aload 4 /* ctx */
            iload 10 /* phflag */
            aload 5 /* m */
            iload 6 /* mOff */
            iload 7 /* mLen */
            aload 8 /* sig */
            iload 9 /* sigOff */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.implSign:([BI[BI[BB[BII[BI)V
         2: .line 1056
            return
        end local 10 // byte phflag
        end local 9 // int sigOff
        end local 8 // byte[] sig
        end local 7 // int mLen
        end local 6 // int mOff
        end local 5 // byte[] m
        end local 4 // byte[] ctx
        end local 3 // int pkOff
        end local 2 // byte[] pk
        end local 1 // int skOff
        end local 0 // byte[] sk
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0      sk  [B
            0    3     1   skOff  I
            0    3     2      pk  [B
            0    3     3   pkOff  I
            0    3     4     ctx  [B
            0    3     5       m  [B
            0    3     6    mOff  I
            0    3     7    mLen  I
            0    3     8     sig  [B
            0    3     9  sigOff  I
            1    3    10  phflag  B
    MethodParameters:
        Name  Flags
      sk      
      skOff   
      pk      
      pkOff   
      ctx     
      m       
      mOff    
      mLen    
      sig     
      sigOff  

  public static void signPrehash(byte[], int, byte[], byte[], int, byte[], int);
    descriptor: ([BI[B[BI[BI)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=8, args_size=7
        start local 0 // byte[] sk
        start local 1 // int skOff
        start local 2 // byte[] ctx
        start local 3 // byte[] ph
        start local 4 // int phOff
        start local 5 // byte[] sig
        start local 6 // int sigOff
         0: .line 1060
            iconst_1
            istore 7 /* phflag */
        start local 7 // byte phflag
         1: .line 1062
            aload 0 /* sk */
            iload 1 /* skOff */
            aload 2 /* ctx */
            iload 7 /* phflag */
            aload 3 /* ph */
            iload 4 /* phOff */
            bipush 64
            aload 5 /* sig */
            iload 6 /* sigOff */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.implSign:([BI[BB[BII[BI)V
         2: .line 1063
            return
        end local 7 // byte phflag
        end local 6 // int sigOff
        end local 5 // byte[] sig
        end local 4 // int phOff
        end local 3 // byte[] ph
        end local 2 // byte[] ctx
        end local 1 // int skOff
        end local 0 // byte[] sk
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0      sk  [B
            0    3     1   skOff  I
            0    3     2     ctx  [B
            0    3     3      ph  [B
            0    3     4   phOff  I
            0    3     5     sig  [B
            0    3     6  sigOff  I
            1    3     7  phflag  B
    MethodParameters:
        Name  Flags
      sk      
      skOff   
      ctx     
      ph      
      phOff   
      sig     
      sigOff  

  public static void signPrehash(byte[], int, byte[], int, byte[], byte[], int, byte[], int);
    descriptor: ([BI[BI[B[BI[BI)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=11, locals=10, args_size=9
        start local 0 // byte[] sk
        start local 1 // int skOff
        start local 2 // byte[] pk
        start local 3 // int pkOff
        start local 4 // byte[] ctx
        start local 5 // byte[] ph
        start local 6 // int phOff
        start local 7 // byte[] sig
        start local 8 // int sigOff
         0: .line 1067
            iconst_1
            istore 9 /* phflag */
        start local 9 // byte phflag
         1: .line 1069
            aload 0 /* sk */
            iload 1 /* skOff */
            aload 2 /* pk */
            iload 3 /* pkOff */
            aload 4 /* ctx */
            iload 9 /* phflag */
            aload 5 /* ph */
            iload 6 /* phOff */
            bipush 64
            aload 7 /* sig */
            iload 8 /* sigOff */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.implSign:([BI[BI[BB[BII[BI)V
         2: .line 1070
            return
        end local 9 // byte phflag
        end local 8 // int sigOff
        end local 7 // byte[] sig
        end local 6 // int phOff
        end local 5 // byte[] ph
        end local 4 // byte[] ctx
        end local 3 // int pkOff
        end local 2 // byte[] pk
        end local 1 // int skOff
        end local 0 // byte[] sk
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0      sk  [B
            0    3     1   skOff  I
            0    3     2      pk  [B
            0    3     3   pkOff  I
            0    3     4     ctx  [B
            0    3     5      ph  [B
            0    3     6   phOff  I
            0    3     7     sig  [B
            0    3     8  sigOff  I
            1    3     9  phflag  B
    MethodParameters:
        Name  Flags
      sk      
      skOff   
      pk      
      pkOff   
      ctx     
      ph      
      phOff   
      sig     
      sigOff  

  public static void signPrehash(byte[], int, byte[], org.bouncycastle.crypto.Digest, byte[], int);
    descriptor: ([BI[BLorg/bouncycastle/crypto/Digest;[BI)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=8, args_size=6
        start local 0 // byte[] sk
        start local 1 // int skOff
        start local 2 // byte[] ctx
        start local 3 // org.bouncycastle.crypto.Digest ph
        start local 4 // byte[] sig
        start local 5 // int sigOff
         0: .line 1074
            bipush 64
            newarray 8
            astore 6 /* m */
        start local 6 // byte[] m
         1: .line 1075
            bipush 64
            aload 3 /* ph */
            aload 6 /* m */
            iconst_0
            invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
            if_icmpeq 3
         2: .line 1077
            new java.lang.IllegalArgumentException
            dup
            ldc "ph"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1080
      StackMap locals: byte[]
      StackMap stack:
            iconst_1
            istore 7 /* phflag */
        start local 7 // byte phflag
         4: .line 1082
            aload 0 /* sk */
            iload 1 /* skOff */
            aload 2 /* ctx */
            iload 7 /* phflag */
            aload 6 /* m */
            iconst_0
            aload 6 /* m */
            arraylength
            aload 4 /* sig */
            iload 5 /* sigOff */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.implSign:([BI[BB[BII[BI)V
         5: .line 1083
            return
        end local 7 // byte phflag
        end local 6 // byte[] m
        end local 5 // int sigOff
        end local 4 // byte[] sig
        end local 3 // org.bouncycastle.crypto.Digest ph
        end local 2 // byte[] ctx
        end local 1 // int skOff
        end local 0 // byte[] sk
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0      sk  [B
            0    6     1   skOff  I
            0    6     2     ctx  [B
            0    6     3      ph  Lorg/bouncycastle/crypto/Digest;
            0    6     4     sig  [B
            0    6     5  sigOff  I
            1    6     6       m  [B
            4    6     7  phflag  B
    MethodParameters:
        Name  Flags
      sk      
      skOff   
      ctx     
      ph      
      sig     
      sigOff  

  public static void signPrehash(byte[], int, byte[], int, byte[], org.bouncycastle.crypto.Digest, byte[], int);
    descriptor: ([BI[BI[BLorg/bouncycastle/crypto/Digest;[BI)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=11, locals=10, args_size=8
        start local 0 // byte[] sk
        start local 1 // int skOff
        start local 2 // byte[] pk
        start local 3 // int pkOff
        start local 4 // byte[] ctx
        start local 5 // org.bouncycastle.crypto.Digest ph
        start local 6 // byte[] sig
        start local 7 // int sigOff
         0: .line 1087
            bipush 64
            newarray 8
            astore 8 /* m */
        start local 8 // byte[] m
         1: .line 1088
            bipush 64
            aload 5 /* ph */
            aload 8 /* m */
            iconst_0
            invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
            if_icmpeq 3
         2: .line 1090
            new java.lang.IllegalArgumentException
            dup
            ldc "ph"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1093
      StackMap locals: byte[]
      StackMap stack:
            iconst_1
            istore 9 /* phflag */
        start local 9 // byte phflag
         4: .line 1095
            aload 0 /* sk */
            iload 1 /* skOff */
            aload 2 /* pk */
            iload 3 /* pkOff */
            aload 4 /* ctx */
            iload 9 /* phflag */
            aload 8 /* m */
            iconst_0
            aload 8 /* m */
            arraylength
            aload 6 /* sig */
            iload 7 /* sigOff */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.implSign:([BI[BI[BB[BII[BI)V
         5: .line 1096
            return
        end local 9 // byte phflag
        end local 8 // byte[] m
        end local 7 // int sigOff
        end local 6 // byte[] sig
        end local 5 // org.bouncycastle.crypto.Digest ph
        end local 4 // byte[] ctx
        end local 3 // int pkOff
        end local 2 // byte[] pk
        end local 1 // int skOff
        end local 0 // byte[] sk
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0      sk  [B
            0    6     1   skOff  I
            0    6     2      pk  [B
            0    6     3   pkOff  I
            0    6     4     ctx  [B
            0    6     5      ph  Lorg/bouncycastle/crypto/Digest;
            0    6     6     sig  [B
            0    6     7  sigOff  I
            1    6     8       m  [B
            4    6     9  phflag  B
    MethodParameters:
        Name  Flags
      sk      
      skOff   
      pk      
      pkOff   
      ctx     
      ph      
      sig     
      sigOff  

  public static boolean verify(byte[], int, byte[], int, byte[], int, int);
    descriptor: ([BI[BI[BII)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=9, args_size=7
        start local 0 // byte[] sig
        start local 1 // int sigOff
        start local 2 // byte[] pk
        start local 3 // int pkOff
        start local 4 // byte[] m
        start local 5 // int mOff
        start local 6 // int mLen
         0: .line 1100
            aconst_null
            astore 7 /* ctx */
        start local 7 // byte[] ctx
         1: .line 1101
            iconst_0
            istore 8 /* phflag */
        start local 8 // byte phflag
         2: .line 1103
            aload 0 /* sig */
            iload 1 /* sigOff */
            aload 2 /* pk */
            iload 3 /* pkOff */
            aload 7 /* ctx */
            iload 8 /* phflag */
            aload 4 /* m */
            iload 5 /* mOff */
            iload 6 /* mLen */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.implVerify:([BI[BI[BB[BII)Z
            ireturn
        end local 8 // byte phflag
        end local 7 // byte[] ctx
        end local 6 // int mLen
        end local 5 // int mOff
        end local 4 // byte[] m
        end local 3 // int pkOff
        end local 2 // byte[] pk
        end local 1 // int sigOff
        end local 0 // byte[] sig
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0     sig  [B
            0    3     1  sigOff  I
            0    3     2      pk  [B
            0    3     3   pkOff  I
            0    3     4       m  [B
            0    3     5    mOff  I
            0    3     6    mLen  I
            1    3     7     ctx  [B
            2    3     8  phflag  B
    MethodParameters:
        Name  Flags
      sig     
      sigOff  
      pk      
      pkOff   
      m       
      mOff    
      mLen    

  public static boolean verify(byte[], int, byte[], int, byte[], byte[], int, int);
    descriptor: ([BI[BI[B[BII)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=9, args_size=8
        start local 0 // byte[] sig
        start local 1 // int sigOff
        start local 2 // byte[] pk
        start local 3 // int pkOff
        start local 4 // byte[] ctx
        start local 5 // byte[] m
        start local 6 // int mOff
        start local 7 // int mLen
         0: .line 1108
            iconst_0
            istore 8 /* phflag */
        start local 8 // byte phflag
         1: .line 1110
            aload 0 /* sig */
            iload 1 /* sigOff */
            aload 2 /* pk */
            iload 3 /* pkOff */
            aload 4 /* ctx */
            iload 8 /* phflag */
            aload 5 /* m */
            iload 6 /* mOff */
            iload 7 /* mLen */
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.implVerify:([BI[BI[BB[BII)Z
            ireturn
        end local 8 // byte phflag
        end local 7 // int mLen
        end local 6 // int mOff
        end local 5 // byte[] m
        end local 4 // byte[] ctx
        end local 3 // int pkOff
        end local 2 // byte[] pk
        end local 1 // int sigOff
        end local 0 // byte[] sig
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0     sig  [B
            0    2     1  sigOff  I
            0    2     2      pk  [B
            0    2     3   pkOff  I
            0    2     4     ctx  [B
            0    2     5       m  [B
            0    2     6    mOff  I
            0    2     7    mLen  I
            1    2     8  phflag  B
    MethodParameters:
        Name  Flags
      sig     
      sigOff  
      pk      
      pkOff   
      ctx     
      m       
      mOff    
      mLen    

  public static boolean verifyPrehash(byte[], int, byte[], int, byte[], byte[], int);
    descriptor: ([BI[BI[B[BI)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=8, args_size=7
        start local 0 // byte[] sig
        start local 1 // int sigOff
        start local 2 // byte[] pk
        start local 3 // int pkOff
        start local 4 // byte[] ctx
        start local 5 // byte[] ph
        start local 6 // int phOff
         0: .line 1115
            iconst_1
            istore 7 /* phflag */
        start local 7 // byte phflag
         1: .line 1117
            aload 0 /* sig */
            iload 1 /* sigOff */
            aload 2 /* pk */
            iload 3 /* pkOff */
            aload 4 /* ctx */
            iload 7 /* phflag */
            aload 5 /* ph */
            iload 6 /* phOff */
            bipush 64
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.implVerify:([BI[BI[BB[BII)Z
            ireturn
        end local 7 // byte phflag
        end local 6 // int phOff
        end local 5 // byte[] ph
        end local 4 // byte[] ctx
        end local 3 // int pkOff
        end local 2 // byte[] pk
        end local 1 // int sigOff
        end local 0 // byte[] sig
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0     sig  [B
            0    2     1  sigOff  I
            0    2     2      pk  [B
            0    2     3   pkOff  I
            0    2     4     ctx  [B
            0    2     5      ph  [B
            0    2     6   phOff  I
            1    2     7  phflag  B
    MethodParameters:
        Name  Flags
      sig     
      sigOff  
      pk      
      pkOff   
      ctx     
      ph      
      phOff   

  public static boolean verifyPrehash(byte[], int, byte[], int, byte[], org.bouncycastle.crypto.Digest);
    descriptor: ([BI[BI[BLorg/bouncycastle/crypto/Digest;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=8, args_size=6
        start local 0 // byte[] sig
        start local 1 // int sigOff
        start local 2 // byte[] pk
        start local 3 // int pkOff
        start local 4 // byte[] ctx
        start local 5 // org.bouncycastle.crypto.Digest ph
         0: .line 1122
            bipush 64
            newarray 8
            astore 6 /* m */
        start local 6 // byte[] m
         1: .line 1123
            bipush 64
            aload 5 /* ph */
            aload 6 /* m */
            iconst_0
            invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
            if_icmpeq 3
         2: .line 1125
            new java.lang.IllegalArgumentException
            dup
            ldc "ph"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1128
      StackMap locals: byte[]
      StackMap stack:
            iconst_1
            istore 7 /* phflag */
        start local 7 // byte phflag
         4: .line 1130
            aload 0 /* sig */
            iload 1 /* sigOff */
            aload 2 /* pk */
            iload 3 /* pkOff */
            aload 4 /* ctx */
            iload 7 /* phflag */
            aload 6 /* m */
            iconst_0
            aload 6 /* m */
            arraylength
            invokestatic org.bouncycastle.math.ec.rfc8032.Ed25519.implVerify:([BI[BI[BB[BII)Z
            ireturn
        end local 7 // byte phflag
        end local 6 // byte[] m
        end local 5 // org.bouncycastle.crypto.Digest ph
        end local 4 // byte[] ctx
        end local 3 // int pkOff
        end local 2 // byte[] pk
        end local 1 // int sigOff
        end local 0 // byte[] sig
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0     sig  [B
            0    5     1  sigOff  I
            0    5     2      pk  [B
            0    5     3   pkOff  I
            0    5     4     ctx  [B
            0    5     5      ph  Lorg/bouncycastle/crypto/Digest;
            1    5     6       m  [B
            4    5     7  phflag  B
    MethodParameters:
        Name  Flags
      sig     
      sigOff  
      pk      
      pkOff   
      ctx     
      ph      
}
SourceFile: "Ed25519.java"
NestMembers:
  org.bouncycastle.math.ec.rfc8032.Ed25519$Algorithm  org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum  org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt  org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp
InnerClasses:
  public Friend = org.bouncycastle.math.ec.rfc7748.X25519$Friend of org.bouncycastle.math.ec.rfc7748.X25519
  public final Algorithm = org.bouncycastle.math.ec.rfc8032.Ed25519$Algorithm of org.bouncycastle.math.ec.rfc8032.Ed25519
  private PointAccum = org.bouncycastle.math.ec.rfc8032.Ed25519$PointAccum of org.bouncycastle.math.ec.rfc8032.Ed25519
  private PointExt = org.bouncycastle.math.ec.rfc8032.Ed25519$PointExt of org.bouncycastle.math.ec.rfc8032.Ed25519
  private PointPrecomp = org.bouncycastle.math.ec.rfc8032.Ed25519$PointPrecomp of org.bouncycastle.math.ec.rfc8032.Ed25519