public class sun.security.ec.XECOperations
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.security.ec.XECOperations
  super_class: java.lang.Object
{
  private final sun.security.ec.XECParameters params;
    descriptor: Lsun/security/ec/XECParameters;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final sun.security.util.math.IntegerFieldModuloP field;
    descriptor: Lsun/security/util/math/IntegerFieldModuloP;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final sun.security.util.math.ImmutableIntegerModuloP zero;
    descriptor: Lsun/security/util/math/ImmutableIntegerModuloP;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final sun.security.util.math.ImmutableIntegerModuloP one;
    descriptor: Lsun/security/util/math/ImmutableIntegerModuloP;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final sun.security.util.math.SmallValue a24;
    descriptor: Lsun/security/util/math/SmallValue;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final sun.security.util.math.ImmutableIntegerModuloP basePoint;
    descriptor: Lsun/security/util/math/ImmutableIntegerModuloP;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(sun.security.ec.XECParameters);
    descriptor: (Lsun/security/ec/XECParameters;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // sun.security.ec.XECOperations this
        start local 1 // sun.security.ec.XECParameters c
         0: .line 49
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 50
            aload 0 /* this */
            aload 1 /* c */
            putfield sun.security.ec.XECOperations.params:Lsun/security/ec/XECParameters;
         2: .line 52
            aload 0 /* this */
            getfield sun.security.ec.XECOperations.params:Lsun/security/ec/XECParameters;
            invokevirtual sun.security.ec.XECParameters.getP:()Ljava/math/BigInteger;
            astore 2 /* p */
        start local 2 // java.math.BigInteger p
         3: .line 53
            aload 0 /* this */
            aload 2 /* p */
            invokestatic sun.security.ec.XECOperations.getIntegerFieldModulo:(Ljava/math/BigInteger;)Lsun/security/util/math/IntegerFieldModuloP;
            putfield sun.security.ec.XECOperations.field:Lsun/security/util/math/IntegerFieldModuloP;
         4: .line 54
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ec.XECOperations.field:Lsun/security/util/math/IntegerFieldModuloP;
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            invokeinterface sun.security.util.math.IntegerFieldModuloP.getElement:(Ljava/math/BigInteger;)Lsun/security/util/math/ImmutableIntegerModuloP;
            invokeinterface sun.security.util.math.ImmutableIntegerModuloP.fixed:()Lsun/security/util/math/ImmutableIntegerModuloP;
            putfield sun.security.ec.XECOperations.zero:Lsun/security/util/math/ImmutableIntegerModuloP;
         5: .line 55
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ec.XECOperations.field:Lsun/security/util/math/IntegerFieldModuloP;
            invokeinterface sun.security.util.math.IntegerFieldModuloP.get1:()Lsun/security/util/math/ImmutableIntegerModuloP;
            invokeinterface sun.security.util.math.ImmutableIntegerModuloP.fixed:()Lsun/security/util/math/ImmutableIntegerModuloP;
            putfield sun.security.ec.XECOperations.one:Lsun/security/util/math/ImmutableIntegerModuloP;
         6: .line 56
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ec.XECOperations.field:Lsun/security/util/math/IntegerFieldModuloP;
            aload 0 /* this */
            getfield sun.security.ec.XECOperations.params:Lsun/security/ec/XECParameters;
            invokevirtual sun.security.ec.XECParameters.getA24:()I
            invokeinterface sun.security.util.math.IntegerFieldModuloP.getSmallValue:(I)Lsun/security/util/math/SmallValue;
            putfield sun.security.ec.XECOperations.a24:Lsun/security/util/math/SmallValue;
         7: .line 57
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ec.XECOperations.field:Lsun/security/util/math/IntegerFieldModuloP;
         8: .line 58
            aload 1 /* c */
            invokevirtual sun.security.ec.XECParameters.getBasePoint:()B
            i2l
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
         9: .line 57
            invokeinterface sun.security.util.math.IntegerFieldModuloP.getElement:(Ljava/math/BigInteger;)Lsun/security/util/math/ImmutableIntegerModuloP;
            putfield sun.security.ec.XECOperations.basePoint:Lsun/security/util/math/ImmutableIntegerModuloP;
        10: .line 59
            return
        end local 2 // java.math.BigInteger p
        end local 1 // sun.security.ec.XECParameters c
        end local 0 // sun.security.ec.XECOperations this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lsun/security/ec/XECOperations;
            0   11     1     c  Lsun/security/ec/XECParameters;
            3   11     2     p  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      c     

  public sun.security.ec.XECParameters getParameters();
    descriptor: ()Lsun/security/ec/XECParameters;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ec.XECOperations this
         0: .line 62
            aload 0 /* this */
            getfield sun.security.ec.XECOperations.params:Lsun/security/ec/XECParameters;
            areturn
        end local 0 // sun.security.ec.XECOperations this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ec/XECOperations;

  public byte[] generatePrivate(java.security.SecureRandom);
    descriptor: (Ljava/security/SecureRandom;)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.security.ec.XECOperations this
        start local 1 // java.security.SecureRandom random
         0: .line 66
            aload 0 /* this */
            getfield sun.security.ec.XECOperations.params:Lsun/security/ec/XECParameters;
            invokevirtual sun.security.ec.XECParameters.getBytes:()I
            newarray 8
            astore 2 /* result */
        start local 2 // byte[] result
         1: .line 67
            aload 1 /* random */
            aload 2 /* result */
            invokevirtual java.security.SecureRandom.nextBytes:([B)V
         2: .line 68
            aload 2 /* result */
            areturn
        end local 2 // byte[] result
        end local 1 // java.security.SecureRandom random
        end local 0 // sun.security.ec.XECOperations this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lsun/security/ec/XECOperations;
            0    3     1  random  Ljava/security/SecureRandom;
            1    3     2  result  [B
    MethodParameters:
        Name  Flags
      random  

  public java.math.BigInteger computePublic(byte[]);
    descriptor: ([B)Ljava/math/BigInteger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.ec.XECOperations this
        start local 1 // byte[] k
         0: .line 76
            aload 0 /* this */
            aload 1 /* k */
            invokevirtual sun.security.ec.XECOperations.pruneK:([B)V
         1: .line 77
            aload 0 /* this */
            aload 1 /* k */
            aload 0 /* this */
            getfield sun.security.ec.XECOperations.basePoint:Lsun/security/util/math/ImmutableIntegerModuloP;
            invokevirtual sun.security.ec.XECOperations.pointMultiply:([BLsun/security/util/math/ImmutableIntegerModuloP;)Lsun/security/util/math/IntegerModuloP;
            invokeinterface sun.security.util.math.IntegerModuloP.asBigInteger:()Ljava/math/BigInteger;
            areturn
        end local 1 // byte[] k
        end local 0 // sun.security.ec.XECOperations this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/ec/XECOperations;
            0    2     1     k  [B
    MethodParameters:
      Name  Flags
      k     

  public byte[] encodedPointMultiply(byte[], java.math.BigInteger);
    descriptor: ([BLjava/math/BigInteger;)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // sun.security.ec.XECOperations this
        start local 1 // byte[] k
        start local 2 // java.math.BigInteger u
         0: .line 91
            aload 0 /* this */
            aload 1 /* k */
            invokevirtual sun.security.ec.XECOperations.pruneK:([B)V
         1: .line 92
            aload 0 /* this */
            getfield sun.security.ec.XECOperations.field:Lsun/security/util/math/IntegerFieldModuloP;
            aload 2 /* u */
            invokeinterface sun.security.util.math.IntegerFieldModuloP.getElement:(Ljava/math/BigInteger;)Lsun/security/util/math/ImmutableIntegerModuloP;
            astore 3 /* elemU */
        start local 3 // sun.security.util.math.ImmutableIntegerModuloP elemU
         2: .line 93
            aload 0 /* this */
            aload 1 /* k */
            aload 3 /* elemU */
            invokevirtual sun.security.ec.XECOperations.pointMultiply:([BLsun/security/util/math/ImmutableIntegerModuloP;)Lsun/security/util/math/IntegerModuloP;
            aload 0 /* this */
            getfield sun.security.ec.XECOperations.params:Lsun/security/ec/XECParameters;
            invokevirtual sun.security.ec.XECParameters.getBytes:()I
            invokeinterface sun.security.util.math.IntegerModuloP.asByteArray:(I)[B
            areturn
        end local 3 // sun.security.util.math.ImmutableIntegerModuloP elemU
        end local 2 // java.math.BigInteger u
        end local 1 // byte[] k
        end local 0 // sun.security.ec.XECOperations this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lsun/security/ec/XECOperations;
            0    3     1      k  [B
            0    3     2      u  Ljava/math/BigInteger;
            2    3     3  elemU  Lsun/security/util/math/ImmutableIntegerModuloP;
    MethodParameters:
      Name  Flags
      k     
      u     

  public byte[] encodedPointMultiply(byte[], byte[]);
    descriptor: ([B[B)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // sun.security.ec.XECOperations this
        start local 1 // byte[] k
        start local 2 // byte[] u
         0: .line 107
            aload 0 /* this */
            aload 1 /* k */
            invokevirtual sun.security.ec.XECOperations.pruneK:([B)V
         1: .line 108
            aload 0 /* this */
            aload 2 /* u */
            invokevirtual sun.security.ec.XECOperations.decodeU:([B)Lsun/security/util/math/ImmutableIntegerModuloP;
            astore 3 /* elemU */
        start local 3 // sun.security.util.math.ImmutableIntegerModuloP elemU
         2: .line 109
            aload 0 /* this */
            aload 1 /* k */
            aload 3 /* elemU */
            invokevirtual sun.security.ec.XECOperations.pointMultiply:([BLsun/security/util/math/ImmutableIntegerModuloP;)Lsun/security/util/math/IntegerModuloP;
            aload 0 /* this */
            getfield sun.security.ec.XECOperations.params:Lsun/security/ec/XECParameters;
            invokevirtual sun.security.ec.XECParameters.getBytes:()I
            invokeinterface sun.security.util.math.IntegerModuloP.asByteArray:(I)[B
            areturn
        end local 3 // sun.security.util.math.ImmutableIntegerModuloP elemU
        end local 2 // byte[] u
        end local 1 // byte[] k
        end local 0 // sun.security.ec.XECOperations this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lsun/security/ec/XECOperations;
            0    3     1      k  [B
            0    3     2      u  [B
            2    3     3  elemU  Lsun/security/util/math/ImmutableIntegerModuloP;
    MethodParameters:
      Name  Flags
      k     
      u     

  private sun.security.util.math.ImmutableIntegerModuloP decodeU(byte[], int);
    descriptor: ([BI)Lsun/security/util/math/ImmutableIntegerModuloP;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // sun.security.ec.XECOperations this
        start local 1 // byte[] u
        start local 2 // int bits
         0: .line 122
            aload 1 /* u */
            iload 2 /* bits */
            invokestatic sun.security.ec.XECOperations.maskHighOrder:([BI)B
            pop
         1: .line 124
            aload 0 /* this */
            getfield sun.security.ec.XECOperations.field:Lsun/security/util/math/IntegerFieldModuloP;
            aload 1 /* u */
            invokeinterface sun.security.util.math.IntegerFieldModuloP.getElement:([B)Lsun/security/util/math/ImmutableIntegerModuloP;
            areturn
        end local 2 // int bits
        end local 1 // byte[] u
        end local 0 // sun.security.ec.XECOperations this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/ec/XECOperations;
            0    2     1     u  [B
            0    2     2  bits  I
    MethodParameters:
      Name  Flags
      u     
      bits  

  private static byte maskHighOrder(byte[], int);
    descriptor: ([BI)B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // byte[] arr
        start local 1 // int bits
         0: .line 137
            aload 0 /* arr */
            arraylength
            iconst_1
            isub
            istore 2 /* lastByteIndex */
        start local 2 // int lastByteIndex
         1: .line 138
            iload 1 /* bits */
            bipush 8
            irem
            i2b
            istore 3 /* bitsMod8 */
        start local 3 // byte bitsMod8
         2: .line 139
            iload 3 /* bitsMod8 */
            ifne 3
            bipush 8
            goto 4
      StackMap locals: int int
      StackMap stack:
         3: iload 3 /* bitsMod8 */
      StackMap locals:
      StackMap stack: int
         4: istore 4 /* highBits */
        start local 4 // byte highBits
         5: .line 140
            iconst_1
            iload 4 /* highBits */
            ishl
            iconst_1
            isub
            i2b
            istore 5 /* msbMaskOff */
        start local 5 // byte msbMaskOff
         6: .line 141
            aload 0 /* arr */
            iload 2 /* lastByteIndex */
            dup2
            baload
            iload 5 /* msbMaskOff */
            iand
            i2b
            bastore
         7: .line 143
            iload 4 /* highBits */
            ireturn
        end local 5 // byte msbMaskOff
        end local 4 // byte highBits
        end local 3 // byte bitsMod8
        end local 2 // int lastByteIndex
        end local 1 // int bits
        end local 0 // byte[] arr
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0            arr  [B
            0    8     1           bits  I
            1    8     2  lastByteIndex  I
            2    8     3       bitsMod8  B
            5    8     4       highBits  B
            6    8     5     msbMaskOff  B
    MethodParameters:
      Name  Flags
      arr   
      bits  

  private static void pruneK(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // byte[] k
        start local 1 // int bits
        start local 2 // int logCofactor
         0: .line 157
            aload 0 /* k */
            arraylength
            iconst_1
            isub
            istore 3 /* lastByteIndex */
        start local 3 // int lastByteIndex
         1: .line 160
            aload 0 /* k */
            iload 1 /* bits */
            invokestatic sun.security.ec.XECOperations.maskHighOrder:([BI)B
            istore 4 /* highBits */
        start local 4 // byte highBits
         2: .line 163
            iconst_1
            iload 4 /* highBits */
            iconst_1
            isub
            ishl
            i2b
            istore 5 /* msbMaskOn */
        start local 5 // byte msbMaskOn
         3: .line 164
            aload 0 /* k */
            iload 3 /* lastByteIndex */
            dup2
            baload
            iload 5 /* msbMaskOn */
            ior
            i2b
            bastore
         4: .line 167
            sipush 255
            iload 2 /* logCofactor */
            ishl
            i2b
            istore 6 /* lsbMaskOff */
        start local 6 // byte lsbMaskOff
         5: .line 168
            aload 0 /* k */
            iconst_0
            dup2
            baload
            iload 6 /* lsbMaskOff */
            iand
            i2b
            bastore
         6: .line 169
            return
        end local 6 // byte lsbMaskOff
        end local 5 // byte msbMaskOn
        end local 4 // byte highBits
        end local 3 // int lastByteIndex
        end local 2 // int logCofactor
        end local 1 // int bits
        end local 0 // byte[] k
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0              k  [B
            0    7     1           bits  I
            0    7     2    logCofactor  I
            1    7     3  lastByteIndex  I
            2    7     4       highBits  B
            3    7     5      msbMaskOn  B
            5    7     6     lsbMaskOff  B
    MethodParameters:
             Name  Flags
      k            
      bits         
      logCofactor  

  private void pruneK(byte[]);
    descriptor: ([B)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.ec.XECOperations this
        start local 1 // byte[] k
         0: .line 172
            aload 1 /* k */
            aload 0 /* this */
            getfield sun.security.ec.XECOperations.params:Lsun/security/ec/XECParameters;
            invokevirtual sun.security.ec.XECParameters.getBits:()I
            aload 0 /* this */
            getfield sun.security.ec.XECOperations.params:Lsun/security/ec/XECParameters;
            invokevirtual sun.security.ec.XECParameters.getLogCofactor:()I
            invokestatic sun.security.ec.XECOperations.pruneK:([BII)V
         1: .line 173
            return
        end local 1 // byte[] k
        end local 0 // sun.security.ec.XECOperations this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/ec/XECOperations;
            0    2     1     k  [B
    MethodParameters:
      Name  Flags
      k     

  private sun.security.util.math.ImmutableIntegerModuloP decodeU(byte[]);
    descriptor: ([B)Lsun/security/util/math/ImmutableIntegerModuloP;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.ec.XECOperations this
        start local 1 // byte[] u
         0: .line 176
            aload 0 /* this */
            aload 1 /* u */
            aload 0 /* this */
            getfield sun.security.ec.XECOperations.params:Lsun/security/ec/XECParameters;
            invokevirtual sun.security.ec.XECParameters.getBits:()I
            invokevirtual sun.security.ec.XECOperations.decodeU:([BI)Lsun/security/util/math/ImmutableIntegerModuloP;
            areturn
        end local 1 // byte[] u
        end local 0 // sun.security.ec.XECOperations this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ec/XECOperations;
            0    1     1     u  [B
    MethodParameters:
      Name  Flags
      u     

  private static void cswap(int, sun.security.util.math.MutableIntegerModuloP, sun.security.util.math.MutableIntegerModuloP);
    descriptor: (ILsun/security/util/math/MutableIntegerModuloP;Lsun/security/util/math/MutableIntegerModuloP;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // int swap
        start local 1 // sun.security.util.math.MutableIntegerModuloP x1
        start local 2 // sun.security.util.math.MutableIntegerModuloP x2
         0: .line 183
            aload 1 /* x1 */
            aload 2 /* x2 */
            iload 0 /* swap */
            invokeinterface sun.security.util.math.MutableIntegerModuloP.conditionalSwapWith:(Lsun/security/util/math/MutableIntegerModuloP;I)V
         1: .line 184
            return
        end local 2 // sun.security.util.math.MutableIntegerModuloP x2
        end local 1 // sun.security.util.math.MutableIntegerModuloP x1
        end local 0 // int swap
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  swap  I
            0    2     1    x1  Lsun/security/util/math/MutableIntegerModuloP;
            0    2     2    x2  Lsun/security/util/math/MutableIntegerModuloP;
    MethodParameters:
      Name  Flags
      swap  
      x1    
      x2    

  private static sun.security.util.math.IntegerFieldModuloP getIntegerFieldModulo(java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;)Lsun/security/util/math/IntegerFieldModuloP;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.math.BigInteger p
         0: .line 188
            aload 0 /* p */
            getstatic sun.security.util.math.intpoly.IntegerPolynomial25519.MODULUS:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 189
            new sun.security.util.math.intpoly.IntegerPolynomial25519
            dup
            invokespecial sun.security.util.math.intpoly.IntegerPolynomial25519.<init>:()V
            areturn
         2: .line 191
      StackMap locals:
      StackMap stack:
            aload 0 /* p */
            getstatic sun.security.util.math.intpoly.IntegerPolynomial448.MODULUS:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 192
            new sun.security.util.math.intpoly.IntegerPolynomial448
            dup
            invokespecial sun.security.util.math.intpoly.IntegerPolynomial448.<init>:()V
            areturn
         4: .line 195
      StackMap locals:
      StackMap stack:
            new java.security.ProviderException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported prime: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* p */
            invokevirtual java.math.BigInteger.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // java.math.BigInteger p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     p  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      p     

  private int bitAt(byte[], int);
    descriptor: ([BI)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // sun.security.ec.XECOperations this
        start local 1 // byte[] arr
        start local 2 // int index
         0: .line 199
            iload 2 /* index */
            bipush 8
            idiv
            istore 3 /* byteIndex */
        start local 3 // int byteIndex
         1: .line 200
            iload 2 /* index */
            bipush 8
            irem
            istore 4 /* bitIndex */
        start local 4 // int bitIndex
         2: .line 201
            aload 1 /* arr */
            iload 3 /* byteIndex */
            baload
            iconst_1
            iload 4 /* bitIndex */
            ishl
            iand
            iload 4 /* bitIndex */
            ishr
            ireturn
        end local 4 // int bitIndex
        end local 3 // int byteIndex
        end local 2 // int index
        end local 1 // byte[] arr
        end local 0 // sun.security.ec.XECOperations this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lsun/security/ec/XECOperations;
            0    3     1        arr  [B
            0    3     2      index  I
            1    3     3  byteIndex  I
            2    3     4   bitIndex  I
    MethodParameters:
       Name  Flags
      arr    
      index  

  private sun.security.util.math.IntegerModuloP pointMultiply(byte[], sun.security.util.math.ImmutableIntegerModuloP);
    descriptor: ([BLsun/security/util/math/ImmutableIntegerModuloP;)Lsun/security/util/math/IntegerModuloP;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=15, args_size=3
        start local 0 // sun.security.ec.XECOperations this
        start local 1 // byte[] k
        start local 2 // sun.security.util.math.ImmutableIntegerModuloP u
         0: .line 211
            aload 2 /* u */
            astore 3 /* x_1 */
        start local 3 // sun.security.util.math.ImmutableIntegerModuloP x_1
         1: .line 212
            aload 0 /* this */
            getfield sun.security.ec.XECOperations.one:Lsun/security/util/math/ImmutableIntegerModuloP;
            invokeinterface sun.security.util.math.ImmutableIntegerModuloP.mutable:()Lsun/security/util/math/MutableIntegerModuloP;
            astore 4 /* x_2 */
        start local 4 // sun.security.util.math.MutableIntegerModuloP x_2
         2: .line 213
            aload 0 /* this */
            getfield sun.security.ec.XECOperations.zero:Lsun/security/util/math/ImmutableIntegerModuloP;
            invokeinterface sun.security.util.math.ImmutableIntegerModuloP.mutable:()Lsun/security/util/math/MutableIntegerModuloP;
            astore 5 /* z_2 */
        start local 5 // sun.security.util.math.MutableIntegerModuloP z_2
         3: .line 214
            aload 2 /* u */
            invokeinterface sun.security.util.math.ImmutableIntegerModuloP.mutable:()Lsun/security/util/math/MutableIntegerModuloP;
            astore 6 /* x_3 */
        start local 6 // sun.security.util.math.MutableIntegerModuloP x_3
         4: .line 215
            aload 0 /* this */
            getfield sun.security.ec.XECOperations.one:Lsun/security/util/math/ImmutableIntegerModuloP;
            invokeinterface sun.security.util.math.ImmutableIntegerModuloP.mutable:()Lsun/security/util/math/MutableIntegerModuloP;
            astore 7 /* z_3 */
        start local 7 // sun.security.util.math.MutableIntegerModuloP z_3
         5: .line 216
            iconst_0
            istore 8 /* swap */
        start local 8 // int swap
         6: .line 220
            aload 0 /* this */
            getfield sun.security.ec.XECOperations.zero:Lsun/security/util/math/ImmutableIntegerModuloP;
            invokeinterface sun.security.util.math.ImmutableIntegerModuloP.mutable:()Lsun/security/util/math/MutableIntegerModuloP;
            astore 9 /* m1 */
        start local 9 // sun.security.util.math.MutableIntegerModuloP m1
         7: .line 221
            aload 0 /* this */
            getfield sun.security.ec.XECOperations.zero:Lsun/security/util/math/ImmutableIntegerModuloP;
            invokeinterface sun.security.util.math.ImmutableIntegerModuloP.mutable:()Lsun/security/util/math/MutableIntegerModuloP;
            astore 10 /* DA */
        start local 10 // sun.security.util.math.MutableIntegerModuloP DA
         8: .line 222
            aload 0 /* this */
            getfield sun.security.ec.XECOperations.zero:Lsun/security/util/math/ImmutableIntegerModuloP;
            invokeinterface sun.security.util.math.ImmutableIntegerModuloP.mutable:()Lsun/security/util/math/MutableIntegerModuloP;
            astore 11 /* E */
        start local 11 // sun.security.util.math.MutableIntegerModuloP E
         9: .line 223
            aload 0 /* this */
            getfield sun.security.ec.XECOperations.zero:Lsun/security/util/math/ImmutableIntegerModuloP;
            invokeinterface sun.security.util.math.ImmutableIntegerModuloP.mutable:()Lsun/security/util/math/MutableIntegerModuloP;
            astore 12 /* a24_times_E */
        start local 12 // sun.security.util.math.MutableIntegerModuloP a24_times_E
        10: .line 227
            aload 0 /* this */
            getfield sun.security.ec.XECOperations.params:Lsun/security/ec/XECParameters;
            invokevirtual sun.security.ec.XECParameters.getBits:()I
            iconst_1
            isub
            istore 13 /* t */
        start local 13 // int t
        11: goto 31
        12: .line 228
      StackMap locals: sun.security.ec.XECOperations byte[] sun.security.util.math.ImmutableIntegerModuloP sun.security.util.math.ImmutableIntegerModuloP sun.security.util.math.MutableIntegerModuloP sun.security.util.math.MutableIntegerModuloP sun.security.util.math.MutableIntegerModuloP sun.security.util.math.MutableIntegerModuloP int sun.security.util.math.MutableIntegerModuloP sun.security.util.math.MutableIntegerModuloP sun.security.util.math.MutableIntegerModuloP sun.security.util.math.MutableIntegerModuloP int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* k */
            iload 13 /* t */
            invokevirtual sun.security.ec.XECOperations.bitAt:([BI)I
            istore 14 /* k_t */
        start local 14 // int k_t
        13: .line 229
            iload 8 /* swap */
            iload 14 /* k_t */
            ixor
            istore 8 /* swap */
        14: .line 230
            iload 8 /* swap */
            aload 4 /* x_2 */
            aload 6 /* x_3 */
            invokestatic sun.security.ec.XECOperations.cswap:(ILsun/security/util/math/MutableIntegerModuloP;Lsun/security/util/math/MutableIntegerModuloP;)V
        15: .line 231
            iload 8 /* swap */
            aload 5 /* z_2 */
            aload 7 /* z_3 */
            invokestatic sun.security.ec.XECOperations.cswap:(ILsun/security/util/math/MutableIntegerModuloP;Lsun/security/util/math/MutableIntegerModuloP;)V
        16: .line 232
            iload 14 /* k_t */
            istore 8 /* swap */
        17: .line 235
            aload 9 /* m1 */
            aload 4 /* x_2 */
            invokeinterface sun.security.util.math.MutableIntegerModuloP.setValue:(Lsun/security/util/math/IntegerModuloP;)Lsun/security/util/math/MutableIntegerModuloP;
            aload 5 /* z_2 */
            invokeinterface sun.security.util.math.MutableIntegerModuloP.setSum:(Lsun/security/util/math/IntegerModuloP;)Lsun/security/util/math/MutableIntegerModuloP;
            pop
        18: .line 238
            aload 10 /* DA */
            aload 6 /* x_3 */
            invokeinterface sun.security.util.math.MutableIntegerModuloP.setValue:(Lsun/security/util/math/IntegerModuloP;)Lsun/security/util/math/MutableIntegerModuloP;
            aload 7 /* z_3 */
            invokeinterface sun.security.util.math.MutableIntegerModuloP.setDifference:(Lsun/security/util/math/IntegerModuloP;)Lsun/security/util/math/MutableIntegerModuloP;
            aload 9 /* m1 */
            invokeinterface sun.security.util.math.MutableIntegerModuloP.setProduct:(Lsun/security/util/math/IntegerModuloP;)Lsun/security/util/math/MutableIntegerModuloP;
            pop
        19: .line 240
            aload 9 /* m1 */
            invokeinterface sun.security.util.math.MutableIntegerModuloP.setSquare:()Lsun/security/util/math/MutableIntegerModuloP;
            pop
        20: .line 242
            aload 4 /* x_2 */
            aload 5 /* z_2 */
            invokeinterface sun.security.util.math.MutableIntegerModuloP.setDifference:(Lsun/security/util/math/IntegerModuloP;)Lsun/security/util/math/MutableIntegerModuloP;
            pop
        21: .line 245
            aload 6 /* x_3 */
            aload 7 /* z_3 */
            invokeinterface sun.security.util.math.MutableIntegerModuloP.setSum:(Lsun/security/util/math/IntegerModuloP;)Lsun/security/util/math/MutableIntegerModuloP;
            aload 4 /* x_2 */
            invokeinterface sun.security.util.math.MutableIntegerModuloP.setProduct:(Lsun/security/util/math/IntegerModuloP;)Lsun/security/util/math/MutableIntegerModuloP;
            pop
        22: .line 247
            aload 4 /* x_2 */
            invokeinterface sun.security.util.math.MutableIntegerModuloP.setSquare:()Lsun/security/util/math/MutableIntegerModuloP;
            pop
        23: .line 249
            aload 11 /* E */
            aload 9 /* m1 */
            invokeinterface sun.security.util.math.MutableIntegerModuloP.setValue:(Lsun/security/util/math/IntegerModuloP;)Lsun/security/util/math/MutableIntegerModuloP;
            aload 4 /* x_2 */
            invokeinterface sun.security.util.math.MutableIntegerModuloP.setDifference:(Lsun/security/util/math/IntegerModuloP;)Lsun/security/util/math/MutableIntegerModuloP;
            pop
        24: .line 251
            aload 12 /* a24_times_E */
            aload 11 /* E */
            invokeinterface sun.security.util.math.MutableIntegerModuloP.setValue:(Lsun/security/util/math/IntegerModuloP;)Lsun/security/util/math/MutableIntegerModuloP;
            pop
        25: .line 252
            aload 12 /* a24_times_E */
            aload 0 /* this */
            getfield sun.security.ec.XECOperations.a24:Lsun/security/util/math/SmallValue;
            invokeinterface sun.security.util.math.MutableIntegerModuloP.setProduct:(Lsun/security/util/math/SmallValue;)Lsun/security/util/math/MutableIntegerModuloP;
            pop
        26: .line 256
            aload 4 /* x_2 */
            aload 9 /* m1 */
            invokeinterface sun.security.util.math.MutableIntegerModuloP.setProduct:(Lsun/security/util/math/IntegerModuloP;)Lsun/security/util/math/MutableIntegerModuloP;
            pop
        27: .line 258
            aload 5 /* z_2 */
            aload 9 /* m1 */
            invokeinterface sun.security.util.math.MutableIntegerModuloP.setValue:(Lsun/security/util/math/IntegerModuloP;)Lsun/security/util/math/MutableIntegerModuloP;
            aload 12 /* a24_times_E */
            invokeinterface sun.security.util.math.MutableIntegerModuloP.setSum:(Lsun/security/util/math/IntegerModuloP;)Lsun/security/util/math/MutableIntegerModuloP;
            aload 11 /* E */
            invokeinterface sun.security.util.math.MutableIntegerModuloP.setProduct:(Lsun/security/util/math/IntegerModuloP;)Lsun/security/util/math/MutableIntegerModuloP;
            pop
        28: .line 260
            aload 7 /* z_3 */
            aload 10 /* DA */
            invokeinterface sun.security.util.math.MutableIntegerModuloP.setValue:(Lsun/security/util/math/IntegerModuloP;)Lsun/security/util/math/MutableIntegerModuloP;
            aload 6 /* x_3 */
            invokeinterface sun.security.util.math.MutableIntegerModuloP.setDifference:(Lsun/security/util/math/IntegerModuloP;)Lsun/security/util/math/MutableIntegerModuloP;
            invokeinterface sun.security.util.math.MutableIntegerModuloP.setSquare:()Lsun/security/util/math/MutableIntegerModuloP;
            aload 3 /* x_1 */
            invokeinterface sun.security.util.math.MutableIntegerModuloP.setProduct:(Lsun/security/util/math/IntegerModuloP;)Lsun/security/util/math/MutableIntegerModuloP;
            pop
        29: .line 262
            aload 6 /* x_3 */
            aload 10 /* DA */
            invokeinterface sun.security.util.math.MutableIntegerModuloP.setSum:(Lsun/security/util/math/IntegerModuloP;)Lsun/security/util/math/MutableIntegerModuloP;
            invokeinterface sun.security.util.math.MutableIntegerModuloP.setSquare:()Lsun/security/util/math/MutableIntegerModuloP;
            pop
        end local 14 // int k_t
        30: .line 227
            iinc 13 /* t */ -1
      StackMap locals:
      StackMap stack:
        31: iload 13 /* t */
            ifge 12
        end local 13 // int t
        32: .line 265
            iload 8 /* swap */
            aload 4 /* x_2 */
            aload 6 /* x_3 */
            invokestatic sun.security.ec.XECOperations.cswap:(ILsun/security/util/math/MutableIntegerModuloP;Lsun/security/util/math/MutableIntegerModuloP;)V
        33: .line 266
            iload 8 /* swap */
            aload 5 /* z_2 */
            aload 7 /* z_3 */
            invokestatic sun.security.ec.XECOperations.cswap:(ILsun/security/util/math/MutableIntegerModuloP;Lsun/security/util/math/MutableIntegerModuloP;)V
        34: .line 269
            aload 4 /* x_2 */
            aload 5 /* z_2 */
            invokeinterface sun.security.util.math.MutableIntegerModuloP.multiplicativeInverse:()Lsun/security/util/math/ImmutableIntegerModuloP;
            invokeinterface sun.security.util.math.MutableIntegerModuloP.setProduct:(Lsun/security/util/math/IntegerModuloP;)Lsun/security/util/math/MutableIntegerModuloP;
            areturn
        end local 12 // sun.security.util.math.MutableIntegerModuloP a24_times_E
        end local 11 // sun.security.util.math.MutableIntegerModuloP E
        end local 10 // sun.security.util.math.MutableIntegerModuloP DA
        end local 9 // sun.security.util.math.MutableIntegerModuloP m1
        end local 8 // int swap
        end local 7 // sun.security.util.math.MutableIntegerModuloP z_3
        end local 6 // sun.security.util.math.MutableIntegerModuloP x_3
        end local 5 // sun.security.util.math.MutableIntegerModuloP z_2
        end local 4 // sun.security.util.math.MutableIntegerModuloP x_2
        end local 3 // sun.security.util.math.ImmutableIntegerModuloP x_1
        end local 2 // sun.security.util.math.ImmutableIntegerModuloP u
        end local 1 // byte[] k
        end local 0 // sun.security.ec.XECOperations this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   35     0         this  Lsun/security/ec/XECOperations;
            0   35     1            k  [B
            0   35     2            u  Lsun/security/util/math/ImmutableIntegerModuloP;
            1   35     3          x_1  Lsun/security/util/math/ImmutableIntegerModuloP;
            2   35     4          x_2  Lsun/security/util/math/MutableIntegerModuloP;
            3   35     5          z_2  Lsun/security/util/math/MutableIntegerModuloP;
            4   35     6          x_3  Lsun/security/util/math/MutableIntegerModuloP;
            5   35     7          z_3  Lsun/security/util/math/MutableIntegerModuloP;
            6   35     8         swap  I
            7   35     9           m1  Lsun/security/util/math/MutableIntegerModuloP;
            8   35    10           DA  Lsun/security/util/math/MutableIntegerModuloP;
            9   35    11            E  Lsun/security/util/math/MutableIntegerModuloP;
           10   35    12  a24_times_E  Lsun/security/util/math/MutableIntegerModuloP;
           11   32    13            t  I
           13   30    14          k_t  I
    MethodParameters:
      Name  Flags
      k     
      u     
}
SourceFile: "XECOperations.java"