public final class org.apache.tomcat.util.security.MD5Encoder
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.apache.tomcat.util.security.MD5Encoder
  super_class: java.lang.Object
{
  private static final char[] hexadecimal;
    descriptor: [C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 36
            bipush 16
            newarray 5
            dup
            iconst_0
            bipush 48
            castore
            dup
            iconst_1
            bipush 49
            castore
            dup
            iconst_2
            bipush 50
            castore
            dup
            iconst_3
            bipush 51
            castore
            dup
            iconst_4
            bipush 52
            castore
            dup
            iconst_5
            bipush 53
            castore
            dup
            bipush 6
         1: .line 37
            bipush 54
            castore
            dup
            bipush 7
            bipush 55
            castore
            dup
            bipush 8
            bipush 56
            castore
            dup
            bipush 9
            bipush 57
            castore
            dup
            bipush 10
            bipush 97
            castore
            dup
            bipush 11
            bipush 98
            castore
            dup
            bipush 12
            bipush 99
            castore
            dup
            bipush 13
            bipush 100
            castore
            dup
            bipush 14
            bipush 101
            castore
            dup
            bipush 15
            bipush 102
            castore
         2: .line 36
            putstatic org.apache.tomcat.util.security.MD5Encoder.hexadecimal:[C
         3: .line 37
            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 // org.apache.tomcat.util.security.MD5Encoder this
         0: .line 31
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 33
            return
        end local 0 // org.apache.tomcat.util.security.MD5Encoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/tomcat/util/security/MD5Encoder;

  public static java.lang.String encode(byte[]);
    descriptor: ([B)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // byte[] binaryData
         0: .line 49
            aload 0 /* binaryData */
            arraylength
            bipush 16
            if_icmpeq 2
         1: .line 50
            aconst_null
            areturn
         2: .line 52
      StackMap locals:
      StackMap stack:
            bipush 32
            newarray 5
            astore 1 /* buffer */
        start local 1 // char[] buffer
         3: .line 54
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         4: goto 10
         5: .line 55
      StackMap locals: char[] int
      StackMap stack:
            aload 0 /* binaryData */
            iload 2 /* i */
            baload
            bipush 15
            iand
            istore 3 /* low */
        start local 3 // int low
         6: .line 56
            aload 0 /* binaryData */
            iload 2 /* i */
            baload
            sipush 240
            iand
            iconst_4
            ishr
            istore 4 /* high */
        start local 4 // int high
         7: .line 57
            aload 1 /* buffer */
            iload 2 /* i */
            iconst_2
            imul
            getstatic org.apache.tomcat.util.security.MD5Encoder.hexadecimal:[C
            iload 4 /* high */
            caload
            castore
         8: .line 58
            aload 1 /* buffer */
            iload 2 /* i */
            iconst_2
            imul
            iconst_1
            iadd
            getstatic org.apache.tomcat.util.security.MD5Encoder.hexadecimal:[C
            iload 3 /* low */
            caload
            castore
        end local 4 // int high
        end local 3 // int low
         9: .line 54
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 2 /* i */
            bipush 16
            if_icmplt 5
        end local 2 // int i
        11: .line 61
            new java.lang.String
            dup
            aload 1 /* buffer */
            invokespecial java.lang.String.<init>:([C)V
            areturn
        end local 1 // char[] buffer
        end local 0 // byte[] binaryData
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0  binaryData  [B
            3   12     1      buffer  [C
            4   11     2           i  I
            6    9     3         low  I
            7    9     4        high  I
    MethodParameters:
            Name  Flags
      binaryData  
}
SourceFile: "MD5Encoder.java"