public final class sun.security.provider.SHA extends sun.security.provider.DigestBase
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: sun.security.provider.SHA
  super_class: sun.security.provider.DigestBase
{
  private int[] W;
    descriptor: [I
    flags: (0x0002) ACC_PRIVATE

  private int[] state;
    descriptor: [I
    flags: (0x0002) ACC_PRIVATE

  private static final int round1_kt;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1518500249

  private static final int round2_kt;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1859775393

  private static final int round3_kt;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -1894007588

  private static final int round4_kt;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -899497514

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // sun.security.provider.SHA this
         0: .line 63
            aload 0 /* this */
            ldc "SHA-1"
            bipush 20
            bipush 64
            invokespecial sun.security.provider.DigestBase.<init>:(Ljava/lang/String;II)V
         1: .line 64
            aload 0 /* this */
            iconst_5
            newarray 10
            putfield sun.security.provider.SHA.state:[I
         2: .line 65
            aload 0 /* this */
            bipush 80
            newarray 10
            putfield sun.security.provider.SHA.W:[I
         3: .line 66
            aload 0 /* this */
            invokevirtual sun.security.provider.SHA.resetHashes:()V
         4: .line 67
            return
        end local 0 // sun.security.provider.SHA this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/security/provider/SHA;

  public java.lang.Object clone();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.security.provider.SHA this
         0: .line 73
            aload 0 /* this */
            invokespecial sun.security.provider.DigestBase.clone:()Ljava/lang/Object;
            checkcast sun.security.provider.SHA
            astore 1 /* copy */
        start local 1 // sun.security.provider.SHA copy
         1: .line 74
            aload 1 /* copy */
            aload 1 /* copy */
            getfield sun.security.provider.SHA.state:[I
            invokevirtual int[].clone:()Ljava/lang/Object;
            checkcast int[]
            putfield sun.security.provider.SHA.state:[I
         2: .line 75
            aload 1 /* copy */
            bipush 80
            newarray 10
            putfield sun.security.provider.SHA.W:[I
         3: .line 76
            aload 1 /* copy */
            areturn
        end local 1 // sun.security.provider.SHA copy
        end local 0 // sun.security.provider.SHA this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/security/provider/SHA;
            1    4     1  copy  Lsun/security/provider/SHA;
    Exceptions:
      throws java.lang.CloneNotSupportedException

  void implReset();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.provider.SHA this
         0: .line 84
            aload 0 /* this */
            invokevirtual sun.security.provider.SHA.resetHashes:()V
         1: .line 86
            aload 0 /* this */
            getfield sun.security.provider.SHA.W:[I
            iconst_0
            invokestatic java.util.Arrays.fill:([II)V
         2: .line 87
            return
        end local 0 // sun.security.provider.SHA this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/security/provider/SHA;

  private void resetHashes();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.security.provider.SHA this
         0: .line 90
            aload 0 /* this */
            getfield sun.security.provider.SHA.state:[I
            iconst_0
            ldc 1732584193
            iastore
         1: .line 91
            aload 0 /* this */
            getfield sun.security.provider.SHA.state:[I
            iconst_1
            ldc -271733879
            iastore
         2: .line 92
            aload 0 /* this */
            getfield sun.security.provider.SHA.state:[I
            iconst_2
            ldc -1732584194
            iastore
         3: .line 93
            aload 0 /* this */
            getfield sun.security.provider.SHA.state:[I
            iconst_3
            ldc 271733878
            iastore
         4: .line 94
            aload 0 /* this */
            getfield sun.security.provider.SHA.state:[I
            iconst_4
            ldc -1009589776
            iastore
         5: .line 95
            return
        end local 0 // sun.security.provider.SHA this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/security/provider/SHA;

  void implDigest(byte[], int);
    descriptor: ([BI)V
    flags: (0x0000) 
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // sun.security.provider.SHA this
        start local 1 // byte[] out
        start local 2 // int ofs
         0: .line 101
            aload 0 /* this */
            getfield sun.security.provider.SHA.bytesProcessed:J
            iconst_3
            lshl
            lstore 3 /* bitsProcessed */
        start local 3 // long bitsProcessed
         1: .line 103
            aload 0 /* this */
            getfield sun.security.provider.SHA.bytesProcessed:J
            l2i
            bipush 63
            iand
            istore 5 /* index */
        start local 5 // int index
         2: .line 104
            iload 5 /* index */
            bipush 56
            if_icmpge 3
            bipush 56
            iload 5 /* index */
            isub
            goto 4
      StackMap locals: long int
      StackMap stack:
         3: bipush 120
            iload 5 /* index */
            isub
      StackMap locals:
      StackMap stack: int
         4: istore 6 /* padLen */
        start local 6 // int padLen
         5: .line 105
            aload 0 /* this */
            getstatic sun.security.provider.SHA.padding:[B
            iconst_0
            iload 6 /* padLen */
            invokevirtual sun.security.provider.SHA.engineUpdate:([BII)V
         6: .line 107
            lload 3 /* bitsProcessed */
            bipush 32
            lushr
            l2i
            aload 0 /* this */
            getfield sun.security.provider.SHA.buffer:[B
            bipush 56
            invokestatic sun.security.provider.ByteArrayAccess.i2bBig4:(I[BI)V
         7: .line 108
            lload 3 /* bitsProcessed */
            l2i
            aload 0 /* this */
            getfield sun.security.provider.SHA.buffer:[B
            bipush 60
            invokestatic sun.security.provider.ByteArrayAccess.i2bBig4:(I[BI)V
         8: .line 109
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.provider.SHA.buffer:[B
            iconst_0
            invokevirtual sun.security.provider.SHA.implCompress:([BI)V
         9: .line 111
            aload 0 /* this */
            getfield sun.security.provider.SHA.state:[I
            iconst_0
            aload 1 /* out */
            iload 2 /* ofs */
            bipush 20
            invokestatic sun.security.provider.ByteArrayAccess.i2bBig:([II[BII)V
        10: .line 112
            return
        end local 6 // int padLen
        end local 5 // int index
        end local 3 // long bitsProcessed
        end local 2 // int ofs
        end local 1 // byte[] out
        end local 0 // sun.security.provider.SHA this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Lsun/security/provider/SHA;
            0   11     1            out  [B
            0   11     2            ofs  I
            1   11     3  bitsProcessed  J
            2   11     5          index  I
            5   11     6         padLen  I
    MethodParameters:
      Name  Flags
      out   
      ofs   

  void implCompress(byte[], int);
    descriptor: ([BI)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.security.provider.SHA this
        start local 1 // byte[] buf
        start local 2 // int ofs
         0: .line 128
            aload 0 /* this */
            aload 1 /* buf */
            iload 2 /* ofs */
            invokevirtual sun.security.provider.SHA.implCompressCheck:([BI)V
         1: .line 129
            aload 0 /* this */
            aload 1 /* buf */
            iload 2 /* ofs */
            invokevirtual sun.security.provider.SHA.implCompress0:([BI)V
         2: .line 130
            return
        end local 2 // int ofs
        end local 1 // byte[] buf
        end local 0 // sun.security.provider.SHA this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/security/provider/SHA;
            0    3     1   buf  [B
            0    3     2   ofs  I
    MethodParameters:
      Name  Flags
      buf   
      ofs   

  private void implCompressCheck(byte[], int);
    descriptor: ([BI)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.security.provider.SHA this
        start local 1 // byte[] buf
        start local 2 // int ofs
         0: .line 133
            aload 1 /* buf */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 139
            aload 1 /* buf */
            iload 2 /* ofs */
            aload 0 /* this */
            getfield sun.security.provider.SHA.W:[I
            invokestatic sun.security.provider.ByteArrayAccess.b2iBig64:([BI[I)V
         2: .line 140
            return
        end local 2 // int ofs
        end local 1 // byte[] buf
        end local 0 // sun.security.provider.SHA this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/security/provider/SHA;
            0    3     1   buf  [B
            0    3     2   ofs  I
    MethodParameters:
      Name  Flags
      buf   
      ofs   

  private void implCompress0(byte[], int);
    descriptor: ([BI)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // sun.security.provider.SHA this
        start local 1 // byte[] buf
        start local 2 // int ofs
         0: .line 150
            bipush 16
            istore 3 /* t */
        start local 3 // int t
         1: goto 5
         2: .line 151
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.provider.SHA.W:[I
            iload 3 /* t */
            iconst_3
            isub
            iaload
            aload 0 /* this */
            getfield sun.security.provider.SHA.W:[I
            iload 3 /* t */
            bipush 8
            isub
            iaload
            ixor
            aload 0 /* this */
            getfield sun.security.provider.SHA.W:[I
            iload 3 /* t */
            bipush 14
            isub
            iaload
            ixor
            aload 0 /* this */
            getfield sun.security.provider.SHA.W:[I
            iload 3 /* t */
            bipush 16
            isub
            iaload
            ixor
            istore 4 /* temp */
        start local 4 // int temp
         3: .line 152
            aload 0 /* this */
            getfield sun.security.provider.SHA.W:[I
            iload 3 /* t */
            iload 4 /* temp */
            iconst_1
            ishl
            iload 4 /* temp */
            bipush 31
            iushr
            ior
            iastore
        end local 4 // int temp
         4: .line 150
            iinc 3 /* t */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* t */
            bipush 79
            if_icmple 2
        end local 3 // int t
         6: .line 155
            aload 0 /* this */
            getfield sun.security.provider.SHA.state:[I
            iconst_0
            iaload
            istore 3 /* a */
        start local 3 // int a
         7: .line 156
            aload 0 /* this */
            getfield sun.security.provider.SHA.state:[I
            iconst_1
            iaload
            istore 4 /* b */
        start local 4 // int b
         8: .line 157
            aload 0 /* this */
            getfield sun.security.provider.SHA.state:[I
            iconst_2
            iaload
            istore 5 /* c */
        start local 5 // int c
         9: .line 158
            aload 0 /* this */
            getfield sun.security.provider.SHA.state:[I
            iconst_3
            iaload
            istore 6 /* d */
        start local 6 // int d
        10: .line 159
            aload 0 /* this */
            getfield sun.security.provider.SHA.state:[I
            iconst_4
            iaload
            istore 7 /* e */
        start local 7 // int e
        11: .line 162
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        12: goto 28
        13: .line 163
      StackMap locals: sun.security.provider.SHA byte[] int int int int int int int
      StackMap stack:
            iload 3 /* a */
            iconst_5
            ishl
            iload 3 /* a */
            bipush 27
            iushr
            ior
        14: .line 164
            iload 4 /* b */
            iload 5 /* c */
            iand
            iload 4 /* b */
            iconst_m1
            ixor
            iload 6 /* d */
            iand
            ior
        15: .line 163
            iadd
        16: .line 164
            iload 7 /* e */
        17: .line 163
            iadd
        18: .line 164
            aload 0 /* this */
            getfield sun.security.provider.SHA.W:[I
            iload 8 /* i */
            iaload
        19: .line 163
            iadd
        20: .line 164
            ldc 1518500249
        21: .line 163
            iadd
            istore 9 /* temp */
        start local 9 // int temp
        22: .line 165
            iload 6 /* d */
            istore 7 /* e */
        23: .line 166
            iload 5 /* c */
            istore 6 /* d */
        24: .line 167
            iload 4 /* b */
            bipush 30
            ishl
            iload 4 /* b */
            iconst_2
            iushr
            ior
            istore 5 /* c */
        25: .line 168
            iload 3 /* a */
            istore 4 /* b */
        26: .line 169
            iload 9 /* temp */
            istore 3 /* a */
        end local 9 // int temp
        27: .line 162
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        28: iload 8 /* i */
            bipush 20
            if_icmplt 13
        end local 8 // int i
        29: .line 173
            bipush 20
            istore 8 /* i */
        start local 8 // int i
        30: goto 46
        31: .line 174
      StackMap locals:
      StackMap stack:
            iload 3 /* a */
            iconst_5
            ishl
            iload 3 /* a */
            bipush 27
            iushr
            ior
        32: .line 175
            iload 4 /* b */
            iload 5 /* c */
            ixor
            iload 6 /* d */
            ixor
        33: .line 174
            iadd
        34: .line 175
            iload 7 /* e */
        35: .line 174
            iadd
        36: .line 175
            aload 0 /* this */
            getfield sun.security.provider.SHA.W:[I
            iload 8 /* i */
            iaload
        37: .line 174
            iadd
        38: .line 175
            ldc 1859775393
        39: .line 174
            iadd
            istore 9 /* temp */
        start local 9 // int temp
        40: .line 176
            iload 6 /* d */
            istore 7 /* e */
        41: .line 177
            iload 5 /* c */
            istore 6 /* d */
        42: .line 178
            iload 4 /* b */
            bipush 30
            ishl
            iload 4 /* b */
            iconst_2
            iushr
            ior
            istore 5 /* c */
        43: .line 179
            iload 3 /* a */
            istore 4 /* b */
        44: .line 180
            iload 9 /* temp */
            istore 3 /* a */
        end local 9 // int temp
        45: .line 173
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        46: iload 8 /* i */
            bipush 40
            if_icmplt 31
        end local 8 // int i
        47: .line 184
            bipush 40
            istore 8 /* i */
        start local 8 // int i
        48: goto 64
        49: .line 185
      StackMap locals:
      StackMap stack:
            iload 3 /* a */
            iconst_5
            ishl
            iload 3 /* a */
            bipush 27
            iushr
            ior
        50: .line 186
            iload 4 /* b */
            iload 5 /* c */
            iand
            iload 4 /* b */
            iload 6 /* d */
            iand
            ior
            iload 5 /* c */
            iload 6 /* d */
            iand
            ior
        51: .line 185
            iadd
        52: .line 186
            iload 7 /* e */
        53: .line 185
            iadd
        54: .line 186
            aload 0 /* this */
            getfield sun.security.provider.SHA.W:[I
            iload 8 /* i */
            iaload
        55: .line 185
            iadd
        56: .line 186
            ldc -1894007588
        57: .line 185
            iadd
            istore 9 /* temp */
        start local 9 // int temp
        58: .line 187
            iload 6 /* d */
            istore 7 /* e */
        59: .line 188
            iload 5 /* c */
            istore 6 /* d */
        60: .line 189
            iload 4 /* b */
            bipush 30
            ishl
            iload 4 /* b */
            iconst_2
            iushr
            ior
            istore 5 /* c */
        61: .line 190
            iload 3 /* a */
            istore 4 /* b */
        62: .line 191
            iload 9 /* temp */
            istore 3 /* a */
        end local 9 // int temp
        63: .line 184
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        64: iload 8 /* i */
            bipush 60
            if_icmplt 49
        end local 8 // int i
        65: .line 195
            bipush 60
            istore 8 /* i */
        start local 8 // int i
        66: goto 82
        67: .line 196
      StackMap locals:
      StackMap stack:
            iload 3 /* a */
            iconst_5
            ishl
            iload 3 /* a */
            bipush 27
            iushr
            ior
        68: .line 197
            iload 4 /* b */
            iload 5 /* c */
            ixor
            iload 6 /* d */
            ixor
        69: .line 196
            iadd
        70: .line 197
            iload 7 /* e */
        71: .line 196
            iadd
        72: .line 197
            aload 0 /* this */
            getfield sun.security.provider.SHA.W:[I
            iload 8 /* i */
            iaload
        73: .line 196
            iadd
        74: .line 197
            ldc -899497514
        75: .line 196
            iadd
            istore 9 /* temp */
        start local 9 // int temp
        76: .line 198
            iload 6 /* d */
            istore 7 /* e */
        77: .line 199
            iload 5 /* c */
            istore 6 /* d */
        78: .line 200
            iload 4 /* b */
            bipush 30
            ishl
            iload 4 /* b */
            iconst_2
            iushr
            ior
            istore 5 /* c */
        79: .line 201
            iload 3 /* a */
            istore 4 /* b */
        80: .line 202
            iload 9 /* temp */
            istore 3 /* a */
        end local 9 // int temp
        81: .line 195
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        82: iload 8 /* i */
            bipush 80
            if_icmplt 67
        end local 8 // int i
        83: .line 204
            aload 0 /* this */
            getfield sun.security.provider.SHA.state:[I
            iconst_0
            dup2
            iaload
            iload 3 /* a */
            iadd
            iastore
        84: .line 205
            aload 0 /* this */
            getfield sun.security.provider.SHA.state:[I
            iconst_1
            dup2
            iaload
            iload 4 /* b */
            iadd
            iastore
        85: .line 206
            aload 0 /* this */
            getfield sun.security.provider.SHA.state:[I
            iconst_2
            dup2
            iaload
            iload 5 /* c */
            iadd
            iastore
        86: .line 207
            aload 0 /* this */
            getfield sun.security.provider.SHA.state:[I
            iconst_3
            dup2
            iaload
            iload 6 /* d */
            iadd
            iastore
        87: .line 208
            aload 0 /* this */
            getfield sun.security.provider.SHA.state:[I
            iconst_4
            dup2
            iaload
            iload 7 /* e */
            iadd
            iastore
        88: .line 209
            return
        end local 7 // int e
        end local 6 // int d
        end local 5 // int c
        end local 4 // int b
        end local 3 // int a
        end local 2 // int ofs
        end local 1 // byte[] buf
        end local 0 // sun.security.provider.SHA this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   89     0  this  Lsun/security/provider/SHA;
            0   89     1   buf  [B
            0   89     2   ofs  I
            1    6     3     t  I
            3    4     4  temp  I
            7   89     3     a  I
            8   89     4     b  I
            9   89     5     c  I
           10   89     6     d  I
           11   89     7     e  I
           12   29     8     i  I
           22   27     9  temp  I
           30   47     8     i  I
           40   45     9  temp  I
           48   65     8     i  I
           58   63     9  temp  I
           66   83     8     i  I
           76   81     9  temp  I
    MethodParameters:
      Name  Flags
      buf   
      ofs   
}
SourceFile: "SHA.java"