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 62
            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 63
            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 67
            aload 0 /* this */
            aload 1 /* p */
            aload 2 /* type */
            aload 3 /* algo */
            aload 4 /* cn */
         1: .line 68
            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 69
            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 74
            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 75
            aload 1 /* ctrParamObj */
            ifnull 7
         2: .line 76
            new java.security.InvalidParameterException
            dup
         3: .line 77
            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 78
            ldc " engines"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 77
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 76
            invokespecial java.security.InvalidParameterException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 80
      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 82
            aload 2 /* type */
            ldc "SecureRandom"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
         9: .line 83
            aload 3 /* algo */
            ldc "Windows-PRNG"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 75
        10: .line 84
            new sun.security.mscapi.PRNG
            dup
            invokespecial sun.security.mscapi.PRNG.<init>:()V
        11: areturn
        12: .line 86
      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 87
            aload 3 /* algo */
            ldc "Windows-MY"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
        14: .line 88
            new sun.security.mscapi.CKeyStore$MY
            dup
            invokespecial sun.security.mscapi.CKeyStore$MY.<init>:()V
        15: areturn
        16: .line 89
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "Windows-ROOT"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 75
        17: .line 90
            new sun.security.mscapi.CKeyStore$ROOT
            dup
            invokespecial sun.security.mscapi.CKeyStore$ROOT.<init>:()V
        18: areturn
        19: .line 92
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            ldc "Signature"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 59
        20: .line 93
            aload 3 /* algo */
            ldc "NONEwithRSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 23
        21: .line 94
            new sun.security.mscapi.CSignature$NONEwithRSA
            dup
            invokespecial sun.security.mscapi.CSignature$NONEwithRSA.<init>:()V
        22: areturn
        23: .line 95
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "SHA1withRSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 26
        24: .line 96
            new sun.security.mscapi.CSignature$SHA1withRSA
            dup
            invokespecial sun.security.mscapi.CSignature$SHA1withRSA.<init>:()V
        25: areturn
        26: .line 97
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "SHA256withRSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 29
        27: .line 98
            new sun.security.mscapi.CSignature$SHA256withRSA
            dup
            invokespecial sun.security.mscapi.CSignature$SHA256withRSA.<init>:()V
        28: areturn
        29: .line 99
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "SHA384withRSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 32
        30: .line 100
            new sun.security.mscapi.CSignature$SHA384withRSA
            dup
            invokespecial sun.security.mscapi.CSignature$SHA384withRSA.<init>:()V
        31: areturn
        32: .line 101
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "SHA512withRSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 35
        33: .line 102
            new sun.security.mscapi.CSignature$SHA512withRSA
            dup
            invokespecial sun.security.mscapi.CSignature$SHA512withRSA.<init>:()V
        34: areturn
        35: .line 103
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "MD5withRSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 38
        36: .line 104
            new sun.security.mscapi.CSignature$MD5withRSA
            dup
            invokespecial sun.security.mscapi.CSignature$MD5withRSA.<init>:()V
        37: areturn
        38: .line 105
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "MD2withRSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 41
        39: .line 106
            new sun.security.mscapi.CSignature$MD2withRSA
            dup
            invokespecial sun.security.mscapi.CSignature$MD2withRSA.<init>:()V
        40: areturn
        41: .line 107
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "RSASSA-PSS"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 44
        42: .line 108
            new sun.security.mscapi.CSignature$PSS
            dup
            invokespecial sun.security.mscapi.CSignature$PSS.<init>:()V
        43: areturn
        44: .line 109
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "SHA1withECDSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 47
        45: .line 110
            new sun.security.mscapi.CSignature$SHA1withECDSA
            dup
            invokespecial sun.security.mscapi.CSignature$SHA1withECDSA.<init>:()V
        46: areturn
        47: .line 111
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "SHA224withECDSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 50
        48: .line 112
            new sun.security.mscapi.CSignature$SHA224withECDSA
            dup
            invokespecial sun.security.mscapi.CSignature$SHA224withECDSA.<init>:()V
        49: areturn
        50: .line 113
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "SHA256withECDSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 53
        51: .line 114
            new sun.security.mscapi.CSignature$SHA256withECDSA
            dup
            invokespecial sun.security.mscapi.CSignature$SHA256withECDSA.<init>:()V
        52: areturn
        53: .line 115
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "SHA384withECDSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 56
        54: .line 116
            new sun.security.mscapi.CSignature$SHA384withECDSA
            dup
            invokespecial sun.security.mscapi.CSignature$SHA384withECDSA.<init>:()V
        55: areturn
        56: .line 117
      StackMap locals:
      StackMap stack:
            aload 3 /* algo */
            ldc "SHA512withECDSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 75
        57: .line 118
            new sun.security.mscapi.CSignature$SHA512withECDSA
            dup
            invokespecial sun.security.mscapi.CSignature$SHA512withECDSA.<init>:()V
        58: areturn
        59: .line 120
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            ldc "KeyPairGenerator"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 63
        60: .line 121
            aload 3 /* algo */
            ldc "RSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 75
        61: .line 122
            new sun.security.mscapi.CKeyPairGenerator$RSA
            dup
            invokespecial sun.security.mscapi.CKeyPairGenerator$RSA.<init>:()V
        62: areturn
        63: .line 124
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            ldc "Cipher"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 75
        64: .line 125
            aload 3 /* algo */
            ldc "RSA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 66
        65: .line 126
            aload 3 /* algo */
            ldc "RSA/ECB/PKCS1Padding"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 75
        66: .line 127
      StackMap locals:
      StackMap stack:
            new sun.security.mscapi.CRSACipher
            dup
            invokespecial sun.security.mscapi.CRSACipher.<init>:()V
        67: areturn
        68: .line 130
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 4 /* ex */
        start local 4 // java.lang.Exception ex
        69: .line 131
            new java.security.NoSuchAlgorithmException
            dup
        70: .line 132
            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;
        71: .line 133
            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;
        72: .line 132
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        73: .line 133
            aload 4 /* ex */
        74: .line 131
            invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.Exception ex
        75: .line 135
      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;
        76: .line 136
            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;
        77: .line 135
            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   78     0         this  Lsun/security/mscapi/SunMSCAPI$ProviderService;
            0   78     1  ctrParamObj  Ljava/lang/Object;
            1   78     2         type  Ljava/lang/String;
            8   78     3         algo  Ljava/lang/String;
           69   75     4           ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           8    11      68  Class java.lang.Exception
          12    15      68  Class java.lang.Exception
          16    18      68  Class java.lang.Exception
          19    22      68  Class java.lang.Exception
          23    25      68  Class java.lang.Exception
          26    28      68  Class java.lang.Exception
          29    31      68  Class java.lang.Exception
          32    34      68  Class java.lang.Exception
          35    37      68  Class java.lang.Exception
          38    40      68  Class java.lang.Exception
          41    43      68  Class java.lang.Exception
          44    46      68  Class java.lang.Exception
          47    49      68  Class java.lang.Exception
          50    52      68  Class java.lang.Exception
          53    55      68  Class java.lang.Exception
          56    58      68  Class java.lang.Exception
          59    62      68  Class java.lang.Exception
          63    67      68  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 RSA = sun.security.mscapi.CKeyPairGenerator$RSA of sun.security.mscapi.CKeyPairGenerator
  public final MY = sun.security.mscapi.CKeyStore$MY of sun.security.mscapi.CKeyStore
  public final ROOT = sun.security.mscapi.CKeyStore$ROOT of sun.security.mscapi.CKeyStore
  public final MD2withRSA = sun.security.mscapi.CSignature$MD2withRSA of sun.security.mscapi.CSignature
  public final MD5withRSA = sun.security.mscapi.CSignature$MD5withRSA of sun.security.mscapi.CSignature
  public final NONEwithRSA = sun.security.mscapi.CSignature$NONEwithRSA of sun.security.mscapi.CSignature
  public final PSS = sun.security.mscapi.CSignature$PSS of sun.security.mscapi.CSignature
  public final SHA1withECDSA = sun.security.mscapi.CSignature$SHA1withECDSA of sun.security.mscapi.CSignature
  public final SHA1withRSA = sun.security.mscapi.CSignature$SHA1withRSA of sun.security.mscapi.CSignature
  public final SHA224withECDSA = sun.security.mscapi.CSignature$SHA224withECDSA of sun.security.mscapi.CSignature
  public final SHA256withECDSA = sun.security.mscapi.CSignature$SHA256withECDSA of sun.security.mscapi.CSignature
  public final SHA256withRSA = sun.security.mscapi.CSignature$SHA256withRSA of sun.security.mscapi.CSignature
  public final SHA384withECDSA = sun.security.mscapi.CSignature$SHA384withECDSA of sun.security.mscapi.CSignature
  public final SHA384withRSA = sun.security.mscapi.CSignature$SHA384withRSA of sun.security.mscapi.CSignature
  public final SHA512withECDSA = sun.security.mscapi.CSignature$SHA512withECDSA of sun.security.mscapi.CSignature
  public final SHA512withRSA = sun.security.mscapi.CSignature$SHA512withRSA of sun.security.mscapi.CSignature
  private final ProviderService = sun.security.mscapi.SunMSCAPI$ProviderService of sun.security.mscapi.SunMSCAPI