public abstract class sun.security.ec.ed.EdECOperations
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: sun.security.ec.ed.EdECOperations
  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 // sun.security.ec.ed.EdECOperations this
         0: .line 37
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // sun.security.ec.ed.EdECOperations this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ec/ed/EdECOperations;

  public abstract sun.security.ec.point.Point basePointMultiply(byte[]);
    descriptor: ([B)Lsun/security/ec/point/Point;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      s     

  public abstract <T extends java.lang.Throwable> sun.security.ec.point.AffinePoint decodeAffinePoint(java.util.function.Function<java.lang.String, T>, int, sun.security.util.math.IntegerModuloP) throws T;
    descriptor: (Ljava/util/function/Function;ILsun/security/util/math/IntegerModuloP;)Lsun/security/ec/point/AffinePoint;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.lang.Throwable
    Signature: <T:Ljava/lang/Throwable;>(Ljava/util/function/Function<Ljava/lang/String;TT;>;ILsun/security/util/math/IntegerModuloP;)Lsun/security/ec/point/AffinePoint;^TT;
    MethodParameters:
           Name  Flags
      exception  
      xLSB       
      y          

  public abstract sun.security.ec.point.ImmutablePoint of(sun.security.ec.point.AffinePoint);
    descriptor: (Lsun/security/ec/point/AffinePoint;)Lsun/security/ec/point/ImmutablePoint;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      p     

  public sun.security.ec.point.MutablePoint setSum(sun.security.ec.point.MutablePoint, sun.security.ec.point.MutablePoint);
    descriptor: (Lsun/security/ec/point/MutablePoint;Lsun/security/ec/point/MutablePoint;)Lsun/security/ec/point/MutablePoint;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // sun.security.ec.ed.EdECOperations this
        start local 1 // sun.security.ec.point.MutablePoint p1
        start local 2 // sun.security.ec.point.MutablePoint p2
         0: .line 55
            aload 2 /* p2 */
            invokeinterface sun.security.ec.point.MutablePoint.getField:()Lsun/security/util/math/IntegerFieldModuloP;
            invokeinterface sun.security.util.math.IntegerFieldModuloP.get1:()Lsun/security/util/math/ImmutableIntegerModuloP;
            invokeinterface sun.security.util.math.ImmutableIntegerModuloP.mutable:()Lsun/security/util/math/MutableIntegerModuloP;
            astore 3 /* t1 */
        start local 3 // sun.security.util.math.MutableIntegerModuloP t1
         1: .line 56
            aload 2 /* p2 */
            invokeinterface sun.security.ec.point.MutablePoint.getField:()Lsun/security/util/math/IntegerFieldModuloP;
            invokeinterface sun.security.util.math.IntegerFieldModuloP.get1:()Lsun/security/util/math/ImmutableIntegerModuloP;
            invokeinterface sun.security.util.math.ImmutableIntegerModuloP.mutable:()Lsun/security/util/math/MutableIntegerModuloP;
            astore 4 /* t2 */
        start local 4 // sun.security.util.math.MutableIntegerModuloP t2
         2: .line 57
            aload 2 /* p2 */
            invokeinterface sun.security.ec.point.MutablePoint.getField:()Lsun/security/util/math/IntegerFieldModuloP;
            invokeinterface sun.security.util.math.IntegerFieldModuloP.get1:()Lsun/security/util/math/ImmutableIntegerModuloP;
            invokeinterface sun.security.util.math.ImmutableIntegerModuloP.mutable:()Lsun/security/util/math/MutableIntegerModuloP;
            astore 5 /* t3 */
        start local 5 // sun.security.util.math.MutableIntegerModuloP t3
         3: .line 58
            aload 0 /* this */
            aload 1 /* p1 */
            aload 2 /* p2 */
            aload 3 /* t1 */
            aload 4 /* t2 */
            aload 5 /* t3 */
            invokevirtual sun.security.ec.ed.EdECOperations.setSum:(Lsun/security/ec/point/MutablePoint;Lsun/security/ec/point/MutablePoint;Lsun/security/util/math/MutableIntegerModuloP;Lsun/security/util/math/MutableIntegerModuloP;Lsun/security/util/math/MutableIntegerModuloP;)Lsun/security/ec/point/MutablePoint;
            areturn
        end local 5 // sun.security.util.math.MutableIntegerModuloP t3
        end local 4 // sun.security.util.math.MutableIntegerModuloP t2
        end local 3 // sun.security.util.math.MutableIntegerModuloP t1
        end local 2 // sun.security.ec.point.MutablePoint p2
        end local 1 // sun.security.ec.point.MutablePoint p1
        end local 0 // sun.security.ec.ed.EdECOperations this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/security/ec/ed/EdECOperations;
            0    4     1    p1  Lsun/security/ec/point/MutablePoint;
            0    4     2    p2  Lsun/security/ec/point/MutablePoint;
            1    4     3    t1  Lsun/security/util/math/MutableIntegerModuloP;
            2    4     4    t2  Lsun/security/util/math/MutableIntegerModuloP;
            3    4     5    t3  Lsun/security/util/math/MutableIntegerModuloP;
    MethodParameters:
      Name  Flags
      p1    
      p2    

  public sun.security.ec.point.MutablePoint setProduct(sun.security.ec.point.MutablePoint, byte[]);
    descriptor: (Lsun/security/ec/point/MutablePoint;[B)Lsun/security/ec/point/MutablePoint;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=10, args_size=3
        start local 0 // sun.security.ec.ed.EdECOperations this
        start local 1 // sun.security.ec.point.MutablePoint p1
        start local 2 // byte[] s
         0: .line 66
            aload 1 /* p1 */
            invokeinterface sun.security.ec.point.MutablePoint.mutable:()Lsun/security/ec/point/MutablePoint;
            astore 3 /* p */
        start local 3 // sun.security.ec.point.MutablePoint p
         1: .line 67
            aload 1 /* p1 */
            aload 0 /* this */
            invokevirtual sun.security.ec.ed.EdECOperations.getNeutral:()Lsun/security/ec/point/ImmutablePoint;
            invokeinterface sun.security.ec.point.MutablePoint.setValue:(Lsun/security/ec/point/Point;)Lsun/security/ec/point/MutablePoint;
            pop
         2: .line 68
            aload 0 /* this */
            invokevirtual sun.security.ec.ed.EdECOperations.getNeutral:()Lsun/security/ec/point/ImmutablePoint;
            invokeinterface sun.security.ec.point.ImmutablePoint.mutable:()Lsun/security/ec/point/MutablePoint;
            astore 4 /* addResult */
        start local 4 // sun.security.ec.point.MutablePoint addResult
         3: .line 69
            aload 3 /* p */
            invokeinterface sun.security.ec.point.MutablePoint.getField:()Lsun/security/util/math/IntegerFieldModuloP;
            invokeinterface sun.security.util.math.IntegerFieldModuloP.get0:()Lsun/security/util/math/ImmutableIntegerModuloP;
            invokeinterface sun.security.util.math.ImmutableIntegerModuloP.mutable:()Lsun/security/util/math/MutableIntegerModuloP;
            astore 5 /* t1 */
        start local 5 // sun.security.util.math.MutableIntegerModuloP t1
         4: .line 70
            aload 3 /* p */
            invokeinterface sun.security.ec.point.MutablePoint.getField:()Lsun/security/util/math/IntegerFieldModuloP;
            invokeinterface sun.security.util.math.IntegerFieldModuloP.get0:()Lsun/security/util/math/ImmutableIntegerModuloP;
            invokeinterface sun.security.util.math.ImmutableIntegerModuloP.mutable:()Lsun/security/util/math/MutableIntegerModuloP;
            astore 6 /* t2 */
        start local 6 // sun.security.util.math.MutableIntegerModuloP t2
         5: .line 71
            aload 3 /* p */
            invokeinterface sun.security.ec.point.MutablePoint.getField:()Lsun/security/util/math/IntegerFieldModuloP;
            invokeinterface sun.security.util.math.IntegerFieldModuloP.get0:()Lsun/security/util/math/ImmutableIntegerModuloP;
            invokeinterface sun.security.util.math.ImmutableIntegerModuloP.mutable:()Lsun/security/util/math/MutableIntegerModuloP;
            astore 7 /* t3 */
        start local 7 // sun.security.util.math.MutableIntegerModuloP t3
         6: .line 73
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         7: goto 14
         8: .line 74
      StackMap locals: sun.security.ec.ed.EdECOperations sun.security.ec.point.MutablePoint byte[] sun.security.ec.point.MutablePoint sun.security.ec.point.MutablePoint sun.security.util.math.MutableIntegerModuloP sun.security.util.math.MutableIntegerModuloP sun.security.util.math.MutableIntegerModuloP int
      StackMap stack:
            aload 4 /* addResult */
            aload 1 /* p1 */
            invokeinterface sun.security.ec.point.MutablePoint.setValue:(Lsun/security/ec/point/Point;)Lsun/security/ec/point/MutablePoint;
            pop
         9: .line 75
            aload 0 /* this */
            aload 4 /* addResult */
            aload 3 /* p */
            aload 5 /* t1 */
            aload 6 /* t2 */
            aload 7 /* t3 */
            invokevirtual sun.security.ec.ed.EdECOperations.setSum:(Lsun/security/ec/point/MutablePoint;Lsun/security/ec/point/MutablePoint;Lsun/security/util/math/MutableIntegerModuloP;Lsun/security/util/math/MutableIntegerModuloP;Lsun/security/util/math/MutableIntegerModuloP;)Lsun/security/ec/point/MutablePoint;
            pop
        10: .line 76
            aload 2 /* s */
            iload 8 /* i */
            invokestatic sun.security.ec.ed.EdECOperations.bitAt:([BI)I
            istore 9 /* swap */
        start local 9 // int swap
        11: .line 77
            aload 1 /* p1 */
            aload 4 /* addResult */
            iload 9 /* swap */
            invokeinterface sun.security.ec.point.MutablePoint.conditionalSet:(Lsun/security/ec/point/Point;I)Lsun/security/ec/point/MutablePoint;
            pop
        12: .line 78
            aload 0 /* this */
            aload 3 /* p */
            aload 5 /* t1 */
            aload 6 /* t2 */
            invokevirtual sun.security.ec.ed.EdECOperations.setDouble:(Lsun/security/ec/point/MutablePoint;Lsun/security/util/math/MutableIntegerModuloP;Lsun/security/util/math/MutableIntegerModuloP;)Lsun/security/ec/point/MutablePoint;
            pop
        end local 9 // int swap
        13: .line 73
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 8 /* i */
            aload 2 /* s */
            arraylength
            bipush 8
            imul
            if_icmplt 8
        end local 8 // int i
        15: .line 81
            aload 1 /* p1 */
            areturn
        end local 7 // sun.security.util.math.MutableIntegerModuloP t3
        end local 6 // sun.security.util.math.MutableIntegerModuloP t2
        end local 5 // sun.security.util.math.MutableIntegerModuloP t1
        end local 4 // sun.security.ec.point.MutablePoint addResult
        end local 3 // sun.security.ec.point.MutablePoint p
        end local 2 // byte[] s
        end local 1 // sun.security.ec.point.MutablePoint p1
        end local 0 // sun.security.ec.ed.EdECOperations this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   16     0       this  Lsun/security/ec/ed/EdECOperations;
            0   16     1         p1  Lsun/security/ec/point/MutablePoint;
            0   16     2          s  [B
            1   16     3          p  Lsun/security/ec/point/MutablePoint;
            3   16     4  addResult  Lsun/security/ec/point/MutablePoint;
            4   16     5         t1  Lsun/security/util/math/MutableIntegerModuloP;
            5   16     6         t2  Lsun/security/util/math/MutableIntegerModuloP;
            6   16     7         t3  Lsun/security/util/math/MutableIntegerModuloP;
            7   15     8          i  I
           11   13     9       swap  I
    MethodParameters:
      Name  Flags
      p1    
      s     

  protected abstract sun.security.ec.point.ImmutablePoint getNeutral();
    descriptor: ()Lsun/security/ec/point/ImmutablePoint;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract sun.security.ec.point.MutablePoint setSum(sun.security.ec.point.MutablePoint, sun.security.ec.point.MutablePoint, sun.security.util.math.MutableIntegerModuloP, sun.security.util.math.MutableIntegerModuloP, sun.security.util.math.MutableIntegerModuloP);
    descriptor: (Lsun/security/ec/point/MutablePoint;Lsun/security/ec/point/MutablePoint;Lsun/security/util/math/MutableIntegerModuloP;Lsun/security/util/math/MutableIntegerModuloP;Lsun/security/util/math/MutableIntegerModuloP;)Lsun/security/ec/point/MutablePoint;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      p1    
      p2    
      t1    
      t2    
      t3    

  protected abstract sun.security.ec.point.MutablePoint setDouble(sun.security.ec.point.MutablePoint, sun.security.util.math.MutableIntegerModuloP, sun.security.util.math.MutableIntegerModuloP);
    descriptor: (Lsun/security/ec/point/MutablePoint;Lsun/security/util/math/MutableIntegerModuloP;Lsun/security/util/math/MutableIntegerModuloP;)Lsun/security/ec/point/MutablePoint;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      p     
      t1    
      t2    

  private static int bitAt(byte[], int);
    descriptor: ([BI)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // byte[] arr
        start local 1 // int index
         0: .line 99
            iload 1 /* index */
            bipush 8
            idiv
            istore 2 /* byteIndex */
        start local 2 // int byteIndex
         1: .line 100
            iload 1 /* index */
            bipush 8
            irem
            istore 3 /* bitIndex */
        start local 3 // int bitIndex
         2: .line 101
            aload 0 /* arr */
            iload 2 /* byteIndex */
            baload
            iconst_1
            iload 3 /* bitIndex */
            ishl
            iand
            iload 3 /* bitIndex */
            ishr
            ireturn
        end local 3 // int bitIndex
        end local 2 // int byteIndex
        end local 1 // int index
        end local 0 // byte[] arr
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0        arr  [B
            0    3     1      index  I
            1    3     2  byteIndex  I
            2    3     3   bitIndex  I
    MethodParameters:
       Name  Flags
      arr    
      index  
}
SourceFile: "EdECOperations.java"