public final class sun.security.rsa.RSACore
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: sun.security.rsa.RSACore
  super_class: java.lang.Object
{
  private static final boolean ENABLE_BLINDING;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final java.util.Map<java.math.BigInteger, sun.security.rsa.RSACore$BlindingParameters> blindingCache;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/math/BigInteger;Lsun/security/rsa/RSACore$BlindingParameters;>;

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 51
            ldc Lsun/security/rsa/RSACore;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic sun.security.rsa.RSACore.$assertionsDisabled:Z
         3: .line 60
            new java.util.WeakHashMap
            dup
            invokespecial java.util.WeakHashMap.<init>:()V
            putstatic sun.security.rsa.RSACore.blindingCache:Ljava/util/Map;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.rsa.RSACore this
         0: .line 62
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 64
            return
        end local 0 // sun.security.rsa.RSACore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/rsa/RSACore;

  public static int getByteLength(java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.math.BigInteger b
         0: .line 72
            aload 0 /* b */
            invokevirtual java.math.BigInteger.bitLength:()I
            istore 1 /* n */
        start local 1 // int n
         1: .line 73
            iload 1 /* n */
            bipush 7
            iadd
            iconst_3
            ishr
            ireturn
        end local 1 // int n
        end local 0 // java.math.BigInteger b
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     b  Ljava/math/BigInteger;
            1    2     1     n  I
    MethodParameters:
      Name  Flags
      b     

  public static int getByteLength(java.security.interfaces.RSAKey);
    descriptor: (Ljava/security/interfaces/RSAKey;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.security.interfaces.RSAKey key
         0: .line 81
            aload 0 /* key */
            invokeinterface java.security.interfaces.RSAKey.getModulus:()Ljava/math/BigInteger;
            invokestatic sun.security.rsa.RSACore.getByteLength:(Ljava/math/BigInteger;)I
            ireturn
        end local 0 // java.security.interfaces.RSAKey key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   key  Ljava/security/interfaces/RSAKey;
    MethodParameters:
      Name  Flags
      key   

  public static byte[] convert(byte[], int, int);
    descriptor: ([BII)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // byte[] b
        start local 1 // int ofs
        start local 2 // int len
         0: .line 86
            iload 1 /* ofs */
            ifne 2
            iload 2 /* len */
            aload 0 /* b */
            arraylength
            if_icmpne 2
         1: .line 87
            aload 0 /* b */
            areturn
         2: .line 89
      StackMap locals:
      StackMap stack:
            iload 2 /* len */
            newarray 8
            astore 3 /* t */
        start local 3 // byte[] t
         3: .line 90
            aload 0 /* b */
            iload 1 /* ofs */
            aload 3 /* t */
            iconst_0
            iload 2 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         4: .line 91
            aload 3 /* t */
            areturn
        end local 3 // byte[] t
        end local 2 // int len
        end local 1 // int ofs
        end local 0 // byte[] b
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     b  [B
            0    5     1   ofs  I
            0    5     2   len  I
            3    5     3     t  [B
    MethodParameters:
      Name  Flags
      b     
      ofs   
      len   

  public static byte[] rsa(byte[], java.security.interfaces.RSAPublicKey);
    descriptor: ([BLjava/security/interfaces/RSAPublicKey;)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // byte[] msg
        start local 1 // java.security.interfaces.RSAPublicKey key
         0: .line 100
            aload 0 /* msg */
            aload 1 /* key */
            invokeinterface java.security.interfaces.RSAPublicKey.getModulus:()Ljava/math/BigInteger;
            aload 1 /* key */
            invokeinterface java.security.interfaces.RSAPublicKey.getPublicExponent:()Ljava/math/BigInteger;
            invokestatic sun.security.rsa.RSACore.crypt:([BLjava/math/BigInteger;Ljava/math/BigInteger;)[B
            areturn
        end local 1 // java.security.interfaces.RSAPublicKey key
        end local 0 // byte[] msg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   msg  [B
            0    1     1   key  Ljava/security/interfaces/RSAPublicKey;
    Exceptions:
      throws javax.crypto.BadPaddingException
    MethodParameters:
      Name  Flags
      msg   
      key   

  public static byte[] rsa(byte[], java.security.interfaces.RSAPrivateKey);
    descriptor: ([BLjava/security/interfaces/RSAPrivateKey;)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // byte[] msg
        start local 1 // java.security.interfaces.RSAPrivateKey key
         0: .line 111
            aload 0 /* msg */
            aload 1 /* key */
            iconst_1
            invokestatic sun.security.rsa.RSACore.rsa:([BLjava/security/interfaces/RSAPrivateKey;Z)[B
            areturn
        end local 1 // java.security.interfaces.RSAPrivateKey key
        end local 0 // byte[] msg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   msg  [B
            0    1     1   key  Ljava/security/interfaces/RSAPrivateKey;
    Exceptions:
      throws javax.crypto.BadPaddingException
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      msg   
      key   

  public static byte[] rsa(byte[], java.security.interfaces.RSAPrivateKey, boolean);
    descriptor: ([BLjava/security/interfaces/RSAPrivateKey;Z)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // byte[] msg
        start local 1 // java.security.interfaces.RSAPrivateKey key
        start local 2 // boolean verify
         0: .line 121
            aload 1 /* key */
            instanceof java.security.interfaces.RSAPrivateCrtKey
            ifeq 2
         1: .line 122
            aload 0 /* msg */
            aload 1 /* key */
            checkcast java.security.interfaces.RSAPrivateCrtKey
            iload 2 /* verify */
            invokestatic sun.security.rsa.RSACore.crtCrypt:([BLjava/security/interfaces/RSAPrivateCrtKey;Z)[B
            areturn
         2: .line 124
      StackMap locals:
      StackMap stack:
            aload 0 /* msg */
            aload 1 /* key */
            invokeinterface java.security.interfaces.RSAPrivateKey.getModulus:()Ljava/math/BigInteger;
            aload 1 /* key */
            invokeinterface java.security.interfaces.RSAPrivateKey.getPrivateExponent:()Ljava/math/BigInteger;
            invokestatic sun.security.rsa.RSACore.priCrypt:([BLjava/math/BigInteger;Ljava/math/BigInteger;)[B
            areturn
        end local 2 // boolean verify
        end local 1 // java.security.interfaces.RSAPrivateKey key
        end local 0 // byte[] msg
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0     msg  [B
            0    3     1     key  Ljava/security/interfaces/RSAPrivateKey;
            0    3     2  verify  Z
    Exceptions:
      throws javax.crypto.BadPaddingException
    MethodParameters:
        Name  Flags
      msg     
      key     
      verify  

  private static byte[] crypt(byte[], java.math.BigInteger, java.math.BigInteger);
    descriptor: ([BLjava/math/BigInteger;Ljava/math/BigInteger;)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // byte[] msg
        start local 1 // java.math.BigInteger n
        start local 2 // java.math.BigInteger exp
         0: .line 133
            aload 0 /* msg */
            aload 1 /* n */
            invokestatic sun.security.rsa.RSACore.parseMsg:([BLjava/math/BigInteger;)Ljava/math/BigInteger;
            astore 3 /* m */
        start local 3 // java.math.BigInteger m
         1: .line 134
            aload 3 /* m */
            aload 2 /* exp */
            aload 1 /* n */
            invokevirtual java.math.BigInteger.modPow:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 4 /* c */
        start local 4 // java.math.BigInteger c
         2: .line 135
            aload 4 /* c */
            aload 1 /* n */
            invokestatic sun.security.rsa.RSACore.getByteLength:(Ljava/math/BigInteger;)I
            invokestatic sun.security.rsa.RSACore.toByteArray:(Ljava/math/BigInteger;I)[B
            areturn
        end local 4 // java.math.BigInteger c
        end local 3 // java.math.BigInteger m
        end local 2 // java.math.BigInteger exp
        end local 1 // java.math.BigInteger n
        end local 0 // byte[] msg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   msg  [B
            0    3     1     n  Ljava/math/BigInteger;
            0    3     2   exp  Ljava/math/BigInteger;
            1    3     3     m  Ljava/math/BigInteger;
            2    3     4     c  Ljava/math/BigInteger;
    Exceptions:
      throws javax.crypto.BadPaddingException
    MethodParameters:
      Name  Flags
      msg   
      n     
      exp   

  private static byte[] priCrypt(byte[], java.math.BigInteger, java.math.BigInteger);
    descriptor: ([BLjava/math/BigInteger;Ljava/math/BigInteger;)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // byte[] msg
        start local 1 // java.math.BigInteger n
        start local 2 // java.math.BigInteger exp
         0: .line 144
            aload 0 /* msg */
            aload 1 /* n */
            invokestatic sun.security.rsa.RSACore.parseMsg:([BLjava/math/BigInteger;)Ljava/math/BigInteger;
            astore 3 /* c */
        start local 3 // java.math.BigInteger c
         1: .line 145
            aconst_null
            astore 4 /* brp */
        start local 4 // sun.security.rsa.RSACore$BlindingRandomPair brp
         2: .line 148
            aconst_null
            aload 2 /* exp */
            aload 1 /* n */
            invokestatic sun.security.rsa.RSACore.getBlindingRandomPair:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)Lsun/security/rsa/RSACore$BlindingRandomPair;
            astore 4 /* brp */
         3: .line 149
            aload 3 /* c */
            aload 4 /* brp */
            getfield sun.security.rsa.RSACore$BlindingRandomPair.u:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 1 /* n */
            invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 3 /* c */
         4: .line 150
            aload 3 /* c */
            aload 2 /* exp */
            aload 1 /* n */
            invokevirtual java.math.BigInteger.modPow:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 5 /* m */
        start local 5 // java.math.BigInteger m
         5: .line 151
            aload 5 /* m */
            aload 4 /* brp */
            getfield sun.security.rsa.RSACore$BlindingRandomPair.v:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 1 /* n */
            invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 5 /* m */
         6: .line 156
            aload 5 /* m */
            aload 1 /* n */
            invokestatic sun.security.rsa.RSACore.getByteLength:(Ljava/math/BigInteger;)I
            invokestatic sun.security.rsa.RSACore.toByteArray:(Ljava/math/BigInteger;I)[B
            areturn
        end local 5 // java.math.BigInteger m
        end local 4 // sun.security.rsa.RSACore$BlindingRandomPair brp
        end local 3 // java.math.BigInteger c
        end local 2 // java.math.BigInteger exp
        end local 1 // java.math.BigInteger n
        end local 0 // byte[] msg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0   msg  [B
            0    7     1     n  Ljava/math/BigInteger;
            0    7     2   exp  Ljava/math/BigInteger;
            1    7     3     c  Ljava/math/BigInteger;
            2    7     4   brp  Lsun/security/rsa/RSACore$BlindingRandomPair;
            5    7     5     m  Ljava/math/BigInteger;
    Exceptions:
      throws javax.crypto.BadPaddingException
    MethodParameters:
      Name  Flags
      msg   
      n     
      exp   

  private static byte[] crtCrypt(byte[], java.security.interfaces.RSAPrivateCrtKey, boolean);
    descriptor: ([BLjava/security/interfaces/RSAPrivateCrtKey;Z)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=19, args_size=3
        start local 0 // byte[] msg
        start local 1 // java.security.interfaces.RSAPrivateCrtKey key
        start local 2 // boolean verify
         0: .line 165
            aload 1 /* key */
            invokeinterface java.security.interfaces.RSAPrivateCrtKey.getModulus:()Ljava/math/BigInteger;
            astore 3 /* n */
        start local 3 // java.math.BigInteger n
         1: .line 166
            aload 0 /* msg */
            aload 3 /* n */
            invokestatic sun.security.rsa.RSACore.parseMsg:([BLjava/math/BigInteger;)Ljava/math/BigInteger;
            astore 4 /* c0 */
        start local 4 // java.math.BigInteger c0
         2: .line 167
            aload 4 /* c0 */
            astore 5 /* c */
        start local 5 // java.math.BigInteger c
         3: .line 168
            aload 1 /* key */
            invokeinterface java.security.interfaces.RSAPrivateCrtKey.getPrimeP:()Ljava/math/BigInteger;
            astore 6 /* p */
        start local 6 // java.math.BigInteger p
         4: .line 169
            aload 1 /* key */
            invokeinterface java.security.interfaces.RSAPrivateCrtKey.getPrimeQ:()Ljava/math/BigInteger;
            astore 7 /* q */
        start local 7 // java.math.BigInteger q
         5: .line 170
            aload 1 /* key */
            invokeinterface java.security.interfaces.RSAPrivateCrtKey.getPrimeExponentP:()Ljava/math/BigInteger;
            astore 8 /* dP */
        start local 8 // java.math.BigInteger dP
         6: .line 171
            aload 1 /* key */
            invokeinterface java.security.interfaces.RSAPrivateCrtKey.getPrimeExponentQ:()Ljava/math/BigInteger;
            astore 9 /* dQ */
        start local 9 // java.math.BigInteger dQ
         7: .line 172
            aload 1 /* key */
            invokeinterface java.security.interfaces.RSAPrivateCrtKey.getCrtCoefficient:()Ljava/math/BigInteger;
            astore 10 /* qInv */
        start local 10 // java.math.BigInteger qInv
         8: .line 173
            aload 1 /* key */
            invokeinterface java.security.interfaces.RSAPrivateCrtKey.getPublicExponent:()Ljava/math/BigInteger;
            astore 11 /* e */
        start local 11 // java.math.BigInteger e
         9: .line 174
            aload 1 /* key */
            invokeinterface java.security.interfaces.RSAPrivateCrtKey.getPrivateExponent:()Ljava/math/BigInteger;
            astore 12 /* d */
        start local 12 // java.math.BigInteger d
        10: .line 178
            aload 11 /* e */
            aload 12 /* d */
            aload 3 /* n */
            invokestatic sun.security.rsa.RSACore.getBlindingRandomPair:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)Lsun/security/rsa/RSACore$BlindingRandomPair;
            astore 13 /* brp */
        start local 13 // sun.security.rsa.RSACore$BlindingRandomPair brp
        11: .line 179
            aload 5 /* c */
            aload 13 /* brp */
            getfield sun.security.rsa.RSACore$BlindingRandomPair.u:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 3 /* n */
            invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 5 /* c */
        12: .line 183
            aload 5 /* c */
            aload 8 /* dP */
            aload 6 /* p */
            invokevirtual java.math.BigInteger.modPow:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 14 /* m1 */
        start local 14 // java.math.BigInteger m1
        13: .line 185
            aload 5 /* c */
            aload 9 /* dQ */
            aload 7 /* q */
            invokevirtual java.math.BigInteger.modPow:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 15 /* m2 */
        start local 15 // java.math.BigInteger m2
        14: .line 188
            aload 14 /* m1 */
            aload 15 /* m2 */
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 16 /* mtmp */
        start local 16 // java.math.BigInteger mtmp
        15: .line 189
            aload 16 /* mtmp */
            invokevirtual java.math.BigInteger.signum:()I
            ifge 17
        16: .line 190
            aload 16 /* mtmp */
            aload 6 /* p */
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 16 /* mtmp */
        17: .line 192
      StackMap locals: byte[] java.security.interfaces.RSAPrivateCrtKey int java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger sun.security.rsa.RSACore$BlindingRandomPair java.math.BigInteger java.math.BigInteger java.math.BigInteger
      StackMap stack:
            aload 16 /* mtmp */
            aload 10 /* qInv */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 6 /* p */
            invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 17 /* h */
        start local 17 // java.math.BigInteger h
        18: .line 195
            aload 17 /* h */
            aload 7 /* q */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 15 /* m2 */
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 18 /* m */
        start local 18 // java.math.BigInteger m
        19: .line 198
            aload 18 /* m */
            aload 13 /* brp */
            getfield sun.security.rsa.RSACore$BlindingRandomPair.v:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 3 /* n */
            invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 18 /* m */
        20: .line 200
            iload 2 /* verify */
            ifeq 22
            aload 4 /* c0 */
            aload 18 /* m */
            aload 11 /* e */
            aload 3 /* n */
            invokevirtual java.math.BigInteger.modPow:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ifne 22
        21: .line 201
            new javax.crypto.BadPaddingException
            dup
            ldc "RSA private key operation failed"
            invokespecial javax.crypto.BadPaddingException.<init>:(Ljava/lang/String;)V
            athrow
        22: .line 204
      StackMap locals: java.math.BigInteger java.math.BigInteger
      StackMap stack:
            aload 18 /* m */
            aload 3 /* n */
            invokestatic sun.security.rsa.RSACore.getByteLength:(Ljava/math/BigInteger;)I
            invokestatic sun.security.rsa.RSACore.toByteArray:(Ljava/math/BigInteger;I)[B
            areturn
        end local 18 // java.math.BigInteger m
        end local 17 // java.math.BigInteger h
        end local 16 // java.math.BigInteger mtmp
        end local 15 // java.math.BigInteger m2
        end local 14 // java.math.BigInteger m1
        end local 13 // sun.security.rsa.RSACore$BlindingRandomPair brp
        end local 12 // java.math.BigInteger d
        end local 11 // java.math.BigInteger e
        end local 10 // java.math.BigInteger qInv
        end local 9 // java.math.BigInteger dQ
        end local 8 // java.math.BigInteger dP
        end local 7 // java.math.BigInteger q
        end local 6 // java.math.BigInteger p
        end local 5 // java.math.BigInteger c
        end local 4 // java.math.BigInteger c0
        end local 3 // java.math.BigInteger n
        end local 2 // boolean verify
        end local 1 // java.security.interfaces.RSAPrivateCrtKey key
        end local 0 // byte[] msg
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   23     0     msg  [B
            0   23     1     key  Ljava/security/interfaces/RSAPrivateCrtKey;
            0   23     2  verify  Z
            1   23     3       n  Ljava/math/BigInteger;
            2   23     4      c0  Ljava/math/BigInteger;
            3   23     5       c  Ljava/math/BigInteger;
            4   23     6       p  Ljava/math/BigInteger;
            5   23     7       q  Ljava/math/BigInteger;
            6   23     8      dP  Ljava/math/BigInteger;
            7   23     9      dQ  Ljava/math/BigInteger;
            8   23    10    qInv  Ljava/math/BigInteger;
            9   23    11       e  Ljava/math/BigInteger;
           10   23    12       d  Ljava/math/BigInteger;
           11   23    13     brp  Lsun/security/rsa/RSACore$BlindingRandomPair;
           13   23    14      m1  Ljava/math/BigInteger;
           14   23    15      m2  Ljava/math/BigInteger;
           15   23    16    mtmp  Ljava/math/BigInteger;
           18   23    17       h  Ljava/math/BigInteger;
           19   23    18       m  Ljava/math/BigInteger;
    Exceptions:
      throws javax.crypto.BadPaddingException
    MethodParameters:
        Name  Flags
      msg     
      key     
      verify  

  private static java.math.BigInteger parseMsg(byte[], java.math.BigInteger);
    descriptor: ([BLjava/math/BigInteger;)Ljava/math/BigInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // byte[] msg
        start local 1 // java.math.BigInteger n
         0: .line 212
            new java.math.BigInteger
            dup
            iconst_1
            aload 0 /* msg */
            invokespecial java.math.BigInteger.<init>:(I[B)V
            astore 2 /* m */
        start local 2 // java.math.BigInteger m
         1: .line 213
            aload 2 /* m */
            aload 1 /* n */
            invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
            iflt 3
         2: .line 214
            new javax.crypto.BadPaddingException
            dup
            ldc "Message is larger than modulus"
            invokespecial javax.crypto.BadPaddingException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 216
      StackMap locals: java.math.BigInteger
      StackMap stack:
            aload 2 /* m */
            areturn
        end local 2 // java.math.BigInteger m
        end local 1 // java.math.BigInteger n
        end local 0 // byte[] msg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   msg  [B
            0    4     1     n  Ljava/math/BigInteger;
            1    4     2     m  Ljava/math/BigInteger;
    Exceptions:
      throws javax.crypto.BadPaddingException
    MethodParameters:
      Name  Flags
      msg   
      n     

  private static byte[] toByteArray(java.math.BigInteger, int);
    descriptor: (Ljava/math/BigInteger;I)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // java.math.BigInteger bi
        start local 1 // int len
         0: .line 225
            aload 0 /* bi */
            invokevirtual java.math.BigInteger.toByteArray:()[B
            astore 2 /* b */
        start local 2 // byte[] b
         1: .line 226
            aload 2 /* b */
            arraylength
            istore 3 /* n */
        start local 3 // int n
         2: .line 227
            iload 3 /* n */
            iload 1 /* len */
            if_icmpne 4
         3: .line 228
            aload 2 /* b */
            areturn
         4: .line 231
      StackMap locals: byte[] int
      StackMap stack:
            iload 3 /* n */
            iload 1 /* len */
            iconst_1
            iadd
            if_icmpne 8
            aload 2 /* b */
            iconst_0
            baload
            ifne 8
         5: .line 232
            iload 1 /* len */
            newarray 8
            astore 4 /* t */
        start local 4 // byte[] t
         6: .line 233
            aload 2 /* b */
            iconst_1
            aload 4 /* t */
            iconst_0
            iload 1 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         7: .line 234
            aload 4 /* t */
            areturn
        end local 4 // byte[] t
         8: .line 237
      StackMap locals:
      StackMap stack:
            getstatic sun.security.rsa.RSACore.$assertionsDisabled:Z
            ifne 9
            iload 3 /* n */
            iload 1 /* len */
            if_icmplt 9
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         9: .line 238
      StackMap locals:
      StackMap stack:
            iload 1 /* len */
            newarray 8
            astore 4 /* t */
        start local 4 // byte[] t
        10: .line 239
            aload 2 /* b */
            iconst_0
            aload 4 /* t */
            iload 1 /* len */
            iload 3 /* n */
            isub
            iload 3 /* n */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        11: .line 240
            aload 4 /* t */
            areturn
        end local 4 // byte[] t
        end local 3 // int n
        end local 2 // byte[] b
        end local 1 // int len
        end local 0 // java.math.BigInteger bi
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0    bi  Ljava/math/BigInteger;
            0   12     1   len  I
            1   12     2     b  [B
            2   12     3     n  I
            6    8     4     t  [B
           10   12     4     t  [B
    MethodParameters:
      Name  Flags
      bi    
      len   

  private static sun.security.rsa.RSACore$BlindingRandomPair getBlindingRandomPair(java.math.BigInteger, java.math.BigInteger, java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)Lsun/security/rsa/RSACore$BlindingRandomPair;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // java.math.BigInteger e
        start local 1 // java.math.BigInteger d
        start local 2 // java.math.BigInteger n
         0: .line 431
            aconst_null
            astore 3 /* bps */
        start local 3 // sun.security.rsa.RSACore$BlindingParameters bps
         1: .line 432
            getstatic sun.security.rsa.RSACore.blindingCache:Ljava/util/Map;
            dup
            astore 4
            monitorenter
         2: .line 433
            getstatic sun.security.rsa.RSACore.blindingCache:Ljava/util/Map;
            aload 2 /* n */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.security.rsa.RSACore$BlindingParameters
            astore 3 /* bps */
         3: .line 432
            aload 4
            monitorexit
         4: goto 7
      StackMap locals: java.math.BigInteger java.math.BigInteger java.math.BigInteger sun.security.rsa.RSACore$BlindingParameters java.util.Map
      StackMap stack: java.lang.Throwable
         5: aload 4
            monitorexit
         6: athrow
         7: .line 436
      StackMap locals:
      StackMap stack:
            aload 3 /* bps */
            ifnonnull 15
         8: .line 437
            new sun.security.rsa.RSACore$BlindingParameters
            dup
            aload 0 /* e */
            aload 1 /* d */
            aload 2 /* n */
            invokespecial sun.security.rsa.RSACore$BlindingParameters.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            astore 3 /* bps */
         9: .line 438
            getstatic sun.security.rsa.RSACore.blindingCache:Ljava/util/Map;
            dup
            astore 4
            monitorenter
        10: .line 439
            getstatic sun.security.rsa.RSACore.blindingCache:Ljava/util/Map;
            aload 2 /* n */
            aload 3 /* bps */
            invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 438
            aload 4
            monitorexit
        12: goto 15
      StackMap locals: java.math.BigInteger java.math.BigInteger java.math.BigInteger sun.security.rsa.RSACore$BlindingParameters java.util.Map
      StackMap stack: java.lang.Throwable
        13: aload 4
            monitorexit
        14: athrow
        15: .line 443
      StackMap locals:
      StackMap stack:
            aload 3 /* bps */
            aload 0 /* e */
            aload 1 /* d */
            aload 2 /* n */
            invokevirtual sun.security.rsa.RSACore$BlindingParameters.getBlindingRandomPair:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)Lsun/security/rsa/RSACore$BlindingRandomPair;
            astore 4 /* brp */
        start local 4 // sun.security.rsa.RSACore$BlindingRandomPair brp
        16: .line 444
            aload 4 /* brp */
            ifnonnull 25
        17: .line 446
            new sun.security.rsa.RSACore$BlindingParameters
            dup
            aload 0 /* e */
            aload 1 /* d */
            aload 2 /* n */
            invokespecial sun.security.rsa.RSACore$BlindingParameters.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            astore 3 /* bps */
        18: .line 447
            getstatic sun.security.rsa.RSACore.blindingCache:Ljava/util/Map;
            dup
            astore 5
            monitorenter
        19: .line 448
            getstatic sun.security.rsa.RSACore.blindingCache:Ljava/util/Map;
            aload 2 /* n */
            aload 3 /* bps */
            invokeinterface java.util.Map.replace:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        20: .line 447
            aload 5
            monitorexit
        21: goto 24
      StackMap locals: java.math.BigInteger java.math.BigInteger java.math.BigInteger sun.security.rsa.RSACore$BlindingParameters sun.security.rsa.RSACore$BlindingRandomPair java.util.Map
      StackMap stack: java.lang.Throwable
        22: aload 5
            monitorexit
        23: athrow
        24: .line 450
      StackMap locals:
      StackMap stack:
            aload 3 /* bps */
            aload 0 /* e */
            aload 1 /* d */
            aload 2 /* n */
            invokevirtual sun.security.rsa.RSACore$BlindingParameters.getBlindingRandomPair:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)Lsun/security/rsa/RSACore$BlindingRandomPair;
            astore 4 /* brp */
        25: .line 453
      StackMap locals:
      StackMap stack:
            aload 4 /* brp */
            areturn
        end local 4 // sun.security.rsa.RSACore$BlindingRandomPair brp
        end local 3 // sun.security.rsa.RSACore$BlindingParameters bps
        end local 2 // java.math.BigInteger n
        end local 1 // java.math.BigInteger d
        end local 0 // java.math.BigInteger e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   26     0     e  Ljava/math/BigInteger;
            0   26     1     d  Ljava/math/BigInteger;
            0   26     2     n  Ljava/math/BigInteger;
            1   26     3   bps  Lsun/security/rsa/RSACore$BlindingParameters;
           16   26     4   brp  Lsun/security/rsa/RSACore$BlindingRandomPair;
      Exception table:
        from    to  target  type
           2     4       5  any
           5     6       5  any
          10    12      13  any
          13    14      13  any
          19    21      22  any
          22    23      22  any
    MethodParameters:
      Name  Flags
      e     
      d     
      n     
}
SourceFile: "RSACore.java"
NestMembers:
  sun.security.rsa.RSACore$BlindingParameters  sun.security.rsa.RSACore$BlindingRandomPair
InnerClasses:
  private final BlindingParameters = sun.security.rsa.RSACore$BlindingParameters of sun.security.rsa.RSACore
  private final BlindingRandomPair = sun.security.rsa.RSACore$BlindingRandomPair of sun.security.rsa.RSACore