public class sun.security.util.AlgorithmDecomposer
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.security.util.AlgorithmDecomposer
  super_class: java.lang.Object
{
  private static final java.util.regex.Pattern PATTERN;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 41
            ldc "with|and|(?<!padd)in"
            iconst_2
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;I)Ljava/util/regex/Pattern;
         1: .line 40
            putstatic sun.security.util.AlgorithmDecomposer.PATTERN:Ljava/util/regex/Pattern;
         2: .line 41
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.util.AlgorithmDecomposer this
         0: .line 37
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // sun.security.util.AlgorithmDecomposer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/util/AlgorithmDecomposer;

  private static java.util.Set<java.lang.String> decomposeImpl(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Set;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=12, args_size=1
        start local 0 // java.lang.String algorithm
         0: .line 44
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* elements */
        start local 1 // java.util.Set elements
         1: .line 47
            aload 0 /* algorithm */
            ldc "/"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 2 /* transTokens */
        start local 2 // java.lang.String[] transTokens
         2: .line 49
            aload 2 /* transTokens */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 15
      StackMap locals: java.lang.String java.util.Set java.lang.String[] top int int java.lang.String[]
      StackMap stack:
         3: aload 6
            iload 4
            aaload
            astore 3 /* transToken */
        start local 3 // java.lang.String transToken
         4: .line 50
            aload 3 /* transToken */
            ifnull 14
            aload 3 /* transToken */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 6
         5: .line 51
            goto 14
         6: .line 60
      StackMap locals: java.lang.String java.util.Set java.lang.String[] java.lang.String int int java.lang.String[]
      StackMap stack:
            getstatic sun.security.util.AlgorithmDecomposer.PATTERN:Ljava/util/regex/Pattern;
            aload 3 /* transToken */
            invokevirtual java.util.regex.Pattern.split:(Ljava/lang/CharSequence;)[Ljava/lang/String;
            astore 7 /* tokens */
        start local 7 // java.lang.String[] tokens
         7: .line 62
            aload 7 /* tokens */
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 13
      StackMap locals: java.lang.String java.util.Set java.lang.String[] java.lang.String int int java.lang.String[] java.lang.String[] top int int java.lang.String[]
      StackMap stack:
         8: aload 11
            iload 9
            aaload
            astore 8 /* token */
        start local 8 // java.lang.String token
         9: .line 63
            aload 8 /* token */
            ifnull 12
            aload 8 /* token */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 11
        10: .line 64
            goto 12
        11: .line 67
      StackMap locals: java.lang.String java.util.Set java.lang.String[] java.lang.String int int java.lang.String[] java.lang.String[] java.lang.String int int java.lang.String[]
      StackMap stack:
            aload 1 /* elements */
            aload 8 /* token */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // java.lang.String token
        12: .line 62
      StackMap locals: java.lang.String java.util.Set java.lang.String[] java.lang.String int int java.lang.String[] java.lang.String[] top int int java.lang.String[]
      StackMap stack:
            iinc 9 1
      StackMap locals:
      StackMap stack:
        13: iload 9
            iload 10
            if_icmplt 8
        end local 7 // java.lang.String[] tokens
        end local 3 // java.lang.String transToken
        14: .line 49
      StackMap locals: java.lang.String java.util.Set java.lang.String[] top int int java.lang.String[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        15: iload 4
            iload 5
            if_icmplt 3
        16: .line 70
            aload 1 /* elements */
            areturn
        end local 2 // java.lang.String[] transTokens
        end local 1 // java.util.Set elements
        end local 0 // java.lang.String algorithm
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   17     0    algorithm  Ljava/lang/String;
            1   17     1     elements  Ljava/util/Set<Ljava/lang/String;>;
            2   17     2  transTokens  [Ljava/lang/String;
            4   14     3   transToken  Ljava/lang/String;
            7   14     7       tokens  [Ljava/lang/String;
            9   12     8        token  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Ljava/util/Set<Ljava/lang/String;>;
    MethodParameters:
           Name  Flags
      algorithm  

  public java.util.Set<java.lang.String> decompose(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.security.util.AlgorithmDecomposer this
        start local 1 // java.lang.String algorithm
         0: .line 83
            aload 1 /* algorithm */
            ifnull 1
            aload 1 /* algorithm */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 2
         1: .line 84
      StackMap locals:
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            areturn
         2: .line 87
      StackMap locals:
      StackMap stack:
            aload 1 /* algorithm */
            invokestatic sun.security.util.AlgorithmDecomposer.decomposeImpl:(Ljava/lang/String;)Ljava/util/Set;
            astore 2 /* elements */
        start local 2 // java.util.Set elements
         3: .line 97
            aload 2 /* elements */
            ldc "SHA1"
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 5
            aload 2 /* elements */
            ldc "SHA-1"
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 5
         4: .line 98
            aload 2 /* elements */
            ldc "SHA-1"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         5: .line 100
      StackMap locals: java.util.Set
      StackMap stack:
            aload 2 /* elements */
            ldc "SHA-1"
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 7
            aload 2 /* elements */
            ldc "SHA1"
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 7
         6: .line 101
            aload 2 /* elements */
            ldc "SHA1"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         7: .line 105
      StackMap locals:
      StackMap stack:
            aload 2 /* elements */
            ldc "SHA224"
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 9
            aload 2 /* elements */
            ldc "SHA-224"
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 9
         8: .line 106
            aload 2 /* elements */
            ldc "SHA-224"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         9: .line 108
      StackMap locals:
      StackMap stack:
            aload 2 /* elements */
            ldc "SHA-224"
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 11
            aload 2 /* elements */
            ldc "SHA224"
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 11
        10: .line 109
            aload 2 /* elements */
            ldc "SHA224"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        11: .line 113
      StackMap locals:
      StackMap stack:
            aload 2 /* elements */
            ldc "SHA256"
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 13
            aload 2 /* elements */
            ldc "SHA-256"
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 13
        12: .line 114
            aload 2 /* elements */
            ldc "SHA-256"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        13: .line 116
      StackMap locals:
      StackMap stack:
            aload 2 /* elements */
            ldc "SHA-256"
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 15
            aload 2 /* elements */
            ldc "SHA256"
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 15
        14: .line 117
            aload 2 /* elements */
            ldc "SHA256"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        15: .line 121
      StackMap locals:
      StackMap stack:
            aload 2 /* elements */
            ldc "SHA384"
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 17
            aload 2 /* elements */
            ldc "SHA-384"
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 17
        16: .line 122
            aload 2 /* elements */
            ldc "SHA-384"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        17: .line 124
      StackMap locals:
      StackMap stack:
            aload 2 /* elements */
            ldc "SHA-384"
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 19
            aload 2 /* elements */
            ldc "SHA384"
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 19
        18: .line 125
            aload 2 /* elements */
            ldc "SHA384"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        19: .line 129
      StackMap locals:
      StackMap stack:
            aload 2 /* elements */
            ldc "SHA512"
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 21
            aload 2 /* elements */
            ldc "SHA-512"
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 21
        20: .line 130
            aload 2 /* elements */
            ldc "SHA-512"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        21: .line 132
      StackMap locals:
      StackMap stack:
            aload 2 /* elements */
            ldc "SHA-512"
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 23
            aload 2 /* elements */
            ldc "SHA512"
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 23
        22: .line 133
            aload 2 /* elements */
            ldc "SHA512"
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        23: .line 136
      StackMap locals:
      StackMap stack:
            aload 2 /* elements */
            areturn
        end local 2 // java.util.Set elements
        end local 1 // java.lang.String algorithm
        end local 0 // sun.security.util.AlgorithmDecomposer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   24     0       this  Lsun/security/util/AlgorithmDecomposer;
            0   24     1  algorithm  Ljava/lang/String;
            3   24     2   elements  Ljava/util/Set<Ljava/lang/String;>;
    Signature: (Ljava/lang/String;)Ljava/util/Set<Ljava/lang/String;>;
    MethodParameters:
           Name  Flags
      algorithm  

  public static java.util.Collection<java.lang.String> getAliases(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Collection;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.lang.String algorithm
         0: .line 146
            aload 0 /* algorithm */
            ldc "DH"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 2
         1: .line 147
            aload 0 /* algorithm */
            ldc "DiffieHellman"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 4
         2: .line 148
      StackMap locals:
      StackMap stack:
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            ldc "DH"
            aastore
            dup
            iconst_1
            ldc "DiffieHellman"
            aastore
            astore 1 /* aliases */
        start local 1 // java.lang.String[] aliases
         3: .line 149
            goto 5
        end local 1 // java.lang.String[] aliases
         4: .line 150
      StackMap locals:
      StackMap stack:
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* algorithm */
            aastore
            astore 1 /* aliases */
        start local 1 // java.lang.String[] aliases
         5: .line 153
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 1 /* aliases */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            areturn
        end local 1 // java.lang.String[] aliases
        end local 0 // java.lang.String algorithm
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0  algorithm  Ljava/lang/String;
            3    4     1    aliases  [Ljava/lang/String;
            5    6     1    aliases  [Ljava/lang/String;
    Signature: (Ljava/lang/String;)Ljava/util/Collection<Ljava/lang/String;>;
    MethodParameters:
           Name  Flags
      algorithm  

  private static void hasLoop(java.util.Set<java.lang.String>, java.lang.String, java.lang.String);
    descriptor: (Ljava/util/Set;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.util.Set elements
        start local 1 // java.lang.String find
        start local 2 // java.lang.String replace
         0: .line 157
            aload 0 /* elements */
            aload 1 /* find */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 4
         1: .line 158
            aload 0 /* elements */
            aload 2 /* replace */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 159
            aload 0 /* elements */
            aload 2 /* replace */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         3: .line 161
      StackMap locals:
      StackMap stack:
            aload 0 /* elements */
            aload 1 /* find */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
         4: .line 163
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String replace
        end local 1 // java.lang.String find
        end local 0 // java.util.Set elements
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0  elements  Ljava/util/Set<Ljava/lang/String;>;
            0    5     1      find  Ljava/lang/String;
            0    5     2   replace  Ljava/lang/String;
    Signature: (Ljava/util/Set<Ljava/lang/String;>;Ljava/lang/String;Ljava/lang/String;)V
    MethodParameters:
          Name  Flags
      elements  
      find      
      replace   

  public static java.util.Set<java.lang.String> decomposeOneHash(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Set;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.String algorithm
         0: .line 170
            aload 0 /* algorithm */
            ifnull 1
            aload 0 /* algorithm */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 2
         1: .line 171
      StackMap locals:
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            areturn
         2: .line 174
      StackMap locals:
      StackMap stack:
            aload 0 /* algorithm */
            invokestatic sun.security.util.AlgorithmDecomposer.decomposeImpl:(Ljava/lang/String;)Ljava/util/Set;
            astore 1 /* elements */
        start local 1 // java.util.Set elements
         3: .line 176
            aload 1 /* elements */
            ldc "SHA-1"
            ldc "SHA1"
            invokestatic sun.security.util.AlgorithmDecomposer.hasLoop:(Ljava/util/Set;Ljava/lang/String;Ljava/lang/String;)V
         4: .line 177
            aload 1 /* elements */
            ldc "SHA-224"
            ldc "SHA224"
            invokestatic sun.security.util.AlgorithmDecomposer.hasLoop:(Ljava/util/Set;Ljava/lang/String;Ljava/lang/String;)V
         5: .line 178
            aload 1 /* elements */
            ldc "SHA-256"
            ldc "SHA256"
            invokestatic sun.security.util.AlgorithmDecomposer.hasLoop:(Ljava/util/Set;Ljava/lang/String;Ljava/lang/String;)V
         6: .line 179
            aload 1 /* elements */
            ldc "SHA-384"
            ldc "SHA384"
            invokestatic sun.security.util.AlgorithmDecomposer.hasLoop:(Ljava/util/Set;Ljava/lang/String;Ljava/lang/String;)V
         7: .line 180
            aload 1 /* elements */
            ldc "SHA-512"
            ldc "SHA512"
            invokestatic sun.security.util.AlgorithmDecomposer.hasLoop:(Ljava/util/Set;Ljava/lang/String;Ljava/lang/String;)V
         8: .line 182
            aload 1 /* elements */
            areturn
        end local 1 // java.util.Set elements
        end local 0 // java.lang.String algorithm
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0  algorithm  Ljava/lang/String;
            3    9     1   elements  Ljava/util/Set<Ljava/lang/String;>;
    Signature: (Ljava/lang/String;)Ljava/util/Set<Ljava/lang/String;>;
    MethodParameters:
           Name  Flags
      algorithm  

  public static java.lang.String hashName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String algorithm
         0: .line 190
            aload 0 /* algorithm */
            ldc "-"
            ldc ""
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String algorithm
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  algorithm  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      algorithm  
}
SourceFile: "AlgorithmDecomposer.java"