public class org.bouncycastle.crypto.digests.GOST3411Digest implements org.bouncycastle.crypto.ExtendedDigest, org.bouncycastle.util.Memoable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.crypto.digests.GOST3411Digest
  super_class: java.lang.Object
{
  private static final int DIGEST_LENGTH;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 32

  private byte[] H;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private byte[] L;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private byte[] M;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private byte[] Sum;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private byte[][] C;
    descriptor: [[B
    flags: (0x0002) ACC_PRIVATE

  private byte[] xBuf;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private int xBufOff;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private long byteCount;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private org.bouncycastle.crypto.BlockCipher cipher;
    descriptor: Lorg/bouncycastle/crypto/BlockCipher;
    flags: (0x0002) ACC_PRIVATE

  private byte[] sBox;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private byte[] K;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  byte[] a;
    descriptor: [B
    flags: (0x0000) 

  short[] wS;
    descriptor: [S
    flags: (0x0000) 

  short[] w_S;
    descriptor: [S
    flags: (0x0000) 

  byte[] S;
    descriptor: [B
    flags: (0x0000) 

  byte[] U;
    descriptor: [B
    flags: (0x0000) 

  byte[] V;
    descriptor: [B
    flags: (0x0000) 

  byte[] W;
    descriptor: [B
    flags: (0x0000) 

  private static final byte[] C2;
    descriptor: [B
    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 254
            bipush 32
            newarray 8
            dup
            iconst_1
         1: .line 255
            iconst_m1
            bastore
            dup
            iconst_3
            iconst_m1
            bastore
            dup
            iconst_5
            iconst_m1
            bastore
            dup
            bipush 7
            iconst_m1
            bastore
            dup
            bipush 8
         2: .line 256
            iconst_m1
            bastore
            dup
            bipush 10
            iconst_m1
            bastore
            dup
            bipush 12
            iconst_m1
            bastore
            dup
            bipush 14
            iconst_m1
            bastore
            dup
            bipush 17
         3: .line 257
            iconst_m1
            bastore
            dup
            bipush 18
            iconst_m1
            bastore
            dup
            bipush 20
            iconst_m1
            bastore
            dup
            bipush 23
            iconst_m1
            bastore
            dup
            bipush 24
         4: .line 258
            iconst_m1
            bastore
            dup
            bipush 28
            iconst_m1
            bastore
            dup
            bipush 29
            iconst_m1
            bastore
            dup
            bipush 31
            iconst_m1
            bastore
         5: .line 254
            putstatic org.bouncycastle.crypto.digests.GOST3411Digest.C2:[B
         6: .line 258
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
         0: .line 34
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 20
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.H:[B
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.L:[B
         2: .line 21
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.M:[B
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.Sum:[B
         3: .line 22
            aload 0 /* this */
            iconst_4
            bipush 32
            multianewarray [[B 2
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.C:[[B
         4: .line 24
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.xBuf:[B
         5: .line 28
            aload 0 /* this */
            new org.bouncycastle.crypto.engines.GOST28147Engine
            dup
            invokespecial org.bouncycastle.crypto.engines.GOST28147Engine.<init>:()V
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.cipher:Lorg/bouncycastle/crypto/BlockCipher;
         6: .line 115
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.K:[B
         7: .line 131
            aload 0 /* this */
            bipush 8
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.a:[B
         8: .line 154
            aload 0 /* this */
            bipush 16
            newarray 9
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.wS:[S
            aload 0 /* this */
            bipush 16
            newarray 9
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.w_S:[S
         9: .line 165
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.S:[B
        10: .line 166
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.U:[B
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.V:[B
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.W:[B
        11: .line 36
            aload 0 /* this */
            ldc "D-A"
            invokestatic org.bouncycastle.crypto.engines.GOST28147Engine.getSBox:(Ljava/lang/String;)[B
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.sBox:[B
        12: .line 37
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.cipher:Lorg/bouncycastle/crypto/BlockCipher;
            iconst_1
            new org.bouncycastle.crypto.params.ParametersWithSBox
            dup
            aconst_null
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.sBox:[B
            invokespecial org.bouncycastle.crypto.params.ParametersWithSBox.<init>:(Lorg/bouncycastle/crypto/CipherParameters;[B)V
            invokeinterface org.bouncycastle.crypto.BlockCipher.init:(ZLorg/bouncycastle/crypto/CipherParameters;)V
        13: .line 39
            aload 0 /* this */
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.reset:()V
        14: .line 40
            return
        end local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lorg/bouncycastle/crypto/digests/GOST3411Digest;

  public void <init>(byte[]);
    descriptor: ([B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
        start local 1 // byte[] sBoxParam
         0: .line 46
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 20
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.H:[B
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.L:[B
         2: .line 21
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.M:[B
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.Sum:[B
         3: .line 22
            aload 0 /* this */
            iconst_4
            bipush 32
            multianewarray [[B 2
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.C:[[B
         4: .line 24
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.xBuf:[B
         5: .line 28
            aload 0 /* this */
            new org.bouncycastle.crypto.engines.GOST28147Engine
            dup
            invokespecial org.bouncycastle.crypto.engines.GOST28147Engine.<init>:()V
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.cipher:Lorg/bouncycastle/crypto/BlockCipher;
         6: .line 115
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.K:[B
         7: .line 131
            aload 0 /* this */
            bipush 8
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.a:[B
         8: .line 154
            aload 0 /* this */
            bipush 16
            newarray 9
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.wS:[S
            aload 0 /* this */
            bipush 16
            newarray 9
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.w_S:[S
         9: .line 165
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.S:[B
        10: .line 166
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.U:[B
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.V:[B
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.W:[B
        11: .line 48
            aload 0 /* this */
            aload 1 /* sBoxParam */
            invokestatic org.bouncycastle.util.Arrays.clone:([B)[B
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.sBox:[B
        12: .line 49
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.cipher:Lorg/bouncycastle/crypto/BlockCipher;
            iconst_1
            new org.bouncycastle.crypto.params.ParametersWithSBox
            dup
            aconst_null
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.sBox:[B
            invokespecial org.bouncycastle.crypto.params.ParametersWithSBox.<init>:(Lorg/bouncycastle/crypto/CipherParameters;[B)V
            invokeinterface org.bouncycastle.crypto.BlockCipher.init:(ZLorg/bouncycastle/crypto/CipherParameters;)V
        13: .line 51
            aload 0 /* this */
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.reset:()V
        14: .line 52
            return
        end local 1 // byte[] sBoxParam
        end local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0       this  Lorg/bouncycastle/crypto/digests/GOST3411Digest;
            0   15     1  sBoxParam  [B
    MethodParameters:
           Name  Flags
      sBoxParam  

  public void <init>(org.bouncycastle.crypto.digests.GOST3411Digest);
    descriptor: (Lorg/bouncycastle/crypto/digests/GOST3411Digest;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
        start local 1 // org.bouncycastle.crypto.digests.GOST3411Digest t
         0: .line 58
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 20
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.H:[B
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.L:[B
         2: .line 21
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.M:[B
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.Sum:[B
         3: .line 22
            aload 0 /* this */
            iconst_4
            bipush 32
            multianewarray [[B 2
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.C:[[B
         4: .line 24
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.xBuf:[B
         5: .line 28
            aload 0 /* this */
            new org.bouncycastle.crypto.engines.GOST28147Engine
            dup
            invokespecial org.bouncycastle.crypto.engines.GOST28147Engine.<init>:()V
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.cipher:Lorg/bouncycastle/crypto/BlockCipher;
         6: .line 115
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.K:[B
         7: .line 131
            aload 0 /* this */
            bipush 8
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.a:[B
         8: .line 154
            aload 0 /* this */
            bipush 16
            newarray 9
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.wS:[S
            aload 0 /* this */
            bipush 16
            newarray 9
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.w_S:[S
         9: .line 165
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.S:[B
        10: .line 166
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.U:[B
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.V:[B
            aload 0 /* this */
            bipush 32
            newarray 8
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.W:[B
        11: .line 60
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.reset:(Lorg/bouncycastle/util/Memoable;)V
        12: .line 61
            return
        end local 1 // org.bouncycastle.crypto.digests.GOST3411Digest t
        end local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lorg/bouncycastle/crypto/digests/GOST3411Digest;
            0   13     1     t  Lorg/bouncycastle/crypto/digests/GOST3411Digest;
    MethodParameters:
      Name  Flags
      t     

  public java.lang.String getAlgorithmName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
         0: .line 65
            ldc "GOST3411"
            areturn
        end local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/crypto/digests/GOST3411Digest;

  public int getDigestSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
         0: .line 70
            bipush 32
            ireturn
        end local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/crypto/digests/GOST3411Digest;

  public void update(byte);
    descriptor: (B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
        start local 1 // byte in
         0: .line 75
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.xBuf:[B
            aload 0 /* this */
            dup
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.xBufOff:I
            dup_x1
            iconst_1
            iadd
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.xBufOff:I
            iload 1 /* in */
            bastore
         1: .line 76
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.xBufOff:I
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.xBuf:[B
            arraylength
            if_icmpne 5
         2: .line 78
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.xBuf:[B
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.sumByteArray:([B)V
         3: .line 79
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.xBuf:[B
            iconst_0
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.processBlock:([BI)V
         4: .line 80
            aload 0 /* this */
            iconst_0
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.xBufOff:I
         5: .line 82
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.byteCount:J
            lconst_1
            ladd
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.byteCount:J
         6: .line 83
            return
        end local 1 // byte in
        end local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/bouncycastle/crypto/digests/GOST3411Digest;
            0    7     1    in  B
    MethodParameters:
      Name  Flags
      in    

  public void update(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
        start local 1 // byte[] in
        start local 2 // int inOff
        start local 3 // int len
         0: .line 87
            goto 4
         1: .line 89
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* in */
            iload 2 /* inOff */
            baload
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.update:(B)V
         2: .line 90
            iinc 2 /* inOff */ 1
         3: .line 91
            iinc 3 /* len */ -1
         4: .line 87
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.xBufOff:I
            ifeq 12
            iload 3 /* len */
            ifgt 1
         5: .line 94
            goto 12
         6: .line 96
      StackMap locals:
      StackMap stack:
            aload 1 /* in */
            iload 2 /* inOff */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.xBuf:[B
            iconst_0
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.xBuf:[B
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         7: .line 98
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.xBuf:[B
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.sumByteArray:([B)V
         8: .line 99
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.xBuf:[B
            iconst_0
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.processBlock:([BI)V
         9: .line 100
            iload 2 /* inOff */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.xBuf:[B
            arraylength
            iadd
            istore 2 /* inOff */
        10: .line 101
            iload 3 /* len */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.xBuf:[B
            arraylength
            isub
            istore 3 /* len */
        11: .line 102
            aload 0 /* this */
            dup
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.byteCount:J
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.xBuf:[B
            arraylength
            i2l
            ladd
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.byteCount:J
        12: .line 94
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.xBuf:[B
            arraylength
            if_icmpgt 6
        13: .line 106
            goto 17
        14: .line 108
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* in */
            iload 2 /* inOff */
            baload
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.update:(B)V
        15: .line 109
            iinc 2 /* inOff */ 1
        16: .line 110
            iinc 3 /* len */ -1
        17: .line 106
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            ifgt 14
        18: .line 112
            return
        end local 3 // int len
        end local 2 // int inOff
        end local 1 // byte[] in
        end local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   19     0   this  Lorg/bouncycastle/crypto/digests/GOST3411Digest;
            0   19     1     in  [B
            0   19     2  inOff  I
            0   19     3    len  I
    MethodParameters:
       Name  Flags
      in     
      inOff  
      len    

  private byte[] P(byte[]);
    descriptor: ([B)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
        start local 1 // byte[] in
         0: .line 119
            iconst_0
            istore 2 /* k */
        start local 2 // int k
         1: goto 7
         2: .line 121
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.K:[B
            iconst_4
            iload 2 /* k */
            imul
            aload 1 /* in */
            iload 2 /* k */
            baload
            bastore
         3: .line 122
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.K:[B
            iconst_1
            iconst_4
            iload 2 /* k */
            imul
            iadd
            aload 1 /* in */
            bipush 8
            iload 2 /* k */
            iadd
            baload
            bastore
         4: .line 123
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.K:[B
            iconst_2
            iconst_4
            iload 2 /* k */
            imul
            iadd
            aload 1 /* in */
            bipush 16
            iload 2 /* k */
            iadd
            baload
            bastore
         5: .line 124
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.K:[B
            iconst_3
            iconst_4
            iload 2 /* k */
            imul
            iadd
            aload 1 /* in */
            bipush 24
            iload 2 /* k */
            iadd
            baload
            bastore
         6: .line 119
            iinc 2 /* k */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* k */
            bipush 8
            if_icmplt 2
        end local 2 // int k
         8: .line 127
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.K:[B
            areturn
        end local 1 // byte[] in
        end local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/bouncycastle/crypto/digests/GOST3411Digest;
            0    9     1    in  [B
            1    8     2     k  I
    MethodParameters:
      Name  Flags
      in    

  private byte[] A(byte[]);
    descriptor: ([B)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
        start local 1 // byte[] in
         0: .line 134
            iconst_0
            istore 2 /* j */
        start local 2 // int j
         1: goto 4
         2: .line 136
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.a:[B
            iload 2 /* j */
            aload 1 /* in */
            iload 2 /* j */
            baload
            aload 1 /* in */
            iload 2 /* j */
            bipush 8
            iadd
            baload
            ixor
            i2b
            bastore
         3: .line 134
            iinc 2 /* j */ 1
      StackMap locals:
      StackMap stack:
         4: iload 2 /* j */
            bipush 8
            if_icmplt 2
        end local 2 // int j
         5: .line 139
            aload 1 /* in */
            bipush 8
            aload 1 /* in */
            iconst_0
            bipush 24
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         6: .line 140
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.a:[B
            iconst_0
            aload 1 /* in */
            bipush 24
            bipush 8
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         7: .line 142
            aload 1 /* in */
            areturn
        end local 1 // byte[] in
        end local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/bouncycastle/crypto/digests/GOST3411Digest;
            0    8     1    in  [B
            1    5     2     j  I
    MethodParameters:
      Name  Flags
      in    

  private void E(byte[], byte[], int, byte[], int);
    descriptor: ([B[BI[BI)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=6
        start local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
        start local 1 // byte[] key
        start local 2 // byte[] s
        start local 3 // int sOff
        start local 4 // byte[] in
        start local 5 // int inOff
         0: .line 148
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.cipher:Lorg/bouncycastle/crypto/BlockCipher;
            iconst_1
            new org.bouncycastle.crypto.params.KeyParameter
            dup
            aload 1 /* key */
            invokespecial org.bouncycastle.crypto.params.KeyParameter.<init>:([B)V
            invokeinterface org.bouncycastle.crypto.BlockCipher.init:(ZLorg/bouncycastle/crypto/CipherParameters;)V
         1: .line 150
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.cipher:Lorg/bouncycastle/crypto/BlockCipher;
            aload 4 /* in */
            iload 5 /* inOff */
            aload 2 /* s */
            iload 3 /* sOff */
            invokeinterface org.bouncycastle.crypto.BlockCipher.processBlock:([BI[BI)I
            pop
         2: .line 151
            return
        end local 5 // int inOff
        end local 4 // byte[] in
        end local 3 // int sOff
        end local 2 // byte[] s
        end local 1 // byte[] key
        end local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/bouncycastle/crypto/digests/GOST3411Digest;
            0    3     1    key  [B
            0    3     2      s  [B
            0    3     3   sOff  I
            0    3     4     in  [B
            0    3     5  inOff  I
    MethodParameters:
       Name  Flags
      key    
      s      
      sOff   
      in     
      inOff  

  private void fw(byte[]);
    descriptor: ([B)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
        start local 1 // byte[] in
         0: .line 158
            aload 0 /* this */
            aload 1 /* in */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.wS:[S
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.cpyBytesToShort:([B[S)V
         1: .line 159
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.w_S:[S
            bipush 15
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.wS:[S
            iconst_0
            saload
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.wS:[S
            iconst_1
            saload
            ixor
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.wS:[S
            iconst_2
            saload
            ixor
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.wS:[S
            iconst_3
            saload
            ixor
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.wS:[S
            bipush 12
            saload
            ixor
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.wS:[S
            bipush 15
            saload
            ixor
            i2s
            sastore
         2: .line 160
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.wS:[S
            iconst_1
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.w_S:[S
            iconst_0
            bipush 15
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         3: .line 161
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.w_S:[S
            aload 1 /* in */
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.cpyShortToBytes:([S[B)V
         4: .line 162
            return
        end local 1 // byte[] in
        end local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/bouncycastle/crypto/digests/GOST3411Digest;
            0    5     1    in  [B
    MethodParameters:
      Name  Flags
      in    

  protected void processBlock(byte[], int);
    descriptor: ([BI)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=6, args_size=3
        start local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
        start local 1 // byte[] in
        start local 2 // int inOff
         0: .line 170
            aload 1 /* in */
            iload 2 /* inOff */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.M:[B
            iconst_0
            bipush 32
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         1: .line 176
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.H:[B
            iconst_0
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.U:[B
            iconst_0
            bipush 32
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         2: .line 177
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.M:[B
            iconst_0
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.V:[B
            iconst_0
            bipush 32
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         3: .line 178
            iconst_0
            istore 3 /* j */
        start local 3 // int j
         4: goto 7
         5: .line 180
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.W:[B
            iload 3 /* j */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.U:[B
            iload 3 /* j */
            baload
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.V:[B
            iload 3 /* j */
            baload
            ixor
            i2b
            bastore
         6: .line 178
            iinc 3 /* j */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* j */
            bipush 32
            if_icmplt 5
        end local 3 // int j
         8: .line 183
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.W:[B
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.P:([B)[B
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.S:[B
            iconst_0
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.H:[B
            iconst_0
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.E:([B[BI[BI)V
         9: .line 186
            iconst_1
            istore 3 /* i */
        start local 3 // int i
        10: goto 25
        11: .line 188
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.U:[B
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.A:([B)[B
            astore 4 /* tmpA */
        start local 4 // byte[] tmpA
        12: .line 189
            iconst_0
            istore 5 /* j */
        start local 5 // int j
        13: goto 16
        14: .line 191
      StackMap locals: byte[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.U:[B
            iload 5 /* j */
            aload 4 /* tmpA */
            iload 5 /* j */
            baload
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.C:[[B
            iload 3 /* i */
            aaload
            iload 5 /* j */
            baload
            ixor
            i2b
            bastore
        15: .line 189
            iinc 5 /* j */ 1
      StackMap locals:
      StackMap stack:
        16: iload 5 /* j */
            bipush 32
            if_icmplt 14
        end local 5 // int j
        17: .line 193
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.V:[B
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.A:([B)[B
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.A:([B)[B
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.V:[B
        18: .line 194
            iconst_0
            istore 5 /* j */
        start local 5 // int j
        19: goto 22
        20: .line 196
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.W:[B
            iload 5 /* j */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.U:[B
            iload 5 /* j */
            baload
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.V:[B
            iload 5 /* j */
            baload
            ixor
            i2b
            bastore
        21: .line 194
            iinc 5 /* j */ 1
      StackMap locals:
      StackMap stack:
        22: iload 5 /* j */
            bipush 32
            if_icmplt 20
        end local 5 // int j
        23: .line 199
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.W:[B
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.P:([B)[B
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.S:[B
            iload 3 /* i */
            bipush 8
            imul
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.H:[B
            iload 3 /* i */
            bipush 8
            imul
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.E:([B[BI[BI)V
        end local 4 // byte[] tmpA
        24: .line 186
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 3 /* i */
            iconst_4
            if_icmplt 11
        end local 3 // int i
        26: .line 203
            iconst_0
            istore 3 /* n */
        start local 3 // int n
        27: goto 30
        28: .line 205
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.S:[B
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.fw:([B)V
        29: .line 203
            iinc 3 /* n */ 1
      StackMap locals:
      StackMap stack:
        30: iload 3 /* n */
            bipush 12
            if_icmplt 28
        end local 3 // int n
        31: .line 207
            iconst_0
            istore 3 /* n */
        start local 3 // int n
        32: goto 35
        33: .line 209
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.S:[B
            iload 3 /* n */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.S:[B
            iload 3 /* n */
            baload
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.M:[B
            iload 3 /* n */
            baload
            ixor
            i2b
            bastore
        34: .line 207
            iinc 3 /* n */ 1
      StackMap locals:
      StackMap stack:
        35: iload 3 /* n */
            bipush 32
            if_icmplt 33
        end local 3 // int n
        36: .line 212
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.S:[B
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.fw:([B)V
        37: .line 214
            iconst_0
            istore 3 /* n */
        start local 3 // int n
        38: goto 41
        39: .line 216
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.S:[B
            iload 3 /* n */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.H:[B
            iload 3 /* n */
            baload
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.S:[B
            iload 3 /* n */
            baload
            ixor
            i2b
            bastore
        40: .line 214
            iinc 3 /* n */ 1
      StackMap locals:
      StackMap stack:
        41: iload 3 /* n */
            bipush 32
            if_icmplt 39
        end local 3 // int n
        42: .line 218
            iconst_0
            istore 3 /* n */
        start local 3 // int n
        43: goto 46
        44: .line 220
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.S:[B
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.fw:([B)V
        45: .line 218
            iinc 3 /* n */ 1
      StackMap locals:
      StackMap stack:
        46: iload 3 /* n */
            bipush 61
            if_icmplt 44
        end local 3 // int n
        47: .line 222
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.S:[B
            iconst_0
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.H:[B
            iconst_0
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.H:[B
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        48: .line 223
            return
        end local 2 // int inOff
        end local 1 // byte[] in
        end local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   49     0   this  Lorg/bouncycastle/crypto/digests/GOST3411Digest;
            0   49     1     in  [B
            0   49     2  inOff  I
            4    8     3      j  I
           10   26     3      i  I
           12   24     4   tmpA  [B
           13   17     5      j  I
           19   23     5      j  I
           27   31     3      n  I
           32   36     3      n  I
           38   42     3      n  I
           43   47     3      n  I
    MethodParameters:
       Name  Flags
      in     
      inOff  

  private void finish();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
         0: .line 227
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.byteCount:J
            ldc 8
            lmul
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.L:[B
            iconst_0
            invokestatic org.bouncycastle.util.Pack.longToLittleEndian:(J[BI)V
         1: .line 229
            goto 3
         2: .line 231
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.update:(B)V
         3: .line 229
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.xBufOff:I
            ifne 2
         4: .line 234
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.L:[B
            iconst_0
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.processBlock:([BI)V
         5: .line 235
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.Sum:[B
            iconst_0
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.processBlock:([BI)V
         6: .line 236
            return
        end local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/bouncycastle/crypto/digests/GOST3411Digest;

  public int doFinal(byte[], int);
    descriptor: ([BI)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
        start local 1 // byte[] out
        start local 2 // int outOff
         0: .line 242
            aload 0 /* this */
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.finish:()V
         1: .line 244
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.H:[B
            iconst_0
            aload 1 /* out */
            iload 2 /* outOff */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.H:[B
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         2: .line 246
            aload 0 /* this */
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.reset:()V
         3: .line 248
            bipush 32
            ireturn
        end local 2 // int outOff
        end local 1 // byte[] out
        end local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/bouncycastle/crypto/digests/GOST3411Digest;
            0    4     1     out  [B
            0    4     2  outOff  I
    MethodParameters:
        Name  Flags
      out     
      outOff  

  public void reset();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
         0: .line 262
            aload 0 /* this */
            lconst_0
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.byteCount:J
         1: .line 263
            aload 0 /* this */
            iconst_0
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.xBufOff:I
         2: .line 265
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         3: goto 6
         4: .line 267
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.H:[B
            iload 1 /* i */
            iconst_0
            bastore
         5: .line 265
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 1 /* i */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.H:[B
            arraylength
            if_icmplt 4
        end local 1 // int i
         7: .line 269
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         8: goto 11
         9: .line 271
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.L:[B
            iload 1 /* i */
            iconst_0
            bastore
        10: .line 269
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 1 /* i */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.L:[B
            arraylength
            if_icmplt 9
        end local 1 // int i
        12: .line 273
            iconst_0
            istore 1 /* i */
        start local 1 // int i
        13: goto 16
        14: .line 275
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.M:[B
            iload 1 /* i */
            iconst_0
            bastore
        15: .line 273
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 1 /* i */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.M:[B
            arraylength
            if_icmplt 14
        end local 1 // int i
        17: .line 277
            iconst_0
            istore 1 /* i */
        start local 1 // int i
        18: goto 21
        19: .line 279
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.C:[[B
            iconst_1
            aaload
            iload 1 /* i */
            iconst_0
            bastore
        20: .line 277
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 1 /* i */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.C:[[B
            iconst_1
            aaload
            arraylength
            if_icmplt 19
        end local 1 // int i
        22: .line 281
            iconst_0
            istore 1 /* i */
        start local 1 // int i
        23: goto 26
        24: .line 283
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.C:[[B
            iconst_3
            aaload
            iload 1 /* i */
            iconst_0
            bastore
        25: .line 281
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 1 /* i */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.C:[[B
            iconst_3
            aaload
            arraylength
            if_icmplt 24
        end local 1 // int i
        27: .line 285
            iconst_0
            istore 1 /* i */
        start local 1 // int i
        28: goto 31
        29: .line 287
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.Sum:[B
            iload 1 /* i */
            iconst_0
            bastore
        30: .line 285
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        31: iload 1 /* i */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.Sum:[B
            arraylength
            if_icmplt 29
        end local 1 // int i
        32: .line 289
            iconst_0
            istore 1 /* i */
        start local 1 // int i
        33: goto 36
        34: .line 291
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.xBuf:[B
            iload 1 /* i */
            iconst_0
            bastore
        35: .line 289
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        36: iload 1 /* i */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.xBuf:[B
            arraylength
            if_icmplt 34
        end local 1 // int i
        37: .line 294
            getstatic org.bouncycastle.crypto.digests.GOST3411Digest.C2:[B
            iconst_0
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.C:[[B
            iconst_2
            aaload
            iconst_0
            getstatic org.bouncycastle.crypto.digests.GOST3411Digest.C2:[B
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        38: .line 295
            return
        end local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   39     0  this  Lorg/bouncycastle/crypto/digests/GOST3411Digest;
            3    7     1     i  I
            8   12     1     i  I
           13   17     1     i  I
           18   22     1     i  I
           23   27     1     i  I
           28   32     1     i  I
           33   37     1     i  I

  private void sumByteArray(byte[]);
    descriptor: ([B)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
        start local 1 // byte[] in
         0: .line 300
            iconst_0
            istore 2 /* carry */
        start local 2 // int carry
         1: .line 302
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 7
         3: .line 304
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.Sum:[B
            iload 3 /* i */
            baload
            sipush 255
            iand
            aload 1 /* in */
            iload 3 /* i */
            baload
            sipush 255
            iand
            iadd
            iload 2 /* carry */
            iadd
            istore 4 /* sum */
        start local 4 // int sum
         4: .line 306
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.Sum:[B
            iload 3 /* i */
            iload 4 /* sum */
            i2b
            bastore
         5: .line 308
            iload 4 /* sum */
            bipush 8
            iushr
            istore 2 /* carry */
        end local 4 // int sum
         6: .line 302
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.Sum:[B
            arraylength
            if_icmpne 3
        end local 3 // int i
         8: .line 310
            return
        end local 2 // int carry
        end local 1 // byte[] in
        end local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lorg/bouncycastle/crypto/digests/GOST3411Digest;
            0    9     1     in  [B
            1    9     2  carry  I
            2    8     3      i  I
            4    6     4    sum  I
    MethodParameters:
      Name  Flags
      in    

  private void cpyBytesToShort(byte[], short[]);
    descriptor: ([B[S)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
        start local 1 // byte[] S
        start local 2 // short[] wS
         0: .line 314
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         1: goto 4
         2: .line 316
      StackMap locals: int
      StackMap stack:
            aload 2 /* wS */
            iload 3 /* i */
            aload 1 /* S */
            iload 3 /* i */
            iconst_2
            imul
            iconst_1
            iadd
            baload
            bipush 8
            ishl
            ldc 65280
            iand
            aload 1 /* S */
            iload 3 /* i */
            iconst_2
            imul
            baload
            sipush 255
            iand
            ior
            i2s
            sastore
         3: .line 314
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         4: iload 3 /* i */
            aload 1 /* S */
            arraylength
            iconst_2
            idiv
            if_icmplt 2
        end local 3 // int i
         5: .line 318
            return
        end local 2 // short[] wS
        end local 1 // byte[] S
        end local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/bouncycastle/crypto/digests/GOST3411Digest;
            0    6     1     S  [B
            0    6     2    wS  [S
            1    5     3     i  I
    MethodParameters:
      Name  Flags
      S     
      wS    

  private void cpyShortToBytes(short[], byte[]);
    descriptor: ([S[B)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
        start local 1 // short[] wS
        start local 2 // byte[] S
         0: .line 322
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         1: goto 5
         2: .line 324
      StackMap locals: int
      StackMap stack:
            aload 2 /* S */
            iload 3 /* i */
            iconst_2
            imul
            iconst_1
            iadd
            aload 1 /* wS */
            iload 3 /* i */
            saload
            bipush 8
            ishr
            i2b
            bastore
         3: .line 325
            aload 2 /* S */
            iload 3 /* i */
            iconst_2
            imul
            aload 1 /* wS */
            iload 3 /* i */
            saload
            i2b
            bastore
         4: .line 322
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* i */
            aload 2 /* S */
            arraylength
            iconst_2
            idiv
            if_icmplt 2
        end local 3 // int i
         6: .line 327
            return
        end local 2 // byte[] S
        end local 1 // short[] wS
        end local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/bouncycastle/crypto/digests/GOST3411Digest;
            0    7     1    wS  [S
            0    7     2     S  [B
            1    6     3     i  I
    MethodParameters:
      Name  Flags
      wS    
      S     

  public int getByteLength();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
         0: .line 331
            bipush 32
            ireturn
        end local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/crypto/digests/GOST3411Digest;

  public org.bouncycastle.util.Memoable copy();
    descriptor: ()Lorg/bouncycastle/util/Memoable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
         0: .line 336
            new org.bouncycastle.crypto.digests.GOST3411Digest
            dup
            aload 0 /* this */
            invokespecial org.bouncycastle.crypto.digests.GOST3411Digest.<init>:(Lorg/bouncycastle/crypto/digests/GOST3411Digest;)V
            areturn
        end local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/crypto/digests/GOST3411Digest;

  public void reset(org.bouncycastle.util.Memoable);
    descriptor: (Lorg/bouncycastle/util/Memoable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
        start local 1 // org.bouncycastle.util.Memoable other
         0: .line 341
            aload 1 /* other */
            checkcast org.bouncycastle.crypto.digests.GOST3411Digest
            astore 2 /* t */
        start local 2 // org.bouncycastle.crypto.digests.GOST3411Digest t
         1: .line 343
            aload 0 /* this */
            aload 2 /* t */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.sBox:[B
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.sBox:[B
         2: .line 344
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.cipher:Lorg/bouncycastle/crypto/BlockCipher;
            iconst_1
            new org.bouncycastle.crypto.params.ParametersWithSBox
            dup
            aconst_null
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.sBox:[B
            invokespecial org.bouncycastle.crypto.params.ParametersWithSBox.<init>:(Lorg/bouncycastle/crypto/CipherParameters;[B)V
            invokeinterface org.bouncycastle.crypto.BlockCipher.init:(ZLorg/bouncycastle/crypto/CipherParameters;)V
         3: .line 346
            aload 0 /* this */
            invokevirtual org.bouncycastle.crypto.digests.GOST3411Digest.reset:()V
         4: .line 348
            aload 2 /* t */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.H:[B
            iconst_0
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.H:[B
            iconst_0
            aload 2 /* t */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.H:[B
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         5: .line 349
            aload 2 /* t */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.L:[B
            iconst_0
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.L:[B
            iconst_0
            aload 2 /* t */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.L:[B
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         6: .line 350
            aload 2 /* t */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.M:[B
            iconst_0
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.M:[B
            iconst_0
            aload 2 /* t */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.M:[B
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         7: .line 351
            aload 2 /* t */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.Sum:[B
            iconst_0
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.Sum:[B
            iconst_0
            aload 2 /* t */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.Sum:[B
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         8: .line 352
            aload 2 /* t */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.C:[[B
            iconst_1
            aaload
            iconst_0
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.C:[[B
            iconst_1
            aaload
            iconst_0
            aload 2 /* t */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.C:[[B
            iconst_1
            aaload
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         9: .line 353
            aload 2 /* t */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.C:[[B
            iconst_2
            aaload
            iconst_0
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.C:[[B
            iconst_2
            aaload
            iconst_0
            aload 2 /* t */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.C:[[B
            iconst_2
            aaload
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        10: .line 354
            aload 2 /* t */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.C:[[B
            iconst_3
            aaload
            iconst_0
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.C:[[B
            iconst_3
            aaload
            iconst_0
            aload 2 /* t */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.C:[[B
            iconst_3
            aaload
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        11: .line 355
            aload 2 /* t */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.xBuf:[B
            iconst_0
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.xBuf:[B
            iconst_0
            aload 2 /* t */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.xBuf:[B
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        12: .line 357
            aload 0 /* this */
            aload 2 /* t */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.xBufOff:I
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.xBufOff:I
        13: .line 358
            aload 0 /* this */
            aload 2 /* t */
            getfield org.bouncycastle.crypto.digests.GOST3411Digest.byteCount:J
            putfield org.bouncycastle.crypto.digests.GOST3411Digest.byteCount:J
        14: .line 359
            return
        end local 2 // org.bouncycastle.crypto.digests.GOST3411Digest t
        end local 1 // org.bouncycastle.util.Memoable other
        end local 0 // org.bouncycastle.crypto.digests.GOST3411Digest this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   15     0   this  Lorg/bouncycastle/crypto/digests/GOST3411Digest;
            0   15     1  other  Lorg/bouncycastle/util/Memoable;
            1   15     2      t  Lorg/bouncycastle/crypto/digests/GOST3411Digest;
    MethodParameters:
       Name  Flags
      other  
}
SourceFile: "GOST3411Digest.java"