public class org.bouncycastle.math.ec.ECAlgorithms
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.math.ec.ECAlgorithms
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECAlgorithms this
         0: .line 10
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.bouncycastle.math.ec.ECAlgorithms this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECAlgorithms;

  public static boolean isF2mCurve(org.bouncycastle.math.ec.ECCurve);
    descriptor: (Lorg/bouncycastle/math/ec/ECCurve;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECCurve c
         0: .line 14
            aload 0 /* c */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getField:()Lorg/bouncycastle/math/field/FiniteField;
            invokestatic org.bouncycastle.math.ec.ECAlgorithms.isF2mField:(Lorg/bouncycastle/math/field/FiniteField;)Z
            ireturn
        end local 0 // org.bouncycastle.math.ec.ECCurve c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     c  Lorg/bouncycastle/math/ec/ECCurve;
    MethodParameters:
      Name  Flags
      c     

  public static boolean isF2mField(org.bouncycastle.math.field.FiniteField);
    descriptor: (Lorg/bouncycastle/math/field/FiniteField;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.field.FiniteField field
         0: .line 19
            aload 0 /* field */
            invokeinterface org.bouncycastle.math.field.FiniteField.getDimension:()I
            iconst_1
            if_icmple 3
            aload 0 /* field */
            invokeinterface org.bouncycastle.math.field.FiniteField.getCharacteristic:()Ljava/math/BigInteger;
            getstatic org.bouncycastle.math.ec.ECConstants.TWO:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ifeq 3
         1: .line 20
            aload 0 /* field */
            instanceof org.bouncycastle.math.field.PolynomialExtensionField
            ifeq 3
         2: .line 19
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 0 // org.bouncycastle.math.field.FiniteField field
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0  field  Lorg/bouncycastle/math/field/FiniteField;
    MethodParameters:
       Name  Flags
      field  

  public static boolean isFpCurve(org.bouncycastle.math.ec.ECCurve);
    descriptor: (Lorg/bouncycastle/math/ec/ECCurve;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECCurve c
         0: .line 25
            aload 0 /* c */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getField:()Lorg/bouncycastle/math/field/FiniteField;
            invokestatic org.bouncycastle.math.ec.ECAlgorithms.isFpField:(Lorg/bouncycastle/math/field/FiniteField;)Z
            ireturn
        end local 0 // org.bouncycastle.math.ec.ECCurve c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     c  Lorg/bouncycastle/math/ec/ECCurve;
    MethodParameters:
      Name  Flags
      c     

  public static boolean isFpField(org.bouncycastle.math.field.FiniteField);
    descriptor: (Lorg/bouncycastle/math/field/FiniteField;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.field.FiniteField field
         0: .line 30
            aload 0 /* field */
            invokeinterface org.bouncycastle.math.field.FiniteField.getDimension:()I
            iconst_1
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.bouncycastle.math.field.FiniteField field
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0  field  Lorg/bouncycastle/math/field/FiniteField;
    MethodParameters:
       Name  Flags
      field  

  public static org.bouncycastle.math.ec.ECPoint sumOfMultiplies(org.bouncycastle.math.ec.ECPoint[], java.math.BigInteger[]);
    descriptor: ([Lorg/bouncycastle/math/ec/ECPoint;[Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECPoint[] ps
        start local 1 // java.math.BigInteger[] ks
         0: .line 35
            aload 0 /* ps */
            ifnull 1
            aload 1 /* ks */
            ifnull 1
            aload 0 /* ps */
            arraylength
            aload 1 /* ks */
            arraylength
            if_icmpne 1
            aload 0 /* ps */
            arraylength
            iconst_1
            if_icmpge 2
         1: .line 37
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "point and scalar arrays should be non-null, and of equal, non-zero, length"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 40
      StackMap locals:
      StackMap stack:
            aload 0 /* ps */
            arraylength
            istore 2 /* count */
        start local 2 // int count
         3: .line 41
            iload 2 /* count */
            tableswitch { // 1 - 2
                    1: 4
                    2: 5
              default: 6
          }
         4: .line 44
      StackMap locals: int
      StackMap stack:
            aload 0 /* ps */
            iconst_0
            aaload
            aload 1 /* ks */
            iconst_0
            aaload
            invokevirtual org.bouncycastle.math.ec.ECPoint.multiply:(Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
            areturn
         5: .line 46
      StackMap locals:
      StackMap stack:
            aload 0 /* ps */
            iconst_0
            aaload
            aload 1 /* ks */
            iconst_0
            aaload
            aload 0 /* ps */
            iconst_1
            aaload
            aload 1 /* ks */
            iconst_1
            aaload
            invokestatic org.bouncycastle.math.ec.ECAlgorithms.sumOfTwoMultiplies:(Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
            areturn
         6: .line 51
      StackMap locals:
      StackMap stack:
            aload 0 /* ps */
            iconst_0
            aaload
            astore 3 /* p */
        start local 3 // org.bouncycastle.math.ec.ECPoint p
         7: .line 52
            aload 3 /* p */
            invokevirtual org.bouncycastle.math.ec.ECPoint.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            astore 4 /* c */
        start local 4 // org.bouncycastle.math.ec.ECCurve c
         8: .line 54
            iload 2 /* count */
            anewarray org.bouncycastle.math.ec.ECPoint
            astore 5 /* imported */
        start local 5 // org.bouncycastle.math.ec.ECPoint[] imported
         9: .line 55
            aload 5 /* imported */
            iconst_0
            aload 3 /* p */
            aastore
        10: .line 56
            iconst_1
            istore 6 /* i */
        start local 6 // int i
        11: goto 14
        12: .line 58
      StackMap locals: org.bouncycastle.math.ec.ECPoint[] java.math.BigInteger[] int org.bouncycastle.math.ec.ECPoint org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECPoint[] int
      StackMap stack:
            aload 5 /* imported */
            iload 6 /* i */
            aload 4 /* c */
            aload 0 /* ps */
            iload 6 /* i */
            aaload
            invokestatic org.bouncycastle.math.ec.ECAlgorithms.importPoint:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
            aastore
        13: .line 56
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 6 /* i */
            iload 2 /* count */
            if_icmplt 12
        end local 6 // int i
        15: .line 61
            aload 4 /* c */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getEndomorphism:()Lorg/bouncycastle/math/ec/endo/ECEndomorphism;
            astore 6 /* endomorphism */
        start local 6 // org.bouncycastle.math.ec.endo.ECEndomorphism endomorphism
        16: .line 62
            aload 6 /* endomorphism */
            instanceof org.bouncycastle.math.ec.endo.GLVEndomorphism
            ifeq 18
        17: .line 64
            aload 5 /* imported */
            aload 1 /* ks */
            aload 6 /* endomorphism */
            checkcast org.bouncycastle.math.ec.endo.GLVEndomorphism
            invokestatic org.bouncycastle.math.ec.ECAlgorithms.implSumOfMultipliesGLV:([Lorg/bouncycastle/math/ec/ECPoint;[Ljava/math/BigInteger;Lorg/bouncycastle/math/ec/endo/GLVEndomorphism;)Lorg/bouncycastle/math/ec/ECPoint;
            invokestatic org.bouncycastle.math.ec.ECAlgorithms.implCheckResult:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        18: .line 67
      StackMap locals: org.bouncycastle.math.ec.ECPoint[] java.math.BigInteger[] int org.bouncycastle.math.ec.ECPoint org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECPoint[] org.bouncycastle.math.ec.endo.ECEndomorphism
      StackMap stack:
            aload 5 /* imported */
            aload 1 /* ks */
            invokestatic org.bouncycastle.math.ec.ECAlgorithms.implSumOfMultiplies:([Lorg/bouncycastle/math/ec/ECPoint;[Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
            invokestatic org.bouncycastle.math.ec.ECAlgorithms.implCheckResult:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        end local 6 // org.bouncycastle.math.ec.endo.ECEndomorphism endomorphism
        end local 5 // org.bouncycastle.math.ec.ECPoint[] imported
        end local 4 // org.bouncycastle.math.ec.ECCurve c
        end local 3 // org.bouncycastle.math.ec.ECPoint p
        end local 2 // int count
        end local 1 // java.math.BigInteger[] ks
        end local 0 // org.bouncycastle.math.ec.ECPoint[] ps
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   19     0            ps  [Lorg/bouncycastle/math/ec/ECPoint;
            0   19     1            ks  [Ljava/math/BigInteger;
            3   19     2         count  I
            7   19     3             p  Lorg/bouncycastle/math/ec/ECPoint;
            8   19     4             c  Lorg/bouncycastle/math/ec/ECCurve;
            9   19     5      imported  [Lorg/bouncycastle/math/ec/ECPoint;
           11   15     6             i  I
           16   19     6  endomorphism  Lorg/bouncycastle/math/ec/endo/ECEndomorphism;
    MethodParameters:
      Name  Flags
      ps    
      ks    

  public static org.bouncycastle.math.ec.ECPoint sumOfTwoMultiplies(org.bouncycastle.math.ec.ECPoint, java.math.BigInteger, org.bouncycastle.math.ec.ECPoint, java.math.BigInteger);
    descriptor: (Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // org.bouncycastle.math.ec.ECPoint P
        start local 1 // java.math.BigInteger a
        start local 2 // org.bouncycastle.math.ec.ECPoint Q
        start local 3 // java.math.BigInteger b
         0: .line 73
            aload 0 /* P */
            invokevirtual org.bouncycastle.math.ec.ECPoint.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            astore 4 /* cp */
        start local 4 // org.bouncycastle.math.ec.ECCurve cp
         1: .line 74
            aload 4 /* cp */
            aload 2 /* Q */
            invokestatic org.bouncycastle.math.ec.ECAlgorithms.importPoint:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
            astore 2 /* Q */
         2: .line 77
            aload 4 /* cp */
            instanceof org.bouncycastle.math.ec.ECCurve$AbstractF2m
            ifeq 6
         3: .line 79
            aload 4 /* cp */
            checkcast org.bouncycastle.math.ec.ECCurve$AbstractF2m
            astore 5 /* f2mCurve */
        start local 5 // org.bouncycastle.math.ec.ECCurve$AbstractF2m f2mCurve
         4: .line 80
            aload 5 /* f2mCurve */
            invokevirtual org.bouncycastle.math.ec.ECCurve$AbstractF2m.isKoblitz:()Z
            ifeq 6
         5: .line 82
            aload 0 /* P */
            aload 1 /* a */
            invokevirtual org.bouncycastle.math.ec.ECPoint.multiply:(Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
            aload 2 /* Q */
            aload 3 /* b */
            invokevirtual org.bouncycastle.math.ec.ECPoint.multiply:(Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
            invokevirtual org.bouncycastle.math.ec.ECPoint.add:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
            invokestatic org.bouncycastle.math.ec.ECAlgorithms.implCheckResult:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        end local 5 // org.bouncycastle.math.ec.ECCurve$AbstractF2m f2mCurve
         6: .line 86
      StackMap locals: org.bouncycastle.math.ec.ECCurve
      StackMap stack:
            aload 4 /* cp */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getEndomorphism:()Lorg/bouncycastle/math/ec/endo/ECEndomorphism;
            astore 5 /* endomorphism */
        start local 5 // org.bouncycastle.math.ec.endo.ECEndomorphism endomorphism
         7: .line 87
            aload 5 /* endomorphism */
            instanceof org.bouncycastle.math.ec.endo.GLVEndomorphism
            ifeq 10
         8: .line 90
            iconst_2
            anewarray org.bouncycastle.math.ec.ECPoint
            dup
            iconst_0
            aload 0 /* P */
            aastore
            dup
            iconst_1
            aload 2 /* Q */
            aastore
            iconst_2
            anewarray java.math.BigInteger
            dup
            iconst_0
            aload 1 /* a */
            aastore
            dup
            iconst_1
            aload 3 /* b */
            aastore
            aload 5 /* endomorphism */
            checkcast org.bouncycastle.math.ec.endo.GLVEndomorphism
            invokestatic org.bouncycastle.math.ec.ECAlgorithms.implSumOfMultipliesGLV:([Lorg/bouncycastle/math/ec/ECPoint;[Ljava/math/BigInteger;Lorg/bouncycastle/math/ec/endo/GLVEndomorphism;)Lorg/bouncycastle/math/ec/ECPoint;
         9: .line 89
            invokestatic org.bouncycastle.math.ec.ECAlgorithms.implCheckResult:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        10: .line 93
      StackMap locals: org.bouncycastle.math.ec.endo.ECEndomorphism
      StackMap stack:
            aload 0 /* P */
            aload 1 /* a */
            aload 2 /* Q */
            aload 3 /* b */
            invokestatic org.bouncycastle.math.ec.ECAlgorithms.implShamirsTrickWNaf:(Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
            invokestatic org.bouncycastle.math.ec.ECAlgorithms.implCheckResult:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        end local 5 // org.bouncycastle.math.ec.endo.ECEndomorphism endomorphism
        end local 4 // org.bouncycastle.math.ec.ECCurve cp
        end local 3 // java.math.BigInteger b
        end local 2 // org.bouncycastle.math.ec.ECPoint Q
        end local 1 // java.math.BigInteger a
        end local 0 // org.bouncycastle.math.ec.ECPoint P
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0             P  Lorg/bouncycastle/math/ec/ECPoint;
            0   11     1             a  Ljava/math/BigInteger;
            0   11     2             Q  Lorg/bouncycastle/math/ec/ECPoint;
            0   11     3             b  Ljava/math/BigInteger;
            1   11     4            cp  Lorg/bouncycastle/math/ec/ECCurve;
            4    6     5      f2mCurve  Lorg/bouncycastle/math/ec/ECCurve$AbstractF2m;
            7   11     5  endomorphism  Lorg/bouncycastle/math/ec/endo/ECEndomorphism;
    MethodParameters:
      Name  Flags
      P     
      a     
      Q     
      b     

  public static org.bouncycastle.math.ec.ECPoint shamirsTrick(org.bouncycastle.math.ec.ECPoint, java.math.BigInteger, org.bouncycastle.math.ec.ECPoint, java.math.BigInteger);
    descriptor: (Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.bouncycastle.math.ec.ECPoint P
        start local 1 // java.math.BigInteger k
        start local 2 // org.bouncycastle.math.ec.ECPoint Q
        start local 3 // java.math.BigInteger l
         0: .line 118
            aload 0 /* P */
            invokevirtual org.bouncycastle.math.ec.ECPoint.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            astore 4 /* cp */
        start local 4 // org.bouncycastle.math.ec.ECCurve cp
         1: .line 119
            aload 4 /* cp */
            aload 2 /* Q */
            invokestatic org.bouncycastle.math.ec.ECAlgorithms.importPoint:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
            astore 2 /* Q */
         2: .line 121
            aload 0 /* P */
            aload 1 /* k */
            aload 2 /* Q */
            aload 3 /* l */
            invokestatic org.bouncycastle.math.ec.ECAlgorithms.implShamirsTrickJsf:(Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
            invokestatic org.bouncycastle.math.ec.ECAlgorithms.implCheckResult:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        end local 4 // org.bouncycastle.math.ec.ECCurve cp
        end local 3 // java.math.BigInteger l
        end local 2 // org.bouncycastle.math.ec.ECPoint Q
        end local 1 // java.math.BigInteger k
        end local 0 // org.bouncycastle.math.ec.ECPoint P
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     P  Lorg/bouncycastle/math/ec/ECPoint;
            0    3     1     k  Ljava/math/BigInteger;
            0    3     2     Q  Lorg/bouncycastle/math/ec/ECPoint;
            0    3     3     l  Ljava/math/BigInteger;
            1    3     4    cp  Lorg/bouncycastle/math/ec/ECCurve;
    MethodParameters:
      Name  Flags
      P     
      k     
      Q     
      l     

  public static org.bouncycastle.math.ec.ECPoint importPoint(org.bouncycastle.math.ec.ECCurve, org.bouncycastle.math.ec.ECPoint);
    descriptor: (Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECCurve c
        start local 1 // org.bouncycastle.math.ec.ECPoint p
         0: .line 126
            aload 1 /* p */
            invokevirtual org.bouncycastle.math.ec.ECPoint.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            astore 2 /* cp */
        start local 2 // org.bouncycastle.math.ec.ECCurve cp
         1: .line 127
            aload 0 /* c */
            aload 2 /* cp */
            invokevirtual org.bouncycastle.math.ec.ECCurve.equals:(Lorg/bouncycastle/math/ec/ECCurve;)Z
            ifne 3
         2: .line 129
            new java.lang.IllegalArgumentException
            dup
            ldc "Point must be on the same curve"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 131
      StackMap locals: org.bouncycastle.math.ec.ECCurve
      StackMap stack:
            aload 0 /* c */
            aload 1 /* p */
            invokevirtual org.bouncycastle.math.ec.ECCurve.importPoint:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        end local 2 // org.bouncycastle.math.ec.ECCurve cp
        end local 1 // org.bouncycastle.math.ec.ECPoint p
        end local 0 // org.bouncycastle.math.ec.ECCurve c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     c  Lorg/bouncycastle/math/ec/ECCurve;
            0    4     1     p  Lorg/bouncycastle/math/ec/ECPoint;
            1    4     2    cp  Lorg/bouncycastle/math/ec/ECCurve;
    MethodParameters:
      Name  Flags
      c     
      p     

  public static void montgomeryTrick(org.bouncycastle.math.ec.ECFieldElement[], int, int);
    descriptor: ([Lorg/bouncycastle/math/ec/ECFieldElement;II)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.bouncycastle.math.ec.ECFieldElement[] zs
        start local 1 // int off
        start local 2 // int len
         0: .line 136
            aload 0 /* zs */
            iload 1 /* off */
            iload 2 /* len */
            aconst_null
            invokestatic org.bouncycastle.math.ec.ECAlgorithms.montgomeryTrick:([Lorg/bouncycastle/math/ec/ECFieldElement;IILorg/bouncycastle/math/ec/ECFieldElement;)V
         1: .line 137
            return
        end local 2 // int len
        end local 1 // int off
        end local 0 // org.bouncycastle.math.ec.ECFieldElement[] zs
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0    zs  [Lorg/bouncycastle/math/ec/ECFieldElement;
            0    2     1   off  I
            0    2     2   len  I
    MethodParameters:
      Name  Flags
      zs    
      off   
      len   

  public static void montgomeryTrick(org.bouncycastle.math.ec.ECFieldElement[], int, int, org.bouncycastle.math.ec.ECFieldElement);
    descriptor: ([Lorg/bouncycastle/math/ec/ECFieldElement;IILorg/bouncycastle/math/ec/ECFieldElement;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=9, args_size=4
        start local 0 // org.bouncycastle.math.ec.ECFieldElement[] zs
        start local 1 // int off
        start local 2 // int len
        start local 3 // org.bouncycastle.math.ec.ECFieldElement scale
         0: .line 148
            iload 2 /* len */
            anewarray org.bouncycastle.math.ec.ECFieldElement
            astore 4 /* c */
        start local 4 // org.bouncycastle.math.ec.ECFieldElement[] c
         1: .line 149
            aload 4 /* c */
            iconst_0
            aload 0 /* zs */
            iload 1 /* off */
            aaload
            aastore
         2: .line 151
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: .line 152
            goto 5
         4: .line 154
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement[] int
      StackMap stack:
            aload 4 /* c */
            iload 5 /* i */
            aload 4 /* c */
            iload 5 /* i */
            iconst_1
            isub
            aaload
            aload 0 /* zs */
            iload 1 /* off */
            iload 5 /* i */
            iadd
            aaload
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aastore
         5: .line 152
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
            iload 5 /* i */
            iload 2 /* len */
            if_icmplt 4
         6: .line 157
            iinc 5 /* i */ -1
         7: .line 159
            aload 3 /* scale */
            ifnull 9
         8: .line 161
            aload 4 /* c */
            iload 5 /* i */
            aload 4 /* c */
            iload 5 /* i */
            aaload
            aload 3 /* scale */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aastore
         9: .line 164
      StackMap locals:
      StackMap stack:
            aload 4 /* c */
            iload 5 /* i */
            aaload
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.invert:()Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 6 /* u */
        start local 6 // org.bouncycastle.math.ec.ECFieldElement u
        10: .line 166
            goto 15
        11: .line 168
      StackMap locals: org.bouncycastle.math.ec.ECFieldElement
      StackMap stack:
            iload 1 /* off */
            iload 5 /* i */
            iinc 5 /* i */ -1
            iadd
            istore 7 /* j */
        start local 7 // int j
        12: .line 169
            aload 0 /* zs */
            iload 7 /* j */
            aaload
            astore 8 /* tmp */
        start local 8 // org.bouncycastle.math.ec.ECFieldElement tmp
        13: .line 170
            aload 0 /* zs */
            iload 7 /* j */
            aload 4 /* c */
            iload 5 /* i */
            aaload
            aload 6 /* u */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aastore
        14: .line 171
            aload 6 /* u */
            aload 8 /* tmp */
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.multiply:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECFieldElement;
            astore 6 /* u */
        end local 8 // org.bouncycastle.math.ec.ECFieldElement tmp
        end local 7 // int j
        15: .line 166
      StackMap locals:
      StackMap stack:
            iload 5 /* i */
            ifgt 11
        16: .line 174
            aload 0 /* zs */
            iload 1 /* off */
            aload 6 /* u */
            aastore
        17: .line 175
            return
        end local 6 // org.bouncycastle.math.ec.ECFieldElement u
        end local 5 // int i
        end local 4 // org.bouncycastle.math.ec.ECFieldElement[] c
        end local 3 // org.bouncycastle.math.ec.ECFieldElement scale
        end local 2 // int len
        end local 1 // int off
        end local 0 // org.bouncycastle.math.ec.ECFieldElement[] zs
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   18     0     zs  [Lorg/bouncycastle/math/ec/ECFieldElement;
            0   18     1    off  I
            0   18     2    len  I
            0   18     3  scale  Lorg/bouncycastle/math/ec/ECFieldElement;
            1   18     4      c  [Lorg/bouncycastle/math/ec/ECFieldElement;
            3   18     5      i  I
           10   18     6      u  Lorg/bouncycastle/math/ec/ECFieldElement;
           12   15     7      j  I
           13   15     8    tmp  Lorg/bouncycastle/math/ec/ECFieldElement;
    MethodParameters:
       Name  Flags
      zs     
      off    
      len    
      scale  

  public static org.bouncycastle.math.ec.ECPoint referenceMultiply(org.bouncycastle.math.ec.ECPoint, java.math.BigInteger);
    descriptor: (Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECPoint p
        start local 1 // java.math.BigInteger k
         0: .line 189
            aload 1 /* k */
            invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
            astore 2 /* x */
        start local 2 // java.math.BigInteger x
         1: .line 190
            aload 0 /* p */
            invokevirtual org.bouncycastle.math.ec.ECPoint.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            invokevirtual org.bouncycastle.math.ec.ECCurve.getInfinity:()Lorg/bouncycastle/math/ec/ECPoint;
            astore 3 /* q */
        start local 3 // org.bouncycastle.math.ec.ECPoint q
         2: .line 191
            aload 2 /* x */
            invokevirtual java.math.BigInteger.bitLength:()I
            istore 4 /* t */
        start local 4 // int t
         3: .line 192
            iload 4 /* t */
            ifle 13
         4: .line 194
            aload 2 /* x */
            iconst_0
            invokevirtual java.math.BigInteger.testBit:(I)Z
            ifeq 6
         5: .line 196
            aload 0 /* p */
            astore 3 /* q */
         6: .line 198
      StackMap locals: java.math.BigInteger org.bouncycastle.math.ec.ECPoint int
      StackMap stack:
            iconst_1
            istore 5 /* i */
        start local 5 // int i
         7: goto 12
         8: .line 200
      StackMap locals: int
      StackMap stack:
            aload 0 /* p */
            invokevirtual org.bouncycastle.math.ec.ECPoint.twice:()Lorg/bouncycastle/math/ec/ECPoint;
            astore 0 /* p */
         9: .line 201
            aload 2 /* x */
            iload 5 /* i */
            invokevirtual java.math.BigInteger.testBit:(I)Z
            ifeq 11
        10: .line 203
            aload 3 /* q */
            aload 0 /* p */
            invokevirtual org.bouncycastle.math.ec.ECPoint.add:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
            astore 3 /* q */
        11: .line 198
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 5 /* i */
            iload 4 /* t */
            if_icmplt 8
        end local 5 // int i
        13: .line 207
      StackMap locals:
      StackMap stack:
            aload 1 /* k */
            invokevirtual java.math.BigInteger.signum:()I
            ifge 14
            aload 3 /* q */
            invokevirtual org.bouncycastle.math.ec.ECPoint.negate:()Lorg/bouncycastle/math/ec/ECPoint;
            goto 15
      StackMap locals:
      StackMap stack:
        14: aload 3 /* q */
      StackMap locals:
      StackMap stack: org.bouncycastle.math.ec.ECPoint
        15: areturn
        end local 4 // int t
        end local 3 // org.bouncycastle.math.ec.ECPoint q
        end local 2 // java.math.BigInteger x
        end local 1 // java.math.BigInteger k
        end local 0 // org.bouncycastle.math.ec.ECPoint p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0     p  Lorg/bouncycastle/math/ec/ECPoint;
            0   16     1     k  Ljava/math/BigInteger;
            1   16     2     x  Ljava/math/BigInteger;
            2   16     3     q  Lorg/bouncycastle/math/ec/ECPoint;
            3   16     4     t  I
            7   13     5     i  I
    MethodParameters:
      Name  Flags
      p     
      k     

  public static org.bouncycastle.math.ec.ECPoint validatePoint(org.bouncycastle.math.ec.ECPoint);
    descriptor: (Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECPoint p
         0: .line 212
            aload 0 /* p */
            invokevirtual org.bouncycastle.math.ec.ECPoint.isValid:()Z
            ifne 2
         1: .line 214
            new java.lang.IllegalStateException
            dup
            ldc "Invalid point"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 217
      StackMap locals:
      StackMap stack:
            aload 0 /* p */
            areturn
        end local 0 // org.bouncycastle.math.ec.ECPoint p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     p  Lorg/bouncycastle/math/ec/ECPoint;
    MethodParameters:
      Name  Flags
      p     

  public static org.bouncycastle.math.ec.ECPoint cleanPoint(org.bouncycastle.math.ec.ECCurve, org.bouncycastle.math.ec.ECPoint);
    descriptor: (Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECCurve c
        start local 1 // org.bouncycastle.math.ec.ECPoint p
         0: .line 222
            aload 1 /* p */
            invokevirtual org.bouncycastle.math.ec.ECPoint.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            astore 2 /* cp */
        start local 2 // org.bouncycastle.math.ec.ECCurve cp
         1: .line 223
            aload 0 /* c */
            aload 2 /* cp */
            invokevirtual org.bouncycastle.math.ec.ECCurve.equals:(Lorg/bouncycastle/math/ec/ECCurve;)Z
            ifne 3
         2: .line 225
            new java.lang.IllegalArgumentException
            dup
            ldc "Point must be on the same curve"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 228
      StackMap locals: org.bouncycastle.math.ec.ECCurve
      StackMap stack:
            aload 0 /* c */
            aload 1 /* p */
            iconst_0
            invokevirtual org.bouncycastle.math.ec.ECPoint.getEncoded:(Z)[B
            invokevirtual org.bouncycastle.math.ec.ECCurve.decodePoint:([B)Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        end local 2 // org.bouncycastle.math.ec.ECCurve cp
        end local 1 // org.bouncycastle.math.ec.ECPoint p
        end local 0 // org.bouncycastle.math.ec.ECCurve c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     c  Lorg/bouncycastle/math/ec/ECCurve;
            0    4     1     p  Lorg/bouncycastle/math/ec/ECPoint;
            1    4     2    cp  Lorg/bouncycastle/math/ec/ECCurve;
    MethodParameters:
      Name  Flags
      c     
      p     

  static org.bouncycastle.math.ec.ECPoint implCheckResult(org.bouncycastle.math.ec.ECPoint);
    descriptor: (Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECPoint p
         0: .line 233
            aload 0 /* p */
            invokevirtual org.bouncycastle.math.ec.ECPoint.isValidPartial:()Z
            ifne 2
         1: .line 235
            new java.lang.IllegalStateException
            dup
            ldc "Invalid result"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 238
      StackMap locals:
      StackMap stack:
            aload 0 /* p */
            areturn
        end local 0 // org.bouncycastle.math.ec.ECPoint p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     p  Lorg/bouncycastle/math/ec/ECPoint;
    MethodParameters:
      Name  Flags
      p     

  static org.bouncycastle.math.ec.ECPoint implShamirsTrickJsf(org.bouncycastle.math.ec.ECPoint, java.math.BigInteger, org.bouncycastle.math.ec.ECPoint, java.math.BigInteger);
    descriptor: (Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=17, args_size=4
        start local 0 // org.bouncycastle.math.ec.ECPoint P
        start local 1 // java.math.BigInteger k
        start local 2 // org.bouncycastle.math.ec.ECPoint Q
        start local 3 // java.math.BigInteger l
         0: .line 244
            aload 0 /* P */
            invokevirtual org.bouncycastle.math.ec.ECPoint.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            astore 4 /* curve */
        start local 4 // org.bouncycastle.math.ec.ECCurve curve
         1: .line 245
            aload 4 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getInfinity:()Lorg/bouncycastle/math/ec/ECPoint;
            astore 5 /* infinity */
        start local 5 // org.bouncycastle.math.ec.ECPoint infinity
         2: .line 248
            aload 0 /* P */
            aload 2 /* Q */
            invokevirtual org.bouncycastle.math.ec.ECPoint.add:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
            astore 6 /* PaddQ */
        start local 6 // org.bouncycastle.math.ec.ECPoint PaddQ
         3: .line 249
            aload 0 /* P */
            aload 2 /* Q */
            invokevirtual org.bouncycastle.math.ec.ECPoint.subtract:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
            astore 7 /* PsubQ */
        start local 7 // org.bouncycastle.math.ec.ECPoint PsubQ
         4: .line 251
            iconst_4
            anewarray org.bouncycastle.math.ec.ECPoint
            dup
            iconst_0
            aload 2 /* Q */
            aastore
            dup
            iconst_1
            aload 7 /* PsubQ */
            aastore
            dup
            iconst_2
            aload 0 /* P */
            aastore
            dup
            iconst_3
            aload 6 /* PaddQ */
            aastore
            astore 8 /* points */
        start local 8 // org.bouncycastle.math.ec.ECPoint[] points
         5: .line 252
            aload 4 /* curve */
            aload 8 /* points */
            invokevirtual org.bouncycastle.math.ec.ECCurve.normalizeAll:([Lorg/bouncycastle/math/ec/ECPoint;)V
         6: .line 254
            bipush 9
            anewarray org.bouncycastle.math.ec.ECPoint
            dup
            iconst_0
         7: .line 255
            aload 8 /* points */
            iconst_3
            aaload
            invokevirtual org.bouncycastle.math.ec.ECPoint.negate:()Lorg/bouncycastle/math/ec/ECPoint;
            aastore
            dup
            iconst_1
            aload 8 /* points */
            iconst_2
            aaload
            invokevirtual org.bouncycastle.math.ec.ECPoint.negate:()Lorg/bouncycastle/math/ec/ECPoint;
            aastore
            dup
            iconst_2
            aload 8 /* points */
            iconst_1
            aaload
            invokevirtual org.bouncycastle.math.ec.ECPoint.negate:()Lorg/bouncycastle/math/ec/ECPoint;
            aastore
            dup
            iconst_3
         8: .line 256
            aload 8 /* points */
            iconst_0
            aaload
            invokevirtual org.bouncycastle.math.ec.ECPoint.negate:()Lorg/bouncycastle/math/ec/ECPoint;
            aastore
            dup
            iconst_4
            aload 5 /* infinity */
            aastore
            dup
            iconst_5
            aload 8 /* points */
            iconst_0
            aaload
            aastore
            dup
            bipush 6
         9: .line 257
            aload 8 /* points */
            iconst_1
            aaload
            aastore
            dup
            bipush 7
            aload 8 /* points */
            iconst_2
            aaload
            aastore
            dup
            bipush 8
            aload 8 /* points */
            iconst_3
            aaload
            aastore
        10: .line 254
            astore 9 /* table */
        start local 9 // org.bouncycastle.math.ec.ECPoint[] table
        11: .line 259
            aload 1 /* k */
            aload 3 /* l */
            invokestatic org.bouncycastle.math.ec.WNafUtil.generateJSF:(Ljava/math/BigInteger;Ljava/math/BigInteger;)[B
            astore 10 /* jsf */
        start local 10 // byte[] jsf
        12: .line 261
            aload 5 /* infinity */
            astore 11 /* R */
        start local 11 // org.bouncycastle.math.ec.ECPoint R
        13: .line 263
            aload 10 /* jsf */
            arraylength
            istore 12 /* i */
        start local 12 // int i
        14: .line 264
            goto 20
        15: .line 266
      StackMap locals: org.bouncycastle.math.ec.ECPoint java.math.BigInteger org.bouncycastle.math.ec.ECPoint java.math.BigInteger org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECPoint org.bouncycastle.math.ec.ECPoint org.bouncycastle.math.ec.ECPoint org.bouncycastle.math.ec.ECPoint[] org.bouncycastle.math.ec.ECPoint[] byte[] org.bouncycastle.math.ec.ECPoint int
      StackMap stack:
            aload 10 /* jsf */
            iload 12 /* i */
            baload
            istore 13 /* jsfi */
        start local 13 // int jsfi
        16: .line 269
            iload 13 /* jsfi */
            bipush 24
            ishl
            bipush 28
            ishr
            istore 14 /* kDigit */
        start local 14 // int kDigit
        17: iload 13 /* jsfi */
            bipush 28
            ishl
            bipush 28
            ishr
            istore 15 /* lDigit */
        start local 15 // int lDigit
        18: .line 271
            iconst_4
            iload 14 /* kDigit */
            iconst_3
            imul
            iadd
            iload 15 /* lDigit */
            iadd
            istore 16 /* index */
        start local 16 // int index
        19: .line 272
            aload 11 /* R */
            aload 9 /* table */
            iload 16 /* index */
            aaload
            invokevirtual org.bouncycastle.math.ec.ECPoint.twicePlus:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
            astore 11 /* R */
        end local 16 // int index
        end local 15 // int lDigit
        end local 14 // int kDigit
        end local 13 // int jsfi
        20: .line 264
      StackMap locals:
      StackMap stack:
            iinc 12 /* i */ -1
            iload 12 /* i */
            ifge 15
        21: .line 275
            aload 11 /* R */
            areturn
        end local 12 // int i
        end local 11 // org.bouncycastle.math.ec.ECPoint R
        end local 10 // byte[] jsf
        end local 9 // org.bouncycastle.math.ec.ECPoint[] table
        end local 8 // org.bouncycastle.math.ec.ECPoint[] points
        end local 7 // org.bouncycastle.math.ec.ECPoint PsubQ
        end local 6 // org.bouncycastle.math.ec.ECPoint PaddQ
        end local 5 // org.bouncycastle.math.ec.ECPoint infinity
        end local 4 // org.bouncycastle.math.ec.ECCurve curve
        end local 3 // java.math.BigInteger l
        end local 2 // org.bouncycastle.math.ec.ECPoint Q
        end local 1 // java.math.BigInteger k
        end local 0 // org.bouncycastle.math.ec.ECPoint P
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   22     0         P  Lorg/bouncycastle/math/ec/ECPoint;
            0   22     1         k  Ljava/math/BigInteger;
            0   22     2         Q  Lorg/bouncycastle/math/ec/ECPoint;
            0   22     3         l  Ljava/math/BigInteger;
            1   22     4     curve  Lorg/bouncycastle/math/ec/ECCurve;
            2   22     5  infinity  Lorg/bouncycastle/math/ec/ECPoint;
            3   22     6     PaddQ  Lorg/bouncycastle/math/ec/ECPoint;
            4   22     7     PsubQ  Lorg/bouncycastle/math/ec/ECPoint;
            5   22     8    points  [Lorg/bouncycastle/math/ec/ECPoint;
           11   22     9     table  [Lorg/bouncycastle/math/ec/ECPoint;
           12   22    10       jsf  [B
           13   22    11         R  Lorg/bouncycastle/math/ec/ECPoint;
           14   22    12         i  I
           16   20    13      jsfi  I
           17   20    14    kDigit  I
           18   20    15    lDigit  I
           19   20    16     index  I
    MethodParameters:
      Name  Flags
      P     
      k     
      Q     
      l     

  static org.bouncycastle.math.ec.ECPoint implShamirsTrickWNaf(org.bouncycastle.math.ec.ECPoint, java.math.BigInteger, org.bouncycastle.math.ec.ECPoint, java.math.BigInteger);
    descriptor: (Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=16, args_size=4
        start local 0 // org.bouncycastle.math.ec.ECPoint P
        start local 1 // java.math.BigInteger k
        start local 2 // org.bouncycastle.math.ec.ECPoint Q
        start local 3 // java.math.BigInteger l
         0: .line 281
            aload 1 /* k */
            invokevirtual java.math.BigInteger.signum:()I
            ifge 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 4 /* negK */
        start local 4 // boolean negK
         3: aload 3 /* l */
            invokevirtual java.math.BigInteger.signum:()I
            ifge 4
            iconst_1
            goto 5
      StackMap locals: int
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 5 /* negL */
        start local 5 // boolean negL
         6: .line 283
            aload 1 /* k */
            invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
            astore 1 /* k */
         7: .line 284
            aload 3 /* l */
            invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
            astore 3 /* l */
         8: .line 286
            iconst_2
            bipush 16
            aload 1 /* k */
            invokevirtual java.math.BigInteger.bitLength:()I
            invokestatic org.bouncycastle.math.ec.WNafUtil.getWindowSize:(I)I
            invokestatic java.lang.Math.min:(II)I
            invokestatic java.lang.Math.max:(II)I
            istore 6 /* widthP */
        start local 6 // int widthP
         9: .line 287
            iconst_2
            bipush 16
            aload 3 /* l */
            invokevirtual java.math.BigInteger.bitLength:()I
            invokestatic org.bouncycastle.math.ec.WNafUtil.getWindowSize:(I)I
            invokestatic java.lang.Math.min:(II)I
            invokestatic java.lang.Math.max:(II)I
            istore 7 /* widthQ */
        start local 7 // int widthQ
        10: .line 289
            aload 0 /* P */
            iload 6 /* widthP */
            iconst_1
            invokestatic org.bouncycastle.math.ec.WNafUtil.precompute:(Lorg/bouncycastle/math/ec/ECPoint;IZ)Lorg/bouncycastle/math/ec/WNafPreCompInfo;
            astore 8 /* infoP */
        start local 8 // org.bouncycastle.math.ec.WNafPreCompInfo infoP
        11: .line 290
            aload 2 /* Q */
            iload 7 /* widthQ */
            iconst_1
            invokestatic org.bouncycastle.math.ec.WNafUtil.precompute:(Lorg/bouncycastle/math/ec/ECPoint;IZ)Lorg/bouncycastle/math/ec/WNafPreCompInfo;
            astore 9 /* infoQ */
        start local 9 // org.bouncycastle.math.ec.WNafPreCompInfo infoQ
        12: .line 292
            iload 4 /* negK */
            ifeq 13
            aload 8 /* infoP */
            invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreCompNeg:()[Lorg/bouncycastle/math/ec/ECPoint;
            goto 14
      StackMap locals: org.bouncycastle.math.ec.ECPoint java.math.BigInteger org.bouncycastle.math.ec.ECPoint java.math.BigInteger int int int int org.bouncycastle.math.ec.WNafPreCompInfo org.bouncycastle.math.ec.WNafPreCompInfo
      StackMap stack:
        13: aload 8 /* infoP */
            invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreComp:()[Lorg/bouncycastle/math/ec/ECPoint;
      StackMap locals:
      StackMap stack: org.bouncycastle.math.ec.ECPoint[]
        14: astore 10 /* preCompP */
        start local 10 // org.bouncycastle.math.ec.ECPoint[] preCompP
        15: .line 293
            iload 5 /* negL */
            ifeq 16
            aload 9 /* infoQ */
            invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreCompNeg:()[Lorg/bouncycastle/math/ec/ECPoint;
            goto 17
      StackMap locals: org.bouncycastle.math.ec.ECPoint[]
      StackMap stack:
        16: aload 9 /* infoQ */
            invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreComp:()[Lorg/bouncycastle/math/ec/ECPoint;
      StackMap locals:
      StackMap stack: org.bouncycastle.math.ec.ECPoint[]
        17: astore 11 /* preCompQ */
        start local 11 // org.bouncycastle.math.ec.ECPoint[] preCompQ
        18: .line 294
            iload 4 /* negK */
            ifeq 19
            aload 8 /* infoP */
            invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreComp:()[Lorg/bouncycastle/math/ec/ECPoint;
            goto 20
      StackMap locals: org.bouncycastle.math.ec.ECPoint[]
      StackMap stack:
        19: aload 8 /* infoP */
            invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreCompNeg:()[Lorg/bouncycastle/math/ec/ECPoint;
      StackMap locals:
      StackMap stack: org.bouncycastle.math.ec.ECPoint[]
        20: astore 12 /* preCompNegP */
        start local 12 // org.bouncycastle.math.ec.ECPoint[] preCompNegP
        21: .line 295
            iload 5 /* negL */
            ifeq 22
            aload 9 /* infoQ */
            invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreComp:()[Lorg/bouncycastle/math/ec/ECPoint;
            goto 23
      StackMap locals: org.bouncycastle.math.ec.ECPoint[]
      StackMap stack:
        22: aload 9 /* infoQ */
            invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreCompNeg:()[Lorg/bouncycastle/math/ec/ECPoint;
      StackMap locals:
      StackMap stack: org.bouncycastle.math.ec.ECPoint[]
        23: astore 13 /* preCompNegQ */
        start local 13 // org.bouncycastle.math.ec.ECPoint[] preCompNegQ
        24: .line 297
            iload 6 /* widthP */
            aload 1 /* k */
            invokestatic org.bouncycastle.math.ec.WNafUtil.generateWindowNaf:(ILjava/math/BigInteger;)[B
            astore 14 /* wnafP */
        start local 14 // byte[] wnafP
        25: .line 298
            iload 7 /* widthQ */
            aload 3 /* l */
            invokestatic org.bouncycastle.math.ec.WNafUtil.generateWindowNaf:(ILjava/math/BigInteger;)[B
            astore 15 /* wnafQ */
        start local 15 // byte[] wnafQ
        26: .line 300
            aload 10 /* preCompP */
            aload 12 /* preCompNegP */
            aload 14 /* wnafP */
            aload 11 /* preCompQ */
            aload 13 /* preCompNegQ */
            aload 15 /* wnafQ */
            invokestatic org.bouncycastle.math.ec.ECAlgorithms.implShamirsTrickWNaf:([Lorg/bouncycastle/math/ec/ECPoint;[Lorg/bouncycastle/math/ec/ECPoint;[B[Lorg/bouncycastle/math/ec/ECPoint;[Lorg/bouncycastle/math/ec/ECPoint;[B)Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        end local 15 // byte[] wnafQ
        end local 14 // byte[] wnafP
        end local 13 // org.bouncycastle.math.ec.ECPoint[] preCompNegQ
        end local 12 // org.bouncycastle.math.ec.ECPoint[] preCompNegP
        end local 11 // org.bouncycastle.math.ec.ECPoint[] preCompQ
        end local 10 // org.bouncycastle.math.ec.ECPoint[] preCompP
        end local 9 // org.bouncycastle.math.ec.WNafPreCompInfo infoQ
        end local 8 // org.bouncycastle.math.ec.WNafPreCompInfo infoP
        end local 7 // int widthQ
        end local 6 // int widthP
        end local 5 // boolean negL
        end local 4 // boolean negK
        end local 3 // java.math.BigInteger l
        end local 2 // org.bouncycastle.math.ec.ECPoint Q
        end local 1 // java.math.BigInteger k
        end local 0 // org.bouncycastle.math.ec.ECPoint P
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   27     0            P  Lorg/bouncycastle/math/ec/ECPoint;
            0   27     1            k  Ljava/math/BigInteger;
            0   27     2            Q  Lorg/bouncycastle/math/ec/ECPoint;
            0   27     3            l  Ljava/math/BigInteger;
            3   27     4         negK  Z
            6   27     5         negL  Z
            9   27     6       widthP  I
           10   27     7       widthQ  I
           11   27     8        infoP  Lorg/bouncycastle/math/ec/WNafPreCompInfo;
           12   27     9        infoQ  Lorg/bouncycastle/math/ec/WNafPreCompInfo;
           15   27    10     preCompP  [Lorg/bouncycastle/math/ec/ECPoint;
           18   27    11     preCompQ  [Lorg/bouncycastle/math/ec/ECPoint;
           21   27    12  preCompNegP  [Lorg/bouncycastle/math/ec/ECPoint;
           24   27    13  preCompNegQ  [Lorg/bouncycastle/math/ec/ECPoint;
           25   27    14        wnafP  [B
           26   27    15        wnafQ  [B
    MethodParameters:
      Name  Flags
      P     
      k     
      Q     
      l     

  static org.bouncycastle.math.ec.ECPoint implShamirsTrickWNaf(org.bouncycastle.math.ec.ECPoint, java.math.BigInteger, org.bouncycastle.math.ec.ECPointMap, java.math.BigInteger);
    descriptor: (Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;Lorg/bouncycastle/math/ec/ECPointMap;Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=16, args_size=4
        start local 0 // org.bouncycastle.math.ec.ECPoint P
        start local 1 // java.math.BigInteger k
        start local 2 // org.bouncycastle.math.ec.ECPointMap pointMapQ
        start local 3 // java.math.BigInteger l
         0: .line 305
            aload 1 /* k */
            invokevirtual java.math.BigInteger.signum:()I
            ifge 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 4 /* negK */
        start local 4 // boolean negK
         3: aload 3 /* l */
            invokevirtual java.math.BigInteger.signum:()I
            ifge 4
            iconst_1
            goto 5
      StackMap locals: int
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 5 /* negL */
        start local 5 // boolean negL
         6: .line 307
            aload 1 /* k */
            invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
            astore 1 /* k */
         7: .line 308
            aload 3 /* l */
            invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
            astore 3 /* l */
         8: .line 310
            iconst_2
            bipush 16
            aload 1 /* k */
            invokevirtual java.math.BigInteger.bitLength:()I
            aload 3 /* l */
            invokevirtual java.math.BigInteger.bitLength:()I
            invokestatic java.lang.Math.max:(II)I
            invokestatic org.bouncycastle.math.ec.WNafUtil.getWindowSize:(I)I
            invokestatic java.lang.Math.min:(II)I
            invokestatic java.lang.Math.max:(II)I
            istore 6 /* width */
        start local 6 // int width
         9: .line 312
            aload 0 /* P */
            iload 6 /* width */
            iconst_1
            aload 2 /* pointMapQ */
            invokestatic org.bouncycastle.math.ec.WNafUtil.mapPointWithPrecomp:(Lorg/bouncycastle/math/ec/ECPoint;IZLorg/bouncycastle/math/ec/ECPointMap;)Lorg/bouncycastle/math/ec/ECPoint;
            astore 7 /* Q */
        start local 7 // org.bouncycastle.math.ec.ECPoint Q
        10: .line 313
            aload 0 /* P */
            invokestatic org.bouncycastle.math.ec.WNafUtil.getWNafPreCompInfo:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/WNafPreCompInfo;
            astore 8 /* infoP */
        start local 8 // org.bouncycastle.math.ec.WNafPreCompInfo infoP
        11: .line 314
            aload 7 /* Q */
            invokestatic org.bouncycastle.math.ec.WNafUtil.getWNafPreCompInfo:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/WNafPreCompInfo;
            astore 9 /* infoQ */
        start local 9 // org.bouncycastle.math.ec.WNafPreCompInfo infoQ
        12: .line 316
            iload 4 /* negK */
            ifeq 13
            aload 8 /* infoP */
            invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreCompNeg:()[Lorg/bouncycastle/math/ec/ECPoint;
            goto 14
      StackMap locals: org.bouncycastle.math.ec.ECPoint java.math.BigInteger org.bouncycastle.math.ec.ECPointMap java.math.BigInteger int int int org.bouncycastle.math.ec.ECPoint org.bouncycastle.math.ec.WNafPreCompInfo org.bouncycastle.math.ec.WNafPreCompInfo
      StackMap stack:
        13: aload 8 /* infoP */
            invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreComp:()[Lorg/bouncycastle/math/ec/ECPoint;
      StackMap locals:
      StackMap stack: org.bouncycastle.math.ec.ECPoint[]
        14: astore 10 /* preCompP */
        start local 10 // org.bouncycastle.math.ec.ECPoint[] preCompP
        15: .line 317
            iload 5 /* negL */
            ifeq 16
            aload 9 /* infoQ */
            invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreCompNeg:()[Lorg/bouncycastle/math/ec/ECPoint;
            goto 17
      StackMap locals: org.bouncycastle.math.ec.ECPoint[]
      StackMap stack:
        16: aload 9 /* infoQ */
            invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreComp:()[Lorg/bouncycastle/math/ec/ECPoint;
      StackMap locals:
      StackMap stack: org.bouncycastle.math.ec.ECPoint[]
        17: astore 11 /* preCompQ */
        start local 11 // org.bouncycastle.math.ec.ECPoint[] preCompQ
        18: .line 318
            iload 4 /* negK */
            ifeq 19
            aload 8 /* infoP */
            invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreComp:()[Lorg/bouncycastle/math/ec/ECPoint;
            goto 20
      StackMap locals: org.bouncycastle.math.ec.ECPoint[]
      StackMap stack:
        19: aload 8 /* infoP */
            invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreCompNeg:()[Lorg/bouncycastle/math/ec/ECPoint;
      StackMap locals:
      StackMap stack: org.bouncycastle.math.ec.ECPoint[]
        20: astore 12 /* preCompNegP */
        start local 12 // org.bouncycastle.math.ec.ECPoint[] preCompNegP
        21: .line 319
            iload 5 /* negL */
            ifeq 22
            aload 9 /* infoQ */
            invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreComp:()[Lorg/bouncycastle/math/ec/ECPoint;
            goto 23
      StackMap locals: org.bouncycastle.math.ec.ECPoint[]
      StackMap stack:
        22: aload 9 /* infoQ */
            invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreCompNeg:()[Lorg/bouncycastle/math/ec/ECPoint;
      StackMap locals:
      StackMap stack: org.bouncycastle.math.ec.ECPoint[]
        23: astore 13 /* preCompNegQ */
        start local 13 // org.bouncycastle.math.ec.ECPoint[] preCompNegQ
        24: .line 321
            iload 6 /* width */
            aload 1 /* k */
            invokestatic org.bouncycastle.math.ec.WNafUtil.generateWindowNaf:(ILjava/math/BigInteger;)[B
            astore 14 /* wnafP */
        start local 14 // byte[] wnafP
        25: .line 322
            iload 6 /* width */
            aload 3 /* l */
            invokestatic org.bouncycastle.math.ec.WNafUtil.generateWindowNaf:(ILjava/math/BigInteger;)[B
            astore 15 /* wnafQ */
        start local 15 // byte[] wnafQ
        26: .line 324
            aload 10 /* preCompP */
            aload 12 /* preCompNegP */
            aload 14 /* wnafP */
            aload 11 /* preCompQ */
            aload 13 /* preCompNegQ */
            aload 15 /* wnafQ */
            invokestatic org.bouncycastle.math.ec.ECAlgorithms.implShamirsTrickWNaf:([Lorg/bouncycastle/math/ec/ECPoint;[Lorg/bouncycastle/math/ec/ECPoint;[B[Lorg/bouncycastle/math/ec/ECPoint;[Lorg/bouncycastle/math/ec/ECPoint;[B)Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        end local 15 // byte[] wnafQ
        end local 14 // byte[] wnafP
        end local 13 // org.bouncycastle.math.ec.ECPoint[] preCompNegQ
        end local 12 // org.bouncycastle.math.ec.ECPoint[] preCompNegP
        end local 11 // org.bouncycastle.math.ec.ECPoint[] preCompQ
        end local 10 // org.bouncycastle.math.ec.ECPoint[] preCompP
        end local 9 // org.bouncycastle.math.ec.WNafPreCompInfo infoQ
        end local 8 // org.bouncycastle.math.ec.WNafPreCompInfo infoP
        end local 7 // org.bouncycastle.math.ec.ECPoint Q
        end local 6 // int width
        end local 5 // boolean negL
        end local 4 // boolean negK
        end local 3 // java.math.BigInteger l
        end local 2 // org.bouncycastle.math.ec.ECPointMap pointMapQ
        end local 1 // java.math.BigInteger k
        end local 0 // org.bouncycastle.math.ec.ECPoint P
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   27     0            P  Lorg/bouncycastle/math/ec/ECPoint;
            0   27     1            k  Ljava/math/BigInteger;
            0   27     2    pointMapQ  Lorg/bouncycastle/math/ec/ECPointMap;
            0   27     3            l  Ljava/math/BigInteger;
            3   27     4         negK  Z
            6   27     5         negL  Z
            9   27     6        width  I
           10   27     7            Q  Lorg/bouncycastle/math/ec/ECPoint;
           11   27     8        infoP  Lorg/bouncycastle/math/ec/WNafPreCompInfo;
           12   27     9        infoQ  Lorg/bouncycastle/math/ec/WNafPreCompInfo;
           15   27    10     preCompP  [Lorg/bouncycastle/math/ec/ECPoint;
           18   27    11     preCompQ  [Lorg/bouncycastle/math/ec/ECPoint;
           21   27    12  preCompNegP  [Lorg/bouncycastle/math/ec/ECPoint;
           24   27    13  preCompNegQ  [Lorg/bouncycastle/math/ec/ECPoint;
           25   27    14        wnafP  [B
           26   27    15        wnafQ  [B
    MethodParameters:
           Name  Flags
      P          
      k          
      pointMapQ  
      l          

  private static org.bouncycastle.math.ec.ECPoint implShamirsTrickWNaf(org.bouncycastle.math.ec.ECPoint[], org.bouncycastle.math.ec.ECPoint[], byte[], org.bouncycastle.math.ec.ECPoint[], org.bouncycastle.math.ec.ECPoint[], byte[]);
    descriptor: ([Lorg/bouncycastle/math/ec/ECPoint;[Lorg/bouncycastle/math/ec/ECPoint;[B[Lorg/bouncycastle/math/ec/ECPoint;[Lorg/bouncycastle/math/ec/ECPoint;[B)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=17, args_size=6
        start local 0 // org.bouncycastle.math.ec.ECPoint[] preCompP
        start local 1 // org.bouncycastle.math.ec.ECPoint[] preCompNegP
        start local 2 // byte[] wnafP
        start local 3 // org.bouncycastle.math.ec.ECPoint[] preCompQ
        start local 4 // org.bouncycastle.math.ec.ECPoint[] preCompNegQ
        start local 5 // byte[] wnafQ
         0: .line 330
            aload 2 /* wnafP */
            arraylength
            aload 5 /* wnafQ */
            arraylength
            invokestatic java.lang.Math.max:(II)I
            istore 6 /* len */
        start local 6 // int len
         1: .line 332
            aload 0 /* preCompP */
            iconst_0
            aaload
            invokevirtual org.bouncycastle.math.ec.ECPoint.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            astore 7 /* curve */
        start local 7 // org.bouncycastle.math.ec.ECCurve curve
         2: .line 333
            aload 7 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getInfinity:()Lorg/bouncycastle/math/ec/ECPoint;
            astore 8 /* infinity */
        start local 8 // org.bouncycastle.math.ec.ECPoint infinity
         3: .line 335
            aload 8 /* infinity */
            astore 9 /* R */
        start local 9 // org.bouncycastle.math.ec.ECPoint R
         4: .line 336
            iconst_0
            istore 10 /* zeroes */
        start local 10 // int zeroes
         5: .line 338
            iload 6 /* len */
            iconst_1
            isub
            istore 11 /* i */
        start local 11 // int i
         6: goto 34
         7: .line 340
      StackMap locals: org.bouncycastle.math.ec.ECPoint[] org.bouncycastle.math.ec.ECPoint[] byte[] org.bouncycastle.math.ec.ECPoint[] org.bouncycastle.math.ec.ECPoint[] byte[] int org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECPoint org.bouncycastle.math.ec.ECPoint int int
      StackMap stack:
            iload 11 /* i */
            aload 2 /* wnafP */
            arraylength
            if_icmpge 8
            aload 2 /* wnafP */
            iload 11 /* i */
            baload
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: istore 12 /* wiP */
        start local 12 // int wiP
        10: .line 341
            iload 11 /* i */
            aload 5 /* wnafQ */
            arraylength
            if_icmpge 11
            aload 5 /* wnafQ */
            iload 11 /* i */
            baload
            goto 12
      StackMap locals: int
      StackMap stack:
        11: iconst_0
      StackMap locals:
      StackMap stack: int
        12: istore 13 /* wiQ */
        start local 13 // int wiQ
        13: .line 343
            iload 12 /* wiP */
            iload 13 /* wiQ */
            ior
            ifne 16
        14: .line 345
            iinc 10 /* zeroes */ 1
        15: .line 346
            goto 33
        16: .line 349
      StackMap locals: int
      StackMap stack:
            aload 8 /* infinity */
            astore 14 /* r */
        start local 14 // org.bouncycastle.math.ec.ECPoint r
        17: .line 350
            iload 12 /* wiP */
            ifeq 23
        18: .line 352
            iload 12 /* wiP */
            invokestatic java.lang.Math.abs:(I)I
            istore 15 /* nP */
        start local 15 // int nP
        19: .line 353
            iload 12 /* wiP */
            ifge 20
            aload 1 /* preCompNegP */
            goto 21
      StackMap locals: org.bouncycastle.math.ec.ECPoint int
      StackMap stack:
        20: aload 0 /* preCompP */
      StackMap locals:
      StackMap stack: org.bouncycastle.math.ec.ECPoint[]
        21: astore 16 /* tableP */
        start local 16 // org.bouncycastle.math.ec.ECPoint[] tableP
        22: .line 354
            aload 14 /* r */
            aload 16 /* tableP */
            iload 15 /* nP */
            iconst_1
            iushr
            aaload
            invokevirtual org.bouncycastle.math.ec.ECPoint.add:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
            astore 14 /* r */
        end local 16 // org.bouncycastle.math.ec.ECPoint[] tableP
        end local 15 // int nP
        23: .line 356
      StackMap locals:
      StackMap stack:
            iload 13 /* wiQ */
            ifeq 29
        24: .line 358
            iload 13 /* wiQ */
            invokestatic java.lang.Math.abs:(I)I
            istore 15 /* nQ */
        start local 15 // int nQ
        25: .line 359
            iload 13 /* wiQ */
            ifge 26
            aload 4 /* preCompNegQ */
            goto 27
      StackMap locals: int
      StackMap stack:
        26: aload 3 /* preCompQ */
      StackMap locals:
      StackMap stack: org.bouncycastle.math.ec.ECPoint[]
        27: astore 16 /* tableQ */
        start local 16 // org.bouncycastle.math.ec.ECPoint[] tableQ
        28: .line 360
            aload 14 /* r */
            aload 16 /* tableQ */
            iload 15 /* nQ */
            iconst_1
            iushr
            aaload
            invokevirtual org.bouncycastle.math.ec.ECPoint.add:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
            astore 14 /* r */
        end local 16 // org.bouncycastle.math.ec.ECPoint[] tableQ
        end local 15 // int nQ
        29: .line 363
      StackMap locals:
      StackMap stack:
            iload 10 /* zeroes */
            ifle 32
        30: .line 365
            aload 9 /* R */
            iload 10 /* zeroes */
            invokevirtual org.bouncycastle.math.ec.ECPoint.timesPow2:(I)Lorg/bouncycastle/math/ec/ECPoint;
            astore 9 /* R */
        31: .line 366
            iconst_0
            istore 10 /* zeroes */
        32: .line 369
      StackMap locals:
      StackMap stack:
            aload 9 /* R */
            aload 14 /* r */
            invokevirtual org.bouncycastle.math.ec.ECPoint.twicePlus:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
            astore 9 /* R */
        end local 14 // org.bouncycastle.math.ec.ECPoint r
        end local 13 // int wiQ
        end local 12 // int wiP
        33: .line 338
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ -1
      StackMap locals:
      StackMap stack:
        34: iload 11 /* i */
            ifge 7
        end local 11 // int i
        35: .line 372
            iload 10 /* zeroes */
            ifle 37
        36: .line 374
            aload 9 /* R */
            iload 10 /* zeroes */
            invokevirtual org.bouncycastle.math.ec.ECPoint.timesPow2:(I)Lorg/bouncycastle/math/ec/ECPoint;
            astore 9 /* R */
        37: .line 377
      StackMap locals:
      StackMap stack:
            aload 9 /* R */
            areturn
        end local 10 // int zeroes
        end local 9 // org.bouncycastle.math.ec.ECPoint R
        end local 8 // org.bouncycastle.math.ec.ECPoint infinity
        end local 7 // org.bouncycastle.math.ec.ECCurve curve
        end local 6 // int len
        end local 5 // byte[] wnafQ
        end local 4 // org.bouncycastle.math.ec.ECPoint[] preCompNegQ
        end local 3 // org.bouncycastle.math.ec.ECPoint[] preCompQ
        end local 2 // byte[] wnafP
        end local 1 // org.bouncycastle.math.ec.ECPoint[] preCompNegP
        end local 0 // org.bouncycastle.math.ec.ECPoint[] preCompP
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   38     0     preCompP  [Lorg/bouncycastle/math/ec/ECPoint;
            0   38     1  preCompNegP  [Lorg/bouncycastle/math/ec/ECPoint;
            0   38     2        wnafP  [B
            0   38     3     preCompQ  [Lorg/bouncycastle/math/ec/ECPoint;
            0   38     4  preCompNegQ  [Lorg/bouncycastle/math/ec/ECPoint;
            0   38     5        wnafQ  [B
            1   38     6          len  I
            2   38     7        curve  Lorg/bouncycastle/math/ec/ECCurve;
            3   38     8     infinity  Lorg/bouncycastle/math/ec/ECPoint;
            4   38     9            R  Lorg/bouncycastle/math/ec/ECPoint;
            5   38    10       zeroes  I
            6   35    11            i  I
           10   33    12          wiP  I
           13   33    13          wiQ  I
           17   33    14            r  Lorg/bouncycastle/math/ec/ECPoint;
           19   23    15           nP  I
           22   23    16       tableP  [Lorg/bouncycastle/math/ec/ECPoint;
           25   29    15           nQ  I
           28   29    16       tableQ  [Lorg/bouncycastle/math/ec/ECPoint;
    MethodParameters:
             Name  Flags
      preCompP     
      preCompNegP  
      wnafP        
      preCompQ     
      preCompNegQ  
      wnafQ        

  static org.bouncycastle.math.ec.ECPoint implSumOfMultiplies(org.bouncycastle.math.ec.ECPoint[], java.math.BigInteger[]);
    descriptor: ([Lorg/bouncycastle/math/ec/ECPoint;[Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECPoint[] ps
        start local 1 // java.math.BigInteger[] ks
         0: .line 382
            aload 0 /* ps */
            arraylength
            istore 2 /* count */
        start local 2 // int count
         1: .line 383
            iload 2 /* count */
            newarray 4
            astore 3 /* negs */
        start local 3 // boolean[] negs
         2: .line 384
            iload 2 /* count */
            anewarray org.bouncycastle.math.ec.WNafPreCompInfo
            astore 4 /* infos */
        start local 4 // org.bouncycastle.math.ec.WNafPreCompInfo[] infos
         3: .line 385
            iload 2 /* count */
            anewarray byte[]
            astore 5 /* wnafs */
        start local 5 // byte[][] wnafs
         4: .line 387
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         5: goto 14
         6: .line 389
      StackMap locals: org.bouncycastle.math.ec.ECPoint[] java.math.BigInteger[] int boolean[] org.bouncycastle.math.ec.WNafPreCompInfo[] byte[][] int
      StackMap stack:
            aload 1 /* ks */
            iload 6 /* i */
            aaload
            astore 7 /* ki */
        start local 7 // java.math.BigInteger ki
         7: aload 3 /* negs */
            iload 6 /* i */
            aload 7 /* ki */
            invokevirtual java.math.BigInteger.signum:()I
            ifge 8
            iconst_1
            goto 9
      StackMap locals: org.bouncycastle.math.ec.ECPoint[] java.math.BigInteger[] int boolean[] org.bouncycastle.math.ec.WNafPreCompInfo[] byte[][] int java.math.BigInteger
      StackMap stack: boolean[] int
         8: iconst_0
      StackMap locals: org.bouncycastle.math.ec.ECPoint[] java.math.BigInteger[] int boolean[] org.bouncycastle.math.ec.WNafPreCompInfo[] byte[][] int java.math.BigInteger
      StackMap stack: boolean[] int int
         9: bastore
            aload 7 /* ki */
            invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
            astore 7 /* ki */
        10: .line 391
            iconst_2
            bipush 16
            aload 7 /* ki */
            invokevirtual java.math.BigInteger.bitLength:()I
            invokestatic org.bouncycastle.math.ec.WNafUtil.getWindowSize:(I)I
            invokestatic java.lang.Math.min:(II)I
            invokestatic java.lang.Math.max:(II)I
            istore 8 /* width */
        start local 8 // int width
        11: .line 392
            aload 4 /* infos */
            iload 6 /* i */
            aload 0 /* ps */
            iload 6 /* i */
            aaload
            iload 8 /* width */
            iconst_1
            invokestatic org.bouncycastle.math.ec.WNafUtil.precompute:(Lorg/bouncycastle/math/ec/ECPoint;IZ)Lorg/bouncycastle/math/ec/WNafPreCompInfo;
            aastore
        12: .line 393
            aload 5 /* wnafs */
            iload 6 /* i */
            iload 8 /* width */
            aload 7 /* ki */
            invokestatic org.bouncycastle.math.ec.WNafUtil.generateWindowNaf:(ILjava/math/BigInteger;)[B
            aastore
        end local 8 // int width
        end local 7 // java.math.BigInteger ki
        13: .line 387
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 6 /* i */
            iload 2 /* count */
            if_icmplt 6
        end local 6 // int i
        15: .line 396
            aload 3 /* negs */
            aload 4 /* infos */
            aload 5 /* wnafs */
            invokestatic org.bouncycastle.math.ec.ECAlgorithms.implSumOfMultiplies:([Z[Lorg/bouncycastle/math/ec/WNafPreCompInfo;[[B)Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        end local 5 // byte[][] wnafs
        end local 4 // org.bouncycastle.math.ec.WNafPreCompInfo[] infos
        end local 3 // boolean[] negs
        end local 2 // int count
        end local 1 // java.math.BigInteger[] ks
        end local 0 // org.bouncycastle.math.ec.ECPoint[] ps
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   16     0     ps  [Lorg/bouncycastle/math/ec/ECPoint;
            0   16     1     ks  [Ljava/math/BigInteger;
            1   16     2  count  I
            2   16     3   negs  [Z
            3   16     4  infos  [Lorg/bouncycastle/math/ec/WNafPreCompInfo;
            4   16     5  wnafs  [[B
            5   15     6      i  I
            7   13     7     ki  Ljava/math/BigInteger;
           11   13     8  width  I
    MethodParameters:
      Name  Flags
      ps    
      ks    

  static org.bouncycastle.math.ec.ECPoint implSumOfMultipliesGLV(org.bouncycastle.math.ec.ECPoint[], java.math.BigInteger[], org.bouncycastle.math.ec.endo.GLVEndomorphism);
    descriptor: ([Lorg/bouncycastle/math/ec/ECPoint;[Ljava/math/BigInteger;Lorg/bouncycastle/math/ec/endo/GLVEndomorphism;)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=12, args_size=3
        start local 0 // org.bouncycastle.math.ec.ECPoint[] ps
        start local 1 // java.math.BigInteger[] ks
        start local 2 // org.bouncycastle.math.ec.endo.GLVEndomorphism glvEndomorphism
         0: .line 401
            aload 0 /* ps */
            iconst_0
            aaload
            invokevirtual org.bouncycastle.math.ec.ECPoint.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            invokevirtual org.bouncycastle.math.ec.ECCurve.getOrder:()Ljava/math/BigInteger;
            astore 3 /* n */
        start local 3 // java.math.BigInteger n
         1: .line 403
            aload 0 /* ps */
            arraylength
            istore 4 /* len */
        start local 4 // int len
         2: .line 405
            iload 4 /* len */
            iconst_1
            ishl
            anewarray java.math.BigInteger
            astore 5 /* abs */
        start local 5 // java.math.BigInteger[] abs
         3: .line 406
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         4: iconst_0
            istore 7 /* j */
        start local 7 // int j
         5: goto 10
         6: .line 408
      StackMap locals: org.bouncycastle.math.ec.ECPoint[] java.math.BigInteger[] org.bouncycastle.math.ec.endo.GLVEndomorphism java.math.BigInteger int java.math.BigInteger[] int int
      StackMap stack:
            aload 2 /* glvEndomorphism */
            aload 1 /* ks */
            iload 6 /* i */
            aaload
            aload 3 /* n */
            invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokeinterface org.bouncycastle.math.ec.endo.GLVEndomorphism.decomposeScalar:(Ljava/math/BigInteger;)[Ljava/math/BigInteger;
            astore 8 /* ab */
        start local 8 // java.math.BigInteger[] ab
         7: .line 409
            aload 5 /* abs */
            iload 7 /* j */
            iinc 7 /* j */ 1
            aload 8 /* ab */
            iconst_0
            aaload
            aastore
         8: .line 410
            aload 5 /* abs */
            iload 7 /* j */
            iinc 7 /* j */ 1
            aload 8 /* ab */
            iconst_1
            aaload
            aastore
        end local 8 // java.math.BigInteger[] ab
         9: .line 406
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 6 /* i */
            iload 4 /* len */
            if_icmplt 6
        end local 7 // int j
        end local 6 // int i
        11: .line 413
            aload 2 /* glvEndomorphism */
            invokeinterface org.bouncycastle.math.ec.endo.GLVEndomorphism.getPointMap:()Lorg/bouncycastle/math/ec/ECPointMap;
            astore 6 /* pointMap */
        start local 6 // org.bouncycastle.math.ec.ECPointMap pointMap
        12: .line 414
            aload 2 /* glvEndomorphism */
            invokeinterface org.bouncycastle.math.ec.endo.GLVEndomorphism.hasEfficientPointMap:()Z
            ifeq 14
        13: .line 416
            aload 0 /* ps */
            aload 6 /* pointMap */
            aload 5 /* abs */
            invokestatic org.bouncycastle.math.ec.ECAlgorithms.implSumOfMultiplies:([Lorg/bouncycastle/math/ec/ECPoint;Lorg/bouncycastle/math/ec/ECPointMap;[Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        14: .line 419
      StackMap locals: org.bouncycastle.math.ec.ECPoint[] java.math.BigInteger[] org.bouncycastle.math.ec.endo.GLVEndomorphism java.math.BigInteger int java.math.BigInteger[] org.bouncycastle.math.ec.ECPointMap
      StackMap stack:
            iload 4 /* len */
            iconst_1
            ishl
            anewarray org.bouncycastle.math.ec.ECPoint
            astore 7 /* pqs */
        start local 7 // org.bouncycastle.math.ec.ECPoint[] pqs
        15: .line 420
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        16: iconst_0
            istore 9 /* j */
        start local 9 // int j
        17: goto 23
        18: .line 422
      StackMap locals: org.bouncycastle.math.ec.ECPoint[] int int
      StackMap stack:
            aload 0 /* ps */
            iload 8 /* i */
            aaload
            astore 10 /* p */
        start local 10 // org.bouncycastle.math.ec.ECPoint p
        19: aload 6 /* pointMap */
            aload 10 /* p */
            invokeinterface org.bouncycastle.math.ec.ECPointMap.map:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
            astore 11 /* q */
        start local 11 // org.bouncycastle.math.ec.ECPoint q
        20: .line 423
            aload 7 /* pqs */
            iload 9 /* j */
            iinc 9 /* j */ 1
            aload 10 /* p */
            aastore
        21: .line 424
            aload 7 /* pqs */
            iload 9 /* j */
            iinc 9 /* j */ 1
            aload 11 /* q */
            aastore
        end local 11 // org.bouncycastle.math.ec.ECPoint q
        end local 10 // org.bouncycastle.math.ec.ECPoint p
        22: .line 420
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        23: iload 8 /* i */
            iload 4 /* len */
            if_icmplt 18
        end local 9 // int j
        end local 8 // int i
        24: .line 427
            aload 7 /* pqs */
            aload 5 /* abs */
            invokestatic org.bouncycastle.math.ec.ECAlgorithms.implSumOfMultiplies:([Lorg/bouncycastle/math/ec/ECPoint;[Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        end local 7 // org.bouncycastle.math.ec.ECPoint[] pqs
        end local 6 // org.bouncycastle.math.ec.ECPointMap pointMap
        end local 5 // java.math.BigInteger[] abs
        end local 4 // int len
        end local 3 // java.math.BigInteger n
        end local 2 // org.bouncycastle.math.ec.endo.GLVEndomorphism glvEndomorphism
        end local 1 // java.math.BigInteger[] ks
        end local 0 // org.bouncycastle.math.ec.ECPoint[] ps
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   25     0               ps  [Lorg/bouncycastle/math/ec/ECPoint;
            0   25     1               ks  [Ljava/math/BigInteger;
            0   25     2  glvEndomorphism  Lorg/bouncycastle/math/ec/endo/GLVEndomorphism;
            1   25     3                n  Ljava/math/BigInteger;
            2   25     4              len  I
            3   25     5              abs  [Ljava/math/BigInteger;
            4   11     6                i  I
            5   11     7                j  I
            7    9     8               ab  [Ljava/math/BigInteger;
           12   25     6         pointMap  Lorg/bouncycastle/math/ec/ECPointMap;
           15   25     7              pqs  [Lorg/bouncycastle/math/ec/ECPoint;
           16   24     8                i  I
           17   24     9                j  I
           19   22    10                p  Lorg/bouncycastle/math/ec/ECPoint;
           20   22    11                q  Lorg/bouncycastle/math/ec/ECPoint;
    MethodParameters:
                 Name  Flags
      ps               
      ks               
      glvEndomorphism  

  static org.bouncycastle.math.ec.ECPoint implSumOfMultiplies(org.bouncycastle.math.ec.ECPoint[], org.bouncycastle.math.ec.ECPointMap, java.math.BigInteger[]);
    descriptor: ([Lorg/bouncycastle/math/ec/ECPoint;Lorg/bouncycastle/math/ec/ECPointMap;[Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=16, args_size=3
        start local 0 // org.bouncycastle.math.ec.ECPoint[] ps
        start local 1 // org.bouncycastle.math.ec.ECPointMap pointMap
        start local 2 // java.math.BigInteger[] ks
         0: .line 433
            aload 0 /* ps */
            arraylength
            istore 3 /* halfCount */
        start local 3 // int halfCount
         1: iload 3 /* halfCount */
            iconst_1
            ishl
            istore 4 /* fullCount */
        start local 4 // int fullCount
         2: .line 435
            iload 4 /* fullCount */
            newarray 4
            astore 5 /* negs */
        start local 5 // boolean[] negs
         3: .line 436
            iload 4 /* fullCount */
            anewarray org.bouncycastle.math.ec.WNafPreCompInfo
            astore 6 /* infos */
        start local 6 // org.bouncycastle.math.ec.WNafPreCompInfo[] infos
         4: .line 437
            iload 4 /* fullCount */
            anewarray byte[]
            astore 7 /* wnafs */
        start local 7 // byte[][] wnafs
         5: .line 439
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         6: goto 25
         7: .line 441
      StackMap locals: org.bouncycastle.math.ec.ECPoint[] org.bouncycastle.math.ec.ECPointMap java.math.BigInteger[] int int boolean[] org.bouncycastle.math.ec.WNafPreCompInfo[] byte[][] int
      StackMap stack:
            iload 8 /* i */
            iconst_1
            ishl
            istore 9 /* j0 */
        start local 9 // int j0
         8: iload 9 /* j0 */
            iconst_1
            iadd
            istore 10 /* j1 */
        start local 10 // int j1
         9: .line 443
            aload 2 /* ks */
            iload 9 /* j0 */
            aaload
            astore 11 /* kj0 */
        start local 11 // java.math.BigInteger kj0
        10: aload 5 /* negs */
            iload 9 /* j0 */
            aload 11 /* kj0 */
            invokevirtual java.math.BigInteger.signum:()I
            ifge 11
            iconst_1
            goto 12
      StackMap locals: org.bouncycastle.math.ec.ECPoint[] org.bouncycastle.math.ec.ECPointMap java.math.BigInteger[] int int boolean[] org.bouncycastle.math.ec.WNafPreCompInfo[] byte[][] int int int java.math.BigInteger
      StackMap stack: boolean[] int
        11: iconst_0
      StackMap locals: org.bouncycastle.math.ec.ECPoint[] org.bouncycastle.math.ec.ECPointMap java.math.BigInteger[] int int boolean[] org.bouncycastle.math.ec.WNafPreCompInfo[] byte[][] int int int java.math.BigInteger
      StackMap stack: boolean[] int int
        12: bastore
            aload 11 /* kj0 */
            invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
            astore 11 /* kj0 */
        13: .line 444
            aload 2 /* ks */
            iload 10 /* j1 */
            aaload
            astore 12 /* kj1 */
        start local 12 // java.math.BigInteger kj1
        14: aload 5 /* negs */
            iload 10 /* j1 */
            aload 12 /* kj1 */
            invokevirtual java.math.BigInteger.signum:()I
            ifge 15
            iconst_1
            goto 16
      StackMap locals: org.bouncycastle.math.ec.ECPoint[] org.bouncycastle.math.ec.ECPointMap java.math.BigInteger[] int int boolean[] org.bouncycastle.math.ec.WNafPreCompInfo[] byte[][] int int int java.math.BigInteger java.math.BigInteger
      StackMap stack: boolean[] int
        15: iconst_0
      StackMap locals: org.bouncycastle.math.ec.ECPoint[] org.bouncycastle.math.ec.ECPointMap java.math.BigInteger[] int int boolean[] org.bouncycastle.math.ec.WNafPreCompInfo[] byte[][] int int int java.math.BigInteger java.math.BigInteger
      StackMap stack: boolean[] int int
        16: bastore
            aload 12 /* kj1 */
            invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
            astore 12 /* kj1 */
        17: .line 446
            iconst_2
            bipush 16
            aload 11 /* kj0 */
            invokevirtual java.math.BigInteger.bitLength:()I
            aload 12 /* kj1 */
            invokevirtual java.math.BigInteger.bitLength:()I
            invokestatic java.lang.Math.max:(II)I
            invokestatic org.bouncycastle.math.ec.WNafUtil.getWindowSize:(I)I
            invokestatic java.lang.Math.min:(II)I
            invokestatic java.lang.Math.max:(II)I
            istore 13 /* width */
        start local 13 // int width
        18: .line 448
            aload 0 /* ps */
            iload 8 /* i */
            aaload
            astore 14 /* P */
        start local 14 // org.bouncycastle.math.ec.ECPoint P
        19: aload 14 /* P */
            iload 13 /* width */
            iconst_1
            aload 1 /* pointMap */
            invokestatic org.bouncycastle.math.ec.WNafUtil.mapPointWithPrecomp:(Lorg/bouncycastle/math/ec/ECPoint;IZLorg/bouncycastle/math/ec/ECPointMap;)Lorg/bouncycastle/math/ec/ECPoint;
            astore 15 /* Q */
        start local 15 // org.bouncycastle.math.ec.ECPoint Q
        20: .line 449
            aload 6 /* infos */
            iload 9 /* j0 */
            aload 14 /* P */
            invokestatic org.bouncycastle.math.ec.WNafUtil.getWNafPreCompInfo:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/WNafPreCompInfo;
            aastore
        21: .line 450
            aload 6 /* infos */
            iload 10 /* j1 */
            aload 15 /* Q */
            invokestatic org.bouncycastle.math.ec.WNafUtil.getWNafPreCompInfo:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/WNafPreCompInfo;
            aastore
        22: .line 451
            aload 7 /* wnafs */
            iload 9 /* j0 */
            iload 13 /* width */
            aload 11 /* kj0 */
            invokestatic org.bouncycastle.math.ec.WNafUtil.generateWindowNaf:(ILjava/math/BigInteger;)[B
            aastore
        23: .line 452
            aload 7 /* wnafs */
            iload 10 /* j1 */
            iload 13 /* width */
            aload 12 /* kj1 */
            invokestatic org.bouncycastle.math.ec.WNafUtil.generateWindowNaf:(ILjava/math/BigInteger;)[B
            aastore
        end local 15 // org.bouncycastle.math.ec.ECPoint Q
        end local 14 // org.bouncycastle.math.ec.ECPoint P
        end local 13 // int width
        end local 12 // java.math.BigInteger kj1
        end local 11 // java.math.BigInteger kj0
        end local 10 // int j1
        end local 9 // int j0
        24: .line 439
            iinc 8 /* i */ 1
      StackMap locals: org.bouncycastle.math.ec.ECPoint[] org.bouncycastle.math.ec.ECPointMap java.math.BigInteger[] int int boolean[] org.bouncycastle.math.ec.WNafPreCompInfo[] byte[][] int
      StackMap stack:
        25: iload 8 /* i */
            iload 3 /* halfCount */
            if_icmplt 7
        end local 8 // int i
        26: .line 455
            aload 5 /* negs */
            aload 6 /* infos */
            aload 7 /* wnafs */
            invokestatic org.bouncycastle.math.ec.ECAlgorithms.implSumOfMultiplies:([Z[Lorg/bouncycastle/math/ec/WNafPreCompInfo;[[B)Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        end local 7 // byte[][] wnafs
        end local 6 // org.bouncycastle.math.ec.WNafPreCompInfo[] infos
        end local 5 // boolean[] negs
        end local 4 // int fullCount
        end local 3 // int halfCount
        end local 2 // java.math.BigInteger[] ks
        end local 1 // org.bouncycastle.math.ec.ECPointMap pointMap
        end local 0 // org.bouncycastle.math.ec.ECPoint[] ps
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   27     0         ps  [Lorg/bouncycastle/math/ec/ECPoint;
            0   27     1   pointMap  Lorg/bouncycastle/math/ec/ECPointMap;
            0   27     2         ks  [Ljava/math/BigInteger;
            1   27     3  halfCount  I
            2   27     4  fullCount  I
            3   27     5       negs  [Z
            4   27     6      infos  [Lorg/bouncycastle/math/ec/WNafPreCompInfo;
            5   27     7      wnafs  [[B
            6   26     8          i  I
            8   24     9         j0  I
            9   24    10         j1  I
           10   24    11        kj0  Ljava/math/BigInteger;
           14   24    12        kj1  Ljava/math/BigInteger;
           18   24    13      width  I
           19   24    14          P  Lorg/bouncycastle/math/ec/ECPoint;
           20   24    15          Q  Lorg/bouncycastle/math/ec/ECPoint;
    MethodParameters:
          Name  Flags
      ps        
      pointMap  
      ks        

  private static org.bouncycastle.math.ec.ECPoint implSumOfMultiplies(boolean[], org.bouncycastle.math.ec.WNafPreCompInfo[], byte[][]);
    descriptor: ([Z[Lorg/bouncycastle/math/ec/WNafPreCompInfo;[[B)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=17, args_size=3
        start local 0 // boolean[] negs
        start local 1 // org.bouncycastle.math.ec.WNafPreCompInfo[] infos
        start local 2 // byte[][] wnafs
         0: .line 460
            iconst_0
            istore 3 /* len */
        start local 3 // int len
         1: aload 2 /* wnafs */
            arraylength
            istore 4 /* count */
        start local 4 // int count
         2: .line 461
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: goto 6
         4: .line 463
      StackMap locals: int int int
      StackMap stack:
            iload 3 /* len */
            aload 2 /* wnafs */
            iload 5 /* i */
            aaload
            arraylength
            invokestatic java.lang.Math.max:(II)I
            istore 3 /* len */
         5: .line 461
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 5 /* i */
            iload 4 /* count */
            if_icmplt 4
        end local 5 // int i
         7: .line 466
            aload 1 /* infos */
            iconst_0
            aaload
            invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreComp:()[Lorg/bouncycastle/math/ec/ECPoint;
            iconst_0
            aaload
            invokevirtual org.bouncycastle.math.ec.ECPoint.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            astore 5 /* curve */
        start local 5 // org.bouncycastle.math.ec.ECCurve curve
         8: .line 467
            aload 5 /* curve */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getInfinity:()Lorg/bouncycastle/math/ec/ECPoint;
            astore 6 /* infinity */
        start local 6 // org.bouncycastle.math.ec.ECPoint infinity
         9: .line 469
            aload 6 /* infinity */
            astore 7 /* R */
        start local 7 // org.bouncycastle.math.ec.ECPoint R
        10: .line 470
            iconst_0
            istore 8 /* zeroes */
        start local 8 // int zeroes
        11: .line 472
            iload 3 /* len */
            iconst_1
            isub
            istore 9 /* i */
        start local 9 // int i
        12: goto 39
        13: .line 474
      StackMap locals: boolean[] org.bouncycastle.math.ec.WNafPreCompInfo[] byte[][] int int org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECPoint org.bouncycastle.math.ec.ECPoint int int
      StackMap stack:
            aload 6 /* infinity */
            astore 10 /* r */
        start local 10 // org.bouncycastle.math.ec.ECPoint r
        14: .line 476
            iconst_0
            istore 11 /* j */
        start local 11 // int j
        15: goto 30
        16: .line 478
      StackMap locals: org.bouncycastle.math.ec.ECPoint int
      StackMap stack:
            aload 2 /* wnafs */
            iload 11 /* j */
            aaload
            astore 12 /* wnaf */
        start local 12 // byte[] wnaf
        17: .line 479
            iload 9 /* i */
            aload 12 /* wnaf */
            arraylength
            if_icmpge 18
            aload 12 /* wnaf */
            iload 9 /* i */
            baload
            goto 19
      StackMap locals: byte[]
      StackMap stack:
        18: iconst_0
      StackMap locals:
      StackMap stack: int
        19: istore 13 /* wi */
        start local 13 // int wi
        20: .line 480
            iload 13 /* wi */
            ifeq 29
        21: .line 482
            iload 13 /* wi */
            invokestatic java.lang.Math.abs:(I)I
            istore 14 /* n */
        start local 14 // int n
        22: .line 483
            aload 1 /* infos */
            iload 11 /* j */
            aaload
            astore 15 /* info */
        start local 15 // org.bouncycastle.math.ec.WNafPreCompInfo info
        23: .line 484
            iload 13 /* wi */
            ifge 24
            iconst_1
            goto 25
      StackMap locals: int int org.bouncycastle.math.ec.WNafPreCompInfo
      StackMap stack:
        24: iconst_0
      StackMap locals:
      StackMap stack: int
        25: aload 0 /* negs */
            iload 11 /* j */
            baload
            if_icmpne 26
            aload 15 /* info */
            invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreComp:()[Lorg/bouncycastle/math/ec/ECPoint;
            goto 27
      StackMap locals:
      StackMap stack:
        26: aload 15 /* info */
            invokevirtual org.bouncycastle.math.ec.WNafPreCompInfo.getPreCompNeg:()[Lorg/bouncycastle/math/ec/ECPoint;
      StackMap locals:
      StackMap stack: org.bouncycastle.math.ec.ECPoint[]
        27: astore 16 /* table */
        start local 16 // org.bouncycastle.math.ec.ECPoint[] table
        28: .line 485
            aload 10 /* r */
            aload 16 /* table */
            iload 14 /* n */
            iconst_1
            iushr
            aaload
            invokevirtual org.bouncycastle.math.ec.ECPoint.add:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
            astore 10 /* r */
        end local 16 // org.bouncycastle.math.ec.ECPoint[] table
        end local 15 // org.bouncycastle.math.ec.WNafPreCompInfo info
        end local 14 // int n
        end local 13 // int wi
        end local 12 // byte[] wnaf
        29: .line 476
      StackMap locals: boolean[] org.bouncycastle.math.ec.WNafPreCompInfo[] byte[][] int int org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECPoint org.bouncycastle.math.ec.ECPoint int int org.bouncycastle.math.ec.ECPoint int
      StackMap stack:
            iinc 11 /* j */ 1
      StackMap locals:
      StackMap stack:
        30: iload 11 /* j */
            iload 4 /* count */
            if_icmplt 16
        end local 11 // int j
        31: .line 489
            aload 10 /* r */
            aload 6 /* infinity */
            if_acmpne 34
        32: .line 491
            iinc 8 /* zeroes */ 1
        33: .line 492
            goto 38
        34: .line 495
      StackMap locals:
      StackMap stack:
            iload 8 /* zeroes */
            ifle 37
        35: .line 497
            aload 7 /* R */
            iload 8 /* zeroes */
            invokevirtual org.bouncycastle.math.ec.ECPoint.timesPow2:(I)Lorg/bouncycastle/math/ec/ECPoint;
            astore 7 /* R */
        36: .line 498
            iconst_0
            istore 8 /* zeroes */
        37: .line 501
      StackMap locals:
      StackMap stack:
            aload 7 /* R */
            aload 10 /* r */
            invokevirtual org.bouncycastle.math.ec.ECPoint.twicePlus:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
            astore 7 /* R */
        end local 10 // org.bouncycastle.math.ec.ECPoint r
        38: .line 472
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ -1
      StackMap locals:
      StackMap stack:
        39: iload 9 /* i */
            ifge 13
        end local 9 // int i
        40: .line 504
            iload 8 /* zeroes */
            ifle 42
        41: .line 506
            aload 7 /* R */
            iload 8 /* zeroes */
            invokevirtual org.bouncycastle.math.ec.ECPoint.timesPow2:(I)Lorg/bouncycastle/math/ec/ECPoint;
            astore 7 /* R */
        42: .line 509
      StackMap locals:
      StackMap stack:
            aload 7 /* R */
            areturn
        end local 8 // int zeroes
        end local 7 // org.bouncycastle.math.ec.ECPoint R
        end local 6 // org.bouncycastle.math.ec.ECPoint infinity
        end local 5 // org.bouncycastle.math.ec.ECCurve curve
        end local 4 // int count
        end local 3 // int len
        end local 2 // byte[][] wnafs
        end local 1 // org.bouncycastle.math.ec.WNafPreCompInfo[] infos
        end local 0 // boolean[] negs
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   43     0      negs  [Z
            0   43     1     infos  [Lorg/bouncycastle/math/ec/WNafPreCompInfo;
            0   43     2     wnafs  [[B
            1   43     3       len  I
            2   43     4     count  I
            3    7     5         i  I
            8   43     5     curve  Lorg/bouncycastle/math/ec/ECCurve;
            9   43     6  infinity  Lorg/bouncycastle/math/ec/ECPoint;
           10   43     7         R  Lorg/bouncycastle/math/ec/ECPoint;
           11   43     8    zeroes  I
           12   40     9         i  I
           14   38    10         r  Lorg/bouncycastle/math/ec/ECPoint;
           15   31    11         j  I
           17   29    12      wnaf  [B
           20   29    13        wi  I
           22   29    14         n  I
           23   29    15      info  Lorg/bouncycastle/math/ec/WNafPreCompInfo;
           28   29    16     table  [Lorg/bouncycastle/math/ec/ECPoint;
    MethodParameters:
       Name  Flags
      negs   
      infos  
      wnafs  
}
SourceFile: "ECAlgorithms.java"
InnerClasses:
  public abstract AbstractF2m = org.bouncycastle.math.ec.ECCurve$AbstractF2m of org.bouncycastle.math.ec.ECCurve