class org.bouncycastle.math.ec.Tnaf
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.bouncycastle.math.ec.Tnaf
  super_class: java.lang.Object
{
  private static final java.math.BigInteger MINUS_ONE;
    descriptor: Ljava/math/BigInteger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.math.BigInteger MINUS_TWO;
    descriptor: Ljava/math/BigInteger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.math.BigInteger MINUS_THREE;
    descriptor: Ljava/math/BigInteger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final byte WIDTH;
    descriptor: B
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  public static final byte POW_2_WIDTH;
    descriptor: B
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  public static final org.bouncycastle.math.ec.ZTauElement[] alpha0;
    descriptor: [Lorg/bouncycastle/math/ec/ZTauElement;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final byte[][] alpha0Tnaf;
    descriptor: [[B
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final org.bouncycastle.math.ec.ZTauElement[] alpha1;
    descriptor: [Lorg/bouncycastle/math/ec/ZTauElement;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final byte[][] alpha1Tnaf;
    descriptor: [[B
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=0, args_size=0
         0: .line 14
            getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
            putstatic org.bouncycastle.math.ec.Tnaf.MINUS_ONE:Ljava/math/BigInteger;
         1: .line 15
            getstatic org.bouncycastle.math.ec.ECConstants.TWO:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
            putstatic org.bouncycastle.math.ec.Tnaf.MINUS_TWO:Ljava/math/BigInteger;
         2: .line 16
            getstatic org.bouncycastle.math.ec.ECConstants.THREE:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
            putstatic org.bouncycastle.math.ec.Tnaf.MINUS_THREE:Ljava/math/BigInteger;
         3: .line 39
            bipush 9
            anewarray org.bouncycastle.math.ec.ZTauElement
            dup
            iconst_1
         4: .line 41
            new org.bouncycastle.math.ec.ZTauElement
            dup
            getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
            getstatic org.bouncycastle.math.ec.ECConstants.ZERO:Ljava/math/BigInteger;
            invokespecial org.bouncycastle.math.ec.ZTauElement.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            aastore
            dup
            iconst_3
         5: .line 42
            new org.bouncycastle.math.ec.ZTauElement
            dup
            getstatic org.bouncycastle.math.ec.Tnaf.MINUS_THREE:Ljava/math/BigInteger;
            getstatic org.bouncycastle.math.ec.Tnaf.MINUS_ONE:Ljava/math/BigInteger;
            invokespecial org.bouncycastle.math.ec.ZTauElement.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            aastore
            dup
            iconst_5
         6: .line 43
            new org.bouncycastle.math.ec.ZTauElement
            dup
            getstatic org.bouncycastle.math.ec.Tnaf.MINUS_ONE:Ljava/math/BigInteger;
            getstatic org.bouncycastle.math.ec.Tnaf.MINUS_ONE:Ljava/math/BigInteger;
            invokespecial org.bouncycastle.math.ec.ZTauElement.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            aastore
            dup
            bipush 7
         7: .line 44
            new org.bouncycastle.math.ec.ZTauElement
            dup
            getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
            getstatic org.bouncycastle.math.ec.Tnaf.MINUS_ONE:Ljava/math/BigInteger;
            invokespecial org.bouncycastle.math.ec.ZTauElement.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            aastore
         8: .line 39
            putstatic org.bouncycastle.math.ec.Tnaf.alpha0:[Lorg/bouncycastle/math/ec/ZTauElement;
         9: .line 51
            bipush 8
            anewarray byte[]
            dup
            iconst_1
        10: .line 52
            iconst_1
            newarray 8
            dup
            iconst_0
            iconst_1
            bastore
            aastore
            dup
            iconst_3
            iconst_3
            newarray 8
            dup
            iconst_0
            iconst_m1
            bastore
            dup
            iconst_2
            iconst_1
            bastore
            aastore
            dup
            iconst_5
            iconst_3
            newarray 8
            dup
            iconst_0
            iconst_1
            bastore
            dup
            iconst_2
            iconst_1
            bastore
            aastore
            dup
            bipush 7
            iconst_4
            newarray 8
            dup
            iconst_0
            iconst_m1
            bastore
            dup
            iconst_3
            iconst_1
            bastore
            aastore
        11: .line 51
            putstatic org.bouncycastle.math.ec.Tnaf.alpha0Tnaf:[[B
        12: .line 59
            bipush 9
            anewarray org.bouncycastle.math.ec.ZTauElement
            dup
            iconst_1
        13: .line 60
            new org.bouncycastle.math.ec.ZTauElement
            dup
            getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
            getstatic org.bouncycastle.math.ec.ECConstants.ZERO:Ljava/math/BigInteger;
            invokespecial org.bouncycastle.math.ec.ZTauElement.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            aastore
            dup
            iconst_3
        14: .line 61
            new org.bouncycastle.math.ec.ZTauElement
            dup
            getstatic org.bouncycastle.math.ec.Tnaf.MINUS_THREE:Ljava/math/BigInteger;
            getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
            invokespecial org.bouncycastle.math.ec.ZTauElement.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            aastore
            dup
            iconst_5
        15: .line 62
            new org.bouncycastle.math.ec.ZTauElement
            dup
            getstatic org.bouncycastle.math.ec.Tnaf.MINUS_ONE:Ljava/math/BigInteger;
            getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
            invokespecial org.bouncycastle.math.ec.ZTauElement.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            aastore
            dup
            bipush 7
        16: .line 63
            new org.bouncycastle.math.ec.ZTauElement
            dup
            getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
            getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
            invokespecial org.bouncycastle.math.ec.ZTauElement.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            aastore
        17: .line 59
            putstatic org.bouncycastle.math.ec.Tnaf.alpha1:[Lorg/bouncycastle/math/ec/ZTauElement;
        18: .line 70
            bipush 8
            anewarray byte[]
            dup
            iconst_1
        19: .line 71
            iconst_1
            newarray 8
            dup
            iconst_0
            iconst_1
            bastore
            aastore
            dup
            iconst_3
            iconst_3
            newarray 8
            dup
            iconst_0
            iconst_m1
            bastore
            dup
            iconst_2
            iconst_1
            bastore
            aastore
            dup
            iconst_5
            iconst_3
            newarray 8
            dup
            iconst_0
            iconst_1
            bastore
            dup
            iconst_2
            iconst_1
            bastore
            aastore
            dup
            bipush 7
            iconst_4
            newarray 8
            dup
            iconst_0
            iconst_m1
            bastore
            dup
            iconst_3
            iconst_m1
            bastore
            aastore
        20: .line 70
            putstatic org.bouncycastle.math.ec.Tnaf.alpha1Tnaf:[[B
        21: .line 72
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

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

  public static java.math.BigInteger norm(byte, org.bouncycastle.math.ec.ZTauElement);
    descriptor: (BLorg/bouncycastle/math/ec/ZTauElement;)Ljava/math/BigInteger;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // byte mu
        start local 1 // org.bouncycastle.math.ec.ZTauElement lambda
         0: .line 87
            aload 1 /* lambda */
            getfield org.bouncycastle.math.ec.ZTauElement.u:Ljava/math/BigInteger;
            aload 1 /* lambda */
            getfield org.bouncycastle.math.ec.ZTauElement.u:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 3 /* s1 */
        start local 3 // java.math.BigInteger s1
         1: .line 90
            aload 1 /* lambda */
            getfield org.bouncycastle.math.ec.ZTauElement.u:Ljava/math/BigInteger;
            aload 1 /* lambda */
            getfield org.bouncycastle.math.ec.ZTauElement.v:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 4 /* s2 */
        start local 4 // java.math.BigInteger s2
         2: .line 93
            aload 1 /* lambda */
            getfield org.bouncycastle.math.ec.ZTauElement.v:Ljava/math/BigInteger;
            aload 1 /* lambda */
            getfield org.bouncycastle.math.ec.ZTauElement.v:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            iconst_1
            invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
            astore 5 /* s3 */
        start local 5 // java.math.BigInteger s3
         3: .line 95
            iload 0 /* mu */
            iconst_1
            if_icmpne 6
         4: .line 97
            aload 3 /* s1 */
            aload 4 /* s2 */
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 5 /* s3 */
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 2 /* norm */
        start local 2 // java.math.BigInteger norm
         5: .line 98
            goto 10
        end local 2 // java.math.BigInteger norm
         6: .line 99
      StackMap locals: int org.bouncycastle.math.ec.ZTauElement top java.math.BigInteger java.math.BigInteger java.math.BigInteger
      StackMap stack:
            iload 0 /* mu */
            iconst_m1
            if_icmpne 9
         7: .line 101
            aload 3 /* s1 */
            aload 4 /* s2 */
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 5 /* s3 */
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 2 /* norm */
        start local 2 // java.math.BigInteger norm
         8: .line 102
            goto 10
        end local 2 // java.math.BigInteger norm
         9: .line 105
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "mu must be 1 or -1"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        start local 2 // java.math.BigInteger norm
        10: .line 108
      StackMap locals: int org.bouncycastle.math.ec.ZTauElement java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger
      StackMap stack:
            aload 2 /* norm */
            areturn
        end local 5 // java.math.BigInteger s3
        end local 4 // java.math.BigInteger s2
        end local 3 // java.math.BigInteger s1
        end local 2 // java.math.BigInteger norm
        end local 1 // org.bouncycastle.math.ec.ZTauElement lambda
        end local 0 // byte mu
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0      mu  B
            0   11     1  lambda  Lorg/bouncycastle/math/ec/ZTauElement;
            5    6     2    norm  Ljava/math/BigInteger;
            8    9     2    norm  Ljava/math/BigInteger;
           10   11     2    norm  Ljava/math/BigInteger;
            1   11     3      s1  Ljava/math/BigInteger;
            2   11     4      s2  Ljava/math/BigInteger;
            3   11     5      s3  Ljava/math/BigInteger;
    MethodParameters:
        Name  Flags
      mu      final
      lambda  

  public static org.bouncycastle.math.ec.SimpleBigDecimal norm(byte, org.bouncycastle.math.ec.SimpleBigDecimal, org.bouncycastle.math.ec.SimpleBigDecimal);
    descriptor: (BLorg/bouncycastle/math/ec/SimpleBigDecimal;Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // byte mu
        start local 1 // org.bouncycastle.math.ec.SimpleBigDecimal u
        start local 2 // org.bouncycastle.math.ec.SimpleBigDecimal v
         0: .line 129
            aload 1 /* u */
            aload 1 /* u */
            invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.multiply:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
            astore 4 /* s1 */
        start local 4 // org.bouncycastle.math.ec.SimpleBigDecimal s1
         1: .line 132
            aload 1 /* u */
            aload 2 /* v */
            invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.multiply:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
            astore 5 /* s2 */
        start local 5 // org.bouncycastle.math.ec.SimpleBigDecimal s2
         2: .line 135
            aload 2 /* v */
            aload 2 /* v */
            invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.multiply:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
            iconst_1
            invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.shiftLeft:(I)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
            astore 6 /* s3 */
        start local 6 // org.bouncycastle.math.ec.SimpleBigDecimal s3
         3: .line 137
            iload 0 /* mu */
            iconst_1
            if_icmpne 6
         4: .line 139
            aload 4 /* s1 */
            aload 5 /* s2 */
            invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.add:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
            aload 6 /* s3 */
            invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.add:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
            astore 3 /* norm */
        start local 3 // org.bouncycastle.math.ec.SimpleBigDecimal norm
         5: .line 140
            goto 10
        end local 3 // org.bouncycastle.math.ec.SimpleBigDecimal norm
         6: .line 141
      StackMap locals: int org.bouncycastle.math.ec.SimpleBigDecimal org.bouncycastle.math.ec.SimpleBigDecimal top org.bouncycastle.math.ec.SimpleBigDecimal org.bouncycastle.math.ec.SimpleBigDecimal org.bouncycastle.math.ec.SimpleBigDecimal
      StackMap stack:
            iload 0 /* mu */
            iconst_m1
            if_icmpne 9
         7: .line 143
            aload 4 /* s1 */
            aload 5 /* s2 */
            invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.subtract:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
            aload 6 /* s3 */
            invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.add:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
            astore 3 /* norm */
        start local 3 // org.bouncycastle.math.ec.SimpleBigDecimal norm
         8: .line 144
            goto 10
        end local 3 // org.bouncycastle.math.ec.SimpleBigDecimal norm
         9: .line 147
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "mu must be 1 or -1"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        start local 3 // org.bouncycastle.math.ec.SimpleBigDecimal norm
        10: .line 150
      StackMap locals: int org.bouncycastle.math.ec.SimpleBigDecimal org.bouncycastle.math.ec.SimpleBigDecimal org.bouncycastle.math.ec.SimpleBigDecimal org.bouncycastle.math.ec.SimpleBigDecimal org.bouncycastle.math.ec.SimpleBigDecimal org.bouncycastle.math.ec.SimpleBigDecimal
      StackMap stack:
            aload 3 /* norm */
            areturn
        end local 6 // org.bouncycastle.math.ec.SimpleBigDecimal s3
        end local 5 // org.bouncycastle.math.ec.SimpleBigDecimal s2
        end local 4 // org.bouncycastle.math.ec.SimpleBigDecimal s1
        end local 3 // org.bouncycastle.math.ec.SimpleBigDecimal norm
        end local 2 // org.bouncycastle.math.ec.SimpleBigDecimal v
        end local 1 // org.bouncycastle.math.ec.SimpleBigDecimal u
        end local 0 // byte mu
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0    mu  B
            0   11     1     u  Lorg/bouncycastle/math/ec/SimpleBigDecimal;
            0   11     2     v  Lorg/bouncycastle/math/ec/SimpleBigDecimal;
            5    6     3  norm  Lorg/bouncycastle/math/ec/SimpleBigDecimal;
            8    9     3  norm  Lorg/bouncycastle/math/ec/SimpleBigDecimal;
           10   11     3  norm  Lorg/bouncycastle/math/ec/SimpleBigDecimal;
            1   11     4    s1  Lorg/bouncycastle/math/ec/SimpleBigDecimal;
            2   11     5    s2  Lorg/bouncycastle/math/ec/SimpleBigDecimal;
            3   11     6    s3  Lorg/bouncycastle/math/ec/SimpleBigDecimal;
    MethodParameters:
      Name  Flags
      mu    final
      u     
      v     

  public static org.bouncycastle.math.ec.ZTauElement round(org.bouncycastle.math.ec.SimpleBigDecimal, org.bouncycastle.math.ec.SimpleBigDecimal, byte);
    descriptor: (Lorg/bouncycastle/math/ec/SimpleBigDecimal;Lorg/bouncycastle/math/ec/SimpleBigDecimal;B)Lorg/bouncycastle/math/ec/ZTauElement;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=17, args_size=3
        start local 0 // org.bouncycastle.math.ec.SimpleBigDecimal lambda0
        start local 1 // org.bouncycastle.math.ec.SimpleBigDecimal lambda1
        start local 2 // byte mu
         0: .line 169
            aload 0 /* lambda0 */
            invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.getScale:()I
            istore 3 /* scale */
        start local 3 // int scale
         1: .line 170
            aload 1 /* lambda1 */
            invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.getScale:()I
            iload 3 /* scale */
            if_icmpeq 3
         2: .line 172
            new java.lang.IllegalArgumentException
            dup
            ldc "lambda0 and lambda1 do not have same scale"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 176
      StackMap locals: int
      StackMap stack:
            iload 2 /* mu */
            iconst_1
            if_icmpeq 5
            iload 2 /* mu */
            iconst_m1
            if_icmpeq 5
         4: .line 178
            new java.lang.IllegalArgumentException
            dup
            ldc "mu must be 1 or -1"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 181
      StackMap locals:
      StackMap stack:
            aload 0 /* lambda0 */
            invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.round:()Ljava/math/BigInteger;
            astore 4 /* f0 */
        start local 4 // java.math.BigInteger f0
         6: .line 182
            aload 1 /* lambda1 */
            invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.round:()Ljava/math/BigInteger;
            astore 5 /* f1 */
        start local 5 // java.math.BigInteger f1
         7: .line 184
            aload 0 /* lambda0 */
            aload 4 /* f0 */
            invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.subtract:(Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
            astore 6 /* eta0 */
        start local 6 // org.bouncycastle.math.ec.SimpleBigDecimal eta0
         8: .line 185
            aload 1 /* lambda1 */
            aload 5 /* f1 */
            invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.subtract:(Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
            astore 7 /* eta1 */
        start local 7 // org.bouncycastle.math.ec.SimpleBigDecimal eta1
         9: .line 188
            aload 6 /* eta0 */
            aload 6 /* eta0 */
            invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.add:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
            astore 8 /* eta */
        start local 8 // org.bouncycastle.math.ec.SimpleBigDecimal eta
        10: .line 189
            iload 2 /* mu */
            iconst_1
            if_icmpne 13
        11: .line 191
            aload 8 /* eta */
            aload 7 /* eta1 */
            invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.add:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
            astore 8 /* eta */
        12: .line 192
            goto 14
        13: .line 196
      StackMap locals: org.bouncycastle.math.ec.SimpleBigDecimal org.bouncycastle.math.ec.SimpleBigDecimal int int java.math.BigInteger java.math.BigInteger org.bouncycastle.math.ec.SimpleBigDecimal org.bouncycastle.math.ec.SimpleBigDecimal org.bouncycastle.math.ec.SimpleBigDecimal
      StackMap stack:
            aload 8 /* eta */
            aload 7 /* eta1 */
            invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.subtract:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
            astore 8 /* eta */
        14: .line 201
      StackMap locals:
      StackMap stack:
            aload 7 /* eta1 */
            aload 7 /* eta1 */
            invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.add:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
            aload 7 /* eta1 */
            invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.add:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
            astore 9 /* threeEta1 */
        start local 9 // org.bouncycastle.math.ec.SimpleBigDecimal threeEta1
        15: .line 202
            aload 9 /* threeEta1 */
            aload 7 /* eta1 */
            invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.add:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
            astore 10 /* fourEta1 */
        start local 10 // org.bouncycastle.math.ec.SimpleBigDecimal fourEta1
        16: .line 205
            iload 2 /* mu */
            iconst_1
            if_icmpne 20
        17: .line 207
            aload 6 /* eta0 */
            aload 9 /* threeEta1 */
            invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.subtract:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
            astore 11 /* check1 */
        start local 11 // org.bouncycastle.math.ec.SimpleBigDecimal check1
        18: .line 208
            aload 6 /* eta0 */
            aload 10 /* fourEta1 */
            invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.add:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
            astore 12 /* check2 */
        start local 12 // org.bouncycastle.math.ec.SimpleBigDecimal check2
        19: .line 209
            goto 22
        end local 12 // org.bouncycastle.math.ec.SimpleBigDecimal check2
        end local 11 // org.bouncycastle.math.ec.SimpleBigDecimal check1
        20: .line 213
      StackMap locals: org.bouncycastle.math.ec.SimpleBigDecimal org.bouncycastle.math.ec.SimpleBigDecimal
      StackMap stack:
            aload 6 /* eta0 */
            aload 9 /* threeEta1 */
            invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.add:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
            astore 11 /* check1 */
        start local 11 // org.bouncycastle.math.ec.SimpleBigDecimal check1
        21: .line 214
            aload 6 /* eta0 */
            aload 10 /* fourEta1 */
            invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.subtract:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
            astore 12 /* check2 */
        start local 12 // org.bouncycastle.math.ec.SimpleBigDecimal check2
        22: .line 217
      StackMap locals: org.bouncycastle.math.ec.SimpleBigDecimal org.bouncycastle.math.ec.SimpleBigDecimal
      StackMap stack:
            iconst_0
            istore 13 /* h0 */
        start local 13 // byte h0
        23: .line 218
            iconst_0
            istore 14 /* h1 */
        start local 14 // byte h1
        24: .line 221
            aload 8 /* eta */
            getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.compareTo:(Ljava/math/BigInteger;)I
            iflt 30
        25: .line 223
            aload 11 /* check1 */
            getstatic org.bouncycastle.math.ec.Tnaf.MINUS_ONE:Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.compareTo:(Ljava/math/BigInteger;)I
            ifge 28
        26: .line 225
            iload 2 /* mu */
            istore 14 /* h1 */
        27: .line 226
            goto 32
        28: .line 229
      StackMap locals: int int
      StackMap stack:
            iconst_1
            istore 13 /* h0 */
        29: .line 231
            goto 32
        30: .line 235
      StackMap locals:
      StackMap stack:
            aload 12 /* check2 */
            getstatic org.bouncycastle.math.ec.ECConstants.TWO:Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.compareTo:(Ljava/math/BigInteger;)I
            iflt 32
        31: .line 237
            iload 2 /* mu */
            istore 14 /* h1 */
        32: .line 242
      StackMap locals:
      StackMap stack:
            aload 8 /* eta */
            getstatic org.bouncycastle.math.ec.Tnaf.MINUS_ONE:Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.compareTo:(Ljava/math/BigInteger;)I
            ifge 38
        33: .line 244
            aload 11 /* check1 */
            getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.compareTo:(Ljava/math/BigInteger;)I
            iflt 36
        34: .line 246
            iload 2 /* mu */
            ineg
            i2b
            istore 14 /* h1 */
        35: .line 247
            goto 40
        36: .line 250
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 13 /* h0 */
        37: .line 252
            goto 40
        38: .line 256
      StackMap locals:
      StackMap stack:
            aload 12 /* check2 */
            getstatic org.bouncycastle.math.ec.Tnaf.MINUS_TWO:Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.SimpleBigDecimal.compareTo:(Ljava/math/BigInteger;)I
            ifge 40
        39: .line 258
            iload 2 /* mu */
            ineg
            i2b
            istore 14 /* h1 */
        40: .line 262
      StackMap locals:
      StackMap stack:
            aload 4 /* f0 */
            iload 13 /* h0 */
            i2l
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 15 /* q0 */
        start local 15 // java.math.BigInteger q0
        41: .line 263
            aload 5 /* f1 */
            iload 14 /* h1 */
            i2l
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 16 /* q1 */
        start local 16 // java.math.BigInteger q1
        42: .line 264
            new org.bouncycastle.math.ec.ZTauElement
            dup
            aload 15 /* q0 */
            aload 16 /* q1 */
            invokespecial org.bouncycastle.math.ec.ZTauElement.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            areturn
        end local 16 // java.math.BigInteger q1
        end local 15 // java.math.BigInteger q0
        end local 14 // byte h1
        end local 13 // byte h0
        end local 12 // org.bouncycastle.math.ec.SimpleBigDecimal check2
        end local 11 // org.bouncycastle.math.ec.SimpleBigDecimal check1
        end local 10 // org.bouncycastle.math.ec.SimpleBigDecimal fourEta1
        end local 9 // org.bouncycastle.math.ec.SimpleBigDecimal threeEta1
        end local 8 // org.bouncycastle.math.ec.SimpleBigDecimal eta
        end local 7 // org.bouncycastle.math.ec.SimpleBigDecimal eta1
        end local 6 // org.bouncycastle.math.ec.SimpleBigDecimal eta0
        end local 5 // java.math.BigInteger f1
        end local 4 // java.math.BigInteger f0
        end local 3 // int scale
        end local 2 // byte mu
        end local 1 // org.bouncycastle.math.ec.SimpleBigDecimal lambda1
        end local 0 // org.bouncycastle.math.ec.SimpleBigDecimal lambda0
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   43     0    lambda0  Lorg/bouncycastle/math/ec/SimpleBigDecimal;
            0   43     1    lambda1  Lorg/bouncycastle/math/ec/SimpleBigDecimal;
            0   43     2         mu  B
            1   43     3      scale  I
            6   43     4         f0  Ljava/math/BigInteger;
            7   43     5         f1  Ljava/math/BigInteger;
            8   43     6       eta0  Lorg/bouncycastle/math/ec/SimpleBigDecimal;
            9   43     7       eta1  Lorg/bouncycastle/math/ec/SimpleBigDecimal;
           10   43     8        eta  Lorg/bouncycastle/math/ec/SimpleBigDecimal;
           15   43     9  threeEta1  Lorg/bouncycastle/math/ec/SimpleBigDecimal;
           16   43    10   fourEta1  Lorg/bouncycastle/math/ec/SimpleBigDecimal;
           18   20    11     check1  Lorg/bouncycastle/math/ec/SimpleBigDecimal;
           21   43    11     check1  Lorg/bouncycastle/math/ec/SimpleBigDecimal;
           19   20    12     check2  Lorg/bouncycastle/math/ec/SimpleBigDecimal;
           22   43    12     check2  Lorg/bouncycastle/math/ec/SimpleBigDecimal;
           23   43    13         h0  B
           24   43    14         h1  B
           41   43    15         q0  Ljava/math/BigInteger;
           42   43    16         q1  Ljava/math/BigInteger;
    MethodParameters:
         Name  Flags
      lambda0  
      lambda1  
      mu       

  public static org.bouncycastle.math.ec.SimpleBigDecimal approximateDivisionByN(java.math.BigInteger, java.math.BigInteger, java.math.BigInteger, byte, int, int);
    descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;BII)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=13, args_size=6
        start local 0 // java.math.BigInteger k
        start local 1 // java.math.BigInteger s
        start local 2 // java.math.BigInteger vm
        start local 3 // byte a
        start local 4 // int m
        start local 5 // int c
         0: .line 286
            iload 4 /* m */
            iconst_5
            iadd
            iconst_2
            idiv
            iload 5 /* c */
            iadd
            istore 6 /* _k */
        start local 6 // int _k
         1: .line 287
            aload 0 /* k */
            iload 4 /* m */
            iload 6 /* _k */
            isub
            iconst_2
            isub
            iload 3 /* a */
            iadd
            invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
            astore 7 /* ns */
        start local 7 // java.math.BigInteger ns
         2: .line 289
            aload 1 /* s */
            aload 7 /* ns */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 8 /* gs */
        start local 8 // java.math.BigInteger gs
         3: .line 291
            aload 8 /* gs */
            iload 4 /* m */
            invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
            astore 9 /* hs */
        start local 9 // java.math.BigInteger hs
         4: .line 293
            aload 2 /* vm */
            aload 9 /* hs */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 10 /* js */
        start local 10 // java.math.BigInteger js
         5: .line 295
            aload 8 /* gs */
            aload 10 /* js */
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 11 /* gsPlusJs */
        start local 11 // java.math.BigInteger gsPlusJs
         6: .line 296
            aload 11 /* gsPlusJs */
            iload 6 /* _k */
            iload 5 /* c */
            isub
            invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
            astore 12 /* ls */
        start local 12 // java.math.BigInteger ls
         7: .line 297
            aload 11 /* gsPlusJs */
            iload 6 /* _k */
            iload 5 /* c */
            isub
            iconst_1
            isub
            invokevirtual java.math.BigInteger.testBit:(I)Z
            ifeq 9
         8: .line 300
            aload 12 /* ls */
            getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 12 /* ls */
         9: .line 303
      StackMap locals: java.math.BigInteger java.math.BigInteger java.math.BigInteger int int int int java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger
      StackMap stack:
            new org.bouncycastle.math.ec.SimpleBigDecimal
            dup
            aload 12 /* ls */
            iload 5 /* c */
            invokespecial org.bouncycastle.math.ec.SimpleBigDecimal.<init>:(Ljava/math/BigInteger;I)V
            areturn
        end local 12 // java.math.BigInteger ls
        end local 11 // java.math.BigInteger gsPlusJs
        end local 10 // java.math.BigInteger js
        end local 9 // java.math.BigInteger hs
        end local 8 // java.math.BigInteger gs
        end local 7 // java.math.BigInteger ns
        end local 6 // int _k
        end local 5 // int c
        end local 4 // int m
        end local 3 // byte a
        end local 2 // java.math.BigInteger vm
        end local 1 // java.math.BigInteger s
        end local 0 // java.math.BigInteger k
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0         k  Ljava/math/BigInteger;
            0   10     1         s  Ljava/math/BigInteger;
            0   10     2        vm  Ljava/math/BigInteger;
            0   10     3         a  B
            0   10     4         m  I
            0   10     5         c  I
            1   10     6        _k  I
            2   10     7        ns  Ljava/math/BigInteger;
            3   10     8        gs  Ljava/math/BigInteger;
            4   10     9        hs  Ljava/math/BigInteger;
            5   10    10        js  Ljava/math/BigInteger;
            6   10    11  gsPlusJs  Ljava/math/BigInteger;
            7   10    12        ls  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      k     
      s     
      vm    
      a     
      m     
      c     

  public static byte[] tauAdicNaf(byte, org.bouncycastle.math.ec.ZTauElement);
    descriptor: (BLorg/bouncycastle/math/ec/ZTauElement;)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=12, args_size=2
        start local 0 // byte mu
        start local 1 // org.bouncycastle.math.ec.ZTauElement lambda
         0: .line 316
            iload 0 /* mu */
            iconst_1
            if_icmpeq 2
            iload 0 /* mu */
            iconst_m1
            if_icmpeq 2
         1: .line 318
            new java.lang.IllegalArgumentException
            dup
            ldc "mu must be 1 or -1"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 321
      StackMap locals:
      StackMap stack:
            iload 0 /* mu */
            aload 1 /* lambda */
            invokestatic org.bouncycastle.math.ec.Tnaf.norm:(BLorg/bouncycastle/math/ec/ZTauElement;)Ljava/math/BigInteger;
            astore 2 /* norm */
        start local 2 // java.math.BigInteger norm
         3: .line 324
            aload 2 /* norm */
            invokevirtual java.math.BigInteger.bitLength:()I
            istore 3 /* log2Norm */
        start local 3 // int log2Norm
         4: .line 327
            iload 3 /* log2Norm */
            bipush 30
            if_icmple 5
            iload 3 /* log2Norm */
            iconst_4
            iadd
            goto 6
      StackMap locals: java.math.BigInteger int
      StackMap stack:
         5: bipush 34
      StackMap locals:
      StackMap stack: int
         6: istore 4 /* maxLength */
        start local 4 // int maxLength
         7: .line 330
            iload 4 /* maxLength */
            newarray 8
            astore 5 /* u */
        start local 5 // byte[] u
         8: .line 331
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         9: .line 334
            iconst_0
            istore 7 /* length */
        start local 7 // int length
        10: .line 336
            aload 1 /* lambda */
            getfield org.bouncycastle.math.ec.ZTauElement.u:Ljava/math/BigInteger;
            astore 8 /* r0 */
        start local 8 // java.math.BigInteger r0
        11: .line 337
            aload 1 /* lambda */
            getfield org.bouncycastle.math.ec.ZTauElement.v:Ljava/math/BigInteger;
            astore 9 /* r1 */
        start local 9 // java.math.BigInteger r1
        12: .line 339
            goto 30
        13: .line 342
      StackMap locals: int org.bouncycastle.math.ec.ZTauElement java.math.BigInteger int int byte[] int int java.math.BigInteger java.math.BigInteger
      StackMap stack:
            aload 8 /* r0 */
            iconst_0
            invokevirtual java.math.BigInteger.testBit:(I)Z
            ifeq 21
        14: .line 344
            aload 5 /* u */
            iload 6 /* i */
            getstatic org.bouncycastle.math.ec.ECConstants.TWO:Ljava/math/BigInteger;
            aload 8 /* r0 */
            aload 9 /* r1 */
            iconst_1
            invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            getstatic org.bouncycastle.math.ec.ECConstants.FOUR:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.intValue:()I
            i2b
            bastore
        15: .line 347
            aload 5 /* u */
            iload 6 /* i */
            baload
            iconst_1
            if_icmpne 18
        16: .line 349
            aload 8 /* r0 */
            iconst_0
            invokevirtual java.math.BigInteger.clearBit:(I)Ljava/math/BigInteger;
            astore 8 /* r0 */
        17: .line 350
            goto 19
        18: .line 354
      StackMap locals:
      StackMap stack:
            aload 8 /* r0 */
            getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 8 /* r0 */
        19: .line 356
      StackMap locals:
      StackMap stack:
            iload 6 /* i */
            istore 7 /* length */
        20: .line 357
            goto 22
        21: .line 360
      StackMap locals:
      StackMap stack:
            aload 5 /* u */
            iload 6 /* i */
            iconst_0
            bastore
        22: .line 363
      StackMap locals:
      StackMap stack:
            aload 8 /* r0 */
            astore 10 /* t */
        start local 10 // java.math.BigInteger t
        23: .line 364
            aload 8 /* r0 */
            iconst_1
            invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
            astore 11 /* s */
        start local 11 // java.math.BigInteger s
        24: .line 365
            iload 0 /* mu */
            iconst_1
            if_icmpne 27
        25: .line 367
            aload 9 /* r1 */
            aload 11 /* s */
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 8 /* r0 */
        26: .line 368
            goto 28
        27: .line 372
      StackMap locals: java.math.BigInteger java.math.BigInteger
      StackMap stack:
            aload 9 /* r1 */
            aload 11 /* s */
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 8 /* r0 */
        28: .line 375
      StackMap locals:
      StackMap stack:
            aload 10 /* t */
            iconst_1
            invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
            astore 9 /* r1 */
        29: .line 376
            iinc 6 /* i */ 1
        end local 11 // java.math.BigInteger s
        end local 10 // java.math.BigInteger t
        30: .line 339
      StackMap locals:
      StackMap stack:
            aload 8 /* r0 */
            getstatic org.bouncycastle.math.ec.ECConstants.ZERO:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ifeq 13
            aload 9 /* r1 */
            getstatic org.bouncycastle.math.ec.ECConstants.ZERO:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ifeq 13
        31: .line 379
            iinc 7 /* length */ 1
        32: .line 382
            iload 7 /* length */
            newarray 8
            astore 10 /* tnaf */
        start local 10 // byte[] tnaf
        33: .line 383
            aload 5 /* u */
            iconst_0
            aload 10 /* tnaf */
            iconst_0
            iload 7 /* length */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        34: .line 384
            aload 10 /* tnaf */
            areturn
        end local 10 // byte[] tnaf
        end local 9 // java.math.BigInteger r1
        end local 8 // java.math.BigInteger r0
        end local 7 // int length
        end local 6 // int i
        end local 5 // byte[] u
        end local 4 // int maxLength
        end local 3 // int log2Norm
        end local 2 // java.math.BigInteger norm
        end local 1 // org.bouncycastle.math.ec.ZTauElement lambda
        end local 0 // byte mu
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   35     0         mu  B
            0   35     1     lambda  Lorg/bouncycastle/math/ec/ZTauElement;
            3   35     2       norm  Ljava/math/BigInteger;
            4   35     3   log2Norm  I
            7   35     4  maxLength  I
            8   35     5          u  [B
            9   35     6          i  I
           10   35     7     length  I
           11   35     8         r0  Ljava/math/BigInteger;
           12   35     9         r1  Ljava/math/BigInteger;
           23   30    10          t  Ljava/math/BigInteger;
           24   30    11          s  Ljava/math/BigInteger;
           33   35    10       tnaf  [B
    MethodParameters:
        Name  Flags
      mu      
      lambda  

  public static org.bouncycastle.math.ec.ECPoint$AbstractF2m tau(org.bouncycastle.math.ec.ECPoint$AbstractF2m);
    descriptor: (Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;)Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECPoint$AbstractF2m p
         0: .line 395
            aload 0 /* p */
            invokevirtual org.bouncycastle.math.ec.ECPoint$AbstractF2m.tau:()Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
            areturn
        end local 0 // org.bouncycastle.math.ec.ECPoint$AbstractF2m p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     p  Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
    MethodParameters:
      Name  Flags
      p     

  public static byte getMu(org.bouncycastle.math.ec.ECCurve$AbstractF2m);
    descriptor: (Lorg/bouncycastle/math/ec/ECCurve$AbstractF2m;)B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECCurve$AbstractF2m curve
         0: .line 410
            aload 0 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.isKoblitz:()Z
            ifne 2
         1: .line 412
            new java.lang.IllegalArgumentException
            dup
            ldc "No Koblitz curve (ABC), TNAF multiplication not possible"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 415
      StackMap locals:
      StackMap stack:
            aload 0 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.getA:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
            ifeq 4
         3: .line 417
            iconst_m1
            ireturn
         4: .line 420
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 0 // org.bouncycastle.math.ec.ECCurve$AbstractF2m curve
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0  curve  Lorg/bouncycastle/math/ec/ECCurve$AbstractF2m;
    MethodParameters:
       Name  Flags
      curve  

  public static byte getMu(org.bouncycastle.math.ec.ECFieldElement);
    descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;)B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECFieldElement curveA
         0: .line 425
            aload 0 /* curveA */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.isZero:()Z
            ifeq 1
            iconst_m1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: i2b
            ireturn
        end local 0 // org.bouncycastle.math.ec.ECFieldElement curveA
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  curveA  Lorg/bouncycastle/math/ec/ECFieldElement;
    MethodParameters:
        Name  Flags
      curveA  

  public static byte getMu(int);
    descriptor: (I)B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int curveA
         0: .line 430
            iload 0 /* curveA */
            ifne 1
            iconst_m1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: i2b
            ireturn
        end local 0 // int curveA
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  curveA  I
    MethodParameters:
        Name  Flags
      curveA  

  public static java.math.BigInteger[] getLucas(byte, int, boolean);
    descriptor: (BIZ)[Ljava/math/BigInteger;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // byte mu
        start local 1 // int k
        start local 2 // boolean doV
         0: .line 449
            iload 0 /* mu */
            iconst_1
            if_icmpeq 2
            iload 0 /* mu */
            iconst_m1
            if_icmpeq 2
         1: .line 451
            new java.lang.IllegalArgumentException
            dup
            ldc "mu must be 1 or -1"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 458
      StackMap locals:
      StackMap stack:
            iload 2 /* doV */
            ifeq 6
         3: .line 460
            getstatic org.bouncycastle.math.ec.ECConstants.TWO:Ljava/math/BigInteger;
            astore 3 /* u0 */
        start local 3 // java.math.BigInteger u0
         4: .line 461
            iload 0 /* mu */
            i2l
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            astore 4 /* u1 */
        start local 4 // java.math.BigInteger u1
         5: .line 462
            goto 8
        end local 4 // java.math.BigInteger u1
        end local 3 // java.math.BigInteger u0
         6: .line 465
      StackMap locals:
      StackMap stack:
            getstatic org.bouncycastle.math.ec.ECConstants.ZERO:Ljava/math/BigInteger;
            astore 3 /* u0 */
        start local 3 // java.math.BigInteger u0
         7: .line 466
            getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
            astore 4 /* u1 */
        start local 4 // java.math.BigInteger u1
         8: .line 469
      StackMap locals: java.math.BigInteger java.math.BigInteger
      StackMap stack:
            iconst_1
            istore 6 /* i */
        start local 6 // int i
         9: goto 19
        10: .line 472
      StackMap locals: int int int java.math.BigInteger java.math.BigInteger top int
      StackMap stack:
            aconst_null
            astore 7 /* s */
        start local 7 // java.math.BigInteger s
        11: .line 473
            iload 0 /* mu */
            iconst_1
            if_icmpne 14
        12: .line 475
            aload 4 /* u1 */
            astore 7 /* s */
        13: .line 476
            goto 15
        14: .line 480
      StackMap locals: java.math.BigInteger
      StackMap stack:
            aload 4 /* u1 */
            invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
            astore 7 /* s */
        15: .line 483
      StackMap locals:
      StackMap stack:
            aload 7 /* s */
            aload 3 /* u0 */
            iconst_1
            invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 5 /* u2 */
        start local 5 // java.math.BigInteger u2
        16: .line 484
            aload 4 /* u1 */
            astore 3 /* u0 */
        17: .line 485
            aload 5 /* u2 */
            astore 4 /* u1 */
        end local 7 // java.math.BigInteger s
        18: .line 469
            iinc 6 /* i */ 1
        end local 5 // java.math.BigInteger u2
      StackMap locals:
      StackMap stack:
        19: iload 6 /* i */
            iload 1 /* k */
            if_icmplt 10
        end local 6 // int i
        20: .line 490
            iconst_2
            anewarray java.math.BigInteger
            dup
            iconst_0
            aload 3 /* u0 */
            aastore
            dup
            iconst_1
            aload 4 /* u1 */
            aastore
            astore 6 /* retVal */
        start local 6 // java.math.BigInteger[] retVal
        21: .line 491
            aload 6 /* retVal */
            areturn
        end local 6 // java.math.BigInteger[] retVal
        end local 4 // java.math.BigInteger u1
        end local 3 // java.math.BigInteger u0
        end local 2 // boolean doV
        end local 1 // int k
        end local 0 // byte mu
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   22     0      mu  B
            0   22     1       k  I
            0   22     2     doV  Z
            4    6     3      u0  Ljava/math/BigInteger;
            7   22     3      u0  Ljava/math/BigInteger;
            5    6     4      u1  Ljava/math/BigInteger;
            8   22     4      u1  Ljava/math/BigInteger;
           16   19     5      u2  Ljava/math/BigInteger;
            9   20     6       i  I
           11   18     7       s  Ljava/math/BigInteger;
           21   22     6  retVal  [Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      mu    
      k     
      doV   

  public static java.math.BigInteger getTw(byte, int);
    descriptor: (BI)Ljava/math/BigInteger;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // byte mu
        start local 1 // int w
         0: .line 504
            iload 1 /* w */
            iconst_4
            if_icmpne 4
         1: .line 506
            iload 0 /* mu */
            iconst_1
            if_icmpne 3
         2: .line 508
            ldc 6
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            areturn
         3: .line 513
      StackMap locals:
      StackMap stack:
            ldc 10
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            areturn
         4: .line 519
      StackMap locals:
      StackMap stack:
            iload 0 /* mu */
            iload 1 /* w */
            iconst_0
            invokestatic org.bouncycastle.math.ec.Tnaf.getLucas:(BIZ)[Ljava/math/BigInteger;
            astore 2 /* us */
        start local 2 // java.math.BigInteger[] us
         5: .line 520
            getstatic org.bouncycastle.math.ec.ECConstants.ZERO:Ljava/math/BigInteger;
            iload 1 /* w */
            invokevirtual java.math.BigInteger.setBit:(I)Ljava/math/BigInteger;
            astore 3 /* twoToW */
        start local 3 // java.math.BigInteger twoToW
         6: .line 521
            aload 2 /* us */
            iconst_1
            aaload
            aload 3 /* twoToW */
            invokevirtual java.math.BigInteger.modInverse:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 4 /* u1invert */
        start local 4 // java.math.BigInteger u1invert
         7: .line 523
            getstatic org.bouncycastle.math.ec.ECConstants.TWO:Ljava/math/BigInteger;
            aload 2 /* us */
            iconst_0
            aaload
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 4 /* u1invert */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 3 /* twoToW */
            invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 5 /* tw */
        start local 5 // java.math.BigInteger tw
         8: .line 526
            aload 5 /* tw */
            areturn
        end local 5 // java.math.BigInteger tw
        end local 4 // java.math.BigInteger u1invert
        end local 3 // java.math.BigInteger twoToW
        end local 2 // java.math.BigInteger[] us
        end local 1 // int w
        end local 0 // byte mu
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0        mu  B
            0    9     1         w  I
            5    9     2        us  [Ljava/math/BigInteger;
            6    9     3    twoToW  Ljava/math/BigInteger;
            7    9     4  u1invert  Ljava/math/BigInteger;
            8    9     5        tw  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      mu    
      w     

  public static java.math.BigInteger[] getSi(org.bouncycastle.math.ec.ECCurve$AbstractF2m);
    descriptor: (Lorg/bouncycastle/math/ec/ECCurve$AbstractF2m;)[Ljava/math/BigInteger;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECCurve$AbstractF2m curve
         0: .line 540
            aload 0 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.isKoblitz:()Z
            ifne 2
         1: .line 542
            new java.lang.IllegalArgumentException
            dup
            ldc "si is defined for Koblitz curves only"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 545
      StackMap locals:
      StackMap stack:
            aload 0 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.getFieldSize:()I
            istore 1 /* m */
        start local 1 // int m
         3: .line 546
            aload 0 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.getA:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.intValue:()I
            istore 2 /* a */
        start local 2 // int a
         4: .line 547
            iload 2 /* a */
            invokestatic org.bouncycastle.math.ec.Tnaf.getMu:(I)B
            istore 3 /* mu */
        start local 3 // byte mu
         5: .line 548
            aload 0 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.getCofactor:()Ljava/math/BigInteger;
            invokestatic org.bouncycastle.math.ec.Tnaf.getShiftsForCofactor:(Ljava/math/BigInteger;)I
            istore 4 /* shifts */
        start local 4 // int shifts
         6: .line 549
            iload 1 /* m */
            iconst_3
            iadd
            iload 2 /* a */
            isub
            istore 5 /* index */
        start local 5 // int index
         7: .line 550
            iload 3 /* mu */
            iload 5 /* index */
            iconst_0
            invokestatic org.bouncycastle.math.ec.Tnaf.getLucas:(BIZ)[Ljava/math/BigInteger;
            astore 6 /* ui */
        start local 6 // java.math.BigInteger[] ui
         8: .line 551
            iload 3 /* mu */
            iconst_1
            if_icmpne 11
         9: .line 553
            aload 6 /* ui */
            iconst_0
            aload 6 /* ui */
            iconst_0
            aaload
            invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
            aastore
        10: .line 554
            aload 6 /* ui */
            iconst_1
            aload 6 /* ui */
            iconst_1
            aaload
            invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
            aastore
        11: .line 557
      StackMap locals: org.bouncycastle.math.ec.ECCurve$AbstractF2m int int int int int java.math.BigInteger[]
      StackMap stack:
            getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
            aload 6 /* ui */
            iconst_1
            aaload
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            iload 4 /* shifts */
            invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
            astore 7 /* dividend0 */
        start local 7 // java.math.BigInteger dividend0
        12: .line 558
            getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
            aload 6 /* ui */
            iconst_0
            aaload
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            iload 4 /* shifts */
            invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
            astore 8 /* dividend1 */
        start local 8 // java.math.BigInteger dividend1
        13: .line 560
            iconst_2
            anewarray java.math.BigInteger
            dup
            iconst_0
            aload 7 /* dividend0 */
            aastore
            dup
            iconst_1
            aload 8 /* dividend1 */
            aastore
            areturn
        end local 8 // java.math.BigInteger dividend1
        end local 7 // java.math.BigInteger dividend0
        end local 6 // java.math.BigInteger[] ui
        end local 5 // int index
        end local 4 // int shifts
        end local 3 // byte mu
        end local 2 // int a
        end local 1 // int m
        end local 0 // org.bouncycastle.math.ec.ECCurve$AbstractF2m curve
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0      curve  Lorg/bouncycastle/math/ec/ECCurve$AbstractF2m;
            3   14     1          m  I
            4   14     2          a  I
            5   14     3         mu  B
            6   14     4     shifts  I
            7   14     5      index  I
            8   14     6         ui  [Ljava/math/BigInteger;
           12   14     7  dividend0  Ljava/math/BigInteger;
           13   14     8  dividend1  Ljava/math/BigInteger;
    MethodParameters:
       Name  Flags
      curve  

  public static java.math.BigInteger[] getSi(int, int, java.math.BigInteger);
    descriptor: (IILjava/math/BigInteger;)[Ljava/math/BigInteger;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // int fieldSize
        start local 1 // int curveA
        start local 2 // java.math.BigInteger cofactor
         0: .line 565
            iload 1 /* curveA */
            invokestatic org.bouncycastle.math.ec.Tnaf.getMu:(I)B
            istore 3 /* mu */
        start local 3 // byte mu
         1: .line 566
            aload 2 /* cofactor */
            invokestatic org.bouncycastle.math.ec.Tnaf.getShiftsForCofactor:(Ljava/math/BigInteger;)I
            istore 4 /* shifts */
        start local 4 // int shifts
         2: .line 567
            iload 0 /* fieldSize */
            iconst_3
            iadd
            iload 1 /* curveA */
            isub
            istore 5 /* index */
        start local 5 // int index
         3: .line 568
            iload 3 /* mu */
            iload 5 /* index */
            iconst_0
            invokestatic org.bouncycastle.math.ec.Tnaf.getLucas:(BIZ)[Ljava/math/BigInteger;
            astore 6 /* ui */
        start local 6 // java.math.BigInteger[] ui
         4: .line 569
            iload 3 /* mu */
            iconst_1
            if_icmpne 7
         5: .line 571
            aload 6 /* ui */
            iconst_0
            aload 6 /* ui */
            iconst_0
            aaload
            invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
            aastore
         6: .line 572
            aload 6 /* ui */
            iconst_1
            aload 6 /* ui */
            iconst_1
            aaload
            invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
            aastore
         7: .line 575
      StackMap locals: int int java.math.BigInteger int int int java.math.BigInteger[]
      StackMap stack:
            getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
            aload 6 /* ui */
            iconst_1
            aaload
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            iload 4 /* shifts */
            invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
            astore 7 /* dividend0 */
        start local 7 // java.math.BigInteger dividend0
         8: .line 576
            getstatic org.bouncycastle.math.ec.ECConstants.ONE:Ljava/math/BigInteger;
            aload 6 /* ui */
            iconst_0
            aaload
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            iload 4 /* shifts */
            invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
            astore 8 /* dividend1 */
        start local 8 // java.math.BigInteger dividend1
         9: .line 578
            iconst_2
            anewarray java.math.BigInteger
            dup
            iconst_0
            aload 7 /* dividend0 */
            aastore
            dup
            iconst_1
            aload 8 /* dividend1 */
            aastore
            areturn
        end local 8 // java.math.BigInteger dividend1
        end local 7 // java.math.BigInteger dividend0
        end local 6 // java.math.BigInteger[] ui
        end local 5 // int index
        end local 4 // int shifts
        end local 3 // byte mu
        end local 2 // java.math.BigInteger cofactor
        end local 1 // int curveA
        end local 0 // int fieldSize
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0  fieldSize  I
            0   10     1     curveA  I
            0   10     2   cofactor  Ljava/math/BigInteger;
            1   10     3         mu  B
            2   10     4     shifts  I
            3   10     5      index  I
            4   10     6         ui  [Ljava/math/BigInteger;
            8   10     7  dividend0  Ljava/math/BigInteger;
            9   10     8  dividend1  Ljava/math/BigInteger;
    MethodParameters:
           Name  Flags
      fieldSize  
      curveA     
      cofactor   

  protected static int getShiftsForCofactor(java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;)I
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.math.BigInteger h
         0: .line 583
            aload 0 /* h */
            ifnull 5
         1: .line 585
            aload 0 /* h */
            getstatic org.bouncycastle.math.ec.ECConstants.TWO:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ifeq 3
         2: .line 587
            iconst_1
            ireturn
         3: .line 589
      StackMap locals:
      StackMap stack:
            aload 0 /* h */
            getstatic org.bouncycastle.math.ec.ECConstants.FOUR:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 591
            iconst_2
            ireturn
         5: .line 595
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "h (Cofactor) must be 2 or 4"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // java.math.BigInteger h
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0     h  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      h     

  public static org.bouncycastle.math.ec.ZTauElement partModReduction(java.math.BigInteger, int, byte, java.math.BigInteger[], byte, byte);
    descriptor: (Ljava/math/BigInteger;IB[Ljava/math/BigInteger;BB)Lorg/bouncycastle/math/ec/ZTauElement;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=14, args_size=6
        start local 0 // java.math.BigInteger k
        start local 1 // int m
        start local 2 // byte a
        start local 3 // java.math.BigInteger[] s
        start local 4 // byte mu
        start local 5 // byte c
         0: .line 616
            iload 4 /* mu */
            iconst_1
            if_icmpne 3
         1: .line 618
            aload 3 /* s */
            iconst_0
            aaload
            aload 3 /* s */
            iconst_1
            aaload
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 6 /* d0 */
        start local 6 // java.math.BigInteger d0
         2: .line 619
            goto 4
        end local 6 // java.math.BigInteger d0
         3: .line 622
      StackMap locals:
      StackMap stack:
            aload 3 /* s */
            iconst_0
            aaload
            aload 3 /* s */
            iconst_1
            aaload
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 6 /* d0 */
        start local 6 // java.math.BigInteger d0
         4: .line 625
      StackMap locals: java.math.BigInteger
      StackMap stack:
            iload 4 /* mu */
            iload 1 /* m */
            iconst_1
            invokestatic org.bouncycastle.math.ec.Tnaf.getLucas:(BIZ)[Ljava/math/BigInteger;
            astore 7 /* v */
        start local 7 // java.math.BigInteger[] v
         5: .line 626
            aload 7 /* v */
            iconst_1
            aaload
            astore 8 /* vm */
        start local 8 // java.math.BigInteger vm
         6: .line 629
            aload 0 /* k */
            aload 3 /* s */
            iconst_0
            aaload
            aload 8 /* vm */
            iload 2 /* a */
            iload 1 /* m */
            iload 5 /* c */
         7: .line 628
            invokestatic org.bouncycastle.math.ec.Tnaf.approximateDivisionByN:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;BII)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
            astore 9 /* lambda0 */
        start local 9 // org.bouncycastle.math.ec.SimpleBigDecimal lambda0
         8: .line 632
            aload 0 /* k */
            aload 3 /* s */
            iconst_1
            aaload
            aload 8 /* vm */
            iload 2 /* a */
            iload 1 /* m */
            iload 5 /* c */
         9: .line 631
            invokestatic org.bouncycastle.math.ec.Tnaf.approximateDivisionByN:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;BII)Lorg/bouncycastle/math/ec/SimpleBigDecimal;
            astore 10 /* lambda1 */
        start local 10 // org.bouncycastle.math.ec.SimpleBigDecimal lambda1
        10: .line 634
            aload 9 /* lambda0 */
            aload 10 /* lambda1 */
            iload 4 /* mu */
            invokestatic org.bouncycastle.math.ec.Tnaf.round:(Lorg/bouncycastle/math/ec/SimpleBigDecimal;Lorg/bouncycastle/math/ec/SimpleBigDecimal;B)Lorg/bouncycastle/math/ec/ZTauElement;
            astore 11 /* q */
        start local 11 // org.bouncycastle.math.ec.ZTauElement q
        11: .line 637
            aload 0 /* k */
            aload 6 /* d0 */
            aload 11 /* q */
            getfield org.bouncycastle.math.ec.ZTauElement.u:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
        12: .line 638
            ldc 2
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aload 3 /* s */
            iconst_1
            aaload
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 11 /* q */
            getfield org.bouncycastle.math.ec.ZTauElement.v:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
        13: .line 637
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 12 /* r0 */
        start local 12 // java.math.BigInteger r0
        14: .line 641
            aload 3 /* s */
            iconst_1
            aaload
            aload 11 /* q */
            getfield org.bouncycastle.math.ec.ZTauElement.u:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 3 /* s */
            iconst_0
            aaload
            aload 11 /* q */
            getfield org.bouncycastle.math.ec.ZTauElement.v:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 13 /* r1 */
        start local 13 // java.math.BigInteger r1
        15: .line 643
            new org.bouncycastle.math.ec.ZTauElement
            dup
            aload 12 /* r0 */
            aload 13 /* r1 */
            invokespecial org.bouncycastle.math.ec.ZTauElement.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            areturn
        end local 13 // java.math.BigInteger r1
        end local 12 // java.math.BigInteger r0
        end local 11 // org.bouncycastle.math.ec.ZTauElement q
        end local 10 // org.bouncycastle.math.ec.SimpleBigDecimal lambda1
        end local 9 // org.bouncycastle.math.ec.SimpleBigDecimal lambda0
        end local 8 // java.math.BigInteger vm
        end local 7 // java.math.BigInteger[] v
        end local 6 // java.math.BigInteger d0
        end local 5 // byte c
        end local 4 // byte mu
        end local 3 // java.math.BigInteger[] s
        end local 2 // byte a
        end local 1 // int m
        end local 0 // java.math.BigInteger k
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   16     0        k  Ljava/math/BigInteger;
            0   16     1        m  I
            0   16     2        a  B
            0   16     3        s  [Ljava/math/BigInteger;
            0   16     4       mu  B
            0   16     5        c  B
            2    3     6       d0  Ljava/math/BigInteger;
            4   16     6       d0  Ljava/math/BigInteger;
            5   16     7        v  [Ljava/math/BigInteger;
            6   16     8       vm  Ljava/math/BigInteger;
            8   16     9  lambda0  Lorg/bouncycastle/math/ec/SimpleBigDecimal;
           10   16    10  lambda1  Lorg/bouncycastle/math/ec/SimpleBigDecimal;
           11   16    11        q  Lorg/bouncycastle/math/ec/ZTauElement;
           14   16    12       r0  Ljava/math/BigInteger;
           15   16    13       r1  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      k     
      m     
      a     
      s     
      mu    
      c     

  public static org.bouncycastle.math.ec.ECPoint$AbstractF2m multiplyRTnaf(org.bouncycastle.math.ec.ECPoint$AbstractF2m, java.math.BigInteger);
    descriptor: (Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECPoint$AbstractF2m p
        start local 1 // java.math.BigInteger k
         0: .line 656
            aload 0 /* p */
            invokevirtual org.bouncycastle.math.ec.ECPoint$AbstractF2m.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            checkcast org.bouncycastle.math.ec.ECCurve$AbstractF2m
            astore 2 /* curve */
        start local 2 // org.bouncycastle.math.ec.ECCurve$AbstractF2m curve
         1: .line 657
            aload 2 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.getFieldSize:()I
            istore 3 /* m */
        start local 3 // int m
         2: .line 658
            aload 2 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.getA:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.intValue:()I
            istore 4 /* a */
        start local 4 // int a
         3: .line 659
            iload 4 /* a */
            invokestatic org.bouncycastle.math.ec.Tnaf.getMu:(I)B
            istore 5 /* mu */
        start local 5 // byte mu
         4: .line 660
            aload 2 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.getSi:()[Ljava/math/BigInteger;
            astore 6 /* s */
        start local 6 // java.math.BigInteger[] s
         5: .line 661
            aload 1 /* k */
            iload 3 /* m */
            iload 4 /* a */
            i2b
            aload 6 /* s */
            iload 5 /* mu */
            bipush 10
            invokestatic org.bouncycastle.math.ec.Tnaf.partModReduction:(Ljava/math/BigInteger;IB[Ljava/math/BigInteger;BB)Lorg/bouncycastle/math/ec/ZTauElement;
            astore 7 /* rho */
        start local 7 // org.bouncycastle.math.ec.ZTauElement rho
         6: .line 663
            aload 0 /* p */
            aload 7 /* rho */
            invokestatic org.bouncycastle.math.ec.Tnaf.multiplyTnaf:(Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;Lorg/bouncycastle/math/ec/ZTauElement;)Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
            areturn
        end local 7 // org.bouncycastle.math.ec.ZTauElement rho
        end local 6 // java.math.BigInteger[] s
        end local 5 // byte mu
        end local 4 // int a
        end local 3 // int m
        end local 2 // org.bouncycastle.math.ec.ECCurve$AbstractF2m curve
        end local 1 // java.math.BigInteger k
        end local 0 // org.bouncycastle.math.ec.ECPoint$AbstractF2m p
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0      p  Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
            0    7     1      k  Ljava/math/BigInteger;
            1    7     2  curve  Lorg/bouncycastle/math/ec/ECCurve$AbstractF2m;
            2    7     3      m  I
            3    7     4      a  I
            4    7     5     mu  B
            5    7     6      s  [Ljava/math/BigInteger;
            6    7     7    rho  Lorg/bouncycastle/math/ec/ZTauElement;
    MethodParameters:
      Name  Flags
      p     
      k     

  public static org.bouncycastle.math.ec.ECPoint$AbstractF2m multiplyTnaf(org.bouncycastle.math.ec.ECPoint$AbstractF2m, org.bouncycastle.math.ec.ZTauElement);
    descriptor: (Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;Lorg/bouncycastle/math/ec/ZTauElement;)Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECPoint$AbstractF2m p
        start local 1 // org.bouncycastle.math.ec.ZTauElement lambda
         0: .line 677
            aload 0 /* p */
            invokevirtual org.bouncycastle.math.ec.ECPoint$AbstractF2m.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            checkcast org.bouncycastle.math.ec.ECCurve$AbstractF2m
            astore 2 /* curve */
        start local 2 // org.bouncycastle.math.ec.ECCurve$AbstractF2m curve
         1: .line 678
            aload 2 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.getA:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokestatic org.bouncycastle.math.ec.Tnaf.getMu:(Lorg/bouncycastle/math/ec/ECFieldElement;)B
            istore 3 /* mu */
        start local 3 // byte mu
         2: .line 679
            iload 3 /* mu */
            aload 1 /* lambda */
            invokestatic org.bouncycastle.math.ec.Tnaf.tauAdicNaf:(BLorg/bouncycastle/math/ec/ZTauElement;)[B
            astore 4 /* u */
        start local 4 // byte[] u
         3: .line 681
            aload 0 /* p */
            aload 4 /* u */
            invokestatic org.bouncycastle.math.ec.Tnaf.multiplyFromTnaf:(Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;[B)Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
            astore 5 /* q */
        start local 5 // org.bouncycastle.math.ec.ECPoint$AbstractF2m q
         4: .line 683
            aload 5 /* q */
            areturn
        end local 5 // org.bouncycastle.math.ec.ECPoint$AbstractF2m q
        end local 4 // byte[] u
        end local 3 // byte mu
        end local 2 // org.bouncycastle.math.ec.ECCurve$AbstractF2m curve
        end local 1 // org.bouncycastle.math.ec.ZTauElement lambda
        end local 0 // org.bouncycastle.math.ec.ECPoint$AbstractF2m p
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0       p  Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
            0    5     1  lambda  Lorg/bouncycastle/math/ec/ZTauElement;
            1    5     2   curve  Lorg/bouncycastle/math/ec/ECCurve$AbstractF2m;
            2    5     3      mu  B
            3    5     4       u  [B
            4    5     5       q  Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
    MethodParameters:
        Name  Flags
      p       
      lambda  

  public static org.bouncycastle.math.ec.ECPoint$AbstractF2m multiplyFromTnaf(org.bouncycastle.math.ec.ECPoint$AbstractF2m, byte[]);
    descriptor: (Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;[B)Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=9, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECPoint$AbstractF2m p
        start local 1 // byte[] u
         0: .line 697
            aload 0 /* p */
            invokevirtual org.bouncycastle.math.ec.ECPoint$AbstractF2m.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            astore 2 /* curve */
        start local 2 // org.bouncycastle.math.ec.ECCurve curve
         1: .line 698
            aload 2 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getInfinity:()Lorg/bouncycastle/math/ec/ECPoint;
            checkcast org.bouncycastle.math.ec.ECPoint$AbstractF2m
            astore 3 /* q */
        start local 3 // org.bouncycastle.math.ec.ECPoint$AbstractF2m q
         2: .line 699
            aload 0 /* p */
            invokevirtual org.bouncycastle.math.ec.ECPoint$AbstractF2m.negate:()Lorg/bouncycastle/math/ec/ECPoint;
            checkcast org.bouncycastle.math.ec.ECPoint$AbstractF2m
            astore 4 /* pNeg */
        start local 4 // org.bouncycastle.math.ec.ECPoint$AbstractF2m pNeg
         3: .line 700
            iconst_0
            istore 5 /* tauCount */
        start local 5 // int tauCount
         4: .line 701
            aload 1 /* u */
            arraylength
            iconst_1
            isub
            istore 6 /* i */
        start local 6 // int i
         5: goto 16
         6: .line 703
      StackMap locals: org.bouncycastle.math.ec.ECPoint$AbstractF2m byte[] org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECPoint$AbstractF2m org.bouncycastle.math.ec.ECPoint$AbstractF2m int int
      StackMap stack:
            iinc 5 /* tauCount */ 1
         7: .line 704
            aload 1 /* u */
            iload 6 /* i */
            baload
            istore 7 /* ui */
        start local 7 // byte ui
         8: .line 705
            iload 7 /* ui */
            ifeq 15
         9: .line 707
            aload 3 /* q */
            iload 5 /* tauCount */
            invokevirtual org.bouncycastle.math.ec.ECPoint$AbstractF2m.tauPow:(I)Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
            astore 3 /* q */
        10: .line 708
            iconst_0
            istore 5 /* tauCount */
        11: .line 710
            iload 7 /* ui */
            ifle 12
            aload 0 /* p */
            goto 13
      StackMap locals: int
      StackMap stack:
        12: aload 4 /* pNeg */
      StackMap locals:
      StackMap stack: org.bouncycastle.math.ec.ECPoint$AbstractF2m
        13: astore 8 /* x */
        start local 8 // org.bouncycastle.math.ec.ECPoint x
        14: .line 711
            aload 3 /* q */
            aload 8 /* x */
            invokevirtual org.bouncycastle.math.ec.ECPoint$AbstractF2m.add:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
            checkcast org.bouncycastle.math.ec.ECPoint$AbstractF2m
            astore 3 /* q */
        end local 8 // org.bouncycastle.math.ec.ECPoint x
        end local 7 // byte ui
        15: .line 701
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ -1
      StackMap locals:
      StackMap stack:
        16: iload 6 /* i */
            ifge 6
        end local 6 // int i
        17: .line 714
            iload 5 /* tauCount */
            ifle 19
        18: .line 716
            aload 3 /* q */
            iload 5 /* tauCount */
            invokevirtual org.bouncycastle.math.ec.ECPoint$AbstractF2m.tauPow:(I)Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
            astore 3 /* q */
        19: .line 718
      StackMap locals:
      StackMap stack:
            aload 3 /* q */
            areturn
        end local 5 // int tauCount
        end local 4 // org.bouncycastle.math.ec.ECPoint$AbstractF2m pNeg
        end local 3 // org.bouncycastle.math.ec.ECPoint$AbstractF2m q
        end local 2 // org.bouncycastle.math.ec.ECCurve curve
        end local 1 // byte[] u
        end local 0 // org.bouncycastle.math.ec.ECPoint$AbstractF2m p
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   20     0         p  Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
            0   20     1         u  [B
            1   20     2     curve  Lorg/bouncycastle/math/ec/ECCurve;
            2   20     3         q  Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
            3   20     4      pNeg  Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
            4   20     5  tauCount  I
            5   17     6         i  I
            8   15     7        ui  B
           14   15     8         x  Lorg/bouncycastle/math/ec/ECPoint;
    MethodParameters:
      Name  Flags
      p     
      u     

  public static byte[] tauAdicWNaf(byte, org.bouncycastle.math.ec.ZTauElement, byte, java.math.BigInteger, java.math.BigInteger, org.bouncycastle.math.ec.ZTauElement[]);
    descriptor: (BLorg/bouncycastle/math/ec/ZTauElement;BLjava/math/BigInteger;Ljava/math/BigInteger;[Lorg/bouncycastle/math/ec/ZTauElement;)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=17, args_size=6
        start local 0 // byte mu
        start local 1 // org.bouncycastle.math.ec.ZTauElement lambda
        start local 2 // byte width
        start local 3 // java.math.BigInteger pow2w
        start local 4 // java.math.BigInteger tw
        start local 5 // org.bouncycastle.math.ec.ZTauElement[] alpha
         0: .line 738
            iload 0 /* mu */
            iconst_1
            if_icmpeq 2
            iload 0 /* mu */
            iconst_m1
            if_icmpeq 2
         1: .line 740
            new java.lang.IllegalArgumentException
            dup
            ldc "mu must be 1 or -1"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 743
      StackMap locals:
      StackMap stack:
            iload 0 /* mu */
            aload 1 /* lambda */
            invokestatic org.bouncycastle.math.ec.Tnaf.norm:(BLorg/bouncycastle/math/ec/ZTauElement;)Ljava/math/BigInteger;
            astore 6 /* norm */
        start local 6 // java.math.BigInteger norm
         3: .line 746
            aload 6 /* norm */
            invokevirtual java.math.BigInteger.bitLength:()I
            istore 7 /* log2Norm */
        start local 7 // int log2Norm
         4: .line 749
            iload 7 /* log2Norm */
            bipush 30
            if_icmple 5
            iload 7 /* log2Norm */
            iconst_4
            iadd
            iload 2 /* width */
            iadd
            goto 6
      StackMap locals: java.math.BigInteger int
      StackMap stack:
         5: bipush 34
            iload 2 /* width */
            iadd
      StackMap locals:
      StackMap stack: int
         6: istore 8 /* maxLength */
        start local 8 // int maxLength
         7: .line 752
            iload 8 /* maxLength */
            newarray 8
            astore 9 /* u */
        start local 9 // byte[] u
         8: .line 755
            aload 3 /* pow2w */
            iconst_1
            invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
            astore 10 /* pow2wMin1 */
        start local 10 // java.math.BigInteger pow2wMin1
         9: .line 758
            aload 1 /* lambda */
            getfield org.bouncycastle.math.ec.ZTauElement.u:Ljava/math/BigInteger;
            astore 11 /* r0 */
        start local 11 // java.math.BigInteger r0
        10: .line 759
            aload 1 /* lambda */
            getfield org.bouncycastle.math.ec.ZTauElement.v:Ljava/math/BigInteger;
            astore 12 /* r1 */
        start local 12 // java.math.BigInteger r1
        11: .line 760
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        12: .line 763
            goto 40
        13: .line 766
      StackMap locals: int org.bouncycastle.math.ec.ZTauElement int java.math.BigInteger java.math.BigInteger org.bouncycastle.math.ec.ZTauElement[] java.math.BigInteger int int byte[] java.math.BigInteger java.math.BigInteger java.math.BigInteger int
      StackMap stack:
            aload 11 /* r0 */
            iconst_0
            invokevirtual java.math.BigInteger.testBit:(I)Z
            ifeq 32
        14: .line 770
            aload 11 /* r0 */
            aload 12 /* r1 */
            aload 4 /* tw */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 3 /* pow2w */
            invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
        15: .line 769
            astore 14 /* uUnMod */
        start local 14 // java.math.BigInteger uUnMod
        16: .line 774
            aload 14 /* uUnMod */
            aload 10 /* pow2wMin1 */
            invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
            iflt 19
        17: .line 776
            aload 14 /* uUnMod */
            aload 3 /* pow2w */
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.intValue:()I
            i2b
            istore 15 /* uLocal */
        start local 15 // byte uLocal
        18: .line 777
            goto 20
        end local 15 // byte uLocal
        19: .line 780
      StackMap locals: java.math.BigInteger
      StackMap stack:
            aload 14 /* uUnMod */
            invokevirtual java.math.BigInteger.intValue:()I
            i2b
            istore 15 /* uLocal */
        start local 15 // byte uLocal
        20: .line 784
      StackMap locals: int
      StackMap stack:
            aload 9 /* u */
            iload 13 /* i */
            iload 15 /* uLocal */
            bastore
        21: .line 785
            iconst_1
            istore 16 /* s */
        start local 16 // boolean s
        22: .line 786
            iload 15 /* uLocal */
            ifge 25
        23: .line 788
            iconst_0
            istore 16 /* s */
        24: .line 789
            iload 15 /* uLocal */
            ineg
            i2b
            istore 15 /* uLocal */
        25: .line 793
      StackMap locals: int
      StackMap stack:
            iload 16 /* s */
            ifeq 29
        26: .line 795
            aload 11 /* r0 */
            aload 5 /* alpha */
            iload 15 /* uLocal */
            aaload
            getfield org.bouncycastle.math.ec.ZTauElement.u:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 11 /* r0 */
        27: .line 796
            aload 12 /* r1 */
            aload 5 /* alpha */
            iload 15 /* uLocal */
            aaload
            getfield org.bouncycastle.math.ec.ZTauElement.v:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 12 /* r1 */
        28: .line 797
            goto 33
        29: .line 800
      StackMap locals:
      StackMap stack:
            aload 11 /* r0 */
            aload 5 /* alpha */
            iload 15 /* uLocal */
            aaload
            getfield org.bouncycastle.math.ec.ZTauElement.u:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 11 /* r0 */
        30: .line 801
            aload 12 /* r1 */
            aload 5 /* alpha */
            iload 15 /* uLocal */
            aaload
            getfield org.bouncycastle.math.ec.ZTauElement.v:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 12 /* r1 */
        end local 16 // boolean s
        end local 15 // byte uLocal
        end local 14 // java.math.BigInteger uUnMod
        31: .line 803
            goto 33
        32: .line 806
      StackMap locals:
      StackMap stack:
            aload 9 /* u */
            iload 13 /* i */
            iconst_0
            bastore
        33: .line 809
      StackMap locals:
      StackMap stack:
            aload 11 /* r0 */
            astore 14 /* t */
        start local 14 // java.math.BigInteger t
        34: .line 811
            iload 0 /* mu */
            iconst_1
            if_icmpne 37
        35: .line 813
            aload 12 /* r1 */
            aload 11 /* r0 */
            iconst_1
            invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 11 /* r0 */
        36: .line 814
            goto 38
        37: .line 818
      StackMap locals: java.math.BigInteger
      StackMap stack:
            aload 12 /* r1 */
            aload 11 /* r0 */
            iconst_1
            invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 11 /* r0 */
        38: .line 820
      StackMap locals:
      StackMap stack:
            aload 14 /* t */
            iconst_1
            invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
            astore 12 /* r1 */
        39: .line 821
            iinc 13 /* i */ 1
        end local 14 // java.math.BigInteger t
        40: .line 763
      StackMap locals:
      StackMap stack:
            aload 11 /* r0 */
            getstatic org.bouncycastle.math.ec.ECConstants.ZERO:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ifeq 13
            aload 12 /* r1 */
            getstatic org.bouncycastle.math.ec.ECConstants.ZERO:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ifeq 13
        41: .line 823
            aload 9 /* u */
            areturn
        end local 13 // int i
        end local 12 // java.math.BigInteger r1
        end local 11 // java.math.BigInteger r0
        end local 10 // java.math.BigInteger pow2wMin1
        end local 9 // byte[] u
        end local 8 // int maxLength
        end local 7 // int log2Norm
        end local 6 // java.math.BigInteger norm
        end local 5 // org.bouncycastle.math.ec.ZTauElement[] alpha
        end local 4 // java.math.BigInteger tw
        end local 3 // java.math.BigInteger pow2w
        end local 2 // byte width
        end local 1 // org.bouncycastle.math.ec.ZTauElement lambda
        end local 0 // byte mu
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   42     0         mu  B
            0   42     1     lambda  Lorg/bouncycastle/math/ec/ZTauElement;
            0   42     2      width  B
            0   42     3      pow2w  Ljava/math/BigInteger;
            0   42     4         tw  Ljava/math/BigInteger;
            0   42     5      alpha  [Lorg/bouncycastle/math/ec/ZTauElement;
            3   42     6       norm  Ljava/math/BigInteger;
            4   42     7   log2Norm  I
            7   42     8  maxLength  I
            8   42     9          u  [B
            9   42    10  pow2wMin1  Ljava/math/BigInteger;
           10   42    11         r0  Ljava/math/BigInteger;
           11   42    12         r1  Ljava/math/BigInteger;
           12   42    13          i  I
           16   31    14     uUnMod  Ljava/math/BigInteger;
           18   19    15     uLocal  B
           20   31    15     uLocal  B
           22   31    16          s  Z
           34   40    14          t  Ljava/math/BigInteger;
    MethodParameters:
        Name  Flags
      mu      
      lambda  
      width   
      pow2w   
      tw      
      alpha   

  public static org.bouncycastle.math.ec.ECPoint$AbstractF2m[] getPreComp(org.bouncycastle.math.ec.ECPoint$AbstractF2m, byte);
    descriptor: (Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;B)[Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECPoint$AbstractF2m p
        start local 1 // byte a
         0: .line 834
            iload 1 /* a */
            ifne 1
            getstatic org.bouncycastle.math.ec.Tnaf.alpha0Tnaf:[[B
            goto 2
      StackMap locals:
      StackMap stack:
         1: getstatic org.bouncycastle.math.ec.Tnaf.alpha1Tnaf:[[B
      StackMap locals:
      StackMap stack: byte[][]
         2: astore 2 /* alphaTnaf */
        start local 2 // byte[][] alphaTnaf
         3: .line 836
            aload 2 /* alphaTnaf */
            arraylength
            iconst_1
            iadd
            iconst_1
            iushr
            anewarray org.bouncycastle.math.ec.ECPoint$AbstractF2m
            astore 3 /* pu */
        start local 3 // org.bouncycastle.math.ec.ECPoint$AbstractF2m[] pu
         4: .line 837
            aload 3 /* pu */
            iconst_0
            aload 0 /* p */
            aastore
         5: .line 839
            aload 2 /* alphaTnaf */
            arraylength
            istore 4 /* precompLen */
        start local 4 // int precompLen
         6: .line 840
            iconst_3
            istore 5 /* i */
        start local 5 // int i
         7: goto 10
         8: .line 842
      StackMap locals: org.bouncycastle.math.ec.ECPoint$AbstractF2m int byte[][] org.bouncycastle.math.ec.ECPoint$AbstractF2m[] int int
      StackMap stack:
            aload 3 /* pu */
            iload 5 /* i */
            iconst_1
            iushr
            aload 0 /* p */
            aload 2 /* alphaTnaf */
            iload 5 /* i */
            aaload
            invokestatic org.bouncycastle.math.ec.Tnaf.multiplyFromTnaf:(Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;[B)Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
            aastore
         9: .line 840
            iinc 5 /* i */ 2
      StackMap locals:
      StackMap stack:
        10: iload 5 /* i */
            iload 4 /* precompLen */
            if_icmplt 8
        end local 5 // int i
        11: .line 845
            aload 0 /* p */
            invokevirtual org.bouncycastle.math.ec.ECPoint$AbstractF2m.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            aload 3 /* pu */
            invokevirtual org.bouncycastle.math.ec.ECCurve.normalizeAll:([Lorg/bouncycastle/math/ec/ECPoint;)V
        12: .line 847
            aload 3 /* pu */
            areturn
        end local 4 // int precompLen
        end local 3 // org.bouncycastle.math.ec.ECPoint$AbstractF2m[] pu
        end local 2 // byte[][] alphaTnaf
        end local 1 // byte a
        end local 0 // org.bouncycastle.math.ec.ECPoint$AbstractF2m p
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0           p  Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
            0   13     1           a  B
            3   13     2   alphaTnaf  [[B
            4   13     3          pu  [Lorg/bouncycastle/math/ec/ECPoint$AbstractF2m;
            6   13     4  precompLen  I
            7   11     5           i  I
    MethodParameters:
      Name  Flags
      p     
      a     
}
SourceFile: "Tnaf.java"
InnerClasses:
  public abstract AbstractF2m = org.bouncycastle.math.ec.ECCurve$AbstractF2m of org.bouncycastle.math.ec.ECCurve
  public abstract AbstractF2m = org.bouncycastle.math.ec.ECPoint$AbstractF2m of org.bouncycastle.math.ec.ECPoint