final class sun.security.mscapi.SunMSCAPI$ProviderService extends java.security.Provider$Service
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: sun.security.mscapi.SunMSCAPI$ProviderService
  super_class: java.security.Provider$Service
{
  void <init>(java.security.Provider, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/security/Provider;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // sun.security.mscapi.SunMSCAPI$ProviderService this
        start local 1 // java.security.Provider p
        start local 2 // java.lang.String type
        start local 3 // java.lang.String algo
        start local 4 // java.lang.String cn
         0: .line 63
            aload 0 /* this */
            aload 1 /* p */
            aload 2 /* type */
            aload 3 /* algo */
            aload 4 /* cn */
            aconst_null
            aconst_null
            invokespecial java.security.Provider$Service.<init>:(Ljava/security/Provider;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/Map;)V
         1: .line 64
            return
        end local 4 // java.lang.String cn
        end local 3 // java.lang.String algo
        end local 2 // java.lang.String type
        end local 1 // java.security.Provider p
        end local 0 // sun.security.mscapi.SunMSCAPI$ProviderService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/mscapi/SunMSCAPI$ProviderService;
            0    2     1     p  Ljava/security/Provider;
            0    2     2  type  Ljava/lang/String;
            0    2     3  algo  Ljava/lang/String;
            0    2     4    cn  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      p     
      type  
      algo  
      cn    

  void <init>(java.security.Provider, java.lang.String, java.lang.String, java.lang.String, java.lang.String[], java.util.HashMap<java.lang.String, java.lang.String>);
    descriptor: (Ljava/security/Provider;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/util/HashMap;)V
    flags: (0x0000) 
    Code:
      stack=7, locals=7, args_size=7
        start local 0 // sun.security.mscapi.SunMSCAPI$ProviderService this
        start local 1 // java.security.Provider p
        start local 2 // java.lang.String type
        start local 3 // java.lang.String algo
        start local 4 // java.lang.String cn
        start local 5 // java.lang.String[] aliases
        start local 6 // java.util.HashMap attrs
         0: .line 68
            aload 0 /* this */
            aload 1 /* p */
            aload 2 /* type */
            aload 3 /* algo */
            aload 4 /* cn */
         1: .line 69
            aload 5 /* aliases */
            ifnonnull 2
            aconst_null
            goto 3
      StackMap locals: uninitialized-this java.security.Provider java.lang.String java.lang.String java.lang.String java.lang.String[] java.util.HashMap
      StackMap stack: uninitialized-this java.security.Provider java.lang.String java.lang.String java.lang.String
         2: aload 5 /* aliases */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
      StackMap locals: uninitialized-this java.security.Provider java.lang.String java.lang.String java.lang.String java.lang.String[] java.util.HashMap
      StackMap stack: uninitialized-this java.security.Provider java.lang.String java.lang.String java.lang.String java.util.List
         3: aload 6 /* attrs */
            invokespecial java.security.Provider$Service.<init>:(Ljava/security/Provider;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/Map;)V
         4: .line 70
            return
        end local 6 // java.util.HashMap attrs
        end local 5 // java.lang.String[] aliases
        end local 4 // java.lang.String cn
        end local 3 // java.lang.String algo
        end local 2 // java.lang.String type
        end local 1 // java.security.Provider p
        end local 0 // sun.security.mscapi.SunMSCAPI$ProviderService this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lsun/security/mscapi/SunMSCAPI$ProviderService;
            0    5     1        p  Ljava/security/Provider;
            0    5     2     type  Ljava/lang/String;
            0    5     3     algo  Ljava/lang/String;
            0    5     4       cn  Ljava/lang/String;
            0    5     5  aliases  [Ljava/lang/String;
            0    5     6    attrs  Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/String;>;
    Signature: (Ljava/security/Provider;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/String;>;)V
    MethodParameters:
         Name  Flags
      p        
      type     
      algo     
      cn       
      aliases  
      attrs    

  public java.lang.Object newInstance(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // sun.security.mscapi.SunMSCAPI$ProviderService this
        start local 1 // java.lang.Object ctrParamObj
         0: .line 75
            aload 0 /* this */
            invokevirtual sun.security.mscapi.SunMSCAPI$ProviderService.getType:()Ljava/lang/String;
            astore 2 /* type */
        start local 2 // java.lang.String type
         1: .line 76
            aload 1 /* ctrParamObj */
            ifnull 7
         2: .line 77
            new java.security.InvalidParameterException
            dup
         3: .line 78
            new java.lang.StringBuilder
            dup
            ldc "constructorParameter not used with "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 79
            ldc " engines"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 78
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 77
            invokespecial java.security.InvalidParameterException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 81
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.mscapi.SunMSCAPI$ProviderService.getAlgorithm:()Ljava/lang/String;
            astore 3 /* algo */
        start local 3 // java.lang.String algo
         8: .line 83
            aload 2 /* type */
            ldc "SecureRandom"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
         9: .line 84
            aload 3 /* algo */
            ldc "Windows-PRNG"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 57
        10: .line 85
            new sun.security.mscapi.PRNG
            dup
            invokespecial sun.security.mscapi.PRNG.<init>:()V
        11: areturn
        12: .line 87
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* type */
            ldc "KeyStore"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 19
        13: .line 88
            aload 3 /* algo */
            ldc "Windows-MY"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
        14: .line 89
            new sun.security.mscapi.KeyStore$MY
            dup
            invokespecial sun.security.mscapi.KeyStore$MY.<init>:()V
        15: areturn
        16: .line 90
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "Windows-ROOT"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 57
        17: .line 91
            new sun.security.mscapi.KeyStore$ROOT
            dup
            invokespecial sun.security.mscapi.KeyStore$ROOT.<init>:()V
        18: areturn
        19: .line 93
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            ldc "Signature"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 41
        20: .line 94
            aload 3 /* algo */
            ldc "NONEwithRSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 23
        21: .line 95
            new sun.security.mscapi.RSASignature$Raw
            dup
            invokespecial sun.security.mscapi.RSASignature$Raw.<init>:()V
        22: areturn
        23: .line 96
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "SHA1withRSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 26
        24: .line 97
            new sun.security.mscapi.RSASignature$SHA1
            dup
            invokespecial sun.security.mscapi.RSASignature$SHA1.<init>:()V
        25: areturn
        26: .line 98
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "SHA256withRSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 29
        27: .line 99
            new sun.security.mscapi.RSASignature$SHA256
            dup
            invokespecial sun.security.mscapi.RSASignature$SHA256.<init>:()V
        28: areturn
        29: .line 100
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "SHA384withRSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 32
        30: .line 101
            new sun.security.mscapi.RSASignature$SHA384
            dup
            invokespecial sun.security.mscapi.RSASignature$SHA384.<init>:()V
        31: areturn
        32: .line 102
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "SHA512withRSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 35
        33: .line 103
            new sun.security.mscapi.RSASignature$SHA512
            dup
            invokespecial sun.security.mscapi.RSASignature$SHA512.<init>:()V
        34: areturn
        35: .line 104
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "MD5withRSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 38
        36: .line 105
            new sun.security.mscapi.RSASignature$MD5
            dup
            invokespecial sun.security.mscapi.RSASignature$MD5.<init>:()V
        37: areturn
        38: .line 106
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "MD2withRSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 57
        39: .line 107
            new sun.security.mscapi.RSASignature$MD2
            dup
            invokespecial sun.security.mscapi.RSASignature$MD2.<init>:()V
        40: areturn
        41: .line 109
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            ldc "KeyPairGenerator"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 45
        42: .line 110
            aload 3 /* algo */
            ldc "RSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 57
        43: .line 111
            new sun.security.mscapi.RSAKeyPairGenerator
            dup
            invokespecial sun.security.mscapi.RSAKeyPairGenerator.<init>:()V
        44: areturn
        45: .line 113
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            ldc "Cipher"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 57
        46: .line 114
            aload 3 /* algo */
            ldc "RSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 48
        47: .line 115
            aload 3 /* algo */
            ldc "RSA/ECB/PKCS1Padding"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 57
        48: .line 116
      StackMap locals:
      StackMap stack:
            new sun.security.mscapi.RSACipher
            dup
            invokespecial sun.security.mscapi.RSACipher.<init>:()V
        49: areturn
        50: .line 119
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 4 /* ex */
        start local 4 // java.lang.Exception ex
        51: .line 120
            new java.security.NoSuchAlgorithmException
            dup
        52: .line 121
            new java.lang.StringBuilder
            dup
            ldc "Error constructing "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        53: .line 122
            aload 3 /* algo */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " using SunMSCAPI"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        54: .line 121
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        55: .line 122
            aload 4 /* ex */
        56: .line 120
            invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.Exception ex
        57: .line 124
      StackMap locals:
      StackMap stack:
            new java.security.ProviderException
            dup
            new java.lang.StringBuilder
            dup
            ldc "No impl for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* algo */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        58: .line 125
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        59: .line 124
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.String algo
        end local 2 // java.lang.String type
        end local 1 // java.lang.Object ctrParamObj
        end local 0 // sun.security.mscapi.SunMSCAPI$ProviderService this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   60     0         this  Lsun/security/mscapi/SunMSCAPI$ProviderService;
            0   60     1  ctrParamObj  Ljava/lang/Object;
            1   60     2         type  Ljava/lang/String;
            8   60     3         algo  Ljava/lang/String;
           51   57     4           ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           8    11      50  Class java.lang.Exception
          12    15      50  Class java.lang.Exception
          16    18      50  Class java.lang.Exception
          19    22      50  Class java.lang.Exception
          23    25      50  Class java.lang.Exception
          26    28      50  Class java.lang.Exception
          29    31      50  Class java.lang.Exception
          32    34      50  Class java.lang.Exception
          35    37      50  Class java.lang.Exception
          38    40      50  Class java.lang.Exception
          41    44      50  Class java.lang.Exception
          45    49      50  Class java.lang.Exception
    Exceptions:
      throws java.security.NoSuchAlgorithmException
    MethodParameters:
             Name  Flags
      ctrParamObj  
}
SourceFile: "SunMSCAPI.java"
NestHost: sun.security.mscapi.SunMSCAPI
InnerClasses:
  public Service = java.security.Provider$Service of java.security.Provider
  public final MY = sun.security.mscapi.KeyStore$MY of sun.security.mscapi.KeyStore
  public final ROOT = sun.security.mscapi.KeyStore$ROOT of sun.security.mscapi.KeyStore
  public final MD2 = sun.security.mscapi.RSASignature$MD2 of sun.security.mscapi.RSASignature
  public final MD5 = sun.security.mscapi.RSASignature$MD5 of sun.security.mscapi.RSASignature
  public final Raw = sun.security.mscapi.RSASignature$Raw of sun.security.mscapi.RSASignature
  public final SHA1 = sun.security.mscapi.RSASignature$SHA1 of sun.security.mscapi.RSASignature
  public final SHA256 = sun.security.mscapi.RSASignature$SHA256 of sun.security.mscapi.RSASignature
  public final SHA384 = sun.security.mscapi.RSASignature$SHA384 of sun.security.mscapi.RSASignature
  public final SHA512 = sun.security.mscapi.RSASignature$SHA512 of sun.security.mscapi.RSASignature
  private final ProviderService = sun.security.mscapi.SunMSCAPI$ProviderService of sun.security.mscapi.SunMSCAPI