public abstract class org.bouncycastle.math.ec.AbstractECMultiplier implements org.bouncycastle.math.ec.ECMultiplier
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.bouncycastle.math.ec.AbstractECMultiplier
  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.AbstractECMultiplier this
         0: .line 5
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.bouncycastle.math.ec.AbstractECMultiplier this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/AbstractECMultiplier;

  public org.bouncycastle.math.ec.ECPoint multiply(org.bouncycastle.math.ec.ECPoint, java.math.BigInteger);
    descriptor: (Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // org.bouncycastle.math.ec.AbstractECMultiplier this
        start local 1 // org.bouncycastle.math.ec.ECPoint p
        start local 2 // java.math.BigInteger k
         0: .line 9
            aload 2 /* k */
            invokevirtual java.math.BigInteger.signum:()I
            istore 3 /* sign */
        start local 3 // int sign
         1: .line 10
            iload 3 /* sign */
            ifeq 2
            aload 1 /* p */
            invokevirtual org.bouncycastle.math.ec.ECPoint.isInfinity:()Z
            ifeq 3
         2: .line 12
      StackMap locals: int
      StackMap stack:
            aload 1 /* 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;
            areturn
         3: .line 15
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* p */
            aload 2 /* k */
            invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.math.ec.AbstractECMultiplier.multiplyPositive:(Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
            astore 4 /* positive */
        start local 4 // org.bouncycastle.math.ec.ECPoint positive
         4: .line 16
            iload 3 /* sign */
            ifle 5
            aload 4 /* positive */
            goto 6
      StackMap locals: org.bouncycastle.math.ec.ECPoint
      StackMap stack:
         5: aload 4 /* positive */
            invokevirtual org.bouncycastle.math.ec.ECPoint.negate:()Lorg/bouncycastle/math/ec/ECPoint;
      StackMap locals:
      StackMap stack: org.bouncycastle.math.ec.ECPoint
         6: astore 5 /* result */
        start local 5 // org.bouncycastle.math.ec.ECPoint result
         7: .line 22
            aload 0 /* this */
            aload 5 /* result */
            invokevirtual org.bouncycastle.math.ec.AbstractECMultiplier.checkResult:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        end local 5 // org.bouncycastle.math.ec.ECPoint result
        end local 4 // org.bouncycastle.math.ec.ECPoint positive
        end local 3 // int sign
        end local 2 // java.math.BigInteger k
        end local 1 // org.bouncycastle.math.ec.ECPoint p
        end local 0 // org.bouncycastle.math.ec.AbstractECMultiplier this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lorg/bouncycastle/math/ec/AbstractECMultiplier;
            0    8     1         p  Lorg/bouncycastle/math/ec/ECPoint;
            0    8     2         k  Ljava/math/BigInteger;
            1    8     3      sign  I
            4    8     4  positive  Lorg/bouncycastle/math/ec/ECPoint;
            7    8     5    result  Lorg/bouncycastle/math/ec/ECPoint;
    MethodParameters:
      Name  Flags
      p     
      k     

  protected abstract org.bouncycastle.math.ec.ECPoint multiplyPositive(org.bouncycastle.math.ec.ECPoint, java.math.BigInteger);
    descriptor: (Lorg/bouncycastle/math/ec/ECPoint;Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      p     
      k     

  protected org.bouncycastle.math.ec.ECPoint checkResult(org.bouncycastle.math.ec.ECPoint);
    descriptor: (Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.bouncycastle.math.ec.AbstractECMultiplier this
        start local 1 // org.bouncycastle.math.ec.ECPoint p
         0: .line 29
            aload 1 /* p */
            invokestatic org.bouncycastle.math.ec.ECAlgorithms.implCheckResult:(Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        end local 1 // org.bouncycastle.math.ec.ECPoint p
        end local 0 // org.bouncycastle.math.ec.AbstractECMultiplier this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/AbstractECMultiplier;
            0    1     1     p  Lorg/bouncycastle/math/ec/ECPoint;
    MethodParameters:
      Name  Flags
      p     
}
SourceFile: "AbstractECMultiplier.java"